4 <meta charset=
"utf-8" />
5 <title>BIP39 - Mnemonic Code
</title>
7 * Bootstrap v3.2
.0 (http://getbootstrap.com)
8 * Copyright
2011-
2014 Twitter, Inc.
9 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10 *//*! normalize.css v3.0
.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:
100%;-ms-text-size-adjust:
100%}body{margin:
0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:
0}[hidden],template{display:none}a{background:
0 0}a:active,a:hover{outline:
0}abbr[title]{border-bottom:
1px dotted}b,strong{font-weight:
700}dfn{font-style:italic}h1{margin:
.67em
0;font-size:
2em}mark{color:#
000;background:#ff0}small{font-size:
80%}sub,sup{position:relative;font-size:
75%;line-height:
0;vertical-align:baseline}sup{top:-
.5em}sub{bottom:-
.25em}img{border:
0}svg:not(:root){overflow:hidden}figure{margin:
1em
40px}hr{height:
0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:
1em}button,input,optgroup,select,textarea{margin:
0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:
0;border:
0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:
0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:
.35em
.625em
.75em;margin:
0 2px;border:
1px solid silver}legend{padding:
0;border:
0}textarea{overflow:auto}optgroup{font-weight:
700}table{border-spacing:
0;border-collapse:collapse}td,th{padding:
0}@media print{*{color:#
000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:
1px solid #
999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:
100%!important}p,h2,h3{orphans:
3;widows:
3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn
>.caret,.dropup
>.btn
>.caret{border-top-color:#
000!important}.label{border:
1px solid #
000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:
1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:
1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:
400;line-height:
1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\
2a"}.glyphicon-plus:before{content:"\
2b"}.glyphicon-euro:before{content:"\
20ac"}.glyphicon-minus:before{content:"\
2212"}.glyphicon-cloud:before{content:"\
2601"}.glyphicon-envelope:before{content:"\
2709"}.glyphicon-pencil:before{content:"\
270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-
5-
1:before{content:"\e191"}.glyphicon-sound-
6-
1:before{content:"\e192"}.glyphicon-sound-
7-
1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:
10px;-webkit-tap-highlight-color:rgba(
0,
0,
0,
0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:
14px;line-height:
1.42857143;color:#
333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#
428bca;text-decoration:none}a:hover,a:focus{color:#
2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}figure{margin:
0}img{vertical-align:middle}.img-responsive,.thumbnail
>img,.thumbnail a
>img,.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{display:block;width:
100% \
9;max-width:
100%;height:auto}.img-rounded{border-radius:
6px}.img-thumbnail{display:inline-block;width:
100% \
9;max-width:
100%;height:auto;padding:
4px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.img-circle{border-radius:
50%}hr{margin-top:
20px;margin-bottom:
20px;border:
0;border-top:
1px solid #eee}.sr-only{position:absolute;width:
1px;height:
1px;padding:
0;margin:-
1px;overflow:hidden;clip:rect(
0,
0,
0,
0);border:
0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:
0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:
500;line-height:
1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:
400;line-height:
1;color:#
777}h1,.h1,h2,.h2,h3,.h3{margin-top:
20px;margin-bottom:
10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:
65%}h4,.h4,h5,.h5,h6,.h6{margin-top:
10px;margin-bottom:
10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:
75%}h1,.h1{font-size:
36px}h2,.h2{font-size:
30px}h3,.h3{font-size:
24px}h4,.h4{font-size:
18px}h5,.h5{font-size:
14px}h6,.h6{font-size:
12px}p{margin:
0 0 10px}.lead{margin-bottom:
20px;font-size:
16px;font-weight:
300;line-height:
1.4}@media (min-width:
768px){.lead{font-size:
21px}}small,.small{font-size:
85%}cite{font-style:normal}mark,.mark{padding:
.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#
777}.text-primary{color:#
428bca}a.text-primary:hover{color:#
3071a9}.text-success{color:#
3c763d}a.text-success:hover{color:#
2b542c}.text-info{color:#
31708f}a.text-info:hover{color:#
245269}.text-warning{color:#
8a6d3b}a.text-warning:hover{color:#
66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#
843534}.bg-primary{color:#fff;background-color:#
428bca}a.bg-primary:hover{background-color:#
3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:
9px;margin:
40px
0 20px;border-bottom:
1px solid #eee}ul,ol{margin-top:
0;margin-bottom:
10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:
0}.list-unstyled{padding-left:
0;list-style:none}.list-inline{padding-left:
0;margin-left:-
5px;list-style:none}.list-inline
>li{display:inline-block;padding-right:
5px;padding-left:
5px}dl{margin-top:
0;margin-bottom:
20px}dt,dd{line-height:
1.42857143}dt{font-weight:
700}dd{margin-left:
0}@media (min-width:
768px){.dl-horizontal dt{float:left;width:
160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:
180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:
1px dotted #
777}.initialism{font-size:
90%;text-transform:uppercase}blockquote{padding:
10px
20px;margin:
0 0 20px;font-size:
17.5px;border-left:
5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:
0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:
80%;line-height:
1.42857143;color:#
777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\
2014 \
00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:
15px;padding-left:
0;text-align:right;border-right:
5px solid #eee;border-left:
0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\
00A0 \
2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:
20px;font-style:normal;line-height:
1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:
2px
4px;font-size:
90%;color:#c7254e;background-color:#f9f2f4;border-radius:
4px}kbd{padding:
2px
4px;font-size:
90%;color:#fff;background-color:#
333;border-radius:
3px;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25)}kbd kbd{padding:
0;font-size:
100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:
9.5px;margin:
0 0 10px;font-size:
13px;line-height:
1.42857143;color:#
333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:
1px solid #ccc;border-radius:
4px}pre code{padding:
0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:
0}.pre-scrollable{max-height:
340px;overflow-y:scroll}.container{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}@media (min-width:
768px){.container{width:
750px}}@media (min-width:
992px){.container{width:
970px}}@media (min-width:
1200px){.container{width:
1170px}}.container-fluid{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}.row{margin-right:-
15px;margin-left:-
15px}.col-xs-
1,.col-sm-
1,.col-md-
1,.col-lg-
1,.col-xs-
2,.col-sm-
2,.col-md-
2,.col-lg-
2,.col-xs-
3,.col-sm-
3,.col-md-
3,.col-lg-
3,.col-xs-
4,.col-sm-
4,.col-md-
4,.col-lg-
4,.col-xs-
5,.col-sm-
5,.col-md-
5,.col-lg-
5,.col-xs-
6,.col-sm-
6,.col-md-
6,.col-lg-
6,.col-xs-
7,.col-sm-
7,.col-md-
7,.col-lg-
7,.col-xs-
8,.col-sm-
8,.col-md-
8,.col-lg-
8,.col-xs-
9,.col-sm-
9,.col-md-
9,.col-lg-
9,.col-xs-
10,.col-sm-
10,.col-md-
10,.col-lg-
10,.col-xs-
11,.col-sm-
11,.col-md-
11,.col-lg-
11,.col-xs-
12,.col-sm-
12,.col-md-
12,.col-lg-
12{position:relative;min-height:
1px;padding-right:
15px;padding-left:
15px}.col-xs-
1,.col-xs-
2,.col-xs-
3,.col-xs-
4,.col-xs-
5,.col-xs-
6,.col-xs-
7,.col-xs-
8,.col-xs-
9,.col-xs-
10,.col-xs-
11,.col-xs-
12{float:left}.col-xs-
12{width:
100%}.col-xs-
11{width:
91.66666667%}.col-xs-
10{width:
83.33333333%}.col-xs-
9{width:
75%}.col-xs-
8{width:
66.66666667%}.col-xs-
7{width:
58.33333333%}.col-xs-
6{width:
50%}.col-xs-
5{width:
41.66666667%}.col-xs-
4{width:
33.33333333%}.col-xs-
3{width:
25%}.col-xs-
2{width:
16.66666667%}.col-xs-
1{width:
8.33333333%}.col-xs-pull-
12{right:
100%}.col-xs-pull-
11{right:
91.66666667%}.col-xs-pull-
10{right:
83.33333333%}.col-xs-pull-
9{right:
75%}.col-xs-pull-
8{right:
66.66666667%}.col-xs-pull-
7{right:
58.33333333%}.col-xs-pull-
6{right:
50%}.col-xs-pull-
5{right:
41.66666667%}.col-xs-pull-
4{right:
33.33333333%}.col-xs-pull-
3{right:
25%}.col-xs-pull-
2{right:
16.66666667%}.col-xs-pull-
1{right:
8.33333333%}.col-xs-pull-
0{right:auto}.col-xs-push-
12{left:
100%}.col-xs-push-
11{left:
91.66666667%}.col-xs-push-
10{left:
83.33333333%}.col-xs-push-
9{left:
75%}.col-xs-push-
8{left:
66.66666667%}.col-xs-push-
7{left:
58.33333333%}.col-xs-push-
6{left:
50%}.col-xs-push-
5{left:
41.66666667%}.col-xs-push-
4{left:
33.33333333%}.col-xs-push-
3{left:
25%}.col-xs-push-
2{left:
16.66666667%}.col-xs-push-
1{left:
8.33333333%}.col-xs-push-
0{left:auto}.col-xs-offset-
12{margin-left:
100%}.col-xs-offset-
11{margin-left:
91.66666667%}.col-xs-offset-
10{margin-left:
83.33333333%}.col-xs-offset-
9{margin-left:
75%}.col-xs-offset-
8{margin-left:
66.66666667%}.col-xs-offset-
7{margin-left:
58.33333333%}.col-xs-offset-
6{margin-left:
50%}.col-xs-offset-
5{margin-left:
41.66666667%}.col-xs-offset-
4{margin-left:
33.33333333%}.col-xs-offset-
3{margin-left:
25%}.col-xs-offset-
2{margin-left:
16.66666667%}.col-xs-offset-
1{margin-left:
8.33333333%}.col-xs-offset-
0{margin-left:
0}@media (min-width:
768px){.col-sm-
1,.col-sm-
2,.col-sm-
3,.col-sm-
4,.col-sm-
5,.col-sm-
6,.col-sm-
7,.col-sm-
8,.col-sm-
9,.col-sm-
10,.col-sm-
11,.col-sm-
12{float:left}.col-sm-
12{width:
100%}.col-sm-
11{width:
91.66666667%}.col-sm-
10{width:
83.33333333%}.col-sm-
9{width:
75%}.col-sm-
8{width:
66.66666667%}.col-sm-
7{width:
58.33333333%}.col-sm-
6{width:
50%}.col-sm-
5{width:
41.66666667%}.col-sm-
4{width:
33.33333333%}.col-sm-
3{width:
25%}.col-sm-
2{width:
16.66666667%}.col-sm-
1{width:
8.33333333%}.col-sm-pull-
12{right:
100%}.col-sm-pull-
11{right:
91.66666667%}.col-sm-pull-
10{right:
83.33333333%}.col-sm-pull-
9{right:
75%}.col-sm-pull-
8{right:
66.66666667%}.col-sm-pull-
7{right:
58.33333333%}.col-sm-pull-
6{right:
50%}.col-sm-pull-
5{right:
41.66666667%}.col-sm-pull-
4{right:
33.33333333%}.col-sm-pull-
3{right:
25%}.col-sm-pull-
2{right:
16.66666667%}.col-sm-pull-
1{right:
8.33333333%}.col-sm-pull-
0{right:auto}.col-sm-push-
12{left:
100%}.col-sm-push-
11{left:
91.66666667%}.col-sm-push-
10{left:
83.33333333%}.col-sm-push-
9{left:
75%}.col-sm-push-
8{left:
66.66666667%}.col-sm-push-
7{left:
58.33333333%}.col-sm-push-
6{left:
50%}.col-sm-push-
5{left:
41.66666667%}.col-sm-push-
4{left:
33.33333333%}.col-sm-push-
3{left:
25%}.col-sm-push-
2{left:
16.66666667%}.col-sm-push-
1{left:
8.33333333%}.col-sm-push-
0{left:auto}.col-sm-offset-
12{margin-left:
100%}.col-sm-offset-
11{margin-left:
91.66666667%}.col-sm-offset-
10{margin-left:
83.33333333%}.col-sm-offset-
9{margin-left:
75%}.col-sm-offset-
8{margin-left:
66.66666667%}.col-sm-offset-
7{margin-left:
58.33333333%}.col-sm-offset-
6{margin-left:
50%}.col-sm-offset-
5{margin-left:
41.66666667%}.col-sm-offset-
4{margin-left:
33.33333333%}.col-sm-offset-
3{margin-left:
25%}.col-sm-offset-
2{margin-left:
16.66666667%}.col-sm-offset-
1{margin-left:
8.33333333%}.col-sm-offset-
0{margin-left:
0}}@media (min-width:
992px){.col-md-
1,.col-md-
2,.col-md-
3,.col-md-
4,.col-md-
5,.col-md-
6,.col-md-
7,.col-md-
8,.col-md-
9,.col-md-
10,.col-md-
11,.col-md-
12{float:left}.col-md-
12{width:
100%}.col-md-
11{width:
91.66666667%}.col-md-
10{width:
83.33333333%}.col-md-
9{width:
75%}.col-md-
8{width:
66.66666667%}.col-md-
7{width:
58.33333333%}.col-md-
6{width:
50%}.col-md-
5{width:
41.66666667%}.col-md-
4{width:
33.33333333%}.col-md-
3{width:
25%}.col-md-
2{width:
16.66666667%}.col-md-
1{width:
8.33333333%}.col-md-pull-
12{right:
100%}.col-md-pull-
11{right:
91.66666667%}.col-md-pull-
10{right:
83.33333333%}.col-md-pull-
9{right:
75%}.col-md-pull-
8{right:
66.66666667%}.col-md-pull-
7{right:
58.33333333%}.col-md-pull-
6{right:
50%}.col-md-pull-
5{right:
41.66666667%}.col-md-pull-
4{right:
33.33333333%}.col-md-pull-
3{right:
25%}.col-md-pull-
2{right:
16.66666667%}.col-md-pull-
1{right:
8.33333333%}.col-md-pull-
0{right:auto}.col-md-push-
12{left:
100%}.col-md-push-
11{left:
91.66666667%}.col-md-push-
10{left:
83.33333333%}.col-md-push-
9{left:
75%}.col-md-push-
8{left:
66.66666667%}.col-md-push-
7{left:
58.33333333%}.col-md-push-
6{left:
50%}.col-md-push-
5{left:
41.66666667%}.col-md-push-
4{left:
33.33333333%}.col-md-push-
3{left:
25%}.col-md-push-
2{left:
16.66666667%}.col-md-push-
1{left:
8.33333333%}.col-md-push-
0{left:auto}.col-md-offset-
12{margin-left:
100%}.col-md-offset-
11{margin-left:
91.66666667%}.col-md-offset-
10{margin-left:
83.33333333%}.col-md-offset-
9{margin-left:
75%}.col-md-offset-
8{margin-left:
66.66666667%}.col-md-offset-
7{margin-left:
58.33333333%}.col-md-offset-
6{margin-left:
50%}.col-md-offset-
5{margin-left:
41.66666667%}.col-md-offset-
4{margin-left:
33.33333333%}.col-md-offset-
3{margin-left:
25%}.col-md-offset-
2{margin-left:
16.66666667%}.col-md-offset-
1{margin-left:
8.33333333%}.col-md-offset-
0{margin-left:
0}}@media (min-width:
1200px){.col-lg-
1,.col-lg-
2,.col-lg-
3,.col-lg-
4,.col-lg-
5,.col-lg-
6,.col-lg-
7,.col-lg-
8,.col-lg-
9,.col-lg-
10,.col-lg-
11,.col-lg-
12{float:left}.col-lg-
12{width:
100%}.col-lg-
11{width:
91.66666667%}.col-lg-
10{width:
83.33333333%}.col-lg-
9{width:
75%}.col-lg-
8{width:
66.66666667%}.col-lg-
7{width:
58.33333333%}.col-lg-
6{width:
50%}.col-lg-
5{width:
41.66666667%}.col-lg-
4{width:
33.33333333%}.col-lg-
3{width:
25%}.col-lg-
2{width:
16.66666667%}.col-lg-
1{width:
8.33333333%}.col-lg-pull-
12{right:
100%}.col-lg-pull-
11{right:
91.66666667%}.col-lg-pull-
10{right:
83.33333333%}.col-lg-pull-
9{right:
75%}.col-lg-pull-
8{right:
66.66666667%}.col-lg-pull-
7{right:
58.33333333%}.col-lg-pull-
6{right:
50%}.col-lg-pull-
5{right:
41.66666667%}.col-lg-pull-
4{right:
33.33333333%}.col-lg-pull-
3{right:
25%}.col-lg-pull-
2{right:
16.66666667%}.col-lg-pull-
1{right:
8.33333333%}.col-lg-pull-
0{right:auto}.col-lg-push-
12{left:
100%}.col-lg-push-
11{left:
91.66666667%}.col-lg-push-
10{left:
83.33333333%}.col-lg-push-
9{left:
75%}.col-lg-push-
8{left:
66.66666667%}.col-lg-push-
7{left:
58.33333333%}.col-lg-push-
6{left:
50%}.col-lg-push-
5{left:
41.66666667%}.col-lg-push-
4{left:
33.33333333%}.col-lg-push-
3{left:
25%}.col-lg-push-
2{left:
16.66666667%}.col-lg-push-
1{left:
8.33333333%}.col-lg-push-
0{left:auto}.col-lg-offset-
12{margin-left:
100%}.col-lg-offset-
11{margin-left:
91.66666667%}.col-lg-offset-
10{margin-left:
83.33333333%}.col-lg-offset-
9{margin-left:
75%}.col-lg-offset-
8{margin-left:
66.66666667%}.col-lg-offset-
7{margin-left:
58.33333333%}.col-lg-offset-
6{margin-left:
50%}.col-lg-offset-
5{margin-left:
41.66666667%}.col-lg-offset-
4{margin-left:
33.33333333%}.col-lg-offset-
3{margin-left:
25%}.col-lg-offset-
2{margin-left:
16.66666667%}.col-lg-offset-
1{margin-left:
8.33333333%}.col-lg-offset-
0{margin-left:
0}}table{background-color:transparent}th{text-align:left}.table{width:
100%;max-width:
100%;margin-bottom:
20px}.table
>thead
>tr
>th,.table
>tbody
>tr
>th,.table
>tfoot
>tr
>th,.table
>thead
>tr
>td,.table
>tbody
>tr
>td,.table
>tfoot
>tr
>td{padding:
8px;line-height:
1.42857143;vertical-align:top;border-top:
1px solid #ddd}.table
>thead
>tr
>th{vertical-align:bottom;border-bottom:
2px solid #ddd}.table
>caption+thead
>tr:first-child
>th,.table
>colgroup+thead
>tr:first-child
>th,.table
>thead:first-child
>tr:first-child
>th,.table
>caption+thead
>tr:first-child
>td,.table
>colgroup+thead
>tr:first-child
>td,.table
>thead:first-child
>tr:first-child
>td{border-top:
0}.table
>tbody+tbody{border-top:
2px solid #ddd}.table .table{background-color:#fff}.table-condensed
>thead
>tr
>th,.table-condensed
>tbody
>tr
>th,.table-condensed
>tfoot
>tr
>th,.table-condensed
>thead
>tr
>td,.table-condensed
>tbody
>tr
>td,.table-condensed
>tfoot
>tr
>td{padding:
5px}.table-bordered{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>tbody
>tr
>th,.table-bordered
>tfoot
>tr
>th,.table-bordered
>thead
>tr
>td,.table-bordered
>tbody
>tr
>td,.table-bordered
>tfoot
>tr
>td{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>thead
>tr
>td{border-bottom-width:
2px}.table-striped
>tbody
>tr:nth-child(odd)
>td,.table-striped
>tbody
>tr:nth-child(odd)
>th{background-color:#f9f9f9}.table-hover
>tbody
>tr:hover
>td,.table-hover
>tbody
>tr:hover
>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table
>thead
>tr
>td.active,.table
>tbody
>tr
>td.active,.table
>tfoot
>tr
>td.active,.table
>thead
>tr
>th.active,.table
>tbody
>tr
>th.active,.table
>tfoot
>tr
>th.active,.table
>thead
>tr.active
>td,.table
>tbody
>tr.active
>td,.table
>tfoot
>tr.active
>td,.table
>thead
>tr.active
>th,.table
>tbody
>tr.active
>th,.table
>tfoot
>tr.active
>th{background-color:#f5f5f5}.table-hover
>tbody
>tr
>td.active:hover,.table-hover
>tbody
>tr
>th.active:hover,.table-hover
>tbody
>tr.active:hover
>td,.table-hover
>tbody
>tr:hover
>.active,.table-hover
>tbody
>tr.active:hover
>th{background-color:#e8e8e8}.table
>thead
>tr
>td.success,.table
>tbody
>tr
>td.success,.table
>tfoot
>tr
>td.success,.table
>thead
>tr
>th.success,.table
>tbody
>tr
>th.success,.table
>tfoot
>tr
>th.success,.table
>thead
>tr.success
>td,.table
>tbody
>tr.success
>td,.table
>tfoot
>tr.success
>td,.table
>thead
>tr.success
>th,.table
>tbody
>tr.success
>th,.table
>tfoot
>tr.success
>th{background-color:#dff0d8}.table-hover
>tbody
>tr
>td.success:hover,.table-hover
>tbody
>tr
>th.success:hover,.table-hover
>tbody
>tr.success:hover
>td,.table-hover
>tbody
>tr:hover
>.success,.table-hover
>tbody
>tr.success:hover
>th{background-color:#d0e9c6}.table
>thead
>tr
>td.info,.table
>tbody
>tr
>td.info,.table
>tfoot
>tr
>td.info,.table
>thead
>tr
>th.info,.table
>tbody
>tr
>th.info,.table
>tfoot
>tr
>th.info,.table
>thead
>tr.info
>td,.table
>tbody
>tr.info
>td,.table
>tfoot
>tr.info
>td,.table
>thead
>tr.info
>th,.table
>tbody
>tr.info
>th,.table
>tfoot
>tr.info
>th{background-color:#d9edf7}.table-hover
>tbody
>tr
>td.info:hover,.table-hover
>tbody
>tr
>th.info:hover,.table-hover
>tbody
>tr.info:hover
>td,.table-hover
>tbody
>tr:hover
>.info,.table-hover
>tbody
>tr.info:hover
>th{background-color:#c4e3f3}.table
>thead
>tr
>td.warning,.table
>tbody
>tr
>td.warning,.table
>tfoot
>tr
>td.warning,.table
>thead
>tr
>th.warning,.table
>tbody
>tr
>th.warning,.table
>tfoot
>tr
>th.warning,.table
>thead
>tr.warning
>td,.table
>tbody
>tr.warning
>td,.table
>tfoot
>tr.warning
>td,.table
>thead
>tr.warning
>th,.table
>tbody
>tr.warning
>th,.table
>tfoot
>tr.warning
>th{background-color:#fcf8e3}.table-hover
>tbody
>tr
>td.warning:hover,.table-hover
>tbody
>tr
>th.warning:hover,.table-hover
>tbody
>tr.warning:hover
>td,.table-hover
>tbody
>tr:hover
>.warning,.table-hover
>tbody
>tr.warning:hover
>th{background-color:#faf2cc}.table
>thead
>tr
>td.danger,.table
>tbody
>tr
>td.danger,.table
>tfoot
>tr
>td.danger,.table
>thead
>tr
>th.danger,.table
>tbody
>tr
>th.danger,.table
>tfoot
>tr
>th.danger,.table
>thead
>tr.danger
>td,.table
>tbody
>tr.danger
>td,.table
>tfoot
>tr.danger
>td,.table
>thead
>tr.danger
>th,.table
>tbody
>tr.danger
>th,.table
>tfoot
>tr.danger
>th{background-color:#f2dede}.table-hover
>tbody
>tr
>td.danger:hover,.table-hover
>tbody
>tr
>th.danger:hover,.table-hover
>tbody
>tr.danger:hover
>td,.table-hover
>tbody
>tr:hover
>.danger,.table-hover
>tbody
>tr.danger:hover
>th{background-color:#ebcccc}@media screen and (max-width:
767px){.table-responsive{width:
100%;margin-bottom:
15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:
1px solid #ddd}.table-responsive
>.table{margin-bottom:
0}.table-responsive
>.table
>thead
>tr
>th,.table-responsive
>.table
>tbody
>tr
>th,.table-responsive
>.table
>tfoot
>tr
>th,.table-responsive
>.table
>thead
>tr
>td,.table-responsive
>.table
>tbody
>tr
>td,.table-responsive
>.table
>tfoot
>tr
>td{white-space:nowrap}.table-responsive
>.table-bordered{border:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th,.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td{border-bottom:
0}}fieldset{min-width:
0;padding:
0;margin:
0;border:
0}legend{display:block;width:
100%;padding:
0;margin-bottom:
20px;font-size:
21px;line-height:inherit;color:#
333;border:
0;border-bottom:
1px solid #e5e5e5}label{display:inline-block;max-width:
100%;margin-bottom:
5px;font-weight:
700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:
4px
0 0;margin-top:
1px \
9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:
100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}output{display:block;padding-top:
7px;font-size:
14px;line-height:
1.42857143;color:#
555}.form-control{display:block;width:
100%;height:
34px;padding:
6px
12px;font-size:
14px;line-height:
1.42857143;color:#
555;background-color:#fff;background-image:none;border:
1px solid #ccc;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);-webkit-transition:border-color ease-in-out
.15s,-webkit-box-shadow ease-in-out
.15s;-o-transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s;transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s}.form-control:focus{border-color:#
66afe9;outline:
0;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6)}.form-control::-moz-placeholder{color:#
777;opacity:
1}.form-control:-ms-input-placeholder{color:#
777}.form-control::-webkit-input-placeholder{color:#
777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:
1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:
34px;line-height:
1.42857143 \
0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:
30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:
46px}.form-group{margin-bottom:
15px}.radio,.checkbox{position:relative;display:block;min-height:
20px;margin-top:
10px;margin-bottom:
10px}.radio label,.checkbox label{padding-left:
20px;margin-bottom:
0;font-weight:
400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:
4px \
9;margin-left:-
20px}.radio+.radio,.checkbox+.checkbox{margin-top:-
5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:
20px;margin-bottom:
0;font-weight:
400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:
0;margin-left:
10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:
7px;padding-bottom:
7px;margin-bottom:
0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:
0;padding-left:
0}.input-sm,.form-horizontal .form-group-sm .form-control{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-sm{height:
30px;line-height:
30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-lg{height:
46px;line-height:
46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:
42.5px}.form-control-feedback{position:absolute;top:
25px;right:
0;z-index:
2;display:block;width:
34px;height:
34px;line-height:
34px;text-align:center}.input-lg+.form-control-feedback{width:
46px;height:
46px;line-height:
46px}.input-sm+.form-control-feedback{width:
30px;height:
30px;line-height:
30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#
3c763d}.has-success .form-control{border-color:#
3c763d;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-success .form-control:focus{border-color:#
2b542c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168}.has-success .input-group-addon{color:#
3c763d;background-color:#dff0d8;border-color:#
3c763d}.has-success .form-control-feedback{color:#
3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#
8a6d3b}.has-warning .form-control{border-color:#
8a6d3b;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-warning .form-control:focus{border-color:#
66512c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b}.has-warning .input-group-addon{color:#
8a6d3b;background-color:#fcf8e3;border-color:#
8a6d3b}.has-warning .form-control-feedback{color:#
8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-error .form-control:focus{border-color:#
843534;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:
0}.help-block{display:block;margin-top:
5px;margin-bottom:
10px;color:#
737373}@media (min-width:
768px){.form-inline .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group
>.form-control{width:
100%}.form-inline .control-label{margin-bottom:
0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:
0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:
0}.form-inline .has-feedback .form-control-feedback{top:
0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:
7px;margin-top:
0;margin-bottom:
0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:
27px}.form-horizontal .form-group{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.form-horizontal .control-label{padding-top:
7px;margin-bottom:
0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:
0;right:
15px}@media (min-width:
768px){.form-horizontal .form-group-lg .control-label{padding-top:
14.3px}}@media (min-width:
768px){.form-horizontal .form-group-sm .control-label{padding-top:
6px}}.btn{display:inline-block;padding:
6px
12px;margin-bottom:
0;font-size:
14px;font-weight:
400;line-height:
1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:
1px solid transparent;border-radius:
4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}.btn:hover,.btn:focus{color:#
333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:
0;-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=
65);-webkit-box-shadow:none;box-shadow:none;opacity:
.65}.btn-default{color:#
333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{color:#
333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#
333}.btn-primary{color:#fff;background-color:#
428bca;border-color:#
357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{color:#fff;background-color:#
3071a9;border-color:#
285e8e}.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#
428bca;border-color:#
357ebd}.btn-primary .badge{color:#
428bca;background-color:#fff}.btn-success{color:#fff;background-color:#
5cb85c;border-color:#
4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{color:#fff;background-color:#
449d44;border-color:#
398439}.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#
5cb85c;border-color:#
4cae4c}.btn-success .badge{color:#
5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#
5bc0de;border-color:#
46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{color:#fff;background-color:#
31b0d5;border-color:#
269abc}.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#
5bc0de;border-color:#
46b8da}.btn-info .badge{color:#
5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:
400;color:#
428bca;cursor:pointer;border-radius:
0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#
2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#
777;text-decoration:none}.btn-lg,.btn-group-lg
>.btn{padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}.btn-sm,.btn-group-sm
>.btn{padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-xs,.btn-group-xs
>.btn{padding:
1px
5px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-block{display:block;width:
100%}.btn-block+.btn-block{margin-top:
5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:
100%}.fade{opacity:
0;-webkit-transition:opacity
.15s linear;-o-transition:opacity
.15s linear;transition:opacity
.15s linear}.fade.in{opacity:
1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:
0;overflow:hidden;-webkit-transition:height
.35s ease;-o-transition:height
.35s ease;transition:height
.35s ease}.caret{display:inline-block;width:
0;height:
0;margin-left:
2px;vertical-align:middle;border-top:
4px solid;border-right:
4px solid transparent;border-left:
4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:
0}.dropdown-menu{position:absolute;top:
100%;left:
0;z-index:
1000;display:none;float:left;min-width:
160px;padding:
5px
0;margin:
2px
0 0;font-size:
14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.15);border-radius:
4px;-webkit-box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175);box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175)}.dropdown-menu.pull-right{right:
0;left:auto}.dropdown-menu .divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu
>li
>a{display:block;padding:
3px
20px;clear:both;font-weight:
400;line-height:
1.42857143;color:#
333;white-space:nowrap}.dropdown-menu
>li
>a:hover,.dropdown-menu
>li
>a:focus{color:#
262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu
>.active
>a,.dropdown-menu
>.active
>a:hover,.dropdown-menu
>.active
>a:focus{color:#fff;text-decoration:none;background-color:#
428bca;outline:
0}.dropdown-menu
>.disabled
>a,.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{color:#
777}.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open
>.dropdown-menu{display:block}.open
>a{outline:
0}.dropdown-menu-right{right:
0;left:auto}.dropdown-menu-left{right:auto;left:
0}.dropdown-header{display:block;padding:
3px
20px;font-size:
12px;line-height:
1.42857143;color:#
777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
990}.pull-right
>.dropdown-menu{right:
0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:
0;border-bottom:
4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:
100%;margin-bottom:
1px}@media (min-width:
768px){.navbar-right .dropdown-menu{right:
0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:
0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group
>.btn,.btn-group-vertical
>.btn{position:relative;float:left}.btn-group
>.btn:hover,.btn-group-vertical
>.btn:hover,.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus,.btn-group
>.btn:active,.btn-group-vertical
>.btn:active,.btn-group
>.btn.active,.btn-group-vertical
>.btn.active{z-index:
2}.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus{outline:
0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-
1px}.btn-toolbar{margin-left:-
5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar
>.btn,.btn-toolbar
>.btn-group,.btn-toolbar
>.input-group{margin-left:
5px}.btn-group
>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:
0}.btn-group
>.btn:first-child{margin-left:
0}.btn-group
>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn:last-child:not(:first-child),.btn-group
>.dropdown-toggle:not(:first-child){border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group
>.btn-group{float:left}.btn-group
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group
>.btn-group:first-child
>.btn:last-child,.btn-group
>.btn-group:first-child
>.dropdown-toggle{border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn-group:last-child
>.btn:first-child{border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:
0}.btn-group
>.btn+.dropdown-toggle{padding-right:
8px;padding-left:
8px}.btn-group
>.btn-lg+.dropdown-toggle{padding-right:
12px;padding-left:
12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:
0}.btn-lg .caret{border-width:
5px
5px
0;border-bottom-width:
0}.dropup .btn-lg .caret{border-width:
0 5px
5px}.btn-group-vertical
>.btn,.btn-group-vertical
>.btn-group,.btn-group-vertical
>.btn-group
>.btn{display:block;float:none;width:
100%;max-width:
100%}.btn-group-vertical
>.btn-group
>.btn{float:none}.btn-group-vertical
>.btn+.btn,.btn-group-vertical
>.btn+.btn-group,.btn-group-vertical
>.btn-group+.btn,.btn-group-vertical
>.btn-group+.btn-group{margin-top:-
1px;margin-left:
0}.btn-group-vertical
>.btn:not(:first-child):not(:last-child){border-radius:
0}.btn-group-vertical
>.btn:first-child:not(:last-child){border-top-right-radius:
4px;border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn:last-child:not(:first-child){border-top-left-radius:
0;border-top-right-radius:
0;border-bottom-left-radius:
4px}.btn-group-vertical
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.btn:last-child,.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.dropdown-toggle{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn-group:last-child:not(:first-child)
>.btn:first-child{border-top-left-radius:
0;border-top-right-radius:
0}.btn-group-justified{display:table;width:
100%;table-layout:fixed;border-collapse:separate}.btn-group-justified
>.btn,.btn-group-justified
>.btn-group{display:table-cell;float:none;width:
1%}.btn-group-justified
>.btn-group .btn{width:
100%}.btn-group-justified
>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]
>.btn
>input[type=radio],[data-toggle=buttons]
>.btn
>input[type=checkbox]{position:absolute;z-index:-
1;filter:alpha(opacity=
0);opacity:
0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:
0;padding-left:
0}.input-group .form-control{position:relative;z-index:
2;float:left;width:
100%;margin-bottom:
0}.input-group-lg
>.form-control,.input-group-lg
>.input-group-addon,.input-group-lg
>.input-group-btn
>.btn{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-group-lg
>.form-control,select.input-group-lg
>.input-group-addon,select.input-group-lg
>.input-group-btn
>.btn{height:
46px;line-height:
46px}textarea.input-group-lg
>.form-control,textarea.input-group-lg
>.input-group-addon,textarea.input-group-lg
>.input-group-btn
>.btn,select[multiple].input-group-lg
>.form-control,select[multiple].input-group-lg
>.input-group-addon,select[multiple].input-group-lg
>.input-group-btn
>.btn{height:auto}.input-group-sm
>.form-control,.input-group-sm
>.input-group-addon,.input-group-sm
>.input-group-btn
>.btn{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-group-sm
>.form-control,select.input-group-sm
>.input-group-addon,select.input-group-sm
>.input-group-btn
>.btn{height:
30px;line-height:
30px}textarea.input-group-sm
>.form-control,textarea.input-group-sm
>.input-group-addon,textarea.input-group-sm
>.input-group-btn
>.btn,select[multiple].input-group-sm
>.form-control,select[multiple].input-group-sm
>.input-group-addon,select[multiple].input-group-sm
>.input-group-btn
>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:
0}.input-group-addon,.input-group-btn{width:
1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:
6px
12px;font-size:
14px;font-weight:
400;line-height:
1;color:#
555;text-align:center;background-color:#eee;border:
1px solid #ccc;border-radius:
4px}.input-group-addon.input-sm{padding:
5px
10px;font-size:
12px;border-radius:
3px}.input-group-addon.input-lg{padding:
10px
16px;font-size:
18px;border-radius:
6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:
0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group
>.btn,.input-group-btn:first-child
>.dropdown-toggle,.input-group-btn:last-child
>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child
>.btn-group:not(:last-child)
>.btn{border-top-right-radius:
0;border-bottom-right-radius:
0}.input-group-addon:first-child{border-right:
0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group
>.btn,.input-group-btn:last-child
>.dropdown-toggle,.input-group-btn:first-child
>.btn:not(:first-child),.input-group-btn:first-child
>.btn-group:not(:first-child)
>.btn{border-top-left-radius:
0;border-bottom-left-radius:
0}.input-group-addon:last-child{border-left:
0}.input-group-btn{position:relative;font-size:
0;white-space:nowrap}.input-group-btn
>.btn{position:relative}.input-group-btn
>.btn+.btn{margin-left:-
1px}.input-group-btn
>.btn:hover,.input-group-btn
>.btn:focus,.input-group-btn
>.btn:active{z-index:
2}.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group{margin-right:-
1px}.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group{margin-left:-
1px}.nav{padding-left:
0;margin-bottom:
0;list-style:none}.nav
>li{position:relative;display:block}.nav
>li
>a{position:relative;display:block;padding:
10px
15px}.nav
>li
>a:hover,.nav
>li
>a:focus{text-decoration:none;background-color:#eee}.nav
>li.disabled
>a{color:#
777}.nav
>li.disabled
>a:hover,.nav
>li.disabled
>a:focus{color:#
777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open
>a,.nav .open
>a:hover,.nav .open
>a:focus{background-color:#eee;border-color:#
428bca}.nav .nav-divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.nav
>li
>a
>img{max-width:none}.nav-tabs{border-bottom:
1px solid #ddd}.nav-tabs
>li{float:left;margin-bottom:-
1px}.nav-tabs
>li
>a{margin-right:
2px;line-height:
1.42857143;border:
1px solid transparent;border-radius:
4px
4px
0 0}.nav-tabs
>li
>a:hover{border-color:#eee #eee #ddd}.nav-tabs
>li.active
>a,.nav-tabs
>li.active
>a:hover,.nav-tabs
>li.active
>a:focus{color:#
555;cursor:default;background-color:#fff;border:
1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:
100%;border-bottom:
0}.nav-tabs.nav-justified
>li{float:none}.nav-tabs.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-tabs.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-tabs.nav-justified
>li{display:table-cell;width:
1%}.nav-tabs.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs.nav-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs.nav-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border-bottom-color:#fff}}.nav-pills
>li{float:left}.nav-pills
>li
>a{border-radius:
4px}.nav-pills
>li+li{margin-left:
2px}.nav-pills
>li.active
>a,.nav-pills
>li.active
>a:hover,.nav-pills
>li.active
>a:focus{color:#fff;background-color:#
428bca}.nav-stacked
>li{float:none}.nav-stacked
>li+li{margin-top:
2px;margin-left:
0}.nav-justified{width:
100%}.nav-justified
>li{float:none}.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-justified
>li{display:table-cell;width:
1%}.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs-justified{border-bottom:
0}.nav-tabs-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border-bottom-color:#fff}}.tab-content
>.tab-pane{display:none}.tab-content
>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-
1px;border-top-left-radius:
0;border-top-right-radius:
0}.navbar{position:relative;min-height:
50px;margin-bottom:
20px;border:
1px solid transparent}@media (min-width:
768px){.navbar{border-radius:
4px}}@media (min-width:
768px){.navbar-header{float:left}}.navbar-collapse{padding-right:
15px;padding-left:
15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:
768px){.navbar-collapse{width:auto;border-top:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:
0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:
0;padding-left:
0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
340px}@media (max-width:
480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
200px}}.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:
0;margin-left:
0}}.navbar-static-top{z-index:
1000;border-width:
0 0 1px}@media (min-width:
768px){.navbar-static-top{border-radius:
0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:
0;left:
0;z-index:
1030;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@media (min-width:
768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:
0}}.navbar-fixed-top{top:
0;border-width:
0 0 1px}.navbar-fixed-bottom{bottom:
0;margin-bottom:
0;border-width:
1px
0 0}.navbar-brand{float:left;height:
50px;padding:
15px
15px;font-size:
18px;line-height:
20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:
768px){.navbar
>.container .navbar-brand,.navbar
>.container-fluid .navbar-brand{margin-left:-
15px}}.navbar-toggle{position:relative;float:right;padding:
9px
10px;margin-top:
8px;margin-right:
15px;margin-bottom:
8px;background-color:transparent;background-image:none;border:
1px solid transparent;border-radius:
4px}.navbar-toggle:focus{outline:
0}.navbar-toggle .icon-bar{display:block;width:
22px;height:
2px;border-radius:
1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:
4px}@media (min-width:
768px){.navbar-toggle{display:none}}.navbar-nav{margin:
7.5px -
15px}.navbar-nav
>li
>a{padding-top:
10px;padding-bottom:
10px;line-height:
20px}@media (max-width:
767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:
0;background-color:transparent;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu
>li
>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:
5px
15px
5px
25px}.navbar-nav .open .dropdown-menu
>li
>a{line-height:
20px}.navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-nav .open .dropdown-menu
>li
>a:focus{background-image:none}}@media (min-width:
768px){.navbar-nav{float:left;margin:
0}.navbar-nav
>li{float:left}.navbar-nav
>li
>a{padding-top:
15px;padding-bottom:
15px}.navbar-nav.navbar-right:last-child{margin-right:-
15px}}@media (min-width:
768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:
10px
15px;margin-top:
8px;margin-right:-
15px;margin-bottom:
8px;margin-left:-
15px;border-top:
1px solid transparent;border-bottom:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1)}@media (min-width:
768px){.navbar-form .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group
>.form-control{width:
100%}.navbar-form .control-label{margin-bottom:
0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:
0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:
0}.navbar-form .has-feedback .form-control-feedback{top:
0}}@media (max-width:
767px){.navbar-form .form-group{margin-bottom:
5px}}@media (min-width:
768px){.navbar-form{width:auto;padding-top:
0;padding-bottom:
0;margin-right:
0;margin-left:
0;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-
15px}}.navbar-nav
>li
>.dropdown-menu{margin-top:
0;border-top-left-radius:
0;border-top-right-radius:
0}.navbar-fixed-bottom .navbar-nav
>li
>.dropdown-menu{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.navbar-btn{margin-top:
8px;margin-bottom:
8px}.navbar-btn.btn-sm{margin-top:
10px;margin-bottom:
10px}.navbar-btn.btn-xs{margin-top:
14px;margin-bottom:
14px}.navbar-text{margin-top:
15px;margin-bottom:
15px}@media (min-width:
768px){.navbar-text{float:left;margin-right:
15px;margin-left:
15px}.navbar-text.navbar-right:last-child{margin-right:
0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#
777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#
5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#
777}.navbar-default .navbar-nav
>li
>a{color:#
777}.navbar-default .navbar-nav
>li
>a:hover,.navbar-default .navbar-nav
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav
>.active
>a,.navbar-default .navbar-nav
>.active
>a:hover,.navbar-default .navbar-nav
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav
>.disabled
>a,.navbar-default .navbar-nav
>.disabled
>a:hover,.navbar-default .navbar-nav
>.disabled
>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#
888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav
>.open
>a,.navbar-default .navbar-nav
>.open
>a:hover,.navbar-default .navbar-nav
>.open
>a:focus{color:#
555;background-color:#e7e7e7}@media (max-width:
767px){.navbar-default .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#
777}.navbar-default .navbar-link:hover{color:#
333}.navbar-default .btn-link{color:#
777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#
333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#
222;border-color:#
080808}.navbar-inverse .navbar-brand{color:#
777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#
777}.navbar-inverse .navbar-nav
>li
>a{color:#
777}.navbar-inverse .navbar-nav
>li
>a:hover,.navbar-inverse .navbar-nav
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav
>.active
>a,.navbar-inverse .navbar-nav
>.active
>a:hover,.navbar-inverse .navbar-nav
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav
>.disabled
>a,.navbar-inverse .navbar-nav
>.disabled
>a:hover,.navbar-inverse .navbar-nav
>.disabled
>a:focus{color:#
444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#
333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#
333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#
101010}.navbar-inverse .navbar-nav
>.open
>a,.navbar-inverse .navbar-nav
>.open
>a:hover,.navbar-inverse .navbar-nav
>.open
>a:focus{color:#fff;background-color:#
080808}@media (max-width:
767px){.navbar-inverse .navbar-nav .open .dropdown-menu
>.dropdown-header{border-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#
444;background-color:transparent}}.navbar-inverse .navbar-link{color:#
777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#
777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#
444}.breadcrumb{padding:
8px
15px;margin-bottom:
20px;list-style:none;background-color:#f5f5f5;border-radius:
4px}.breadcrumb
>li{display:inline-block}.breadcrumb
>li+li:before{padding:
0 5px;color:#ccc;content:"/\
00a0"}.breadcrumb
>.active{color:#
777}.pagination{display:inline-block;padding-left:
0;margin:
20px
0;border-radius:
4px}.pagination
>li{display:inline}.pagination
>li
>a,.pagination
>li
>span{position:relative;float:left;padding:
6px
12px;margin-left:-
1px;line-height:
1.42857143;color:#
428bca;text-decoration:none;background-color:#fff;border:
1px solid #ddd}.pagination
>li:first-child
>a,.pagination
>li:first-child
>span{margin-left:
0;border-top-left-radius:
4px;border-bottom-left-radius:
4px}.pagination
>li:last-child
>a,.pagination
>li:last-child
>span{border-top-right-radius:
4px;border-bottom-right-radius:
4px}.pagination
>li
>a:hover,.pagination
>li
>span:hover,.pagination
>li
>a:focus,.pagination
>li
>span:focus{color:#
2a6496;background-color:#eee;border-color:#ddd}.pagination
>.active
>a,.pagination
>.active
>span,.pagination
>.active
>a:hover,.pagination
>.active
>span:hover,.pagination
>.active
>a:focus,.pagination
>.active
>span:focus{z-index:
2;color:#fff;cursor:default;background-color:#
428bca;border-color:#
428bca}.pagination
>.disabled
>span,.pagination
>.disabled
>span:hover,.pagination
>.disabled
>span:focus,.pagination
>.disabled
>a,.pagination
>.disabled
>a:hover,.pagination
>.disabled
>a:focus{color:#
777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg
>li
>a,.pagination-lg
>li
>span{padding:
10px
16px;font-size:
18px}.pagination-lg
>li:first-child
>a,.pagination-lg
>li:first-child
>span{border-top-left-radius:
6px;border-bottom-left-radius:
6px}.pagination-lg
>li:last-child
>a,.pagination-lg
>li:last-child
>span{border-top-right-radius:
6px;border-bottom-right-radius:
6px}.pagination-sm
>li
>a,.pagination-sm
>li
>span{padding:
5px
10px;font-size:
12px}.pagination-sm
>li:first-child
>a,.pagination-sm
>li:first-child
>span{border-top-left-radius:
3px;border-bottom-left-radius:
3px}.pagination-sm
>li:last-child
>a,.pagination-sm
>li:last-child
>span{border-top-right-radius:
3px;border-bottom-right-radius:
3px}.pager{padding-left:
0;margin:
20px
0;text-align:center;list-style:none}.pager li{display:inline}.pager li
>a,.pager li
>span{display:inline-block;padding:
5px
14px;background-color:#fff;border:
1px solid #ddd;border-radius:
15px}.pager li
>a:hover,.pager li
>a:focus{text-decoration:none;background-color:#eee}.pager .next
>a,.pager .next
>span{float:right}.pager .previous
>a,.pager .previous
>span{float:left}.pager .disabled
>a,.pager .disabled
>a:hover,.pager .disabled
>a:focus,.pager .disabled
>span{color:#
777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:
.2em
.6em
.3em;font-size:
75%;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:
.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-
1px}.label-default{background-color:#
777}.label-default[href]:hover,.label-default[href]:focus{background-color:#
5e5e5e}.label-primary{background-color:#
428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#
3071a9}.label-success{background-color:#
5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#
449d44}.label-info{background-color:#
5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#
31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:
10px;padding:
3px
7px;font-size:
12px;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#
777;border-radius:
10px}.badge:empty{display:none}.btn .badge{position:relative;top:-
1px}.btn-xs .badge{top:
0;padding:
1px
5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active
>.badge,.nav-pills
>.active
>a
>.badge{color:#
428bca;background-color:#fff}.nav-pills
>li
>a
>.badge{margin-left:
3px}.jumbotron{padding:
30px;margin-bottom:
30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:
15px;font-size:
21px;font-weight:
200}.jumbotron
>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:
6px}.jumbotron .container{max-width:
100%}@media screen and (min-width:
768px){.jumbotron{padding-top:
48px;padding-bottom:
48px}.container .jumbotron{padding-right:
60px;padding-left:
60px}.jumbotron h1,.jumbotron .h1{font-size:
63px}}.thumbnail{display:block;padding:
4px;margin-bottom:
20px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.thumbnail
>img,.thumbnail a
>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#
428bca}.thumbnail .caption{padding:
9px;color:#
333}.alert{padding:
15px;margin-bottom:
20px;border:
1px solid transparent;border-radius:
4px}.alert h4{margin-top:
0;color:inherit}.alert .alert-link{font-weight:
700}.alert
>p,.alert
>ul{margin-bottom:
0}.alert
>p+p{margin-top:
5px}.alert-dismissable,.alert-dismissible{padding-right:
35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-
2px;right:-
21px;color:inherit}.alert-success{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#
2b542c}.alert-info{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#
245269}.alert-warning{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#
66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#
843534}@-webkit-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@-o-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}.progress{height:
20px;margin-bottom:
20px;overflow:hidden;background-color:#f5f5f5;border-radius:
4px;-webkit-box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1);box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1)}.progress-bar{float:left;width:
0;height:
100%;font-size:
12px;line-height:
20px;color:#fff;text-align:center;background-color:#
428bca;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);-webkit-transition:width
.6s ease;-o-transition:width
.6s ease;transition:width
.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);-webkit-background-size:
40px
40px;background-size:
40px
40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes
2s linear infinite;-o-animation:progress-bar-stripes
2s linear infinite;animation:progress-bar-stripes
2s linear infinite}.progress-bar[
aria-valuenow="
1"],.progress-bar[
aria-valuenow="
2"]{min-width:
30px}.progress-bar[
aria-valuenow="
0"]{min-width:
30px;color:#
777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#
5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-info{background-color:#
5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.media,.media-body{overflow:hidden;zoom:
1}.media,.media .media{margin-top:
15px}.media:first-child{margin-top:
0}.media-object{display:block}.media-heading{margin:
0 0 5px}.media
>.pull-left{margin-right:
10px}.media
>.pull-right{margin-left:
10px}.media-list{padding-left:
0;list-style:none}.list-group{padding-left:
0;margin-bottom:
20px}.list-group-item{position:relative;display:block;padding:
10px
15px;margin-bottom:-
1px;background-color:#fff;border:
1px solid #ddd}.list-group-item:first-child{border-top-left-radius:
4px;border-top-right-radius:
4px}.list-group-item:last-child{margin-bottom:
0;border-bottom-right-radius:
4px;border-bottom-left-radius:
4px}.list-group-item
>.badge{float:right}.list-group-item
>.badge+.badge{margin-right:
5px}a.list-group-item{color:#
555}a.list-group-item .list-group-item-heading{color:#
333}a.list-group-item:hover,a.list-group-item:focus{color:#
555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#
777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#
777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:
2;color:#fff;background-color:#
428bca;border-color:#
428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading
>small,.list-group-item.active:hover .list-group-item-heading
>small,.list-group-item.active:focus .list-group-item-heading
>small,.list-group-item.active .list-group-item-heading
>.small,.list-group-item.active:hover .list-group-item-heading
>.small,.list-group-item.active:focus .list-group-item-heading
>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#
3c763d;background-color:#dff0d8}a.list-group-item-success{color:#
3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#
3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#
3c763d;border-color:#
3c763d}.list-group-item-info{color:#
31708f;background-color:#d9edf7}a.list-group-item-info{color:#
31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#
31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#
31708f;border-color:#
31708f}.list-group-item-warning{color:#
8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#
8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#
8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#
8a6d3b;border-color:#
8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:
0;margin-bottom:
5px}.list-group-item-text{margin-bottom:
0;line-height:
1.3}.panel{margin-bottom:
20px;background-color:#fff;border:
1px solid transparent;border-radius:
4px;-webkit-box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05)}.panel-body{padding:
15px}.panel-heading{padding:
10px
15px;border-bottom:
1px solid transparent;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel-heading
>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:
0;margin-bottom:
0;font-size:
16px;color:inherit}.panel-title
>a{color:inherit}.panel-footer{padding:
10px
15px;background-color:#f5f5f5;border-top:
1px solid #ddd;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.list-group{margin-bottom:
0}.panel
>.list-group .list-group-item{border-width:
1px
0;border-radius:
0}.panel
>.list-group:first-child .list-group-item:first-child{border-top:
0;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.list-group:last-child .list-group-item:last-child{border-bottom:
0;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:
0}.list-group+.panel-footer{border-top-width:
0}.panel
>.table,.panel
>.table-responsive
>.table,.panel
>.panel-collapse
>.table{margin-bottom:
0}.panel
>.table:first-child,.panel
>.table-responsive:first-child
>.table:first-child{border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child{border-top-left-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child{border-top-right-radius:
3px}.panel
>.table:last-child,.panel
>.table-responsive:last-child
>.table:last-child{border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child{border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child{border-bottom-right-radius:
3px}.panel
>.panel-body+.table,.panel
>.panel-body+.table-responsive{border-top:
1px solid #ddd}.panel
>.table
>tbody:first-child
>tr:first-child th,.panel
>.table
>tbody:first-child
>tr:first-child td{border-top:
0}.panel
>.table-bordered,.panel
>.table-responsive
>.table-bordered{border:
0}.panel
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-bordered
>tfoot
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.panel
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-bordered
>tfoot
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.panel
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-bordered
>tbody
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>th{border-bottom:
0}.panel
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-bordered
>tfoot
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th{border-bottom:
0}.panel
>.table-responsive{margin-bottom:
0;border:
0}.panel-group{margin-bottom:
20px}.panel-group .panel{margin-bottom:
0;border-radius:
4px}.panel-group .panel+.panel{margin-top:
5px}.panel-group .panel-heading{border-bottom:
0}.panel-group .panel-heading+.panel-collapse
>.panel-body{border-top:
1px solid #ddd}.panel-group .panel-footer{border-top:
0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:
1px solid #ddd}.panel-default{border-color:#ddd}.panel-default
>.panel-heading{color:#
333;background-color:#f5f5f5;border-color:#ddd}.panel-default
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ddd}.panel-default
>.panel-heading .badge{color:#f5f5f5;background-color:#
333}.panel-default
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#
428bca}.panel-primary
>.panel-heading{color:#fff;background-color:#
428bca;border-color:#
428bca}.panel-primary
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#
428bca}.panel-primary
>.panel-heading .badge{color:#
428bca;background-color:#fff}.panel-primary
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#
428bca}.panel-success{border-color:#d6e9c6}.panel-success
>.panel-heading{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#d6e9c6}.panel-success
>.panel-heading .badge{color:#dff0d8;background-color:#
3c763d}.panel-success
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info
>.panel-heading{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#bce8f1}.panel-info
>.panel-heading .badge{color:#d9edf7;background-color:#
31708f}.panel-info
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning
>.panel-heading{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#faebcc}.panel-warning
>.panel-heading .badge{color:#fcf8e3;background-color:#
8a6d3b}.panel-warning
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger
>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ebccd1}.panel-danger
>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:
0;padding:
0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:
0;bottom:
0;left:
0;width:
100%;height:
100%;border:
0}.embed-responsive.embed-responsive-
16by9{padding-bottom:
56.25%}.embed-responsive.embed-responsive-
4by3{padding-bottom:
75%}.well{min-height:
20px;padding:
19px;margin-bottom:
20px;background-color:#f5f5f5;border:
1px solid #e3e3e3;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05)}.well blockquote{border-color:#ddd;border-color:rgba(
0,
0,
0,
.15)}.well-lg{padding:
24px;border-radius:
6px}.well-sm{padding:
9px;border-radius:
3px}.close{float:right;font-size:
21px;font-weight:
700;line-height:
1;color:#
000;text-shadow:
0 1px
0 #fff;filter:alpha(opacity=
20);opacity:
.2}.close:hover,.close:focus{color:#
000;text-decoration:none;cursor:pointer;filter:alpha(opacity=
50);opacity:
.5}button.close{-webkit-appearance:none;padding:
0;cursor:pointer;background:
0 0;border:
0}.modal-open{overflow:hidden}.modal{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:
0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform
.3s ease-out;-o-transition:-o-transform
.3s ease-out;transition:transform
.3s ease-out;-webkit-transform:translate3d(
0,-
25%,
0);-o-transform:translate3d(
0,-
25%,
0);transform:translate3d(
0,-
25%,
0)}.modal.in .modal-dialog{-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:
10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #
999;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;outline:
0;-webkit-box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5);box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5)}.modal-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1040;background-color:#
000}.modal-backdrop.fade{filter:alpha(opacity=
0);opacity:
0}.modal-backdrop.in{filter:alpha(opacity=
50);opacity:
.5}.modal-header{min-height:
16.43px;padding:
15px;border-bottom:
1px solid #e5e5e5}.modal-header .close{margin-top:-
2px}.modal-title{margin:
0;line-height:
1.42857143}.modal-body{position:relative;padding:
15px}.modal-footer{padding:
15px;text-align:right;border-top:
1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:
0;margin-left:
5px}.modal-footer .btn-group .btn+.btn{margin-left:-
1px}.modal-footer .btn-block+.btn-block{margin-left:
0}.modal-scrollbar-measure{position:absolute;top:-
9999px;width:
50px;height:
50px;overflow:scroll}@media (min-width:
768px){.modal-dialog{width:
600px;margin:
30px auto}.modal-content{-webkit-box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5);box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5)}.modal-sm{width:
300px}}@media (min-width:
992px){.modal-lg{width:
900px}}.tooltip{position:absolute;z-index:
1070;display:block;font-size:
12px;line-height:
1.4;visibility:visible;filter:alpha(opacity=
0);opacity:
0}.tooltip.in{filter:alpha(opacity=
90);opacity:
.9}.tooltip.top{padding:
5px
0;margin-top:-
3px}.tooltip.right{padding:
0 5px;margin-left:
3px}.tooltip.bottom{padding:
5px
0;margin-top:
3px}.tooltip.left{padding:
0 5px;margin-left:-
3px}.tooltip-inner{max-width:
200px;padding:
3px
8px;color:#fff;text-align:center;text-decoration:none;background-color:#
000;border-radius:
4px}.tooltip-arrow{position:absolute;width:
0;height:
0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:
0;left:
50%;margin-left:-
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-left .tooltip-arrow{bottom:
0;left:
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-right .tooltip-arrow{right:
5px;bottom:
0;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.right .tooltip-arrow{top:
50%;left:
0;margin-top:-
5px;border-width:
5px
5px
5px
0;border-right-color:#
000}.tooltip.left .tooltip-arrow{top:
50%;right:
0;margin-top:-
5px;border-width:
5px
0 5px
5px;border-left-color:#
000}.tooltip.bottom .tooltip-arrow{top:
0;left:
50%;margin-left:-
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-left .tooltip-arrow{top:
0;left:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-right .tooltip-arrow{top:
0;right:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.popover{position:absolute;top:
0;left:
0;z-index:
1060;display:none;max-width:
276px;padding:
1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;-webkit-box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2);box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2)}.popover.top{margin-top:-
10px}.popover.right{margin-left:
10px}.popover.bottom{margin-top:
10px}.popover.left{margin-left:-
10px}.popover-title{padding:
8px
14px;margin:
0;font-size:
14px;font-weight:
400;line-height:
18px;background-color:#f7f7f7;border-bottom:
1px solid #ebebeb;border-radius:
5px
5px
0 0}.popover-content{padding:
9px
14px}.popover
>.arrow,.popover
>.arrow:after{position:absolute;display:block;width:
0;height:
0;border-color:transparent;border-style:solid}.popover
>.arrow{border-width:
11px}.popover
>.arrow:after{content:"";border-width:
10px}.popover.top
>.arrow{bottom:-
11px;left:
50%;margin-left:-
11px;border-top-color:#
999;border-top-color:rgba(
0,
0,
0,
.25);border-bottom-width:
0}.popover.top
>.arrow:after{bottom:
1px;margin-left:-
10px;content:" ";border-top-color:#fff;border-bottom-width:
0}.popover.right
>.arrow{top:
50%;left:-
11px;margin-top:-
11px;border-right-color:#
999;border-right-color:rgba(
0,
0,
0,
.25);border-left-width:
0}.popover.right
>.arrow:after{bottom:-
10px;left:
1px;content:" ";border-right-color:#fff;border-left-width:
0}.popover.bottom
>.arrow{top:-
11px;left:
50%;margin-left:-
11px;border-top-width:
0;border-bottom-color:#
999;border-bottom-color:rgba(
0,
0,
0,
.25)}.popover.bottom
>.arrow:after{top:
1px;margin-left:-
10px;content:" ";border-top-width:
0;border-bottom-color:#fff}.popover.left
>.arrow{top:
50%;right:-
11px;margin-top:-
11px;border-right-width:
0;border-left-color:#
999;border-left-color:rgba(
0,
0,
0,
.25)}.popover.left
>.arrow:after{right:
1px;bottom:-
10px;content:" ";border-right-width:
0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:
100%;overflow:hidden}.carousel-inner
>.item{position:relative;display:none;-webkit-transition:
.6s ease-in-out left;-o-transition:
.6s ease-in-out left;transition:
.6s ease-in-out left}.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{line-height:
1}.carousel-inner
>.active,.carousel-inner
>.next,.carousel-inner
>.prev{display:block}.carousel-inner
>.active{left:
0}.carousel-inner
>.next,.carousel-inner
>.prev{position:absolute;top:
0;width:
100%}.carousel-inner
>.next{left:
100%}.carousel-inner
>.prev{left:-
100%}.carousel-inner
>.next.left,.carousel-inner
>.prev.right{left:
0}.carousel-inner
>.active.left{left:-
100%}.carousel-inner
>.active.right{left:
100%}.carousel-control{position:absolute;top:
0;bottom:
0;left:
0;width:
15%;font-size:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6);filter:alpha(opacity=
50);opacity:
.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.5)),to(rgba(
0,
0,
0,
.0001)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
80000000', endColorstr='#
00000000', GradientType=
1);background-repeat:repeat-x}.carousel-control.right{right:
0;left:auto;background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.0001)),to(rgba(
0,
0,
0,
.5)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
00000000', endColorstr='#
80000000', GradientType=
1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=
90);outline:
0;opacity:
.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:
50%;z-index:
5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:
50%;margin-left:-
10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:
50%;margin-right:-
10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:
20px;height:
20px;margin-top:-
10px;font-family:serif}.carousel-control .icon-prev:before{content:'\
2039'}.carousel-control .icon-next:before{content:'\
203a'}.carousel-indicators{position:absolute;bottom:
10px;left:
50%;z-index:
15;width:
60%;padding-left:
0;margin-left:-
30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:
10px;height:
10px;margin:
1px;text-indent:-
999px;cursor:pointer;background-color:#
000 \
9;background-color:rgba(
0,
0,
0,
0);border:
1px solid #fff;border-radius:
10px}.carousel-indicators .active{width:
12px;height:
12px;margin:
0;background-color:#fff}.carousel-caption{position:absolute;right:
15%;bottom:
20px;left:
15%;z-index:
10;padding-top:
20px;padding-bottom:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:
768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:
30px;height:
30px;margin-top:-
15px;font-size:
30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-
15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-
15px}.carousel-caption{right:
20%;left:
20%;padding-bottom:
30px}.carousel-indicators{bottom:
20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical
>.btn-group:before,.btn-group-vertical
>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical
>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:
0/
0 a;color:transparent;text-shadow:none;background-color:transparent;border:
0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:
767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:
767px){.visible-xs-block{display:block!important}}@media (max-width:
767px){.visible-xs-inline{display:inline!important}}@media (max-width:
767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-block{display:block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline{display:inline!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-block{display:block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline{display:inline!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:
1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:
1200px){.visible-lg-block{display:block!important}}@media (min-width:
1200px){.visible-lg-inline{display:inline!important}}@media (min-width:
1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:
767px){.hidden-xs{display:none!important}}@media (min-width:
768px) and (max-width:
991px){.hidden-sm{display:none!important}}@media (min-width:
992px) and (max-width:
1199px){.hidden-md{display:none!important}}@media (min-width:
1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
</style>
11 <meta content=
"Mnemonic code for generating deterministic keys" name=
"description"/>
12 <meta content=
"width=device-width, initial-scale=1.0" name=
"viewport" />
13 <meta content=
"bitcoin mnemonic converter" name=
"description" />
14 <meta content=
"Ian Coleman" name=
"author" />
15 <link type=
"image/x-icon" rel=
"icon" href=
"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
21 .form-control[readonly] {
34 background-color: orange;
38 border:
2px solid #
555;
40 border-bottom-left-radius:
20px
20px;
41 border-bottom-right-radius:
20px
20px;
45 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
46 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
51 .generate-container .strength {
52 /* override mobile width from bootstrap */
53 width: auto!important;
54 display: inline-block;
59 .languages a:nth-of-type(
1) {
64 font-family: monospace;
66 .entropy-container .filtered,
67 .entropy-container .binary {
68 word-wrap: break-word;
70 .entropy-container li {
94 background-color: #FFF;
95 border:
1px solid #CCC;
107 border-bottom:
1px dashed #
000;
108 text-decoration: none;
118 <div class=
"container">
120 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
121 <p class=
"version">v0.2
.9</p>
124 <div class=
"col-md-12">
126 <form class=
"form-horizontal" role=
"form">
127 <div class=
"form-group">
128 <div class=
"col-sm-2"></div>
129 <div class=
"col-sm-10">
130 <p>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).
</p>
132 For more info see the
133 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
137 <div class=
"form-group generate-container">
138 <label class=
"col-sm-2 control-label"></label>
139 <div class=
"col-sm-10">
140 <div class=
"form-inline">
141 <div class=
"input-group-inline">
142 <span>Generate a random mnemonic, or enter your own below
</span>:
143 <button class=
"btn generate">Generate
</button>
144 <select id=
"strength" class=
"strength form-control">
145 <option value=
"3">3</option>
146 <option value=
"6">6</option>
147 <option value=
"9">9</option>
148 <option value=
"12">12</option>
149 <option value=
"15" selected
>15</option>
150 <option value=
"18">18</option>
151 <option value=
"21">21</option>
152 <option value=
"24">24</option>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label">Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes">Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label">Entropy
</label>
169 <div class=
"col-sm-7">
170 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
171 <div class=
"row filter-warning text-danger hidden">
172 <p class=
"col-sm-12">
174 Some characters have been discarded
179 <label class=
"col-sm-3 control-label"><span class=
"more-info" title=
"Based on estimates from zxcvbn using Filtered Entropy">Time To Crack
</span></label>
180 <div class=
"crack-time col-sm-3 form-control-static"></div>
181 <label class=
"col-sm-3 control-label">Event Count
</label>
182 <div class=
"event-count col-sm-3 form-control-static"></div>
185 <label class=
"col-sm-3 control-label">Entropy Type
</label>
186 <div class=
"type col-sm-3 form-control-static"></div>
187 <label class=
"col-sm-3 control-label">Bits Per Event
</label>
188 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
191 <label class=
"col-sm-3 control-label">Raw Entropy Words
</label>
192 <div class=
"word-count col-sm-3 form-control-static"></div>
193 <label class=
"col-sm-3 control-label"><span class=
"more-info" title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
194 <div class=
"bits col-sm-3 form-control-static"></div>
196 <label class=
"col-sm-3 control-label">Filtered Entropy
</label>
197 <div class=
"filtered col-sm-9 form-control-static"></div>
198 <label class=
"col-sm-3 control-label">Raw Binary
</label>
199 <div class=
"binary col-sm-9 form-control-static"></div>
200 <label class=
"col-sm-3 control-label">Mnemonic Length
</label>
201 <div class=
"col-sm-9">
202 <select class=
"mnemonic-length form-control">
203 <option value=
"raw" selected
>Use Raw Entropy (
3 words per
32 bits)
</option>
204 <option value=
"12">12 <span>Words
</span></option>
205 <option value=
"15">15 <span>Words
</option>
206 <option value=
"18">18 <span>Words
</span></option>
207 <option value=
"21">21 <span>Words
</span></option>
208 <option value=
"24">24 <span>Words
</span></option>
212 <div class=
"col-sm-3">
213 <p>Valid entropy values include:
</p>
215 <li><strong>Binary
</strong> [
0-
1]
<br>101010011</li>
216 <li><strong>Base
6</strong> [
0-
5]
<br>123434014</li>
217 <li><strong>Dice
</strong> [
1-
6]
<br>62535634</li>
218 <li><strong>Base
10</strong> [
0-
9]
<br>90834528</li>
219 <li><strong>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
220 <li><strong>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
225 <div class=
"form-group">
226 <div class=
"col-sm-2"></div>
227 <div class=
"col-sm-10 checkbox">
229 <input type=
"checkbox" class=
"use-entropy">
230 <span>Supply my own source of entropy
</span>
234 <div class=
"form-group">
235 <label class=
"col-sm-2 control-label">Mnemonic Language
</label>
236 <div class=
"col-sm-10 languages">
237 <div class=
"form-control no-border">
238 <a href=
"#english">English
</a>
239 <a href=
"#japanese" title=
"Japanese">日本語
</a>
240 <a href=
"#spanish" title=
"Spanish">Español
</a>
241 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
242 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
243 <a href=
"#french" title=
"French">Français
</a>
244 <a href=
"#italian" title=
"Italian">Italiano
</a>
248 <div class=
"form-group">
249 <label for=
"phrase" class=
"col-sm-2 control-label">BIP39 Mnemonic
</label>
250 <div class=
"col-sm-10">
251 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
254 <div class=
"form-group">
255 <label for=
"passphrase" class=
"col-sm-2 control-label">BIP39 Passphrase (optional)
</label>
256 <div class=
"col-sm-10">
257 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
260 <div class=
"form-group">
261 <label for=
"seed" class=
"col-sm-2 control-label">BIP39 Seed
</label>
262 <div class=
"col-sm-10">
263 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
266 <div class=
"form-group">
267 <label for=
"network-phrase" class=
"col-sm-2 control-label">Coin
</label>
268 <div class=
"col-sm-10">
269 <select id=
"network-phrase" class=
"network form-control">
270 <!-- populated by javascript -->
274 <div class=
"form-group">
275 <label for=
"root-key" class=
"col-sm-2 control-label">BIP32 Root Key
</label>
276 <div class=
"col-sm-10">
277 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
280 <div class=
"form-group litecoin-ltub-container hidden">
281 <label for=
"litecoin-use-ltub" class=
"col-sm-2 control-label">Prefixes
</label>
282 <div class=
"col-sm-10 checkbox">
284 <input type=
"checkbox" id=
"litecoin-use-ltub" class=
"litecoin-use-ltub">
285 Use
<code>Ltpv / Ltub
</code> instead of
<code>xprv / xpub
</code>
296 <div class=
"col-md-12">
297 <h2>Derivation Path
</h2>
298 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
300 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
302 <li id=
"bip44-tab" class=
"active">
303 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
306 <a href=
"#bip49" role=
"tab" data-toggle=
"tab">BIP49
</a>
309 <div class=
"derivation-type tab-content">
310 <div id=
"bip44" class=
"tab-pane active">
311 <form class=
"form-horizontal" role=
"form">
313 <div class=
"col-sm-2"></div>
314 <div class=
"col-sm-10">
316 For more info see the
317 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
320 <div class=
"form-group">
321 <label for=
"purpose" class=
"col-sm-2 control-label">
322 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank">Purpose
</a>
324 <div class=
"col-sm-10">
325 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44" readonly
>
328 <div class=
"form-group">
329 <label for=
"coin" class=
"col-sm-2 control-label">
330 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank">Coin
</a>
332 <div class=
"col-sm-10">
333 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
336 <div class=
"form-group">
337 <label for=
"account" class=
"col-sm-2 control-label">
338 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank">Account
</a>
340 <div class=
"col-sm-10">
341 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
344 <div class=
"form-group">
345 <label for=
"change" class=
"col-sm-2 control-label">
346 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank">External / Internal
</a>
348 <div class=
"col-sm-10">
349 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
352 <div class=
"form-group">
353 <label class=
"col-sm-2 control-label">
355 <div class=
"col-sm-10">
356 <p>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
359 <div class=
"form-group">
360 <label for=
"account-xprv" class=
"col-sm-2 control-label">
361 <span>Account Extended Private Key
</span>
363 <div class=
"col-sm-10">
364 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
367 <div class=
"form-group">
368 <label for=
"account-xpub" class=
"col-sm-2 control-label">
369 <span>Account Extended Public Key
</span>
371 <div class=
"col-sm-10">
372 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
375 <div class=
"form-group">
376 <label class=
"col-sm-2 control-label">
378 <div class=
"col-sm-10">
379 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
382 <div class=
"form-group">
383 <label for=
"bip44-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
384 <div class=
"col-sm-10">
385 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
390 <div id=
"bip32" class=
"tab-pane">
391 <form class=
"form-horizontal" role=
"form">
393 <div class=
"col-sm-2"></div>
394 <div class=
"col-sm-10">
396 For more info see the
397 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
400 <div class=
"form-group">
401 <label for=
"bip32-client" class=
"col-sm-2 control-label">Client
</label>
402 <div class=
"col-sm-10">
403 <select id=
"bip32-client" class=
"client form-control">
404 <option value=
"custom">Custom derivation path
</option>
405 <!-- populated by javascript -->
409 <div class=
"form-group">
410 <label for=
"bip32-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
411 <div class=
"col-sm-10">
412 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
415 <div class=
"form-group">
416 <div class=
"col-sm-2"></div>
417 <label class=
"col-sm-10">
418 <input class=
"hardened-addresses" type=
"checkbox">
419 <span>Use hardened addresses
</span>
422 <div class=
"form-group">
423 <div class=
"col-sm-2"></div>
424 <label class=
"col-sm-10">
425 <input class=
"p2wpkh-nested-in-p2sh" type=
"checkbox">
426 <span>Use SegWit addresses (ie P2WPKH Nested In P2SH)
</span>
429 <div class=
"form-group">
430 <label for=
"core-path" class=
"col-sm-2 control-label">Bitcoin Core
</label>
431 <div class=
"col-sm-10">
432 <p class=
"form-control no-border">
433 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
435 <p class=
"form-control no-border">
436 For more info see the
437 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
441 <div class=
"form-group">
442 <label for=
"core-path" class=
"col-sm-2 control-label">Multibit
</label>
443 <div class=
"col-sm-10">
444 <p class=
"form-control no-border">
445 <span>Use path
<code>m/
0'/
0</code>.
</span>
447 <p class=
"form-control no-border">
448 <span>For more info see
</span>
449 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
453 <div class=
"form-group">
454 <label class=
"col-sm-2 control-label">Block Explorers
</label>
455 <div class=
"col-sm-10">
456 <p class=
"form-control no-border">
457 <span>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
458 <span>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
460 <p class=
"form-control no-border">
461 <span>Can be used with
</span>:
462 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
468 <div id=
"bip49" class=
"tab-pane">
469 <form class=
"form-horizontal" role=
"form">
471 <div class=
"unavailable hidden">
472 <div class=
"form-group">
473 <div class=
"col-sm-2"></div>
474 <div class=
"col-sm-10">
475 <p>BIP49 is unavailable for this coin.
</p>
479 <div class=
"available">
480 <div class=
"col-sm-2"></div>
481 <div class=
"col-sm-10">
483 For more info see the
484 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">BIP49 spec
</a>.
487 <div class=
"form-group">
488 <label for=
"purpose" class=
"col-sm-2 control-label">
489 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank">Purpose
</a>
491 <div class=
"col-sm-10">
492 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"49" readonly
>
495 <div class=
"form-group">
496 <label for=
"coin" class=
"col-sm-2 control-label">
497 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank">Coin
</a>
499 <div class=
"col-sm-10">
500 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
503 <div class=
"form-group">
504 <label for=
"account" class=
"col-sm-2 control-label">
505 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank">Account
</a>
507 <div class=
"col-sm-10">
508 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
511 <div class=
"form-group">
512 <label for=
"change" class=
"col-sm-2 control-label">
513 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank">External / Internal
</a>
515 <div class=
"col-sm-10">
516 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
519 <div class=
"form-group">
520 <label class=
"col-sm-2 control-label">
522 <div class=
"col-sm-10">
523 <p>The account extended keys can be used for importing to most BIP49 compatible wallets.
</p>
526 <div class=
"form-group">
527 <label for=
"account-xprv" class=
"col-sm-2 control-label">
528 <span>Account Extended Private Key
</span>
530 <div class=
"col-sm-10">
531 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
534 <div class=
"form-group">
535 <label for=
"account-xpub" class=
"col-sm-2 control-label">
536 <span>Account Extended Public Key
</span>
538 <div class=
"col-sm-10">
539 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
542 <div class=
"form-group">
543 <label class=
"col-sm-2 control-label">
545 <div class=
"col-sm-10">
546 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
549 <div class=
"form-group">
550 <label for=
"bip49-path" class=
"col-sm-2 control-label">BIP32 Derivation Path
</label>
551 <div class=
"col-sm-10">
552 <input id=
"bip49-path" type=
"text" class=
"path form-control" value=
"m/49'/0'/0'/0" readonly=
"readonly">
559 <form class=
"form-horizontal" role=
"form">
560 <div class=
"form-group">
561 <label for=
"extended-priv-key" class=
"col-sm-2 control-label">BIP32 Extended Private Key
</label>
562 <div class=
"col-sm-10">
563 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
566 <div class=
"form-group">
567 <label for=
"extended-pub-key" class=
"col-sm-2 control-label">BIP32 Extended Public Key
</label>
568 <div class=
"col-sm-10">
569 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
579 <div class=
"col-md-12">
580 <h2>Derived Addresses
</h2>
581 <p>Note these addreses are derived from the BIP32 Extended Key
</p>
583 <div class=
"col-md-12 use-bitpay-addresses-container hidden">
584 <div class=
"checkbox">
586 <input type=
"checkbox" class=
"use-bitpay-addresses">
587 <span>Use BitPay-style addresses for Bitcoin Cash (ie starting with 'C' instead of '
1')
</span>
591 <div class=
"col-md-12">
592 <table class=
"table table-striped">
595 <div class=
"input-group">
596 <span>Path
</span>
597 <button class=
"index-toggle">Toggle
</button>
601 <div class=
"input-group">
602 <span>Address
</span>
603 <button class=
"address-toggle">Toggle
</button>
607 <div class=
"input-group">
608 <span>Public Key
</span>
609 <button class=
"public-key-toggle">Toggle
</button>
613 <div class=
"input-group">
614 <span>Private Key
</span>
615 <button class=
"private-key-toggle">Toggle
</button>
619 <tbody class=
"addresses monospace">
620 <tr><td> </td><td> </td><td> </td><td> </td></tr>
621 <tr><td> </td><td> </td><td> </td><td> </td></tr>
622 <tr><td> </td><td> </td><td> </td><td> </td></tr>
623 <tr><td> </td><td> </td><td> </td><td> </td></tr>
624 <tr><td> </td><td> </td><td> </td><td> </td></tr>
630 <input type=
"number" class=
"rows-to-add" value=
"20">
631 <button class=
"more">more rows
</button>
632 <span>starting from index
</span>
633 <input type=
"number" class=
"more-rows-start-index">
634 <span>(leave blank to generate from next index)
</span>
639 <div class=
"col-md-12">
641 <h3>BIP39
<span class=
"small">Mnemonic code for generating deterministic keys
</span></h3>
644 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
646 <h3>BIP32
<span class=
"small">Hierarchical Deterministic Wallets
</span></h3>
649 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
653 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
655 <h3>BIP44
<span class=
"small">Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
658 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
660 <h3>BIP49
<span class=
"small">Derivation scheme for P2WPKH-nested-in-P2SH based accounts
</span></h3>
663 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">official BIP49 spec
</a>
665 <h3>Private Keys
</h3>
669 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
671 <span>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
673 <h3 id=
"entropy-notes">Entropy
</h3>
676 Entropy values must be sourced from a
677 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
679 <span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
681 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
682 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
683 random enough for the needs of this tool.
687 <strong><span>Do not store entropy.
</span></strong>
690 <span>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
691 <span>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
692 <span><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
696 The random mnemonic generator on this page uses a
697 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
699 <span>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
700 <span>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
701 <span>In that case you might choose to use your own source of entropy.
</span>
704 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank">You are not a good source of entropy.
</a>
708 <span>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
711 <p>The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
</p>
718 <div class=
"col-md-12">
719 <h2>Alternative Tools
</h2>
720 <p>This tool is interoperable with any BIP39 wallet.
</p>
721 <p>Some similar tools to this one (ie not consumer wallets) are
</p>
723 <a href=
"https://bip32jp.github.io/english/">
724 https://bip32jp.github.io/english/
733 <div class=
"col-md-12">
735 <h2>Offline Usage
</h2>
738 You can use this tool without having to be online.
741 In your browser, select file save-as, and save this page
745 Double-click that file to open it in a browser
746 on any offline computer.
749 <span>Alternatively, download the file from the repository
</span>
751 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
760 <div class=
"col-md-12">
762 <h2>This project is
100% open-source code
</h2>
765 <span>Get the source code from the repository
</span>
767 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
768 https://github.com/iancoleman/bip39
775 <span>BitcoinJS -
</span>
776 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
777 https://github.com/bitcoinjs/bitcoinjs-lib
782 <span>jsBIP39 -
</span>
783 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
784 https://github.com/iancoleman/jsbip39
790 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
791 https://github.com/bitwiseshiftleft/sjcl
796 <span>jQuery -
</span>
797 <a href=
"https://jquery.com/" target=
"_blank">
803 <span>Twitter Bootstrap -
</span>
804 <a href=
"http://getbootstrap.com/" target=
"_blank">
805 http://getbootstrap.com/
814 <div class=
"qr-container hidden">
815 <div class=
"qr-hint bg-primary hidden">Click field to hide QR
</div>
816 <div class=
"qr-hint bg-primary">Click field to show QR
</div>
817 <div class=
"qr-hider hidden">
818 <div class=
"qr-image"></div>
819 <div class=
"qr-warning bg-primary">Caution: Scanner may keep history
</div>
823 <div class=
"feedback-container">
824 <div class=
"feedback">Loading...
</div>
827 <script type=
"text/template" id=
"address-row-template">
829 <td class=
"index"><span></span></td>
830 <td class=
"address"><span data-show-qr
></span></td>
831 <td class=
"pubkey"><span data-show-qr
></span></td>
832 <td class=
"privkey"><span data-show-qr
></span></td>
836 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
837 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
838 // but is not required in any modern browsers.
839 // For more information, see
840 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
842 //----------------------------------------------------------------------
844 // ECMAScript
2015 Polyfills
846 //----------------------------------------------------------------------
851 // Set this to always override native implementations, for testing
852 // the polyfill in browsers with partial/full ES2015 support.
853 var OVERRIDE_NATIVE_FOR_TESTING = false;
855 var undefined = (void
0); // Paranoia
860 return o === global ? undefined : o;
863 function hook(o, p, f) {
865 console.assert(typeof op === 'function', 'Hooking a non-function');
867 var o = strict(this);
868 var r = f.apply(o, arguments);
869 return r !== undefined ? r : op.apply(o, arguments);
873 function isSymbol(s) {
874 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
877 function getPropertyDescriptor(target, name) {
878 var desc = Object.getOwnPropertyDescriptor(target, name);
879 var proto = Object.getPrototypeOf(target);
880 while (!desc && proto) {
881 desc = Object.getOwnPropertyDescriptor(proto, name);
882 proto = Object.getPrototypeOf(proto);
887 var enqueue = (function(nativePromise, nativeSetImmediate) {
889 return function(job) { nativePromise.resolve().then(function() { job(); }); };
890 if (nativeSetImmediate)
891 return function(job) { nativeSetImmediate(job); };
892 return function(job) { setTimeout(job,
0); };
893 }(global['Promise'], global['setImmediate']));
895 function define(o, p, v, override) {
896 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
899 if (typeof v === 'function') {
900 // Sanity check that functions are appropriately named (where possible)
901 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
902 Object.defineProperty(o, p, {
909 Object.defineProperty(o, p, {
918 function set_internal(o, p, v) {
919 Object.defineProperty(o, p, {
927 // Snapshot intrinsic functions
928 var $isNaN = global.isNaN,
929 $parseInt = global.parseInt,
930 $parseFloat = global.parseFloat;
933 LOG10E = Math.LOG10E,
943 random = Math.random,
946 var orig_match = String.prototype.match,
947 orig_replace = String.prototype.replace,
948 orig_search = String.prototype.search,
949 orig_split = String.prototype.split;
951 // These are used for implementing the polyfills, but not exported.
953 // Inspired by https://gist.github.com/
1638059
955 function EphemeronTable() {
956 var secretKey = ObjectCreate(null);
958 function conceal(o) {
959 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
960 Object.defineProperty(o, 'valueOf', {
961 value: (function(secretKey) {
962 return function (k) {
963 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
974 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
975 return v === o ? null : v;
980 secretKey = ObjectCreate(null);
982 remove: function(key) {
983 var secrets = reveal(key);
984 if (secrets && HasOwnProperty(secrets, 'value')) {
985 delete secrets.value;
990 get: function(key, defaultValue) {
991 var secrets = reveal(key);
992 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
995 var secrets = reveal(key);
996 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
998 set: function(key, value) {
999 var secrets = reveal(key) || conceal(key);
1000 secrets.value = value;
1005 var empty = Object.create(null);
1007 //----------------------------------------------------------------------
1010 // http://www.ecma-international.org/ecma-
262/
6.0/
1012 //----------------------------------------------------------------------
1014 // ---------------------------------------
1015 //
19.4 Symbol Objects
1016 // ---------------------------------------
1018 // NOTE: Symbols are defined here - out of spec order - since we need the
1019 // properties and prototype to be populated for other polyfills.
1021 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
1025 var secret = Object.create(null);
1027 symbolForKey = function(k) {
1028 return symbolMap[k];
1031 var GlobalSymbolRegistry = [];
1033 function unique(bits) {
1034 return Array(bits +
1).join('x').replace(/x/g, function() {
1035 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
1039 //
19.4.1 The Symbol Constructor
1040 //
19.4.1.1 Symbol ( description=undefined )
1041 function Symbol(description) {
1042 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1043 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1045 var descString = description === undefined ? undefined : String(description);
1047 set_internal(this, '[[SymbolData]]', unique(
128));
1048 set_internal(this, '[[Description]]', descString);
1050 symbolMap[this] = this;
1054 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1055 global.Symbol = Symbol;
1057 //
19.4.2 Properties of the Symbol Constructor
1059 //
19.4.2.1 Symbol.for (key)
1060 define(Symbol, 'for', function for_(key) {
1061 var stringKey = String(key);
1062 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1063 var e = GlobalSymbolRegistry[i];
1064 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1066 var newSymbol = Symbol(key);
1067 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1071 //
19.4.2.2 Symbol.hasInstance
1072 //
19.4.2.3 Symbol.isConcatSpreadable
1074 //
19.4.2.4 Symbol.iterator
1075 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1077 //
19.4.2.5 Symbol.keyFor (sym)
1078 define(Symbol, 'keyFor', function keyFor(sym) {
1079 if (!(sym instanceof Symbol)) throw TypeError();
1080 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1081 var e = GlobalSymbolRegistry[i];
1082 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1087 //
19.4.2.6 Symbol.match
1088 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1090 //
19.4.2.7 Symbol.prototype
1092 //
19.4.2.8 Symbol.replace
1093 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1095 //
19.4.2.9 Symbol.search
1096 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1098 //
19.4.2.10 Symbol.species
1100 //
19.4.2.11 Symbol.search
1101 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1103 //
19.4.2.12 Symbol.toPrimitive
1105 //
19.4.2.13 Symbol.toStringTag
1106 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1108 //
19.4.2.14 Symbol.unscopables
1110 //
19.4.3 Properties of the Symbol Prototype Object
1111 //
19.4.3.1 Symbol.prototype.constructor
1113 //
19.4.3.2 Symbol.prototype.toString ( )
1114 Object.defineProperty(Symbol.prototype, 'toString', {
1115 value: function toString() {
1116 var s = strict(this);
1117 var desc = s['[[Description]]'];
1118 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1120 configurable: true, writeable: true, enumerable: false });
1122 //
19.4.3.3 Symbol.prototype.valueOf ( )
1123 Object.defineProperty(Symbol.prototype, 'valueOf', {
1124 value: function valueOf() {
1125 // To prevent automatic string conversion:
1128 // Spec has approximately the following:
1129 //var s = strict(this);
1130 //if (Type(s) === 'symbol') return s;
1131 //if (Type(s) !== 'object') throw TypeError();
1132 //if (!('[[SymbolData]]' in s)) throw TypeError();
1133 //return s['[[SymbolData]]'];
1135 configurable: true, writeable: true, enumerable: false });
1137 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1138 // (Done later to polyfill partial implementations)
1140 //
19.4.4 Properties of Symbol Instances
1143 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1145 // Defined here so that other prototypes can reference it
1146 //
25.1.2 The %IteratorPrototype% Object
1147 var $IteratorPrototype$ = {};
1149 //----------------------------------------
1150 //
6 ECMAScript Data Types and Values
1151 //----------------------------------------
1153 //
6.1 ECMAScript Language Types
1155 // "Type(x)" is used as shorthand for "the type of x"...
1158 case 'undefined': return 'undefined';
1159 case 'boolean': return 'boolean';
1160 case 'number': return 'number';
1161 case 'string': return 'string';
1162 case 'symbol': return 'symbol';
1164 if (v === null) return 'null';
1165 if (v instanceof global.Symbol) return 'symbol';
1170 //
6.1.5.1 Well-Known Symbols
1171 var $$iterator = global.Symbol.iterator,
1172 $$match = global.Symbol.match,
1173 $$replace = global.Symbol.replace,
1174 $$search = global.Symbol.search,
1175 $$split = global.Symbol.split,
1176 $$toStringTag = global.Symbol.toStringTag;
1178 //----------------------------------------
1179 //
7 Abstract Operations
1180 //----------------------------------------
1182 //----------------------------------------
1183 //
7.1 Type Conversion
1184 //----------------------------------------
1186 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1187 // just use valueOf()
1189 //
7.1.2 ToBoolean ( argument )
1190 // just use Boolean()
1192 //
7.1.3 ToNumber ( argument )
1193 // just use Number()
1195 //
7.1.4 ToInteger ( argument )
1196 function ToInteger(n) {
1198 if ($isNaN(n)) return
0;
1199 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1200 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1203 //
7.1.5 ToInt32 ( argument )
1204 function ToInt32(v) { return v
>> 0; }
1206 //
7.1.6 ToUint32 ( argument )
1207 function ToUint32(v) { return v
>>> 0; }
1209 //
7.1.7 ToInt16 ( argument )
1210 function ToInt16(v) { return (v <<
16)
>> 16; }
1212 //
7.1.8 ToUint16 ( argument )
1213 function ToUint16(v) { return v &
0xFFFF; }
1215 //
7.1.9 ToInt8 ( argument )
1216 function ToInt8(v) { return (v <<
24)
>> 24; }
1218 //
7.1.10 ToUint8 ( argument )
1219 function ToUint8(v) { return v &
0xFF; }
1221 //
7.1.11 ToUint8Clamp ( argument )
1222 function ToUint8Clamp(argument) {
1223 var number = Number(argument);
1224 if ($isNaN(number)) return
0;
1225 if (number <=
0) return
0;
1226 if (number
>=
255) return
255;
1227 var f = floor(number);
1228 if ((f +
0.5) < number) return f +
1;
1229 if (number < (f +
0.5)) return f;
1230 if (f %
2) return f +
1;
1234 //
7.1.12 ToString ( argument )
1235 // just use String()
1237 //
7.1.13 ToObject ( argument )
1238 function ToObject(v) {
1239 if (v === null || v === undefined) throw TypeError();
1243 //
7.1.14 ToPropertyKey ( argument )
1244 function ToPropertyKey(v) {
1248 //
7.1.15 ToLength ( argument )
1249 function ToLength(v) {
1250 var len = ToInteger(v);
1251 if (len <=
0) return
0;
1252 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1253 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1256 //
7.1.16 CanonicalNumericIndexString ( argument )
1258 //----------------------------------------
1259 //
7.2 Testing and Comparison Operations
1260 //----------------------------------------
1262 //
7.2.1 RequireObjectCoercible ( argument )
1263 //
7.2.2 IsArray ( argument )
1265 //
7.2.3 IsCallable ( argument )
1266 function IsCallable(o) { return typeof o === 'function'; }
1268 //
7.2.4 IsConstructor ( argument )
1269 function IsConstructor(o) {
1270 // Hacks for Safari
7 TypedArray XXXConstructor objects
1271 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1272 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1273 // TODO: Can this be improved on?
1274 return typeof o === 'function';
1277 //
7.2.5 IsExtensible (O)
1278 //
7.2.6 IsInteger ( argument )
1280 //
7.2.7 IsPropertyKey ( argument )
1281 function IsPropertyKey(argument) {
1282 if (Type(argument) === 'string') return true;
1283 if (Type(argument) === 'symbol') return true;
1287 //
7.2.8 IsRegExp ( argument )
1288 //
7.2.5 IsConstructor ( argument )
1290 //
7.2.9 SameValue(x, y)
1291 function SameValue(x, y) {
1292 if (typeof x !== typeof y) return false;
1297 if (x !== x && y !== y) return true;
1298 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1308 //
7.2.10 SameValueZero(x, y)
1309 function SameValueZero(x, y) {
1310 if (typeof x !== typeof y) return false;
1315 if (x !== x && y !== y) return true;
1325 //----------------------------------------
1326 //
7.3 Operations on Objects
1327 //----------------------------------------
1330 // - just use o.p or o[p]
1332 //
7.3.2 GetV (V, P)
1333 function GetV(v, p) {
1334 var o = ToObject(v);
1338 //
7.3.3 Set (O, P, V, Throw)
1339 // - just use o.p = v or o[p] = v
1344 //
7.3.9 GetMethod (O, P)
1345 function GetMethod(o, p) {
1346 var func = GetV(o, p);
1347 if (func === undefined || func === null) return undefined;
1348 if (!IsCallable(func)) throw TypeError();
1352 //
7.3.10 HasProperty (O, P)
1353 function HasProperty(o, p) {
1355 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1356 if (Type(o) !== 'object') return false;
1357 o = Object.getPrototypeOf(o);
1362 //
7.3.11 HasOwnProperty (O, P)
1363 function HasOwnProperty(o, p) {
1364 return Object.prototype.hasOwnProperty.call(o, p);
1367 //----------------------------------------
1368 //
7.4 Operations on Iterator Objects
1369 //----------------------------------------
1371 //
7.4.1 GetIterator ( obj, method )
1372 function GetIterator(obj, method) {
1373 if (arguments.length <
2)
1374 method = GetMethod(obj, $$iterator);
1375 var iterator = method.call(obj);
1376 if (Type(iterator) !== 'object') throw TypeError();
1380 //
7.4.2 IteratorNext ( iterator, value )
1381 function IteratorNext(iterator, value) {
1382 if (arguments.length <
2)
1383 var result = iterator.next();
1385 result = iterator.next(value);
1386 if (Type(result) !== 'object') throw TypeError();
1390 //
7.4.3 IteratorComplete ( iterResult )
1391 function IteratorComplete(iterResult) {
1392 console.assert(Type(iterResult) === 'object');
1393 return Boolean(iterResult.done);
1396 //
7.4.4 IteratorValue ( iterResult )
1397 function IteratorValue(iterResult) {
1398 console.assert(Type(iterResult) === 'object');
1399 return iterResult.value;
1402 //
7.4.5 IteratorStep ( iterator )
1403 function IteratorStep( iterator, value ) {
1404 var result = IteratorNext(iterator, value);
1405 var done = result['done'];
1406 if (Boolean(done) === true) return false;
1410 //
7.4.6 IteratorClose( iterator, completion )
1411 function IteratorClose( iterator, completion ) {
1412 console.assert(Type(iterator) === 'object');
1413 var _return = GetMethod(iterator, 'return');
1414 if (_return === undefined) return completion;
1416 var innerResult = _return[iterator]();
1418 // TODO: If completion.[[type]] is throw, return completion
1421 if (Type(innerResult) !== 'object') throw TypeError();
1425 //
7.4.7 CreateIterResultObject (value, done)
1426 function CreateIterResultObject(value, done) {
1427 console.assert(Type(done) === 'boolean');
1429 obj["value"] = value;
1434 //
7.4.8 CreateListIterator (list)
1435 //
7.4.8.1 ListIterator next( )
1436 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1437 //
7.4.9.1 CompoundIterator next( )
1439 //----------------------------------------
1440 //
8 Executable Code and Execution Contexts
1441 //----------------------------------------
1443 //----------------------------------------
1444 //
8.4 Jobs and Job Queues
1445 //----------------------------------------
1447 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1448 function EnqueueJob(queueName, job, args) {
1449 var fn = function() { job.apply(undefined, args); };
1453 //
8.4.2 NextJob result
1454 function NextJob(result) {
1458 //----------------------------------------
1459 //
9 Ordinary and Exotic Objects Behaviors
1460 //----------------------------------------
1462 //
9.1.11 [[Enumerate]] ()
1463 function Enumerate(obj) {
1465 if (Object(obj) !== obj) return e;
1466 var visited = new Set;
1467 while (obj !== null) {
1468 Object.getOwnPropertyNames(obj).forEach(function(name) {
1469 if (!visited.has(name)) {
1470 var desc = Object.getOwnPropertyDescriptor(obj, name);
1473 if (desc.enumerable) e.push(name);
1477 obj = Object.getPrototypeOf(obj);
1479 return e[$$iterator]();
1482 //
9.1.12 [[OwnPropertyKeys]] ( )
1483 function OwnPropertyKeys(o) {
1484 return Object.getOwnPropertyNames(o);
1487 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1488 function ObjectCreate(proto, internalSlotsList) {
1489 return Object.create(proto, internalSlotsList);
1492 // ---------------------------------------
1493 //
19 Fundamental Objects
1494 // ---------------------------------------
1496 // ---------------------------------------
1497 //
19.1 Object Objects
1498 // ---------------------------------------
1500 //
19.1.1 The Object Constructor
1501 //
19.1.1.1 Object ( [ value ] )
1502 //
19.1.2 Properties of the Object Constructor
1503 //
19.1.2.1 Object.assign ( target, ...sources )
1506 function assign(target, /*...*/sources) {
1507 var to = ToObject(target);
1508 if (arguments.length <
2) return to;
1510 var sourcesIndex =
1;
1511 while (sourcesIndex < arguments.length) {
1512 var nextSource = arguments[sourcesIndex++];
1513 if (nextSource === undefined || nextSource === null) {
1516 var from = ToObject(nextSource);
1517 keys = OwnPropertyKeys(from);
1519 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1520 var nextKey = keys[keysIndex];
1521 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1522 if (desc !== undefined && desc.enumerable) {
1523 var propValue = from[nextKey];
1524 to[nextKey] = propValue;
1531 //
19.1.2.2 Object.create ( O [ , Properties ] )
1532 //
19.1.2.3 Object.defineProperties ( O, Properties )
1533 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1534 //
19.1.2.5 Object.freeze ( O )
1535 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1538 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1539 $getOwnPropertyNames = Object.getOwnPropertyNames,
1540 $keys = Object.keys,
1541 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1543 function isStringKey(k) { return !symbolForKey(k); }
1545 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1547 Object, 'getOwnPropertyNames',
1548 function getOwnPropertyNames(o) {
1549 if (Object.prototype.toString.call(o) === '[object Window]') {
1550 // Workaround for cross-realm calling by IE itself.
1551 // https://github.com/inexorabletash/polyfill/issues/
96
1553 return $getOwnPropertyNames(o).filter(isStringKey);
1555 return $window_names.slice();
1558 return $getOwnPropertyNames(o).filter(isStringKey);
1561 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1563 Object, 'getOwnPropertySymbols',
1564 function getOwnPropertySymbols(o) {
1565 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1568 //
19.1.2.14 Object.keys ( O )
1572 return $keys(o).filter(isStringKey);
1576 //
19.1.2.9 Object.getPrototypeOf ( O )
1577 //
19.1.2.10 Object.is ( value1, value2 )
1580 function is(value1, value2) {
1581 return SameValue(value1, value2);
1584 //
19.1.2.11 Object.isExtensible ( O )
1585 //
19.1.2.12 Object.isFrozen ( O )
1586 //
19.1.2.13 Object.isSealed ( O )
1588 //
19.1.2.14 Object.keys ( O )
1591 //
19.1.2.15 Object.preventExtensions ( O )
1592 //
19.1.2.16 Object.prototype
1593 //
19.1.2.17 Object.seal ( O )
1595 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1597 Object, 'setPrototypeOf',
1598 function setPrototypeOf(o, proto) {
1599 if (Type(o) !== 'object') throw TypeError();
1600 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1601 o.__proto__ = proto;
1606 //
19.1.3 Properties of the Object Prototype Object
1607 //
19.1.3.1 Object.prototype.constructor
1608 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1609 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1610 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1611 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1612 //
19.1.3.6 Object.prototype.toString ( )
1613 hook(Object.prototype, 'toString',
1615 var o = strict(this);
1616 if (o === Object(o) && $$toStringTag in o) {
1617 return '[object ' + o[$$toStringTag] + ']';
1622 //
19.1.3.7 Object.prototype.valueOf ( )
1623 //
19.1.4 Properties of Object Instances
1625 // ---------------------------------------
1626 //
19.2 Function Objects
1627 // ---------------------------------------
1629 //
19.2.1 The Function Constructor
1630 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1631 //
19.2.2 Properties of the Function Constructor
1632 //
19.2.2.1 Function.length
1633 //
19.2.2.2 Function.prototype
1634 //
19.2.3 Properties of the Function Prototype Object
1635 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1636 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1637 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1638 //
19.2.3.4 Function.prototype.constructor
1639 //
19.2.3.5 Function.prototype.toString ( )
1640 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1641 //
19.2.4 Function Instances
1644 //
19.2.4.3 prototype
1646 // (No polyfillable changes from ES5)
1648 // ---------------------------------------
1649 //
19.3 Boolean Objects
1650 // ---------------------------------------
1652 //
19.3.1 The Boolean Constructor
1653 //
19.3.1.1 Boolean ( value )
1654 //
19.3.2 Properties of the Boolean Constructor
1655 //
19.3.2.1 Boolean.prototype
1656 //
19.3.3 Properties of the Boolean Prototype Object
1657 //
19.3.3.1 Boolean.prototype.constructor
1658 //
19.3.3.2 Boolean.prototype.toString ( )
1659 //
19.3.3.3 Boolean.prototype.valueOf ( )
1660 //
19.3.4 Properties of Boolean Instances
1662 // (No polyfillable changes from ES5)
1664 // ---------------------------------------
1665 //
19.4 Symbol Objects
1666 // ---------------------------------------
1668 // Moved earlier in this script, so that other polyfills can depend on them.
1670 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1671 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1673 // ---------------------------------------
1674 //
19.5 Error Objects
1675 // ---------------------------------------
1677 //
19.5.1 The Error Constructor
1678 //
19.5.1.1 Error ( message )
1679 //
19.5.1.2 new Error( ...argumentsList )
1680 //
19.5.2 Properties of the Error Constructor
1681 //
19.5.2.1 Error.prototype
1682 //
19.5.3 Properties of the Error Prototype Object
1683 //
19.5.3.1 Error.prototype.constructor
1684 //
19.5.3.2 Error.prototype.message
1685 //
19.5.3.3 Error.prototype.name
1686 //
19.5.3.4 Error.prototype.toString ( )
1687 //
19.5.4 Properties of Error Instances
1688 //
19.5.5 Native Error Types Used in This Standard
1689 //
19.5.5.1 EvalError
1690 //
19.5.5.2 RangeError
1691 //
19.5.5.3 ReferenceError
1692 //
19.5.5.4 SyntaxError
1693 //
19.5.5.5 TypeError
1694 //
19.5.5.6 URIError
1695 //
19.5.6 NativeError Object Structure
1696 //
19.5.6.1 NativeError Constructors
1697 //
19.5.6.1.1 NativeError ( message )
1698 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1699 //
19.5.6.2 Properties of the NativeError Constructors
1700 //
19.5.6.2.1 NativeError.prototype
1701 //
19.5.6.3 Properties of the NativeError Prototype Objects
1702 //
19.5.6.4 Properties of NativeError Instances
1704 // (No polyfillable changes from ES5)
1706 // ---------------------------------------
1707 //
20 Numbers and Dates
1708 // ---------------------------------------
1710 // ---------------------------------------
1711 //
20.1 Number Objects
1712 // ---------------------------------------
1714 //
20.1.1 The Number Constructor
1715 //
20.1.1.1 Number ( [ value ] )
1716 //
20.1.1.2 new Number ( ...argumentsList )
1717 //
20.1.2 Properties of the Number Constructor
1719 //
20.1.2.1 Number.EPSILON
1724 for (next =
1;
1 + next !==
1; next = next /
2)
1729 //
20.1.2.2 Number.isFinite ( number )
1732 function isFinite(number) {
1733 if (Type(number) !== 'number') return false;
1734 if (number !== number || number === +Infinity || number === -Infinity) return false;
1738 //
20.1.2.3 Number.isInteger ( number )
1740 Number, 'isInteger',
1741 function isInteger(number) {
1742 if (Type(number) !== 'number') return false;
1743 if (number !== number || number === +Infinity || number === -Infinity) return false;
1744 var integer = ToInteger(number);
1745 if (integer !== number) return false;
1749 //
20.1.2.4 Number.isNaN ( number )
1752 function isNaN(number) {
1753 if (Type(number) !== 'number') return false;
1754 if (number !== number) return true;
1758 //
20.1.2.5 Number.isSafeInteger ( number )
1760 Number, 'isSafeInteger',
1761 function isSafeInteger(number) {
1762 if (Type(number) !== 'number') return false;
1763 if (number !== number || number === +Infinity || number === -Infinity) return false;
1764 var integer = ToInteger(number);
1765 if (integer !== number) return false;
1766 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1771 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1773 Number, 'MAX_SAFE_INTEGER',
1774 9007199254740991); //
2^
53-
1
1776 //
20.1.2.7 Number.MAX_VALUE
1778 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1780 Number, 'MIN_SAFE_INTEGER',
1781 -
9007199254740991); // -
2^
53+
1
1783 //
20.1.2.9 Number.MIN_VALUE
1784 //
20.1.2.10 Number.NaN
1785 //
20.1.2.11 Number.NEGATIVE_INFINITY
1787 //
20.1.2.12 Number.parseFloat ( string )
1788 define(Number, 'parseFloat', $parseFloat);
1790 //
20.1.2.13 Number.parseInt ( string, radix )
1791 define(Number, 'parseInt', $parseInt);
1793 //
20.1.2.14 Number.POSITIVE_INFINITY
1794 //
20.1.2.15 Number.prototype
1796 //
20.1.3 Properties of the Number Prototype Object
1797 //
20.1.3.1 Number.prototype.constructor
1798 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1799 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1800 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1801 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1802 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1803 //
20.1.3.7 Number.prototype.valueOf ( )
1804 //
20.1.4 Properties of Number Instances
1806 // ---------------------------------------
1807 //
20.2 The Math Object
1808 // ---------------------------------------
1810 //
20.2.1 Value Properties of the Math Object
1812 //
20.2.1.2 Math.LN10
1813 //
20.2.1.3 Math.LN2
1814 //
20.2.1.4 Math.LOG10E
1815 //
20.2.1.5 Math.LOG2E
1817 //
20.2.1.7 Math.SQRT1_2
1818 //
20.2.1.8 Math.SQRT2
1820 //
20.2.1.9 Math [ @@toStringTag ]
1821 define(Math, $$toStringTag, 'Math');
1823 //
20.2.2 Function Properties of the Math Object
1824 //
20.2.2.1 Math.abs ( x )
1825 //
20.2.2.2 Math.acos ( x )
1827 //
20.2.2.3 Math.acosh(x)
1832 return log(x + sqrt(x * x -
1));
1835 //
20.2.2.4 Math.asin ( x )
1837 //
20.2.2.5 Math.asinh( x )
1842 if (SameValue(x, -
0)) {
1845 var s = sqrt(x * x +
1);
1846 return (s === -x) ? log(
0) : log(x + s);
1849 //
20.2.2.6 Math.atan ( x )
1851 //
20.2.2.7 Math.atanh( x )
1856 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1859 //
20.2.2.8 Math.atan2 ( y, x )
1861 //
20.2.2.9 Math.cbrt ( x )
1869 var r = pow(abs(x),
1/
3);
1871 return r + (r * (t-r) / (
2*r + t));
1874 //
20.2.2.10 Math.ceil ( x )
1876 //
20.2.2.11 Math.clz32 ( x )
1881 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1882 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1885 return x &
0xff000000 ? clz8(x
>> 24) :
1886 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1887 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1892 //
20.2.2.12 Math.cos ( x )
1894 //
20.2.2.13 Math.cosh ( x )
1899 return (pow(E, x) + pow(E, -x)) /
2;
1902 //
20.2.2.14 Math.exp ( x )
1904 //
20.2.2.15 Math.expm1 ( x )
1909 // from: http://www.johndcook.com/cpp_log1p.html
1910 if (SameValue(x, -
0)) {
1912 } else if (abs(x) <
1e-5) {
1913 return x +
0.5 * x * x; // two terms of Taylor expansion
1919 //
20.2.2.16 Math.floor ( x )
1921 //
20.2.2.17 Math.fround ( x )
1924 function fround(x) {
1928 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1931 return (new Float32Array([x]))[
0];
1934 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1939 var m =
0, sawNaN = false;
1940 for (var i =
0; i < arguments.length; ++i) {
1941 var n = abs(Number(arguments[i]));
1942 if (n === Infinity) return n;
1943 if (n !== n) sawNaN = true;
1947 if (sawNaN) return NaN;
1948 if (m ===
0) return +
0;
1950 for (i =
0; i < values.length; ++i) {
1951 var r = values[i] / m;
1954 return m * sqrt(sum);
1957 //
20.2.2.19 Math.imul ( x, y )
1960 function imul(x, y) {
1961 var a = ToUint32(x);
1962 var b = ToUint32(y);
1963 // (slow but accurate)
1964 var ah = (a
>>> 16) &
0xffff;
1965 var al = a &
0xffff;
1966 var bh = (b
>>> 16) &
0xffff;
1967 var bl = b &
0xffff;
1968 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1969 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1972 //
20.2.2.20 Math.log ( x )
1974 //
20.2.2.21 Math.log1p ( x )
1979 // from: http://www.johndcook.com/cpp_expm1.html
1982 } else if (SameValue(x, -
0)) {
1984 } else if (abs(x)
> 1e-4) {
1987 return (-
0.5 * x +
1) * x;
1991 //
20.2.2.22 Math.log10 ( x )
1996 return log(x) * LOG10E;
1999 //
20.2.2.23 Math.log2 ( x )
2004 return log(x) * LOG2E;
2007 //
20.2.2.24 Math.max ( value1, value2 , ...values )
2008 //
20.2.2.25 Math.min ( value1, value2 , ...values )
2009 //
20.2.2.26 Math.pow ( x, y )
2010 //
20.2.2.27 Math.random ( )
2011 //
20.2.2.28 Math.round ( x )
2013 //
20.2.2.29 Math.sign(x)
2018 return x <
0 ? -
1 : x
> 0 ?
1 : x;
2021 //
20.2.2.30 Math.sin ( x )
2023 //
20.2.2.31 Math.sinh( x )
2028 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
2031 //
20.2.2.32 Math.sqrt ( x )
2032 //
20.2.2.33 Math.tan ( x )
2034 //
20.2.2.34 Math.tanh ( x )
2039 var n = pow(E,
2 * x) -
1,
2040 d = pow(E,
2 * x) +
1;
2041 if (SameValue(x, -
0))
2043 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2046 //
20.2.2.35 Math.trunc ( x )
2051 return $isNaN(x) ? NaN :
2052 x <
0 ? ceil(x) : floor(x);
2055 // ---------------------------------------
2056 //
20.3 Date Objects
2057 // ---------------------------------------
2059 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2060 //
20.3.1.1 Time Values and Time Range
2061 //
20.3.1.2 Day Number and Time within Day
2062 //
20.3.1.3 Year Number
2063 //
20.3.1.4 Month Number
2064 //
20.3.1.5 Date Number
2065 //
20.3.1.6 Week Day
2066 //
20.3.1.7 Local Time Zone Adjustment
2067 //
20.3.1.8 Daylight Saving Time Adjustment
2068 //
20.3.1.9 Local Time
2069 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2070 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2071 //
20.3.1.12 MakeDay (year, month, date)
2072 //
20.3.1.13 MakeDate (day, time)
2073 //
20.3.1.14 TimeClip (time)
2074 //
20.3.1.15 Date Time String Format
2075 //
20.3.1.15.1 Extended years
2076 //
20.3.2 The Date Constructor
2077 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2078 //
20.3.2.2 Date ( value )
2079 //
20.3.2.3 Date ( )
2080 //
20.3.3 Properties of the Date Constructor
2081 //
20.3.3.1 Date.now ( )
2082 //
20.3.3.2 Date.parse (string)
2083 //
20.3.3.3 Date.prototype
2084 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2085 //
20.3.4 Properties of the Date Prototype Object
2086 //
20.3.4.1 Date.prototype.constructor
2087 //
20.3.4.2 Date.prototype.getDate ( )
2088 //
20.3.4.3 Date.prototype.getDay ( )
2089 //
20.3.4.4 Date.prototype.getFullYear ( )
2090 //
20.3.4.5 Date.prototype.getHours ( )
2091 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2092 //
20.3.4.7 Date.prototype.getMinutes ( )
2093 //
20.3.4.8 Date.prototype.getMonth ( )
2094 //
20.3.4.9 Date.prototype.getSeconds ( )
2095 //
20.3.4.10 Date.prototype.getTime ( )
2096 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2097 //
20.3.4.12 Date.prototype.getUTCDate ( )
2098 //
20.3.4.13 Date.prototype.getUTCDay ( )
2099 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2100 //
20.3.4.15 Date.prototype.getUTCHours ( )
2101 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2102 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2103 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2104 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2105 //
20.3.4.20 Date.prototype.setDate ( date )
2106 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2107 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2108 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2109 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2110 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2111 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2112 //
20.3.4.27 Date.prototype.setTime ( time )
2113 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2114 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2115 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2116 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2117 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2118 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2119 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2120 //
20.3.4.35 Date.prototype.toDateString ( )
2121 //
20.3.4.36 Date.prototype.toISOString ( )
2122 //
20.3.4.37 Date.prototype.toJSON ( key )
2123 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2124 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2125 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2126 //
20.3.4.41 Date.prototype.toString ( )
2127 //
20.3.4.42 Date.prototype.toTimeString ( )
2128 //
20.3.4.43 Date.prototype.toUTCString ( )
2129 //
20.3.4.44 Date.prototype.valueOf ( )
2130 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2131 //
20.3.5 Properties of Date Instances
2133 // (No polyfillable changes from ES5)
2135 // ---------------------------------------
2136 //
21 Text Processing
2137 // ---------------------------------------
2139 var string_regexp_dispatch = (function() {
2140 var faux = {}, secret = Symbol();
2141 faux[Symbol.match] = function() { return secret; };
2142 return (
"").match(faux) === secret;
2145 //
21.1 String Objects
2146 //
21.1.1 The String Constructor
2147 //
21.1.1.1 String ( value )
2148 //
21.1.2 Properties of the String Constructor
2149 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2151 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2153 String, 'fromCodePoint',
2154 function fromCodePoint(/*...codePoints*/) {
2155 var codePoints = arguments,
2156 length = codePoints.length,
2159 while (nextIndex < length) {
2160 var next = codePoints[nextIndex];
2161 var nextCP = Number(next);
2162 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2163 nextCP <
0 || nextCP
> 0x10FFFF) {
2164 throw RangeError('Invalid code point ' + nextCP);
2166 if (nextCP <
0x10000) {
2167 elements.push(String.fromCharCode(nextCP));
2170 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2171 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2175 return elements.join('');
2178 //
21.1.2.3 String.prototype
2180 //
21.1.2.4 String.raw ( template , ...substitutions )
2183 function raw(template /*, ...substitutions*/) {
2184 var substitutions = [].slice.call(arguments,
1);
2186 var cooked = Object(template);
2187 var rawValue = cooked['raw'];
2188 var raw = Object(rawValue);
2189 var len = raw['length'];
2190 var literalSegments = ToLength(len);
2191 if (literalSegments <=
0) return '';
2192 var stringElements = [];
2195 var next = raw[nextIndex];
2196 var nextSeg = String(next);
2197 stringElements.push(nextSeg);
2198 if (nextIndex +
1 === literalSegments)
2199 return stringElements.join('');
2200 next = substitutions[nextIndex];
2201 var nextSub = String(next);
2202 stringElements.push(nextSub);
2203 nextIndex = nextIndex +
1;
2207 // See https://githib.com/inexorabletash/uate for a more useful version.
2209 //
21.1.3 Properties of the String Prototype Object
2210 //
21.1.3.1 String.prototype.charAt ( pos )
2211 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2213 //
21.1.3.3 String.prototype.codePointAt ( pos )
2215 String.prototype, 'codePointAt',
2216 function codePointAt(pos) {
2217 var o = strict(this);
2219 var position = ToInteger(pos);
2220 var size = s.length;
2221 if (position <
0 || position
>= size) return undefined;
2222 var first = s.charCodeAt(position);
2223 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2224 var second = s.charCodeAt(position +
1);
2225 if (second <
0xDC00 || second
> 0xDFFF) return first;
2226 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2229 //
21.1.3.4 String.prototype.concat ( ...args )
2230 //
21.1.3.5 String.prototype.constructor
2232 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2234 String.prototype, 'endsWith',
2235 function endsWith(searchString) {
2236 var endPosition = arguments[
1];
2238 var o = strict(this);
2240 var searchStr = String(searchString);
2242 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2243 var end = min(max(pos,
0), len);
2244 var searchLength = searchStr.length;
2245 var start = end - searchLength;
2246 if (start <
0) return false;
2247 if (s.substring(start, start + searchLength) === searchStr) return true;
2251 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2253 String.prototype, 'includes',
2254 function includes(searchString) {
2255 var position = arguments[
1];
2257 var o = strict(this);
2259 var searchStr = String(searchString);
2260 var pos = ToInteger(position);
2262 var start = min(max(pos,
0), len);
2263 return s.indexOf(searchStr, start) !== -
1;
2266 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2267 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2268 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2269 //
21.1.3.11 String.prototype.match ( regexp )
2271 String.prototype, 'match',
2272 function match(regexp) {
2273 var o = strict(this);
2275 if (HasProperty(regexp, $$match)) var rx = regexp;
2276 else rx = new RegExp(regexp);
2277 return rx[$$match](s);
2278 }, !string_regexp_dispatch);
2280 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2282 // Not practical due to table sizes; if needed, pull in:
2283 // https://github.com/walling/unorm/
2285 //
21.1.3.13 String.prototype.repeat ( count )
2287 String.prototype, 'repeat',
2288 function repeat(count) {
2289 var o = strict(this);
2291 var n = ToInteger(count);
2292 if (n <
0) throw RangeError();
2293 if (n === Infinity) throw RangeError();
2294 var t = new Array(n +
1).join(s);
2298 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2300 String.prototype, 'replace',
2301 function replace(searchValue, replaceValue) {
2302 var o = strict(this);
2303 if (HasProperty(searchValue, $$replace))
2304 return searchValue[$$replace](o, replaceValue);
2305 return orig_replace.call(o, searchValue, replaceValue);
2306 }, !string_regexp_dispatch);
2308 //
21.1.3.15 String.prototype.search ( regexp )
2310 String.prototype, 'search',
2311 function search(regexp) {
2312 var o = strict(this);
2313 var string = String(o);
2314 if (HasProperty(regexp, $$search)) var rx = regexp;
2315 else rx = new RegExp(regexp);
2316 return rx[$$search](string);
2317 }, !string_regexp_dispatch);
2319 //
21.1.3.16 String.prototype.slice ( start, end )
2320 //
21.1.3.17 String.prototype.split ( separator, limit )
2322 String.prototype, 'split',
2323 function split(separator, limit) {
2324 var o = strict(this);
2325 if (HasProperty(separator, $$split))
2326 return separator[$$split](o, limit);
2327 return orig_split.call(o, separator, limit);
2328 }, !string_regexp_dispatch);
2330 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2332 String.prototype, 'startsWith',
2333 function startsWith(searchString) {
2334 var position = arguments[
1];
2336 var o = strict(this);
2338 var searchStr = String(searchString);
2339 var pos = ToInteger(position);
2341 var start = min(max(pos,
0), len);
2342 var searchLength = searchStr.length;
2343 if (searchLength + start
> len) return false;
2344 if (s.substring(start, start + searchLength) === searchStr) return true;
2348 //
21.1.3.19 String.prototype.substring ( start, end )
2349 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2350 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2351 //
21.1.3.22 String.prototype.toLowerCase ( )
2352 //
21.1.3.23 String.prototype.toString ( )
2353 //
21.1.3.24 String.prototype.toUpperCase ( )
2354 //
21.1.3.25 String.prototype.trim ( )
2355 //
21.1.3.26 String.prototype.valueOf ( )
2357 //
21.1.3.27 String.prototype [ @@iterator ]( )
2359 String.prototype, $$iterator,
2360 function entries() {
2361 return CreateStringIterator(this, 'value');
2364 //
21.1.4 Properties of String Instances
2367 //
21.1.5 String Iterator Objects
2369 function StringIterator() {}
2371 //
21.1.5.1 CreateStringIterator Abstract Operation
2372 function CreateStringIterator(string, kind) {
2373 var s = String(string);
2374 var iterator = new StringIterator;
2375 set_internal(iterator, '[[IteratedString]]', s);
2376 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2377 set_internal(iterator, '[[StringIterationKind]]', kind);
2381 //
21.1.5.2 The %StringIteratorPrototype% Object
2382 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2383 StringIterator.prototype = $StringIteratorPrototype$;
2385 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2387 $StringIteratorPrototype$, 'next',
2389 var o = ToObject(this);
2390 var s = String(o['[[IteratedString]]']),
2391 index = o['[[StringIteratorNextIndex]]'],
2394 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2395 return CreateIterResultObject(undefined, true);
2397 var cp = s.codePointAt(index);
2398 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2399 return CreateIterResultObject(String.fromCodePoint(cp), false);
2402 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2403 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2405 //
21.1.5.3 Properties of String Iterator Instances
2407 // ---------------------------------------
2408 //
21.2 RegExp (Regular Expression) Objects
2409 // ---------------------------------------
2412 //
21.2.2 Pattern Semantics
2413 //
21.2.2.1 Notation
2415 //
21.2.2.3 Disjunction
2416 //
21.2.2.4 Alternative
2418 //
21.2.2.6 Assertion
2419 //
21.2.2.7 Quantifier
2421 //
21.2.2.9 AtomEscape
2422 //
21.2.2.10 CharacterEscape
2423 //
21.2.2.11 DecimalEscape
2424 //
21.2.2.12 CharacterClassEscape
2425 //
21.2.2.13 CharacterClass
2426 //
21.2.2.14 ClassRanges
2427 //
21.2.2.15 NonemptyClassRanges
2428 //
21.2.2.16 NonemptyClassRangesNoDash
2429 //
21.2.2.17 ClassAtom
2430 //
21.2.2.18 ClassAtomNoDash
2431 //
21.2.2.19 ClassEscape
2432 //
21.2.3 The RegExp Constructor
2433 //
21.2.3.1 RegExp ( pattern, flags )
2434 //
21.2.3.2 new RegExp( ...argumentsList )
2435 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2436 //
21.2.4 Properties of the RegExp Constructor
2437 //
21.2.4.1 RegExp.prototype
2438 //
21.2.5 Properties of the RegExp Prototype Object
2439 //
21.2.5.1 RegExp.prototype.constructor
2440 //
21.2.5.2 RegExp.prototype.exec ( string )
2442 //
21.2.5.3 get RegExp.prototype.flags
2443 if (!('flags' in RegExp.prototype)) {
2444 Object.defineProperty(
2445 RegExp.prototype, 'flags', {
2447 var s = String(this);
2448 return s.substring(s.lastIndexOf('/') +
1);
2453 //
21.2.5.4 get RegExp.prototype.global
2454 //
21.2.5.5 get RegExp.prototype.ignoreCase
2456 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2457 define(RegExp.prototype, $$match, function(string) {
2458 var o = strict(this);
2459 return orig_match.call(string, o);
2462 //
21.2.5.7 get RegExp.prototype.multiline
2464 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2465 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2466 var o = strict(this);
2467 return orig_replace.call(string, o, replaceValue);
2470 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2471 define(RegExp.prototype, $$search, function(string) {
2472 var o = strict(this);
2473 return orig_search.call(string, o);
2476 //
21.2.5.10 get RegExp.prototype.source
2478 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2479 define(RegExp.prototype, $$split, function(string, limit) {
2480 var o = strict(this);
2481 return orig_split.call(string, o, limit);
2484 //
21.2.5.12 get RegExp.prototype.sticky
2485 //
21.2.5.13 RegExp.prototype.test( S )
2486 //
21.2.5.14 RegExp.prototype.toString ( )
2487 //
21.2.5.15 get RegExp.prototype.unicode
2489 //
21.2.6 Properties of RegExp Instances
2490 //
21.2.6.1 lastIndex
2492 // (No polyfillable changes from ES5)
2494 // ---------------------------------------
2495 //
22 Indexed Collections
2496 // ---------------------------------------
2498 // ---------------------------------------
2499 //
22.1 Array Objects
2500 // ---------------------------------------
2502 //
22.1.1 The Array Constructor
2503 //
22.1.1.1 Array ( )
2504 //
22.1.1.2 Array (len)
2505 //
22.1.1.3 Array (...items )
2507 //
22.1.2 Properties of the Array Constructor
2509 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2512 function from(items) {
2513 var mapfn = arguments[
1];
2514 var thisArg = arguments[
2];
2516 var c = strict(this);
2517 if (mapfn === undefined) {
2518 var mapping = false;
2520 if (!IsCallable(mapfn)) throw TypeError();
2524 var usingIterator = GetMethod(items, $$iterator);
2525 if (usingIterator !== undefined) {
2526 if (IsConstructor(c)) {
2531 var iterator = GetIterator(items, usingIterator);
2534 var next = IteratorStep(iterator);
2535 if (next === false) {
2539 var nextValue = IteratorValue(next);
2541 var mappedValue = mapfn.call(t, nextValue);
2543 mappedValue = nextValue;
2548 var arrayLike = ToObject(items);
2549 var lenValue = arrayLike.length;
2550 var len = ToLength(lenValue);
2551 if (IsConstructor(c)) {
2558 var kValue = arrayLike[k];
2560 mappedValue = mapfn.call(t, kValue, k);
2562 mappedValue = kValue;
2570 //
22.1.2.2 Array.isArray ( arg )
2572 //
22.1.2.3 Array.of ( ...items )
2576 var items = arguments;
2578 var lenValue = items.length;
2579 var len = ToUint32(lenValue);
2580 var c = strict(this), a;
2581 if (IsConstructor(c)) {
2596 //
22.1.2.4 Array.prototype
2597 //
22.1.2.5 get Array [ @@species ]
2598 //
22.1.3 Properties of the Array Prototype Object
2599 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2600 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2601 //
22.1.3.2 Array.prototype.constructor
2602 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2604 Array.prototype, 'copyWithin',
2605 function copyWithin(target, start/*, end*/) {
2606 var end = arguments[
2];
2608 var o = ToObject(this);
2609 var lenVal = o.length;
2610 var len = ToLength(lenVal);
2612 var relativeTarget = ToInteger(target);
2614 if (relativeTarget <
0)
2615 to = max(len + relativeTarget,
0);
2617 to = min(relativeTarget, len);
2618 var relativeStart = ToInteger(start);
2620 if (relativeStart <
0)
2621 from = max(len + relativeStart,
0);
2623 from = min(relativeStart, len);
2625 if (end === undefined)
2628 relativeEnd = ToInteger(end);
2630 if (relativeEnd <
0)
2631 final = max(len + relativeEnd,
0);
2633 final = min(relativeEnd, len);
2634 var count = min(final - from, len - to);
2636 if (from < to && to < from + count) {
2638 from = from + count -
1;
2639 to = to + count -
1;
2644 var fromKey = String(from);
2645 var toKey = String(to);
2646 var fromPresent = HasProperty(o, fromKey);
2648 var fromVal = o[fromKey];
2653 from = from + direction;
2654 to = to + direction;
2660 //
22.1.3.4 Array.prototype.entries ( )
2661 var nativeArrayIteratorMethods =
2662 ('entries' in Array.prototype && 'next' in [].entries());
2665 Array.prototype, 'entries',
2666 function entries() {
2667 return CreateArrayIterator(this, 'key+value');
2668 }, !nativeArrayIteratorMethods);
2670 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2672 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2674 Array.prototype, 'fill',
2675 function fill(value/*, start, end*/) {
2676 var start = arguments[
1],
2679 var o = ToObject(this);
2680 var lenVal = o.length;
2681 var len = ToLength(lenVal);
2683 var relativeStart = ToInteger(start);
2685 if (relativeStart <
0)
2686 k = max((len + relativeStart),
0);
2688 k = min(relativeStart, len);
2690 if (end === undefined)
2693 relativeEnd = ToInteger(end);
2695 if (relativeEnd <
0)
2696 final = max((len + relativeEnd),
0);
2698 final = min(relativeEnd, len);
2707 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2709 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2711 Array.prototype, 'find',
2712 function find(predicate) {
2713 var o = ToObject(this);
2714 var lenValue = o.length;
2715 var len = ToInteger(lenValue);
2716 if (!IsCallable(predicate)) throw TypeError();
2717 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2721 var kPresent = HasProperty(o, pk);
2724 var testResult = predicate.call(t, kValue, k, o);
2725 if (Boolean(testResult)) {
2734 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2736 Array.prototype, 'findIndex',
2737 function findIndex(predicate) {
2738 var o = ToObject(this);
2739 var lenValue = o.length;
2740 var len = ToLength(lenValue);
2741 if (!IsCallable(predicate)) throw TypeError();
2742 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2746 var kPresent = HasProperty(o, pk);
2749 var testResult = predicate.call(t, kValue, k, o);
2750 if (Boolean(testResult)) {
2759 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2760 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2761 //
22.1.3.12 Array.prototype.join (separator)
2763 //
22.1.3.13 Array.prototype.keys ( )
2765 Array.prototype, 'keys',
2767 return CreateArrayIterator(this, 'key');
2768 }, !nativeArrayIteratorMethods);
2770 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2771 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2772 //
22.1.3.16 Array.prototype.pop ( )
2773 //
22.1.3.17 Array.prototype.push ( ...items )
2774 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2775 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2776 //
22.1.3.20 Array.prototype.reverse ( )
2777 //
22.1.3.21 Array.prototype.shift ( )
2778 //
22.1.3.22 Array.prototype.slice (start, end)
2779 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2780 //
22.1.3.24 Array.prototype.sort (comparefn)
2781 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2782 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2783 //
22.1.3.27 Array.prototype.toString ( )
2784 //
22.1.3.28 Array.prototype.unshift ( ...items )
2786 //
22.1.3.29 Array.prototype.values ( )
2788 Array.prototype, 'values',
2790 return CreateArrayIterator(this, 'value');
2791 }, !nativeArrayIteratorMethods);
2793 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2795 Array.prototype, $$iterator,
2796 Array.prototype.values
2799 //
22.1.3.31 Array.prototype [ @@unscopables ]
2800 //
22.1.4 Properties of Array Instances
2803 //
22.1.5 Array Iterator Objects
2804 function ArrayIterator() {}
2806 //
22.1.5.1 CreateArrayIterator Abstract Operation
2807 function CreateArrayIterator(array, kind) {
2808 var o = ToObject(array);
2809 var iterator = new ArrayIterator;
2810 set_internal(iterator, '[[IteratedObject]]', o);
2811 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2812 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2816 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2817 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2818 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2820 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2822 $ArrayIteratorPrototype$, 'next',
2824 var o = strict(this);
2825 if (Type(o) !== 'object') throw TypeError();
2826 var a = o['[[IteratedObject]]'],
2827 index = o['[[ArrayIteratorNextIndex]]'],
2828 itemKind = o['[[ArrayIterationKind]]'],
2829 lenValue = a.length,
2830 len = ToUint32(lenValue),
2833 if (itemKind.indexOf('sparse') !== -
1) {
2835 while (!found && index < len) {
2836 elementKey = String(index);
2837 found = HasProperty(a, elementKey);
2844 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2845 return CreateIterResultObject(undefined, true);
2848 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2849 if (itemKind.indexOf('value') !== -
1)
2850 elementValue = a[elementKey];
2851 if (itemKind.indexOf('key+value') !== -
1)
2852 return CreateIterResultObject([elementKey, elementValue], false);
2853 if (itemKind.indexOf('key') !== -
1)
2854 return CreateIterResultObject(elementKey, false);
2855 if (itemKind === 'value')
2856 return CreateIterResultObject(elementValue, false);
2857 throw Error('Internal error');
2860 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2861 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2863 //
22.1.5.3 Properties of Array Iterator Instances
2866 // ---------------------------------------
2867 //
22.2 TypedArray Objects
2868 // ---------------------------------------
2870 // See typedarray.js for TypedArray polyfill
2872 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2873 'Int16Array', 'Uint16Array',
2874 'Int32Array', 'Uint32Array',
2875 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2876 if (!($TypedArrayName$ in global))
2878 var $TypedArray$ = global[$TypedArrayName$];
2880 //
22.2.1 The %TypedArray% Intrinsic Object
2881 //
22.2.1.1 %TypedArray% ( length )
2882 //
22.2.1.2 %TypedArray% ( typedArray )
2883 //
22.2.1.3 %TypedArray% ( object )
2884 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2885 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2886 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2888 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2890 $TypedArray$, 'from',
2891 function from(source) {
2892 var mapfn = arguments[
1];
2893 var thisArg = arguments[
2];
2895 var c = strict(this);
2896 if (!IsConstructor(c)) throw TypeError();
2897 if (mapfn === undefined) {
2898 var mapping = false;
2900 if (IsCallable(mapfn)) throw TypeError();
2904 var usingIterator = GetMethod(source, $$iterator);
2905 if (usingIterator !== undefined) {
2906 var iterator = GetIterator(source, usingIterator);
2909 while (next !== false) {
2910 next = IteratorStep(iterator);
2911 if (next !== false) {
2912 var nextValue = IteratorValue(next);
2913 values.push(nextValue);
2916 var len = values.length;
2917 var newObj = new c(len);
2920 var kValue = values.shift();
2922 var mappedValue = mapfn.call(t, kValue);
2924 mappedValue = kValue;
2926 newObj[k] = mappedValue;
2929 console.assert(values.length ===
0);
2932 var arrayLike = ToObject(source);
2933 var lenValue = arrayLike.length;
2934 len = ToLength(lenValue);
2935 newObj = new c(len);
2938 kValue = arrayLike[k];
2940 mappedValue = mapfn.call(t, kValue, k);
2942 mappedValue = kValue;
2944 newObj[k] = mappedValue;
2950 //
22.2.2.2 %TypedArray%.of ( ...items )
2954 var items = arguments;
2956 var len = items.length;
2957 var c = strict(this);
2958 var newObj = new c(len);
2961 newObj[k] = items[k];
2967 //
22.2.2.3 %TypedArray%.prototype
2968 //
22.2.2.4 get %TypedArray% [ @@species ]
2969 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2970 //
22.2.3.1 get %TypedArray%.prototype.buffer
2971 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2972 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2973 //
22.2.3.4 %TypedArray%.prototype.constructor
2975 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2976 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2978 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2979 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2981 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2982 define($TypedArray$.prototype, 'every', Array.prototype.every);
2984 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2986 $TypedArray$.prototype, 'fill',
2987 //Array.prototype.fill // Doesn't work in Safari
7
2988 function fill(value/*, start, end*/) {
2989 var start = arguments[
1],
2992 var o = ToObject(this);
2993 var lenVal = o.length;
2994 var len = ToLength(lenVal);
2996 var relativeStart = ToInteger(start);
2998 if (relativeStart <
0) k = max((len + relativeStart),
0);
2999 else k = min(relativeStart, len);
3001 if (end === undefined) relativeEnd = len;
3002 else relativeEnd = ToInteger(end);
3004 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
3005 else final = min(relativeEnd, len);
3014 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
3016 $TypedArray$.prototype, 'filter',
3017 function filter(callbackfn) {
3018 var thisArg = arguments[
1];
3020 var o = ToObject(this);
3021 var lenVal = o.length;
3022 var len = ToLength(lenVal);
3023 if (!IsCallable(callbackfn)) throw TypeError();
3025 var c = o.constructor;
3031 var selected = callbackfn.call(t, kValue, k, o);
3038 var a = new c(captured);
3040 for (var i =
0; i < kept.length; ++i) {
3048 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3049 define($TypedArray$.prototype, 'find', Array.prototype.find);
3051 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3052 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3054 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3055 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3057 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3058 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3060 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3061 define($TypedArray$.prototype, 'join', Array.prototype.join);
3063 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3064 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3066 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3067 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3069 //
22.2.3.17 get %TypedArray%.prototype.length
3071 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3073 $TypedArray$.prototype, 'map',
3074 function map(callbackfn) {
3075 var thisArg = arguments[
1];
3077 var o = ToObject(this);
3078 var lenValue = o.length;
3079 var len = ToLength(lenValue);
3080 if (!IsCallable(callbackfn)) throw TypeError();
3083 var c = o.constructor;
3084 if (IsConstructor(c))
3086 if (a === undefined)
3090 var kPresent = HasProperty(o, k);
3093 var mappedValue = callbackfn.call(t, kValue, k, o);
3101 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3102 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3104 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3105 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3107 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3108 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3110 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3111 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3112 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3114 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3116 $TypedArray$.prototype, 'slice',
3117 function slice(start, end) {
3118 var o = ToObject(this);
3119 var lenVal = o.length;
3120 var len = ToLength(lenVal);
3121 var relativeStart = ToInteger(start);
3122 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3123 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3124 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3125 var count = final - k;
3126 var c = o.constructor;
3127 if (IsConstructor(c)) {
3128 var a = new c(count);
3142 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3143 define($TypedArray$.prototype, 'some', Array.prototype.some);
3145 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3147 $TypedArray$.prototype, 'sort',
3149 var comparefn = arguments[
0];
3151 function sortCompare(x, y) {
3152 console.assert(Type(x) === 'number' && Type(y) === 'number');
3153 if (x !== x && y !== y) return +
0;
3154 if (x !== x) return
1;
3155 if (y !== y) return -
1;
3156 if (comparefn !== undefined) {
3157 return comparefn(x, y);
3159 if (x < y) return -
1;
3160 if (x
> y) return
1;
3163 return Array.prototype.sort.call(this, sortCompare);
3166 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3167 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3168 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3170 //
22.2.3.29 %TypedArray%.prototype.values ( )
3171 define($TypedArray$.prototype, 'values', Array.prototype.values);
3173 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3175 $TypedArray$.prototype, $$iterator,
3176 $TypedArray$.prototype.values
3179 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3180 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3182 //
22.2.4 The TypedArray Constructors
3183 //
22.2.4.1TypedArray( ... argumentsList)
3184 //
22.2.5 Properties of the TypedArray Constructors
3185 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3186 //
22.2.5.2 TypedArray.prototype
3187 //
22.2.6 Properties of TypedArray Prototype Objects
3188 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3189 //
22.2.6.2 TypedArray.prototype.constructor
3190 //
22.2.7 Properties of TypedArray Instances
3193 // ---------------------------------------
3194 //
23 Keyed Collection
3195 // ---------------------------------------
3197 // ---------------------------------------
3199 // ---------------------------------------
3202 //
23.1.1 The Map Constructor
3204 //
23.1.1.1 Map ( [ iterable ] )
3206 function Map(/*iterable*/) {
3207 var map = strict(this);
3208 var iterable = arguments[
0];
3210 if (Type(map) !== 'object') throw TypeError();
3211 if ('[[MapData]]' in map) throw TypeError();
3213 if (iterable !== undefined) {
3214 var adder = map['set'];
3215 if (!IsCallable(adder)) throw TypeError();
3216 var iter = GetIterator(ToObject(iterable));
3218 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3219 if (iter === undefined) return map;
3221 var next = IteratorStep(iter);
3224 var nextItem = IteratorValue(next);
3225 if (Type(nextItem) !== 'object') throw TypeError();
3226 var k = nextItem[
0];
3227 var v = nextItem[
1];
3228 adder.call(map, k, v);
3234 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3235 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3236 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3237 (new global.Map([['a',
1]]).size !==
1))
3241 function MapDataIndexOf(mapData, key) {
3243 if (key === key) return mapData.keys.indexOf(key);
3244 // Slow case for NaN
3245 for (i =
0; i < mapData.keys.length; i +=
1)
3246 if (SameValueZero(mapData.keys[i], key)) return i;
3250 //
23.1.1.2 new Map ( ... argumentsList )
3251 //
23.1.2 Properties of the Map Constructor
3252 //
23.1.2.1 Map.prototype
3253 var $MapPrototype$ = {};
3254 Map.prototype = $MapPrototype$;
3256 //
23.1.2.2 get Map [ @@species ]
3258 //
23.1.3 Properties of the Map Prototype Object
3259 //
23.1.3.1 Map.prototype.clear ()
3261 Map.prototype, 'clear',
3263 var m = strict(this);
3264 if (Type(m) !== 'object') throw TypeError();
3265 if (!('[[MapData]]' in m)) throw TypeError();
3266 if (m['[[MapData]]'] === undefined) throw TypeError();
3267 var entries = m['[[MapData]]'];
3268 entries.keys.length =
0;
3269 entries.values.length =
0;
3273 //
23.1.3.2 Map.prototype.constructor
3275 //
23.1.3.3 Map.prototype.delete ( key )
3277 Map.prototype, 'delete',
3278 function delete_(key) {
3279 var m = strict(this);
3280 if (Type(m) !== 'object') throw TypeError();
3281 if (!('[[MapData]]' in m)) throw TypeError();
3282 if (m['[[MapData]]'] === undefined) throw TypeError();
3283 var entries = m['[[MapData]]'];
3284 var i = MapDataIndexOf(entries, key);
3285 if (i <
0) return false;
3286 entries.keys[i] = empty;
3287 entries.values[i] = empty;
3291 //
23.1.3.4 Map.prototype.entries ( )
3293 Map.prototype, 'entries',
3294 function entries() {
3295 var m = strict(this);
3296 if (Type(m) !== 'object') throw TypeError();
3297 return CreateMapIterator(m, 'key+value');
3300 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3302 Map.prototype, 'forEach',
3303 function forEach(callbackfn /*, thisArg*/) {
3304 var thisArg = arguments[
1];
3306 var m = strict(this);
3307 if (Type(m) !== 'object') throw TypeError();
3308 if (!('[[MapData]]' in m)) throw TypeError();
3309 if (m['[[MapData]]'] === undefined) throw TypeError();
3310 var entries = m['[[MapData]]'];
3312 if (!IsCallable(callbackfn)) {
3313 throw TypeError('First argument to forEach is not callable.');
3315 for (var i =
0; i < entries.keys.length; ++i) {
3316 if (entries.keys[i] !== empty) {
3317 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3323 //
23.1.3.6 Map.prototype.get ( key )
3325 Map.prototype, 'get',
3327 var m = strict(this);
3328 if (Type(m) !== 'object') throw TypeError();
3329 if (!('[[MapData]]' in m)) throw TypeError();
3330 if (m['[[MapData]]'] === undefined) throw TypeError();
3331 var entries = m['[[MapData]]'];
3332 var i = MapDataIndexOf(entries, key);
3333 if (i
>=
0) return entries.values[i];
3337 //
23.1.3.7 Map.prototype.has ( key )
3339 Map.prototype, 'has',
3341 var m = strict(this);
3342 if (Type(m) !== 'object') throw TypeError();
3343 if (!('[[MapData]]' in m)) throw TypeError();
3344 if (m['[[MapData]]'] === undefined) throw TypeError();
3345 var entries = m['[[MapData]]'];
3346 if (MapDataIndexOf(entries, key)
>=
0) return true;
3350 //
23.1.3.8 Map.prototype.keys ( )
3352 Map.prototype, 'keys',
3354 var m = strict(this);
3355 if (Type(m) !== 'object') throw TypeError();
3356 return CreateMapIterator(m, 'key');
3359 //
23.1.3.9 Map.prototype.set ( key , value )
3361 Map.prototype, 'set',
3362 function set(key, value) {
3363 var m = strict(this);
3364 if (Type(m) !== 'object') throw TypeError();
3365 if (!('[[MapData]]' in m)) throw TypeError();
3366 if (m['[[MapData]]'] === undefined) throw TypeError();
3367 var entries = m['[[MapData]]'];
3368 var i = MapDataIndexOf(entries, key);
3369 if (i <
0) i = entries.keys.length;
3370 if (SameValue(key, -
0)) key =
0;
3371 entries.keys[i] = key;
3372 entries.values[i] = value;
3376 //
23.1.3.10 get Map.prototype.size
3377 Object.defineProperty(
3378 Map.prototype, 'size', {
3380 var m = strict(this);
3381 if (Type(m) !== 'object') throw TypeError();
3382 if (!('[[MapData]]' in m)) throw TypeError();
3383 if (m['[[MapData]]'] === undefined) throw TypeError();
3384 var entries = m['[[MapData]]'];
3386 for (var i =
0; i < entries.keys.length; ++i) {
3387 if (entries.keys[i] !== empty)
3394 //
23.1.3.11 Map.prototype.values ( )
3396 Map.prototype, 'values',
3398 var m = strict(this);
3399 if (Type(m) !== 'object') throw TypeError();
3400 return CreateMapIterator(m, 'value');
3403 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3405 Map.prototype, $$iterator,
3407 var m = strict(this);
3408 if (Type(m) !== 'object') throw TypeError();
3409 return CreateMapIterator(m, 'key+value');
3412 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3413 define(global.Map.prototype, $$toStringTag, 'Map');
3415 //
23.1.4 Properties of Map Instances
3416 //
23.1.5 Map Iterator Objects
3419 function MapIterator() {}
3421 //
23.1.5.1 CreateMapIterator Abstract Operation
3422 function CreateMapIterator(map, kind) {
3423 if (Type(map) !== 'object') throw TypeError();
3424 if (!('[[MapData]]' in map)) throw TypeError();
3425 if (map['[[MapData]]'] === undefined) throw TypeError();
3426 var iterator = new MapIterator;
3427 set_internal(iterator, '[[Map]]', map);
3428 set_internal(iterator, '[[MapNextIndex]]',
0);
3429 set_internal(iterator, '[[MapIterationKind]]', kind);
3433 //
23.1.5.2 The %MapIteratorPrototype% Object
3434 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3435 MapIterator.prototype = $MapIteratorPrototype$;
3437 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3439 $MapIteratorPrototype$, 'next',
3441 var o = strict(this);
3442 if (Type(o) !== 'object') throw TypeError();
3443 var m = o['[[Map]]'],
3444 index = o['[[MapNextIndex]]'],
3445 itemKind = o['[[MapIterationKind]]'],
3446 entries = m['[[MapData]]'];
3447 while (index < entries.keys.length) {
3448 var e = {key: entries.keys[index], value: entries.values[index]};
3450 set_internal(o, '[[MapNextIndex]]', index);
3451 if (e.key !== empty) {
3452 if (itemKind === 'key') {
3453 return CreateIterResultObject(e.key, false);
3454 } else if (itemKind === 'value') {
3455 return CreateIterResultObject(e.value, false);
3457 return CreateIterResultObject([e.key, e.value], false);
3461 return CreateIterResultObject(undefined, true);
3464 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3465 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3467 //
23.1.5.3 Properties of Map Iterator Instances
3470 // ---------------------------------------
3472 // ---------------------------------------
3475 //
23.2.1 The Set Constructor
3476 //
23.2.1.1 Set ( [ iterable ] )
3479 function Set(/*iterable*/) {
3480 var set = strict(this);
3481 var iterable = arguments[
0];
3483 if (Type(set) !== 'object') throw TypeError();
3484 if ('[[SetData]]' in set) throw TypeError();
3486 if (iterable !== undefined) {
3487 var adder = set['add'];
3488 if (!IsCallable(adder)) throw TypeError();
3489 var iter = GetIterator(ToObject(iterable));
3491 set_internal(set, '[[SetData]]', []);
3492 if (iter === undefined) return set;
3494 var next = IteratorStep(iter);
3497 var nextValue = IteratorValue(next);
3498 adder.call(set, nextValue);
3504 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3505 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3506 (new global.Set([
1]).size !==
1))
3509 function SetDataIndexOf(setData, key) {
3512 return setData.indexOf(key);
3513 // Slow case for NaN
3514 for (i =
0; i < setData.length; i +=
1)
3515 if (SameValueZero(setData[i], key)) return i;
3519 //
23.2.1.2 new Set ( ...argumentsList )
3520 //
23.2.2 Properties of the Set Constructor
3522 //
23.2.2.1 Set.prototype
3523 var $SetPrototype$ = {};
3524 Set.prototype = $SetPrototype$;
3526 //
23.2.2.2 get Set [ @@species ]
3527 //
23.2.3 Properties of the Set Prototype Object
3529 //
23.2.3.1 Set.prototype.add (value )
3531 Set.prototype, 'add',
3532 function add(value) {
3533 var s = strict(this);
3534 if (Type(s) !== 'object') throw TypeError();
3535 if (!('[[SetData]]' in s)) throw TypeError();
3536 if (s['[[SetData]]'] === undefined) throw TypeError();
3537 if (SameValue(value, -
0)) value =
0;
3538 var entries = s['[[SetData]]'];
3539 var i = SetDataIndexOf(entries, value);
3540 if (i <
0) i = s['[[SetData]]'].length;
3541 s['[[SetData]]'][i] = value;
3546 //
23.2.3.2 Set.prototype.clear ()
3548 Set.prototype, 'clear',
3550 var s = strict(this);
3551 if (Type(s) !== 'object') throw TypeError();
3552 if (!('[[SetData]]' in s)) throw TypeError();
3553 if (s['[[SetData]]'] === undefined) throw TypeError();
3554 var entries = s['[[SetData]]'];
3559 //
23.2.3.3 Set.prototype.constructor
3560 //
23.2.3.4 Set.prototype.delete ( value )
3562 Set.prototype, 'delete',
3563 function delete_(value) {
3564 var s = strict(this);
3565 if (Type(s) !== 'object') throw TypeError();
3566 if (!('[[SetData]]' in s)) throw TypeError();
3567 if (s['[[SetData]]'] === undefined) throw TypeError();
3568 var entries = s['[[SetData]]'];
3569 var i = SetDataIndexOf(entries, value);
3570 if (i <
0) return false;
3575 //
23.2.3.5 Set.prototype.entries ( )
3577 Set.prototype, 'entries',
3578 function entries() {
3579 var s = strict(this);
3580 if (Type(s) !== 'object') throw TypeError();
3581 return CreateSetIterator(s, 'key+value');
3584 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3586 Set.prototype, 'forEach',
3587 function forEach(callbackfn/*, thisArg*/) {
3588 var thisArg = arguments[
1];
3590 var s = strict(this);
3591 if (Type(s) !== 'object') throw TypeError();
3592 if (!('[[SetData]]' in s)) throw TypeError();
3593 if (s['[[SetData]]'] === undefined) throw TypeError();
3594 var entries = s['[[SetData]]'];
3596 if (!IsCallable(callbackfn)) {
3597 throw TypeError('First argument to forEach is not callable.');
3599 for (var i =
0; i < entries.length; ++i) {
3600 if (entries[i] !== empty) {
3601 callbackfn.call(thisArg, entries[i], entries[i], s);
3606 //
23.2.3.7 Set.prototype.has ( value )
3608 Set.prototype, 'has',
3610 var s = strict(this);
3611 if (Type(s) !== 'object') throw TypeError();
3612 if (!('[[SetData]]' in s)) throw TypeError();
3613 if (s['[[SetData]]'] === undefined) throw TypeError();
3614 var entries = s['[[SetData]]'];
3615 return SetDataIndexOf(entries, key) !== -
1;
3618 //
23.2.3.8 Set.prototype.keys ( )
3619 // See Set.prototype.values
3621 //
23.2.3.9 get Set.prototype.size
3622 Object.defineProperty(
3623 Set.prototype, 'size', {
3625 var s = strict(this);
3626 if (Type(s) !== 'object') throw TypeError();
3627 if (!('[[SetData]]' in s)) throw TypeError();
3628 if (s['[[SetData]]'] === undefined) throw TypeError();
3629 var entries = s['[[SetData]]'];
3631 for (var i =
0; i < entries.length; ++i) {
3632 if (entries[i] !== empty)
3639 //
23.2.3.10 Set.prototype.values ( )
3641 Set.prototype, 'values',
3643 var s = strict(this);
3644 if (Type(s) !== 'object') throw TypeError();
3645 return CreateSetIterator(s, 'value');
3647 // NOTE: function name is still 'values':
3648 Set.prototype.keys = Set.prototype.values;
3650 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3652 Set.prototype, $$iterator,
3654 var s = strict(this);
3655 if (Type(s) !== 'object') throw TypeError();
3656 return CreateSetIterator(s);
3659 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3660 define(global.Set.prototype, $$toStringTag, 'Set');
3662 //
23.2.4 Properties of Set Instances
3663 //
23.2.5 Set Iterator Objects
3665 function SetIterator() {}
3667 //
23.2.5.1 CreateSetIterator Abstract Operation
3668 function CreateSetIterator(set, kind) {
3669 if (Type(set) !== 'object') throw TypeError();
3670 if (!('[[SetData]]' in set)) throw TypeError();
3671 if (set['[[SetData]]'] === undefined) throw TypeError();
3672 var iterator = new SetIterator;
3673 set_internal(iterator, '[[IteratedSet]]', set);
3674 set_internal(iterator, '[[SetNextIndex]]',
0);
3675 set_internal(iterator, '[[SetIterationKind]]', kind);
3679 //
23.2.5.2 The %SetIteratorPrototype% Object
3680 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3681 SetIterator.prototype = $SetIteratorPrototype$;
3683 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3685 $SetIteratorPrototype$, 'next',
3687 var o = strict(this);
3688 if (Type(o) !== 'object') throw TypeError();
3689 var s = o['[[IteratedSet]]'],
3690 index = o['[[SetNextIndex]]'],
3691 itemKind = o['[[SetIterationKind]]'],
3692 entries = s['[[SetData]]'];
3693 while (index < entries.length) {
3694 var e = entries[index];
3696 set_internal(o, '[[SetNextIndex]]', index);
3698 if (itemKind === 'key+value')
3699 return CreateIterResultObject([e, e], false);
3700 return CreateIterResultObject(e, false);
3703 return CreateIterResultObject(undefined, true);
3706 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3707 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3709 //
23.2.5.3 Properties of Set Iterator Instances
3713 // ---------------------------------------
3714 //
23.3 WeakMap Objects
3715 // ---------------------------------------
3718 //
23.3.1 The WeakMap Constructor
3719 //
23.3.1.1 WeakMap ( [ iterable ] )
3721 function WeakMap(/*iterable*/) {
3722 var map = strict(this);
3723 var iterable = arguments[
0];
3725 if (Type(map) !== 'object') throw TypeError();
3726 if ('[[WeakMapData]]' in map) throw TypeError();
3728 if (iterable !== undefined) {
3729 var adder = map['set'];
3730 if (!IsCallable(adder)) throw TypeError();
3731 var iter = GetIterator(ToObject(iterable));
3733 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3734 if (iter === undefined) return map;
3736 var next = IteratorStep(iter);
3739 var nextValue = IteratorValue(next);
3740 if (Type(nextValue) !== 'object') throw TypeError();
3741 var k = nextValue[
0];
3742 var v = nextValue[
1];
3743 adder.call(map, k, v);
3749 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3750 global.WeakMap = WeakMap;
3752 //
23.3.2 Properties of the WeakMap Constructor
3753 //
23.3.2.1 WeakMap.prototype
3754 var $WeakMapPrototype$ = {};
3755 WeakMap.prototype = $WeakMapPrototype$;
3759 //
23.3.2.2 WeakMap[ @@create ] ( )
3760 //
23.3.3 Properties of the WeakMap Prototype Object
3762 //
23.3.3.1 WeakMap.prototype.constructor
3764 //
23.3.3.2 WeakMap.prototype.delete ( key )
3766 WeakMap.prototype, 'delete',
3767 function delete_(key) {
3768 var M = strict(this);
3769 if (Type(M) !== 'object') throw TypeError();
3770 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3771 if (Type(key) !== 'object') throw TypeError('Expected object');
3772 return M['[[WeakMapData]]'].remove(key);
3775 //
23.3.3.3 WeakMap.prototype.get ( key )
3777 WeakMap.prototype, 'get',
3778 function get(key, defaultValue) {
3779 var M = strict(this);
3780 if (Type(M) !== 'object') throw TypeError();
3781 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3782 if (Type(key) !== 'object') throw TypeError('Expected object');
3783 return M['[[WeakMapData]]'].get(key, defaultValue);
3786 //
23.3.3.4 WeakMap.prototype.has ( key )
3788 WeakMap.prototype, 'has',
3790 var M = strict(this);
3791 if (Type(M) !== 'object') throw TypeError();
3792 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3793 if (Type(key) !== 'object') throw TypeError('Expected object');
3794 return M['[[WeakMapData]]'].has(key);
3797 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3799 WeakMap.prototype, 'set',
3800 function set(key, value) {
3801 var M = strict(this);
3802 if (Type(M) !== 'object') throw TypeError();
3803 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3804 if (Type(key) !== 'object') throw TypeError('Expected object');
3805 M['[[WeakMapData]]'].set(key, value);
3809 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3810 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3812 //
23.3.4 Properties of WeakMap Instances
3814 // Polyfills for incomplete native implementations:
3816 var wm = new global.WeakMap();
3817 var orig = global.WeakMap.prototype.set;
3818 define(global.WeakMap.prototype, 'set', function set() {
3819 orig.apply(this, arguments);
3821 }, wm.set({},
0) !== wm);
3825 // ---------------------------------------
3826 //
23.4 WeakSet Objects
3827 // ---------------------------------------
3830 //
23.4.1 The WeakSet Constructor
3831 //
23.4.1.1 WeakSet ( [ iterable ] )
3833 function WeakSet(/*iterable*/) {
3834 var set = strict(this);
3835 var iterable = arguments[
0];
3837 if (Type(set) !== 'object') throw TypeError();
3838 if ('[[WeakSetData]]' in set) throw TypeError();
3840 if (iterable !== undefined) {
3841 var adder = set['add'];
3842 if (!IsCallable(adder)) throw TypeError();
3843 var iter = GetIterator(ToObject(iterable));
3845 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3846 if (iter === undefined) return set;
3848 var next = IteratorStep(iter);
3851 var nextValue = IteratorValue(next);
3852 adder.call(set, nextValue);
3858 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3859 global.WeakSet = WeakSet;
3861 //
23.4.2 Properties of the WeakSet Constructor
3862 //
23.4.2.1 WeakSet.prototype
3863 var $WeakSetPrototype$ = {};
3864 WeakSet.prototype = $WeakSetPrototype$;
3866 //
23.4.3 Properties of the WeakSet Prototype Object
3867 //
23.4.3.1 WeakSet.prototype.add (value )
3869 WeakSet.prototype, 'add',
3870 function add(value) {
3871 var S = strict(this);
3872 if (Type(S) !== 'object') throw TypeError();
3873 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3874 if (Type(value) !== 'object') throw TypeError('Expected object');
3875 S['[[WeakSetData]]'].set(value, true);
3879 //
23.4.3.2 WeakSet.prototype.constructor
3880 //
23.4.3.3 WeakSet.prototype.delete ( value )
3882 WeakSet.prototype, 'delete',
3883 function delete_(value) {
3884 var S = strict(this);
3885 if (Type(S) !== 'object') throw TypeError();
3886 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3887 if (Type(value) !== 'object') throw TypeError('Expected object');
3888 return S['[[WeakSetData]]'].remove(value);
3891 //
23.4.3.4 WeakSet.prototype.has ( value )
3893 WeakSet.prototype, 'has',
3895 var S = strict(this);
3896 if (Type(S) !== 'object') throw TypeError();
3897 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3898 if (Type(key) !== 'object') throw TypeError('Expected object');
3899 return S['[[WeakSetData]]'].has(key);
3902 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3903 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3905 //
23.4.4 Properties of WeakSet Instances
3907 // Polyfills for incomplete native implementations:
3909 var ws = new global.WeakSet();
3910 var orig = global.WeakSet.prototype.add;
3911 define(global.WeakSet.prototype, 'add', function add() {
3912 orig.apply(this, arguments);
3914 }, ws.add({}) !== ws);
3918 // ---------------------------------------
3919 //
24 Structured Data
3920 // ---------------------------------------
3922 // ---------------------------------------
3923 //
24.1 ArrayBuffer Objects
3924 // ---------------------------------------
3926 // See typedarray.js for TypedArray polyfill
3929 if (!('ArrayBuffer' in global))
3932 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3933 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3934 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3935 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3936 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3937 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3938 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3939 //
24.1.2 The ArrayBuffer Constructor
3940 //
24.1.2.1 ArrayBuffer( length )
3941 //
24.1.3 Properties of the ArrayBuffer Constructor
3943 //
24.1.3.1 ArrayBuffer.isView ( arg )
3945 ArrayBuffer, 'isView',
3946 function isView(arg) {
3947 if (Type(arg) !== 'object') return false;
3948 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3952 //
24.1.3.2 ArrayBuffer.prototype
3953 //
24.1.3.3 get ArrayBuffer [ @@species ]
3954 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3955 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3956 //
24.1.4.2 ArrayBuffer.prototype.constructor
3957 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3959 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3960 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3962 //
24.1.5 Properties of the ArrayBuffer Instances
3965 // ---------------------------------------
3966 //
24.2 DataView Objects
3967 // ---------------------------------------
3969 // See typedarray.js for TypedArray polyfill
3972 if (!('DataView' in global))
3975 //
24.2.1 Abstract Operations For DataView Objects
3976 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3977 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3978 //
24.2.2 The DataView Constructor
3979 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3980 //
24.2.3 Properties of the DataView Constructor
3981 //
24.2.3.1 DataView.prototype
3982 //
24.2.4 Properties of the DataView Prototype Object
3983 //
24.2.4.1 get DataView.prototype.buffer
3984 //
24.2.4.2 get DataView.prototype.byteLength
3985 //
24.2.4.3 get DataView.prototype.byteOffset
3986 //
24.2.4.4 DataView.prototype.constructor
3987 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3988 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3989 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3990 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3991 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3992 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3993 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3994 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3995 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3996 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3997 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3998 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3999 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
4000 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
4001 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
4002 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
4004 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
4005 define(DataView.prototype, $$toStringTag, 'DataView');
4007 //
24.2.5 Properties of DataView Instances
4010 // ---------------------------------------
4011 //
24.3 The JSON Object
4012 // ---------------------------------------
4014 //
24.3.1 JSON.parse ( text [ , reviver ] )
4015 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
4016 //
24.3.3 JSON [ @@toStringTag ]
4017 define(JSON, $$toStringTag, 'JSON');
4019 // ---------------------------------------
4021 // ---------------------------------------
4023 //
25.1.1 Common Iteration Interfaces
4024 //
25.1.1.1 The Iterable Interface
4025 //
25.1.1.2 The Iterator Interface
4026 //
25.1.1.3 The IteratorResult Interface
4028 //
25.1.2 The %IteratorPrototype% Object
4029 // Defined earlier, so other prototypes can reference it.
4030 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
4031 define($IteratorPrototype$, $$iterator, function() {
4036 // ---------------------------------------
4037 //
25.4 Promise Objects
4038 // ---------------------------------------
4041 //
25.4 Promise Objects
4043 //
25.4.1 Promise Abstract Operations
4045 //
25.4.1.1 PromiseCapability Records
4046 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4048 function IfAbruptRejectPromise(value, capability) {
4049 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4050 return capability['[[Promise]]'];
4053 //
25.4.1.2 PromiseReaction Records
4055 //
25.4.1.3 CreateResolvingFunctions ( promise )
4057 function CreateResolvingFunctions(promise) {
4058 var alreadyResolved = {'[[value]]': false};
4059 var resolve = PromiseResolveFunction();
4060 set_internal(resolve, '[[Promise]]', promise);
4061 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4062 var reject = PromiseRejectFunction();
4063 set_internal(reject, '[[Promise]]', promise);
4064 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4065 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4068 //
25.4.1.3.1 Promise Reject Functions
4070 function PromiseRejectFunction() {
4071 var F = function(reason) {
4072 console.assert(Type(F['[[Promise]]']) === 'object');
4073 var promise = F['[[Promise]]'];
4074 var alreadyResolved = F['[[AlreadyResolved]]'];
4075 if (alreadyResolved['[[value]]']) return undefined;
4076 set_internal(alreadyResolved, '[[value]]', true);
4077 return RejectPromise(promise, reason);
4082 //
25.4.1.3.2 Promise Resolve Functions
4084 function PromiseResolveFunction() {
4085 var F = function(resolution) {
4086 console.assert(Type(F['[[Promise]]']) === 'object');
4087 var promise = F['[[Promise]]'];
4088 var alreadyResolved = F['[[AlreadyResolved]]'];
4089 if (alreadyResolved['[[value]]']) return undefined;
4090 set_internal(alreadyResolved, '[[value]]', true);
4092 if (SameValue(resolution, promise)) {
4093 var selfResolutionError = TypeError();
4094 return RejectPromise(promise, selfResolutionError);
4096 if (Type(resolution) !== 'object')
4097 return FulfillPromise(promise, resolution);
4099 var then = resolution['then'];
4101 return RejectPromise(promise, then);
4103 if (!IsCallable(then))
4104 return FulfillPromise(promise, resolution);
4105 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4111 //
25.4.1.4 FulfillPromise ( promise, value )
4113 function FulfillPromise(promise, value) {
4114 console.assert(promise['[[PromiseState]]'] === 'pending');
4115 var reactions = promise['[[PromiseFulfillReactions]]'];
4116 set_internal(promise, '[[PromiseResult]]', value);
4117 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4118 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4119 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4120 return TriggerPromiseReactions(reactions, value);
4123 //
25.4.1.5 NewPromiseCapability ( C )
4125 function NewPromiseCapability(c) {
4126 // To keep Promise hermetic, this doesn't look much like the spec.
4127 return CreatePromiseCapabilityRecord(undefined, c);
4130 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4132 function CreatePromiseCapabilityRecord(promise, constructor) {
4133 // To keep Promise hermetic, this doesn't look much like the spec.
4134 console.assert(IsConstructor(constructor));
4135 var promiseCapability = {};
4136 set_internal(promiseCapability, '[[Promise]]', promise);
4137 set_internal(promiseCapability, '[[Resolve]]', undefined);
4138 set_internal(promiseCapability, '[[Reject]]', undefined);
4139 var executor = GetCapabilitiesExecutor();
4140 set_internal(executor, '[[Capability]]', promiseCapability);
4142 // NOTE: Differs from spec; object is constructed here
4143 var constructorResult = promise = new constructor(executor);
4144 set_internal(promiseCapability, '[[Promise]]', promise);
4146 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4147 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4148 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4149 return promiseCapability;
4152 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4154 function GetCapabilitiesExecutor() {
4155 var F = function(resolve, reject) {
4156 console.assert(F['[[Capability]]']);
4157 var promiseCapability = F['[[Capability]]'];
4158 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4159 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4160 set_internal(promiseCapability, '[[Resolve]]', resolve);
4161 set_internal(promiseCapability, '[[Reject]]', reject);
4167 //
25.4.1.6 IsPromise ( x )
4169 function IsPromise(x) {
4170 if (Type(x) !== 'object') return false;
4171 if (!('[[PromiseState]]' in x)) return false;
4172 if (x['[[PromiseState]]'] === undefined) return false;
4176 //
25.4.1.7 RejectPromise ( promise, reason )
4178 function RejectPromise(promise, reason) {
4179 console.assert(promise['[[PromiseState]]'] === 'pending');
4180 var reactions = promise['[[PromiseRejectReactions]]'];
4181 set_internal(promise, '[[PromiseResult]]', reason);
4182 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4183 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4184 set_internal(promise, '[[PromiseState]]', 'rejected');
4185 return TriggerPromiseReactions(reactions, reason);
4188 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4190 function TriggerPromiseReactions(reactions, argument) {
4191 for (var i =
0, len = reactions.length; i < len; ++i)
4192 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4196 //
25.4.2 Promise Jobs
4198 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4200 function PromiseReactionJob(reaction, argument) {
4201 var promiseCapability = reaction['[[Capabilities]]'];
4202 var handler = reaction['[[Handler]]'];
4203 var handlerResult, status;
4205 if (handler === 'Identity') handlerResult = argument;
4206 else if (handler === 'Thrower') throw argument;
4207 else handlerResult = handler.call(undefined, argument);
4208 } catch (handlerResult) {
4209 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4210 NextJob(status); return;
4212 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4216 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4218 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4219 // SPEC BUG: promise vs. promiseToResolve
4220 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4222 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4223 resolvingFunctions['[[Reject]]']);
4224 } catch (thenCallResult) {
4225 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4226 NextJob(status); return;
4228 NextJob(thenCallResult);
4231 //
25.4.3 The Promise Constructor
4233 //
25.4.3.1 Promise ( executor )
4235 function Promise(executor) {
4236 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4237 Object.defineProperty(this, '[[PromiseState]]', config);
4238 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4239 Object.defineProperty(this, '[[PromiseResult]]', config);
4240 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4241 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4244 if (Type(promise) !== 'object') throw new TypeError();
4245 if (!('[[PromiseState]]' in promise)) throw TypeError();
4246 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4247 if (!IsCallable(executor)) throw TypeError();
4249 set_internal(promise, '[[PromiseConstructor]]', Promise);
4251 return InitializePromise(promise, executor);
4254 //
25.4.3.1.1 InitializePromise ( promise, executor )
4256 function InitializePromise(promise, executor) {
4257 console.assert('[[PromiseState]]' in promise);
4258 console.assert(IsCallable(executor));
4259 set_internal(promise, '[[PromiseState]]', 'pending');
4260 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4261 set_internal(promise, '[[PromiseRejectReactions]]', []);
4262 var resolvingFunctions = CreateResolvingFunctions(promise);
4264 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4265 resolvingFunctions['[[Reject]]']);
4266 } catch (completion) {
4267 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4272 //
25.4.4 Properties of the Promise Constructor
4273 //
25.4.4.1 Promise.all ( iterable )
4275 define(Promise, 'all', function all(iterable) {
4276 var c = strict(this);
4277 var promiseCapability = NewPromiseCapability(c);
4279 var iterator = GetIterator(iterable);
4281 promiseCapability['[[Reject]]'].call(undefined, value);
4282 return promiseCapability['[[Promise]]'];
4285 var remainingElementsCount = { value:
1 };
4289 var next = IteratorStep(iterator);
4291 promiseCapability['[[Reject]]'].call(undefined, value);
4292 return promiseCapability['[[Promise]]'];
4295 remainingElementsCount.value -=
1;
4296 if (remainingElementsCount.value ===
0) {
4297 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4301 return promiseCapability['[[Promise]]'];
4304 var nextValue = IteratorValue(next);
4306 promiseCapability['[[Reject]]'].call(undefined, value);
4307 return promiseCapability['[[Promise]]'];
4310 var nextPromise = c.resolve(nextValue);
4312 promiseCapability['[[Reject]]'].call(undefined, value);
4313 return promiseCapability['[[Promise]]'];
4315 var resolveElement = PromiseAllResolveElementFunction();
4316 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4317 set_internal(resolveElement, '[[Index]]', index);
4318 set_internal(resolveElement, '[[Values]]', values);
4319 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4320 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4321 remainingElementsCount.value +=
1;
4323 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4325 promiseCapability['[[Reject]]'].call(undefined, value);
4326 return promiseCapability['[[Promise]]'];
4332 //
25.4.4.1.1 Promise.all Resolve Element Functions
4334 function PromiseAllResolveElementFunction() {
4335 var F = function(x) {
4336 var alreadyCalled = F['[[AlreadyCalled]]'];
4337 if (alreadyCalled.value) return undefined;
4338 alreadyCalled.value = true;
4339 var index = F['[[Index]]'];
4340 var values = F['[[Values]]'];
4341 var promiseCapability = F['[[Capabilities]]'];
4342 var remainingElementsCount = F['[[RemainingElements]]'];
4346 promiseCapability['[[Reject]]'].call(undefined, result);
4347 return promiseCapability['[[Promise]]'];
4349 remainingElementsCount.value -=
1;
4350 if (remainingElementsCount.value ===
0)
4351 return promiseCapability['[[Resolve]]'].call(undefined, values);
4357 //
25.4.4.2 Promise.prototype
4359 Promise.prototype = {};
4361 //
25.4.4.3 Promise.race ( iterable )
4363 define(Promise, 'race', function race(iterable) {
4364 var c = strict(this);
4365 var promiseCapability = NewPromiseCapability(c);
4367 var iterator = GetIterator(iterable);
4369 promiseCapability['[[Reject]]'].call(undefined, value);
4370 return promiseCapability['[[Promise]]'];
4374 var next = IteratorStep(iterator);
4376 promiseCapability['[[Reject]]'].call(undefined, value);
4377 return promiseCapability['[[Promise]]'];
4379 if (!next) return promiseCapability['[[Promise]]'];
4381 var nextValue = IteratorValue(next);
4383 promiseCapability['[[Reject]]'].call(undefined, value);
4384 return promiseCapability['[[Promise]]'];
4387 var nextPromise = c.resolve(nextValue);
4389 promiseCapability['[[Reject]]'].call(undefined, value);
4390 return promiseCapability['[[Promise]]'];
4393 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4395 promiseCapability['[[Reject]]'].call(undefined, value);
4396 return promiseCapability['[[Promise]]'];
4401 //
25.4.4.4 Promise.reject ( r )
4403 define(Promise, 'reject', function reject(r) {
4404 var c = strict(this);
4405 var promiseCapability = NewPromiseCapability(c);
4406 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4407 return promiseCapability['[[Promise]]'];
4410 //
25.4.4.5 Promise.resolve ( x )
4412 define(Promise, 'resolve', function resolve(x) {
4413 var c = strict(this);
4415 var constructor = x['[[PromiseConstructor]]'];
4416 if (SameValue(constructor, c)) return x;
4418 var promiseCapability = NewPromiseCapability(c);
4419 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4420 return promiseCapability['[[Promise]]'];
4423 //
25.4.4.6 Promise [ @@create ] ( )
4424 //
25.4.4.6.1 AllocatePromise ( constructor )
4425 //
25.4.5 Properties of the Promise Prototype Object
4426 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4428 define(Promise.prototype, 'catch', function catch_(onRejected) {
4430 return promise.then(undefined, onRejected);
4433 //
25.4.5.2 Promise.prototype.constructor
4435 Promise.prototype.constructor = Promise;
4437 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4439 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4441 if (!IsPromise(promise)) throw TypeError();
4442 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4443 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4444 var c = promise.constructor;
4445 var promiseCapability = NewPromiseCapability(c);
4446 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4447 '[[Handler]]': onFulfilled };
4448 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4449 '[[Handler]]': onRejected };
4450 if (promise['[[PromiseState]]'] === 'pending') {
4451 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4452 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4453 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4454 var value = promise['[[PromiseResult]]'];
4455 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4456 } else if (promise['[[PromiseState]]'] === 'rejected') {
4457 var reason = promise['[[PromiseResult]]'];
4458 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4460 return promiseCapability['[[Promise]]'];
4463 //
25.4.6 Properties of Promise Instances
4465 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4466 global.Promise = Promise;
4468 // Patch early Promise.cast vs. Promise.resolve implementations
4469 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4472 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4473 define(Promise.prototype, $$toStringTag, 'Promise');
4475 // ---------------------------------------
4477 // ---------------------------------------
4480 //
26.1 The Reflect Object
4481 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4482 global.Reflect = {};
4484 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4487 function apply(target, thisArgument, argumentsList) {
4488 if (!IsCallable(target)) throw TypeError();
4489 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4492 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4494 Reflect, 'construct',
4495 function construct(target, argumentsList) {
4496 return __cons(target, argumentsList);
4499 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4501 Reflect, 'defineProperty',
4502 function defineProperty(target, propertyKey, attributes) {
4504 Object.defineProperty(target, propertyKey, attributes);
4511 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4513 Reflect, 'deleteProperty',
4514 function deleteProperty(target,name) {
4516 delete target[name];
4517 return !HasOwnProperty(target, name);
4523 //
26.1.5 Reflect.enumerate ( target )
4525 Reflect, 'enumerate',
4526 function enumerate(target) {
4527 target = ToObject(target);
4528 var iterator = Enumerate(target);
4532 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4535 function get(target, name, receiver) {
4536 target = ToObject(target);
4537 name = String(name);
4538 receiver = (receiver === undefined) ? target : ToObject(receiver);
4539 var desc = getPropertyDescriptor(target, name);
4540 if (desc && 'get' in desc)
4541 return Function.prototype.call.call(desc['get'], receiver);
4542 return target[name];
4545 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4547 Reflect, 'getOwnPropertyDescriptor',
4548 Object.getOwnPropertyDescriptor);
4550 //
26.1.8 Reflect.getPrototypeOf ( target )
4552 Reflect, 'getPrototypeOf',
4553 Object.getPrototypeOf);
4555 //
26.1.9 Reflect.has ( target, propertyKey )
4558 function has(target,name) {
4559 return String(name) in ToObject(target);
4562 //
26.1.10 Reflect.isExtensible (target)
4564 Reflect, 'isExtensible',
4565 Object.isExtensible);
4567 //
26.1.11 Reflect.ownKeys ( target )
4570 function ownKeys(target) {
4571 var obj = ToObject(target);
4572 return Object.getOwnPropertyNames(obj);
4575 //
26.1.12 Reflect.preventExtensions ( target )
4577 Reflect, 'preventExtensions',
4578 function preventExtensions(target) {
4579 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4582 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4585 function set(target, name, value, receiver) {
4586 target = ToObject(target);
4587 name = String(name);
4588 receiver = (receiver === undefined) ? target : ToObject(receiver);
4589 var desc = getPropertyDescriptor(target, name);
4591 if (desc && 'set' in desc)
4592 Function.prototype.call.call(desc['set'], receiver, value);
4594 target[name] = value;
4601 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4603 Reflect, 'setPrototypeOf',
4604 function setPrototypeOf(target, proto) {
4606 target.__proto__ = proto;
4607 return Reflect.getPrototypeOf(target) === proto;
4615 // ---------------------------------------
4616 //
26.2 Proxy Objects
4617 // ---------------------------------------
4619 // Not polyfillable.
4623 // This helper is defined outside the main scope so that the use of
4624 // 'eval' does not taint the scope for minifiers.
4625 function __cons(t, a) {
4626 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4629 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.foo = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
4632 exports.byteLength = byteLength
4633 exports.toByteArray = toByteArray
4634 exports.fromByteArray = fromByteArray
4638 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4640 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4641 for (var i =
0, len = code.length; i < len; ++i) {
4643 revLookup[code.charCodeAt(i)] = i
4646 revLookup['-'.charCodeAt(
0)] =
62
4647 revLookup['_'.charCodeAt(
0)] =
63
4649 function placeHoldersCount (b64) {
4650 var len = b64.length
4652 throw new Error('Invalid string. Length must be a multiple of
4')
4655 // the number of equal signs (place holders)
4656 // if there are two placeholders, than the two characters before it
4657 // represent one byte
4658 // if there is only one, then the three characters before it represent
2 bytes
4659 // this is just a cheap hack to not do indexOf twice
4660 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4663 function byteLength (b64) {
4664 // base64 is
4/
3 + up to two characters of the original data
4665 return b64.length *
3 /
4 - placeHoldersCount(b64)
4668 function toByteArray (b64) {
4669 var i, j, l, tmp, placeHolders, arr
4670 var len = b64.length
4671 placeHolders = placeHoldersCount(b64)
4673 arr = new Arr(len *
3 /
4 - placeHolders)
4675 // if there are placeholders, only get up to the last complete
4 chars
4676 l = placeHolders
> 0 ? len -
4 : len
4680 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4681 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4682 arr[L++] = (tmp
>> 16) &
0xFF
4683 arr[L++] = (tmp
>> 8) &
0xFF
4684 arr[L++] = tmp &
0xFF
4687 if (placeHolders ===
2) {
4688 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4689 arr[L++] = tmp &
0xFF
4690 } else if (placeHolders ===
1) {
4691 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4692 arr[L++] = (tmp
>> 8) &
0xFF
4693 arr[L++] = tmp &
0xFF
4699 function tripletToBase64 (num) {
4700 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4703 function encodeChunk (uint8, start, end) {
4706 for (var i = start; i < end; i +=
3) {
4707 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4708 output.push(tripletToBase64(tmp))
4710 return output.join('')
4713 function fromByteArray (uint8) {
4715 var len = uint8.length
4716 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4719 var maxChunkLength =
16383 // must be multiple of
3
4721 // go through the array every three bytes, we'll deal with trailing stuff later
4722 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4723 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4726 // pad the end with zeros, but make sure to not forget the extra bytes
4727 if (extraBytes ===
1) {
4728 tmp = uint8[len -
1]
4729 output += lookup[tmp
>> 2]
4730 output += lookup[(tmp <<
4) &
0x3F]
4732 } else if (extraBytes ===
2) {
4733 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4734 output += lookup[tmp
>> 10]
4735 output += lookup[(tmp
>> 4) &
0x3F]
4736 output += lookup[(tmp <<
2) &
0x3F]
4742 return parts.join('')
4745 },{}],
2:[function(require,module,exports){
4747 * The buffer module from node.js, for the browser.
4749 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4752 /* eslint-disable no-proto */
4756 var base64 = require('base64-js')
4757 var ieee754 = require('ieee754')
4759 exports.Buffer = Buffer
4760 exports.SlowBuffer = SlowBuffer
4761 exports.INSPECT_MAX_BYTES =
50
4763 var K_MAX_LENGTH =
0x7fffffff
4764 exports.kMaxLength = K_MAX_LENGTH
4767 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4768 * === true Use Uint8Array implementation (fastest)
4769 * === false Print warning and recommend using `buffer` v4.x which has an Object
4770 * implementation (most compatible, even IE6)
4772 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4773 * Opera
11.6+, iOS
4.2+.
4775 * We report that the browser does not support typed arrays if the are not subclassable
4776 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4777 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4778 * for __proto__ and has a buggy typed array implementation.
4780 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4782 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4783 typeof console.error === 'function') {
4785 'This browser lacks typed array (Uint8Array) support which is required by ' +
4786 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4790 function typedArraySupport () {
4791 // Can typed array instances can be augmented?
4793 var arr = new Uint8Array(
1)
4794 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4795 return arr.foo() ===
42
4801 function createBuffer (length) {
4802 if (length
> K_MAX_LENGTH) {
4803 throw new RangeError('Invalid typed array length')
4805 // Return an augmented `Uint8Array` instance
4806 var buf = new Uint8Array(length)
4807 buf.__proto__ = Buffer.prototype
4812 * The Buffer constructor returns instances of `Uint8Array` that have their
4813 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4814 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4815 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4816 * returns a single octet.
4818 * The `Uint8Array` prototype remains unmodified.
4821 function Buffer (arg, encodingOrOffset, length) {
4823 if (typeof arg === 'number') {
4824 if (typeof encodingOrOffset === 'string') {
4826 'If encoding is specified then the first argument must be a string'
4829 return allocUnsafe(arg)
4831 return from(arg, encodingOrOffset, length)
4834 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4835 if (typeof Symbol !== 'undefined' && Symbol.species &&
4836 Buffer[Symbol.species] === Buffer) {
4837 Object.defineProperty(Buffer, Symbol.species, {
4845 Buffer.poolSize =
8192 // not used by this implementation
4847 function from (value, encodingOrOffset, length) {
4848 if (typeof value === 'number') {
4849 throw new TypeError('"value" argument must not be a number')
4852 if (value instanceof ArrayBuffer) {
4853 return fromArrayBuffer(value, encodingOrOffset, length)
4856 if (typeof value === 'string') {
4857 return fromString(value, encodingOrOffset)
4860 return fromObject(value)
4864 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4865 * if value is a number.
4866 * Buffer.from(str[, encoding])
4867 * Buffer.from(array)
4868 * Buffer.from(buffer)
4869 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4871 Buffer.from = function (value, encodingOrOffset, length) {
4872 return from(value, encodingOrOffset, length)
4875 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4876 // https://github.com/feross/buffer/pull/
148
4877 Buffer.prototype.__proto__ = Uint8Array.prototype
4878 Buffer.__proto__ = Uint8Array
4880 function assertSize (size) {
4881 if (typeof size !== 'number') {
4882 throw new TypeError('"size" argument must be a number')
4883 } else if (size <
0) {
4884 throw new RangeError('"size" argument must not be negative')
4888 function alloc (size, fill, encoding) {
4891 return createBuffer(size)
4893 if (fill !== undefined) {
4894 // Only pay attention to encoding if it's a string. This
4895 // prevents accidentally sending in a number that would
4896 // be interpretted as a start offset.
4897 return typeof encoding === 'string'
4898 ? createBuffer(size).fill(fill, encoding)
4899 : createBuffer(size).fill(fill)
4901 return createBuffer(size)
4905 * Creates a new filled Buffer instance.
4906 * alloc(size[, fill[, encoding]])
4908 Buffer.alloc = function (size, fill, encoding) {
4909 return alloc(size, fill, encoding)
4912 function allocUnsafe (size) {
4914 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4918 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4920 Buffer.allocUnsafe = function (size) {
4921 return allocUnsafe(size)
4924 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4926 Buffer.allocUnsafeSlow = function (size) {
4927 return allocUnsafe(size)
4930 function fromString (string, encoding) {
4931 if (typeof encoding !== 'string' || encoding === '') {
4935 if (!Buffer.isEncoding(encoding)) {
4936 throw new TypeError('"encoding" must be a valid string encoding')
4939 var length = byteLength(string, encoding) |
0
4940 var buf = createBuffer(length)
4942 var actual = buf.write(string, encoding)
4944 if (actual !== length) {
4945 // Writing a hex string, for example, that contains invalid characters will
4946 // cause everything after the first invalid character to be ignored. (e.g.
4947 // 'abxxcd' will be treated as 'ab')
4948 buf = buf.slice(
0, actual)
4954 function fromArrayLike (array) {
4955 var length = array.length <
0 ?
0 : checked(array.length) |
0
4956 var buf = createBuffer(length)
4957 for (var i =
0; i < length; i +=
1) {
4958 buf[i] = array[i] &
255
4963 function fromArrayBuffer (array, byteOffset, length) {
4964 if (byteOffset <
0 || array.byteLength < byteOffset) {
4965 throw new RangeError('\'offset\' is out of bounds')
4968 if (array.byteLength < byteOffset + (length ||
0)) {
4969 throw new RangeError('\'length\' is out of bounds')
4973 if (byteOffset === undefined && length === undefined) {
4974 buf = new Uint8Array(array)
4975 } else if (length === undefined) {
4976 buf = new Uint8Array(array, byteOffset)
4978 buf = new Uint8Array(array, byteOffset, length)
4981 // Return an augmented `Uint8Array` instance
4982 buf.__proto__ = Buffer.prototype
4986 function fromObject (obj) {
4987 if (Buffer.isBuffer(obj)) {
4988 var len = checked(obj.length) |
0
4989 var buf = createBuffer(len)
4991 if (buf.length ===
0) {
4995 obj.copy(buf,
0,
0, len)
5000 if (isArrayBufferView(obj) || 'length' in obj) {
5001 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
5002 return createBuffer(
0)
5004 return fromArrayLike(obj)
5007 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
5008 return fromArrayLike(obj.data)
5012 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
5015 function checked (length) {
5016 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
5017 // length is NaN (which is otherwise coerced to zero.)
5018 if (length
>= K_MAX_LENGTH) {
5019 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
5020 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
5025 function SlowBuffer (length) {
5026 if (+length != length) { // eslint-disable-line eqeqeq
5029 return Buffer.alloc(+length)
5032 Buffer.isBuffer = function isBuffer (b) {
5033 return b != null && b._isBuffer === true
5036 Buffer.compare = function compare (a, b) {
5037 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5038 throw new TypeError('Arguments must be Buffers')
5041 if (a === b) return
0
5046 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5047 if (a[i] !== b[i]) {
5054 if (x < y) return -
1
5059 Buffer.isEncoding = function isEncoding (encoding) {
5060 switch (String(encoding).toLowerCase()) {
5078 Buffer.concat = function concat (list, length) {
5079 if (!Array.isArray(list)) {
5080 throw new TypeError('"list" argument must be an Array of Buffers')
5083 if (list.length ===
0) {
5084 return Buffer.alloc(
0)
5088 if (length === undefined) {
5090 for (i =
0; i < list.length; ++i) {
5091 length += list[i].length
5095 var buffer = Buffer.allocUnsafe(length)
5097 for (i =
0; i < list.length; ++i) {
5099 if (!Buffer.isBuffer(buf)) {
5100 throw new TypeError('"list" argument must be an Array of Buffers')
5102 buf.copy(buffer, pos)
5108 function byteLength (string, encoding) {
5109 if (Buffer.isBuffer(string)) {
5110 return string.length
5112 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5113 return string.byteLength
5115 if (typeof string !== 'string') {
5116 string = '' + string
5119 var len = string.length
5120 if (len ===
0) return
0
5122 // Use a for loop to avoid recursion
5123 var loweredCase = false
5133 return utf8ToBytes(string).length
5142 return base64ToBytes(string).length
5144 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5145 encoding = ('' + encoding).toLowerCase()
5150 Buffer.byteLength = byteLength
5152 function slowToString (encoding, start, end) {
5153 var loweredCase = false
5155 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5156 // property of a typed array.
5158 // This behaves neither like String nor Uint8Array in that we set start/end
5159 // to their upper/lower bounds if the value passed is out of range.
5160 // undefined is handled specially as per ECMA-
262 6th Edition,
5161 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5162 if (start === undefined || start <
0) {
5165 // Return early if start
> this.length. Done here to prevent potential uint32
5166 // coercion fail below.
5167 if (start
> this.length) {
5171 if (end === undefined || end
> this.length) {
5179 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5187 if (!encoding) encoding = 'utf8'
5192 return hexSlice(this, start, end)
5196 return utf8Slice(this, start, end)
5199 return asciiSlice(this, start, end)
5203 return latin1Slice(this, start, end)
5206 return base64Slice(this, start, end)
5212 return utf16leSlice(this, start, end)
5215 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5216 encoding = (encoding + '').toLowerCase()
5222 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5223 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5224 // reliably in a browserify context because there could be multiple different
5225 // copies of the 'buffer' package in use. This method works even for Buffer
5226 // instances that were created from another copy of the `buffer` package.
5227 // See: https://github.com/feross/buffer/issues/
154
5228 Buffer.prototype._isBuffer = true
5230 function swap (b, n, m) {
5236 Buffer.prototype.swap16 = function swap16 () {
5237 var len = this.length
5238 if (len %
2 !==
0) {
5239 throw new RangeError('Buffer size must be a multiple of
16-bits')
5241 for (var i =
0; i < len; i +=
2) {
5242 swap(this, i, i +
1)
5247 Buffer.prototype.swap32 = function swap32 () {
5248 var len = this.length
5249 if (len %
4 !==
0) {
5250 throw new RangeError('Buffer size must be a multiple of
32-bits')
5252 for (var i =
0; i < len; i +=
4) {
5253 swap(this, i, i +
3)
5254 swap(this, i +
1, i +
2)
5259 Buffer.prototype.swap64 = function swap64 () {
5260 var len = this.length
5261 if (len %
8 !==
0) {
5262 throw new RangeError('Buffer size must be a multiple of
64-bits')
5264 for (var i =
0; i < len; i +=
8) {
5265 swap(this, i, i +
7)
5266 swap(this, i +
1, i +
6)
5267 swap(this, i +
2, i +
5)
5268 swap(this, i +
3, i +
4)
5273 Buffer.prototype.toString = function toString () {
5274 var length = this.length
5275 if (length ===
0) return ''
5276 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5277 return slowToString.apply(this, arguments)
5280 Buffer.prototype.equals = function equals (b) {
5281 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5282 if (this === b) return true
5283 return Buffer.compare(this, b) ===
0
5286 Buffer.prototype.inspect = function inspect () {
5288 var max = exports.INSPECT_MAX_BYTES
5289 if (this.length
> 0) {
5290 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5291 if (this.length
> max) str += ' ... '
5293 return '
<Buffer ' + str + '
>'
5296 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5297 if (!Buffer.isBuffer(target)) {
5298 throw new TypeError('Argument must be a Buffer')
5301 if (start === undefined) {
5304 if (end === undefined) {
5305 end = target ? target.length :
0
5307 if (thisStart === undefined) {
5310 if (thisEnd === undefined) {
5311 thisEnd = this.length
5314 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5315 throw new RangeError('out of range index')
5318 if (thisStart
>= thisEnd && start
>= end) {
5321 if (thisStart
>= thisEnd) {
5333 if (this === target) return
0
5335 var x = thisEnd - thisStart
5337 var len = Math.min(x, y)
5339 var thisCopy = this.slice(thisStart, thisEnd)
5340 var targetCopy = target.slice(start, end)
5342 for (var i =
0; i < len; ++i) {
5343 if (thisCopy[i] !== targetCopy[i]) {
5350 if (x < y) return -
1
5355 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5356 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5359 // - buffer - a Buffer to search
5360 // - val - a string, Buffer, or number
5361 // - byteOffset - an index into `buffer`; will be clamped to an int32
5362 // - encoding - an optional encoding, relevant is val is a string
5363 // - dir - true for indexOf, false for lastIndexOf
5364 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5365 // Empty buffer means no match
5366 if (buffer.length ===
0) return -
1
5368 // Normalize byteOffset
5369 if (typeof byteOffset === 'string') {
5370 encoding = byteOffset
5372 } else if (byteOffset
> 0x7fffffff) {
5373 byteOffset =
0x7fffffff
5374 } else if (byteOffset < -
0x80000000) {
5375 byteOffset = -
0x80000000
5377 byteOffset = +byteOffset // Coerce to Number.
5378 if (numberIsNaN(byteOffset)) {
5379 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5380 byteOffset = dir ?
0 : (buffer.length -
1)
5383 // Normalize byteOffset: negative offsets start from the end of the buffer
5384 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5385 if (byteOffset
>= buffer.length) {
5387 else byteOffset = buffer.length -
1
5388 } else if (byteOffset <
0) {
5389 if (dir) byteOffset =
0
5394 if (typeof val === 'string') {
5395 val = Buffer.from(val, encoding)
5398 // Finally, search either indexOf (if dir is true) or lastIndexOf
5399 if (Buffer.isBuffer(val)) {
5400 // Special case: looking for empty string/buffer always fails
5401 if (val.length ===
0) {
5404 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5405 } else if (typeof val === 'number') {
5406 val = val &
0xFF // Search for a byte value [
0-
255]
5407 if (typeof Uint8Array.prototype.indexOf === 'function') {
5409 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5411 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5414 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5417 throw new TypeError('val must be string, number or Buffer')
5420 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5422 var arrLength = arr.length
5423 var valLength = val.length
5425 if (encoding !== undefined) {
5426 encoding = String(encoding).toLowerCase()
5427 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5428 encoding === 'utf16le' || encoding === 'utf-
16le') {
5429 if (arr.length <
2 || val.length <
2) {
5439 function read (buf, i) {
5440 if (indexSize ===
1) {
5443 return buf.readUInt16BE(i * indexSize)
5450 for (i = byteOffset; i < arrLength; i++) {
5451 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5452 if (foundIndex === -
1) foundIndex = i
5453 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5455 if (foundIndex !== -
1) i -= i - foundIndex
5460 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5461 for (i = byteOffset; i
>=
0; i--) {
5463 for (var j =
0; j < valLength; j++) {
5464 if (read(arr, i + j) !== read(val, j)) {
5476 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5477 return this.indexOf(val, byteOffset, encoding) !== -
1
5480 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5481 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5484 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5485 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5488 function hexWrite (buf, string, offset, length) {
5489 offset = Number(offset) ||
0
5490 var remaining = buf.length - offset
5494 length = Number(length)
5495 if (length
> remaining) {
5500 // must be an even number of digits
5501 var strLen = string.length
5502 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5504 if (length
> strLen /
2) {
5507 for (var i =
0; i < length; ++i) {
5508 var parsed = parseInt(string.substr(i *
2,
2),
16)
5509 if (numberIsNaN(parsed)) return i
5510 buf[offset + i] = parsed
5515 function utf8Write (buf, string, offset, length) {
5516 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5519 function asciiWrite (buf, string, offset, length) {
5520 return blitBuffer(asciiToBytes(string), buf, offset, length)
5523 function latin1Write (buf, string, offset, length) {
5524 return asciiWrite(buf, string, offset, length)
5527 function base64Write (buf, string, offset, length) {
5528 return blitBuffer(base64ToBytes(string), buf, offset, length)
5531 function ucs2Write (buf, string, offset, length) {
5532 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5535 Buffer.prototype.write = function write (string, offset, length, encoding) {
5536 // Buffer#write(string)
5537 if (offset === undefined) {
5539 length = this.length
5541 // Buffer#write(string, encoding)
5542 } else if (length === undefined && typeof offset === 'string') {
5544 length = this.length
5546 // Buffer#write(string, offset[, length][, encoding])
5547 } else if (isFinite(offset)) {
5548 offset = offset
>>> 0
5549 if (isFinite(length)) {
5550 length = length
>>> 0
5551 if (encoding === undefined) encoding = 'utf8'
5558 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5562 var remaining = this.length - offset
5563 if (length === undefined || length
> remaining) length = remaining
5565 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5566 throw new RangeError('Attempt to write outside buffer bounds')
5569 if (!encoding) encoding = 'utf8'
5571 var loweredCase = false
5575 return hexWrite(this, string, offset, length)
5579 return utf8Write(this, string, offset, length)
5582 return asciiWrite(this, string, offset, length)
5586 return latin1Write(this, string, offset, length)
5589 // Warning: maxLength not taken into account in base64Write
5590 return base64Write(this, string, offset, length)
5596 return ucs2Write(this, string, offset, length)
5599 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5600 encoding = ('' + encoding).toLowerCase()
5606 Buffer.prototype.toJSON = function toJSON () {
5609 data: Array.prototype.slice.call(this._arr || this,
0)
5613 function base64Slice (buf, start, end) {
5614 if (start ===
0 && end === buf.length) {
5615 return base64.fromByteArray(buf)
5617 return base64.fromByteArray(buf.slice(start, end))
5621 function utf8Slice (buf, start, end) {
5622 end = Math.min(buf.length, end)
5627 var firstByte = buf[i]
5628 var codePoint = null
5629 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5630 : (firstByte
> 0xDF) ?
3
5631 : (firstByte
> 0xBF) ?
2
5634 if (i + bytesPerSequence <= end) {
5635 var secondByte, thirdByte, fourthByte, tempCodePoint
5637 switch (bytesPerSequence) {
5639 if (firstByte <
0x80) {
5640 codePoint = firstByte
5644 secondByte = buf[i +
1]
5645 if ((secondByte &
0xC0) ===
0x80) {
5646 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5647 if (tempCodePoint
> 0x7F) {
5648 codePoint = tempCodePoint
5653 secondByte = buf[i +
1]
5654 thirdByte = buf[i +
2]
5655 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5656 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5657 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5658 codePoint = tempCodePoint
5663 secondByte = buf[i +
1]
5664 thirdByte = buf[i +
2]
5665 fourthByte = buf[i +
3]
5666 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5667 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5668 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5669 codePoint = tempCodePoint
5675 if (codePoint === null) {
5676 // we did not generate a valid codePoint so insert a
5677 // replacement char (U+FFFD) and advance only
1 byte
5679 bytesPerSequence =
1
5680 } else if (codePoint
> 0xFFFF) {
5681 // encode to utf16 (surrogate pair dance)
5682 codePoint -=
0x10000
5683 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5684 codePoint =
0xDC00 | codePoint &
0x3FF
5688 i += bytesPerSequence
5691 return decodeCodePointsArray(res)
5694 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5695 // the lowest limit is Chrome, with
0x10000 args.
5696 // We go
1 magnitude less, for safety
5697 var MAX_ARGUMENTS_LENGTH =
0x1000
5699 function decodeCodePointsArray (codePoints) {
5700 var len = codePoints.length
5701 if (len <= MAX_ARGUMENTS_LENGTH) {
5702 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5705 // Decode in chunks to avoid
"call stack size exceeded".
5709 res += String.fromCharCode.apply(
5711 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5717 function asciiSlice (buf, start, end) {
5719 end = Math.min(buf.length, end)
5721 for (var i = start; i < end; ++i) {
5722 ret += String.fromCharCode(buf[i] &
0x7F)
5727 function latin1Slice (buf, start, end) {
5729 end = Math.min(buf.length, end)
5731 for (var i = start; i < end; ++i) {
5732 ret += String.fromCharCode(buf[i])
5737 function hexSlice (buf, start, end) {
5738 var len = buf.length
5740 if (!start || start <
0) start =
0
5741 if (!end || end <
0 || end
> len) end = len
5744 for (var i = start; i < end; ++i) {
5745 out += toHex(buf[i])
5750 function utf16leSlice (buf, start, end) {
5751 var bytes = buf.slice(start, end)
5753 for (var i =
0; i < bytes.length; i +=
2) {
5754 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5759 Buffer.prototype.slice = function slice (start, end) {
5760 var len = this.length
5762 end = end === undefined ? len : ~~end
5766 if (start <
0) start =
0
5767 } else if (start
> len) {
5773 if (end <
0) end =
0
5774 } else if (end
> len) {
5778 if (end < start) end = start
5780 var newBuf = this.subarray(start, end)
5781 // Return an augmented `Uint8Array` instance
5782 newBuf.__proto__ = Buffer.prototype
5787 * Need to make sure that buffer isn't trying to write out of bounds.
5789 function checkOffset (offset, ext, length) {
5790 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5791 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5794 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5795 offset = offset
>>> 0
5796 byteLength = byteLength
>>> 0
5797 if (!noAssert) checkOffset(offset, byteLength, this.length)
5799 var val = this[offset]
5802 while (++i < byteLength && (mul *=
0x100)) {
5803 val += this[offset + i] * mul
5809 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5810 offset = offset
>>> 0
5811 byteLength = byteLength
>>> 0
5813 checkOffset(offset, byteLength, this.length)
5816 var val = this[offset + --byteLength]
5818 while (byteLength
> 0 && (mul *=
0x100)) {
5819 val += this[offset + --byteLength] * mul
5825 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5826 offset = offset
>>> 0
5827 if (!noAssert) checkOffset(offset,
1, this.length)
5831 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5832 offset = offset
>>> 0
5833 if (!noAssert) checkOffset(offset,
2, this.length)
5834 return this[offset] | (this[offset +
1] <<
8)
5837 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5838 offset = offset
>>> 0
5839 if (!noAssert) checkOffset(offset,
2, this.length)
5840 return (this[offset] <<
8) | this[offset +
1]
5843 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5844 offset = offset
>>> 0
5845 if (!noAssert) checkOffset(offset,
4, this.length)
5847 return ((this[offset]) |
5848 (this[offset +
1] <<
8) |
5849 (this[offset +
2] <<
16)) +
5850 (this[offset +
3] *
0x1000000)
5853 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5854 offset = offset
>>> 0
5855 if (!noAssert) checkOffset(offset,
4, this.length)
5857 return (this[offset] *
0x1000000) +
5858 ((this[offset +
1] <<
16) |
5859 (this[offset +
2] <<
8) |
5863 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5864 offset = offset
>>> 0
5865 byteLength = byteLength
>>> 0
5866 if (!noAssert) checkOffset(offset, byteLength, this.length)
5868 var val = this[offset]
5871 while (++i < byteLength && (mul *=
0x100)) {
5872 val += this[offset + i] * mul
5876 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5881 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5882 offset = offset
>>> 0
5883 byteLength = byteLength
>>> 0
5884 if (!noAssert) checkOffset(offset, byteLength, this.length)
5888 var val = this[offset + --i]
5889 while (i
> 0 && (mul *=
0x100)) {
5890 val += this[offset + --i] * mul
5894 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5899 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5900 offset = offset
>>> 0
5901 if (!noAssert) checkOffset(offset,
1, this.length)
5902 if (!(this[offset] &
0x80)) return (this[offset])
5903 return ((
0xff - this[offset] +
1) * -
1)
5906 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5907 offset = offset
>>> 0
5908 if (!noAssert) checkOffset(offset,
2, this.length)
5909 var val = this[offset] | (this[offset +
1] <<
8)
5910 return (val &
0x8000) ? val |
0xFFFF0000 : val
5913 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5914 offset = offset
>>> 0
5915 if (!noAssert) checkOffset(offset,
2, this.length)
5916 var val = this[offset +
1] | (this[offset] <<
8)
5917 return (val &
0x8000) ? val |
0xFFFF0000 : val
5920 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5921 offset = offset
>>> 0
5922 if (!noAssert) checkOffset(offset,
4, this.length)
5924 return (this[offset]) |
5925 (this[offset +
1] <<
8) |
5926 (this[offset +
2] <<
16) |
5927 (this[offset +
3] <<
24)
5930 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5931 offset = offset
>>> 0
5932 if (!noAssert) checkOffset(offset,
4, this.length)
5934 return (this[offset] <<
24) |
5935 (this[offset +
1] <<
16) |
5936 (this[offset +
2] <<
8) |
5940 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5941 offset = offset
>>> 0
5942 if (!noAssert) checkOffset(offset,
4, this.length)
5943 return ieee754.read(this, offset, true,
23,
4)
5946 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5947 offset = offset
>>> 0
5948 if (!noAssert) checkOffset(offset,
4, this.length)
5949 return ieee754.read(this, offset, false,
23,
4)
5952 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5953 offset = offset
>>> 0
5954 if (!noAssert) checkOffset(offset,
8, this.length)
5955 return ieee754.read(this, offset, true,
52,
8)
5958 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5959 offset = offset
>>> 0
5960 if (!noAssert) checkOffset(offset,
8, this.length)
5961 return ieee754.read(this, offset, false,
52,
8)
5964 function checkInt (buf, value, offset, ext, max, min) {
5965 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5966 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5967 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5970 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5972 offset = offset
>>> 0
5973 byteLength = byteLength
>>> 0
5975 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5976 checkInt(this, value, offset, byteLength, maxBytes,
0)
5981 this[offset] = value &
0xFF
5982 while (++i < byteLength && (mul *=
0x100)) {
5983 this[offset + i] = (value / mul) &
0xFF
5986 return offset + byteLength
5989 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5991 offset = offset
>>> 0
5992 byteLength = byteLength
>>> 0
5994 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5995 checkInt(this, value, offset, byteLength, maxBytes,
0)
5998 var i = byteLength -
1
6000 this[offset + i] = value &
0xFF
6001 while (--i
>=
0 && (mul *=
0x100)) {
6002 this[offset + i] = (value / mul) &
0xFF
6005 return offset + byteLength
6008 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
6010 offset = offset
>>> 0
6011 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
6012 this[offset] = (value &
0xff)
6016 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
6018 offset = offset
>>> 0
6019 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6020 this[offset] = (value &
0xff)
6021 this[offset +
1] = (value
>>> 8)
6025 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
6027 offset = offset
>>> 0
6028 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6029 this[offset] = (value
>>> 8)
6030 this[offset +
1] = (value &
0xff)
6034 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6036 offset = offset
>>> 0
6037 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6038 this[offset +
3] = (value
>>> 24)
6039 this[offset +
2] = (value
>>> 16)
6040 this[offset +
1] = (value
>>> 8)
6041 this[offset] = (value &
0xff)
6045 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6047 offset = offset
>>> 0
6048 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6049 this[offset] = (value
>>> 24)
6050 this[offset +
1] = (value
>>> 16)
6051 this[offset +
2] = (value
>>> 8)
6052 this[offset +
3] = (value &
0xff)
6056 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6058 offset = offset
>>> 0
6060 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6062 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6068 this[offset] = value &
0xFF
6069 while (++i < byteLength && (mul *=
0x100)) {
6070 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6073 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6076 return offset + byteLength
6079 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6081 offset = offset
>>> 0
6083 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6085 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6088 var i = byteLength -
1
6091 this[offset + i] = value &
0xFF
6092 while (--i
>=
0 && (mul *=
0x100)) {
6093 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6096 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6099 return offset + byteLength
6102 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6104 offset = offset
>>> 0
6105 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6106 if (value <
0) value =
0xff + value +
1
6107 this[offset] = (value &
0xff)
6111 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6113 offset = offset
>>> 0
6114 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6115 this[offset] = (value &
0xff)
6116 this[offset +
1] = (value
>>> 8)
6120 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6122 offset = offset
>>> 0
6123 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6124 this[offset] = (value
>>> 8)
6125 this[offset +
1] = (value &
0xff)
6129 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6131 offset = offset
>>> 0
6132 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6133 this[offset] = (value &
0xff)
6134 this[offset +
1] = (value
>>> 8)
6135 this[offset +
2] = (value
>>> 16)
6136 this[offset +
3] = (value
>>> 24)
6140 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6142 offset = offset
>>> 0
6143 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6144 if (value <
0) value =
0xffffffff + value +
1
6145 this[offset] = (value
>>> 24)
6146 this[offset +
1] = (value
>>> 16)
6147 this[offset +
2] = (value
>>> 8)
6148 this[offset +
3] = (value &
0xff)
6152 function checkIEEE754 (buf, value, offset, ext, max, min) {
6153 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6154 if (offset <
0) throw new RangeError('Index out of range')
6157 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6159 offset = offset
>>> 0
6161 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6163 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6167 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6168 return writeFloat(this, value, offset, true, noAssert)
6171 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6172 return writeFloat(this, value, offset, false, noAssert)
6175 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6177 offset = offset
>>> 0
6179 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6181 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6185 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6186 return writeDouble(this, value, offset, true, noAssert)
6189 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6190 return writeDouble(this, value, offset, false, noAssert)
6193 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6194 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6195 if (!start) start =
0
6196 if (!end && end !==
0) end = this.length
6197 if (targetStart
>= target.length) targetStart = target.length
6198 if (!targetStart) targetStart =
0
6199 if (end
> 0 && end < start) end = start
6201 // Copy
0 bytes; we're done
6202 if (end === start) return
0
6203 if (target.length ===
0 || this.length ===
0) return
0
6205 // Fatal error conditions
6206 if (targetStart <
0) {
6207 throw new RangeError('targetStart out of bounds')
6209 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6210 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6213 if (end
> this.length) end = this.length
6214 if (target.length - targetStart < end - start) {
6215 end = target.length - targetStart + start
6218 var len = end - start
6221 if (this === target && start < targetStart && targetStart < end) {
6222 // descending copy from end
6223 for (i = len -
1; i
>=
0; --i) {
6224 target[i + targetStart] = this[i + start]
6226 } else if (len <
1000) {
6227 // ascending copy from start
6228 for (i =
0; i < len; ++i) {
6229 target[i + targetStart] = this[i + start]
6232 Uint8Array.prototype.set.call(
6234 this.subarray(start, start + len),
6243 // buffer.fill(number[, offset[, end]])
6244 // buffer.fill(buffer[, offset[, end]])
6245 // buffer.fill(string[, offset[, end]][, encoding])
6246 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6247 // Handle string cases:
6248 if (typeof val === 'string') {
6249 if (typeof start === 'string') {
6253 } else if (typeof end === 'string') {
6257 if (val.length ===
1) {
6258 var code = val.charCodeAt(
0)
6263 if (encoding !== undefined && typeof encoding !== 'string') {
6264 throw new TypeError('encoding must be a string')
6266 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6267 throw new TypeError('Unknown encoding: ' + encoding)
6269 } else if (typeof val === 'number') {
6273 // Invalid ranges are not set to a default, so can range check early.
6274 if (start <
0 || this.length < start || this.length < end) {
6275 throw new RangeError('Out of range index')
6283 end = end === undefined ? this.length : end
>>> 0
6288 if (typeof val === 'number') {
6289 for (i = start; i < end; ++i) {
6293 var bytes = Buffer.isBuffer(val)
6295 : new Buffer(val, encoding)
6296 var len = bytes.length
6297 for (i =
0; i < end - start; ++i) {
6298 this[i + start] = bytes[i % len]
6308 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6310 function base64clean (str) {
6311 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6312 str = str.trim().replace(INVALID_BASE64_RE, '')
6313 // Node converts strings with length <
2 to ''
6314 if (str.length <
2) return ''
6315 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6316 while (str.length %
4 !==
0) {
6322 function toHex (n) {
6323 if (n <
16) return '
0' + n.toString(
16)
6324 return n.toString(
16)
6327 function utf8ToBytes (string, units) {
6328 units = units || Infinity
6330 var length = string.length
6331 var leadSurrogate = null
6334 for (var i =
0; i < length; ++i) {
6335 codePoint = string.charCodeAt(i)
6337 // is surrogate component
6338 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6339 // last char was a lead
6340 if (!leadSurrogate) {
6342 if (codePoint
> 0xDBFF) {
6344 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6346 } else if (i +
1 === length) {
6348 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6353 leadSurrogate = codePoint
6359 if (codePoint <
0xDC00) {
6360 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6361 leadSurrogate = codePoint
6365 // valid surrogate pair
6366 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6367 } else if (leadSurrogate) {
6368 // valid bmp char, but last char was a lead
6369 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6372 leadSurrogate = null
6375 if (codePoint <
0x80) {
6376 if ((units -=
1) <
0) break
6377 bytes.push(codePoint)
6378 } else if (codePoint <
0x800) {
6379 if ((units -=
2) <
0) break
6381 codePoint
>> 0x6 |
0xC0,
6382 codePoint &
0x3F |
0x80
6384 } else if (codePoint <
0x10000) {
6385 if ((units -=
3) <
0) break
6387 codePoint
>> 0xC |
0xE0,
6388 codePoint
>> 0x6 &
0x3F |
0x80,
6389 codePoint &
0x3F |
0x80
6391 } else if (codePoint <
0x110000) {
6392 if ((units -=
4) <
0) break
6394 codePoint
>> 0x12 |
0xF0,
6395 codePoint
>> 0xC &
0x3F |
0x80,
6396 codePoint
>> 0x6 &
0x3F |
0x80,
6397 codePoint &
0x3F |
0x80
6400 throw new Error('Invalid code point')
6407 function asciiToBytes (str) {
6409 for (var i =
0; i < str.length; ++i) {
6410 // Node's code seems to be doing this and not &
0x7F..
6411 byteArray.push(str.charCodeAt(i) &
0xFF)
6416 function utf16leToBytes (str, units) {
6419 for (var i =
0; i < str.length; ++i) {
6420 if ((units -=
2) <
0) break
6422 c = str.charCodeAt(i)
6432 function base64ToBytes (str) {
6433 return base64.toByteArray(base64clean(str))
6436 function blitBuffer (src, dst, offset, length) {
6437 for (var i =
0; i < length; ++i) {
6438 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6439 dst[i + offset] = src[i]
6444 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6445 function isArrayBufferView (obj) {
6446 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6449 function numberIsNaN (obj) {
6450 return obj !== obj // eslint-disable-line no-self-compare
6453 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6454 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6456 var eLen = nBytes *
8 - mLen -
1
6457 var eMax = (
1 << eLen) -
1
6458 var eBias = eMax
>> 1
6460 var i = isLE ? (nBytes -
1) :
0
6461 var d = isLE ? -
1 :
1
6462 var s = buffer[offset + i]
6466 e = s & ((
1 << (-nBits)) -
1)
6469 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6471 m = e & ((
1 << (-nBits)) -
1)
6474 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6478 } else if (e === eMax) {
6479 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6481 m = m + Math.pow(
2, mLen)
6484 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6487 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6489 var eLen = nBytes *
8 - mLen -
1
6490 var eMax = (
1 << eLen) -
1
6491 var eBias = eMax
>> 1
6492 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6493 var i = isLE ?
0 : (nBytes -
1)
6494 var d = isLE ?
1 : -
1
6495 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6497 value = Math.abs(value)
6499 if (isNaN(value) || value === Infinity) {
6500 m = isNaN(value) ?
1 :
0
6503 e = Math.floor(Math.log(value) / Math.LN2)
6504 if (value * (c = Math.pow(
2, -e)) <
1) {
6508 if (e + eBias
>=
1) {
6511 value += rt * Math.pow(
2,
1 - eBias)
6513 if (value * c
>=
2) {
6518 if (e + eBias
>= eMax) {
6521 } else if (e + eBias
>=
1) {
6522 m = (value * c -
1) * Math.pow(
2, mLen)
6525 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6530 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6534 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6536 buffer[offset + i - d] |= s *
128
6539 },{}],
4:[function(require,module,exports){
6540 window.basex = require('base-x')
6541 },{
"base-x":
5}],
5:[function(require,module,exports){
6543 // Forked from https://github.com/cryptocoinjs/bs58
6544 // Originally written by Mike Hearn for BitcoinJ
6545 // Copyright (c)
2011 Google Inc
6546 // Ported to JavaScript by Stefan Thomas
6547 // Merged Buffer refactorings from base58-native by Stephen Pair
6548 // Copyright (c)
2013 BitPay Inc
6550 var Buffer = require('safe-buffer').Buffer
6552 module.exports = function base (ALPHABET) {
6553 var ALPHABET_MAP = {}
6554 var BASE = ALPHABET.length
6555 var LEADER = ALPHABET.charAt(
0)
6557 // pre-compute lookup table
6558 for (var z =
0; z < ALPHABET.length; z++) {
6559 var x = ALPHABET.charAt(z)
6561 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6565 function encode (source) {
6566 if (source.length ===
0) return ''
6569 for (var i =
0; i < source.length; ++i) {
6570 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6571 carry += digits[j] <<
8
6572 digits[j] = carry % BASE
6573 carry = (carry / BASE) |
0
6577 digits.push(carry % BASE)
6578 carry = (carry / BASE) |
0
6584 // deal with leading zeros
6585 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6586 // convert digits to a string
6587 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6592 function decodeUnsafe (string) {
6593 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6596 for (var i =
0; i < string.length; i++) {
6597 var value = ALPHABET_MAP[string[i]]
6598 if (value === undefined) return
6600 for (var j =
0, carry = value; j < bytes.length; ++j) {
6601 carry += bytes[j] * BASE
6602 bytes[j] = carry &
0xff
6607 bytes.push(carry &
0xff)
6612 // deal with leading zeros
6613 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6617 return Buffer.from(bytes.reverse())
6620 function decode (string) {
6621 var buffer = decodeUnsafe(string)
6622 if (buffer) return buffer
6624 throw new Error('Non-base' + BASE + ' character')
6629 decodeUnsafe: decodeUnsafe,
6634 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6635 module.exports = require('buffer')
6637 },{"buffer":
2}]},{},[
4])(
4)
6639 <script>(function (root) {
6642 /***** unorm.js *****/
6645 * UnicodeNormalizer
1.0.0
6646 * Copyright (c)
2008 Matsuza
6647 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6648 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6652 var DEFAULT_FEATURE = [null,
0, {}];
6653 var CACHE_THRESHOLD =
10;
6654 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6655 var NCount = VCount * TCount; //
588
6656 var SCount = LCount * NCount; //
11172
6658 var UChar = function(cp, feature){
6659 this.codepoint = cp;
6660 this.feature = feature;
6665 var cacheCounter = [];
6666 for (var i =
0; i <=
0xFF; ++i){
6667 cacheCounter[i] =
0;
6670 function fromCache(next, cp, needFeature){
6671 var ret = cache[cp];
6673 ret = next(cp, needFeature);
6674 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6681 function fromData(next, cp, needFeature){
6682 var hash = cp &
0xFF00;
6683 var dunit = UChar.udata[hash] || {};
6685 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6687 function fromCpOnly(next, cp, needFeature){
6688 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6690 function fromRuleBasedJamo(next, cp, needFeature){
6692 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6693 return next(cp, needFeature);
6695 if(LBase <= cp && cp < LBase + LCount){
6697 var base = (cp - LBase) * VCount;
6698 for (j =
0; j < VCount; ++j){
6699 c[VBase + j] = SBase + TCount * (j + base);
6701 return new UChar(cp, [,,c]);
6704 var SIndex = cp - SBase;
6705 var TIndex = SIndex % TCount;
6708 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6710 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6712 for (j =
1; j < TCount; ++j){
6713 feature[
2][TBase + j] = cp + j;
6716 return new UChar(cp, feature);
6718 function fromCpFilter(next, cp, needFeature){
6719 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6722 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6724 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6725 return function (cp, needFeature) {
6726 return strategy(next, cp, needFeature);
6730 UChar.isHighSurrogate = function(cp){
6731 return cp
>=
0xD800 && cp <=
0xDBFF;
6733 UChar.isLowSurrogate = function(cp){
6734 return cp
>=
0xDC00 && cp <=
0xDFFF;
6737 UChar.prototype.prepFeature = function(){
6739 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6743 UChar.prototype.toString = function(){
6744 if(this.codepoint <
0x10000){
6745 return String.fromCharCode(this.codepoint);
6747 var x = this.codepoint -
0x10000;
6748 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6752 UChar.prototype.getDecomp = function(){
6754 return this.feature[
0] || null;
6757 UChar.prototype.isCompatibility = function(){
6759 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6761 UChar.prototype.isExclude = function(){
6763 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6765 UChar.prototype.getCanonicalClass = function(){
6767 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6769 UChar.prototype.getComposite = function(following){
6771 if(!this.feature[
2]){
6774 var cp = this.feature[
2][following.codepoint];
6775 return cp ? UChar.fromCharCode(cp) : null;
6778 var UCharIterator = function(str){
6782 UCharIterator.prototype.next = function(){
6783 if(!!this.str && this.cursor < this.str.length){
6784 var cp = this.str.charCodeAt(this.cursor++);
6786 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6787 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6790 return UChar.fromCharCode(cp);
6797 var RecursDecompIterator = function(it, cano){
6799 this.canonical = cano;
6803 RecursDecompIterator.prototype.next = function(){
6804 function recursiveDecomp(cano, uchar){
6805 var decomp = uchar.getDecomp();
6806 if(!!decomp && !(cano && uchar.isCompatibility())){
6808 for(var i =
0; i < decomp.length; ++i){
6809 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6810 ret = ret.concat(a);
6817 if(this.resBuf.length ===
0){
6818 var uchar = this.it.next();
6822 this.resBuf = recursiveDecomp(this.canonical, uchar);
6824 return this.resBuf.shift();
6827 var DecompIterator = function(it){
6832 DecompIterator.prototype.next = function(){
6834 if(this.resBuf.length ===
0){
6836 var uchar = this.it.next();
6840 cc = uchar.getCanonicalClass();
6841 var inspt = this.resBuf.length;
6843 for(; inspt
> 0; --inspt){
6844 var uchar2 = this.resBuf[inspt -
1];
6845 var cc2 = uchar2.getCanonicalClass();
6851 this.resBuf.splice(inspt,
0, uchar);
6854 return this.resBuf.shift();
6857 var CompIterator = function(it){
6861 this.lastClass = null;
6864 CompIterator.prototype.next = function(){
6865 while(this.resBuf.length ===
0){
6866 var uchar = this.it.next();
6868 this.resBuf = this.procBuf;
6872 if(this.procBuf.length ===
0){
6873 this.lastClass = uchar.getCanonicalClass();
6874 this.procBuf.push(uchar);
6876 var starter = this.procBuf[
0];
6877 var composite = starter.getComposite(uchar);
6878 var cc = uchar.getCanonicalClass();
6879 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6880 this.procBuf[
0] = composite;
6883 this.resBuf = this.procBuf;
6886 this.lastClass = cc;
6887 this.procBuf.push(uchar);
6891 return this.resBuf.shift();
6894 var createIterator = function(mode, str){
6897 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6899 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6901 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6903 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6905 throw mode +
" is invalid";
6907 var normalize = function(mode, str){
6908 var it = createIterator(mode, str);
6911 while(!!(uchar = it.next())){
6912 ret += uchar.toString();
6919 return normalize(
"NFD", str);
6923 return normalize(
"NFKD", str);
6927 return normalize(
"NFC", str);
6931 return normalize(
"NFKC", str);
6936 0:{
60:[,,{
824:
8814}],
61:[,,{
824:
8800}],
62:[,,{
824:
8815}],
65:[,,{
768:
192,
769:
193,
770:
194,
771:
195,
772:
256,
774:
258,
775:
550,
776:
196,
777:
7842,
778:
197,
780:
461,
783:
512,
785:
514,
803:
7840,
805:
7680,
808:
260}],
66:[,,{
775:
7682,
803:
7684,
817:
7686}],
67:[,,{
769:
262,
770:
264,
775:
266,
780:
268,
807:
199}],
68:[,,{
775:
7690,
780:
270,
803:
7692,
807:
7696,
813:
7698,
817:
7694}],
69:[,,{
768:
200,
769:
201,
770:
202,
771:
7868,
772:
274,
774:
276,
775:
278,
776:
203,
777:
7866,
780:
282,
783:
516,
785:
518,
803:
7864,
807:
552,
808:
280,
813:
7704,
816:
7706}],
70:[,,{
775:
7710}],
71:[,,{
769:
500,
770:
284,
772:
7712,
774:
286,
775:
288,
780:
486,
807:
290}],
72:[,,{
770:
292,
775:
7714,
776:
7718,
780:
542,
803:
7716,
807:
7720,
814:
7722}],
73:[,,{
768:
204,
769:
205,
770:
206,
771:
296,
772:
298,
774:
300,
775:
304,
776:
207,
777:
7880,
780:
463,
783:
520,
785:
522,
803:
7882,
808:
302,
816:
7724}],
74:[,,{
770:
308}],
75:[,,{
769:
7728,
780:
488,
803:
7730,
807:
310,
817:
7732}],
76:[,,{
769:
313,
780:
317,
803:
7734,
807:
315,
813:
7740,
817:
7738}],
77:[,,{
769:
7742,
775:
7744,
803:
7746}],
78:[,,{
768:
504,
769:
323,
771:
209,
775:
7748,
780:
327,
803:
7750,
807:
325,
813:
7754,
817:
7752}],
79:[,,{
768:
210,
769:
211,
770:
212,
771:
213,
772:
332,
774:
334,
775:
558,
776:
214,
777:
7886,
779:
336,
780:
465,
783:
524,
785:
526,
795:
416,
803:
7884,
808:
490}],
80:[,,{
769:
7764,
775:
7766}],
82:[,,{
769:
340,
775:
7768,
780:
344,
783:
528,
785:
530,
803:
7770,
807:
342,
817:
7774}],
83:[,,{
769:
346,
770:
348,
775:
7776,
780:
352,
803:
7778,
806:
536,
807:
350}],
84:[,,{
775:
7786,
780:
356,
803:
7788,
806:
538,
807:
354,
813:
7792,
817:
7790}],
85:[,,{
768:
217,
769:
218,
770:
219,
771:
360,
772:
362,
774:
364,
776:
220,
777:
7910,
778:
366,
779:
368,
780:
467,
783:
532,
785:
534,
795:
431,
803:
7908,
804:
7794,
808:
370,
813:
7798,
816:
7796}],
86:[,,{
771:
7804,
803:
7806}],
87:[,,{
768:
7808,
769:
7810,
770:
372,
775:
7814,
776:
7812,
803:
7816}],
88:[,,{
775:
7818,
776:
7820}],
89:[,,{
768:
7922,
769:
221,
770:
374,
771:
7928,
772:
562,
775:
7822,
776:
376,
777:
7926,
803:
7924}],
90:[,,{
769:
377,
770:
7824,
775:
379,
780:
381,
803:
7826,
817:
7828}],
97:[,,{
768:
224,
769:
225,
770:
226,
771:
227,
772:
257,
774:
259,
775:
551,
776:
228,
777:
7843,
778:
229,
780:
462,
783:
513,
785:
515,
803:
7841,
805:
7681,
808:
261}],
98:[,,{
775:
7683,
803:
7685,
817:
7687}],
99:[,,{
769:
263,
770:
265,
775:
267,
780:
269,
807:
231}],
100:[,,{
775:
7691,
780:
271,
803:
7693,
807:
7697,
813:
7699,
817:
7695}],
101:[,,{
768:
232,
769:
233,
770:
234,
771:
7869,
772:
275,
774:
277,
775:
279,
776:
235,
777:
7867,
780:
283,
783:
517,
785:
519,
803:
7865,
807:
553,
808:
281,
813:
7705,
816:
7707}],
102:[,,{
775:
7711}],
103:[,,{
769:
501,
770:
285,
772:
7713,
774:
287,
775:
289,
780:
487,
807:
291}],
104:[,,{
770:
293,
775:
7715,
776:
7719,
780:
543,
803:
7717,
807:
7721,
814:
7723,
817:
7830}],
105:[,,{
768:
236,
769:
237,
770:
238,
771:
297,
772:
299,
774:
301,
776:
239,
777:
7881,
780:
464,
783:
521,
785:
523,
803:
7883,
808:
303,
816:
7725}],
106:[,,{
770:
309,
780:
496}],
107:[,,{
769:
7729,
780:
489,
803:
7731,
807:
311,
817:
7733}],
108:[,,{
769:
314,
780:
318,
803:
7735,
807:
316,
813:
7741,
817:
7739}],
109:[,,{
769:
7743,
775:
7745,
803:
7747}],
110:[,,{
768:
505,
769:
324,
771:
241,
775:
7749,
780:
328,
803:
7751,
807:
326,
813:
7755,
817:
7753}],
111:[,,{
768:
242,
769:
243,
770:
244,
771:
245,
772:
333,
774:
335,
775:
559,
776:
246,
777:
7887,
779:
337,
780:
466,
783:
525,
785:
527,
795:
417,
803:
7885,
808:
491}],
112:[,,{
769:
7765,
775:
7767}],
114:[,,{
769:
341,
775:
7769,
780:
345,
783:
529,
785:
531,
803:
7771,
807:
343,
817:
7775}],
115:[,,{
769:
347,
770:
349,
775:
7777,
780:
353,
803:
7779,
806:
537,
807:
351}],
116:[,,{
775:
7787,
776:
7831,
780:
357,
803:
7789,
806:
539,
807:
355,
813:
7793,
817:
7791}],
117:[,,{
768:
249,
769:
250,
770:
251,
771:
361,
772:
363,
774:
365,
776:
252,
777:
7911,
778:
367,
779:
369,
780:
468,
783:
533,
785:
535,
795:
432,
803:
7909,
804:
7795,
808:
371,
813:
7799,
816:
7797}],
118:[,,{
771:
7805,
803:
7807}],
119:[,,{
768:
7809,
769:
7811,
770:
373,
775:
7815,
776:
7813,
778:
7832,
803:
7817}],
120:[,,{
775:
7819,
776:
7821}],
121:[,,{
768:
7923,
769:
253,
770:
375,
771:
7929,
772:
563,
775:
7823,
776:
255,
777:
7927,
778:
7833,
803:
7925}],
122:[,,{
769:
378,
770:
7825,
775:
380,
780:
382,
803:
7827,
817:
7829}],
160:[[
32],
256],
168:[[
32,
776],
256,{
768:
8173,
769:
901,
834:
8129}],
170:[[
97],
256],
175:[[
32,
772],
256],
178:[[
50],
256],
179:[[
51],
256],
180:[[
32,
769],
256],
181:[[
956],
256],
184:[[
32,
807],
256],
185:[[
49],
256],
186:[[
111],
256],
188:[[
49,
8260,
52],
256],
189:[[
49,
8260,
50],
256],
190:[[
51,
8260,
52],
256],
192:[[
65,
768]],
193:[[
65,
769]],
194:[[
65,
770],,{
768:
7846,
769:
7844,
771:
7850,
777:
7848}],
195:[[
65,
771]],
196:[[
65,
776],,{
772:
478}],
197:[[
65,
778],,{
769:
506}],
198:[,,{
769:
508,
772:
482}],
199:[[
67,
807],,{
769:
7688}],
200:[[
69,
768]],
201:[[
69,
769]],
202:[[
69,
770],,{
768:
7872,
769:
7870,
771:
7876,
777:
7874}],
203:[[
69,
776]],
204:[[
73,
768]],
205:[[
73,
769]],
206:[[
73,
770]],
207:[[
73,
776],,{
769:
7726}],
209:[[
78,
771]],
210:[[
79,
768]],
211:[[
79,
769]],
212:[[
79,
770],,{
768:
7890,
769:
7888,
771:
7894,
777:
7892}],
213:[[
79,
771],,{
769:
7756,
772:
556,
776:
7758}],
214:[[
79,
776],,{
772:
554}],
216:[,,{
769:
510}],
217:[[
85,
768]],
218:[[
85,
769]],
219:[[
85,
770]],
220:[[
85,
776],,{
768:
475,
769:
471,
772:
469,
780:
473}],
221:[[
89,
769]],
224:[[
97,
768]],
225:[[
97,
769]],
226:[[
97,
770],,{
768:
7847,
769:
7845,
771:
7851,
777:
7849}],
227:[[
97,
771]],
228:[[
97,
776],,{
772:
479}],
229:[[
97,
778],,{
769:
507}],
230:[,,{
769:
509,
772:
483}],
231:[[
99,
807],,{
769:
7689}],
232:[[
101,
768]],
233:[[
101,
769]],
234:[[
101,
770],,{
768:
7873,
769:
7871,
771:
7877,
777:
7875}],
235:[[
101,
776]],
236:[[
105,
768]],
237:[[
105,
769]],
238:[[
105,
770]],
239:[[
105,
776],,{
769:
7727}],
241:[[
110,
771]],
242:[[
111,
768]],
243:[[
111,
769]],
244:[[
111,
770],,{
768:
7891,
769:
7889,
771:
7895,
777:
7893}],
245:[[
111,
771],,{
769:
7757,
772:
557,
776:
7759}],
246:[[
111,
776],,{
772:
555}],
248:[,,{
769:
511}],
249:[[
117,
768]],
250:[[
117,
769]],
251:[[
117,
770]],
252:[[
117,
776],,{
768:
476,
769:
472,
772:
470,
780:
474}],
253:[[
121,
769]],
255:[[
121,
776]]},
6937 256:{
256:[[
65,
772]],
257:[[
97,
772]],
258:[[
65,
774],,{
768:
7856,
769:
7854,
771:
7860,
777:
7858}],
259:[[
97,
774],,{
768:
7857,
769:
7855,
771:
7861,
777:
7859}],
260:[[
65,
808]],
261:[[
97,
808]],
262:[[
67,
769]],
263:[[
99,
769]],
264:[[
67,
770]],
265:[[
99,
770]],
266:[[
67,
775]],
267:[[
99,
775]],
268:[[
67,
780]],
269:[[
99,
780]],
270:[[
68,
780]],
271:[[
100,
780]],
274:[[
69,
772],,{
768:
7700,
769:
7702}],
275:[[
101,
772],,{
768:
7701,
769:
7703}],
276:[[
69,
774]],
277:[[
101,
774]],
278:[[
69,
775]],
279:[[
101,
775]],
280:[[
69,
808]],
281:[[
101,
808]],
282:[[
69,
780]],
283:[[
101,
780]],
284:[[
71,
770]],
285:[[
103,
770]],
286:[[
71,
774]],
287:[[
103,
774]],
288:[[
71,
775]],
289:[[
103,
775]],
290:[[
71,
807]],
291:[[
103,
807]],
292:[[
72,
770]],
293:[[
104,
770]],
296:[[
73,
771]],
297:[[
105,
771]],
298:[[
73,
772]],
299:[[
105,
772]],
300:[[
73,
774]],
301:[[
105,
774]],
302:[[
73,
808]],
303:[[
105,
808]],
304:[[
73,
775]],
306:[[
73,
74],
256],
307:[[
105,
106],
256],
308:[[
74,
770]],
309:[[
106,
770]],
310:[[
75,
807]],
311:[[
107,
807]],
313:[[
76,
769]],
314:[[
108,
769]],
315:[[
76,
807]],
316:[[
108,
807]],
317:[[
76,
780]],
318:[[
108,
780]],
319:[[
76,
183],
256],
320:[[
108,
183],
256],
323:[[
78,
769]],
324:[[
110,
769]],
325:[[
78,
807]],
326:[[
110,
807]],
327:[[
78,
780]],
328:[[
110,
780]],
329:[[
700,
110],
256],
332:[[
79,
772],,{
768:
7760,
769:
7762}],
333:[[
111,
772],,{
768:
7761,
769:
7763}],
334:[[
79,
774]],
335:[[
111,
774]],
336:[[
79,
779]],
337:[[
111,
779]],
340:[[
82,
769]],
341:[[
114,
769]],
342:[[
82,
807]],
343:[[
114,
807]],
344:[[
82,
780]],
345:[[
114,
780]],
346:[[
83,
769],,{
775:
7780}],
347:[[
115,
769],,{
775:
7781}],
348:[[
83,
770]],
349:[[
115,
770]],
350:[[
83,
807]],
351:[[
115,
807]],
352:[[
83,
780],,{
775:
7782}],
353:[[
115,
780],,{
775:
7783}],
354:[[
84,
807]],
355:[[
116,
807]],
356:[[
84,
780]],
357:[[
116,
780]],
360:[[
85,
771],,{
769:
7800}],
361:[[
117,
771],,{
769:
7801}],
362:[[
85,
772],,{
776:
7802}],
363:[[
117,
772],,{
776:
7803}],
364:[[
85,
774]],
365:[[
117,
774]],
366:[[
85,
778]],
367:[[
117,
778]],
368:[[
85,
779]],
369:[[
117,
779]],
370:[[
85,
808]],
371:[[
117,
808]],
372:[[
87,
770]],
373:[[
119,
770]],
374:[[
89,
770]],
375:[[
121,
770]],
376:[[
89,
776]],
377:[[
90,
769]],
378:[[
122,
769]],
379:[[
90,
775]],
380:[[
122,
775]],
381:[[
90,
780]],
382:[[
122,
780]],
383:[[
115],
256,{
775:
7835}],
416:[[
79,
795],,{
768:
7900,
769:
7898,
771:
7904,
777:
7902,
803:
7906}],
417:[[
111,
795],,{
768:
7901,
769:
7899,
771:
7905,
777:
7903,
803:
7907}],
431:[[
85,
795],,{
768:
7914,
769:
7912,
771:
7918,
777:
7916,
803:
7920}],
432:[[
117,
795],,{
768:
7915,
769:
7913,
771:
7919,
777:
7917,
803:
7921}],
439:[,,{
780:
494}],
452:[[
68,
381],
256],
453:[[
68,
382],
256],
454:[[
100,
382],
256],
455:[[
76,
74],
256],
456:[[
76,
106],
256],
457:[[
108,
106],
256],
458:[[
78,
74],
256],
459:[[
78,
106],
256],
460:[[
110,
106],
256],
461:[[
65,
780]],
462:[[
97,
780]],
463:[[
73,
780]],
464:[[
105,
780]],
465:[[
79,
780]],
466:[[
111,
780]],
467:[[
85,
780]],
468:[[
117,
780]],
469:[[
220,
772]],
470:[[
252,
772]],
471:[[
220,
769]],
472:[[
252,
769]],
473:[[
220,
780]],
474:[[
252,
780]],
475:[[
220,
768]],
476:[[
252,
768]],
478:[[
196,
772]],
479:[[
228,
772]],
480:[[
550,
772]],
481:[[
551,
772]],
482:[[
198,
772]],
483:[[
230,
772]],
486:[[
71,
780]],
487:[[
103,
780]],
488:[[
75,
780]],
489:[[
107,
780]],
490:[[
79,
808],,{
772:
492}],
491:[[
111,
808],,{
772:
493}],
492:[[
490,
772]],
493:[[
491,
772]],
494:[[
439,
780]],
495:[[
658,
780]],
496:[[
106,
780]],
497:[[
68,
90],
256],
498:[[
68,
122],
256],
499:[[
100,
122],
256],
500:[[
71,
769]],
501:[[
103,
769]],
504:[[
78,
768]],
505:[[
110,
768]],
506:[[
197,
769]],
507:[[
229,
769]],
508:[[
198,
769]],
509:[[
230,
769]],
510:[[
216,
769]],
511:[[
248,
769]],
66045:[,
220]},
6938 512:{
512:[[
65,
783]],
513:[[
97,
783]],
514:[[
65,
785]],
515:[[
97,
785]],
516:[[
69,
783]],
517:[[
101,
783]],
518:[[
69,
785]],
519:[[
101,
785]],
520:[[
73,
783]],
521:[[
105,
783]],
522:[[
73,
785]],
523:[[
105,
785]],
524:[[
79,
783]],
525:[[
111,
783]],
526:[[
79,
785]],
527:[[
111,
785]],
528:[[
82,
783]],
529:[[
114,
783]],
530:[[
82,
785]],
531:[[
114,
785]],
532:[[
85,
783]],
533:[[
117,
783]],
534:[[
85,
785]],
535:[[
117,
785]],
536:[[
83,
806]],
537:[[
115,
806]],
538:[[
84,
806]],
539:[[
116,
806]],
542:[[
72,
780]],
543:[[
104,
780]],
550:[[
65,
775],,{
772:
480}],
551:[[
97,
775],,{
772:
481}],
552:[[
69,
807],,{
774:
7708}],
553:[[
101,
807],,{
774:
7709}],
554:[[
214,
772]],
555:[[
246,
772]],
556:[[
213,
772]],
557:[[
245,
772]],
558:[[
79,
775],,{
772:
560}],
559:[[
111,
775],,{
772:
561}],
560:[[
558,
772]],
561:[[
559,
772]],
562:[[
89,
772]],
563:[[
121,
772]],
658:[,,{
780:
495}],
688:[[
104],
256],
689:[[
614],
256],
690:[[
106],
256],
691:[[
114],
256],
692:[[
633],
256],
693:[[
635],
256],
694:[[
641],
256],
695:[[
119],
256],
696:[[
121],
256],
728:[[
32,
774],
256],
729:[[
32,
775],
256],
730:[[
32,
778],
256],
731:[[
32,
808],
256],
732:[[
32,
771],
256],
733:[[
32,
779],
256],
736:[[
611],
256],
737:[[
108],
256],
738:[[
115],
256],
739:[[
120],
256],
740:[[
661],
256],
66272:[,
220]},
6939 768:{
768:[,
230],
769:[,
230],
770:[,
230],
771:[,
230],
772:[,
230],
773:[,
230],
774:[,
230],
775:[,
230],
776:[,
230,{
769:
836}],
777:[,
230],
778:[,
230],
779:[,
230],
780:[,
230],
781:[,
230],
782:[,
230],
783:[,
230],
784:[,
230],
785:[,
230],
786:[,
230],
787:[,
230],
788:[,
230],
789:[,
232],
790:[,
220],
791:[,
220],
792:[,
220],
793:[,
220],
794:[,
232],
795:[,
216],
796:[,
220],
797:[,
220],
798:[,
220],
799:[,
220],
800:[,
220],
801:[,
202],
802:[,
202],
803:[,
220],
804:[,
220],
805:[,
220],
806:[,
220],
807:[,
202],
808:[,
202],
809:[,
220],
810:[,
220],
811:[,
220],
812:[,
220],
813:[,
220],
814:[,
220],
815:[,
220],
816:[,
220],
817:[,
220],
818:[,
220],
819:[,
220],
820:[,
1],
821:[,
1],
822:[,
1],
823:[,
1],
824:[,
1],
825:[,
220],
826:[,
220],
827:[,
220],
828:[,
220],
829:[,
230],
830:[,
230],
831:[,
230],
832:[[
768],
230],
833:[[
769],
230],
834:[,
230],
835:[[
787],
230],
836:[[
776,
769],
230],
837:[,
240],
838:[,
230],
839:[,
220],
840:[,
220],
841:[,
220],
842:[,
230],
843:[,
230],
844:[,
230],
845:[,
220],
846:[,
220],
848:[,
230],
849:[,
230],
850:[,
230],
851:[,
220],
852:[,
220],
853:[,
220],
854:[,
220],
855:[,
230],
856:[,
232],
857:[,
220],
858:[,
220],
859:[,
230],
860:[,
233],
861:[,
234],
862:[,
234],
863:[,
233],
864:[,
234],
865:[,
234],
866:[,
233],
867:[,
230],
868:[,
230],
869:[,
230],
870:[,
230],
871:[,
230],
872:[,
230],
873:[,
230],
874:[,
230],
875:[,
230],
876:[,
230],
877:[,
230],
878:[,
230],
879:[,
230],
884:[[
697]],
890:[[
32,
837],
256],
894:[[
59]],
900:[[
32,
769],
256],
901:[[
168,
769]],
902:[[
913,
769]],
903:[[
183]],
904:[[
917,
769]],
905:[[
919,
769]],
906:[[
921,
769]],
908:[[
927,
769]],
910:[[
933,
769]],
911:[[
937,
769]],
912:[[
970,
769]],
913:[,,{
768:
8122,
769:
902,
772:
8121,
774:
8120,
787:
7944,
788:
7945,
837:
8124}],
917:[,,{
768:
8136,
769:
904,
787:
7960,
788:
7961}],
919:[,,{
768:
8138,
769:
905,
787:
7976,
788:
7977,
837:
8140}],
921:[,,{
768:
8154,
769:
906,
772:
8153,
774:
8152,
776:
938,
787:
7992,
788:
7993}],
927:[,,{
768:
8184,
769:
908,
787:
8008,
788:
8009}],
929:[,,{
788:
8172}],
933:[,,{
768:
8170,
769:
910,
772:
8169,
774:
8168,
776:
939,
788:
8025}],
937:[,,{
768:
8186,
769:
911,
787:
8040,
788:
8041,
837:
8188}],
938:[[
921,
776]],
939:[[
933,
776]],
940:[[
945,
769],,{
837:
8116}],
941:[[
949,
769]],
942:[[
951,
769],,{
837:
8132}],
943:[[
953,
769]],
944:[[
971,
769]],
945:[,,{
768:
8048,
769:
940,
772:
8113,
774:
8112,
787:
7936,
788:
7937,
834:
8118,
837:
8115}],
949:[,,{
768:
8050,
769:
941,
787:
7952,
788:
7953}],
951:[,,{
768:
8052,
769:
942,
787:
7968,
788:
7969,
834:
8134,
837:
8131}],
953:[,,{
768:
8054,
769:
943,
772:
8145,
774:
8144,
776:
970,
787:
7984,
788:
7985,
834:
8150}],
959:[,,{
768:
8056,
769:
972,
787:
8000,
788:
8001}],
961:[,,{
787:
8164,
788:
8165}],
965:[,,{
768:
8058,
769:
973,
772:
8161,
774:
8160,
776:
971,
787:
8016,
788:
8017,
834:
8166}],
969:[,,{
768:
8060,
769:
974,
787:
8032,
788:
8033,
834:
8182,
837:
8179}],
970:[[
953,
776],,{
768:
8146,
769:
912,
834:
8151}],
971:[[
965,
776],,{
768:
8162,
769:
944,
834:
8167}],
972:[[
959,
769]],
973:[[
965,
769]],
974:[[
969,
769],,{
837:
8180}],
976:[[
946],
256],
977:[[
952],
256],
978:[[
933],
256,{
769:
979,
776:
980}],
979:[[
978,
769]],
980:[[
978,
776]],
981:[[
966],
256],
982:[[
960],
256],
1008:[[
954],
256],
1009:[[
961],
256],
1010:[[
962],
256],
1012:[[
920],
256],
1013:[[
949],
256],
1017:[[
931],
256],
66422:[,
230],
66423:[,
230],
66424:[,
230],
66425:[,
230],
66426:[,
230]},
6940 1024:{
1024:[[
1045,
768]],
1025:[[
1045,
776]],
1027:[[
1043,
769]],
1030:[,,{
776:
1031}],
1031:[[
1030,
776]],
1036:[[
1050,
769]],
1037:[[
1048,
768]],
1038:[[
1059,
774]],
1040:[,,{
774:
1232,
776:
1234}],
1043:[,,{
769:
1027}],
1045:[,,{
768:
1024,
774:
1238,
776:
1025}],
1046:[,,{
774:
1217,
776:
1244}],
1047:[,,{
776:
1246}],
1048:[,,{
768:
1037,
772:
1250,
774:
1049,
776:
1252}],
1049:[[
1048,
774]],
1050:[,,{
769:
1036}],
1054:[,,{
776:
1254}],
1059:[,,{
772:
1262,
774:
1038,
776:
1264,
779:
1266}],
1063:[,,{
776:
1268}],
1067:[,,{
776:
1272}],
1069:[,,{
776:
1260}],
1072:[,,{
774:
1233,
776:
1235}],
1075:[,,{
769:
1107}],
1077:[,,{
768:
1104,
774:
1239,
776:
1105}],
1078:[,,{
774:
1218,
776:
1245}],
1079:[,,{
776:
1247}],
1080:[,,{
768:
1117,
772:
1251,
774:
1081,
776:
1253}],
1081:[[
1080,
774]],
1082:[,,{
769:
1116}],
1086:[,,{
776:
1255}],
1091:[,,{
772:
1263,
774:
1118,
776:
1265,
779:
1267}],
1095:[,,{
776:
1269}],
1099:[,,{
776:
1273}],
1101:[,,{
776:
1261}],
1104:[[
1077,
768]],
1105:[[
1077,
776]],
1107:[[
1075,
769]],
1110:[,,{
776:
1111}],
1111:[[
1110,
776]],
1116:[[
1082,
769]],
1117:[[
1080,
768]],
1118:[[
1091,
774]],
1140:[,,{
783:
1142}],
1141:[,,{
783:
1143}],
1142:[[
1140,
783]],
1143:[[
1141,
783]],
1155:[,
230],
1156:[,
230],
1157:[,
230],
1158:[,
230],
1159:[,
230],
1217:[[
1046,
774]],
1218:[[
1078,
774]],
1232:[[
1040,
774]],
1233:[[
1072,
774]],
1234:[[
1040,
776]],
1235:[[
1072,
776]],
1238:[[
1045,
774]],
1239:[[
1077,
774]],
1240:[,,{
776:
1242}],
1241:[,,{
776:
1243}],
1242:[[
1240,
776]],
1243:[[
1241,
776]],
1244:[[
1046,
776]],
1245:[[
1078,
776]],
1246:[[
1047,
776]],
1247:[[
1079,
776]],
1250:[[
1048,
772]],
1251:[[
1080,
772]],
1252:[[
1048,
776]],
1253:[[
1080,
776]],
1254:[[
1054,
776]],
1255:[[
1086,
776]],
1256:[,,{
776:
1258}],
1257:[,,{
776:
1259}],
1258:[[
1256,
776]],
1259:[[
1257,
776]],
1260:[[
1069,
776]],
1261:[[
1101,
776]],
1262:[[
1059,
772]],
1263:[[
1091,
772]],
1264:[[
1059,
776]],
1265:[[
1091,
776]],
1266:[[
1059,
779]],
1267:[[
1091,
779]],
1268:[[
1063,
776]],
1269:[[
1095,
776]],
1272:[[
1067,
776]],
1273:[[
1099,
776]]},
6941 1280:{
1415:[[
1381,
1410],
256],
1425:[,
220],
1426:[,
230],
1427:[,
230],
1428:[,
230],
1429:[,
230],
1430:[,
220],
1431:[,
230],
1432:[,
230],
1433:[,
230],
1434:[,
222],
1435:[,
220],
1436:[,
230],
1437:[,
230],
1438:[,
230],
1439:[,
230],
1440:[,
230],
1441:[,
230],
1442:[,
220],
1443:[,
220],
1444:[,
220],
1445:[,
220],
1446:[,
220],
1447:[,
220],
1448:[,
230],
1449:[,
230],
1450:[,
220],
1451:[,
230],
1452:[,
230],
1453:[,
222],
1454:[,
228],
1455:[,
230],
1456:[,
10],
1457:[,
11],
1458:[,
12],
1459:[,
13],
1460:[,
14],
1461:[,
15],
1462:[,
16],
1463:[,
17],
1464:[,
18],
1465:[,
19],
1466:[,
19],
1467:[,
20],
1468:[,
21],
1469:[,
22],
1471:[,
23],
1473:[,
24],
1474:[,
25],
1476:[,
230],
1477:[,
220],
1479:[,
18]},
6942 1536:{
1552:[,
230],
1553:[,
230],
1554:[,
230],
1555:[,
230],
1556:[,
230],
1557:[,
230],
1558:[,
230],
1559:[,
230],
1560:[,
30],
1561:[,
31],
1562:[,
32],
1570:[[
1575,
1619]],
1571:[[
1575,
1620]],
1572:[[
1608,
1620]],
1573:[[
1575,
1621]],
1574:[[
1610,
1620]],
1575:[,,{
1619:
1570,
1620:
1571,
1621:
1573}],
1608:[,,{
1620:
1572}],
1610:[,,{
1620:
1574}],
1611:[,
27],
1612:[,
28],
1613:[,
29],
1614:[,
30],
1615:[,
31],
1616:[,
32],
1617:[,
33],
1618:[,
34],
1619:[,
230],
1620:[,
230],
1621:[,
220],
1622:[,
220],
1623:[,
230],
1624:[,
230],
1625:[,
230],
1626:[,
230],
1627:[,
230],
1628:[,
220],
1629:[,
230],
1630:[,
230],
1631:[,
220],
1648:[,
35],
1653:[[
1575,
1652],
256],
1654:[[
1608,
1652],
256],
1655:[[
1735,
1652],
256],
1656:[[
1610,
1652],
256],
1728:[[
1749,
1620]],
1729:[,,{
1620:
1730}],
1730:[[
1729,
1620]],
1746:[,,{
1620:
1747}],
1747:[[
1746,
1620]],
1749:[,,{
1620:
1728}],
1750:[,
230],
1751:[,
230],
1752:[,
230],
1753:[,
230],
1754:[,
230],
1755:[,
230],
1756:[,
230],
1759:[,
230],
1760:[,
230],
1761:[,
230],
1762:[,
230],
1763:[,
220],
1764:[,
230],
1767:[,
230],
1768:[,
230],
1770:[,
220],
1771:[,
230],
1772:[,
230],
1773:[,
220]},
6943 1792:{
1809:[,
36],
1840:[,
230],
1841:[,
220],
1842:[,
230],
1843:[,
230],
1844:[,
220],
1845:[,
230],
1846:[,
230],
1847:[,
220],
1848:[,
220],
1849:[,
220],
1850:[,
230],
1851:[,
220],
1852:[,
220],
1853:[,
230],
1854:[,
220],
1855:[,
230],
1856:[,
230],
1857:[,
230],
1858:[,
220],
1859:[,
230],
1860:[,
220],
1861:[,
230],
1862:[,
220],
1863:[,
230],
1864:[,
220],
1865:[,
230],
1866:[,
230],
2027:[,
230],
2028:[,
230],
2029:[,
230],
2030:[,
230],
2031:[,
230],
2032:[,
230],
2033:[,
230],
2034:[,
220],
2035:[,
230]},
6944 2048:{
2070:[,
230],
2071:[,
230],
2072:[,
230],
2073:[,
230],
2075:[,
230],
2076:[,
230],
2077:[,
230],
2078:[,
230],
2079:[,
230],
2080:[,
230],
2081:[,
230],
2082:[,
230],
2083:[,
230],
2085:[,
230],
2086:[,
230],
2087:[,
230],
2089:[,
230],
2090:[,
230],
2091:[,
230],
2092:[,
230],
2093:[,
230],
2137:[,
220],
2138:[,
220],
2139:[,
220],
2276:[,
230],
2277:[,
230],
2278:[,
220],
2279:[,
230],
2280:[,
230],
2281:[,
220],
2282:[,
230],
2283:[,
230],
2284:[,
230],
2285:[,
220],
2286:[,
220],
2287:[,
220],
2288:[,
27],
2289:[,
28],
2290:[,
29],
2291:[,
230],
2292:[,
230],
2293:[,
230],
2294:[,
220],
2295:[,
230],
2296:[,
230],
2297:[,
220],
2298:[,
220],
2299:[,
230],
2300:[,
230],
2301:[,
230],
2302:[,
230],
2303:[,
230]},
6945 2304:{
2344:[,,{
2364:
2345}],
2345:[[
2344,
2364]],
2352:[,,{
2364:
2353}],
2353:[[
2352,
2364]],
2355:[,,{
2364:
2356}],
2356:[[
2355,
2364]],
2364:[,
7],
2381:[,
9],
2385:[,
230],
2386:[,
220],
2387:[,
230],
2388:[,
230],
2392:[[
2325,
2364],
512],
2393:[[
2326,
2364],
512],
2394:[[
2327,
2364],
512],
2395:[[
2332,
2364],
512],
2396:[[
2337,
2364],
512],
2397:[[
2338,
2364],
512],
2398:[[
2347,
2364],
512],
2399:[[
2351,
2364],
512],
2492:[,
7],
2503:[,,{
2494:
2507,
2519:
2508}],
2507:[[
2503,
2494]],
2508:[[
2503,
2519]],
2509:[,
9],
2524:[[
2465,
2492],
512],
2525:[[
2466,
2492],
512],
2527:[[
2479,
2492],
512]},
6946 2560:{
2611:[[
2610,
2620],
512],
2614:[[
2616,
2620],
512],
2620:[,
7],
2637:[,
9],
2649:[[
2582,
2620],
512],
2650:[[
2583,
2620],
512],
2651:[[
2588,
2620],
512],
2654:[[
2603,
2620],
512],
2748:[,
7],
2765:[,
9],
68109:[,
220],
68111:[,
230],
68152:[,
230],
68153:[,
1],
68154:[,
220],
68159:[,
9],
68325:[,
230],
68326:[,
220]},
6947 2816:{
2876:[,
7],
2887:[,,{
2878:
2891,
2902:
2888,
2903:
2892}],
2888:[[
2887,
2902]],
2891:[[
2887,
2878]],
2892:[[
2887,
2903]],
2893:[,
9],
2908:[[
2849,
2876],
512],
2909:[[
2850,
2876],
512],
2962:[,,{
3031:
2964}],
2964:[[
2962,
3031]],
3014:[,,{
3006:
3018,
3031:
3020}],
3015:[,,{
3006:
3019}],
3018:[[
3014,
3006]],
3019:[[
3015,
3006]],
3020:[[
3014,
3031]],
3021:[,
9]},
6948 3072:{
3142:[,,{
3158:
3144}],
3144:[[
3142,
3158]],
3149:[,
9],
3157:[,
84],
3158:[,
91],
3260:[,
7],
3263:[,,{
3285:
3264}],
3264:[[
3263,
3285]],
3270:[,,{
3266:
3274,
3285:
3271,
3286:
3272}],
3271:[[
3270,
3285]],
3272:[[
3270,
3286]],
3274:[[
3270,
3266],,{
3285:
3275}],
3275:[[
3274,
3285]],
3277:[,
9]},
6949 3328:{
3398:[,,{
3390:
3402,
3415:
3404}],
3399:[,,{
3390:
3403}],
3402:[[
3398,
3390]],
3403:[[
3399,
3390]],
3404:[[
3398,
3415]],
3405:[,
9],
3530:[,
9],
3545:[,,{
3530:
3546,
3535:
3548,
3551:
3550}],
3546:[[
3545,
3530]],
3548:[[
3545,
3535],,{
3530:
3549}],
3549:[[
3548,
3530]],
3550:[[
3545,
3551]]},
6950 3584:{
3635:[[
3661,
3634],
256],
3640:[,
103],
3641:[,
103],
3642:[,
9],
3656:[,
107],
3657:[,
107],
3658:[,
107],
3659:[,
107],
3763:[[
3789,
3762],
256],
3768:[,
118],
3769:[,
118],
3784:[,
122],
3785:[,
122],
3786:[,
122],
3787:[,
122],
3804:[[
3755,
3737],
256],
3805:[[
3755,
3745],
256]},
6951 3840:{
3852:[[
3851],
256],
3864:[,
220],
3865:[,
220],
3893:[,
220],
3895:[,
220],
3897:[,
216],
3907:[[
3906,
4023],
512],
3917:[[
3916,
4023],
512],
3922:[[
3921,
4023],
512],
3927:[[
3926,
4023],
512],
3932:[[
3931,
4023],
512],
3945:[[
3904,
4021],
512],
3953:[,
129],
3954:[,
130],
3955:[[
3953,
3954],
512],
3956:[,
132],
3957:[[
3953,
3956],
512],
3958:[[
4018,
3968],
512],
3959:[[
4018,
3969],
256],
3960:[[
4019,
3968],
512],
3961:[[
4019,
3969],
256],
3962:[,
130],
3963:[,
130],
3964:[,
130],
3965:[,
130],
3968:[,
130],
3969:[[
3953,
3968],
512],
3970:[,
230],
3971:[,
230],
3972:[,
9],
3974:[,
230],
3975:[,
230],
3987:[[
3986,
4023],
512],
3997:[[
3996,
4023],
512],
4002:[[
4001,
4023],
512],
4007:[[
4006,
4023],
512],
4012:[[
4011,
4023],
512],
4025:[[
3984,
4021],
512],
4038:[,
220]},
6952 4096:{
4133:[,,{
4142:
4134}],
4134:[[
4133,
4142]],
4151:[,
7],
4153:[,
9],
4154:[,
9],
4237:[,
220],
4348:[[
4316],
256],
69702:[,
9],
69759:[,
9],
69785:[,,{
69818:
69786}],
69786:[[
69785,
69818]],
69787:[,,{
69818:
69788}],
69788:[[
69787,
69818]],
69797:[,,{
69818:
69803}],
69803:[[
69797,
69818]],
69817:[,
9],
69818:[,
7]},
6953 4352:{
69888:[,
230],
69889:[,
230],
69890:[,
230],
69934:[[
69937,
69927]],
69935:[[
69938,
69927]],
69937:[,,{
69927:
69934}],
69938:[,,{
69927:
69935}],
69939:[,
9],
69940:[,
9],
70003:[,
7],
70080:[,
9]},
6954 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6955 4864:{
4957:[,
230],
4958:[,
230],
4959:[,
230],
70460:[,
7],
70471:[,,{
70462:
70475,
70487:
70476}],
70475:[[
70471,
70462]],
70476:[[
70471,
70487]],
70477:[,
9],
70502:[,
230],
70503:[,
230],
70504:[,
230],
70505:[,
230],
70506:[,
230],
70507:[,
230],
70508:[,
230],
70512:[,
230],
70513:[,
230],
70514:[,
230],
70515:[,
230],
70516:[,
230]},
6956 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6957 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6958 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6959 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6961 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6962 6656:{
6679:[,
230],
6680:[,
220],
6752:[,
9],
6773:[,
230],
6774:[,
230],
6775:[,
230],
6776:[,
230],
6777:[,
230],
6778:[,
230],
6779:[,
230],
6780:[,
230],
6783:[,
220],
6832:[,
230],
6833:[,
230],
6834:[,
230],
6835:[,
230],
6836:[,
230],
6837:[,
220],
6838:[,
220],
6839:[,
220],
6840:[,
220],
6841:[,
220],
6842:[,
220],
6843:[,
230],
6844:[,
230],
6845:[,
220]},
6963 6912:{
6917:[,,{
6965:
6918}],
6918:[[
6917,
6965]],
6919:[,,{
6965:
6920}],
6920:[[
6919,
6965]],
6921:[,,{
6965:
6922}],
6922:[[
6921,
6965]],
6923:[,,{
6965:
6924}],
6924:[[
6923,
6965]],
6925:[,,{
6965:
6926}],
6926:[[
6925,
6965]],
6929:[,,{
6965:
6930}],
6930:[[
6929,
6965]],
6964:[,
7],
6970:[,,{
6965:
6971}],
6971:[[
6970,
6965]],
6972:[,,{
6965:
6973}],
6973:[[
6972,
6965]],
6974:[,,{
6965:
6976}],
6975:[,,{
6965:
6977}],
6976:[[
6974,
6965]],
6977:[[
6975,
6965]],
6978:[,,{
6965:
6979}],
6979:[[
6978,
6965]],
6980:[,
9],
7019:[,
230],
7020:[,
220],
7021:[,
230],
7022:[,
230],
7023:[,
230],
7024:[,
230],
7025:[,
230],
7026:[,
230],
7027:[,
230],
7082:[,
9],
7083:[,
9],
7142:[,
7],
7154:[,
9],
7155:[,
9]},
6964 7168:{
7223:[,
7],
7376:[,
230],
7377:[,
230],
7378:[,
230],
7380:[,
1],
7381:[,
220],
7382:[,
220],
7383:[,
220],
7384:[,
220],
7385:[,
220],
7386:[,
230],
7387:[,
230],
7388:[,
220],
7389:[,
220],
7390:[,
220],
7391:[,
220],
7392:[,
230],
7394:[,
1],
7395:[,
1],
7396:[,
1],
7397:[,
1],
7398:[,
1],
7399:[,
1],
7400:[,
1],
7405:[,
220],
7412:[,
230],
7416:[,
230],
7417:[,
230]},
6965 7424:{
7468:[[
65],
256],
7469:[[
198],
256],
7470:[[
66],
256],
7472:[[
68],
256],
7473:[[
69],
256],
7474:[[
398],
256],
7475:[[
71],
256],
7476:[[
72],
256],
7477:[[
73],
256],
7478:[[
74],
256],
7479:[[
75],
256],
7480:[[
76],
256],
7481:[[
77],
256],
7482:[[
78],
256],
7484:[[
79],
256],
7485:[[
546],
256],
7486:[[
80],
256],
7487:[[
82],
256],
7488:[[
84],
256],
7489:[[
85],
256],
7490:[[
87],
256],
7491:[[
97],
256],
7492:[[
592],
256],
7493:[[
593],
256],
7494:[[
7426],
256],
7495:[[
98],
256],
7496:[[
100],
256],
7497:[[
101],
256],
7498:[[
601],
256],
7499:[[
603],
256],
7500:[[
604],
256],
7501:[[
103],
256],
7503:[[
107],
256],
7504:[[
109],
256],
7505:[[
331],
256],
7506:[[
111],
256],
7507:[[
596],
256],
7508:[[
7446],
256],
7509:[[
7447],
256],
7510:[[
112],
256],
7511:[[
116],
256],
7512:[[
117],
256],
7513:[[
7453],
256],
7514:[[
623],
256],
7515:[[
118],
256],
7516:[[
7461],
256],
7517:[[
946],
256],
7518:[[
947],
256],
7519:[[
948],
256],
7520:[[
966],
256],
7521:[[
967],
256],
7522:[[
105],
256],
7523:[[
114],
256],
7524:[[
117],
256],
7525:[[
118],
256],
7526:[[
946],
256],
7527:[[
947],
256],
7528:[[
961],
256],
7529:[[
966],
256],
7530:[[
967],
256],
7544:[[
1085],
256],
7579:[[
594],
256],
7580:[[
99],
256],
7581:[[
597],
256],
7582:[[
240],
256],
7583:[[
604],
256],
7584:[[
102],
256],
7585:[[
607],
256],
7586:[[
609],
256],
7587:[[
613],
256],
7588:[[
616],
256],
7589:[[
617],
256],
7590:[[
618],
256],
7591:[[
7547],
256],
7592:[[
669],
256],
7593:[[
621],
256],
7594:[[
7557],
256],
7595:[[
671],
256],
7596:[[
625],
256],
7597:[[
624],
256],
7598:[[
626],
256],
7599:[[
627],
256],
7600:[[
628],
256],
7601:[[
629],
256],
7602:[[
632],
256],
7603:[[
642],
256],
7604:[[
643],
256],
7605:[[
427],
256],
7606:[[
649],
256],
7607:[[
650],
256],
7608:[[
7452],
256],
7609:[[
651],
256],
7610:[[
652],
256],
7611:[[
122],
256],
7612:[[
656],
256],
7613:[[
657],
256],
7614:[[
658],
256],
7615:[[
952],
256],
7616:[,
230],
7617:[,
230],
7618:[,
220],
7619:[,
230],
7620:[,
230],
7621:[,
230],
7622:[,
230],
7623:[,
230],
7624:[,
230],
7625:[,
230],
7626:[,
220],
7627:[,
230],
7628:[,
230],
7629:[,
234],
7630:[,
214],
7631:[,
220],
7632:[,
202],
7633:[,
230],
7634:[,
230],
7635:[,
230],
7636:[,
230],
7637:[,
230],
7638:[,
230],
7639:[,
230],
7640:[,
230],
7641:[,
230],
7642:[,
230],
7643:[,
230],
7644:[,
230],
7645:[,
230],
7646:[,
230],
7647:[,
230],
7648:[,
230],
7649:[,
230],
7650:[,
230],
7651:[,
230],
7652:[,
230],
7653:[,
230],
7654:[,
230],
7655:[,
230],
7656:[,
230],
7657:[,
230],
7658:[,
230],
7659:[,
230],
7660:[,
230],
7661:[,
230],
7662:[,
230],
7663:[,
230],
7664:[,
230],
7665:[,
230],
7666:[,
230],
7667:[,
230],
7668:[,
230],
7669:[,
230],
7676:[,
233],
7677:[,
220],
7678:[,
230],
7679:[,
220]},
6966 7680:{
7680:[[
65,
805]],
7681:[[
97,
805]],
7682:[[
66,
775]],
7683:[[
98,
775]],
7684:[[
66,
803]],
7685:[[
98,
803]],
7686:[[
66,
817]],
7687:[[
98,
817]],
7688:[[
199,
769]],
7689:[[
231,
769]],
7690:[[
68,
775]],
7691:[[
100,
775]],
7692:[[
68,
803]],
7693:[[
100,
803]],
7694:[[
68,
817]],
7695:[[
100,
817]],
7696:[[
68,
807]],
7697:[[
100,
807]],
7698:[[
68,
813]],
7699:[[
100,
813]],
7700:[[
274,
768]],
7701:[[
275,
768]],
7702:[[
274,
769]],
7703:[[
275,
769]],
7704:[[
69,
813]],
7705:[[
101,
813]],
7706:[[
69,
816]],
7707:[[
101,
816]],
7708:[[
552,
774]],
7709:[[
553,
774]],
7710:[[
70,
775]],
7711:[[
102,
775]],
7712:[[
71,
772]],
7713:[[
103,
772]],
7714:[[
72,
775]],
7715:[[
104,
775]],
7716:[[
72,
803]],
7717:[[
104,
803]],
7718:[[
72,
776]],
7719:[[
104,
776]],
7720:[[
72,
807]],
7721:[[
104,
807]],
7722:[[
72,
814]],
7723:[[
104,
814]],
7724:[[
73,
816]],
7725:[[
105,
816]],
7726:[[
207,
769]],
7727:[[
239,
769]],
7728:[[
75,
769]],
7729:[[
107,
769]],
7730:[[
75,
803]],
7731:[[
107,
803]],
7732:[[
75,
817]],
7733:[[
107,
817]],
7734:[[
76,
803],,{
772:
7736}],
7735:[[
108,
803],,{
772:
7737}],
7736:[[
7734,
772]],
7737:[[
7735,
772]],
7738:[[
76,
817]],
7739:[[
108,
817]],
7740:[[
76,
813]],
7741:[[
108,
813]],
7742:[[
77,
769]],
7743:[[
109,
769]],
7744:[[
77,
775]],
7745:[[
109,
775]],
7746:[[
77,
803]],
7747:[[
109,
803]],
7748:[[
78,
775]],
7749:[[
110,
775]],
7750:[[
78,
803]],
7751:[[
110,
803]],
7752:[[
78,
817]],
7753:[[
110,
817]],
7754:[[
78,
813]],
7755:[[
110,
813]],
7756:[[
213,
769]],
7757:[[
245,
769]],
7758:[[
213,
776]],
7759:[[
245,
776]],
7760:[[
332,
768]],
7761:[[
333,
768]],
7762:[[
332,
769]],
7763:[[
333,
769]],
7764:[[
80,
769]],
7765:[[
112,
769]],
7766:[[
80,
775]],
7767:[[
112,
775]],
7768:[[
82,
775]],
7769:[[
114,
775]],
7770:[[
82,
803],,{
772:
7772}],
7771:[[
114,
803],,{
772:
7773}],
7772:[[
7770,
772]],
7773:[[
7771,
772]],
7774:[[
82,
817]],
7775:[[
114,
817]],
7776:[[
83,
775]],
7777:[[
115,
775]],
7778:[[
83,
803],,{
775:
7784}],
7779:[[
115,
803],,{
775:
7785}],
7780:[[
346,
775]],
7781:[[
347,
775]],
7782:[[
352,
775]],
7783:[[
353,
775]],
7784:[[
7778,
775]],
7785:[[
7779,
775]],
7786:[[
84,
775]],
7787:[[
116,
775]],
7788:[[
84,
803]],
7789:[[
116,
803]],
7790:[[
84,
817]],
7791:[[
116,
817]],
7792:[[
84,
813]],
7793:[[
116,
813]],
7794:[[
85,
804]],
7795:[[
117,
804]],
7796:[[
85,
816]],
7797:[[
117,
816]],
7798:[[
85,
813]],
7799:[[
117,
813]],
7800:[[
360,
769]],
7801:[[
361,
769]],
7802:[[
362,
776]],
7803:[[
363,
776]],
7804:[[
86,
771]],
7805:[[
118,
771]],
7806:[[
86,
803]],
7807:[[
118,
803]],
7808:[[
87,
768]],
7809:[[
119,
768]],
7810:[[
87,
769]],
7811:[[
119,
769]],
7812:[[
87,
776]],
7813:[[
119,
776]],
7814:[[
87,
775]],
7815:[[
119,
775]],
7816:[[
87,
803]],
7817:[[
119,
803]],
7818:[[
88,
775]],
7819:[[
120,
775]],
7820:[[
88,
776]],
7821:[[
120,
776]],
7822:[[
89,
775]],
7823:[[
121,
775]],
7824:[[
90,
770]],
7825:[[
122,
770]],
7826:[[
90,
803]],
7827:[[
122,
803]],
7828:[[
90,
817]],
7829:[[
122,
817]],
7830:[[
104,
817]],
7831:[[
116,
776]],
7832:[[
119,
778]],
7833:[[
121,
778]],
7834:[[
97,
702],
256],
7835:[[
383,
775]],
7840:[[
65,
803],,{
770:
7852,
774:
7862}],
7841:[[
97,
803],,{
770:
7853,
774:
7863}],
7842:[[
65,
777]],
7843:[[
97,
777]],
7844:[[
194,
769]],
7845:[[
226,
769]],
7846:[[
194,
768]],
7847:[[
226,
768]],
7848:[[
194,
777]],
7849:[[
226,
777]],
7850:[[
194,
771]],
7851:[[
226,
771]],
7852:[[
7840,
770]],
7853:[[
7841,
770]],
7854:[[
258,
769]],
7855:[[
259,
769]],
7856:[[
258,
768]],
7857:[[
259,
768]],
7858:[[
258,
777]],
7859:[[
259,
777]],
7860:[[
258,
771]],
7861:[[
259,
771]],
7862:[[
7840,
774]],
7863:[[
7841,
774]],
7864:[[
69,
803],,{
770:
7878}],
7865:[[
101,
803],,{
770:
7879}],
7866:[[
69,
777]],
7867:[[
101,
777]],
7868:[[
69,
771]],
7869:[[
101,
771]],
7870:[[
202,
769]],
7871:[[
234,
769]],
7872:[[
202,
768]],
7873:[[
234,
768]],
7874:[[
202,
777]],
7875:[[
234,
777]],
7876:[[
202,
771]],
7877:[[
234,
771]],
7878:[[
7864,
770]],
7879:[[
7865,
770]],
7880:[[
73,
777]],
7881:[[
105,
777]],
7882:[[
73,
803]],
7883:[[
105,
803]],
7884:[[
79,
803],,{
770:
7896}],
7885:[[
111,
803],,{
770:
7897}],
7886:[[
79,
777]],
7887:[[
111,
777]],
7888:[[
212,
769]],
7889:[[
244,
769]],
7890:[[
212,
768]],
7891:[[
244,
768]],
7892:[[
212,
777]],
7893:[[
244,
777]],
7894:[[
212,
771]],
7895:[[
244,
771]],
7896:[[
7884,
770]],
7897:[[
7885,
770]],
7898:[[
416,
769]],
7899:[[
417,
769]],
7900:[[
416,
768]],
7901:[[
417,
768]],
7902:[[
416,
777]],
7903:[[
417,
777]],
7904:[[
416,
771]],
7905:[[
417,
771]],
7906:[[
416,
803]],
7907:[[
417,
803]],
7908:[[
85,
803]],
7909:[[
117,
803]],
7910:[[
85,
777]],
7911:[[
117,
777]],
7912:[[
431,
769]],
7913:[[
432,
769]],
7914:[[
431,
768]],
7915:[[
432,
768]],
7916:[[
431,
777]],
7917:[[
432,
777]],
7918:[[
431,
771]],
7919:[[
432,
771]],
7920:[[
431,
803]],
7921:[[
432,
803]],
7922:[[
89,
768]],
7923:[[
121,
768]],
7924:[[
89,
803]],
7925:[[
121,
803]],
7926:[[
89,
777]],
7927:[[
121,
777]],
7928:[[
89,
771]],
7929:[[
121,
771]]},
6967 7936:{
7936:[[
945,
787],,{
768:
7938,
769:
7940,
834:
7942,
837:
8064}],
7937:[[
945,
788],,{
768:
7939,
769:
7941,
834:
7943,
837:
8065}],
7938:[[
7936,
768],,{
837:
8066}],
7939:[[
7937,
768],,{
837:
8067}],
7940:[[
7936,
769],,{
837:
8068}],
7941:[[
7937,
769],,{
837:
8069}],
7942:[[
7936,
834],,{
837:
8070}],
7943:[[
7937,
834],,{
837:
8071}],
7944:[[
913,
787],,{
768:
7946,
769:
7948,
834:
7950,
837:
8072}],
7945:[[
913,
788],,{
768:
7947,
769:
7949,
834:
7951,
837:
8073}],
7946:[[
7944,
768],,{
837:
8074}],
7947:[[
7945,
768],,{
837:
8075}],
7948:[[
7944,
769],,{
837:
8076}],
7949:[[
7945,
769],,{
837:
8077}],
7950:[[
7944,
834],,{
837:
8078}],
7951:[[
7945,
834],,{
837:
8079}],
7952:[[
949,
787],,{
768:
7954,
769:
7956}],
7953:[[
949,
788],,{
768:
7955,
769:
7957}],
7954:[[
7952,
768]],
7955:[[
7953,
768]],
7956:[[
7952,
769]],
7957:[[
7953,
769]],
7960:[[
917,
787],,{
768:
7962,
769:
7964}],
7961:[[
917,
788],,{
768:
7963,
769:
7965}],
7962:[[
7960,
768]],
7963:[[
7961,
768]],
7964:[[
7960,
769]],
7965:[[
7961,
769]],
7968:[[
951,
787],,{
768:
7970,
769:
7972,
834:
7974,
837:
8080}],
7969:[[
951,
788],,{
768:
7971,
769:
7973,
834:
7975,
837:
8081}],
7970:[[
7968,
768],,{
837:
8082}],
7971:[[
7969,
768],,{
837:
8083}],
7972:[[
7968,
769],,{
837:
8084}],
7973:[[
7969,
769],,{
837:
8085}],
7974:[[
7968,
834],,{
837:
8086}],
7975:[[
7969,
834],,{
837:
8087}],
7976:[[
919,
787],,{
768:
7978,
769:
7980,
834:
7982,
837:
8088}],
7977:[[
919,
788],,{
768:
7979,
769:
7981,
834:
7983,
837:
8089}],
7978:[[
7976,
768],,{
837:
8090}],
7979:[[
7977,
768],,{
837:
8091}],
7980:[[
7976,
769],,{
837:
8092}],
7981:[[
7977,
769],,{
837:
8093}],
7982:[[
7976,
834],,{
837:
8094}],
7983:[[
7977,
834],,{
837:
8095}],
7984:[[
953,
787],,{
768:
7986,
769:
7988,
834:
7990}],
7985:[[
953,
788],,{
768:
7987,
769:
7989,
834:
7991}],
7986:[[
7984,
768]],
7987:[[
7985,
768]],
7988:[[
7984,
769]],
7989:[[
7985,
769]],
7990:[[
7984,
834]],
7991:[[
7985,
834]],
7992:[[
921,
787],,{
768:
7994,
769:
7996,
834:
7998}],
7993:[[
921,
788],,{
768:
7995,
769:
7997,
834:
7999}],
7994:[[
7992,
768]],
7995:[[
7993,
768]],
7996:[[
7992,
769]],
7997:[[
7993,
769]],
7998:[[
7992,
834]],
7999:[[
7993,
834]],
8000:[[
959,
787],,{
768:
8002,
769:
8004}],
8001:[[
959,
788],,{
768:
8003,
769:
8005}],
8002:[[
8000,
768]],
8003:[[
8001,
768]],
8004:[[
8000,
769]],
8005:[[
8001,
769]],
8008:[[
927,
787],,{
768:
8010,
769:
8012}],
8009:[[
927,
788],,{
768:
8011,
769:
8013}],
8010:[[
8008,
768]],
8011:[[
8009,
768]],
8012:[[
8008,
769]],
8013:[[
8009,
769]],
8016:[[
965,
787],,{
768:
8018,
769:
8020,
834:
8022}],
8017:[[
965,
788],,{
768:
8019,
769:
8021,
834:
8023}],
8018:[[
8016,
768]],
8019:[[
8017,
768]],
8020:[[
8016,
769]],
8021:[[
8017,
769]],
8022:[[
8016,
834]],
8023:[[
8017,
834]],
8025:[[
933,
788],,{
768:
8027,
769:
8029,
834:
8031}],
8027:[[
8025,
768]],
8029:[[
8025,
769]],
8031:[[
8025,
834]],
8032:[[
969,
787],,{
768:
8034,
769:
8036,
834:
8038,
837:
8096}],
8033:[[
969,
788],,{
768:
8035,
769:
8037,
834:
8039,
837:
8097}],
8034:[[
8032,
768],,{
837:
8098}],
8035:[[
8033,
768],,{
837:
8099}],
8036:[[
8032,
769],,{
837:
8100}],
8037:[[
8033,
769],,{
837:
8101}],
8038:[[
8032,
834],,{
837:
8102}],
8039:[[
8033,
834],,{
837:
8103}],
8040:[[
937,
787],,{
768:
8042,
769:
8044,
834:
8046,
837:
8104}],
8041:[[
937,
788],,{
768:
8043,
769:
8045,
834:
8047,
837:
8105}],
8042:[[
8040,
768],,{
837:
8106}],
8043:[[
8041,
768],,{
837:
8107}],
8044:[[
8040,
769],,{
837:
8108}],
8045:[[
8041,
769],,{
837:
8109}],
8046:[[
8040,
834],,{
837:
8110}],
8047:[[
8041,
834],,{
837:
8111}],
8048:[[
945,
768],,{
837:
8114}],
8049:[[
940]],
8050:[[
949,
768]],
8051:[[
941]],
8052:[[
951,
768],,{
837:
8130}],
8053:[[
942]],
8054:[[
953,
768]],
8055:[[
943]],
8056:[[
959,
768]],
8057:[[
972]],
8058:[[
965,
768]],
8059:[[
973]],
8060:[[
969,
768],,{
837:
8178}],
8061:[[
974]],
8064:[[
7936,
837]],
8065:[[
7937,
837]],
8066:[[
7938,
837]],
8067:[[
7939,
837]],
8068:[[
7940,
837]],
8069:[[
7941,
837]],
8070:[[
7942,
837]],
8071:[[
7943,
837]],
8072:[[
7944,
837]],
8073:[[
7945,
837]],
8074:[[
7946,
837]],
8075:[[
7947,
837]],
8076:[[
7948,
837]],
8077:[[
7949,
837]],
8078:[[
7950,
837]],
8079:[[
7951,
837]],
8080:[[
7968,
837]],
8081:[[
7969,
837]],
8082:[[
7970,
837]],
8083:[[
7971,
837]],
8084:[[
7972,
837]],
8085:[[
7973,
837]],
8086:[[
7974,
837]],
8087:[[
7975,
837]],
8088:[[
7976,
837]],
8089:[[
7977,
837]],
8090:[[
7978,
837]],
8091:[[
7979,
837]],
8092:[[
7980,
837]],
8093:[[
7981,
837]],
8094:[[
7982,
837]],
8095:[[
7983,
837]],
8096:[[
8032,
837]],
8097:[[
8033,
837]],
8098:[[
8034,
837]],
8099:[[
8035,
837]],
8100:[[
8036,
837]],
8101:[[
8037,
837]],
8102:[[
8038,
837]],
8103:[[
8039,
837]],
8104:[[
8040,
837]],
8105:[[
8041,
837]],
8106:[[
8042,
837]],
8107:[[
8043,
837]],
8108:[[
8044,
837]],
8109:[[
8045,
837]],
8110:[[
8046,
837]],
8111:[[
8047,
837]],
8112:[[
945,
774]],
8113:[[
945,
772]],
8114:[[
8048,
837]],
8115:[[
945,
837]],
8116:[[
940,
837]],
8118:[[
945,
834],,{
837:
8119}],
8119:[[
8118,
837]],
8120:[[
913,
774]],
8121:[[
913,
772]],
8122:[[
913,
768]],
8123:[[
902]],
8124:[[
913,
837]],
8125:[[
32,
787],
256],
8126:[[
953]],
8127:[[
32,
787],
256,{
768:
8141,
769:
8142,
834:
8143}],
8128:[[
32,
834],
256],
8129:[[
168,
834]],
8130:[[
8052,
837]],
8131:[[
951,
837]],
8132:[[
942,
837]],
8134:[[
951,
834],,{
837:
8135}],
8135:[[
8134,
837]],
8136:[[
917,
768]],
8137:[[
904]],
8138:[[
919,
768]],
8139:[[
905]],
8140:[[
919,
837]],
8141:[[
8127,
768]],
8142:[[
8127,
769]],
8143:[[
8127,
834]],
8144:[[
953,
774]],
8145:[[
953,
772]],
8146:[[
970,
768]],
8147:[[
912]],
8150:[[
953,
834]],
8151:[[
970,
834]],
8152:[[
921,
774]],
8153:[[
921,
772]],
8154:[[
921,
768]],
8155:[[
906]],
8157:[[
8190,
768]],
8158:[[
8190,
769]],
8159:[[
8190,
834]],
8160:[[
965,
774]],
8161:[[
965,
772]],
8162:[[
971,
768]],
8163:[[
944]],
8164:[[
961,
787]],
8165:[[
961,
788]],
8166:[[
965,
834]],
8167:[[
971,
834]],
8168:[[
933,
774]],
8169:[[
933,
772]],
8170:[[
933,
768]],
8171:[[
910]],
8172:[[
929,
788]],
8173:[[
168,
768]],
8174:[[
901]],
8175:[[
96]],
8178:[[
8060,
837]],
8179:[[
969,
837]],
8180:[[
974,
837]],
8182:[[
969,
834],,{
837:
8183}],
8183:[[
8182,
837]],
8184:[[
927,
768]],
8185:[[
908]],
8186:[[
937,
768]],
8187:[[
911]],
8188:[[
937,
837]],
8189:[[
180]],
8190:[[
32,
788],
256,{
768:
8157,
769:
8158,
834:
8159}]},
6968 8192:{
8192:[[
8194]],
8193:[[
8195]],
8194:[[
32],
256],
8195:[[
32],
256],
8196:[[
32],
256],
8197:[[
32],
256],
8198:[[
32],
256],
8199:[[
32],
256],
8200:[[
32],
256],
8201:[[
32],
256],
8202:[[
32],
256],
8209:[[
8208],
256],
8215:[[
32,
819],
256],
8228:[[
46],
256],
8229:[[
46,
46],
256],
8230:[[
46,
46,
46],
256],
8239:[[
32],
256],
8243:[[
8242,
8242],
256],
8244:[[
8242,
8242,
8242],
256],
8246:[[
8245,
8245],
256],
8247:[[
8245,
8245,
8245],
256],
8252:[[
33,
33],
256],
8254:[[
32,
773],
256],
8263:[[
63,
63],
256],
8264:[[
63,
33],
256],
8265:[[
33,
63],
256],
8279:[[
8242,
8242,
8242,
8242],
256],
8287:[[
32],
256],
8304:[[
48],
256],
8305:[[
105],
256],
8308:[[
52],
256],
8309:[[
53],
256],
8310:[[
54],
256],
8311:[[
55],
256],
8312:[[
56],
256],
8313:[[
57],
256],
8314:[[
43],
256],
8315:[[
8722],
256],
8316:[[
61],
256],
8317:[[
40],
256],
8318:[[
41],
256],
8319:[[
110],
256],
8320:[[
48],
256],
8321:[[
49],
256],
8322:[[
50],
256],
8323:[[
51],
256],
8324:[[
52],
256],
8325:[[
53],
256],
8326:[[
54],
256],
8327:[[
55],
256],
8328:[[
56],
256],
8329:[[
57],
256],
8330:[[
43],
256],
8331:[[
8722],
256],
8332:[[
61],
256],
8333:[[
40],
256],
8334:[[
41],
256],
8336:[[
97],
256],
8337:[[
101],
256],
8338:[[
111],
256],
8339:[[
120],
256],
8340:[[
601],
256],
8341:[[
104],
256],
8342:[[
107],
256],
8343:[[
108],
256],
8344:[[
109],
256],
8345:[[
110],
256],
8346:[[
112],
256],
8347:[[
115],
256],
8348:[[
116],
256],
8360:[[
82,
115],
256],
8400:[,
230],
8401:[,
230],
8402:[,
1],
8403:[,
1],
8404:[,
230],
8405:[,
230],
8406:[,
230],
8407:[,
230],
8408:[,
1],
8409:[,
1],
8410:[,
1],
8411:[,
230],
8412:[,
230],
8417:[,
230],
8421:[,
1],
8422:[,
1],
8423:[,
230],
8424:[,
220],
8425:[,
230],
8426:[,
1],
8427:[,
1],
8428:[,
220],
8429:[,
220],
8430:[,
220],
8431:[,
220],
8432:[,
230]},
6969 8448:{
8448:[[
97,
47,
99],
256],
8449:[[
97,
47,
115],
256],
8450:[[
67],
256],
8451:[[
176,
67],
256],
8453:[[
99,
47,
111],
256],
8454:[[
99,
47,
117],
256],
8455:[[
400],
256],
8457:[[
176,
70],
256],
8458:[[
103],
256],
8459:[[
72],
256],
8460:[[
72],
256],
8461:[[
72],
256],
8462:[[
104],
256],
8463:[[
295],
256],
8464:[[
73],
256],
8465:[[
73],
256],
8466:[[
76],
256],
8467:[[
108],
256],
8469:[[
78],
256],
8470:[[
78,
111],
256],
8473:[[
80],
256],
8474:[[
81],
256],
8475:[[
82],
256],
8476:[[
82],
256],
8477:[[
82],
256],
8480:[[
83,
77],
256],
8481:[[
84,
69,
76],
256],
8482:[[
84,
77],
256],
8484:[[
90],
256],
8486:[[
937]],
8488:[[
90],
256],
8490:[[
75]],
8491:[[
197]],
8492:[[
66],
256],
8493:[[
67],
256],
8495:[[
101],
256],
8496:[[
69],
256],
8497:[[
70],
256],
8499:[[
77],
256],
8500:[[
111],
256],
8501:[[
1488],
256],
8502:[[
1489],
256],
8503:[[
1490],
256],
8504:[[
1491],
256],
8505:[[
105],
256],
8507:[[
70,
65,
88],
256],
8508:[[
960],
256],
8509:[[
947],
256],
8510:[[
915],
256],
8511:[[
928],
256],
8512:[[
8721],
256],
8517:[[
68],
256],
8518:[[
100],
256],
8519:[[
101],
256],
8520:[[
105],
256],
8521:[[
106],
256],
8528:[[
49,
8260,
55],
256],
8529:[[
49,
8260,
57],
256],
8530:[[
49,
8260,
49,
48],
256],
8531:[[
49,
8260,
51],
256],
8532:[[
50,
8260,
51],
256],
8533:[[
49,
8260,
53],
256],
8534:[[
50,
8260,
53],
256],
8535:[[
51,
8260,
53],
256],
8536:[[
52,
8260,
53],
256],
8537:[[
49,
8260,
54],
256],
8538:[[
53,
8260,
54],
256],
8539:[[
49,
8260,
56],
256],
8540:[[
51,
8260,
56],
256],
8541:[[
53,
8260,
56],
256],
8542:[[
55,
8260,
56],
256],
8543:[[
49,
8260],
256],
8544:[[
73],
256],
8545:[[
73,
73],
256],
8546:[[
73,
73,
73],
256],
8547:[[
73,
86],
256],
8548:[[
86],
256],
8549:[[
86,
73],
256],
8550:[[
86,
73,
73],
256],
8551:[[
86,
73,
73,
73],
256],
8552:[[
73,
88],
256],
8553:[[
88],
256],
8554:[[
88,
73],
256],
8555:[[
88,
73,
73],
256],
8556:[[
76],
256],
8557:[[
67],
256],
8558:[[
68],
256],
8559:[[
77],
256],
8560:[[
105],
256],
8561:[[
105,
105],
256],
8562:[[
105,
105,
105],
256],
8563:[[
105,
118],
256],
8564:[[
118],
256],
8565:[[
118,
105],
256],
8566:[[
118,
105,
105],
256],
8567:[[
118,
105,
105,
105],
256],
8568:[[
105,
120],
256],
8569:[[
120],
256],
8570:[[
120,
105],
256],
8571:[[
120,
105,
105],
256],
8572:[[
108],
256],
8573:[[
99],
256],
8574:[[
100],
256],
8575:[[
109],
256],
8585:[[
48,
8260,
51],
256],
8592:[,,{
824:
8602}],
8594:[,,{
824:
8603}],
8596:[,,{
824:
8622}],
8602:[[
8592,
824]],
8603:[[
8594,
824]],
8622:[[
8596,
824]],
8653:[[
8656,
824]],
8654:[[
8660,
824]],
8655:[[
8658,
824]],
8656:[,,{
824:
8653}],
8658:[,,{
824:
8655}],
8660:[,,{
824:
8654}]},
6970 8704:{
8707:[,,{
824:
8708}],
8708:[[
8707,
824]],
8712:[,,{
824:
8713}],
8713:[[
8712,
824]],
8715:[,,{
824:
8716}],
8716:[[
8715,
824]],
8739:[,,{
824:
8740}],
8740:[[
8739,
824]],
8741:[,,{
824:
8742}],
8742:[[
8741,
824]],
8748:[[
8747,
8747],
256],
8749:[[
8747,
8747,
8747],
256],
8751:[[
8750,
8750],
256],
8752:[[
8750,
8750,
8750],
256],
8764:[,,{
824:
8769}],
8769:[[
8764,
824]],
8771:[,,{
824:
8772}],
8772:[[
8771,
824]],
8773:[,,{
824:
8775}],
8775:[[
8773,
824]],
8776:[,,{
824:
8777}],
8777:[[
8776,
824]],
8781:[,,{
824:
8813}],
8800:[[
61,
824]],
8801:[,,{
824:
8802}],
8802:[[
8801,
824]],
8804:[,,{
824:
8816}],
8805:[,,{
824:
8817}],
8813:[[
8781,
824]],
8814:[[
60,
824]],
8815:[[
62,
824]],
8816:[[
8804,
824]],
8817:[[
8805,
824]],
8818:[,,{
824:
8820}],
8819:[,,{
824:
8821}],
8820:[[
8818,
824]],
8821:[[
8819,
824]],
8822:[,,{
824:
8824}],
8823:[,,{
824:
8825}],
8824:[[
8822,
824]],
8825:[[
8823,
824]],
8826:[,,{
824:
8832}],
8827:[,,{
824:
8833}],
8828:[,,{
824:
8928}],
8829:[,,{
824:
8929}],
8832:[[
8826,
824]],
8833:[[
8827,
824]],
8834:[,,{
824:
8836}],
8835:[,,{
824:
8837}],
8836:[[
8834,
824]],
8837:[[
8835,
824]],
8838:[,,{
824:
8840}],
8839:[,,{
824:
8841}],
8840:[[
8838,
824]],
8841:[[
8839,
824]],
8849:[,,{
824:
8930}],
8850:[,,{
824:
8931}],
8866:[,,{
824:
8876}],
8872:[,,{
824:
8877}],
8873:[,,{
824:
8878}],
8875:[,,{
824:
8879}],
8876:[[
8866,
824]],
8877:[[
8872,
824]],
8878:[[
8873,
824]],
8879:[[
8875,
824]],
8882:[,,{
824:
8938}],
8883:[,,{
824:
8939}],
8884:[,,{
824:
8940}],
8885:[,,{
824:
8941}],
8928:[[
8828,
824]],
8929:[[
8829,
824]],
8930:[[
8849,
824]],
8931:[[
8850,
824]],
8938:[[
8882,
824]],
8939:[[
8883,
824]],
8940:[[
8884,
824]],
8941:[[
8885,
824]]},
6971 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6972 9216:{
9312:[[
49],
256],
9313:[[
50],
256],
9314:[[
51],
256],
9315:[[
52],
256],
9316:[[
53],
256],
9317:[[
54],
256],
9318:[[
55],
256],
9319:[[
56],
256],
9320:[[
57],
256],
9321:[[
49,
48],
256],
9322:[[
49,
49],
256],
9323:[[
49,
50],
256],
9324:[[
49,
51],
256],
9325:[[
49,
52],
256],
9326:[[
49,
53],
256],
9327:[[
49,
54],
256],
9328:[[
49,
55],
256],
9329:[[
49,
56],
256],
9330:[[
49,
57],
256],
9331:[[
50,
48],
256],
9332:[[
40,
49,
41],
256],
9333:[[
40,
50,
41],
256],
9334:[[
40,
51,
41],
256],
9335:[[
40,
52,
41],
256],
9336:[[
40,
53,
41],
256],
9337:[[
40,
54,
41],
256],
9338:[[
40,
55,
41],
256],
9339:[[
40,
56,
41],
256],
9340:[[
40,
57,
41],
256],
9341:[[
40,
49,
48,
41],
256],
9342:[[
40,
49,
49,
41],
256],
9343:[[
40,
49,
50,
41],
256],
9344:[[
40,
49,
51,
41],
256],
9345:[[
40,
49,
52,
41],
256],
9346:[[
40,
49,
53,
41],
256],
9347:[[
40,
49,
54,
41],
256],
9348:[[
40,
49,
55,
41],
256],
9349:[[
40,
49,
56,
41],
256],
9350:[[
40,
49,
57,
41],
256],
9351:[[
40,
50,
48,
41],
256],
9352:[[
49,
46],
256],
9353:[[
50,
46],
256],
9354:[[
51,
46],
256],
9355:[[
52,
46],
256],
9356:[[
53,
46],
256],
9357:[[
54,
46],
256],
9358:[[
55,
46],
256],
9359:[[
56,
46],
256],
9360:[[
57,
46],
256],
9361:[[
49,
48,
46],
256],
9362:[[
49,
49,
46],
256],
9363:[[
49,
50,
46],
256],
9364:[[
49,
51,
46],
256],
9365:[[
49,
52,
46],
256],
9366:[[
49,
53,
46],
256],
9367:[[
49,
54,
46],
256],
9368:[[
49,
55,
46],
256],
9369:[[
49,
56,
46],
256],
9370:[[
49,
57,
46],
256],
9371:[[
50,
48,
46],
256],
9372:[[
40,
97,
41],
256],
9373:[[
40,
98,
41],
256],
9374:[[
40,
99,
41],
256],
9375:[[
40,
100,
41],
256],
9376:[[
40,
101,
41],
256],
9377:[[
40,
102,
41],
256],
9378:[[
40,
103,
41],
256],
9379:[[
40,
104,
41],
256],
9380:[[
40,
105,
41],
256],
9381:[[
40,
106,
41],
256],
9382:[[
40,
107,
41],
256],
9383:[[
40,
108,
41],
256],
9384:[[
40,
109,
41],
256],
9385:[[
40,
110,
41],
256],
9386:[[
40,
111,
41],
256],
9387:[[
40,
112,
41],
256],
9388:[[
40,
113,
41],
256],
9389:[[
40,
114,
41],
256],
9390:[[
40,
115,
41],
256],
9391:[[
40,
116,
41],
256],
9392:[[
40,
117,
41],
256],
9393:[[
40,
118,
41],
256],
9394:[[
40,
119,
41],
256],
9395:[[
40,
120,
41],
256],
9396:[[
40,
121,
41],
256],
9397:[[
40,
122,
41],
256],
9398:[[
65],
256],
9399:[[
66],
256],
9400:[[
67],
256],
9401:[[
68],
256],
9402:[[
69],
256],
9403:[[
70],
256],
9404:[[
71],
256],
9405:[[
72],
256],
9406:[[
73],
256],
9407:[[
74],
256],
9408:[[
75],
256],
9409:[[
76],
256],
9410:[[
77],
256],
9411:[[
78],
256],
9412:[[
79],
256],
9413:[[
80],
256],
9414:[[
81],
256],
9415:[[
82],
256],
9416:[[
83],
256],
9417:[[
84],
256],
9418:[[
85],
256],
9419:[[
86],
256],
9420:[[
87],
256],
9421:[[
88],
256],
9422:[[
89],
256],
9423:[[
90],
256],
9424:[[
97],
256],
9425:[[
98],
256],
9426:[[
99],
256],
9427:[[
100],
256],
9428:[[
101],
256],
9429:[[
102],
256],
9430:[[
103],
256],
9431:[[
104],
256],
9432:[[
105],
256],
9433:[[
106],
256],
9434:[[
107],
256],
9435:[[
108],
256],
9436:[[
109],
256],
9437:[[
110],
256],
9438:[[
111],
256],
9439:[[
112],
256],
9440:[[
113],
256],
9441:[[
114],
256],
9442:[[
115],
256],
9443:[[
116],
256],
9444:[[
117],
256],
9445:[[
118],
256],
9446:[[
119],
256],
9447:[[
120],
256],
9448:[[
121],
256],
9449:[[
122],
256],
9450:[[
48],
256]},
6973 10752:{
10764:[[
8747,
8747,
8747,
8747],
256],
10868:[[
58,
58,
61],
256],
10869:[[
61,
61],
256],
10870:[[
61,
61,
61],
256],
10972:[[
10973,
824],
512]},
6974 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6975 11520:{
11631:[[
11617],
256],
11647:[,
9],
11744:[,
230],
11745:[,
230],
11746:[,
230],
11747:[,
230],
11748:[,
230],
11749:[,
230],
11750:[,
230],
11751:[,
230],
11752:[,
230],
11753:[,
230],
11754:[,
230],
11755:[,
230],
11756:[,
230],
11757:[,
230],
11758:[,
230],
11759:[,
230],
11760:[,
230],
11761:[,
230],
11762:[,
230],
11763:[,
230],
11764:[,
230],
11765:[,
230],
11766:[,
230],
11767:[,
230],
11768:[,
230],
11769:[,
230],
11770:[,
230],
11771:[,
230],
11772:[,
230],
11773:[,
230],
11774:[,
230],
11775:[,
230]},
6976 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6977 12032:{
12032:[[
19968],
256],
12033:[[
20008],
256],
12034:[[
20022],
256],
12035:[[
20031],
256],
12036:[[
20057],
256],
12037:[[
20101],
256],
12038:[[
20108],
256],
12039:[[
20128],
256],
12040:[[
20154],
256],
12041:[[
20799],
256],
12042:[[
20837],
256],
12043:[[
20843],
256],
12044:[[
20866],
256],
12045:[[
20886],
256],
12046:[[
20907],
256],
12047:[[
20960],
256],
12048:[[
20981],
256],
12049:[[
20992],
256],
12050:[[
21147],
256],
12051:[[
21241],
256],
12052:[[
21269],
256],
12053:[[
21274],
256],
12054:[[
21304],
256],
12055:[[
21313],
256],
12056:[[
21340],
256],
12057:[[
21353],
256],
12058:[[
21378],
256],
12059:[[
21430],
256],
12060:[[
21448],
256],
12061:[[
21475],
256],
12062:[[
22231],
256],
12063:[[
22303],
256],
12064:[[
22763],
256],
12065:[[
22786],
256],
12066:[[
22794],
256],
12067:[[
22805],
256],
12068:[[
22823],
256],
12069:[[
22899],
256],
12070:[[
23376],
256],
12071:[[
23424],
256],
12072:[[
23544],
256],
12073:[[
23567],
256],
12074:[[
23586],
256],
12075:[[
23608],
256],
12076:[[
23662],
256],
12077:[[
23665],
256],
12078:[[
24027],
256],
12079:[[
24037],
256],
12080:[[
24049],
256],
12081:[[
24062],
256],
12082:[[
24178],
256],
12083:[[
24186],
256],
12084:[[
24191],
256],
12085:[[
24308],
256],
12086:[[
24318],
256],
12087:[[
24331],
256],
12088:[[
24339],
256],
12089:[[
24400],
256],
12090:[[
24417],
256],
12091:[[
24435],
256],
12092:[[
24515],
256],
12093:[[
25096],
256],
12094:[[
25142],
256],
12095:[[
25163],
256],
12096:[[
25903],
256],
12097:[[
25908],
256],
12098:[[
25991],
256],
12099:[[
26007],
256],
12100:[[
26020],
256],
12101:[[
26041],
256],
12102:[[
26080],
256],
12103:[[
26085],
256],
12104:[[
26352],
256],
12105:[[
26376],
256],
12106:[[
26408],
256],
12107:[[
27424],
256],
12108:[[
27490],
256],
12109:[[
27513],
256],
12110:[[
27571],
256],
12111:[[
27595],
256],
12112:[[
27604],
256],
12113:[[
27611],
256],
12114:[[
27663],
256],
12115:[[
27668],
256],
12116:[[
27700],
256],
12117:[[
28779],
256],
12118:[[
29226],
256],
12119:[[
29238],
256],
12120:[[
29243],
256],
12121:[[
29247],
256],
12122:[[
29255],
256],
12123:[[
29273],
256],
12124:[[
29275],
256],
12125:[[
29356],
256],
12126:[[
29572],
256],
12127:[[
29577],
256],
12128:[[
29916],
256],
12129:[[
29926],
256],
12130:[[
29976],
256],
12131:[[
29983],
256],
12132:[[
29992],
256],
12133:[[
30000],
256],
12134:[[
30091],
256],
12135:[[
30098],
256],
12136:[[
30326],
256],
12137:[[
30333],
256],
12138:[[
30382],
256],
12139:[[
30399],
256],
12140:[[
30446],
256],
12141:[[
30683],
256],
12142:[[
30690],
256],
12143:[[
30707],
256],
12144:[[
31034],
256],
12145:[[
31160],
256],
12146:[[
31166],
256],
12147:[[
31348],
256],
12148:[[
31435],
256],
12149:[[
31481],
256],
12150:[[
31859],
256],
12151:[[
31992],
256],
12152:[[
32566],
256],
12153:[[
32593],
256],
12154:[[
32650],
256],
12155:[[
32701],
256],
12156:[[
32769],
256],
12157:[[
32780],
256],
12158:[[
32786],
256],
12159:[[
32819],
256],
12160:[[
32895],
256],
12161:[[
32905],
256],
12162:[[
33251],
256],
12163:[[
33258],
256],
12164:[[
33267],
256],
12165:[[
33276],
256],
12166:[[
33292],
256],
12167:[[
33307],
256],
12168:[[
33311],
256],
12169:[[
33390],
256],
12170:[[
33394],
256],
12171:[[
33400],
256],
12172:[[
34381],
256],
12173:[[
34411],
256],
12174:[[
34880],
256],
12175:[[
34892],
256],
12176:[[
34915],
256],
12177:[[
35198],
256],
12178:[[
35211],
256],
12179:[[
35282],
256],
12180:[[
35328],
256],
12181:[[
35895],
256],
12182:[[
35910],
256],
12183:[[
35925],
256],
12184:[[
35960],
256],
12185:[[
35997],
256],
12186:[[
36196],
256],
12187:[[
36208],
256],
12188:[[
36275],
256],
12189:[[
36523],
256],
12190:[[
36554],
256],
12191:[[
36763],
256],
12192:[[
36784],
256],
12193:[[
36789],
256],
12194:[[
37009],
256],
12195:[[
37193],
256],
12196:[[
37318],
256],
12197:[[
37324],
256],
12198:[[
37329],
256],
12199:[[
38263],
256],
12200:[[
38272],
256],
12201:[[
38428],
256],
12202:[[
38582],
256],
12203:[[
38585],
256],
12204:[[
38632],
256],
12205:[[
38737],
256],
12206:[[
38750],
256],
12207:[[
38754],
256],
12208:[[
38761],
256],
12209:[[
38859],
256],
12210:[[
38893],
256],
12211:[[
38899],
256],
12212:[[
38913],
256],
12213:[[
39080],
256],
12214:[[
39131],
256],
12215:[[
39135],
256],
12216:[[
39318],
256],
12217:[[
39321],
256],
12218:[[
39340],
256],
12219:[[
39592],
256],
12220:[[
39640],
256],
12221:[[
39647],
256],
12222:[[
39717],
256],
12223:[[
39727],
256],
12224:[[
39730],
256],
12225:[[
39740],
256],
12226:[[
39770],
256],
12227:[[
40165],
256],
12228:[[
40565],
256],
12229:[[
40575],
256],
12230:[[
40613],
256],
12231:[[
40635],
256],
12232:[[
40643],
256],
12233:[[
40653],
256],
12234:[[
40657],
256],
12235:[[
40697],
256],
12236:[[
40701],
256],
12237:[[
40718],
256],
12238:[[
40723],
256],
12239:[[
40736],
256],
12240:[[
40763],
256],
12241:[[
40778],
256],
12242:[[
40786],
256],
12243:[[
40845],
256],
12244:[[
40860],
256],
12245:[[
40864],
256]},
6978 12288:{
12288:[[
32],
256],
12330:[,
218],
12331:[,
228],
12332:[,
232],
12333:[,
222],
12334:[,
224],
12335:[,
224],
12342:[[
12306],
256],
12344:[[
21313],
256],
12345:[[
21316],
256],
12346:[[
21317],
256],
12358:[,,{
12441:
12436}],
12363:[,,{
12441:
12364}],
12364:[[
12363,
12441]],
12365:[,,{
12441:
12366}],
12366:[[
12365,
12441]],
12367:[,,{
12441:
12368}],
12368:[[
12367,
12441]],
12369:[,,{
12441:
12370}],
12370:[[
12369,
12441]],
12371:[,,{
12441:
12372}],
12372:[[
12371,
12441]],
12373:[,,{
12441:
12374}],
12374:[[
12373,
12441]],
12375:[,,{
12441:
12376}],
12376:[[
12375,
12441]],
12377:[,,{
12441:
12378}],
12378:[[
12377,
12441]],
12379:[,,{
12441:
12380}],
12380:[[
12379,
12441]],
12381:[,,{
12441:
12382}],
12382:[[
12381,
12441]],
12383:[,,{
12441:
12384}],
12384:[[
12383,
12441]],
12385:[,,{
12441:
12386}],
12386:[[
12385,
12441]],
12388:[,,{
12441:
12389}],
12389:[[
12388,
12441]],
12390:[,,{
12441:
12391}],
12391:[[
12390,
12441]],
12392:[,,{
12441:
12393}],
12393:[[
12392,
12441]],
12399:[,,{
12441:
12400,
12442:
12401}],
12400:[[
12399,
12441]],
12401:[[
12399,
12442]],
12402:[,,{
12441:
12403,
12442:
12404}],
12403:[[
12402,
12441]],
12404:[[
12402,
12442]],
12405:[,,{
12441:
12406,
12442:
12407}],
12406:[[
12405,
12441]],
12407:[[
12405,
12442]],
12408:[,,{
12441:
12409,
12442:
12410}],
12409:[[
12408,
12441]],
12410:[[
12408,
12442]],
12411:[,,{
12441:
12412,
12442:
12413}],
12412:[[
12411,
12441]],
12413:[[
12411,
12442]],
12436:[[
12358,
12441]],
12441:[,
8],
12442:[,
8],
12443:[[
32,
12441],
256],
12444:[[
32,
12442],
256],
12445:[,,{
12441:
12446}],
12446:[[
12445,
12441]],
12447:[[
12424,
12426],
256],
12454:[,,{
12441:
12532}],
12459:[,,{
12441:
12460}],
12460:[[
12459,
12441]],
12461:[,,{
12441:
12462}],
12462:[[
12461,
12441]],
12463:[,,{
12441:
12464}],
12464:[[
12463,
12441]],
12465:[,,{
12441:
12466}],
12466:[[
12465,
12441]],
12467:[,,{
12441:
12468}],
12468:[[
12467,
12441]],
12469:[,,{
12441:
12470}],
12470:[[
12469,
12441]],
12471:[,,{
12441:
12472}],
12472:[[
12471,
12441]],
12473:[,,{
12441:
12474}],
12474:[[
12473,
12441]],
12475:[,,{
12441:
12476}],
12476:[[
12475,
12441]],
12477:[,,{
12441:
12478}],
12478:[[
12477,
12441]],
12479:[,,{
12441:
12480}],
12480:[[
12479,
12441]],
12481:[,,{
12441:
12482}],
12482:[[
12481,
12441]],
12484:[,,{
12441:
12485}],
12485:[[
12484,
12441]],
12486:[,,{
12441:
12487}],
12487:[[
12486,
12441]],
12488:[,,{
12441:
12489}],
12489:[[
12488,
12441]],
12495:[,,{
12441:
12496,
12442:
12497}],
12496:[[
12495,
12441]],
12497:[[
12495,
12442]],
12498:[,,{
12441:
12499,
12442:
12500}],
12499:[[
12498,
12441]],
12500:[[
12498,
12442]],
12501:[,,{
12441:
12502,
12442:
12503}],
12502:[[
12501,
12441]],
12503:[[
12501,
12442]],
12504:[,,{
12441:
12505,
12442:
12506}],
12505:[[
12504,
12441]],
12506:[[
12504,
12442]],
12507:[,,{
12441:
12508,
12442:
12509}],
12508:[[
12507,
12441]],
12509:[[
12507,
12442]],
12527:[,,{
12441:
12535}],
12528:[,,{
12441:
12536}],
12529:[,,{
12441:
12537}],
12530:[,,{
12441:
12538}],
12532:[[
12454,
12441]],
12535:[[
12527,
12441]],
12536:[[
12528,
12441]],
12537:[[
12529,
12441]],
12538:[[
12530,
12441]],
12541:[,,{
12441:
12542}],
12542:[[
12541,
12441]],
12543:[[
12467,
12488],
256]},
6979 12544:{
12593:[[
4352],
256],
12594:[[
4353],
256],
12595:[[
4522],
256],
12596:[[
4354],
256],
12597:[[
4524],
256],
12598:[[
4525],
256],
12599:[[
4355],
256],
12600:[[
4356],
256],
12601:[[
4357],
256],
12602:[[
4528],
256],
12603:[[
4529],
256],
12604:[[
4530],
256],
12605:[[
4531],
256],
12606:[[
4532],
256],
12607:[[
4533],
256],
12608:[[
4378],
256],
12609:[[
4358],
256],
12610:[[
4359],
256],
12611:[[
4360],
256],
12612:[[
4385],
256],
12613:[[
4361],
256],
12614:[[
4362],
256],
12615:[[
4363],
256],
12616:[[
4364],
256],
12617:[[
4365],
256],
12618:[[
4366],
256],
12619:[[
4367],
256],
12620:[[
4368],
256],
12621:[[
4369],
256],
12622:[[
4370],
256],
12623:[[
4449],
256],
12624:[[
4450],
256],
12625:[[
4451],
256],
12626:[[
4452],
256],
12627:[[
4453],
256],
12628:[[
4454],
256],
12629:[[
4455],
256],
12630:[[
4456],
256],
12631:[[
4457],
256],
12632:[[
4458],
256],
12633:[[
4459],
256],
12634:[[
4460],
256],
12635:[[
4461],
256],
12636:[[
4462],
256],
12637:[[
4463],
256],
12638:[[
4464],
256],
12639:[[
4465],
256],
12640:[[
4466],
256],
12641:[[
4467],
256],
12642:[[
4468],
256],
12643:[[
4469],
256],
12644:[[
4448],
256],
12645:[[
4372],
256],
12646:[[
4373],
256],
12647:[[
4551],
256],
12648:[[
4552],
256],
12649:[[
4556],
256],
12650:[[
4558],
256],
12651:[[
4563],
256],
12652:[[
4567],
256],
12653:[[
4569],
256],
12654:[[
4380],
256],
12655:[[
4573],
256],
12656:[[
4575],
256],
12657:[[
4381],
256],
12658:[[
4382],
256],
12659:[[
4384],
256],
12660:[[
4386],
256],
12661:[[
4387],
256],
12662:[[
4391],
256],
12663:[[
4393],
256],
12664:[[
4395],
256],
12665:[[
4396],
256],
12666:[[
4397],
256],
12667:[[
4398],
256],
12668:[[
4399],
256],
12669:[[
4402],
256],
12670:[[
4406],
256],
12671:[[
4416],
256],
12672:[[
4423],
256],
12673:[[
4428],
256],
12674:[[
4593],
256],
12675:[[
4594],
256],
12676:[[
4439],
256],
12677:[[
4440],
256],
12678:[[
4441],
256],
12679:[[
4484],
256],
12680:[[
4485],
256],
12681:[[
4488],
256],
12682:[[
4497],
256],
12683:[[
4498],
256],
12684:[[
4500],
256],
12685:[[
4510],
256],
12686:[[
4513],
256],
12690:[[
19968],
256],
12691:[[
20108],
256],
12692:[[
19977],
256],
12693:[[
22235],
256],
12694:[[
19978],
256],
12695:[[
20013],
256],
12696:[[
19979],
256],
12697:[[
30002],
256],
12698:[[
20057],
256],
12699:[[
19993],
256],
12700:[[
19969],
256],
12701:[[
22825],
256],
12702:[[
22320],
256],
12703:[[
20154],
256]},
6980 12800:{
12800:[[
40,
4352,
41],
256],
12801:[[
40,
4354,
41],
256],
12802:[[
40,
4355,
41],
256],
12803:[[
40,
4357,
41],
256],
12804:[[
40,
4358,
41],
256],
12805:[[
40,
4359,
41],
256],
12806:[[
40,
4361,
41],
256],
12807:[[
40,
4363,
41],
256],
12808:[[
40,
4364,
41],
256],
12809:[[
40,
4366,
41],
256],
12810:[[
40,
4367,
41],
256],
12811:[[
40,
4368,
41],
256],
12812:[[
40,
4369,
41],
256],
12813:[[
40,
4370,
41],
256],
12814:[[
40,
4352,
4449,
41],
256],
12815:[[
40,
4354,
4449,
41],
256],
12816:[[
40,
4355,
4449,
41],
256],
12817:[[
40,
4357,
4449,
41],
256],
12818:[[
40,
4358,
4449,
41],
256],
12819:[[
40,
4359,
4449,
41],
256],
12820:[[
40,
4361,
4449,
41],
256],
12821:[[
40,
4363,
4449,
41],
256],
12822:[[
40,
4364,
4449,
41],
256],
12823:[[
40,
4366,
4449,
41],
256],
12824:[[
40,
4367,
4449,
41],
256],
12825:[[
40,
4368,
4449,
41],
256],
12826:[[
40,
4369,
4449,
41],
256],
12827:[[
40,
4370,
4449,
41],
256],
12828:[[
40,
4364,
4462,
41],
256],
12829:[[
40,
4363,
4457,
4364,
4453,
4523,
41],
256],
12830:[[
40,
4363,
4457,
4370,
4462,
41],
256],
12832:[[
40,
19968,
41],
256],
12833:[[
40,
20108,
41],
256],
12834:[[
40,
19977,
41],
256],
12835:[[
40,
22235,
41],
256],
12836:[[
40,
20116,
41],
256],
12837:[[
40,
20845,
41],
256],
12838:[[
40,
19971,
41],
256],
12839:[[
40,
20843,
41],
256],
12840:[[
40,
20061,
41],
256],
12841:[[
40,
21313,
41],
256],
12842:[[
40,
26376,
41],
256],
12843:[[
40,
28779,
41],
256],
12844:[[
40,
27700,
41],
256],
12845:[[
40,
26408,
41],
256],
12846:[[
40,
37329,
41],
256],
12847:[[
40,
22303,
41],
256],
12848:[[
40,
26085,
41],
256],
12849:[[
40,
26666,
41],
256],
12850:[[
40,
26377,
41],
256],
12851:[[
40,
31038,
41],
256],
12852:[[
40,
21517,
41],
256],
12853:[[
40,
29305,
41],
256],
12854:[[
40,
36001,
41],
256],
12855:[[
40,
31069,
41],
256],
12856:[[
40,
21172,
41],
256],
12857:[[
40,
20195,
41],
256],
12858:[[
40,
21628,
41],
256],
12859:[[
40,
23398,
41],
256],
12860:[[
40,
30435,
41],
256],
12861:[[
40,
20225,
41],
256],
12862:[[
40,
36039,
41],
256],
12863:[[
40,
21332,
41],
256],
12864:[[
40,
31085,
41],
256],
12865:[[
40,
20241,
41],
256],
12866:[[
40,
33258,
41],
256],
12867:[[
40,
33267,
41],
256],
12868:[[
21839],
256],
12869:[[
24188],
256],
12870:[[
25991],
256],
12871:[[
31631],
256],
12880:[[
80,
84,
69],
256],
12881:[[
50,
49],
256],
12882:[[
50,
50],
256],
12883:[[
50,
51],
256],
12884:[[
50,
52],
256],
12885:[[
50,
53],
256],
12886:[[
50,
54],
256],
12887:[[
50,
55],
256],
12888:[[
50,
56],
256],
12889:[[
50,
57],
256],
12890:[[
51,
48],
256],
12891:[[
51,
49],
256],
12892:[[
51,
50],
256],
12893:[[
51,
51],
256],
12894:[[
51,
52],
256],
12895:[[
51,
53],
256],
12896:[[
4352],
256],
12897:[[
4354],
256],
12898:[[
4355],
256],
12899:[[
4357],
256],
12900:[[
4358],
256],
12901:[[
4359],
256],
12902:[[
4361],
256],
12903:[[
4363],
256],
12904:[[
4364],
256],
12905:[[
4366],
256],
12906:[[
4367],
256],
12907:[[
4368],
256],
12908:[[
4369],
256],
12909:[[
4370],
256],
12910:[[
4352,
4449],
256],
12911:[[
4354,
4449],
256],
12912:[[
4355,
4449],
256],
12913:[[
4357,
4449],
256],
12914:[[
4358,
4449],
256],
12915:[[
4359,
4449],
256],
12916:[[
4361,
4449],
256],
12917:[[
4363,
4449],
256],
12918:[[
4364,
4449],
256],
12919:[[
4366,
4449],
256],
12920:[[
4367,
4449],
256],
12921:[[
4368,
4449],
256],
12922:[[
4369,
4449],
256],
12923:[[
4370,
4449],
256],
12924:[[
4366,
4449,
4535,
4352,
4457],
256],
12925:[[
4364,
4462,
4363,
4468],
256],
12926:[[
4363,
4462],
256],
12928:[[
19968],
256],
12929:[[
20108],
256],
12930:[[
19977],
256],
12931:[[
22235],
256],
12932:[[
20116],
256],
12933:[[
20845],
256],
12934:[[
19971],
256],
12935:[[
20843],
256],
12936:[[
20061],
256],
12937:[[
21313],
256],
12938:[[
26376],
256],
12939:[[
28779],
256],
12940:[[
27700],
256],
12941:[[
26408],
256],
12942:[[
37329],
256],
12943:[[
22303],
256],
12944:[[
26085],
256],
12945:[[
26666],
256],
12946:[[
26377],
256],
12947:[[
31038],
256],
12948:[[
21517],
256],
12949:[[
29305],
256],
12950:[[
36001],
256],
12951:[[
31069],
256],
12952:[[
21172],
256],
12953:[[
31192],
256],
12954:[[
30007],
256],
12955:[[
22899],
256],
12956:[[
36969],
256],
12957:[[
20778],
256],
12958:[[
21360],
256],
12959:[[
27880],
256],
12960:[[
38917],
256],
12961:[[
20241],
256],
12962:[[
20889],
256],
12963:[[
27491],
256],
12964:[[
19978],
256],
12965:[[
20013],
256],
12966:[[
19979],
256],
12967:[[
24038],
256],
12968:[[
21491],
256],
12969:[[
21307],
256],
12970:[[
23447],
256],
12971:[[
23398],
256],
12972:[[
30435],
256],
12973:[[
20225],
256],
12974:[[
36039],
256],
12975:[[
21332],
256],
12976:[[
22812],
256],
12977:[[
51,
54],
256],
12978:[[
51,
55],
256],
12979:[[
51,
56],
256],
12980:[[
51,
57],
256],
12981:[[
52,
48],
256],
12982:[[
52,
49],
256],
12983:[[
52,
50],
256],
12984:[[
52,
51],
256],
12985:[[
52,
52],
256],
12986:[[
52,
53],
256],
12987:[[
52,
54],
256],
12988:[[
52,
55],
256],
12989:[[
52,
56],
256],
12990:[[
52,
57],
256],
12991:[[
53,
48],
256],
12992:[[
49,
26376],
256],
12993:[[
50,
26376],
256],
12994:[[
51,
26376],
256],
12995:[[
52,
26376],
256],
12996:[[
53,
26376],
256],
12997:[[
54,
26376],
256],
12998:[[
55,
26376],
256],
12999:[[
56,
26376],
256],
13000:[[
57,
26376],
256],
13001:[[
49,
48,
26376],
256],
13002:[[
49,
49,
26376],
256],
13003:[[
49,
50,
26376],
256],
13004:[[
72,
103],
256],
13005:[[
101,
114,
103],
256],
13006:[[
101,
86],
256],
13007:[[
76,
84,
68],
256],
13008:[[
12450],
256],
13009:[[
12452],
256],
13010:[[
12454],
256],
13011:[[
12456],
256],
13012:[[
12458],
256],
13013:[[
12459],
256],
13014:[[
12461],
256],
13015:[[
12463],
256],
13016:[[
12465],
256],
13017:[[
12467],
256],
13018:[[
12469],
256],
13019:[[
12471],
256],
13020:[[
12473],
256],
13021:[[
12475],
256],
13022:[[
12477],
256],
13023:[[
12479],
256],
13024:[[
12481],
256],
13025:[[
12484],
256],
13026:[[
12486],
256],
13027:[[
12488],
256],
13028:[[
12490],
256],
13029:[[
12491],
256],
13030:[[
12492],
256],
13031:[[
12493],
256],
13032:[[
12494],
256],
13033:[[
12495],
256],
13034:[[
12498],
256],
13035:[[
12501],
256],
13036:[[
12504],
256],
13037:[[
12507],
256],
13038:[[
12510],
256],
13039:[[
12511],
256],
13040:[[
12512],
256],
13041:[[
12513],
256],
13042:[[
12514],
256],
13043:[[
12516],
256],
13044:[[
12518],
256],
13045:[[
12520],
256],
13046:[[
12521],
256],
13047:[[
12522],
256],
13048:[[
12523],
256],
13049:[[
12524],
256],
13050:[[
12525],
256],
13051:[[
12527],
256],
13052:[[
12528],
256],
13053:[[
12529],
256],
13054:[[
12530],
256]},
6981 13056:{
13056:[[
12450,
12497,
12540,
12488],
256],
13057:[[
12450,
12523,
12501,
12449],
256],
13058:[[
12450,
12531,
12506,
12450],
256],
13059:[[
12450,
12540,
12523],
256],
13060:[[
12452,
12491,
12531,
12464],
256],
13061:[[
12452,
12531,
12481],
256],
13062:[[
12454,
12457,
12531],
256],
13063:[[
12456,
12473,
12463,
12540,
12489],
256],
13064:[[
12456,
12540,
12459,
12540],
256],
13065:[[
12458,
12531,
12473],
256],
13066:[[
12458,
12540,
12512],
256],
13067:[[
12459,
12452,
12522],
256],
13068:[[
12459,
12521,
12483,
12488],
256],
13069:[[
12459,
12525,
12522,
12540],
256],
13070:[[
12460,
12525,
12531],
256],
13071:[[
12460,
12531,
12510],
256],
13072:[[
12462,
12460],
256],
13073:[[
12462,
12491,
12540],
256],
13074:[[
12461,
12517,
12522,
12540],
256],
13075:[[
12462,
12523,
12480,
12540],
256],
13076:[[
12461,
12525],
256],
13077:[[
12461,
12525,
12464,
12521,
12512],
256],
13078:[[
12461,
12525,
12513,
12540,
12488,
12523],
256],
13079:[[
12461,
12525,
12527,
12483,
12488],
256],
13080:[[
12464,
12521,
12512],
256],
13081:[[
12464,
12521,
12512,
12488,
12531],
256],
13082:[[
12463,
12523,
12476,
12452,
12525],
256],
13083:[[
12463,
12525,
12540,
12493],
256],
13084:[[
12465,
12540,
12473],
256],
13085:[[
12467,
12523,
12490],
256],
13086:[[
12467,
12540,
12509],
256],
13087:[[
12469,
12452,
12463,
12523],
256],
13088:[[
12469,
12531,
12481,
12540,
12512],
256],
13089:[[
12471,
12522,
12531,
12464],
256],
13090:[[
12475,
12531,
12481],
256],
13091:[[
12475,
12531,
12488],
256],
13092:[[
12480,
12540,
12473],
256],
13093:[[
12487,
12471],
256],
13094:[[
12489,
12523],
256],
13095:[[
12488,
12531],
256],
13096:[[
12490,
12494],
256],
13097:[[
12494,
12483,
12488],
256],
13098:[[
12495,
12452,
12484],
256],
13099:[[
12497,
12540,
12475,
12531,
12488],
256],
13100:[[
12497,
12540,
12484],
256],
13101:[[
12496,
12540,
12524,
12523],
256],
13102:[[
12500,
12450,
12473,
12488,
12523],
256],
13103:[[
12500,
12463,
12523],
256],
13104:[[
12500,
12467],
256],
13105:[[
12499,
12523],
256],
13106:[[
12501,
12449,
12521,
12483,
12489],
256],
13107:[[
12501,
12451,
12540,
12488],
256],
13108:[[
12502,
12483,
12471,
12455,
12523],
256],
13109:[[
12501,
12521,
12531],
256],
13110:[[
12504,
12463,
12479,
12540,
12523],
256],
13111:[[
12506,
12477],
256],
13112:[[
12506,
12491,
12498],
256],
13113:[[
12504,
12523,
12484],
256],
13114:[[
12506,
12531,
12473],
256],
13115:[[
12506,
12540,
12472],
256],
13116:[[
12505,
12540,
12479],
256],
13117:[[
12509,
12452,
12531,
12488],
256],
13118:[[
12508,
12523,
12488],
256],
13119:[[
12507,
12531],
256],
13120:[[
12509,
12531,
12489],
256],
13121:[[
12507,
12540,
12523],
256],
13122:[[
12507,
12540,
12531],
256],
13123:[[
12510,
12452,
12463,
12525],
256],
13124:[[
12510,
12452,
12523],
256],
13125:[[
12510,
12483,
12495],
256],
13126:[[
12510,
12523,
12463],
256],
13127:[[
12510,
12531,
12471,
12519,
12531],
256],
13128:[[
12511,
12463,
12525,
12531],
256],
13129:[[
12511,
12522],
256],
13130:[[
12511,
12522,
12496,
12540,
12523],
256],
13131:[[
12513,
12460],
256],
13132:[[
12513,
12460,
12488,
12531],
256],
13133:[[
12513,
12540,
12488,
12523],
256],
13134:[[
12516,
12540,
12489],
256],
13135:[[
12516,
12540,
12523],
256],
13136:[[
12518,
12450,
12531],
256],
13137:[[
12522,
12483,
12488,
12523],
256],
13138:[[
12522,
12521],
256],
13139:[[
12523,
12500,
12540],
256],
13140:[[
12523,
12540,
12502,
12523],
256],
13141:[[
12524,
12512],
256],
13142:[[
12524,
12531,
12488,
12466,
12531],
256],
13143:[[
12527,
12483,
12488],
256],
13144:[[
48,
28857],
256],
13145:[[
49,
28857],
256],
13146:[[
50,
28857],
256],
13147:[[
51,
28857],
256],
13148:[[
52,
28857],
256],
13149:[[
53,
28857],
256],
13150:[[
54,
28857],
256],
13151:[[
55,
28857],
256],
13152:[[
56,
28857],
256],
13153:[[
57,
28857],
256],
13154:[[
49,
48,
28857],
256],
13155:[[
49,
49,
28857],
256],
13156:[[
49,
50,
28857],
256],
13157:[[
49,
51,
28857],
256],
13158:[[
49,
52,
28857],
256],
13159:[[
49,
53,
28857],
256],
13160:[[
49,
54,
28857],
256],
13161:[[
49,
55,
28857],
256],
13162:[[
49,
56,
28857],
256],
13163:[[
49,
57,
28857],
256],
13164:[[
50,
48,
28857],
256],
13165:[[
50,
49,
28857],
256],
13166:[[
50,
50,
28857],
256],
13167:[[
50,
51,
28857],
256],
13168:[[
50,
52,
28857],
256],
13169:[[
104,
80,
97],
256],
13170:[[
100,
97],
256],
13171:[[
65,
85],
256],
13172:[[
98,
97,
114],
256],
13173:[[
111,
86],
256],
13174:[[
112,
99],
256],
13175:[[
100,
109],
256],
13176:[[
100,
109,
178],
256],
13177:[[
100,
109,
179],
256],
13178:[[
73,
85],
256],
13179:[[
24179,
25104],
256],
13180:[[
26157,
21644],
256],
13181:[[
22823,
27491],
256],
13182:[[
26126,
27835],
256],
13183:[[
26666,
24335,
20250,
31038],
256],
13184:[[
112,
65],
256],
13185:[[
110,
65],
256],
13186:[[
956,
65],
256],
13187:[[
109,
65],
256],
13188:[[
107,
65],
256],
13189:[[
75,
66],
256],
13190:[[
77,
66],
256],
13191:[[
71,
66],
256],
13192:[[
99,
97,
108],
256],
13193:[[
107,
99,
97,
108],
256],
13194:[[
112,
70],
256],
13195:[[
110,
70],
256],
13196:[[
956,
70],
256],
13197:[[
956,
103],
256],
13198:[[
109,
103],
256],
13199:[[
107,
103],
256],
13200:[[
72,
122],
256],
13201:[[
107,
72,
122],
256],
13202:[[
77,
72,
122],
256],
13203:[[
71,
72,
122],
256],
13204:[[
84,
72,
122],
256],
13205:[[
956,
8467],
256],
13206:[[
109,
8467],
256],
13207:[[
100,
8467],
256],
13208:[[
107,
8467],
256],
13209:[[
102,
109],
256],
13210:[[
110,
109],
256],
13211:[[
956,
109],
256],
13212:[[
109,
109],
256],
13213:[[
99,
109],
256],
13214:[[
107,
109],
256],
13215:[[
109,
109,
178],
256],
13216:[[
99,
109,
178],
256],
13217:[[
109,
178],
256],
13218:[[
107,
109,
178],
256],
13219:[[
109,
109,
179],
256],
13220:[[
99,
109,
179],
256],
13221:[[
109,
179],
256],
13222:[[
107,
109,
179],
256],
13223:[[
109,
8725,
115],
256],
13224:[[
109,
8725,
115,
178],
256],
13225:[[
80,
97],
256],
13226:[[
107,
80,
97],
256],
13227:[[
77,
80,
97],
256],
13228:[[
71,
80,
97],
256],
13229:[[
114,
97,
100],
256],
13230:[[
114,
97,
100,
8725,
115],
256],
13231:[[
114,
97,
100,
8725,
115,
178],
256],
13232:[[
112,
115],
256],
13233:[[
110,
115],
256],
13234:[[
956,
115],
256],
13235:[[
109,
115],
256],
13236:[[
112,
86],
256],
13237:[[
110,
86],
256],
13238:[[
956,
86],
256],
13239:[[
109,
86],
256],
13240:[[
107,
86],
256],
13241:[[
77,
86],
256],
13242:[[
112,
87],
256],
13243:[[
110,
87],
256],
13244:[[
956,
87],
256],
13245:[[
109,
87],
256],
13246:[[
107,
87],
256],
13247:[[
77,
87],
256],
13248:[[
107,
937],
256],
13249:[[
77,
937],
256],
13250:[[
97,
46,
109,
46],
256],
13251:[[
66,
113],
256],
13252:[[
99,
99],
256],
13253:[[
99,
100],
256],
13254:[[
67,
8725,
107,
103],
256],
13255:[[
67,
111,
46],
256],
13256:[[
100,
66],
256],
13257:[[
71,
121],
256],
13258:[[
104,
97],
256],
13259:[[
72,
80],
256],
13260:[[
105,
110],
256],
13261:[[
75,
75],
256],
13262:[[
75,
77],
256],
13263:[[
107,
116],
256],
13264:[[
108,
109],
256],
13265:[[
108,
110],
256],
13266:[[
108,
111,
103],
256],
13267:[[
108,
120],
256],
13268:[[
109,
98],
256],
13269:[[
109,
105,
108],
256],
13270:[[
109,
111,
108],
256],
13271:[[
80,
72],
256],
13272:[[
112,
46,
109,
46],
256],
13273:[[
80,
80,
77],
256],
13274:[[
80,
82],
256],
13275:[[
115,
114],
256],
13276:[[
83,
118],
256],
13277:[[
87,
98],
256],
13278:[[
86,
8725,
109],
256],
13279:[[
65,
8725,
109],
256],
13280:[[
49,
26085],
256],
13281:[[
50,
26085],
256],
13282:[[
51,
26085],
256],
13283:[[
52,
26085],
256],
13284:[[
53,
26085],
256],
13285:[[
54,
26085],
256],
13286:[[
55,
26085],
256],
13287:[[
56,
26085],
256],
13288:[[
57,
26085],
256],
13289:[[
49,
48,
26085],
256],
13290:[[
49,
49,
26085],
256],
13291:[[
49,
50,
26085],
256],
13292:[[
49,
51,
26085],
256],
13293:[[
49,
52,
26085],
256],
13294:[[
49,
53,
26085],
256],
13295:[[
49,
54,
26085],
256],
13296:[[
49,
55,
26085],
256],
13297:[[
49,
56,
26085],
256],
13298:[[
49,
57,
26085],
256],
13299:[[
50,
48,
26085],
256],
13300:[[
50,
49,
26085],
256],
13301:[[
50,
50,
26085],
256],
13302:[[
50,
51,
26085],
256],
13303:[[
50,
52,
26085],
256],
13304:[[
50,
53,
26085],
256],
13305:[[
50,
54,
26085],
256],
13306:[[
50,
55,
26085],
256],
13307:[[
50,
56,
26085],
256],
13308:[[
50,
57,
26085],
256],
13309:[[
51,
48,
26085],
256],
13310:[[
51,
49,
26085],
256],
13311:[[
103,
97,
108],
256]},
6982 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6983 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6984 42496:{
42607:[,
230],
42612:[,
230],
42613:[,
230],
42614:[,
230],
42615:[,
230],
42616:[,
230],
42617:[,
230],
42618:[,
230],
42619:[,
230],
42620:[,
230],
42621:[,
230],
42652:[[
1098],
256],
42653:[[
1100],
256],
42655:[,
230],
42736:[,
230],
42737:[,
230]},
6985 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6986 43008:{
43014:[,
9],
43204:[,
9],
43232:[,
230],
43233:[,
230],
43234:[,
230],
43235:[,
230],
43236:[,
230],
43237:[,
230],
43238:[,
230],
43239:[,
230],
43240:[,
230],
43241:[,
230],
43242:[,
230],
43243:[,
230],
43244:[,
230],
43245:[,
230],
43246:[,
230],
43247:[,
230],
43248:[,
230],
43249:[,
230]},
6987 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6988 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6989 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6990 48128:{
113822:[,
1]},
6991 53504:{
119134:[[
119127,
119141],
512],
119135:[[
119128,
119141],
512],
119136:[[
119135,
119150],
512],
119137:[[
119135,
119151],
512],
119138:[[
119135,
119152],
512],
119139:[[
119135,
119153],
512],
119140:[[
119135,
119154],
512],
119141:[,
216],
119142:[,
216],
119143:[,
1],
119144:[,
1],
119145:[,
1],
119149:[,
226],
119150:[,
216],
119151:[,
216],
119152:[,
216],
119153:[,
216],
119154:[,
216],
119163:[,
220],
119164:[,
220],
119165:[,
220],
119166:[,
220],
119167:[,
220],
119168:[,
220],
119169:[,
220],
119170:[,
220],
119173:[,
230],
119174:[,
230],
119175:[,
230],
119176:[,
230],
119177:[,
230],
119178:[,
220],
119179:[,
220],
119210:[,
230],
119211:[,
230],
119212:[,
230],
119213:[,
230],
119227:[[
119225,
119141],
512],
119228:[[
119226,
119141],
512],
119229:[[
119227,
119150],
512],
119230:[[
119228,
119150],
512],
119231:[[
119227,
119151],
512],
119232:[[
119228,
119151],
512]},
6992 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6993 54272:{
119808:[[
65],
256],
119809:[[
66],
256],
119810:[[
67],
256],
119811:[[
68],
256],
119812:[[
69],
256],
119813:[[
70],
256],
119814:[[
71],
256],
119815:[[
72],
256],
119816:[[
73],
256],
119817:[[
74],
256],
119818:[[
75],
256],
119819:[[
76],
256],
119820:[[
77],
256],
119821:[[
78],
256],
119822:[[
79],
256],
119823:[[
80],
256],
119824:[[
81],
256],
119825:[[
82],
256],
119826:[[
83],
256],
119827:[[
84],
256],
119828:[[
85],
256],
119829:[[
86],
256],
119830:[[
87],
256],
119831:[[
88],
256],
119832:[[
89],
256],
119833:[[
90],
256],
119834:[[
97],
256],
119835:[[
98],
256],
119836:[[
99],
256],
119837:[[
100],
256],
119838:[[
101],
256],
119839:[[
102],
256],
119840:[[
103],
256],
119841:[[
104],
256],
119842:[[
105],
256],
119843:[[
106],
256],
119844:[[
107],
256],
119845:[[
108],
256],
119846:[[
109],
256],
119847:[[
110],
256],
119848:[[
111],
256],
119849:[[
112],
256],
119850:[[
113],
256],
119851:[[
114],
256],
119852:[[
115],
256],
119853:[[
116],
256],
119854:[[
117],
256],
119855:[[
118],
256],
119856:[[
119],
256],
119857:[[
120],
256],
119858:[[
121],
256],
119859:[[
122],
256],
119860:[[
65],
256],
119861:[[
66],
256],
119862:[[
67],
256],
119863:[[
68],
256],
119864:[[
69],
256],
119865:[[
70],
256],
119866:[[
71],
256],
119867:[[
72],
256],
119868:[[
73],
256],
119869:[[
74],
256],
119870:[[
75],
256],
119871:[[
76],
256],
119872:[[
77],
256],
119873:[[
78],
256],
119874:[[
79],
256],
119875:[[
80],
256],
119876:[[
81],
256],
119877:[[
82],
256],
119878:[[
83],
256],
119879:[[
84],
256],
119880:[[
85],
256],
119881:[[
86],
256],
119882:[[
87],
256],
119883:[[
88],
256],
119884:[[
89],
256],
119885:[[
90],
256],
119886:[[
97],
256],
119887:[[
98],
256],
119888:[[
99],
256],
119889:[[
100],
256],
119890:[[
101],
256],
119891:[[
102],
256],
119892:[[
103],
256],
119894:[[
105],
256],
119895:[[
106],
256],
119896:[[
107],
256],
119897:[[
108],
256],
119898:[[
109],
256],
119899:[[
110],
256],
119900:[[
111],
256],
119901:[[
112],
256],
119902:[[
113],
256],
119903:[[
114],
256],
119904:[[
115],
256],
119905:[[
116],
256],
119906:[[
117],
256],
119907:[[
118],
256],
119908:[[
119],
256],
119909:[[
120],
256],
119910:[[
121],
256],
119911:[[
122],
256],
119912:[[
65],
256],
119913:[[
66],
256],
119914:[[
67],
256],
119915:[[
68],
256],
119916:[[
69],
256],
119917:[[
70],
256],
119918:[[
71],
256],
119919:[[
72],
256],
119920:[[
73],
256],
119921:[[
74],
256],
119922:[[
75],
256],
119923:[[
76],
256],
119924:[[
77],
256],
119925:[[
78],
256],
119926:[[
79],
256],
119927:[[
80],
256],
119928:[[
81],
256],
119929:[[
82],
256],
119930:[[
83],
256],
119931:[[
84],
256],
119932:[[
85],
256],
119933:[[
86],
256],
119934:[[
87],
256],
119935:[[
88],
256],
119936:[[
89],
256],
119937:[[
90],
256],
119938:[[
97],
256],
119939:[[
98],
256],
119940:[[
99],
256],
119941:[[
100],
256],
119942:[[
101],
256],
119943:[[
102],
256],
119944:[[
103],
256],
119945:[[
104],
256],
119946:[[
105],
256],
119947:[[
106],
256],
119948:[[
107],
256],
119949:[[
108],
256],
119950:[[
109],
256],
119951:[[
110],
256],
119952:[[
111],
256],
119953:[[
112],
256],
119954:[[
113],
256],
119955:[[
114],
256],
119956:[[
115],
256],
119957:[[
116],
256],
119958:[[
117],
256],
119959:[[
118],
256],
119960:[[
119],
256],
119961:[[
120],
256],
119962:[[
121],
256],
119963:[[
122],
256],
119964:[[
65],
256],
119966:[[
67],
256],
119967:[[
68],
256],
119970:[[
71],
256],
119973:[[
74],
256],
119974:[[
75],
256],
119977:[[
78],
256],
119978:[[
79],
256],
119979:[[
80],
256],
119980:[[
81],
256],
119982:[[
83],
256],
119983:[[
84],
256],
119984:[[
85],
256],
119985:[[
86],
256],
119986:[[
87],
256],
119987:[[
88],
256],
119988:[[
89],
256],
119989:[[
90],
256],
119990:[[
97],
256],
119991:[[
98],
256],
119992:[[
99],
256],
119993:[[
100],
256],
119995:[[
102],
256],
119997:[[
104],
256],
119998:[[
105],
256],
119999:[[
106],
256],
120000:[[
107],
256],
120001:[[
108],
256],
120002:[[
109],
256],
120003:[[
110],
256],
120005:[[
112],
256],
120006:[[
113],
256],
120007:[[
114],
256],
120008:[[
115],
256],
120009:[[
116],
256],
120010:[[
117],
256],
120011:[[
118],
256],
120012:[[
119],
256],
120013:[[
120],
256],
120014:[[
121],
256],
120015:[[
122],
256],
120016:[[
65],
256],
120017:[[
66],
256],
120018:[[
67],
256],
120019:[[
68],
256],
120020:[[
69],
256],
120021:[[
70],
256],
120022:[[
71],
256],
120023:[[
72],
256],
120024:[[
73],
256],
120025:[[
74],
256],
120026:[[
75],
256],
120027:[[
76],
256],
120028:[[
77],
256],
120029:[[
78],
256],
120030:[[
79],
256],
120031:[[
80],
256],
120032:[[
81],
256],
120033:[[
82],
256],
120034:[[
83],
256],
120035:[[
84],
256],
120036:[[
85],
256],
120037:[[
86],
256],
120038:[[
87],
256],
120039:[[
88],
256],
120040:[[
89],
256],
120041:[[
90],
256],
120042:[[
97],
256],
120043:[[
98],
256],
120044:[[
99],
256],
120045:[[
100],
256],
120046:[[
101],
256],
120047:[[
102],
256],
120048:[[
103],
256],
120049:[[
104],
256],
120050:[[
105],
256],
120051:[[
106],
256],
120052:[[
107],
256],
120053:[[
108],
256],
120054:[[
109],
256],
120055:[[
110],
256],
120056:[[
111],
256],
120057:[[
112],
256],
120058:[[
113],
256],
120059:[[
114],
256],
120060:[[
115],
256],
120061:[[
116],
256],
120062:[[
117],
256],
120063:[[
118],
256]},
6994 54528:{
120064:[[
119],
256],
120065:[[
120],
256],
120066:[[
121],
256],
120067:[[
122],
256],
120068:[[
65],
256],
120069:[[
66],
256],
120071:[[
68],
256],
120072:[[
69],
256],
120073:[[
70],
256],
120074:[[
71],
256],
120077:[[
74],
256],
120078:[[
75],
256],
120079:[[
76],
256],
120080:[[
77],
256],
120081:[[
78],
256],
120082:[[
79],
256],
120083:[[
80],
256],
120084:[[
81],
256],
120086:[[
83],
256],
120087:[[
84],
256],
120088:[[
85],
256],
120089:[[
86],
256],
120090:[[
87],
256],
120091:[[
88],
256],
120092:[[
89],
256],
120094:[[
97],
256],
120095:[[
98],
256],
120096:[[
99],
256],
120097:[[
100],
256],
120098:[[
101],
256],
120099:[[
102],
256],
120100:[[
103],
256],
120101:[[
104],
256],
120102:[[
105],
256],
120103:[[
106],
256],
120104:[[
107],
256],
120105:[[
108],
256],
120106:[[
109],
256],
120107:[[
110],
256],
120108:[[
111],
256],
120109:[[
112],
256],
120110:[[
113],
256],
120111:[[
114],
256],
120112:[[
115],
256],
120113:[[
116],
256],
120114:[[
117],
256],
120115:[[
118],
256],
120116:[[
119],
256],
120117:[[
120],
256],
120118:[[
121],
256],
120119:[[
122],
256],
120120:[[
65],
256],
120121:[[
66],
256],
120123:[[
68],
256],
120124:[[
69],
256],
120125:[[
70],
256],
120126:[[
71],
256],
120128:[[
73],
256],
120129:[[
74],
256],
120130:[[
75],
256],
120131:[[
76],
256],
120132:[[
77],
256],
120134:[[
79],
256],
120138:[[
83],
256],
120139:[[
84],
256],
120140:[[
85],
256],
120141:[[
86],
256],
120142:[[
87],
256],
120143:[[
88],
256],
120144:[[
89],
256],
120146:[[
97],
256],
120147:[[
98],
256],
120148:[[
99],
256],
120149:[[
100],
256],
120150:[[
101],
256],
120151:[[
102],
256],
120152:[[
103],
256],
120153:[[
104],
256],
120154:[[
105],
256],
120155:[[
106],
256],
120156:[[
107],
256],
120157:[[
108],
256],
120158:[[
109],
256],
120159:[[
110],
256],
120160:[[
111],
256],
120161:[[
112],
256],
120162:[[
113],
256],
120163:[[
114],
256],
120164:[[
115],
256],
120165:[[
116],
256],
120166:[[
117],
256],
120167:[[
118],
256],
120168:[[
119],
256],
120169:[[
120],
256],
120170:[[
121],
256],
120171:[[
122],
256],
120172:[[
65],
256],
120173:[[
66],
256],
120174:[[
67],
256],
120175:[[
68],
256],
120176:[[
69],
256],
120177:[[
70],
256],
120178:[[
71],
256],
120179:[[
72],
256],
120180:[[
73],
256],
120181:[[
74],
256],
120182:[[
75],
256],
120183:[[
76],
256],
120184:[[
77],
256],
120185:[[
78],
256],
120186:[[
79],
256],
120187:[[
80],
256],
120188:[[
81],
256],
120189:[[
82],
256],
120190:[[
83],
256],
120191:[[
84],
256],
120192:[[
85],
256],
120193:[[
86],
256],
120194:[[
87],
256],
120195:[[
88],
256],
120196:[[
89],
256],
120197:[[
90],
256],
120198:[[
97],
256],
120199:[[
98],
256],
120200:[[
99],
256],
120201:[[
100],
256],
120202:[[
101],
256],
120203:[[
102],
256],
120204:[[
103],
256],
120205:[[
104],
256],
120206:[[
105],
256],
120207:[[
106],
256],
120208:[[
107],
256],
120209:[[
108],
256],
120210:[[
109],
256],
120211:[[
110],
256],
120212:[[
111],
256],
120213:[[
112],
256],
120214:[[
113],
256],
120215:[[
114],
256],
120216:[[
115],
256],
120217:[[
116],
256],
120218:[[
117],
256],
120219:[[
118],
256],
120220:[[
119],
256],
120221:[[
120],
256],
120222:[[
121],
256],
120223:[[
122],
256],
120224:[[
65],
256],
120225:[[
66],
256],
120226:[[
67],
256],
120227:[[
68],
256],
120228:[[
69],
256],
120229:[[
70],
256],
120230:[[
71],
256],
120231:[[
72],
256],
120232:[[
73],
256],
120233:[[
74],
256],
120234:[[
75],
256],
120235:[[
76],
256],
120236:[[
77],
256],
120237:[[
78],
256],
120238:[[
79],
256],
120239:[[
80],
256],
120240:[[
81],
256],
120241:[[
82],
256],
120242:[[
83],
256],
120243:[[
84],
256],
120244:[[
85],
256],
120245:[[
86],
256],
120246:[[
87],
256],
120247:[[
88],
256],
120248:[[
89],
256],
120249:[[
90],
256],
120250:[[
97],
256],
120251:[[
98],
256],
120252:[[
99],
256],
120253:[[
100],
256],
120254:[[
101],
256],
120255:[[
102],
256],
120256:[[
103],
256],
120257:[[
104],
256],
120258:[[
105],
256],
120259:[[
106],
256],
120260:[[
107],
256],
120261:[[
108],
256],
120262:[[
109],
256],
120263:[[
110],
256],
120264:[[
111],
256],
120265:[[
112],
256],
120266:[[
113],
256],
120267:[[
114],
256],
120268:[[
115],
256],
120269:[[
116],
256],
120270:[[
117],
256],
120271:[[
118],
256],
120272:[[
119],
256],
120273:[[
120],
256],
120274:[[
121],
256],
120275:[[
122],
256],
120276:[[
65],
256],
120277:[[
66],
256],
120278:[[
67],
256],
120279:[[
68],
256],
120280:[[
69],
256],
120281:[[
70],
256],
120282:[[
71],
256],
120283:[[
72],
256],
120284:[[
73],
256],
120285:[[
74],
256],
120286:[[
75],
256],
120287:[[
76],
256],
120288:[[
77],
256],
120289:[[
78],
256],
120290:[[
79],
256],
120291:[[
80],
256],
120292:[[
81],
256],
120293:[[
82],
256],
120294:[[
83],
256],
120295:[[
84],
256],
120296:[[
85],
256],
120297:[[
86],
256],
120298:[[
87],
256],
120299:[[
88],
256],
120300:[[
89],
256],
120301:[[
90],
256],
120302:[[
97],
256],
120303:[[
98],
256],
120304:[[
99],
256],
120305:[[
100],
256],
120306:[[
101],
256],
120307:[[
102],
256],
120308:[[
103],
256],
120309:[[
104],
256],
120310:[[
105],
256],
120311:[[
106],
256],
120312:[[
107],
256],
120313:[[
108],
256],
120314:[[
109],
256],
120315:[[
110],
256],
120316:[[
111],
256],
120317:[[
112],
256],
120318:[[
113],
256],
120319:[[
114],
256]},
6995 54784:{
120320:[[
115],
256],
120321:[[
116],
256],
120322:[[
117],
256],
120323:[[
118],
256],
120324:[[
119],
256],
120325:[[
120],
256],
120326:[[
121],
256],
120327:[[
122],
256],
120328:[[
65],
256],
120329:[[
66],
256],
120330:[[
67],
256],
120331:[[
68],
256],
120332:[[
69],
256],
120333:[[
70],
256],
120334:[[
71],
256],
120335:[[
72],
256],
120336:[[
73],
256],
120337:[[
74],
256],
120338:[[
75],
256],
120339:[[
76],
256],
120340:[[
77],
256],
120341:[[
78],
256],
120342:[[
79],
256],
120343:[[
80],
256],
120344:[[
81],
256],
120345:[[
82],
256],
120346:[[
83],
256],
120347:[[
84],
256],
120348:[[
85],
256],
120349:[[
86],
256],
120350:[[
87],
256],
120351:[[
88],
256],
120352:[[
89],
256],
120353:[[
90],
256],
120354:[[
97],
256],
120355:[[
98],
256],
120356:[[
99],
256],
120357:[[
100],
256],
120358:[[
101],
256],
120359:[[
102],
256],
120360:[[
103],
256],
120361:[[
104],
256],
120362:[[
105],
256],
120363:[[
106],
256],
120364:[[
107],
256],
120365:[[
108],
256],
120366:[[
109],
256],
120367:[[
110],
256],
120368:[[
111],
256],
120369:[[
112],
256],
120370:[[
113],
256],
120371:[[
114],
256],
120372:[[
115],
256],
120373:[[
116],
256],
120374:[[
117],
256],
120375:[[
118],
256],
120376:[[
119],
256],
120377:[[
120],
256],
120378:[[
121],
256],
120379:[[
122],
256],
120380:[[
65],
256],
120381:[[
66],
256],
120382:[[
67],
256],
120383:[[
68],
256],
120384:[[
69],
256],
120385:[[
70],
256],
120386:[[
71],
256],
120387:[[
72],
256],
120388:[[
73],
256],
120389:[[
74],
256],
120390:[[
75],
256],
120391:[[
76],
256],
120392:[[
77],
256],
120393:[[
78],
256],
120394:[[
79],
256],
120395:[[
80],
256],
120396:[[
81],
256],
120397:[[
82],
256],
120398:[[
83],
256],
120399:[[
84],
256],
120400:[[
85],
256],
120401:[[
86],
256],
120402:[[
87],
256],
120403:[[
88],
256],
120404:[[
89],
256],
120405:[[
90],
256],
120406:[[
97],
256],
120407:[[
98],
256],
120408:[[
99],
256],
120409:[[
100],
256],
120410:[[
101],
256],
120411:[[
102],
256],
120412:[[
103],
256],
120413:[[
104],
256],
120414:[[
105],
256],
120415:[[
106],
256],
120416:[[
107],
256],
120417:[[
108],
256],
120418:[[
109],
256],
120419:[[
110],
256],
120420:[[
111],
256],
120421:[[
112],
256],
120422:[[
113],
256],
120423:[[
114],
256],
120424:[[
115],
256],
120425:[[
116],
256],
120426:[[
117],
256],
120427:[[
118],
256],
120428:[[
119],
256],
120429:[[
120],
256],
120430:[[
121],
256],
120431:[[
122],
256],
120432:[[
65],
256],
120433:[[
66],
256],
120434:[[
67],
256],
120435:[[
68],
256],
120436:[[
69],
256],
120437:[[
70],
256],
120438:[[
71],
256],
120439:[[
72],
256],
120440:[[
73],
256],
120441:[[
74],
256],
120442:[[
75],
256],
120443:[[
76],
256],
120444:[[
77],
256],
120445:[[
78],
256],
120446:[[
79],
256],
120447:[[
80],
256],
120448:[[
81],
256],
120449:[[
82],
256],
120450:[[
83],
256],
120451:[[
84],
256],
120452:[[
85],
256],
120453:[[
86],
256],
120454:[[
87],
256],
120455:[[
88],
256],
120456:[[
89],
256],
120457:[[
90],
256],
120458:[[
97],
256],
120459:[[
98],
256],
120460:[[
99],
256],
120461:[[
100],
256],
120462:[[
101],
256],
120463:[[
102],
256],
120464:[[
103],
256],
120465:[[
104],
256],
120466:[[
105],
256],
120467:[[
106],
256],
120468:[[
107],
256],
120469:[[
108],
256],
120470:[[
109],
256],
120471:[[
110],
256],
120472:[[
111],
256],
120473:[[
112],
256],
120474:[[
113],
256],
120475:[[
114],
256],
120476:[[
115],
256],
120477:[[
116],
256],
120478:[[
117],
256],
120479:[[
118],
256],
120480:[[
119],
256],
120481:[[
120],
256],
120482:[[
121],
256],
120483:[[
122],
256],
120484:[[
305],
256],
120485:[[
567],
256],
120488:[[
913],
256],
120489:[[
914],
256],
120490:[[
915],
256],
120491:[[
916],
256],
120492:[[
917],
256],
120493:[[
918],
256],
120494:[[
919],
256],
120495:[[
920],
256],
120496:[[
921],
256],
120497:[[
922],
256],
120498:[[
923],
256],
120499:[[
924],
256],
120500:[[
925],
256],
120501:[[
926],
256],
120502:[[
927],
256],
120503:[[
928],
256],
120504:[[
929],
256],
120505:[[
1012],
256],
120506:[[
931],
256],
120507:[[
932],
256],
120508:[[
933],
256],
120509:[[
934],
256],
120510:[[
935],
256],
120511:[[
936],
256],
120512:[[
937],
256],
120513:[[
8711],
256],
120514:[[
945],
256],
120515:[[
946],
256],
120516:[[
947],
256],
120517:[[
948],
256],
120518:[[
949],
256],
120519:[[
950],
256],
120520:[[
951],
256],
120521:[[
952],
256],
120522:[[
953],
256],
120523:[[
954],
256],
120524:[[
955],
256],
120525:[[
956],
256],
120526:[[
957],
256],
120527:[[
958],
256],
120528:[[
959],
256],
120529:[[
960],
256],
120530:[[
961],
256],
120531:[[
962],
256],
120532:[[
963],
256],
120533:[[
964],
256],
120534:[[
965],
256],
120535:[[
966],
256],
120536:[[
967],
256],
120537:[[
968],
256],
120538:[[
969],
256],
120539:[[
8706],
256],
120540:[[
1013],
256],
120541:[[
977],
256],
120542:[[
1008],
256],
120543:[[
981],
256],
120544:[[
1009],
256],
120545:[[
982],
256],
120546:[[
913],
256],
120547:[[
914],
256],
120548:[[
915],
256],
120549:[[
916],
256],
120550:[[
917],
256],
120551:[[
918],
256],
120552:[[
919],
256],
120553:[[
920],
256],
120554:[[
921],
256],
120555:[[
922],
256],
120556:[[
923],
256],
120557:[[
924],
256],
120558:[[
925],
256],
120559:[[
926],
256],
120560:[[
927],
256],
120561:[[
928],
256],
120562:[[
929],
256],
120563:[[
1012],
256],
120564:[[
931],
256],
120565:[[
932],
256],
120566:[[
933],
256],
120567:[[
934],
256],
120568:[[
935],
256],
120569:[[
936],
256],
120570:[[
937],
256],
120571:[[
8711],
256],
120572:[[
945],
256],
120573:[[
946],
256],
120574:[[
947],
256],
120575:[[
948],
256]},
6996 55040:{
120576:[[
949],
256],
120577:[[
950],
256],
120578:[[
951],
256],
120579:[[
952],
256],
120580:[[
953],
256],
120581:[[
954],
256],
120582:[[
955],
256],
120583:[[
956],
256],
120584:[[
957],
256],
120585:[[
958],
256],
120586:[[
959],
256],
120587:[[
960],
256],
120588:[[
961],
256],
120589:[[
962],
256],
120590:[[
963],
256],
120591:[[
964],
256],
120592:[[
965],
256],
120593:[[
966],
256],
120594:[[
967],
256],
120595:[[
968],
256],
120596:[[
969],
256],
120597:[[
8706],
256],
120598:[[
1013],
256],
120599:[[
977],
256],
120600:[[
1008],
256],
120601:[[
981],
256],
120602:[[
1009],
256],
120603:[[
982],
256],
120604:[[
913],
256],
120605:[[
914],
256],
120606:[[
915],
256],
120607:[[
916],
256],
120608:[[
917],
256],
120609:[[
918],
256],
120610:[[
919],
256],
120611:[[
920],
256],
120612:[[
921],
256],
120613:[[
922],
256],
120614:[[
923],
256],
120615:[[
924],
256],
120616:[[
925],
256],
120617:[[
926],
256],
120618:[[
927],
256],
120619:[[
928],
256],
120620:[[
929],
256],
120621:[[
1012],
256],
120622:[[
931],
256],
120623:[[
932],
256],
120624:[[
933],
256],
120625:[[
934],
256],
120626:[[
935],
256],
120627:[[
936],
256],
120628:[[
937],
256],
120629:[[
8711],
256],
120630:[[
945],
256],
120631:[[
946],
256],
120632:[[
947],
256],
120633:[[
948],
256],
120634:[[
949],
256],
120635:[[
950],
256],
120636:[[
951],
256],
120637:[[
952],
256],
120638:[[
953],
256],
120639:[[
954],
256],
120640:[[
955],
256],
120641:[[
956],
256],
120642:[[
957],
256],
120643:[[
958],
256],
120644:[[
959],
256],
120645:[[
960],
256],
120646:[[
961],
256],
120647:[[
962],
256],
120648:[[
963],
256],
120649:[[
964],
256],
120650:[[
965],
256],
120651:[[
966],
256],
120652:[[
967],
256],
120653:[[
968],
256],
120654:[[
969],
256],
120655:[[
8706],
256],
120656:[[
1013],
256],
120657:[[
977],
256],
120658:[[
1008],
256],
120659:[[
981],
256],
120660:[[
1009],
256],
120661:[[
982],
256],
120662:[[
913],
256],
120663:[[
914],
256],
120664:[[
915],
256],
120665:[[
916],
256],
120666:[[
917],
256],
120667:[[
918],
256],
120668:[[
919],
256],
120669:[[
920],
256],
120670:[[
921],
256],
120671:[[
922],
256],
120672:[[
923],
256],
120673:[[
924],
256],
120674:[[
925],
256],
120675:[[
926],
256],
120676:[[
927],
256],
120677:[[
928],
256],
120678:[[
929],
256],
120679:[[
1012],
256],
120680:[[
931],
256],
120681:[[
932],
256],
120682:[[
933],
256],
120683:[[
934],
256],
120684:[[
935],
256],
120685:[[
936],
256],
120686:[[
937],
256],
120687:[[
8711],
256],
120688:[[
945],
256],
120689:[[
946],
256],
120690:[[
947],
256],
120691:[[
948],
256],
120692:[[
949],
256],
120693:[[
950],
256],
120694:[[
951],
256],
120695:[[
952],
256],
120696:[[
953],
256],
120697:[[
954],
256],
120698:[[
955],
256],
120699:[[
956],
256],
120700:[[
957],
256],
120701:[[
958],
256],
120702:[[
959],
256],
120703:[[
960],
256],
120704:[[
961],
256],
120705:[[
962],
256],
120706:[[
963],
256],
120707:[[
964],
256],
120708:[[
965],
256],
120709:[[
966],
256],
120710:[[
967],
256],
120711:[[
968],
256],
120712:[[
969],
256],
120713:[[
8706],
256],
120714:[[
1013],
256],
120715:[[
977],
256],
120716:[[
1008],
256],
120717:[[
981],
256],
120718:[[
1009],
256],
120719:[[
982],
256],
120720:[[
913],
256],
120721:[[
914],
256],
120722:[[
915],
256],
120723:[[
916],
256],
120724:[[
917],
256],
120725:[[
918],
256],
120726:[[
919],
256],
120727:[[
920],
256],
120728:[[
921],
256],
120729:[[
922],
256],
120730:[[
923],
256],
120731:[[
924],
256],
120732:[[
925],
256],
120733:[[
926],
256],
120734:[[
927],
256],
120735:[[
928],
256],
120736:[[
929],
256],
120737:[[
1012],
256],
120738:[[
931],
256],
120739:[[
932],
256],
120740:[[
933],
256],
120741:[[
934],
256],
120742:[[
935],
256],
120743:[[
936],
256],
120744:[[
937],
256],
120745:[[
8711],
256],
120746:[[
945],
256],
120747:[[
946],
256],
120748:[[
947],
256],
120749:[[
948],
256],
120750:[[
949],
256],
120751:[[
950],
256],
120752:[[
951],
256],
120753:[[
952],
256],
120754:[[
953],
256],
120755:[[
954],
256],
120756:[[
955],
256],
120757:[[
956],
256],
120758:[[
957],
256],
120759:[[
958],
256],
120760:[[
959],
256],
120761:[[
960],
256],
120762:[[
961],
256],
120763:[[
962],
256],
120764:[[
963],
256],
120765:[[
964],
256],
120766:[[
965],
256],
120767:[[
966],
256],
120768:[[
967],
256],
120769:[[
968],
256],
120770:[[
969],
256],
120771:[[
8706],
256],
120772:[[
1013],
256],
120773:[[
977],
256],
120774:[[
1008],
256],
120775:[[
981],
256],
120776:[[
1009],
256],
120777:[[
982],
256],
120778:[[
988],
256],
120779:[[
989],
256],
120782:[[
48],
256],
120783:[[
49],
256],
120784:[[
50],
256],
120785:[[
51],
256],
120786:[[
52],
256],
120787:[[
53],
256],
120788:[[
54],
256],
120789:[[
55],
256],
120790:[[
56],
256],
120791:[[
57],
256],
120792:[[
48],
256],
120793:[[
49],
256],
120794:[[
50],
256],
120795:[[
51],
256],
120796:[[
52],
256],
120797:[[
53],
256],
120798:[[
54],
256],
120799:[[
55],
256],
120800:[[
56],
256],
120801:[[
57],
256],
120802:[[
48],
256],
120803:[[
49],
256],
120804:[[
50],
256],
120805:[[
51],
256],
120806:[[
52],
256],
120807:[[
53],
256],
120808:[[
54],
256],
120809:[[
55],
256],
120810:[[
56],
256],
120811:[[
57],
256],
120812:[[
48],
256],
120813:[[
49],
256],
120814:[[
50],
256],
120815:[[
51],
256],
120816:[[
52],
256],
120817:[[
53],
256],
120818:[[
54],
256],
120819:[[
55],
256],
120820:[[
56],
256],
120821:[[
57],
256],
120822:[[
48],
256],
120823:[[
49],
256],
120824:[[
50],
256],
120825:[[
51],
256],
120826:[[
52],
256],
120827:[[
53],
256],
120828:[[
54],
256],
120829:[[
55],
256],
120830:[[
56],
256],
120831:[[
57],
256]},
6997 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6998 60928:{
126464:[[
1575],
256],
126465:[[
1576],
256],
126466:[[
1580],
256],
126467:[[
1583],
256],
126469:[[
1608],
256],
126470:[[
1586],
256],
126471:[[
1581],
256],
126472:[[
1591],
256],
126473:[[
1610],
256],
126474:[[
1603],
256],
126475:[[
1604],
256],
126476:[[
1605],
256],
126477:[[
1606],
256],
126478:[[
1587],
256],
126479:[[
1593],
256],
126480:[[
1601],
256],
126481:[[
1589],
256],
126482:[[
1602],
256],
126483:[[
1585],
256],
126484:[[
1588],
256],
126485:[[
1578],
256],
126486:[[
1579],
256],
126487:[[
1582],
256],
126488:[[
1584],
256],
126489:[[
1590],
256],
126490:[[
1592],
256],
126491:[[
1594],
256],
126492:[[
1646],
256],
126493:[[
1722],
256],
126494:[[
1697],
256],
126495:[[
1647],
256],
126497:[[
1576],
256],
126498:[[
1580],
256],
126500:[[
1607],
256],
126503:[[
1581],
256],
126505:[[
1610],
256],
126506:[[
1603],
256],
126507:[[
1604],
256],
126508:[[
1605],
256],
126509:[[
1606],
256],
126510:[[
1587],
256],
126511:[[
1593],
256],
126512:[[
1601],
256],
126513:[[
1589],
256],
126514:[[
1602],
256],
126516:[[
1588],
256],
126517:[[
1578],
256],
126518:[[
1579],
256],
126519:[[
1582],
256],
126521:[[
1590],
256],
126523:[[
1594],
256],
126530:[[
1580],
256],
126535:[[
1581],
256],
126537:[[
1610],
256],
126539:[[
1604],
256],
126541:[[
1606],
256],
126542:[[
1587],
256],
126543:[[
1593],
256],
126545:[[
1589],
256],
126546:[[
1602],
256],
126548:[[
1588],
256],
126551:[[
1582],
256],
126553:[[
1590],
256],
126555:[[
1594],
256],
126557:[[
1722],
256],
126559:[[
1647],
256],
126561:[[
1576],
256],
126562:[[
1580],
256],
126564:[[
1607],
256],
126567:[[
1581],
256],
126568:[[
1591],
256],
126569:[[
1610],
256],
126570:[[
1603],
256],
126572:[[
1605],
256],
126573:[[
1606],
256],
126574:[[
1587],
256],
126575:[[
1593],
256],
126576:[[
1601],
256],
126577:[[
1589],
256],
126578:[[
1602],
256],
126580:[[
1588],
256],
126581:[[
1578],
256],
126582:[[
1579],
256],
126583:[[
1582],
256],
126585:[[
1590],
256],
126586:[[
1592],
256],
126587:[[
1594],
256],
126588:[[
1646],
256],
126590:[[
1697],
256],
126592:[[
1575],
256],
126593:[[
1576],
256],
126594:[[
1580],
256],
126595:[[
1583],
256],
126596:[[
1607],
256],
126597:[[
1608],
256],
126598:[[
1586],
256],
126599:[[
1581],
256],
126600:[[
1591],
256],
126601:[[
1610],
256],
126603:[[
1604],
256],
126604:[[
1605],
256],
126605:[[
1606],
256],
126606:[[
1587],
256],
126607:[[
1593],
256],
126608:[[
1601],
256],
126609:[[
1589],
256],
126610:[[
1602],
256],
126611:[[
1585],
256],
126612:[[
1588],
256],
126613:[[
1578],
256],
126614:[[
1579],
256],
126615:[[
1582],
256],
126616:[[
1584],
256],
126617:[[
1590],
256],
126618:[[
1592],
256],
126619:[[
1594],
256],
126625:[[
1576],
256],
126626:[[
1580],
256],
126627:[[
1583],
256],
126629:[[
1608],
256],
126630:[[
1586],
256],
126631:[[
1581],
256],
126632:[[
1591],
256],
126633:[[
1610],
256],
126635:[[
1604],
256],
126636:[[
1605],
256],
126637:[[
1606],
256],
126638:[[
1587],
256],
126639:[[
1593],
256],
126640:[[
1601],
256],
126641:[[
1589],
256],
126642:[[
1602],
256],
126643:[[
1585],
256],
126644:[[
1588],
256],
126645:[[
1578],
256],
126646:[[
1579],
256],
126647:[[
1582],
256],
126648:[[
1584],
256],
126649:[[
1590],
256],
126650:[[
1592],
256],
126651:[[
1594],
256]},
6999 61696:{
127232:[[
48,
46],
256],
127233:[[
48,
44],
256],
127234:[[
49,
44],
256],
127235:[[
50,
44],
256],
127236:[[
51,
44],
256],
127237:[[
52,
44],
256],
127238:[[
53,
44],
256],
127239:[[
54,
44],
256],
127240:[[
55,
44],
256],
127241:[[
56,
44],
256],
127242:[[
57,
44],
256],
127248:[[
40,
65,
41],
256],
127249:[[
40,
66,
41],
256],
127250:[[
40,
67,
41],
256],
127251:[[
40,
68,
41],
256],
127252:[[
40,
69,
41],
256],
127253:[[
40,
70,
41],
256],
127254:[[
40,
71,
41],
256],
127255:[[
40,
72,
41],
256],
127256:[[
40,
73,
41],
256],
127257:[[
40,
74,
41],
256],
127258:[[
40,
75,
41],
256],
127259:[[
40,
76,
41],
256],
127260:[[
40,
77,
41],
256],
127261:[[
40,
78,
41],
256],
127262:[[
40,
79,
41],
256],
127263:[[
40,
80,
41],
256],
127264:[[
40,
81,
41],
256],
127265:[[
40,
82,
41],
256],
127266:[[
40,
83,
41],
256],
127267:[[
40,
84,
41],
256],
127268:[[
40,
85,
41],
256],
127269:[[
40,
86,
41],
256],
127270:[[
40,
87,
41],
256],
127271:[[
40,
88,
41],
256],
127272:[[
40,
89,
41],
256],
127273:[[
40,
90,
41],
256],
127274:[[
12308,
83,
12309],
256],
127275:[[
67],
256],
127276:[[
82],
256],
127277:[[
67,
68],
256],
127278:[[
87,
90],
256],
127280:[[
65],
256],
127281:[[
66],
256],
127282:[[
67],
256],
127283:[[
68],
256],
127284:[[
69],
256],
127285:[[
70],
256],
127286:[[
71],
256],
127287:[[
72],
256],
127288:[[
73],
256],
127289:[[
74],
256],
127290:[[
75],
256],
127291:[[
76],
256],
127292:[[
77],
256],
127293:[[
78],
256],
127294:[[
79],
256],
127295:[[
80],
256],
127296:[[
81],
256],
127297:[[
82],
256],
127298:[[
83],
256],
127299:[[
84],
256],
127300:[[
85],
256],
127301:[[
86],
256],
127302:[[
87],
256],
127303:[[
88],
256],
127304:[[
89],
256],
127305:[[
90],
256],
127306:[[
72,
86],
256],
127307:[[
77,
86],
256],
127308:[[
83,
68],
256],
127309:[[
83,
83],
256],
127310:[[
80,
80,
86],
256],
127311:[[
87,
67],
256],
127338:[[
77,
67],
256],
127339:[[
77,
68],
256],
127376:[[
68,
74],
256]},
7000 61952:{
127488:[[
12411,
12363],
256],
127489:[[
12467,
12467],
256],
127490:[[
12469],
256],
127504:[[
25163],
256],
127505:[[
23383],
256],
127506:[[
21452],
256],
127507:[[
12487],
256],
127508:[[
20108],
256],
127509:[[
22810],
256],
127510:[[
35299],
256],
127511:[[
22825],
256],
127512:[[
20132],
256],
127513:[[
26144],
256],
127514:[[
28961],
256],
127515:[[
26009],
256],
127516:[[
21069],
256],
127517:[[
24460],
256],
127518:[[
20877],
256],
127519:[[
26032],
256],
127520:[[
21021],
256],
127521:[[
32066],
256],
127522:[[
29983],
256],
127523:[[
36009],
256],
127524:[[
22768],
256],
127525:[[
21561],
256],
127526:[[
28436],
256],
127527:[[
25237],
256],
127528:[[
25429],
256],
127529:[[
19968],
256],
127530:[[
19977],
256],
127531:[[
36938],
256],
127532:[[
24038],
256],
127533:[[
20013],
256],
127534:[[
21491],
256],
127535:[[
25351],
256],
127536:[[
36208],
256],
127537:[[
25171],
256],
127538:[[
31105],
256],
127539:[[
31354],
256],
127540:[[
21512],
256],
127541:[[
28288],
256],
127542:[[
26377],
256],
127543:[[
26376],
256],
127544:[[
30003],
256],
127545:[[
21106],
256],
127546:[[
21942],
256],
127552:[[
12308,
26412,
12309],
256],
127553:[[
12308,
19977,
12309],
256],
127554:[[
12308,
20108,
12309],
256],
127555:[[
12308,
23433,
12309],
256],
127556:[[
12308,
28857,
12309],
256],
127557:[[
12308,
25171,
12309],
256],
127558:[[
12308,
30423,
12309],
256],
127559:[[
12308,
21213,
12309],
256],
127560:[[
12308,
25943,
12309],
256],
127568:[[
24471],
256],
127569:[[
21487],
256]},
7001 63488:{
194560:[[
20029]],
194561:[[
20024]],
194562:[[
20033]],
194563:[[
131362]],
194564:[[
20320]],
194565:[[
20398]],
194566:[[
20411]],
194567:[[
20482]],
194568:[[
20602]],
194569:[[
20633]],
194570:[[
20711]],
194571:[[
20687]],
194572:[[
13470]],
194573:[[
132666]],
194574:[[
20813]],
194575:[[
20820]],
194576:[[
20836]],
194577:[[
20855]],
194578:[[
132380]],
194579:[[
13497]],
194580:[[
20839]],
194581:[[
20877]],
194582:[[
132427]],
194583:[[
20887]],
194584:[[
20900]],
194585:[[
20172]],
194586:[[
20908]],
194587:[[
20917]],
194588:[[
168415]],
194589:[[
20981]],
194590:[[
20995]],
194591:[[
13535]],
194592:[[
21051]],
194593:[[
21062]],
194594:[[
21106]],
194595:[[
21111]],
194596:[[
13589]],
194597:[[
21191]],
194598:[[
21193]],
194599:[[
21220]],
194600:[[
21242]],
194601:[[
21253]],
194602:[[
21254]],
194603:[[
21271]],
194604:[[
21321]],
194605:[[
21329]],
194606:[[
21338]],
194607:[[
21363]],
194608:[[
21373]],
194609:[[
21375]],
194610:[[
21375]],
194611:[[
21375]],
194612:[[
133676]],
194613:[[
28784]],
194614:[[
21450]],
194615:[[
21471]],
194616:[[
133987]],
194617:[[
21483]],
194618:[[
21489]],
194619:[[
21510]],
194620:[[
21662]],
194621:[[
21560]],
194622:[[
21576]],
194623:[[
21608]],
194624:[[
21666]],
194625:[[
21750]],
194626:[[
21776]],
194627:[[
21843]],
194628:[[
21859]],
194629:[[
21892]],
194630:[[
21892]],
194631:[[
21913]],
194632:[[
21931]],
194633:[[
21939]],
194634:[[
21954]],
194635:[[
22294]],
194636:[[
22022]],
194637:[[
22295]],
194638:[[
22097]],
194639:[[
22132]],
194640:[[
20999]],
194641:[[
22766]],
194642:[[
22478]],
194643:[[
22516]],
194644:[[
22541]],
194645:[[
22411]],
194646:[[
22578]],
194647:[[
22577]],
194648:[[
22700]],
194649:[[
136420]],
194650:[[
22770]],
194651:[[
22775]],
194652:[[
22790]],
194653:[[
22810]],
194654:[[
22818]],
194655:[[
22882]],
194656:[[
136872]],
194657:[[
136938]],
194658:[[
23020]],
194659:[[
23067]],
194660:[[
23079]],
194661:[[
23000]],
194662:[[
23142]],
194663:[[
14062]],
194664:[[
14076]],
194665:[[
23304]],
194666:[[
23358]],
194667:[[
23358]],
194668:[[
137672]],
194669:[[
23491]],
194670:[[
23512]],
194671:[[
23527]],
194672:[[
23539]],
194673:[[
138008]],
194674:[[
23551]],
194675:[[
23558]],
194676:[[
24403]],
194677:[[
23586]],
194678:[[
14209]],
194679:[[
23648]],
194680:[[
23662]],
194681:[[
23744]],
194682:[[
23693]],
194683:[[
138724]],
194684:[[
23875]],
194685:[[
138726]],
194686:[[
23918]],
194687:[[
23915]],
194688:[[
23932]],
194689:[[
24033]],
194690:[[
24034]],
194691:[[
14383]],
194692:[[
24061]],
194693:[[
24104]],
194694:[[
24125]],
194695:[[
24169]],
194696:[[
14434]],
194697:[[
139651]],
194698:[[
14460]],
194699:[[
24240]],
194700:[[
24243]],
194701:[[
24246]],
194702:[[
24266]],
194703:[[
172946]],
194704:[[
24318]],
194705:[[
140081]],
194706:[[
140081]],
194707:[[
33281]],
194708:[[
24354]],
194709:[[
24354]],
194710:[[
14535]],
194711:[[
144056]],
194712:[[
156122]],
194713:[[
24418]],
194714:[[
24427]],
194715:[[
14563]],
194716:[[
24474]],
194717:[[
24525]],
194718:[[
24535]],
194719:[[
24569]],
194720:[[
24705]],
194721:[[
14650]],
194722:[[
14620]],
194723:[[
24724]],
194724:[[
141012]],
194725:[[
24775]],
194726:[[
24904]],
194727:[[
24908]],
194728:[[
24910]],
194729:[[
24908]],
194730:[[
24954]],
194731:[[
24974]],
194732:[[
25010]],
194733:[[
24996]],
194734:[[
25007]],
194735:[[
25054]],
194736:[[
25074]],
194737:[[
25078]],
194738:[[
25104]],
194739:[[
25115]],
194740:[[
25181]],
194741:[[
25265]],
194742:[[
25300]],
194743:[[
25424]],
194744:[[
142092]],
194745:[[
25405]],
194746:[[
25340]],
194747:[[
25448]],
194748:[[
25475]],
194749:[[
25572]],
194750:[[
142321]],
194751:[[
25634]],
194752:[[
25541]],
194753:[[
25513]],
194754:[[
14894]],
194755:[[
25705]],
194756:[[
25726]],
194757:[[
25757]],
194758:[[
25719]],
194759:[[
14956]],
194760:[[
25935]],
194761:[[
25964]],
194762:[[
143370]],
194763:[[
26083]],
194764:[[
26360]],
194765:[[
26185]],
194766:[[
15129]],
194767:[[
26257]],
194768:[[
15112]],
194769:[[
15076]],
194770:[[
20882]],
194771:[[
20885]],
194772:[[
26368]],
194773:[[
26268]],
194774:[[
32941]],
194775:[[
17369]],
194776:[[
26391]],
194777:[[
26395]],
194778:[[
26401]],
194779:[[
26462]],
194780:[[
26451]],
194781:[[
144323]],
194782:[[
15177]],
194783:[[
26618]],
194784:[[
26501]],
194785:[[
26706]],
194786:[[
26757]],
194787:[[
144493]],
194788:[[
26766]],
194789:[[
26655]],
194790:[[
26900]],
194791:[[
15261]],
194792:[[
26946]],
194793:[[
27043]],
194794:[[
27114]],
194795:[[
27304]],
194796:[[
145059]],
194797:[[
27355]],
194798:[[
15384]],
194799:[[
27425]],
194800:[[
145575]],
194801:[[
27476]],
194802:[[
15438]],
194803:[[
27506]],
194804:[[
27551]],
194805:[[
27578]],
194806:[[
27579]],
194807:[[
146061]],
194808:[[
138507]],
194809:[[
146170]],
194810:[[
27726]],
194811:[[
146620]],
194812:[[
27839]],
194813:[[
27853]],
194814:[[
27751]],
194815:[[
27926]]},
7002 63744:{
63744:[[
35912]],
63745:[[
26356]],
63746:[[
36554]],
63747:[[
36040]],
63748:[[
28369]],
63749:[[
20018]],
63750:[[
21477]],
63751:[[
40860]],
63752:[[
40860]],
63753:[[
22865]],
63754:[[
37329]],
63755:[[
21895]],
63756:[[
22856]],
63757:[[
25078]],
63758:[[
30313]],
63759:[[
32645]],
63760:[[
34367]],
63761:[[
34746]],
63762:[[
35064]],
63763:[[
37007]],
63764:[[
27138]],
63765:[[
27931]],
63766:[[
28889]],
63767:[[
29662]],
63768:[[
33853]],
63769:[[
37226]],
63770:[[
39409]],
63771:[[
20098]],
63772:[[
21365]],
63773:[[
27396]],
63774:[[
29211]],
63775:[[
34349]],
63776:[[
40478]],
63777:[[
23888]],
63778:[[
28651]],
63779:[[
34253]],
63780:[[
35172]],
63781:[[
25289]],
63782:[[
33240]],
63783:[[
34847]],
63784:[[
24266]],
63785:[[
26391]],
63786:[[
28010]],
63787:[[
29436]],
63788:[[
37070]],
63789:[[
20358]],
63790:[[
20919]],
63791:[[
21214]],
63792:[[
25796]],
63793:[[
27347]],
63794:[[
29200]],
63795:[[
30439]],
63796:[[
32769]],
63797:[[
34310]],
63798:[[
34396]],
63799:[[
36335]],
63800:[[
38706]],
63801:[[
39791]],
63802:[[
40442]],
63803:[[
30860]],
63804:[[
31103]],
63805:[[
32160]],
63806:[[
33737]],
63807:[[
37636]],
63808:[[
40575]],
63809:[[
35542]],
63810:[[
22751]],
63811:[[
24324]],
63812:[[
31840]],
63813:[[
32894]],
63814:[[
29282]],
63815:[[
30922]],
63816:[[
36034]],
63817:[[
38647]],
63818:[[
22744]],
63819:[[
23650]],
63820:[[
27155]],
63821:[[
28122]],
63822:[[
28431]],
63823:[[
32047]],
63824:[[
32311]],
63825:[[
38475]],
63826:[[
21202]],
63827:[[
32907]],
63828:[[
20956]],
63829:[[
20940]],
63830:[[
31260]],
63831:[[
32190]],
63832:[[
33777]],
63833:[[
38517]],
63834:[[
35712]],
63835:[[
25295]],
63836:[[
27138]],
63837:[[
35582]],
63838:[[
20025]],
63839:[[
23527]],
63840:[[
24594]],
63841:[[
29575]],
63842:[[
30064]],
63843:[[
21271]],
63844:[[
30971]],
63845:[[
20415]],
63846:[[
24489]],
63847:[[
19981]],
63848:[[
27852]],
63849:[[
25976]],
63850:[[
32034]],
63851:[[
21443]],
63852:[[
22622]],
63853:[[
30465]],
63854:[[
33865]],
63855:[[
35498]],
63856:[[
27578]],
63857:[[
36784]],
63858:[[
27784]],
63859:[[
25342]],
63860:[[
33509]],
63861:[[
25504]],
63862:[[
30053]],
63863:[[
20142]],
63864:[[
20841]],
63865:[[
20937]],
63866:[[
26753]],
63867:[[
31975]],
63868:[[
33391]],
63869:[[
35538]],
63870:[[
37327]],
63871:[[
21237]],
63872:[[
21570]],
63873:[[
22899]],
63874:[[
24300]],
63875:[[
26053]],
63876:[[
28670]],
63877:[[
31018]],
63878:[[
38317]],
63879:[[
39530]],
63880:[[
40599]],
63881:[[
40654]],
63882:[[
21147]],
63883:[[
26310]],
63884:[[
27511]],
63885:[[
36706]],
63886:[[
24180]],
63887:[[
24976]],
63888:[[
25088]],
63889:[[
25754]],
63890:[[
28451]],
63891:[[
29001]],
63892:[[
29833]],
63893:[[
31178]],
63894:[[
32244]],
63895:[[
32879]],
63896:[[
36646]],
63897:[[
34030]],
63898:[[
36899]],
63899:[[
37706]],
63900:[[
21015]],
63901:[[
21155]],
63902:[[
21693]],
63903:[[
28872]],
63904:[[
35010]],
63905:[[
35498]],
63906:[[
24265]],
63907:[[
24565]],
63908:[[
25467]],
63909:[[
27566]],
63910:[[
31806]],
63911:[[
29557]],
63912:[[
20196]],
63913:[[
22265]],
63914:[[
23527]],
63915:[[
23994]],
63916:[[
24604]],
63917:[[
29618]],
63918:[[
29801]],
63919:[[
32666]],
63920:[[
32838]],
63921:[[
37428]],
63922:[[
38646]],
63923:[[
38728]],
63924:[[
38936]],
63925:[[
20363]],
63926:[[
31150]],
63927:[[
37300]],
63928:[[
38584]],
63929:[[
24801]],
63930:[[
20102]],
63931:[[
20698]],
63932:[[
23534]],
63933:[[
23615]],
63934:[[
26009]],
63935:[[
27138]],
63936:[[
29134]],
63937:[[
30274]],
63938:[[
34044]],
63939:[[
36988]],
63940:[[
40845]],
63941:[[
26248]],
63942:[[
38446]],
63943:[[
21129]],
63944:[[
26491]],
63945:[[
26611]],
63946:[[
27969]],
63947:[[
28316]],
63948:[[
29705]],
63949:[[
30041]],
63950:[[
30827]],
63951:[[
32016]],
63952:[[
39006]],
63953:[[
20845]],
63954:[[
25134]],
63955:[[
38520]],
63956:[[
20523]],
63957:[[
23833]],
63958:[[
28138]],
63959:[[
36650]],
63960:[[
24459]],
63961:[[
24900]],
63962:[[
26647]],
63963:[[
29575]],
63964:[[
38534]],
63965:[[
21033]],
63966:[[
21519]],
63967:[[
23653]],
63968:[[
26131]],
63969:[[
26446]],
63970:[[
26792]],
63971:[[
27877]],
63972:[[
29702]],
63973:[[
30178]],
63974:[[
32633]],
63975:[[
35023]],
63976:[[
35041]],
63977:[[
37324]],
63978:[[
38626]],
63979:[[
21311]],
63980:[[
28346]],
63981:[[
21533]],
63982:[[
29136]],
63983:[[
29848]],
63984:[[
34298]],
63985:[[
38563]],
63986:[[
40023]],
63987:[[
40607]],
63988:[[
26519]],
63989:[[
28107]],
63990:[[
33256]],
63991:[[
31435]],
63992:[[
31520]],
63993:[[
31890]],
63994:[[
29376]],
63995:[[
28825]],
63996:[[
35672]],
63997:[[
20160]],
63998:[[
33590]],
63999:[[
21050]],
194816:[[
27966]],
194817:[[
28023]],
194818:[[
27969]],
194819:[[
28009]],
194820:[[
28024]],
194821:[[
28037]],
194822:[[
146718]],
194823:[[
27956]],
194824:[[
28207]],
194825:[[
28270]],
194826:[[
15667]],
194827:[[
28363]],
194828:[[
28359]],
194829:[[
147153]],
194830:[[
28153]],
194831:[[
28526]],
194832:[[
147294]],
194833:[[
147342]],
194834:[[
28614]],
194835:[[
28729]],
194836:[[
28702]],
194837:[[
28699]],
194838:[[
15766]],
194839:[[
28746]],
194840:[[
28797]],
194841:[[
28791]],
194842:[[
28845]],
194843:[[
132389]],
194844:[[
28997]],
194845:[[
148067]],
194846:[[
29084]],
194847:[[
148395]],
194848:[[
29224]],
194849:[[
29237]],
194850:[[
29264]],
194851:[[
149000]],
194852:[[
29312]],
194853:[[
29333]],
194854:[[
149301]],
194855:[[
149524]],
194856:[[
29562]],
194857:[[
29579]],
194858:[[
16044]],
194859:[[
29605]],
194860:[[
16056]],
194861:[[
16056]],
194862:[[
29767]],
194863:[[
29788]],
194864:[[
29809]],
194865:[[
29829]],
194866:[[
29898]],
194867:[[
16155]],
194868:[[
29988]],
194869:[[
150582]],
194870:[[
30014]],
194871:[[
150674]],
194872:[[
30064]],
194873:[[
139679]],
194874:[[
30224]],
194875:[[
151457]],
194876:[[
151480]],
194877:[[
151620]],
194878:[[
16380]],
194879:[[
16392]],
194880:[[
30452]],
194881:[[
151795]],
194882:[[
151794]],
194883:[[
151833]],
194884:[[
151859]],
194885:[[
30494]],
194886:[[
30495]],
194887:[[
30495]],
194888:[[
30538]],
194889:[[
16441]],
194890:[[
30603]],
194891:[[
16454]],
194892:[[
16534]],
194893:[[
152605]],
194894:[[
30798]],
194895:[[
30860]],
194896:[[
30924]],
194897:[[
16611]],
194898:[[
153126]],
194899:[[
31062]],
194900:[[
153242]],
194901:[[
153285]],
194902:[[
31119]],
194903:[[
31211]],
194904:[[
16687]],
194905:[[
31296]],
194906:[[
31306]],
194907:[[
31311]],
194908:[[
153980]],
194909:[[
154279]],
194910:[[
154279]],
194911:[[
31470]],
194912:[[
16898]],
194913:[[
154539]],
194914:[[
31686]],
194915:[[
31689]],
194916:[[
16935]],
194917:[[
154752]],
194918:[[
31954]],
194919:[[
17056]],
194920:[[
31976]],
194921:[[
31971]],
194922:[[
32000]],
194923:[[
155526]],
194924:[[
32099]],
194925:[[
17153]],
194926:[[
32199]],
194927:[[
32258]],
194928:[[
32325]],
194929:[[
17204]],
194930:[[
156200]],
194931:[[
156231]],
194932:[[
17241]],
194933:[[
156377]],
194934:[[
32634]],
194935:[[
156478]],
194936:[[
32661]],
194937:[[
32762]],
194938:[[
32773]],
194939:[[
156890]],
194940:[[
156963]],
194941:[[
32864]],
194942:[[
157096]],
194943:[[
32880]],
194944:[[
144223]],
194945:[[
17365]],
194946:[[
32946]],
194947:[[
33027]],
194948:[[
17419]],
194949:[[
33086]],
194950:[[
23221]],
194951:[[
157607]],
194952:[[
157621]],
194953:[[
144275]],
194954:[[
144284]],
194955:[[
33281]],
194956:[[
33284]],
194957:[[
36766]],
194958:[[
17515]],
194959:[[
33425]],
194960:[[
33419]],
194961:[[
33437]],
194962:[[
21171]],
194963:[[
33457]],
194964:[[
33459]],
194965:[[
33469]],
194966:[[
33510]],
194967:[[
158524]],
194968:[[
33509]],
194969:[[
33565]],
194970:[[
33635]],
194971:[[
33709]],
194972:[[
33571]],
194973:[[
33725]],
194974:[[
33767]],
194975:[[
33879]],
194976:[[
33619]],
194977:[[
33738]],
194978:[[
33740]],
194979:[[
33756]],
194980:[[
158774]],
194981:[[
159083]],
194982:[[
158933]],
194983:[[
17707]],
194984:[[
34033]],
194985:[[
34035]],
194986:[[
34070]],
194987:[[
160714]],
194988:[[
34148]],
194989:[[
159532]],
194990:[[
17757]],
194991:[[
17761]],
194992:[[
159665]],
194993:[[
159954]],
194994:[[
17771]],
194995:[[
34384]],
194996:[[
34396]],
194997:[[
34407]],
194998:[[
34409]],
194999:[[
34473]],
195000:[[
34440]],
195001:[[
34574]],
195002:[[
34530]],
195003:[[
34681]],
195004:[[
34600]],
195005:[[
34667]],
195006:[[
34694]],
195007:[[
17879]],
195008:[[
34785]],
195009:[[
34817]],
195010:[[
17913]],
195011:[[
34912]],
195012:[[
34915]],
195013:[[
161383]],
195014:[[
35031]],
195015:[[
35038]],
195016:[[
17973]],
195017:[[
35066]],
195018:[[
13499]],
195019:[[
161966]],
195020:[[
162150]],
195021:[[
18110]],
195022:[[
18119]],
195023:[[
35488]],
195024:[[
35565]],
195025:[[
35722]],
195026:[[
35925]],
195027:[[
162984]],
195028:[[
36011]],
195029:[[
36033]],
195030:[[
36123]],
195031:[[
36215]],
195032:[[
163631]],
195033:[[
133124]],
195034:[[
36299]],
195035:[[
36284]],
195036:[[
36336]],
195037:[[
133342]],
195038:[[
36564]],
195039:[[
36664]],
195040:[[
165330]],
195041:[[
165357]],
195042:[[
37012]],
195043:[[
37105]],
195044:[[
37137]],
195045:[[
165678]],
195046:[[
37147]],
195047:[[
37432]],
195048:[[
37591]],
195049:[[
37592]],
195050:[[
37500]],
195051:[[
37881]],
195052:[[
37909]],
195053:[[
166906]],
195054:[[
38283]],
195055:[[
18837]],
195056:[[
38327]],
195057:[[
167287]],
195058:[[
18918]],
195059:[[
38595]],
195060:[[
23986]],
195061:[[
38691]],
195062:[[
168261]],
195063:[[
168474]],
195064:[[
19054]],
195065:[[
19062]],
195066:[[
38880]],
195067:[[
168970]],
195068:[[
19122]],
195069:[[
169110]],
195070:[[
38923]],
195071:[[
38923]]},
7003 64000:{
64000:[[
20999]],
64001:[[
24230]],
64002:[[
25299]],
64003:[[
31958]],
64004:[[
23429]],
64005:[[
27934]],
64006:[[
26292]],
64007:[[
36667]],
64008:[[
34892]],
64009:[[
38477]],
64010:[[
35211]],
64011:[[
24275]],
64012:[[
20800]],
64013:[[
21952]],
64016:[[
22618]],
64018:[[
26228]],
64021:[[
20958]],
64022:[[
29482]],
64023:[[
30410]],
64024:[[
31036]],
64025:[[
31070]],
64026:[[
31077]],
64027:[[
31119]],
64028:[[
38742]],
64029:[[
31934]],
64030:[[
32701]],
64032:[[
34322]],
64034:[[
35576]],
64037:[[
36920]],
64038:[[
37117]],
64042:[[
39151]],
64043:[[
39164]],
64044:[[
39208]],
64045:[[
40372]],
64046:[[
37086]],
64047:[[
38583]],
64048:[[
20398]],
64049:[[
20711]],
64050:[[
20813]],
64051:[[
21193]],
64052:[[
21220]],
64053:[[
21329]],
64054:[[
21917]],
64055:[[
22022]],
64056:[[
22120]],
64057:[[
22592]],
64058:[[
22696]],
64059:[[
23652]],
64060:[[
23662]],
64061:[[
24724]],
64062:[[
24936]],
64063:[[
24974]],
64064:[[
25074]],
64065:[[
25935]],
64066:[[
26082]],
64067:[[
26257]],
64068:[[
26757]],
64069:[[
28023]],
64070:[[
28186]],
64071:[[
28450]],
64072:[[
29038]],
64073:[[
29227]],
64074:[[
29730]],
64075:[[
30865]],
64076:[[
31038]],
64077:[[
31049]],
64078:[[
31048]],
64079:[[
31056]],
64080:[[
31062]],
64081:[[
31069]],
64082:[[
31117]],
64083:[[
31118]],
64084:[[
31296]],
64085:[[
31361]],
64086:[[
31680]],
64087:[[
32244]],
64088:[[
32265]],
64089:[[
32321]],
64090:[[
32626]],
64091:[[
32773]],
64092:[[
33261]],
64093:[[
33401]],
64094:[[
33401]],
64095:[[
33879]],
64096:[[
35088]],
64097:[[
35222]],
64098:[[
35585]],
64099:[[
35641]],
64100:[[
36051]],
64101:[[
36104]],
64102:[[
36790]],
64103:[[
36920]],
64104:[[
38627]],
64105:[[
38911]],
64106:[[
38971]],
64107:[[
24693]],
64108:[[
148206]],
64109:[[
33304]],
64112:[[
20006]],
64113:[[
20917]],
64114:[[
20840]],
64115:[[
20352]],
64116:[[
20805]],
64117:[[
20864]],
64118:[[
21191]],
64119:[[
21242]],
64120:[[
21917]],
64121:[[
21845]],
64122:[[
21913]],
64123:[[
21986]],
64124:[[
22618]],
64125:[[
22707]],
64126:[[
22852]],
64127:[[
22868]],
64128:[[
23138]],
64129:[[
23336]],
64130:[[
24274]],
64131:[[
24281]],
64132:[[
24425]],
64133:[[
24493]],
64134:[[
24792]],
64135:[[
24910]],
64136:[[
24840]],
64137:[[
24974]],
64138:[[
24928]],
64139:[[
25074]],
64140:[[
25140]],
64141:[[
25540]],
64142:[[
25628]],
64143:[[
25682]],
64144:[[
25942]],
64145:[[
26228]],
64146:[[
26391]],
64147:[[
26395]],
64148:[[
26454]],
64149:[[
27513]],
64150:[[
27578]],
64151:[[
27969]],
64152:[[
28379]],
64153:[[
28363]],
64154:[[
28450]],
64155:[[
28702]],
64156:[[
29038]],
64157:[[
30631]],
64158:[[
29237]],
64159:[[
29359]],
64160:[[
29482]],
64161:[[
29809]],
64162:[[
29958]],
64163:[[
30011]],
64164:[[
30237]],
64165:[[
30239]],
64166:[[
30410]],
64167:[[
30427]],
64168:[[
30452]],
64169:[[
30538]],
64170:[[
30528]],
64171:[[
30924]],
64172:[[
31409]],
64173:[[
31680]],
64174:[[
31867]],
64175:[[
32091]],
64176:[[
32244]],
64177:[[
32574]],
64178:[[
32773]],
64179:[[
33618]],
64180:[[
33775]],
64181:[[
34681]],
64182:[[
35137]],
64183:[[
35206]],
64184:[[
35222]],
64185:[[
35519]],
64186:[[
35576]],
64187:[[
35531]],
64188:[[
35585]],
64189:[[
35582]],
64190:[[
35565]],
64191:[[
35641]],
64192:[[
35722]],
64193:[[
36104]],
64194:[[
36664]],
64195:[[
36978]],
64196:[[
37273]],
64197:[[
37494]],
64198:[[
38524]],
64199:[[
38627]],
64200:[[
38742]],
64201:[[
38875]],
64202:[[
38911]],
64203:[[
38923]],
64204:[[
38971]],
64205:[[
39698]],
64206:[[
40860]],
64207:[[
141386]],
64208:[[
141380]],
64209:[[
144341]],
64210:[[
15261]],
64211:[[
16408]],
64212:[[
16441]],
64213:[[
152137]],
64214:[[
154832]],
64215:[[
163539]],
64216:[[
40771]],
64217:[[
40846]],
195072:[[
38953]],
195073:[[
169398]],
195074:[[
39138]],
195075:[[
19251]],
195076:[[
39209]],
195077:[[
39335]],
195078:[[
39362]],
195079:[[
39422]],
195080:[[
19406]],
195081:[[
170800]],
195082:[[
39698]],
195083:[[
40000]],
195084:[[
40189]],
195085:[[
19662]],
195086:[[
19693]],
195087:[[
40295]],
195088:[[
172238]],
195089:[[
19704]],
195090:[[
172293]],
195091:[[
172558]],
195092:[[
172689]],
195093:[[
40635]],
195094:[[
19798]],
195095:[[
40697]],
195096:[[
40702]],
195097:[[
40709]],
195098:[[
40719]],
195099:[[
40726]],
195100:[[
40763]],
195101:[[
173568]]},
7004 64256:{
64256:[[
102,
102],
256],
64257:[[
102,
105],
256],
64258:[[
102,
108],
256],
64259:[[
102,
102,
105],
256],
64260:[[
102,
102,
108],
256],
64261:[[
383,
116],
256],
64262:[[
115,
116],
256],
64275:[[
1396,
1398],
256],
64276:[[
1396,
1381],
256],
64277:[[
1396,
1387],
256],
64278:[[
1406,
1398],
256],
64279:[[
1396,
1389],
256],
64285:[[
1497,
1460],
512],
64286:[,
26],
64287:[[
1522,
1463],
512],
64288:[[
1506],
256],
64289:[[
1488],
256],
64290:[[
1491],
256],
64291:[[
1492],
256],
64292:[[
1499],
256],
64293:[[
1500],
256],
64294:[[
1501],
256],
64295:[[
1512],
256],
64296:[[
1514],
256],
64297:[[
43],
256],
64298:[[
1513,
1473],
512],
64299:[[
1513,
1474],
512],
64300:[[
64329,
1473],
512],
64301:[[
64329,
1474],
512],
64302:[[
1488,
1463],
512],
64303:[[
1488,
1464],
512],
64304:[[
1488,
1468],
512],
64305:[[
1489,
1468],
512],
64306:[[
1490,
1468],
512],
64307:[[
1491,
1468],
512],
64308:[[
1492,
1468],
512],
64309:[[
1493,
1468],
512],
64310:[[
1494,
1468],
512],
64312:[[
1496,
1468],
512],
64313:[[
1497,
1468],
512],
64314:[[
1498,
1468],
512],
64315:[[
1499,
1468],
512],
64316:[[
1500,
1468],
512],
64318:[[
1502,
1468],
512],
64320:[[
1504,
1468],
512],
64321:[[
1505,
1468],
512],
64323:[[
1507,
1468],
512],
64324:[[
1508,
1468],
512],
64326:[[
1510,
1468],
512],
64327:[[
1511,
1468],
512],
64328:[[
1512,
1468],
512],
64329:[[
1513,
1468],
512],
64330:[[
1514,
1468],
512],
64331:[[
1493,
1465],
512],
64332:[[
1489,
1471],
512],
64333:[[
1499,
1471],
512],
64334:[[
1508,
1471],
512],
64335:[[
1488,
1500],
256],
64336:[[
1649],
256],
64337:[[
1649],
256],
64338:[[
1659],
256],
64339:[[
1659],
256],
64340:[[
1659],
256],
64341:[[
1659],
256],
64342:[[
1662],
256],
64343:[[
1662],
256],
64344:[[
1662],
256],
64345:[[
1662],
256],
64346:[[
1664],
256],
64347:[[
1664],
256],
64348:[[
1664],
256],
64349:[[
1664],
256],
64350:[[
1658],
256],
64351:[[
1658],
256],
64352:[[
1658],
256],
64353:[[
1658],
256],
64354:[[
1663],
256],
64355:[[
1663],
256],
64356:[[
1663],
256],
64357:[[
1663],
256],
64358:[[
1657],
256],
64359:[[
1657],
256],
64360:[[
1657],
256],
64361:[[
1657],
256],
64362:[[
1700],
256],
64363:[[
1700],
256],
64364:[[
1700],
256],
64365:[[
1700],
256],
64366:[[
1702],
256],
64367:[[
1702],
256],
64368:[[
1702],
256],
64369:[[
1702],
256],
64370:[[
1668],
256],
64371:[[
1668],
256],
64372:[[
1668],
256],
64373:[[
1668],
256],
64374:[[
1667],
256],
64375:[[
1667],
256],
64376:[[
1667],
256],
64377:[[
1667],
256],
64378:[[
1670],
256],
64379:[[
1670],
256],
64380:[[
1670],
256],
64381:[[
1670],
256],
64382:[[
1671],
256],
64383:[[
1671],
256],
64384:[[
1671],
256],
64385:[[
1671],
256],
64386:[[
1677],
256],
64387:[[
1677],
256],
64388:[[
1676],
256],
64389:[[
1676],
256],
64390:[[
1678],
256],
64391:[[
1678],
256],
64392:[[
1672],
256],
64393:[[
1672],
256],
64394:[[
1688],
256],
64395:[[
1688],
256],
64396:[[
1681],
256],
64397:[[
1681],
256],
64398:[[
1705],
256],
64399:[[
1705],
256],
64400:[[
1705],
256],
64401:[[
1705],
256],
64402:[[
1711],
256],
64403:[[
1711],
256],
64404:[[
1711],
256],
64405:[[
1711],
256],
64406:[[
1715],
256],
64407:[[
1715],
256],
64408:[[
1715],
256],
64409:[[
1715],
256],
64410:[[
1713],
256],
64411:[[
1713],
256],
64412:[[
1713],
256],
64413:[[
1713],
256],
64414:[[
1722],
256],
64415:[[
1722],
256],
64416:[[
1723],
256],
64417:[[
1723],
256],
64418:[[
1723],
256],
64419:[[
1723],
256],
64420:[[
1728],
256],
64421:[[
1728],
256],
64422:[[
1729],
256],
64423:[[
1729],
256],
64424:[[
1729],
256],
64425:[[
1729],
256],
64426:[[
1726],
256],
64427:[[
1726],
256],
64428:[[
1726],
256],
64429:[[
1726],
256],
64430:[[
1746],
256],
64431:[[
1746],
256],
64432:[[
1747],
256],
64433:[[
1747],
256],
64467:[[
1709],
256],
64468:[[
1709],
256],
64469:[[
1709],
256],
64470:[[
1709],
256],
64471:[[
1735],
256],
64472:[[
1735],
256],
64473:[[
1734],
256],
64474:[[
1734],
256],
64475:[[
1736],
256],
64476:[[
1736],
256],
64477:[[
1655],
256],
64478:[[
1739],
256],
64479:[[
1739],
256],
64480:[[
1733],
256],
64481:[[
1733],
256],
64482:[[
1737],
256],
64483:[[
1737],
256],
64484:[[
1744],
256],
64485:[[
1744],
256],
64486:[[
1744],
256],
64487:[[
1744],
256],
64488:[[
1609],
256],
64489:[[
1609],
256],
64490:[[
1574,
1575],
256],
64491:[[
1574,
1575],
256],
64492:[[
1574,
1749],
256],
64493:[[
1574,
1749],
256],
64494:[[
1574,
1608],
256],
64495:[[
1574,
1608],
256],
64496:[[
1574,
1735],
256],
64497:[[
1574,
1735],
256],
64498:[[
1574,
1734],
256],
64499:[[
1574,
1734],
256],
64500:[[
1574,
1736],
256],
64501:[[
1574,
1736],
256],
64502:[[
1574,
1744],
256],
64503:[[
1574,
1744],
256],
64504:[[
1574,
1744],
256],
64505:[[
1574,
1609],
256],
64506:[[
1574,
1609],
256],
64507:[[
1574,
1609],
256],
64508:[[
1740],
256],
64509:[[
1740],
256],
64510:[[
1740],
256],
64511:[[
1740],
256]},
7005 64512:{
64512:[[
1574,
1580],
256],
64513:[[
1574,
1581],
256],
64514:[[
1574,
1605],
256],
64515:[[
1574,
1609],
256],
64516:[[
1574,
1610],
256],
64517:[[
1576,
1580],
256],
64518:[[
1576,
1581],
256],
64519:[[
1576,
1582],
256],
64520:[[
1576,
1605],
256],
64521:[[
1576,
1609],
256],
64522:[[
1576,
1610],
256],
64523:[[
1578,
1580],
256],
64524:[[
1578,
1581],
256],
64525:[[
1578,
1582],
256],
64526:[[
1578,
1605],
256],
64527:[[
1578,
1609],
256],
64528:[[
1578,
1610],
256],
64529:[[
1579,
1580],
256],
64530:[[
1579,
1605],
256],
64531:[[
1579,
1609],
256],
64532:[[
1579,
1610],
256],
64533:[[
1580,
1581],
256],
64534:[[
1580,
1605],
256],
64535:[[
1581,
1580],
256],
64536:[[
1581,
1605],
256],
64537:[[
1582,
1580],
256],
64538:[[
1582,
1581],
256],
64539:[[
1582,
1605],
256],
64540:[[
1587,
1580],
256],
64541:[[
1587,
1581],
256],
64542:[[
1587,
1582],
256],
64543:[[
1587,
1605],
256],
64544:[[
1589,
1581],
256],
64545:[[
1589,
1605],
256],
64546:[[
1590,
1580],
256],
64547:[[
1590,
1581],
256],
64548:[[
1590,
1582],
256],
64549:[[
1590,
1605],
256],
64550:[[
1591,
1581],
256],
64551:[[
1591,
1605],
256],
64552:[[
1592,
1605],
256],
64553:[[
1593,
1580],
256],
64554:[[
1593,
1605],
256],
64555:[[
1594,
1580],
256],
64556:[[
1594,
1605],
256],
64557:[[
1601,
1580],
256],
64558:[[
1601,
1581],
256],
64559:[[
1601,
1582],
256],
64560:[[
1601,
1605],
256],
64561:[[
1601,
1609],
256],
64562:[[
1601,
1610],
256],
64563:[[
1602,
1581],
256],
64564:[[
1602,
1605],
256],
64565:[[
1602,
1609],
256],
64566:[[
1602,
1610],
256],
64567:[[
1603,
1575],
256],
64568:[[
1603,
1580],
256],
64569:[[
1603,
1581],
256],
64570:[[
1603,
1582],
256],
64571:[[
1603,
1604],
256],
64572:[[
1603,
1605],
256],
64573:[[
1603,
1609],
256],
64574:[[
1603,
1610],
256],
64575:[[
1604,
1580],
256],
64576:[[
1604,
1581],
256],
64577:[[
1604,
1582],
256],
64578:[[
1604,
1605],
256],
64579:[[
1604,
1609],
256],
64580:[[
1604,
1610],
256],
64581:[[
1605,
1580],
256],
64582:[[
1605,
1581],
256],
64583:[[
1605,
1582],
256],
64584:[[
1605,
1605],
256],
64585:[[
1605,
1609],
256],
64586:[[
1605,
1610],
256],
64587:[[
1606,
1580],
256],
64588:[[
1606,
1581],
256],
64589:[[
1606,
1582],
256],
64590:[[
1606,
1605],
256],
64591:[[
1606,
1609],
256],
64592:[[
1606,
1610],
256],
64593:[[
1607,
1580],
256],
64594:[[
1607,
1605],
256],
64595:[[
1607,
1609],
256],
64596:[[
1607,
1610],
256],
64597:[[
1610,
1580],
256],
64598:[[
1610,
1581],
256],
64599:[[
1610,
1582],
256],
64600:[[
1610,
1605],
256],
64601:[[
1610,
1609],
256],
64602:[[
1610,
1610],
256],
64603:[[
1584,
1648],
256],
64604:[[
1585,
1648],
256],
64605:[[
1609,
1648],
256],
64606:[[
32,
1612,
1617],
256],
64607:[[
32,
1613,
1617],
256],
64608:[[
32,
1614,
1617],
256],
64609:[[
32,
1615,
1617],
256],
64610:[[
32,
1616,
1617],
256],
64611:[[
32,
1617,
1648],
256],
64612:[[
1574,
1585],
256],
64613:[[
1574,
1586],
256],
64614:[[
1574,
1605],
256],
64615:[[
1574,
1606],
256],
64616:[[
1574,
1609],
256],
64617:[[
1574,
1610],
256],
64618:[[
1576,
1585],
256],
64619:[[
1576,
1586],
256],
64620:[[
1576,
1605],
256],
64621:[[
1576,
1606],
256],
64622:[[
1576,
1609],
256],
64623:[[
1576,
1610],
256],
64624:[[
1578,
1585],
256],
64625:[[
1578,
1586],
256],
64626:[[
1578,
1605],
256],
64627:[[
1578,
1606],
256],
64628:[[
1578,
1609],
256],
64629:[[
1578,
1610],
256],
64630:[[
1579,
1585],
256],
64631:[[
1579,
1586],
256],
64632:[[
1579,
1605],
256],
64633:[[
1579,
1606],
256],
64634:[[
1579,
1609],
256],
64635:[[
1579,
1610],
256],
64636:[[
1601,
1609],
256],
64637:[[
1601,
1610],
256],
64638:[[
1602,
1609],
256],
64639:[[
1602,
1610],
256],
64640:[[
1603,
1575],
256],
64641:[[
1603,
1604],
256],
64642:[[
1603,
1605],
256],
64643:[[
1603,
1609],
256],
64644:[[
1603,
1610],
256],
64645:[[
1604,
1605],
256],
64646:[[
1604,
1609],
256],
64647:[[
1604,
1610],
256],
64648:[[
1605,
1575],
256],
64649:[[
1605,
1605],
256],
64650:[[
1606,
1585],
256],
64651:[[
1606,
1586],
256],
64652:[[
1606,
1605],
256],
64653:[[
1606,
1606],
256],
64654:[[
1606,
1609],
256],
64655:[[
1606,
1610],
256],
64656:[[
1609,
1648],
256],
64657:[[
1610,
1585],
256],
64658:[[
1610,
1586],
256],
64659:[[
1610,
1605],
256],
64660:[[
1610,
1606],
256],
64661:[[
1610,
1609],
256],
64662:[[
1610,
1610],
256],
64663:[[
1574,
1580],
256],
64664:[[
1574,
1581],
256],
64665:[[
1574,
1582],
256],
64666:[[
1574,
1605],
256],
64667:[[
1574,
1607],
256],
64668:[[
1576,
1580],
256],
64669:[[
1576,
1581],
256],
64670:[[
1576,
1582],
256],
64671:[[
1576,
1605],
256],
64672:[[
1576,
1607],
256],
64673:[[
1578,
1580],
256],
64674:[[
1578,
1581],
256],
64675:[[
1578,
1582],
256],
64676:[[
1578,
1605],
256],
64677:[[
1578,
1607],
256],
64678:[[
1579,
1605],
256],
64679:[[
1580,
1581],
256],
64680:[[
1580,
1605],
256],
64681:[[
1581,
1580],
256],
64682:[[
1581,
1605],
256],
64683:[[
1582,
1580],
256],
64684:[[
1582,
1605],
256],
64685:[[
1587,
1580],
256],
64686:[[
1587,
1581],
256],
64687:[[
1587,
1582],
256],
64688:[[
1587,
1605],
256],
64689:[[
1589,
1581],
256],
64690:[[
1589,
1582],
256],
64691:[[
1589,
1605],
256],
64692:[[
1590,
1580],
256],
64693:[[
1590,
1581],
256],
64694:[[
1590,
1582],
256],
64695:[[
1590,
1605],
256],
64696:[[
1591,
1581],
256],
64697:[[
1592,
1605],
256],
64698:[[
1593,
1580],
256],
64699:[[
1593,
1605],
256],
64700:[[
1594,
1580],
256],
64701:[[
1594,
1605],
256],
64702:[[
1601,
1580],
256],
64703:[[
1601,
1581],
256],
64704:[[
1601,
1582],
256],
64705:[[
1601,
1605],
256],
64706:[[
1602,
1581],
256],
64707:[[
1602,
1605],
256],
64708:[[
1603,
1580],
256],
64709:[[
1603,
1581],
256],
64710:[[
1603,
1582],
256],
64711:[[
1603,
1604],
256],
64712:[[
1603,
1605],
256],
64713:[[
1604,
1580],
256],
64714:[[
1604,
1581],
256],
64715:[[
1604,
1582],
256],
64716:[[
1604,
1605],
256],
64717:[[
1604,
1607],
256],
64718:[[
1605,
1580],
256],
64719:[[
1605,
1581],
256],
64720:[[
1605,
1582],
256],
64721:[[
1605,
1605],
256],
64722:[[
1606,
1580],
256],
64723:[[
1606,
1581],
256],
64724:[[
1606,
1582],
256],
64725:[[
1606,
1605],
256],
64726:[[
1606,
1607],
256],
64727:[[
1607,
1580],
256],
64728:[[
1607,
1605],
256],
64729:[[
1607,
1648],
256],
64730:[[
1610,
1580],
256],
64731:[[
1610,
1581],
256],
64732:[[
1610,
1582],
256],
64733:[[
1610,
1605],
256],
64734:[[
1610,
1607],
256],
64735:[[
1574,
1605],
256],
64736:[[
1574,
1607],
256],
64737:[[
1576,
1605],
256],
64738:[[
1576,
1607],
256],
64739:[[
1578,
1605],
256],
64740:[[
1578,
1607],
256],
64741:[[
1579,
1605],
256],
64742:[[
1579,
1607],
256],
64743:[[
1587,
1605],
256],
64744:[[
1587,
1607],
256],
64745:[[
1588,
1605],
256],
64746:[[
1588,
1607],
256],
64747:[[
1603,
1604],
256],
64748:[[
1603,
1605],
256],
64749:[[
1604,
1605],
256],
64750:[[
1606,
1605],
256],
64751:[[
1606,
1607],
256],
64752:[[
1610,
1605],
256],
64753:[[
1610,
1607],
256],
64754:[[
1600,
1614,
1617],
256],
64755:[[
1600,
1615,
1617],
256],
64756:[[
1600,
1616,
1617],
256],
64757:[[
1591,
1609],
256],
64758:[[
1591,
1610],
256],
64759:[[
1593,
1609],
256],
64760:[[
1593,
1610],
256],
64761:[[
1594,
1609],
256],
64762:[[
1594,
1610],
256],
64763:[[
1587,
1609],
256],
64764:[[
1587,
1610],
256],
64765:[[
1588,
1609],
256],
64766:[[
1588,
1610],
256],
64767:[[
1581,
1609],
256]},
7006 64768:{
64768:[[
1581,
1610],
256],
64769:[[
1580,
1609],
256],
64770:[[
1580,
1610],
256],
64771:[[
1582,
1609],
256],
64772:[[
1582,
1610],
256],
64773:[[
1589,
1609],
256],
64774:[[
1589,
1610],
256],
64775:[[
1590,
1609],
256],
64776:[[
1590,
1610],
256],
64777:[[
1588,
1580],
256],
64778:[[
1588,
1581],
256],
64779:[[
1588,
1582],
256],
64780:[[
1588,
1605],
256],
64781:[[
1588,
1585],
256],
64782:[[
1587,
1585],
256],
64783:[[
1589,
1585],
256],
64784:[[
1590,
1585],
256],
64785:[[
1591,
1609],
256],
64786:[[
1591,
1610],
256],
64787:[[
1593,
1609],
256],
64788:[[
1593,
1610],
256],
64789:[[
1594,
1609],
256],
64790:[[
1594,
1610],
256],
64791:[[
1587,
1609],
256],
64792:[[
1587,
1610],
256],
64793:[[
1588,
1609],
256],
64794:[[
1588,
1610],
256],
64795:[[
1581,
1609],
256],
64796:[[
1581,
1610],
256],
64797:[[
1580,
1609],
256],
64798:[[
1580,
1610],
256],
64799:[[
1582,
1609],
256],
64800:[[
1582,
1610],
256],
64801:[[
1589,
1609],
256],
64802:[[
1589,
1610],
256],
64803:[[
1590,
1609],
256],
64804:[[
1590,
1610],
256],
64805:[[
1588,
1580],
256],
64806:[[
1588,
1581],
256],
64807:[[
1588,
1582],
256],
64808:[[
1588,
1605],
256],
64809:[[
1588,
1585],
256],
64810:[[
1587,
1585],
256],
64811:[[
1589,
1585],
256],
64812:[[
1590,
1585],
256],
64813:[[
1588,
1580],
256],
64814:[[
1588,
1581],
256],
64815:[[
1588,
1582],
256],
64816:[[
1588,
1605],
256],
64817:[[
1587,
1607],
256],
64818:[[
1588,
1607],
256],
64819:[[
1591,
1605],
256],
64820:[[
1587,
1580],
256],
64821:[[
1587,
1581],
256],
64822:[[
1587,
1582],
256],
64823:[[
1588,
1580],
256],
64824:[[
1588,
1581],
256],
64825:[[
1588,
1582],
256],
64826:[[
1591,
1605],
256],
64827:[[
1592,
1605],
256],
64828:[[
1575,
1611],
256],
64829:[[
1575,
1611],
256],
64848:[[
1578,
1580,
1605],
256],
64849:[[
1578,
1581,
1580],
256],
64850:[[
1578,
1581,
1580],
256],
64851:[[
1578,
1581,
1605],
256],
64852:[[
1578,
1582,
1605],
256],
64853:[[
1578,
1605,
1580],
256],
64854:[[
1578,
1605,
1581],
256],
64855:[[
1578,
1605,
1582],
256],
64856:[[
1580,
1605,
1581],
256],
64857:[[
1580,
1605,
1581],
256],
64858:[[
1581,
1605,
1610],
256],
64859:[[
1581,
1605,
1609],
256],
64860:[[
1587,
1581,
1580],
256],
64861:[[
1587,
1580,
1581],
256],
64862:[[
1587,
1580,
1609],
256],
64863:[[
1587,
1605,
1581],
256],
64864:[[
1587,
1605,
1581],
256],
64865:[[
1587,
1605,
1580],
256],
64866:[[
1587,
1605,
1605],
256],
64867:[[
1587,
1605,
1605],
256],
64868:[[
1589,
1581,
1581],
256],
64869:[[
1589,
1581,
1581],
256],
64870:[[
1589,
1605,
1605],
256],
64871:[[
1588,
1581,
1605],
256],
64872:[[
1588,
1581,
1605],
256],
64873:[[
1588,
1580,
1610],
256],
64874:[[
1588,
1605,
1582],
256],
64875:[[
1588,
1605,
1582],
256],
64876:[[
1588,
1605,
1605],
256],
64877:[[
1588,
1605,
1605],
256],
64878:[[
1590,
1581,
1609],
256],
64879:[[
1590,
1582,
1605],
256],
64880:[[
1590,
1582,
1605],
256],
64881:[[
1591,
1605,
1581],
256],
64882:[[
1591,
1605,
1581],
256],
64883:[[
1591,
1605,
1605],
256],
64884:[[
1591,
1605,
1610],
256],
64885:[[
1593,
1580,
1605],
256],
64886:[[
1593,
1605,
1605],
256],
64887:[[
1593,
1605,
1605],
256],
64888:[[
1593,
1605,
1609],
256],
64889:[[
1594,
1605,
1605],
256],
64890:[[
1594,
1605,
1610],
256],
64891:[[
1594,
1605,
1609],
256],
64892:[[
1601,
1582,
1605],
256],
64893:[[
1601,
1582,
1605],
256],
64894:[[
1602,
1605,
1581],
256],
64895:[[
1602,
1605,
1605],
256],
64896:[[
1604,
1581,
1605],
256],
64897:[[
1604,
1581,
1610],
256],
64898:[[
1604,
1581,
1609],
256],
64899:[[
1604,
1580,
1580],
256],
64900:[[
1604,
1580,
1580],
256],
64901:[[
1604,
1582,
1605],
256],
64902:[[
1604,
1582,
1605],
256],
64903:[[
1604,
1605,
1581],
256],
64904:[[
1604,
1605,
1581],
256],
64905:[[
1605,
1581,
1580],
256],
64906:[[
1605,
1581,
1605],
256],
64907:[[
1605,
1581,
1610],
256],
64908:[[
1605,
1580,
1581],
256],
64909:[[
1605,
1580,
1605],
256],
64910:[[
1605,
1582,
1580],
256],
64911:[[
1605,
1582,
1605],
256],
64914:[[
1605,
1580,
1582],
256],
64915:[[
1607,
1605,
1580],
256],
64916:[[
1607,
1605,
1605],
256],
64917:[[
1606,
1581,
1605],
256],
64918:[[
1606,
1581,
1609],
256],
64919:[[
1606,
1580,
1605],
256],
64920:[[
1606,
1580,
1605],
256],
64921:[[
1606,
1580,
1609],
256],
64922:[[
1606,
1605,
1610],
256],
64923:[[
1606,
1605,
1609],
256],
64924:[[
1610,
1605,
1605],
256],
64925:[[
1610,
1605,
1605],
256],
64926:[[
1576,
1582,
1610],
256],
64927:[[
1578,
1580,
1610],
256],
64928:[[
1578,
1580,
1609],
256],
64929:[[
1578,
1582,
1610],
256],
64930:[[
1578,
1582,
1609],
256],
64931:[[
1578,
1605,
1610],
256],
64932:[[
1578,
1605,
1609],
256],
64933:[[
1580,
1605,
1610],
256],
64934:[[
1580,
1581,
1609],
256],
64935:[[
1580,
1605,
1609],
256],
64936:[[
1587,
1582,
1609],
256],
64937:[[
1589,
1581,
1610],
256],
64938:[[
1588,
1581,
1610],
256],
64939:[[
1590,
1581,
1610],
256],
64940:[[
1604,
1580,
1610],
256],
64941:[[
1604,
1605,
1610],
256],
64942:[[
1610,
1581,
1610],
256],
64943:[[
1610,
1580,
1610],
256],
64944:[[
1610,
1605,
1610],
256],
64945:[[
1605,
1605,
1610],
256],
64946:[[
1602,
1605,
1610],
256],
64947:[[
1606,
1581,
1610],
256],
64948:[[
1602,
1605,
1581],
256],
64949:[[
1604,
1581,
1605],
256],
64950:[[
1593,
1605,
1610],
256],
64951:[[
1603,
1605,
1610],
256],
64952:[[
1606,
1580,
1581],
256],
64953:[[
1605,
1582,
1610],
256],
64954:[[
1604,
1580,
1605],
256],
64955:[[
1603,
1605,
1605],
256],
64956:[[
1604,
1580,
1605],
256],
64957:[[
1606,
1580,
1581],
256],
64958:[[
1580,
1581,
1610],
256],
64959:[[
1581,
1580,
1610],
256],
64960:[[
1605,
1580,
1610],
256],
64961:[[
1601,
1605,
1610],
256],
64962:[[
1576,
1581,
1610],
256],
64963:[[
1603,
1605,
1605],
256],
64964:[[
1593,
1580,
1605],
256],
64965:[[
1589,
1605,
1605],
256],
64966:[[
1587,
1582,
1610],
256],
64967:[[
1606,
1580,
1610],
256],
65008:[[
1589,
1604,
1746],
256],
65009:[[
1602,
1604,
1746],
256],
65010:[[
1575,
1604,
1604,
1607],
256],
65011:[[
1575,
1603,
1576,
1585],
256],
65012:[[
1605,
1581,
1605,
1583],
256],
65013:[[
1589,
1604,
1593,
1605],
256],
65014:[[
1585,
1587,
1608,
1604],
256],
65015:[[
1593,
1604,
1610,
1607],
256],
65016:[[
1608,
1587,
1604,
1605],
256],
65017:[[
1589,
1604,
1609],
256],
65018:[[
1589,
1604,
1609,
32,
1575,
1604,
1604,
1607,
32,
1593,
1604,
1610,
1607,
32,
1608,
1587,
1604,
1605],
256],
65019:[[
1580,
1604,
32,
1580,
1604,
1575,
1604,
1607],
256],
65020:[[
1585,
1740,
1575,
1604],
256]},
7007 65024:{
65040:[[
44],
256],
65041:[[
12289],
256],
65042:[[
12290],
256],
65043:[[
58],
256],
65044:[[
59],
256],
65045:[[
33],
256],
65046:[[
63],
256],
65047:[[
12310],
256],
65048:[[
12311],
256],
65049:[[
8230],
256],
65056:[,
230],
65057:[,
230],
65058:[,
230],
65059:[,
230],
65060:[,
230],
65061:[,
230],
65062:[,
230],
65063:[,
220],
65064:[,
220],
65065:[,
220],
65066:[,
220],
65067:[,
220],
65068:[,
220],
65069:[,
220],
65072:[[
8229],
256],
65073:[[
8212],
256],
65074:[[
8211],
256],
65075:[[
95],
256],
65076:[[
95],
256],
65077:[[
40],
256],
65078:[[
41],
256],
65079:[[
123],
256],
65080:[[
125],
256],
65081:[[
12308],
256],
65082:[[
12309],
256],
65083:[[
12304],
256],
65084:[[
12305],
256],
65085:[[
12298],
256],
65086:[[
12299],
256],
65087:[[
12296],
256],
65088:[[
12297],
256],
65089:[[
12300],
256],
65090:[[
12301],
256],
65091:[[
12302],
256],
65092:[[
12303],
256],
65095:[[
91],
256],
65096:[[
93],
256],
65097:[[
8254],
256],
65098:[[
8254],
256],
65099:[[
8254],
256],
65100:[[
8254],
256],
65101:[[
95],
256],
65102:[[
95],
256],
65103:[[
95],
256],
65104:[[
44],
256],
65105:[[
12289],
256],
65106:[[
46],
256],
65108:[[
59],
256],
65109:[[
58],
256],
65110:[[
63],
256],
65111:[[
33],
256],
65112:[[
8212],
256],
65113:[[
40],
256],
65114:[[
41],
256],
65115:[[
123],
256],
65116:[[
125],
256],
65117:[[
12308],
256],
65118:[[
12309],
256],
65119:[[
35],
256],
65120:[[
38],
256],
65121:[[
42],
256],
65122:[[
43],
256],
65123:[[
45],
256],
65124:[[
60],
256],
65125:[[
62],
256],
65126:[[
61],
256],
65128:[[
92],
256],
65129:[[
36],
256],
65130:[[
37],
256],
65131:[[
64],
256],
65136:[[
32,
1611],
256],
65137:[[
1600,
1611],
256],
65138:[[
32,
1612],
256],
65140:[[
32,
1613],
256],
65142:[[
32,
1614],
256],
65143:[[
1600,
1614],
256],
65144:[[
32,
1615],
256],
65145:[[
1600,
1615],
256],
65146:[[
32,
1616],
256],
65147:[[
1600,
1616],
256],
65148:[[
32,
1617],
256],
65149:[[
1600,
1617],
256],
65150:[[
32,
1618],
256],
65151:[[
1600,
1618],
256],
65152:[[
1569],
256],
65153:[[
1570],
256],
65154:[[
1570],
256],
65155:[[
1571],
256],
65156:[[
1571],
256],
65157:[[
1572],
256],
65158:[[
1572],
256],
65159:[[
1573],
256],
65160:[[
1573],
256],
65161:[[
1574],
256],
65162:[[
1574],
256],
65163:[[
1574],
256],
65164:[[
1574],
256],
65165:[[
1575],
256],
65166:[[
1575],
256],
65167:[[
1576],
256],
65168:[[
1576],
256],
65169:[[
1576],
256],
65170:[[
1576],
256],
65171:[[
1577],
256],
65172:[[
1577],
256],
65173:[[
1578],
256],
65174:[[
1578],
256],
65175:[[
1578],
256],
65176:[[
1578],
256],
65177:[[
1579],
256],
65178:[[
1579],
256],
65179:[[
1579],
256],
65180:[[
1579],
256],
65181:[[
1580],
256],
65182:[[
1580],
256],
65183:[[
1580],
256],
65184:[[
1580],
256],
65185:[[
1581],
256],
65186:[[
1581],
256],
65187:[[
1581],
256],
65188:[[
1581],
256],
65189:[[
1582],
256],
65190:[[
1582],
256],
65191:[[
1582],
256],
65192:[[
1582],
256],
65193:[[
1583],
256],
65194:[[
1583],
256],
65195:[[
1584],
256],
65196:[[
1584],
256],
65197:[[
1585],
256],
65198:[[
1585],
256],
65199:[[
1586],
256],
65200:[[
1586],
256],
65201:[[
1587],
256],
65202:[[
1587],
256],
65203:[[
1587],
256],
65204:[[
1587],
256],
65205:[[
1588],
256],
65206:[[
1588],
256],
65207:[[
1588],
256],
65208:[[
1588],
256],
65209:[[
1589],
256],
65210:[[
1589],
256],
65211:[[
1589],
256],
65212:[[
1589],
256],
65213:[[
1590],
256],
65214:[[
1590],
256],
65215:[[
1590],
256],
65216:[[
1590],
256],
65217:[[
1591],
256],
65218:[[
1591],
256],
65219:[[
1591],
256],
65220:[[
1591],
256],
65221:[[
1592],
256],
65222:[[
1592],
256],
65223:[[
1592],
256],
65224:[[
1592],
256],
65225:[[
1593],
256],
65226:[[
1593],
256],
65227:[[
1593],
256],
65228:[[
1593],
256],
65229:[[
1594],
256],
65230:[[
1594],
256],
65231:[[
1594],
256],
65232:[[
1594],
256],
65233:[[
1601],
256],
65234:[[
1601],
256],
65235:[[
1601],
256],
65236:[[
1601],
256],
65237:[[
1602],
256],
65238:[[
1602],
256],
65239:[[
1602],
256],
65240:[[
1602],
256],
65241:[[
1603],
256],
65242:[[
1603],
256],
65243:[[
1603],
256],
65244:[[
1603],
256],
65245:[[
1604],
256],
65246:[[
1604],
256],
65247:[[
1604],
256],
65248:[[
1604],
256],
65249:[[
1605],
256],
65250:[[
1605],
256],
65251:[[
1605],
256],
65252:[[
1605],
256],
65253:[[
1606],
256],
65254:[[
1606],
256],
65255:[[
1606],
256],
65256:[[
1606],
256],
65257:[[
1607],
256],
65258:[[
1607],
256],
65259:[[
1607],
256],
65260:[[
1607],
256],
65261:[[
1608],
256],
65262:[[
1608],
256],
65263:[[
1609],
256],
65264:[[
1609],
256],
65265:[[
1610],
256],
65266:[[
1610],
256],
65267:[[
1610],
256],
65268:[[
1610],
256],
65269:[[
1604,
1570],
256],
65270:[[
1604,
1570],
256],
65271:[[
1604,
1571],
256],
65272:[[
1604,
1571],
256],
65273:[[
1604,
1573],
256],
65274:[[
1604,
1573],
256],
65275:[[
1604,
1575],
256],
65276:[[
1604,
1575],
256]},
7008 65280:{
65281:[[
33],
256],
65282:[[
34],
256],
65283:[[
35],
256],
65284:[[
36],
256],
65285:[[
37],
256],
65286:[[
38],
256],
65287:[[
39],
256],
65288:[[
40],
256],
65289:[[
41],
256],
65290:[[
42],
256],
65291:[[
43],
256],
65292:[[
44],
256],
65293:[[
45],
256],
65294:[[
46],
256],
65295:[[
47],
256],
65296:[[
48],
256],
65297:[[
49],
256],
65298:[[
50],
256],
65299:[[
51],
256],
65300:[[
52],
256],
65301:[[
53],
256],
65302:[[
54],
256],
65303:[[
55],
256],
65304:[[
56],
256],
65305:[[
57],
256],
65306:[[
58],
256],
65307:[[
59],
256],
65308:[[
60],
256],
65309:[[
61],
256],
65310:[[
62],
256],
65311:[[
63],
256],
65312:[[
64],
256],
65313:[[
65],
256],
65314:[[
66],
256],
65315:[[
67],
256],
65316:[[
68],
256],
65317:[[
69],
256],
65318:[[
70],
256],
65319:[[
71],
256],
65320:[[
72],
256],
65321:[[
73],
256],
65322:[[
74],
256],
65323:[[
75],
256],
65324:[[
76],
256],
65325:[[
77],
256],
65326:[[
78],
256],
65327:[[
79],
256],
65328:[[
80],
256],
65329:[[
81],
256],
65330:[[
82],
256],
65331:[[
83],
256],
65332:[[
84],
256],
65333:[[
85],
256],
65334:[[
86],
256],
65335:[[
87],
256],
65336:[[
88],
256],
65337:[[
89],
256],
65338:[[
90],
256],
65339:[[
91],
256],
65340:[[
92],
256],
65341:[[
93],
256],
65342:[[
94],
256],
65343:[[
95],
256],
65344:[[
96],
256],
65345:[[
97],
256],
65346:[[
98],
256],
65347:[[
99],
256],
65348:[[
100],
256],
65349:[[
101],
256],
65350:[[
102],
256],
65351:[[
103],
256],
65352:[[
104],
256],
65353:[[
105],
256],
65354:[[
106],
256],
65355:[[
107],
256],
65356:[[
108],
256],
65357:[[
109],
256],
65358:[[
110],
256],
65359:[[
111],
256],
65360:[[
112],
256],
65361:[[
113],
256],
65362:[[
114],
256],
65363:[[
115],
256],
65364:[[
116],
256],
65365:[[
117],
256],
65366:[[
118],
256],
65367:[[
119],
256],
65368:[[
120],
256],
65369:[[
121],
256],
65370:[[
122],
256],
65371:[[
123],
256],
65372:[[
124],
256],
65373:[[
125],
256],
65374:[[
126],
256],
65375:[[
10629],
256],
65376:[[
10630],
256],
65377:[[
12290],
256],
65378:[[
12300],
256],
65379:[[
12301],
256],
65380:[[
12289],
256],
65381:[[
12539],
256],
65382:[[
12530],
256],
65383:[[
12449],
256],
65384:[[
12451],
256],
65385:[[
12453],
256],
65386:[[
12455],
256],
65387:[[
12457],
256],
65388:[[
12515],
256],
65389:[[
12517],
256],
65390:[[
12519],
256],
65391:[[
12483],
256],
65392:[[
12540],
256],
65393:[[
12450],
256],
65394:[[
12452],
256],
65395:[[
12454],
256],
65396:[[
12456],
256],
65397:[[
12458],
256],
65398:[[
12459],
256],
65399:[[
12461],
256],
65400:[[
12463],
256],
65401:[[
12465],
256],
65402:[[
12467],
256],
65403:[[
12469],
256],
65404:[[
12471],
256],
65405:[[
12473],
256],
65406:[[
12475],
256],
65407:[[
12477],
256],
65408:[[
12479],
256],
65409:[[
12481],
256],
65410:[[
12484],
256],
65411:[[
12486],
256],
65412:[[
12488],
256],
65413:[[
12490],
256],
65414:[[
12491],
256],
65415:[[
12492],
256],
65416:[[
12493],
256],
65417:[[
12494],
256],
65418:[[
12495],
256],
65419:[[
12498],
256],
65420:[[
12501],
256],
65421:[[
12504],
256],
65422:[[
12507],
256],
65423:[[
12510],
256],
65424:[[
12511],
256],
65425:[[
12512],
256],
65426:[[
12513],
256],
65427:[[
12514],
256],
65428:[[
12516],
256],
65429:[[
12518],
256],
65430:[[
12520],
256],
65431:[[
12521],
256],
65432:[[
12522],
256],
65433:[[
12523],
256],
65434:[[
12524],
256],
65435:[[
12525],
256],
65436:[[
12527],
256],
65437:[[
12531],
256],
65438:[[
12441],
256],
65439:[[
12442],
256],
65440:[[
12644],
256],
65441:[[
12593],
256],
65442:[[
12594],
256],
65443:[[
12595],
256],
65444:[[
12596],
256],
65445:[[
12597],
256],
65446:[[
12598],
256],
65447:[[
12599],
256],
65448:[[
12600],
256],
65449:[[
12601],
256],
65450:[[
12602],
256],
65451:[[
12603],
256],
65452:[[
12604],
256],
65453:[[
12605],
256],
65454:[[
12606],
256],
65455:[[
12607],
256],
65456:[[
12608],
256],
65457:[[
12609],
256],
65458:[[
12610],
256],
65459:[[
12611],
256],
65460:[[
12612],
256],
65461:[[
12613],
256],
65462:[[
12614],
256],
65463:[[
12615],
256],
65464:[[
12616],
256],
65465:[[
12617],
256],
65466:[[
12618],
256],
65467:[[
12619],
256],
65468:[[
12620],
256],
65469:[[
12621],
256],
65470:[[
12622],
256],
65474:[[
12623],
256],
65475:[[
12624],
256],
65476:[[
12625],
256],
65477:[[
12626],
256],
65478:[[
12627],
256],
65479:[[
12628],
256],
65482:[[
12629],
256],
65483:[[
12630],
256],
65484:[[
12631],
256],
65485:[[
12632],
256],
65486:[[
12633],
256],
65487:[[
12634],
256],
65490:[[
12635],
256],
65491:[[
12636],
256],
65492:[[
12637],
256],
65493:[[
12638],
256],
65494:[[
12639],
256],
65495:[[
12640],
256],
65498:[[
12641],
256],
65499:[[
12642],
256],
65500:[[
12643],
256],
65504:[[
162],
256],
65505:[[
163],
256],
65506:[[
172],
256],
65507:[[
175],
256],
65508:[[
166],
256],
65509:[[
165],
256],
65510:[[
8361],
256],
65512:[[
9474],
256],
65513:[[
8592],
256],
65514:[[
8593],
256],
65515:[[
8594],
256],
65516:[[
8595],
256],
65517:[[
9632],
256],
65518:[[
9675],
256]}
7012 /***** Module to export */
7020 /*globals module:true,define:true*/
7023 if (typeof module ===
"object") {
7024 module.exports = unorm;
7027 } else if (typeof define ===
"function" && define.amd) {
7028 define(
"unorm", function () {
7037 /***** Export as shim for String::normalize method *****/
7039 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7041 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7042 When the normalize method is called with one argument form, the following steps are taken:
7044 1. Let O be CheckObjectCoercible(this value).
7045 2. Let S be ToString(O).
7046 3. ReturnIfAbrupt(S).
7047 4. If form is not provided or undefined let form be
"NFC".
7048 5. Let f be ToString(form).
7049 6. ReturnIfAbrupt(f).
7050 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7051 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #
15, UnicodeNormalizatoin Forms.
7054 The length property of the normalize method is
0.
7056 *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.
7058 unorm.shimApplied = false;
7060 if (!String.prototype.normalize) {
7061 String.prototype.normalize = function(form) {
7062 var str =
"" + this;
7063 form = form === undefined ?
"NFC" : form;
7065 if (form ===
"NFC") {
7066 return unorm.nfc(str);
7067 } else if (form ===
"NFD") {
7068 return unorm.nfd(str);
7069 } else if (form ===
"NFKC") {
7070 return unorm.nfkc(str);
7071 } else if (form ===
"NFKD") {
7072 return unorm.nfkd(str);
7074 throw new RangeError(
"Invalid normalization form: " + form);
7078 unorm.shimApplied = true;
7082 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7083 !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!
0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,
m="
2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:
0,toArray:function(){return d.call(this)},get:function(a){return null!=a?
0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(
0)},last:function(){return this.eq(-
1)},eq:function(a){var b=this.length,c=+a+(
0>a?b:
0);return this.pushStack(c
>=
0&&b
>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[
0]||{},h=
1,i=arguments.length,j=!
1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i
>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!
1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void
0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!
0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)
>=
0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!
1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!
1:!
0},isEmptyObject:function(a){var b;for(b in a)return!
1;return!
0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(
1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=
0,f=a.length,g=s(a);if(c){if(g){for(;f
>e;e++)if(d=b.apply(a[e],c),d===!
1)break}else for(e in a)if(d=b.apply(a[e],c),d===!
1)break}else if(g){for(;f
>e;e++)if(d=b.call(a[e],e,a[e]),d===!
1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!
1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-
1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=
0,e=a.length;c
>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=
0,g=a.length,h=!c;g
>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=
0,g=a.length,h=s(a),i=[];if(h)for(;g
>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:
1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,
2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void
0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!
1:
1===a.nodeType&&b?!
0:"array"===c||
0===b||"number"==typeof b&&b
>0&&b-
1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,
u=
"sizzle"+-new Date,v=a.document,w=
0,x=
0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!
0),
0},
C=
"undefined",D=
1<
<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=
0,c=this.length;c
>b;b++)if(this[b]===a)return b;return-
1},
L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
M="[\\x20\\t\\r\\n\\f]",
N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),
P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",
Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([
>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[
>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{
1,
6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var
d="
0x"+b-
65536;return d!==d||c?b:
0>d?String.fromCharCode(d+
65536):String.fromCharCode(d
>>10|
55296,
1023&d|
56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=
0;while(a[c++]=b[d++]);a.length=c-
1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||
"string"!=typeof a)return d;if(
1!==(k=b.nodeType)&&
9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[
1]){if(
9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[
2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[
3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=
9===k&&a,
1===k&&
"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(
"id"))?s=r.replace(bb,
"\\$&"):b.setAttribute(
"id",s),
s=
"[id='"+s+
"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(
",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(
"id")}}}return i(a.replace(R,
"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+
" ")
>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!
0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!
1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&
1===a.nodeType&&
1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-
1;return a?
1:-
1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!
1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&
9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!
1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.
className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.
innerHTML="
<div class='a'
></div><div class='a i'
></div>",a.firstChild.className="i
",2===a.getElementsByClassName("i
").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id
")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id
");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*
"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''
><option selected=''
></option></select>",a.querySelectorAll("[msallowclip^='']
").length&&q.push("[*^$]=
"+M+"*(?:''|\
"\")
"),a.querySelectorAll("[selected]
").length||q.push("\\[
"+M+"*(?:value|
"+L+")
"),a.querySelectorAll(":checked
").length||q.push(":checked
")}),ib(function(a){var b=e.createElement("input
");b.setAttribute("type
","hidden
"),a.appendChild(b).setAttribute("name
","D
"),a.querySelectorAll("[name=d]
").length&&q.push("name
"+M+"*[*^$|!~]?=
"),a.querySelectorAll(":enabled
").length||q.push(":enabled
",":disabled
"),a.querySelectorAll("*,:x
"),q.push(",.*:
")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div
"),s.call(a,"[s!='']:x
"),r.push("!=
",Q)}),q=q.length&&new RegExp(q.join("|
")),r=r.length&&new RegExp(r.join("|
")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$
1']
"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression:
"+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string
"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode
",first:!0}," ":{dir:"parentNode
"},"+
":{dir:"previousSibling
",first:!0},"~
":{dir:"previousSibling
"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~=
"===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth
"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even
"===a[3]||"odd
"===a[3])),a[5]=+(a[7]+a[8]||"odd
"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")
",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*
"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|
"+M+")
"+a+"(
"+M+"|$)
"))&&y(a,function(a){return b.test("string
"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class
")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!=
"===b:b?(e+="","=
"===b?e===c:"!=
"===b?e!==c:"^=
"===b?c&&0===e.indexOf(c):"*=
"===b?c&&e.indexOf(c)>-1:"$=
"===b?c&&e.slice(-c.length)===c:"~=
"===b?(" "+e+" ").indexOf(c)>-1:"|=
"===b?e===c||e.slice(0,c.length+1)===c+"-
":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth
"!==a.slice(0,3),g="last
"!==a.slice(-4),h="of-type
"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling
":"previousSibling
",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only
"===a&&!o&&"nextSibling
"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo:
"+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$
1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang:
"+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang
")||b.getAttribute("lang
"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-
");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&!!a.checked||"option
"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&"button
"===a.type||"button
"===b},text:function(a){var b;return"input
"===a.nodeName.toLowerCase()&&"text
"===a.type&&(null==(b=a.getAttribute("type
"))||"text
"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(
1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((
1===b.nodeType||e)&&a(b,c,g))return!
0}else while(b=b[d])if(
1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[
0]===w&&h[
1]===f)return j[
2]=h[
2];if(i[d]=j,j[
2]=a(b,c,g))return!
0}}}function sb(a){return a.length
>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!
1;return!
0}:a[
0]}function tb(a,b,c){for(var d=
0,e=b.length;e
>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=
0,i=a.length,j=null!=b;i
>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])
>-
1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[
0].type],h=g||d.relative[" "],i=g?
1:
0,k=rb(function(a){return a===b},h,!
0),l=rb(function(a){return K.call(b,a)
>-
1},h,!
0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f
>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f
>e;e++)if(d.relative[a[e].type])break;return vb(i
>1&&sb(m),i
>1&&qb(a.slice(
0,i-
1).concat({value:
" "===a[i-
2].type?
"*":
""})).replace(R,
"$1"),c,e
>i&&wb(a.slice(i,e)),f
>e&&wb(a=a.slice(e)),f
>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length
>0,e=a.length
>0,f=function(f,g,h,i,k){var l,m,o,p=
0,
q=
"0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(
"*",k),v=w+=null==t?
1:Math.random()||
.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=
0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=
0;while(o=b[m++])o(r,s,g,h);if(f){if(p
>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length
>0&&p+b.length
>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+
" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,
n=
"function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],
1===o.length){if(j=o[
0]=o[
0].slice(
0),j.length
>2&&
"ID"===(k=j[
0]).type&&c.getById&&
9===b.nodeType&&p&&d.relative[j[
1].type]){if(b=(d.find.ID(k.matches[
0].replace(cb,db),b)||[])[
0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?
0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[
0].replace(cb,db),ab.test(j[
0].type)&&ob(b.parentNode)||b))){if(j.splice(i,
1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split(
"").sort(B).join(
"")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return
1&a.compareDocumentPosition(n.createElement(
"div"))}),ib(function(a){return a.
innerHTML=
"<a href='#'></a>",
"#"===a.firstChild.getAttribute(
"href")})||jb(
"type|href|height|width",function(a,b,c){return c?void
0:a.getAttribute(b,
"type"===b.toLowerCase()?
1:
2)}),c.attributes&&ib(function(a){return a.
innerHTML=
"<input/>",a.firstChild.setAttribute(
"value",
""),
""===a.firstChild.getAttribute(
"value")})||jb(
"value",function(a,b,c){return c||
"input"!==a.nodeName.toLowerCase()?void
0:a.defaultValue}),ib(function(a){return null==a.getAttribute(
"disabled")})||jb(L,function(a,b,c){var d;return c?void
0:a[b]===!
0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[
":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/
?>(?:<\/\
1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)
>=
0!==c})}n.filter=function(a,b,c){var d=b[
0];return c&&(
a=":not("+a+")"),
1===b.length&&
1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return
1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=
0;c
>b;b++)if(n.contains(e[b],this))return!
0}));for(b=
0;c
>b;b++)n.find(a,e[b],d);return d=this.pushStack(c
>1?n.unique(d):d),d.selector=this.selector?this.selector+
" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!
1))},not:function(a){return this.pushStack(x(this,a||[],!
0))},is:function(a){return!!x(this,
"string"==typeof a&&u.test(a)?n(a):a||[],!
1).length}});var y,z=/^(?:\s*(<[\w\W]+
>)[^
>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(
c="<"===a[
0]&&"
>"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined
"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):
0;e
>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType
<11&&(g?g.index(c)
>-
1:
1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length
>1?n.unique(f):f)},index:function(a){return a?
"string"==typeof a?g.call(n(a),this[
0]):g.call(this,a.jquery?a[
0]:a):this[
0]&&this[
0].parentNode?this.first().prevAll().length:-
1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&
1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&
11!==b.nodeType?b:null},parents:function(a){return n.dir(a,
"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,
"parentNode",c)},next:function(a){return D(a,
"nextSibling")},prev:function(a){return D(a,
"previousSibling")},nextAll:function(a){return n.dir(a,
"nextSibling")},prevAll:function(a){return n.dir(a,
"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,
"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,
"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return
"Until"!==a.slice(-
5)&&(d=c),d&&
"string"==typeof d&&(e=n.filter(d,e)),this.length
>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!
0}),b}n.Callbacks=function(a){
a=
"string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!
0,g=e||
0,e=
0,f=h.length,d=!
0;h&&f
>g;g++)if(h[g].apply(l[
0],l[
1])===!
1&&a.stopOnFalse){b=!
1;break}d=!
1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))
>-
1)h.splice(c,
1),d&&(f
>=c&&f--,g
>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)
>-
1:!(!h||!h.length)},empty:function(){return h=[],f=
0,this},disable:function(){return h=i=b=void
0,this},disabled:function(){return!h},lock:function(){return i=void
0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],
c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[
1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[
0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[
2],h=f[
3];d[f[
1]]=g.add,h&&g.add(function(){c=h},b[
1^a][
2].disable,b[
2][
2].lock),e[f[
0]]=function(){return e[f[
0]+"With"](this===e?d:this,arguments),this},e[f[
0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=
0,c=d.call(arguments),e=c.length,f=
1!==e||a&&n.isFunction(a.promise)?e:
0,g=
1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length
>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e
>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e
>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!
1,readyWait:
1,holdReady:function(a){a?n.readyWait++:n.ready(!
0)},ready:function(a){(a===!
0?--n.readyWait:n.isReady)||(n.isReady=!
0,a!==!
0&&--n.readyWait
>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(
"ready"),n(l).off(
"ready"))))}});function I(){l.removeEventListener(
"DOMContentLoaded",I,!
1),a.removeEventListener(
"load",I,!
1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),
"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener(
"DOMContentLoaded",I,!
1),a.addEventListener(
"load",I,!
1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=
0,i=a.length,j=null==c;if(
"object"===n.type(c)){e=!
0;for(h in c)n.access(a,b,h,c[h],!
0,f,g)}else if(void
0!==d&&(e=!
0,n.isFunction(d)||(g=!
0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i
>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[
0],c):f};n.acceptData=function(a){return
1===a.nodeType||
9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},
0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=
1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return
0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void
0===b?c:c[b]},access:function(a,b,c){var d;return void
0===b||b&&"string"==typeof b&&void
0===c?(d=this.get(a,b),void
0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void
0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void
0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void
0===c&&
1===a.nodeType)if(
d="data-"+b.replace(O,"-$
1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{
c="true"===c?!
0:"false"===c?!
1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void
0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
7084 },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[
0],g=f&&f.attributes;if(void
0===a){if(this.length&&(e=M.get(f),
1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,
0===d.indexOf("data-")&&(d=n.camelCase(d.slice(
5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!
0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void
0===b){if(c=M.get(f,a),void
0!==c)return c;if(c=M.get(f,d),void
0!==c)return c;if(c=P(f,d,void
0),void
0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-
1!==a.indexOf("-")&&void
0!==c&&M.set(this,a,b)})},null,b,arguments.length
>1,null,!
0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||
"fx")+
"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void
0},dequeue:function(a,b){b=b||
"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};
"inprogress"===e&&(e=c.shift(),d--),e&&(
"fx"===b&&c.unshift(
"inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+
"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(
"once memory").add(function(){L.remove(a,[b+
"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=
2;return
"string"!=typeof a&&(b=a,
a=
"fx",c--),arguments.length
<c?n.queue(this[
0],a):void
0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),
"fx"===a&&
"inprogress"!==c[
0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||
"fx",[])},promise:function(a,b){var c,d=
1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};
"string"!=typeof a&&(b=a,a=void
0),a=a||
"fx";while(g--)c=L.get(f[g],a+
"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=[
"Top",
"Right",
"Bottom",
"Left"],S=function(a,b){return a=b||a,
"none"===n.css(a,
"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement(
"div")),c=l.createElement(
"input");c.setAttribute(
"type",
"radio"),c.setAttribute(
"checked",
"checked"),c.setAttribute(
"name",
"t"),b.appendChild(c),k.checkClone=b.cloneNode(!
0).cloneNode(!
0).lastChild.checked,b.
innerHTML=
"<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!
0).lastChild.defaultValue}();var
U=
"undefined";k.
focusinBubbles=
"onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!
0}function $(){return!
1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void
0}),b=(b||
"").match(E)||[
""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(
".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=
0,l.setup&&l.setup.call(a,d,p,g)!==!
1||a.addEventListener&&a.addEventListener(o,g,!
1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,
0,k):m.push(k),n.event.global[o]=!
0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||
"").match(E)||[
""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[
2]&&new RegExp(
"(^|\\.)"+p.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(
"**"!==d||!k.selector)||(m.splice(f,
1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!
1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!
0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,
"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,
"type")?b.type:b,r=j.call(b,
"namespace")?b.namespace.split(
"."):[];if(g=h=d=d||l,
3!==d.nodeType&&
8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(
".")
>=
0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")
<0&&
"on"+q,b=b[n.expando]?b:new n.Event(q,
"object"==typeof b&&b),b.isTrigger=e?
2:
3,b.namespace=r.join(
"."),b.namespace_re=b.namespace?new RegExp(
"(^|\\.)"+r.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"):null,b.result=void
0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!
1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=
0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f
>1?i:o.bindType||q,m=(L.get(g,
"events")||{})[b.type]&&L.get(g,
"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!
1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!
1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void
0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,
"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[
0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!
1){h=n.event.handlers.call(this,a,j),b=
0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=
0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void
0!==e&&(a.result=e)===!
1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||
"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!
0||
"click"!==a.type){for(d=[],c=
0;h
>c;c++)f=b[c],e=f.selector+" ",void
0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)
>=
0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h
<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:
"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
" "),fixHooks:{},keyHooks:{props:
"char charCode key keyCode".split(
" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:
"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(
" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||
0)-(d&&d.clientLeft||e&&e.clientLeft||
0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||
0)-(d&&d.clientTop||e&&e.clientTop||
0)),a.which||void
0===f||(a.which=
1&f?
1:
2&f?
3:
4&f?
2:
0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),
3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!
0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!
1):void
0},delegateType:
"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!
1):void
0},delegateType:
"focusout"},click:{trigger:function(){return
"checkbox"===this.type&&this.click&&n.nodeName(this,
"input")?(this.click(),!
1):void
0},_default:function(a){return n.nodeName(a.target,
"a")}},beforeunload:{postDispatch:function(a){void
0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!
0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!
1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void
0===a.defaultPrevented&&a.returnValue===!
1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!
0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:
"mouseover",mouseleave:
"mouseout",pointerenter:
"pointerover",pointerleave:
"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:
"focusin",blur:
"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!
0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!
0),L.access(d,b,(e||
0)+
1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-
1;e?L.access(d,b,e):(d.removeEventListener(a,c,!
0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if(
"object"==typeof a){
"string"!=typeof b&&(c=c||b,b=void
0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void
0):null==d&&(
"string"==typeof b?(d=c,c=void
0):(d=c,c=b,b=void
0)),d===!
1)d=$;else if(!d)return this;return
1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,
1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+
"."+d.namespace:d.origType,d.selector,d.handler),this;if(
"object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!
1||
"function"==typeof b)&&(c=b,b=void
0),c===!
1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[
0];return c?n.event.trigger(a,b,c,!
0):void
0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^
>]*)\
/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)
>\s*$/g,ib={option:[
1,"
<select multiple='multiple'
>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table
")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr
")?a.getElementsByTagName("tbody
")[0]||a.appendChild(a.ownerDocument.createElement("tbody
")):a}function kb(a){return a.type=(null!==a.getAttribute("type
"))+"/
"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type
"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(
1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=
0,d=j[e].length;d
>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void
0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!
0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||
1!==a.nodeType&&
11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=
0,e=f.length;e
>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=
0,e=f.length;e
>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length
>0&&mb(g,!i&&ob(a,
"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=
0,o=a.length;o
>m;m++)if(e=a[m],e||
0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[
1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[
1]+e.replace(ab,"<$
1></$
2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script
"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script
")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string
"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$
1></$
2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string
"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script
"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-
1].ownerDocument,n.map(f,lb),j=
0;g
>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-
1,h=
0;g
>=h;h++)c=h===g?this:this.clone(!
0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[
0]))?d.display:n.css(e[
0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("
<iframe frameborder='
0' width='
0' height='
0'
/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^(
"+Q+")(?!px)[a-z%]+$
","i
"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div
"),f=l.createElement("div
");if(f.style){f.style.backgroundClip="content-box
",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box
"===f.style.backgroundClip,e.style.cssText="border:
0;width:
0;height:
0;top:
0;left:-
9999px;margin-top:
1px;position:absolute
",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:
1%;top:
1%;border:
1px;padding:
1px;width:
4px;position:absolute
",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%
"!==g.top,c="4px
"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div
"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:
0;border:
0;padding:
0",c.style.marginRight=c.style.width="0",f.style.width="1px
",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^(
"+Q+")(.*)$
","i
"),Bb=new RegExp("^([+-])=(
"+Q+")
","i
"),Cb={position:"absolute
",visibility:"hidden
",display:"block
"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit
","O
","Moz
","ms
"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px
"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border
":"content
")?4:"width
"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!
0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!
0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!
0,e))):(g+=n.css(a,"padding"+R[f],!
0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!
0,e)));return g}function Ib(a,b,c){var d=!
0,
e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),
g="border-box"===n.css(a,"boxSizing",!
1,f);if(
0>=e||null==e){if(e=xb(a,b,f),(
0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||
0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=
0,h=a.length;h
>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.
display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=
0;h
>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"
1":c}}}},cssNumber:{columnCount:!
0,fillOpacity:!
0,flexGrow:!
0,flexShrink:!
0,fontWeight:!
0,lineHeight:!
0,opacity:!
0,order:!
0,orphans:!
0,widows:!
0,zIndex:!
0,zoom:!
0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&
3!==a.nodeType&&
8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void
0===c?g&&"get"in g&&void
0!==(e=g.get(a,!
1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[
1]+
1)*e[
2]+parseFloat(n.css(a,b)),
f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||
0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void
0===(c=g.set(a,c,d))||(i[b]=c)),void
0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!
0,c)),void
0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!
0||n.isNumeric(f)?f||
0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&
0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void
0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!
1,e),e):
0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void
0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=
0,e={},
f="string"==typeof c?c.split(" "):[c];
4>d;d++)e[a+R[d]+b]=f[d]||f[d-
2]||f[
0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=
0;if(n.isArray(b)){for(d=wb(a),e=b.length;e
>g;g++)f[b[g]]=n.css(a,b[g],!
1,d);return f}return void
0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length
>1)},show:function(){return Jb(this,!
0)},hide:function(){return Jb(this)},toggle:function(a){return
"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||
"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?
"":
"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,
0,
1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,
""),b&&
"auto"!==b?b:
0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return
.5-Math.cos(a*Math.PI)/
2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp(
"^(?:([+-])=|)("+Q+
")([a-z%]*)$",
"i"),Pb=/queueHooks$/,Qb=[Vb],Rb={
"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[
3]||(n.cssNumber[a]?
"":
"px"),g=(n.cssNumber[a]||
"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=
1,i=
20;if(g&&g[
3]!==f){f=f||g[
3],e=e||[],g=+d||
1;do h=h||
".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&
1!==h&&--i)}return e&&(g=c.start=+g||+d||
0,c.unit=f,c.end=e[
1]?g+(e[
1]+
1)*e[
2]:+e[
2]),c}]};function Sb(){return setTimeout(function(){Lb=void
0}),Lb=n.now()}function Tb(a,b){var c,d=
0,e={height:a};for(b=b?
1:
0;
4>d;d+=
2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=
0,g=e.length;g
>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=
0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),
1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),
k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.
display="inline-block")),c.overflow&&(o.
overflow="hidden",l.always(function(){o.overflow=c.overflow[
0],o.overflowX=c.overflow[
1],o.overflowY=c.overflow[
2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void
0===q[d])continue;p=!
0}m[d]=q&&q[d]||n.style(a,d)}else j=void
0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:
0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.
start="width"===d||"height"===d?
1:
0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[
1],f=a[c]=f[
0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=
0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!
1;for(var b=Lb||Sb(),c=Math.max(
0,j.startTime+j.duration-b),d=c/j.duration||
0,f=
1-d,g=
0,i=j.tweens.length;i
>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),
1>f&&i?c:(h.resolveWith(a,[j]),!
1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!
0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=
0,d=b?j.tweens.length:
0;if(e)return this;for(e=!
0;d
>c;c++)j.tweens[c].run(
1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g
>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=
0,e=a.length;e
>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?
0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!
0)&&(d.
queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",
0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!
0)};return g.finish=g,e||f.queue===!
1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void
0),b&&a!==!
1&&this.queue(a||"fx",[]),this.each(function(){var b=!
0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!
1,f.splice(e,
1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!
1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:
0;for(c.finish=!
0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!
0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!
0),f.splice(b,
1));for(b=
0;g
>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!
0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=
0,c=n.timers;for(Lb=n.now();b
<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,
1);c.length||n.fx.stop(),Lb=void
0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=
13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:
600,fast:
200,_default:
400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||
"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement(
"input"),b=l.createElement(
"select"),c=b.appendChild(l.createElement(
"option"));a.
type=
"checkbox",k.
checkOn=
""!==a.value,k.optSelected=c.selected,b.disabled=!
0,k.optDisabled=!c.disabled,a=l.createElement(
"input"),a.
value=
"t",a.
type=
"radio",k.
radioValue=
"t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length
>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&
3!==f&&
8!==f&&
2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(
1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void
0===c?d&&
"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void
0:e):null!==c?d&&
"set"in d&&void
0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+
""),c):void n.removeAttr(a,b))
7085 },removeAttr:function(a,b){var c,d,e=
0,f=b&&b.match(E);if(f&&
1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!
1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&
"radio"===b&&n.nodeName(a,
"input")){var c=a.value;return a.setAttribute(
"type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!
1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length
>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{
"for":
"htmlFor",
"class":
"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&
3!==g&&
8!==g&&
2!==g)return f=
1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void
0!==c?e&&
"set"in e&&void
0!==(d=e.set(a,c,b))?d:a[b]=c:e&&
"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(
"tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-
1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each([
"tabIndex",
"readOnly",
"maxLength",
"cellSpacing",
"cellPadding",
"rowSpan",
"colSpan",
"useMap",
"frameBorder",
"contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,
h=
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=
0;while(e=b[f++])d.indexOf(" "+e+" ")
<0&&(d+=e+
" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=
0===arguments.length||
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=
0;while(e=b[f++])while(d.indexOf(" "+e+" ")
>=
0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=
0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!
1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var
b=" "+a+" ",c=
0,d=this.length;d
>c;c++)if(
1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)
>=
0)return!
0;return!
1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[
0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;
1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?
e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void
0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void
0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,
f="select-one"===a.type||
0>e,g=f?null:[],h=f?e+
1:d.length,i=
0>e?h:f?e:
0;h
>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)
>=
0)&&(c=!
0);return c||(a.selectedIndex=-
1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)
>=
0:void
0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length
>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return
1===arguments.length?this.off(a,
"**"):this.off(b,a||
"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+
"")},n.parseXML=function(a){var b,c;if(!a||
"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,
"text/xml")}catch(d){b=void
0}return(!b||b.getElementsByTagName(
"parsererror").length)&&n.error(
"Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},
pc=
"*/".concat(
"*");try{fc=location.href}catch(qc){fc=l.createElement(
"a"),fc.
href=
"",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){
"string"!=typeof b&&(c=b,
b=
"*");var d,e=
0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])
"+"===d[
0]?(d=d.slice(
1)||
"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!
0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return
"string"!=typeof j||f||e[j]?f?!(i=j):void
0:(b.dataTypes.unshift(j),g(j),!
1)}),i}return g(b.dataTypes[
0])||!e[
"*"]&&g(
"*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void
0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!
0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(
"*"===i[
0])i.shift(),void
0===d&&(d=a.mimeType||b.getResponseHeader(
"Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[
0]in c)f=i[
0];else{for(e in c){if(!i[
0]||a.converters[e+
" "+i[
0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[
0]&&i.unshift(f),c[f]):void
0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[
1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(
"*"===f)f=i;else if(
"*"!==i&&i!==f){if(g=j[i+
" "+f]||j[
"* "+f],!g)for(e in j)if(h=e.split(
" "),h[
1]===f&&(g=j[i+
" "+h[
0]]||j[
"* "+h[
0]])){g===!
0?g=j[e]:j[e]!==!
0&&(f=h[
0],k.unshift(h[
1]));break}if(g!==!
0)if(g&&a[
"throws"])b=g(b);else try{b=g(b)}catch(l){return{state:
"parsererror",error:g?l:
"No conversion from "+i+
" to "+f}}}return{state:
"success",data:b}}n.extend({active:
0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:
"GET",isLocal:jc.test(ec[
1]),global:!
0,processData:!
0,async:!
0,contentType:
"application/x-www-form-urlencoded; charset=UTF-8",accepts:{
"*":pc,text:
"text/plain",html:
"text/html",xml:
"application/xml, text/xml",json:
"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:
"responseXML",text:
"responseText",json:
"responseJSON"},converters:{
"* text":String,
"text html":!
0,
"text json":n.parseJSON,
"text xml":n.parseXML},flatOptions:{url:!
0,context:!
0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){
"object"==typeof a&&(b=a,a=void
0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks(
"once memory"),q=k.statusCode||{},r={},s={},t=
0,
u=
"canceled",v={readyState:
0,getResponseHeader:function(a){var b;if(
2===t){if(!f){f={};while(b=ic.exec(e))f[b[
1].toLowerCase()]=b[
2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return
2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(
2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(
0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[
1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[
1]===ec[
1]&&h[
2]===ec[
2]&&(h[
3]||("http:"===h[
1]?"
80":"
443"))===(ec[
3]||("http:"===ec[
1]?"
80":"
443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),
2===t)return v;i=k.global,i&&
0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!
1&&(k.url=hc.test(d)?d.replace(hc,"$
1_="+cc++):d+(dc.test(d)?"&":"?")+"
_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!
1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[
0]&&k.accepts[k.dataTypes[
0]]?k.accepts[k.dataTypes[
0]]+("*"!==k.dataTypes[
0]?", "+pc+"; q=
0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!
1||
2===t))return v.abort();
u="abort";for(j in{success:
1,error:
1,complete:
1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=
1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout
>0&&(g=setTimeout(function(){v.abort(
"timeout")},k.timeout));try{t=
1,c.send(r,x)}catch(w){if(!(
2>t))throw w;x(-
1,w)}}else x(-
1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;
2!==t&&(t=
2,g&&clearTimeout(g),c=void
0,e=h||"",v.readyState=a
>0?
4:
0,j=a
>=
200&&
300>a||
304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),
204===a||"HEAD"===k.type?
x="nocontent":
304===a?
x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(
x="error",
0>a&&(a=
0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void
0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void
0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void
0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!
1,global:!
1,"throws":!
0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[
0]&&(b=n(a,this[
0].ownerDocument).eq(
0).clone(!
0),this[
0].parentNode&&b.insertBefore(this[
0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=
0&&a.offsetHeight<=
0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%
20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void
0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=
0,Dc={},Ec={
0:
200,
1223:
204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void
0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void
0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void
0===a.cache&&(a.cache=!
1),a.crossDomain&&(a.
type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("
<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error
",c=function(a){b.remove(),c=null,a&&e("error
"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback
",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_
"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp
",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url
":"string
"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded
")&&Hc.test(b.data)&&"data
");return h||"jsonp
"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$
1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&
":"?
")+b.jsonp+"=
"+e),b.converters["script json
"]=function(){return g||n.error(e+" was not called
"),g[0]},b.dataTypes[0]="json
",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script
"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string
"!=typeof a)return null;"boolean
"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string
"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object
"==typeof b&&(e="POST
"),g.length>0&&n.ajax({url:a,type:e,dataType:"html
",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position
"),l=n(a),m={};"static
"===k&&(a.style.position="relative
"),h=l.offset(),f=n.css(a,"top
"),i=n.css(a,"left
"),j=("absolute
"===k||"fixed
"===k)&&(f+i).indexOf("auto
")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using
"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed
"===n.css(c,"position
")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html
")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth
",!0),d.left+=n.css(a[0],"borderLeftWidth
",!0)),{top:b.top-d.top-n.css(c,"marginTop
",!0),left:b.left-d.left-n.css(c,"marginLeft
",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html
")&&"static
"===n.css(a,"position
"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset
",scrollTop:"pageYOffset
"},function(b,c){var d="pageYOffset
"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top
","left
"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px
":c):void 0})}),n.each({Height:"height
",Width:"width
"},function(a,b){n.each({padding:"inner
"+a,content:b,"":"outer
"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean
"!=typeof d),g=c||(d===!0||e===!0?"margin
":"border
");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client
"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll
"+a],e["scroll
"+a],b.body["offset
"+a],e["offset
"+a],e["client
"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function
"==typeof define&&define.amd&&define("jquery
",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
7088 * Bootstrap v3.2.0 (http://getbootstrap.com)
7089 * Copyright 2011-2014 Twitter, Inc.
7090 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7092 if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void
0!==a.style[c])return{end:b[c]};return!
1}a.fn.emulateTransitionEnd=function(b){var c=!
1,d=this;a(this).one("bsTransitionEnd",function(){c=!
0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void
0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[
data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.
VERSION="
3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(
150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),
f="object"==typeof b&
&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!
1};c.
VERSION="
3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var
c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!
0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!
1,d.removeClass(c).removeAttr(c))},this),
0)},c.prototype.toggle=function(){var a=!
0,b=this.$element.closest('[
data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!
1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),
g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.
VERSION="
3.2.0",c.DEFAULTS={interval:
5e3,pause:"hover",wrap:!
0},c.prototype.keydown=function(a){switch(a.which){case
37:this.prev();break;case
39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!
1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b
>this.$items.length-
1||
0>b?void
0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b
>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!
0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!
0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void
0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void
0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,
g="next"==b?"left":"right",
h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!
1;var j=e[
0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!
0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[
0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!
1,setTimeout(function(){i.$element.trigger(m)},
0)}).emulateTransitionEnd(
1e3*d.css("transition-duration").slice(
0,-
1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!
1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!
1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[
data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.
VERSION="
3.2.0",c.DEFAULTS={toggle:!
0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("
> .panel
> .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](
0),this.transitioning=
1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=
0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(
350)[f](this.$element[
0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[
0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=
1;var d=function(){this.transitioning=
0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](
0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(
350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[
data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[
data-toggle="collapse"][
data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&
3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var
e=".dropdown-backdrop",f='[
data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.
VERSION="
3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
<div class=
"dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!
1}},g.prototype.keydown=function(b){if(/(
38|
40|
27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&
27==b.keyCode)return
27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var
h=" li:not(.divider):visible a",i=e.find('[
role="menu"]'+h+', [
role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));
38==b.keyCode&&j
>0&&j--,
40==b.keyCode&&j
<i.length-
1&&j++,~j||(j=
0),i.eq(j).trigger(
"focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on(
"click.bs.dropdown.data-api",b).on(
"click.bs.dropdown.data-api",
".dropdown form",function(a){a.stopPropagation()}).on(
"click.bs.dropdown.data-api",f,g.prototype.toggle).on(
"keydown.bs.dropdown.data-api",f+', [
role=
"menu"], [
role=
"listbox"]',g.prototype.keydown)}(jQuery),+function(a){
"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data(
"bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),
"object"==typeof b&&b);f||e.data(
"bs.modal",f=new c(this,g)),
"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=
0,this.options.remote&&this.$element.find(
".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger(
"loaded.bs.modal")},this))};c.
VERSION=
"3.2.0",c.DEFAULTS={backdrop:!
0,keyboard:!
0,show:!
0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event(
"show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!
0,this.checkScrollbar(),this.$body.addClass(
"modal-open"),this.setScrollbar(),this.escape(),this.$element.on(
"click.dismiss.bs.modal",'[
data-dismiss=
"modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass(
"fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(
0),d&&c.$element[
0].offsetWidth,c.$element.addClass(
"in").attr(
"aria-hidden",!
1),c.enforceFocus();var e=a.Event(
"shown.bs.modal",{relatedTarget:b});d?c.$element.find(
".modal-dialog").one(
"bsTransitionEnd",function(){c.$element.trigger(
"focus").trigger(e)}).emulateTransitionEnd(
300):c.$element.trigger(
"focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event(
"hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!
1,this.$body.removeClass(
"modal-open"),this.resetScrollbar(),this.escape(),a(document).off(
"focusin.bs.modal"),this.$element.removeClass(
"in").attr(
"aria-hidden",!
0).off(
"click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass(
"fade")?this.$element.one(
"bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(
300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off(
"focusin.bs.modal").on(
"focusin.bs.modal",a.proxy(function(a){this.$element[
0]===a.target||this.$element.has(a.target).length||this.$element.trigger(
"focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(
"keyup.dismiss.bs.modal",a.proxy(function(a){
27==a.which&&this.hide()},this)):this.isShown||this.$element.off(
"keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger(
"hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass(
"fade")?
"fade":
"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&
&d;if(this.$backdrop=a('
<div class=
"modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[
0].focus.call(this.$element[
0]):this.hide.call(this))},this)),e&&this.$backdrop[
0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(
150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(
150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth
>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||
0,
10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.
className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[
0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[
data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.
VERSION="
3.2.0",c.DEFAULTS={animation:!
0,placement:"top",selector:!
1,template:'
<div class=
"tooltip" role=
"tooltip"><div class=
"tooltip-arrow"></div><div class=
"tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:
0,html:!
1,container:!
1,viewport:{selector:"body",padding:
0}},c.prototype.init=function(b,c,d){this.enabled=!
0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var
h="hover"==g?"mouseenter":"focusin",
i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[
0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var
g="function"==typeof this.options.placement?this.options.placement.call(this,e[
0],this.$element[
0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:
0,left:
0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[
0].offsetWidth,l=e[
0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);
g="bottom"==g&&j.top+j.height+l-o.scroll
>o.height?"top":"top"==g&&j.top-o.scroll-l
<0?
"bottom":
"right"==g&&j.right+k
>o.width?"left":"left"==g&&j.left-k
<o.left?
"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger(
"shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass(
"fade")?e.one(
"bsTransitionEnd",q).emulateTransitionEnd(
150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[
0].offsetWidth,f=d[
0].offsetHeight,g=parseInt(d.css(
"margin-top"),
10),h=parseInt(d.css(
"margin-left"),
10);isNaN(g)&&(g=
0),isNaN(h)&&(h=
0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[
0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),
0),d.addClass(
"in");var i=d[
0].offsetWidth,j=d[
0].offsetHeight;
"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?
2*k.left-e+i:
2*k.top-f+j,m=k.left?
"left":
"top",n=k.left?
"offsetWidth":
"offsetHeight";d.offset(b),this.replaceArrow(l,d[
0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?
50*(
1-a/b)+
"%":
"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(
".tooltip-inner")[this.options.html?
"html":
"text"](b),a.removeClass(
"fade in top bottom left right")},c.prototype.hide=function(){function b(){
"in"!=c.hoverState&&d.detach(),c.$element.trigger(
"hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event(
"hide.bs."+this.type);return this.$element.removeAttr(
"aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void
0:(d.removeClass(
"in"),a.support.transition&&this.$tip.hasClass(
"fade")?d.one(
"bsTransitionEnd",b).emulateTransitionEnd(
150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr(
"title")||
"string"!=typeof a.attr(
"data-original-title"))&&a.attr(
"data-original-title",a.attr(
"title")||
"").attr(
"title",
"")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[
0],
d=
"BODY"==c.tagName;return a.extend({},
"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:
0,left:
0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return
"bottom"==a?{top:b.top+b.height,left:b.left+b.width/
2-c/
2}:
"top"==a?{top:b.top-d,left:b.left+b.width/
2-c/
2}:
"left"==a?{top:b.top+b.height/
2-d/
2,left:b.left-c}:{top:b.top+b.height/
2-d/
2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:
0,left:
0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||
0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h
<g.top?e.top=g.top-h:i
>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j
<g.left?e.left=g.left-j:k
>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[
0]):c.title)},c.prototype.getUID=function(a){do a+=~~(
1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[
0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!
0},c.prototype.disable=function(){this.enabled=!
1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.
VERSION="
3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'
<div class=
"popover" role=
"tooltip"><div class=
"arrow"></div><h3 class=
"popover-title"></h3><div class=
"popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[
0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li
> a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=
0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),
f="object"==typeof c&
&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.
VERSION="
3.2.0",b.DEFAULTS={offset:
10},b.prototype.getScrollHeight=function(){return this.$scrollElement[
0].scrollHeight||Math.max(this.$body[
0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var
b="offset",c=
0;a.isWindow(this.$scrollElement[
0])||(
b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[
0]-b[
0]}).each(function(){d.offsets.push(this[
0]),d.targets.push(this[
1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b
>=d)return g!=(a=f[f.length-
1])&&this.activate(a);if(g&&b<=e[
0])return g!=(a=f[
0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b
>=e[a]&&(!e[a+
1]||b<=e[a+
1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[
data-target="'+b+'"],'+this.selector+'[
href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[
data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.
VERSION="
3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[
0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("
> .dropdown-menu
> .active").removeClass("active"),b.addClass("active"),g?(b[
0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("
> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(
150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[
data-toggle="tab"], [
data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),
f="object"==typeof b&
&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.
VERSION="
3.2.0",c.
RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:
0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),
1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!
1:null!=h&&e.top+this.$element.height()
>=b-h?"bottom":null!=g&&g
>=d?"top":!
1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var
j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.
unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[
data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
</script>
7093 <script>(function() {
7097 * Extend an Object with another Object's properties.
7099 * The source objects are specified as additional arguments.
7101 * @param dst Object the object to extend.
7103 * @return Object the final object.
7105 var _extend = function(dst) {
7106 var sources = Array.prototype.slice.call(arguments,
1);
7107 for (var i=
0; i
<sources.length; ++i) {
7108 var src = sources[i];
7109 for (var p in src) {
7110 if (src.hasOwnProperty(p)) dst[p] = src[p];
7118 * Defer execution of given function.
7119 * @param {Function} func
7121 var _defer = function(func) {
7122 if (typeof setImmediate === 'function') {
7123 return setImmediate(func);
7125 return setTimeout(func,
0);
7130 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7134 * Calculate levenshtein distance of the two strings.
7136 * @param str1 String the first string.
7137 * @param str2 String the second string.
7138 * @return Integer the levenshtein distance (
0 and above).
7140 get: function(str1, str2) {
7142 if (str1 === str2) return
0;
7143 if (str1.length ===
0) return str2.length;
7144 if (str2.length ===
0) return str1.length;
7147 var prevRow = new Array(str2.length +
1),
7148 curCol, nextCol, i, j, tmp;
7150 // initialise previous row
7151 for (i=
0; i
<prevRow.length; ++i) {
7155 // calculate current row distance from previous row
7156 for (i=
0; i
<str1.length; ++i) {
7159 for (j=
0; j
<str2.length; ++j) {
7163 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7166 if (nextCol
> tmp) {
7170 tmp = prevRow[j +
1] +
1;
7171 if (nextCol
> tmp) {
7175 // copy current col value into previous (in preparation for next iteration)
7176 prevRow[j] = curCol;
7179 // copy last col value into previous (in preparation for next iteration)
7180 prevRow[j] = nextCol;
7187 * Asynchronously calculate levenshtein distance of the two strings.
7189 * @param str1 String the first string.
7190 * @param str2 String the second string.
7191 * @param cb Function callback function with signature: function(Error err, int distance)
7192 * @param [options] Object additional options.
7193 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7195 getAsync: function(str1, str2, cb, options) {
7196 options = _extend({}, {
7201 if (str1 === str2) return cb(null,
0);
7202 if (str1.length ===
0) return cb(null, str2.length);
7203 if (str2.length ===
0) return cb(null, str1.length);
7206 var prevRow = new Array(str2.length +
1),
7209 startTime, currentTime;
7211 // initialise previous row
7212 for (i=
0; i
<prevRow.length; ++i) {
7220 var __calculate = function() {
7222 startTime = new Date().valueOf();
7223 currentTime = startTime;
7225 // keep going until one second has elapsed
7226 while (currentTime - startTime <
1000) {
7227 // reached end of current row?
7228 if (str2.length <= (++j)) {
7229 // copy current into previous (in preparation for next iteration)
7230 prevRow[j] = nextCol;
7232 // if already done all chars
7233 if (str1.length <= (++i)) {
7234 return cb(null, nextCol);
7236 // else if we have more left to do
7247 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7250 if (nextCol
> tmp) {
7254 tmp = prevRow[j +
1] +
1;
7255 if (nextCol
> tmp) {
7259 // copy current into previous (in preparation for next iteration)
7260 prevRow[j] = curCol;
7263 currentTime = new Date().valueOf();
7266 // send a progress update?
7267 if (null !== options.progress) {
7269 options.progress.call(null, (i *
100.0/ str1.length));
7271 return cb('Progress callback: ' + err.toString());
7276 _defer(__calculate);
7285 if (typeof define !== "undefined" && define !== null && define.amd) {
7291 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7292 module.exports = Levenshtein;
7295 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7296 self.Levenshtein = Levenshtein;
7298 // browser main thread
7299 else if (typeof window !== "undefined" && window !== null) {
7300 window.Levenshtein = Levenshtein;
7305 <script>(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=
0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void
0==a.length)throw Error(a.length+"/"+c);for(var d=
0;d
<a.length&&
0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=
0;b
<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=
0}u.prototype={getLength:function(){return this.data.length},
7306 write:function(a){for(var c=
0;c
<this.data.length;c++)a.put(this.data.charCodeAt(c),
8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(
0>a||this.moduleCount<=a||
0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(
1>this.typeNumber){for(var a=
1,a=
1;
40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=
0,e=
0;e
<c.length;e++)b+=c[e].dataCount;
7307 for(e=
0;e
<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,
4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=
8*b)break}this.typeNumber=a}this.makeImpl(!
1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=
4*this.typeNumber+
17;this.modules=Array(this.moduleCount);for(var d=
0;d
<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=
0;b
<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(
0,
0);this.setupPositionProbePattern(this.moduleCount-
7308 7,
0);this.setupPositionProbePattern(
0,this.moduleCount-
7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);
7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-
1;
7>=d;d++)if(!(-
1>=a+d||this.moduleCount<=a+d))for(var b=-
1;
7>=b;b++)-
1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
7309 0<=d&&
6>=d&&(
0==b||
6==b)||
0<=b&&
6>=b&&(
0==d||
6==d)||
2<=d&&
4>=d&&
2<=b&&
4>=b?!
0:!
1)},getBestMaskPattern:function(){for(var a=
0,c=
0,d=
0;
8>d;d++){this.makeImpl(!
0,d);var b=j.getLostPoint(this);if(
0==d||a
>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=
0;c
<this.modules.length;c++)for(var d=
1*c,b=
0;b
<this.modules[c].length;b++){var e=
1*b;this.modules[c][b]&&(a.beginFill(
0,
100),a.moveTo(e,d),a.lineTo(e+
1,d),a.lineTo(e+
1,d+
1),a.lineTo(e,d+
1),a.endFill())}return a},
7310 setupTimingPattern:function(){for(var a=
8;a
<this.moduleCount-
8;a++)null==this.modules[a][
6]&&(this.modules[a][
6]=
0==a%
2);for(a=
8;a
<this.moduleCount-
8;a++)null==this.modules[
6][a]&&(this.modules[
6][a]=
0==a%
2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=
0;c
<a.length;c++)for(var d=
0;d
<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-
2;
2>=f;f++)for(var i=-
2;
2>=i;i++)this.modules[b+f][e+i]=-
2==f||
2==f||-
2==i||
2==i||
0==f&&
0==i?!
0:!
1}},setupTypeNumber:function(a){for(var c=
7311 j.getBCHTypeNumber(this.typeNumber),d=
0;
18>d;d++){var b=!a&&
1==(c
>>d&
1);this.modules[Math.floor(d/
3)][d%
3+this.moduleCount-
8-
3]=b}for(d=
0;
18>d;d++)b=!a&&
1==(c
>>d&
1),this.modules[d%
3+this.moduleCount-
8-
3][Math.floor(d/
3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<
<3|c),b=
0;
15>b;b++){var e=!a&&
1==(d
>>b&
1);
6>b?this.modules[b][
8]=e:
8>b?this.modules[b+
1][
8]=e:this.modules[this.moduleCount-
15+b][
8]=e}for(b=
0;
15>b;b++)e=!a&&
1==(d
>>b&
1),
8>b?this.modules[
8][this.moduleCount-
7312 b-
1]=e:
9>b?this.modules[
8][
15-b-
1+
1]=e:this.modules[
8][
15-b-
1]=e;this.modules[this.moduleCount-
8][
8]=!a},mapData:function(a,c){for(var d=-
1,b=this.moduleCount-
1,e=
7,f=
0,i=this.moduleCount-
1;
0<i;i-=
2)for(
6==i&&i--;;){for(var g=
0;
2>g;g++)if(null==this.modules[b][i-g]){var n=!
1;f
<a.length&&(n=
1==(a[f]
>>>e&
1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -
1==e&&(f++,e=
7)}b+=d;if(
0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=
236;o.PAD1=
17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
7313 c),b=new t,e=
0;e
<d.length;e++){var f=d[e];b.put(f.mode,
4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=
0;e
<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()
>8*a)throw Error(
"code length overflow. ("+b.getLengthInBits()+
">"+
8*a+
")");for(b.getLengthInBits()+
4<=
8*a&&b.put(
0,
4);
0!=b.getLengthInBits()%
8;)b.putBit(!
1);for(;!(b.getLengthInBits()
>=
8*a);){b.put(o.PAD0,
8);if(b.getLengthInBits()
>=
8*a)break;b.put(o.PAD1,
8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
7314 0,b=
0,e=
0,f=Array(c.length),i=Array(c.length),g=
0;g
<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=
0;k
<f[g].length;k++)f[g][k]=
255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-
1)).mod(k);i[g]=Array(k.getLength()-
1);for(k=
0;k
<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=
0<=h?n.get(h):
0}for(k=g=
0;k
<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=
0;k
<b;k++)for(g=
0;g
<c.length;g++)k
<f[g].length&&
7315 (d[n++]=f[g][k]);for(k=
0;k
<e;k++)for(g=
0;g
<c.length;g++)k
<i[g].length&&(d[n++]=i[g][k]);return d};s=
4;for(var j={PATTERN_POSITION_TABLE:[[],[
6,
18],[
6,
22],[
6,
26],[
6,
30],[
6,
34],[
6,
22,
38],[
6,
24,
42],[
6,
26,
46],[
6,
28,
50],[
6,
30,
54],[
6,
32,
58],[
6,
34,
62],[
6,
26,
46,
66],[
6,
26,
48,
70],[
6,
26,
50,
74],[
6,
30,
54,
78],[
6,
30,
56,
82],[
6,
30,
58,
86],[
6,
34,
62,
90],[
6,
28,
50,
72,
94],[
6,
26,
50,
74,
98],[
6,
30,
54,
78,
102],[
6,
28,
54,
80,
106],[
6,
32,
58,
84,
110],[
6,
30,
58,
86,
114],[
6,
34,
62,
90,
118],[
6,
26,
50,
74,
98,
122],[
6,
30,
54,
78,
102,
126],[
6,
26,
52,
7316 78,
104,
130],[
6,
30,
56,
82,
108,
134],[
6,
34,
60,
86,
112,
138],[
6,
30,
58,
86,
114,
142],[
6,
34,
62,
90,
118,
146],[
6,
30,
54,
78,
102,
126,
150],[
6,
24,
50,
76,
102,
128,
154],[
6,
28,
54,
80,
106,
132,
158],[
6,
32,
58,
84,
110,
136,
162],[
6,
26,
54,
82,
110,
138,
166],[
6,
30,
58,
86,
114,
142,
170]],G15:
1335,G18:
7973,G15_MASK:
21522,getBCHTypeInfo:function(a){for(var c=a<
<10;
0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<
<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<
<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<
<12;
0<=j.getBCHDigit(c)-
7317 j.getBCHDigit(j.G18);)c^=j.G18<
<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<
<12|c},getBCHDigit:function(a){for(var c=
0;
0!=a;)c++,a
>>>=
1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-
1]},getMask:function(a,c,d){switch(a){case
0:return
0==(c+d)%
2;case
1:return
0==c%
2;case
2:return
0==d%
3;case
3:return
0==(c+d)%
3;case
4:return
0==(Math.floor(c/
2)+Math.floor(d/
3))%
2;case
5:return
0==c*d%
2+c*d%
3;case
6:return
0==(c*d%
2+c*d%
3)%
2;case
7:return
0==(c*d%
3+(c+d)%
2)%
2;default:throw Error("bad maskPattern:"+
7318 a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([
1],
0),d=
0;d
<a;d++)c=c.multiply(new q([
1,l.gexp(d)],
0));return c},getLengthInBits:function(a,c){if(
1<=c&&
10>c)switch(a){case
1:return
10;case
2:return
9;case s:return
8;case
8:return
8;default:throw Error("mode:"+a);}else if(
27>c)switch(a){case
1:return
12;case
2:return
11;case s:return
16;case
8:return
10;default:throw Error("mode:"+a);}else if(
41>c)switch(a){case
1:return
14;case
2:return
13;case s:return
16;case
8:return
12;default:throw Error("mode:"+
7319 a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=
0,b=
0;b
<c;b++)for(var e=
0;e
<c;e++){for(var f=
0,i=a.isDark(b,e),g=-
1;
1>=g;g++)if(!(
0>b+g||c<=b+g))for(var h=-
1;
1>=h;h++)
0>e+h||c<=e+h||
0==g&&
0==h||i==a.isDark(b+g,e+h)&&f++;
5<f&&(d+=
3+f-
5)}for(b=
0;b
<c-1;b++)for(e=
0;e
<c-1;e++)if(f=
0,a.isDark(b,e)&&f++,a.isDark(b+
1,e)&&f++,a.isDark(b,e+
1)&&f++,a.isDark(b+
1,e+
1)&&f++,
0==f||
4==f)d+=
3;for(b=
0;b
<c;b++)for(e=
0;e
<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+
1)&&a.isDark(b,e+
7320 2)&&a.isDark(b,e+
3)&&a.isDark(b,e+
4)&&!a.isDark(b,e+
5)&&a.isDark(b,e+
6)&&(d+=
40);for(e=
0;e
<c;e++)for(b=
0;b
<c-6;b++)a.isDark(b,e)&&!a.isDark(b+
1,e)&&a.isDark(b+
2,e)&&a.isDark(b+
3,e)&&a.isDark(b+
4,e)&&!a.isDark(b+
5,e)&&a.isDark(b+
6,e)&&(d+=
40);for(e=f=
0;e
<c;e++)for(b=
0;b
<c;b++)a.isDark(b,e)&&f++;a=Math.abs(
100*f/c/c-
50)/
5;return d+
10*a}},l={glog:function(a){if(
1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;
0>a;)a+=
255;for(;
256<=a;)a-=
255;return l.EXP_TABLE[a]},EXP_TABLE:Array(
256),
7321 LOG_TABLE:Array(
256)},m=
0;
8>m;m++)l.EXP_TABLE[m]=
1<
<m;for(m=
8;
256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-
4]^l.EXP_TABLE[m-
5]^l.EXP_TABLE[m-
6]^l.EXP_TABLE[m-
8];for(m=
0;
255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-
1),d=
0;d
<this.getLength();d++)for(var b=
0;b
<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,
0)},mod:function(a){if(
0>
7322 this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(
0))-l.glog(a.get(
0)),d=Array(this.getLength()),b=
0;b
<this.getLength();b++)d[b]=this.get(b);for(b=
0;b
<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,
0)).mod(a)}};p.RS_BLOCK_TABLE=[[
1,
26,
19],[
1,
26,
16],[
1,
26,
13],[
1,
26,
9],[
1,
44,
34],[
1,
44,
28],[
1,
44,
22],[
1,
44,
16],[
1,
70,
55],[
1,
70,
44],[
2,
35,
17],[
2,
35,
13],[
1,
100,
80],[
2,
50,
32],[
2,
50,
24],[
4,
25,
9],[
1,
134,
108],[
2,
67,
43],[
2,
33,
15,
2,
34,
16],[
2,
33,
11,
2,
34,
12],[
2,
86,
68],[
4,
43,
27],
7323 [
4,
43,
19],[
4,
43,
15],[
2,
98,
78],[
4,
49,
31],[
2,
32,
14,
4,
33,
15],[
4,
39,
13,
1,
40,
14],[
2,
121,
97],[
2,
60,
38,
2,
61,
39],[
4,
40,
18,
2,
41,
19],[
4,
40,
14,
2,
41,
15],[
2,
146,
116],[
3,
58,
36,
2,
59,
37],[
4,
36,
16,
4,
37,
17],[
4,
36,
12,
4,
37,
13],[
2,
86,
68,
2,
87,
69],[
4,
69,
43,
1,
70,
44],[
6,
43,
19,
2,
44,
20],[
6,
43,
15,
2,
44,
16],[
4,
101,
81],[
1,
80,
50,
4,
81,
51],[
4,
50,
22,
4,
51,
23],[
3,
36,
12,
8,
37,
13],[
2,
116,
92,
2,
117,
93],[
6,
58,
36,
2,
59,
37],[
4,
46,
20,
6,
47,
21],[
7,
42,
14,
4,
43,
15],[
4,
133,
107],[
8,
59,
37,
1,
60,
38],[
8,
44,
20,
4,
45,
21],[
12,
33,
11,
4,
34,
12],[
3,
145,
115,
1,
146,
7324 116],[
4,
64,
40,
5,
65,
41],[
11,
36,
16,
5,
37,
17],[
11,
36,
12,
5,
37,
13],[
5,
109,
87,
1,
110,
88],[
5,
65,
41,
5,
66,
42],[
5,
54,
24,
7,
55,
25],[
11,
36,
12],[
5,
122,
98,
1,
123,
99],[
7,
73,
45,
3,
74,
46],[
15,
43,
19,
2,
44,
20],[
3,
45,
15,
13,
46,
16],[
1,
135,
107,
5,
136,
108],[
10,
74,
46,
1,
75,
47],[
1,
50,
22,
15,
51,
23],[
2,
42,
14,
17,
43,
15],[
5,
150,
120,
1,
151,
121],[
9,
69,
43,
4,
70,
44],[
17,
50,
22,
1,
51,
23],[
2,
42,
14,
19,
43,
15],[
3,
141,
113,
4,
142,
114],[
3,
70,
44,
11,
71,
45],[
17,
47,
21,
4,
48,
22],[
9,
39,
13,
16,
40,
14],[
3,
135,
107,
5,
136,
108],[
3,
67,
41,
13,
68,
42],[
15,
54,
24,
5,
55,
25],[
15,
7325 43,
15,
10,
44,
16],[
4,
144,
116,
4,
145,
117],[
17,
68,
42],[
17,
50,
22,
6,
51,
23],[
19,
46,
16,
6,
47,
17],[
2,
139,
111,
7,
140,
112],[
17,
74,
46],[
7,
54,
24,
16,
55,
25],[
34,
37,
13],[
4,
151,
121,
5,
152,
122],[
4,
75,
47,
14,
76,
48],[
11,
54,
24,
14,
55,
25],[
16,
45,
15,
14,
46,
16],[
6,
147,
117,
4,
148,
118],[
6,
73,
45,
14,
74,
46],[
11,
54,
24,
16,
55,
25],[
30,
46,
16,
2,
47,
17],[
8,
132,
106,
4,
133,
107],[
8,
75,
47,
13,
76,
48],[
7,
54,
24,
22,
55,
25],[
22,
45,
15,
13,
46,
16],[
10,
142,
114,
2,
143,
115],[
19,
74,
46,
4,
75,
47],[
28,
50,
22,
6,
51,
23],[
33,
46,
16,
4,
47,
17],[
8,
152,
122,
4,
153,
123],[
22,
73,
45,
7326 3,
74,
46],[
8,
53,
23,
26,
54,
24],[
12,
45,
15,
28,
46,
16],[
3,
147,
117,
10,
148,
118],[
3,
73,
45,
23,
74,
46],[
4,
54,
24,
31,
55,
25],[
11,
45,
15,
31,
46,
16],[
7,
146,
116,
7,
147,
117],[
21,
73,
45,
7,
74,
46],[
1,
53,
23,
37,
54,
24],[
19,
45,
15,
26,
46,
16],[
5,
145,
115,
10,
146,
116],[
19,
75,
47,
10,
76,
48],[
15,
54,
24,
25,
55,
25],[
23,
45,
15,
25,
46,
16],[
13,
145,
115,
3,
146,
116],[
2,
74,
46,
29,
75,
47],[
42,
54,
24,
1,
55,
25],[
23,
45,
15,
28,
46,
16],[
17,
145,
115],[
10,
74,
46,
23,
75,
47],[
10,
54,
24,
35,
55,
25],[
19,
45,
15,
35,
46,
16],[
17,
145,
115,
1,
146,
116],[
14,
74,
46,
21,
75,
47],[
29,
54,
24,
19,
7327 55,
25],[
11,
45,
15,
46,
46,
16],[
13,
145,
115,
6,
146,
116],[
14,
74,
46,
23,
75,
47],[
44,
54,
24,
7,
55,
25],[
59,
46,
16,
1,
47,
17],[
12,
151,
121,
7,
152,
122],[
12,
75,
47,
26,
76,
48],[
39,
54,
24,
14,
55,
25],[
22,
45,
15,
41,
46,
16],[
6,
151,
121,
14,
152,
122],[
6,
75,
47,
34,
76,
48],[
46,
54,
24,
10,
55,
25],[
2,
45,
15,
64,
46,
16],[
17,
152,
122,
4,
153,
123],[
29,
74,
46,
14,
75,
47],[
49,
54,
24,
10,
55,
25],[
24,
45,
15,
46,
46,
16],[
4,
152,
122,
18,
153,
123],[
13,
74,
46,
32,
75,
47],[
48,
54,
24,
14,
55,
25],[
42,
45,
15,
32,
46,
16],[
20,
147,
117,
4,
148,
118],[
40,
75,
47,
7,
76,
48],[
43,
54,
24,
22,
55,
25],[
10,
7328 45,
15,
67,
46,
16],[
19,
148,
118,
6,
149,
119],[
18,
75,
47,
31,
76,
48],[
34,
54,
24,
34,
55,
25],[
20,
45,
15,
61,
46,
16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void
0==d)throw Error(
"bad rs block @ typeNumber:"+a+
"/errorCorrectLevel:"+c);for(var b=d.length/
3,e=[],f=
0;f
<b;f++)for(var h=d[
3*f+
0],g=d[
3*f+
1],j=d[
3*f+
2],l=
0;l
<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case
1:return p.RS_BLOCK_TABLE[
4*(a-
1)+
0];case
0:return p.RS_BLOCK_TABLE[
4*(a-
1)+
1];case
3:return p.RS_BLOCK_TABLE[
4*
7329 (a-
1)+
2];case
2:return p.RS_BLOCK_TABLE[
4*(a-
1)+
3]}};t.prototype={get:function(a){return
1==(this.buffer[Math.floor(a/
8)]
>>>7-a%
8&
1)},put:function(a,c){for(var d=
0;d
<c;d++)this.putBit(
1==(a
>>>c-d-
1&
1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/
8);this.buffer.length<=c&&this.buffer.push(
0);a&&(this.buffer[c]|=
128>>>this.length%
8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:
256,height:
256,typeNumber:-
1,
7330 correctLevel:
3,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
7331 j=Math.ceil((f+
1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r(
"<table></table>").css(
"width",h.width+
"px").css(
"height",h.height+
"px").css(
"border",
"0px").css(
"border-collapse",
"collapse").css(
"background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=
0;e
<a.getModuleCount();e++){f=r(
"<tr></tr>").css(
"height",b+
"px").appendTo(c);for(i=
0;i
<a.getModuleCount();i++)r(
"<td></td>").css(
"width",
7332 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7334 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.bitcoinjs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
7338 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7342 * The buffer module from node.js, for the browser.
7344 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7347 function compare(a, b) {
7355 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7356 if (a[i] !== b[i]) {
7371 function isBuffer(b) {
7372 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7373 return global.Buffer.isBuffer(b);
7375 return !!(b != null && b._isBuffer);
7378 // based on node assert, original notice:
7380 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7382 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7384 // Originally from narwhal.js (http://narwhaljs.org)
7385 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7387 // Permission is hereby granted, free of charge, to any person obtaining a copy
7388 // of this software and associated documentation files (the 'Software'), to
7389 // deal in the Software without restriction, including without limitation the
7390 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7391 // sell copies of the Software, and to permit persons to whom the Software is
7392 // furnished to do so, subject to the following conditions:
7394 // The above copyright notice and this permission notice shall be included in
7395 // all copies or substantial portions of the Software.
7397 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7398 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7399 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7400 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7401 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7402 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7404 var util = require('util/');
7405 var hasOwn = Object.prototype.hasOwnProperty;
7406 var pSlice = Array.prototype.slice;
7407 var functionsHaveNames = (function () {
7408 return function foo() {}.name === 'foo';
7410 function pToString (obj) {
7411 return Object.prototype.toString.call(obj);
7413 function isView(arrbuf) {
7414 if (isBuffer(arrbuf)) {
7417 if (typeof global.ArrayBuffer !== 'function') {
7420 if (typeof ArrayBuffer.isView === 'function') {
7421 return ArrayBuffer.isView(arrbuf);
7426 if (arrbuf instanceof DataView) {
7429 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7434 //
1. The assert module provides functions that throw
7435 // AssertionError's when particular conditions are not met. The
7436 // assert module must conform to the following interface.
7438 var assert = module.exports = ok;
7440 //
2. The AssertionError is defined in assert.
7441 // new assert.AssertionError({ message: message,
7443 // expected: expected })
7445 var regex = /\s*function\s+([^\(\s]*)\s*/;
7446 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7447 function getName(func) {
7448 if (!util.isFunction(func)) {
7451 if (functionsHaveNames) {
7454 var str = func.toString();
7455 var match = str.match(regex);
7456 return match && match[
1];
7458 assert.AssertionError = function AssertionError(options) {
7459 this.name = 'AssertionError';
7460 this.actual = options.actual;
7461 this.expected = options.expected;
7462 this.operator = options.operator;
7463 if (options.message) {
7464 this.message = options.message;
7465 this.generatedMessage = false;
7467 this.message = getMessage(this);
7468 this.generatedMessage = true;
7470 var stackStartFunction = options.stackStartFunction || fail;
7471 if (Error.captureStackTrace) {
7472 Error.captureStackTrace(this, stackStartFunction);
7474 // non v8 browsers so we can have a stacktrace
7475 var err = new Error();
7477 var out = err.stack;
7479 // try to strip useless frames
7480 var fn_name = getName(stackStartFunction);
7481 var idx = out.indexOf('\n' + fn_name);
7483 // once we have located the function frame
7484 // we need to strip out everything before it (and its line)
7485 var next_line = out.indexOf('\n', idx +
1);
7486 out = out.substring(next_line +
1);
7494 // assert.AssertionError instanceof Error
7495 util.inherits(assert.AssertionError, Error);
7497 function truncate(s, n) {
7498 if (typeof s === 'string') {
7499 return s.length < n ? s : s.slice(
0, n);
7504 function inspect(something) {
7505 if (functionsHaveNames || !util.isFunction(something)) {
7506 return util.inspect(something);
7508 var rawname = getName(something);
7509 var name = rawname ? ': ' + rawname : '';
7510 return '[Function' + name + ']';
7512 function getMessage(self) {
7513 return truncate(inspect(self.actual),
128) + ' ' +
7514 self.operator + ' ' +
7515 truncate(inspect(self.expected),
128);
7518 // At present only the three keys mentioned above are used and
7519 // understood by the spec. Implementations or sub modules can pass
7520 // other keys to the AssertionError's constructor - they will be
7523 //
3. All of the following functions must throw an AssertionError
7524 // when a corresponding condition is not met, with a message that
7525 // may be undefined if not provided. All assertion methods provide
7526 // both the actual and expected values to the assertion error for
7527 // display purposes.
7529 function fail(actual, expected, message, operator, stackStartFunction) {
7530 throw new assert.AssertionError({
7535 stackStartFunction: stackStartFunction
7539 // EXTENSION! allows for well behaved errors defined elsewhere.
7542 //
4. Pure assertion tests whether a value is truthy, as determined
7544 // assert.ok(guard, message_opt);
7545 // This statement is equivalent to assert.equal(true, !!guard,
7546 // message_opt);. To test strictly for the value true, use
7547 // assert.strictEqual(true, guard, message_opt);.
7549 function ok(value, message) {
7550 if (!value) fail(value, true, message, '==', assert.ok);
7554 //
5. The equality assertion tests shallow, coercive equality with
7556 // assert.equal(actual, expected, message_opt);
7558 assert.equal = function equal(actual, expected, message) {
7559 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7562 //
6. The non-equality assertion tests for whether two objects are not equal
7563 // with != assert.notEqual(actual, expected, message_opt);
7565 assert.notEqual = function notEqual(actual, expected, message) {
7566 if (actual == expected) {
7567 fail(actual, expected, message, '!=', assert.notEqual);
7571 //
7. The equivalence assertion tests a deep equality relation.
7572 // assert.deepEqual(actual, expected, message_opt);
7574 assert.deepEqual = function deepEqual(actual, expected, message) {
7575 if (!_deepEqual(actual, expected, false)) {
7576 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7580 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7581 if (!_deepEqual(actual, expected, true)) {
7582 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7586 function _deepEqual(actual, expected, strict, memos) {
7587 //
7.1. All identical values are equivalent, as determined by ===.
7588 if (actual === expected) {
7590 } else if (isBuffer(actual) && isBuffer(expected)) {
7591 return compare(actual, expected) ===
0;
7593 //
7.2. If the expected value is a Date object, the actual value is
7594 // equivalent if it is also a Date object that refers to the same time.
7595 } else if (util.isDate(actual) && util.isDate(expected)) {
7596 return actual.getTime() === expected.getTime();
7598 //
7.3 If the expected value is a RegExp object, the actual value is
7599 // equivalent if it is also a RegExp object with the same source and
7600 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7601 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7602 return actual.source === expected.source &&
7603 actual.global === expected.global &&
7604 actual.multiline === expected.multiline &&
7605 actual.lastIndex === expected.lastIndex &&
7606 actual.ignoreCase === expected.ignoreCase;
7608 //
7.4. Other pairs that do not both pass typeof value == 'object',
7609 // equivalence is determined by ==.
7610 } else if ((actual === null || typeof actual !== 'object') &&
7611 (expected === null || typeof expected !== 'object')) {
7612 return strict ? actual === expected : actual == expected;
7614 // If both values are instances of typed arrays, wrap their underlying
7615 // ArrayBuffers in a Buffer each to increase performance
7616 // This optimization requires the arrays to have the same type as checked by
7617 // Object.prototype.toString (aka pToString). Never perform binary
7618 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7619 // bit patterns are not identical.
7620 } else if (isView(actual) && isView(expected) &&
7621 pToString(actual) === pToString(expected) &&
7622 !(actual instanceof Float32Array ||
7623 actual instanceof Float64Array)) {
7624 return compare(new Uint8Array(actual.buffer),
7625 new Uint8Array(expected.buffer)) ===
0;
7627 //
7.5 For all other Object pairs, including Array objects, equivalence is
7628 // determined by having the same number of owned properties (as verified
7629 // with Object.prototype.hasOwnProperty.call), the same set of keys
7630 // (although not necessarily the same order), equivalent values for every
7631 // corresponding key, and an identical 'prototype' property. Note: this
7632 // accounts for both named and indexed properties on Arrays.
7633 } else if (isBuffer(actual) !== isBuffer(expected)) {
7636 memos = memos || {actual: [], expected: []};
7638 var actualIndex = memos.actual.indexOf(actual);
7639 if (actualIndex !== -
1) {
7640 if (actualIndex === memos.expected.indexOf(expected)) {
7645 memos.actual.push(actual);
7646 memos.expected.push(expected);
7648 return objEquiv(actual, expected, strict, memos);
7652 function isArguments(object) {
7653 return Object.prototype.toString.call(object) == '[object Arguments]';
7656 function objEquiv(a, b, strict, actualVisitedObjects) {
7657 if (a === null || a === undefined || b === null || b === undefined)
7659 // if one is a primitive, the other must be same
7660 if (util.isPrimitive(a) || util.isPrimitive(b))
7662 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7664 var aIsArgs = isArguments(a);
7665 var bIsArgs = isArguments(b);
7666 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7671 return _deepEqual(a, b, strict);
7673 var ka = objectKeys(a);
7674 var kb = objectKeys(b);
7676 // having the same number of owned properties (keys incorporates
7678 if (ka.length !== kb.length)
7680 //the same set of keys (although not necessarily the same order),
7684 for (i = ka.length -
1; i
>=
0; i--) {
7685 if (ka[i] !== kb[i])
7688 //equivalent values for every corresponding key, and
7689 //~~~possibly expensive deep test
7690 for (i = ka.length -
1; i
>=
0; i--) {
7692 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7698 //
8. The non-equivalence assertion tests for any deep inequality.
7699 // assert.notDeepEqual(actual, expected, message_opt);
7701 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7702 if (_deepEqual(actual, expected, false)) {
7703 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7707 assert.notDeepStrictEqual = notDeepStrictEqual;
7708 function notDeepStrictEqual(actual, expected, message) {
7709 if (_deepEqual(actual, expected, true)) {
7710 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7715 //
9. The strict equality assertion tests strict equality, as determined by ===.
7716 // assert.strictEqual(actual, expected, message_opt);
7718 assert.strictEqual = function strictEqual(actual, expected, message) {
7719 if (actual !== expected) {
7720 fail(actual, expected, message, '===', assert.strictEqual);
7724 //
10. The strict non-equality assertion tests for strict inequality, as
7725 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7727 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7728 if (actual === expected) {
7729 fail(actual, expected, message, '!==', assert.notStrictEqual);
7733 function expectedException(actual, expected) {
7734 if (!actual || !expected) {
7738 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7739 return expected.test(actual);
7743 if (actual instanceof expected) {
7747 // Ignore. The instanceof check doesn't work for arrow functions.
7750 if (Error.isPrototypeOf(expected)) {
7754 return expected.call({}, actual) === true;
7757 function _tryBlock(block) {
7767 function _throws(shouldThrow, block, expected, message) {
7770 if (typeof block !== 'function') {
7771 throw new TypeError('"block" argument must be a function');
7774 if (typeof expected === 'string') {
7779 actual = _tryBlock(block);
7781 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7782 (message ? ' ' + message : '.');
7784 if (shouldThrow && !actual) {
7785 fail(actual, expected, 'Missing expected exception' + message);
7788 var userProvidedMessage = typeof message === 'string';
7789 var isUnwantedException = !shouldThrow && util.isError(actual);
7790 var isUnexpectedException = !shouldThrow && actual && !expected;
7792 if ((isUnwantedException &&
7793 userProvidedMessage &&
7794 expectedException(actual, expected)) ||
7795 isUnexpectedException) {
7796 fail(actual, expected, 'Got unwanted exception' + message);
7799 if ((shouldThrow && actual && expected &&
7800 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7805 //
11. Expected to throw an error:
7806 // assert.throws(block, Error_opt, message_opt);
7808 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7809 _throws(true, block, error, message);
7812 // EXTENSION! This is annoying to write outside this module.
7813 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7814 _throws(false, block, error, message);
7817 assert.ifError = function(err) { if (err) throw err; };
7819 var objectKeys = Object.keys || function (obj) {
7821 for (var key in obj) {
7822 if (hasOwn.call(obj, key)) keys.push(key);
7827 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7828 },{"util/":
32}],
2:[function(require,module,exports){
7831 exports.byteLength = byteLength
7832 exports.toByteArray = toByteArray
7833 exports.fromByteArray = fromByteArray
7837 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7839 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7840 for (var i =
0, len = code.length; i < len; ++i) {
7842 revLookup[code.charCodeAt(i)] = i
7845 revLookup['-'.charCodeAt(
0)] =
62
7846 revLookup['_'.charCodeAt(
0)] =
63
7848 function placeHoldersCount (b64) {
7849 var len = b64.length
7851 throw new Error('Invalid string. Length must be a multiple of
4')
7854 // the number of equal signs (place holders)
7855 // if there are two placeholders, than the two characters before it
7856 // represent one byte
7857 // if there is only one, then the three characters before it represent
2 bytes
7858 // this is just a cheap hack to not do indexOf twice
7859 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7862 function byteLength (b64) {
7863 // base64 is
4/
3 + up to two characters of the original data
7864 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7867 function toByteArray (b64) {
7868 var i, l, tmp, placeHolders, arr
7869 var len = b64.length
7870 placeHolders = placeHoldersCount(b64)
7872 arr = new Arr((len *
3 /
4) - placeHolders)
7874 // if there are placeholders, only get up to the last complete
4 chars
7875 l = placeHolders
> 0 ? len -
4 : len
7879 for (i =
0; i < l; i +=
4) {
7880 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7881 arr[L++] = (tmp
>> 16) &
0xFF
7882 arr[L++] = (tmp
>> 8) &
0xFF
7883 arr[L++] = tmp &
0xFF
7886 if (placeHolders ===
2) {
7887 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7888 arr[L++] = tmp &
0xFF
7889 } else if (placeHolders ===
1) {
7890 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7891 arr[L++] = (tmp
>> 8) &
0xFF
7892 arr[L++] = tmp &
0xFF
7898 function tripletToBase64 (num) {
7899 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7902 function encodeChunk (uint8, start, end) {
7905 for (var i = start; i < end; i +=
3) {
7906 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7907 output.push(tripletToBase64(tmp))
7909 return output.join('')
7912 function fromByteArray (uint8) {
7914 var len = uint8.length
7915 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7918 var maxChunkLength =
16383 // must be multiple of
3
7920 // go through the array every three bytes, we'll deal with trailing stuff later
7921 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7922 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7925 // pad the end with zeros, but make sure to not forget the extra bytes
7926 if (extraBytes ===
1) {
7927 tmp = uint8[len -
1]
7928 output += lookup[tmp
>> 2]
7929 output += lookup[(tmp <<
4) &
0x3F]
7931 } else if (extraBytes ===
2) {
7932 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7933 output += lookup[tmp
>> 10]
7934 output += lookup[(tmp
>> 4) &
0x3F]
7935 output += lookup[(tmp <<
2) &
0x3F]
7941 return parts.join('')
7944 },{}],
3:[function(require,module,exports){
7946 },{}],
4:[function(require,module,exports){
7948 * The buffer module from node.js, for the browser.
7950 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7953 /* eslint-disable no-proto */
7957 var base64 = require('base64-js')
7958 var ieee754 = require('ieee754')
7960 exports.Buffer = Buffer
7961 exports.SlowBuffer = SlowBuffer
7962 exports.INSPECT_MAX_BYTES =
50
7964 var K_MAX_LENGTH =
0x7fffffff
7965 exports.kMaxLength = K_MAX_LENGTH
7968 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7969 * === true Use Uint8Array implementation (fastest)
7970 * === false Print warning and recommend using `buffer` v4.x which has an Object
7971 * implementation (most compatible, even IE6)
7973 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7974 * Opera
11.6+, iOS
4.2+.
7976 * We report that the browser does not support typed arrays if the are not subclassable
7977 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7978 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7979 * for __proto__ and has a buggy typed array implementation.
7981 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7983 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7984 typeof console.error === 'function') {
7986 'This browser lacks typed array (Uint8Array) support which is required by ' +
7987 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7991 function typedArraySupport () {
7992 // Can typed array instances can be augmented?
7994 var arr = new Uint8Array(
1)
7995 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7996 return arr.foo() ===
42
8002 function createBuffer (length) {
8003 if (length
> K_MAX_LENGTH) {
8004 throw new RangeError('Invalid typed array length')
8006 // Return an augmented `Uint8Array` instance
8007 var buf = new Uint8Array(length)
8008 buf.__proto__ = Buffer.prototype
8013 * The Buffer constructor returns instances of `Uint8Array` that have their
8014 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
8015 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
8016 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
8017 * returns a single octet.
8019 * The `Uint8Array` prototype remains unmodified.
8022 function Buffer (arg, encodingOrOffset, length) {
8024 if (typeof arg === 'number') {
8025 if (typeof encodingOrOffset === 'string') {
8027 'If encoding is specified then the first argument must be a string'
8030 return allocUnsafe(arg)
8032 return from(arg, encodingOrOffset, length)
8035 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
8036 if (typeof Symbol !== 'undefined' && Symbol.species &&
8037 Buffer[Symbol.species] === Buffer) {
8038 Object.defineProperty(Buffer, Symbol.species, {
8046 Buffer.poolSize =
8192 // not used by this implementation
8048 function from (value, encodingOrOffset, length) {
8049 if (typeof value === 'number') {
8050 throw new TypeError('"value" argument must not be a number')
8053 if (value instanceof ArrayBuffer) {
8054 return fromArrayBuffer(value, encodingOrOffset, length)
8057 if (typeof value === 'string') {
8058 return fromString(value, encodingOrOffset)
8061 return fromObject(value)
8065 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8066 * if value is a number.
8067 * Buffer.from(str[, encoding])
8068 * Buffer.from(array)
8069 * Buffer.from(buffer)
8070 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8072 Buffer.from = function (value, encodingOrOffset, length) {
8073 return from(value, encodingOrOffset, length)
8076 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8077 // https://github.com/feross/buffer/pull/
148
8078 Buffer.prototype.__proto__ = Uint8Array.prototype
8079 Buffer.__proto__ = Uint8Array
8081 function assertSize (size) {
8082 if (typeof size !== 'number') {
8083 throw new TypeError('"size" argument must be a number')
8084 } else if (size <
0) {
8085 throw new RangeError('"size" argument must not be negative')
8089 function alloc (size, fill, encoding) {
8092 return createBuffer(size)
8094 if (fill !== undefined) {
8095 // Only pay attention to encoding if it's a string. This
8096 // prevents accidentally sending in a number that would
8097 // be interpretted as a start offset.
8098 return typeof encoding === 'string'
8099 ? createBuffer(size).fill(fill, encoding)
8100 : createBuffer(size).fill(fill)
8102 return createBuffer(size)
8106 * Creates a new filled Buffer instance.
8107 * alloc(size[, fill[, encoding]])
8109 Buffer.alloc = function (size, fill, encoding) {
8110 return alloc(size, fill, encoding)
8113 function allocUnsafe (size) {
8115 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8119 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8121 Buffer.allocUnsafe = function (size) {
8122 return allocUnsafe(size)
8125 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8127 Buffer.allocUnsafeSlow = function (size) {
8128 return allocUnsafe(size)
8131 function fromString (string, encoding) {
8132 if (typeof encoding !== 'string' || encoding === '') {
8136 if (!Buffer.isEncoding(encoding)) {
8137 throw new TypeError('"encoding" must be a valid string encoding')
8140 var length = byteLength(string, encoding) |
0
8141 var buf = createBuffer(length)
8143 var actual = buf.write(string, encoding)
8145 if (actual !== length) {
8146 // Writing a hex string, for example, that contains invalid characters will
8147 // cause everything after the first invalid character to be ignored. (e.g.
8148 // 'abxxcd' will be treated as 'ab')
8149 buf = buf.slice(
0, actual)
8155 function fromArrayLike (array) {
8156 var length = array.length <
0 ?
0 : checked(array.length) |
0
8157 var buf = createBuffer(length)
8158 for (var i =
0; i < length; i +=
1) {
8159 buf[i] = array[i] &
255
8164 function fromArrayBuffer (array, byteOffset, length) {
8165 if (byteOffset <
0 || array.byteLength < byteOffset) {
8166 throw new RangeError('\'offset\' is out of bounds')
8169 if (array.byteLength < byteOffset + (length ||
0)) {
8170 throw new RangeError('\'length\' is out of bounds')
8174 if (byteOffset === undefined && length === undefined) {
8175 buf = new Uint8Array(array)
8176 } else if (length === undefined) {
8177 buf = new Uint8Array(array, byteOffset)
8179 buf = new Uint8Array(array, byteOffset, length)
8182 // Return an augmented `Uint8Array` instance
8183 buf.__proto__ = Buffer.prototype
8187 function fromObject (obj) {
8188 if (Buffer.isBuffer(obj)) {
8189 var len = checked(obj.length) |
0
8190 var buf = createBuffer(len)
8192 if (buf.length ===
0) {
8196 obj.copy(buf,
0,
0, len)
8201 if (isArrayBufferView(obj) || 'length' in obj) {
8202 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8203 return createBuffer(
0)
8205 return fromArrayLike(obj)
8208 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8209 return fromArrayLike(obj.data)
8213 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8216 function checked (length) {
8217 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8218 // length is NaN (which is otherwise coerced to zero.)
8219 if (length
>= K_MAX_LENGTH) {
8220 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8221 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8226 function SlowBuffer (length) {
8227 if (+length != length) { // eslint-disable-line eqeqeq
8230 return Buffer.alloc(+length)
8233 Buffer.isBuffer = function isBuffer (b) {
8234 return b != null && b._isBuffer === true
8237 Buffer.compare = function compare (a, b) {
8238 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8239 throw new TypeError('Arguments must be Buffers')
8242 if (a === b) return
0
8247 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8248 if (a[i] !== b[i]) {
8255 if (x < y) return -
1
8260 Buffer.isEncoding = function isEncoding (encoding) {
8261 switch (String(encoding).toLowerCase()) {
8279 Buffer.concat = function concat (list, length) {
8280 if (!Array.isArray(list)) {
8281 throw new TypeError('"list" argument must be an Array of Buffers')
8284 if (list.length ===
0) {
8285 return Buffer.alloc(
0)
8289 if (length === undefined) {
8291 for (i =
0; i < list.length; ++i) {
8292 length += list[i].length
8296 var buffer = Buffer.allocUnsafe(length)
8298 for (i =
0; i < list.length; ++i) {
8300 if (!Buffer.isBuffer(buf)) {
8301 throw new TypeError('"list" argument must be an Array of Buffers')
8303 buf.copy(buffer, pos)
8309 function byteLength (string, encoding) {
8310 if (Buffer.isBuffer(string)) {
8311 return string.length
8313 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8314 return string.byteLength
8316 if (typeof string !== 'string') {
8317 string = '' + string
8320 var len = string.length
8321 if (len ===
0) return
0
8323 // Use a for loop to avoid recursion
8324 var loweredCase = false
8334 return utf8ToBytes(string).length
8343 return base64ToBytes(string).length
8345 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8346 encoding = ('' + encoding).toLowerCase()
8351 Buffer.byteLength = byteLength
8353 function slowToString (encoding, start, end) {
8354 var loweredCase = false
8356 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8357 // property of a typed array.
8359 // This behaves neither like String nor Uint8Array in that we set start/end
8360 // to their upper/lower bounds if the value passed is out of range.
8361 // undefined is handled specially as per ECMA-
262 6th Edition,
8362 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8363 if (start === undefined || start <
0) {
8366 // Return early if start
> this.length. Done here to prevent potential uint32
8367 // coercion fail below.
8368 if (start
> this.length) {
8372 if (end === undefined || end
> this.length) {
8380 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8388 if (!encoding) encoding = 'utf8'
8393 return hexSlice(this, start, end)
8397 return utf8Slice(this, start, end)
8400 return asciiSlice(this, start, end)
8404 return latin1Slice(this, start, end)
8407 return base64Slice(this, start, end)
8413 return utf16leSlice(this, start, end)
8416 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8417 encoding = (encoding + '').toLowerCase()
8423 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8424 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8425 // reliably in a browserify context because there could be multiple different
8426 // copies of the 'buffer' package in use. This method works even for Buffer
8427 // instances that were created from another copy of the `buffer` package.
8428 // See: https://github.com/feross/buffer/issues/
154
8429 Buffer.prototype._isBuffer = true
8431 function swap (b, n, m) {
8437 Buffer.prototype.swap16 = function swap16 () {
8438 var len = this.length
8439 if (len %
2 !==
0) {
8440 throw new RangeError('Buffer size must be a multiple of
16-bits')
8442 for (var i =
0; i < len; i +=
2) {
8443 swap(this, i, i +
1)
8448 Buffer.prototype.swap32 = function swap32 () {
8449 var len = this.length
8450 if (len %
4 !==
0) {
8451 throw new RangeError('Buffer size must be a multiple of
32-bits')
8453 for (var i =
0; i < len; i +=
4) {
8454 swap(this, i, i +
3)
8455 swap(this, i +
1, i +
2)
8460 Buffer.prototype.swap64 = function swap64 () {
8461 var len = this.length
8462 if (len %
8 !==
0) {
8463 throw new RangeError('Buffer size must be a multiple of
64-bits')
8465 for (var i =
0; i < len; i +=
8) {
8466 swap(this, i, i +
7)
8467 swap(this, i +
1, i +
6)
8468 swap(this, i +
2, i +
5)
8469 swap(this, i +
3, i +
4)
8474 Buffer.prototype.toString = function toString () {
8475 var length = this.length
8476 if (length ===
0) return ''
8477 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8478 return slowToString.apply(this, arguments)
8481 Buffer.prototype.equals = function equals (b) {
8482 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8483 if (this === b) return true
8484 return Buffer.compare(this, b) ===
0
8487 Buffer.prototype.inspect = function inspect () {
8489 var max = exports.INSPECT_MAX_BYTES
8490 if (this.length
> 0) {
8491 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8492 if (this.length
> max) str += ' ... '
8494 return '
<Buffer ' + str + '
>'
8497 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8498 if (!Buffer.isBuffer(target)) {
8499 throw new TypeError('Argument must be a Buffer')
8502 if (start === undefined) {
8505 if (end === undefined) {
8506 end = target ? target.length :
0
8508 if (thisStart === undefined) {
8511 if (thisEnd === undefined) {
8512 thisEnd = this.length
8515 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8516 throw new RangeError('out of range index')
8519 if (thisStart
>= thisEnd && start
>= end) {
8522 if (thisStart
>= thisEnd) {
8534 if (this === target) return
0
8536 var x = thisEnd - thisStart
8538 var len = Math.min(x, y)
8540 var thisCopy = this.slice(thisStart, thisEnd)
8541 var targetCopy = target.slice(start, end)
8543 for (var i =
0; i < len; ++i) {
8544 if (thisCopy[i] !== targetCopy[i]) {
8551 if (x < y) return -
1
8556 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8557 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8560 // - buffer - a Buffer to search
8561 // - val - a string, Buffer, or number
8562 // - byteOffset - an index into `buffer`; will be clamped to an int32
8563 // - encoding - an optional encoding, relevant is val is a string
8564 // - dir - true for indexOf, false for lastIndexOf
8565 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8566 // Empty buffer means no match
8567 if (buffer.length ===
0) return -
1
8569 // Normalize byteOffset
8570 if (typeof byteOffset === 'string') {
8571 encoding = byteOffset
8573 } else if (byteOffset
> 0x7fffffff) {
8574 byteOffset =
0x7fffffff
8575 } else if (byteOffset < -
0x80000000) {
8576 byteOffset = -
0x80000000
8578 byteOffset = +byteOffset // Coerce to Number.
8579 if (numberIsNaN(byteOffset)) {
8580 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8581 byteOffset = dir ?
0 : (buffer.length -
1)
8584 // Normalize byteOffset: negative offsets start from the end of the buffer
8585 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8586 if (byteOffset
>= buffer.length) {
8588 else byteOffset = buffer.length -
1
8589 } else if (byteOffset <
0) {
8590 if (dir) byteOffset =
0
8595 if (typeof val === 'string') {
8596 val = Buffer.from(val, encoding)
8599 // Finally, search either indexOf (if dir is true) or lastIndexOf
8600 if (Buffer.isBuffer(val)) {
8601 // Special case: looking for empty string/buffer always fails
8602 if (val.length ===
0) {
8605 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8606 } else if (typeof val === 'number') {
8607 val = val &
0xFF // Search for a byte value [
0-
255]
8608 if (typeof Uint8Array.prototype.indexOf === 'function') {
8610 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8612 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8615 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8618 throw new TypeError('val must be string, number or Buffer')
8621 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8623 var arrLength = arr.length
8624 var valLength = val.length
8626 if (encoding !== undefined) {
8627 encoding = String(encoding).toLowerCase()
8628 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8629 encoding === 'utf16le' || encoding === 'utf-
16le') {
8630 if (arr.length <
2 || val.length <
2) {
8640 function read (buf, i) {
8641 if (indexSize ===
1) {
8644 return buf.readUInt16BE(i * indexSize)
8651 for (i = byteOffset; i < arrLength; i++) {
8652 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8653 if (foundIndex === -
1) foundIndex = i
8654 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8656 if (foundIndex !== -
1) i -= i - foundIndex
8661 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8662 for (i = byteOffset; i
>=
0; i--) {
8664 for (var j =
0; j < valLength; j++) {
8665 if (read(arr, i + j) !== read(val, j)) {
8677 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8678 return this.indexOf(val, byteOffset, encoding) !== -
1
8681 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8682 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8685 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8686 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8689 function hexWrite (buf, string, offset, length) {
8690 offset = Number(offset) ||
0
8691 var remaining = buf.length - offset
8695 length = Number(length)
8696 if (length
> remaining) {
8701 // must be an even number of digits
8702 var strLen = string.length
8703 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8705 if (length
> strLen /
2) {
8708 for (var i =
0; i < length; ++i) {
8709 var parsed = parseInt(string.substr(i *
2,
2),
16)
8710 if (numberIsNaN(parsed)) return i
8711 buf[offset + i] = parsed
8716 function utf8Write (buf, string, offset, length) {
8717 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8720 function asciiWrite (buf, string, offset, length) {
8721 return blitBuffer(asciiToBytes(string), buf, offset, length)
8724 function latin1Write (buf, string, offset, length) {
8725 return asciiWrite(buf, string, offset, length)
8728 function base64Write (buf, string, offset, length) {
8729 return blitBuffer(base64ToBytes(string), buf, offset, length)
8732 function ucs2Write (buf, string, offset, length) {
8733 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8736 Buffer.prototype.write = function write (string, offset, length, encoding) {
8737 // Buffer#write(string)
8738 if (offset === undefined) {
8740 length = this.length
8742 // Buffer#write(string, encoding)
8743 } else if (length === undefined && typeof offset === 'string') {
8745 length = this.length
8747 // Buffer#write(string, offset[, length][, encoding])
8748 } else if (isFinite(offset)) {
8749 offset = offset
>>> 0
8750 if (isFinite(length)) {
8751 length = length
>>> 0
8752 if (encoding === undefined) encoding = 'utf8'
8759 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8763 var remaining = this.length - offset
8764 if (length === undefined || length
> remaining) length = remaining
8766 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8767 throw new RangeError('Attempt to write outside buffer bounds')
8770 if (!encoding) encoding = 'utf8'
8772 var loweredCase = false
8776 return hexWrite(this, string, offset, length)
8780 return utf8Write(this, string, offset, length)
8783 return asciiWrite(this, string, offset, length)
8787 return latin1Write(this, string, offset, length)
8790 // Warning: maxLength not taken into account in base64Write
8791 return base64Write(this, string, offset, length)
8797 return ucs2Write(this, string, offset, length)
8800 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8801 encoding = ('' + encoding).toLowerCase()
8807 Buffer.prototype.toJSON = function toJSON () {
8810 data: Array.prototype.slice.call(this._arr || this,
0)
8814 function base64Slice (buf, start, end) {
8815 if (start ===
0 && end === buf.length) {
8816 return base64.fromByteArray(buf)
8818 return base64.fromByteArray(buf.slice(start, end))
8822 function utf8Slice (buf, start, end) {
8823 end = Math.min(buf.length, end)
8828 var firstByte = buf[i]
8829 var codePoint = null
8830 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8831 : (firstByte
> 0xDF) ?
3
8832 : (firstByte
> 0xBF) ?
2
8835 if (i + bytesPerSequence <= end) {
8836 var secondByte, thirdByte, fourthByte, tempCodePoint
8838 switch (bytesPerSequence) {
8840 if (firstByte <
0x80) {
8841 codePoint = firstByte
8845 secondByte = buf[i +
1]
8846 if ((secondByte &
0xC0) ===
0x80) {
8847 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8848 if (tempCodePoint
> 0x7F) {
8849 codePoint = tempCodePoint
8854 secondByte = buf[i +
1]
8855 thirdByte = buf[i +
2]
8856 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8857 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8858 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8859 codePoint = tempCodePoint
8864 secondByte = buf[i +
1]
8865 thirdByte = buf[i +
2]
8866 fourthByte = buf[i +
3]
8867 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8868 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8869 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8870 codePoint = tempCodePoint
8876 if (codePoint === null) {
8877 // we did not generate a valid codePoint so insert a
8878 // replacement char (U+FFFD) and advance only
1 byte
8880 bytesPerSequence =
1
8881 } else if (codePoint
> 0xFFFF) {
8882 // encode to utf16 (surrogate pair dance)
8883 codePoint -=
0x10000
8884 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8885 codePoint =
0xDC00 | codePoint &
0x3FF
8889 i += bytesPerSequence
8892 return decodeCodePointsArray(res)
8895 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8896 // the lowest limit is Chrome, with
0x10000 args.
8897 // We go
1 magnitude less, for safety
8898 var MAX_ARGUMENTS_LENGTH =
0x1000
8900 function decodeCodePointsArray (codePoints) {
8901 var len = codePoints.length
8902 if (len <= MAX_ARGUMENTS_LENGTH) {
8903 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8906 // Decode in chunks to avoid
"call stack size exceeded".
8910 res += String.fromCharCode.apply(
8912 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8918 function asciiSlice (buf, start, end) {
8920 end = Math.min(buf.length, end)
8922 for (var i = start; i < end; ++i) {
8923 ret += String.fromCharCode(buf[i] &
0x7F)
8928 function latin1Slice (buf, start, end) {
8930 end = Math.min(buf.length, end)
8932 for (var i = start; i < end; ++i) {
8933 ret += String.fromCharCode(buf[i])
8938 function hexSlice (buf, start, end) {
8939 var len = buf.length
8941 if (!start || start <
0) start =
0
8942 if (!end || end <
0 || end
> len) end = len
8945 for (var i = start; i < end; ++i) {
8946 out += toHex(buf[i])
8951 function utf16leSlice (buf, start, end) {
8952 var bytes = buf.slice(start, end)
8954 for (var i =
0; i < bytes.length; i +=
2) {
8955 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8960 Buffer.prototype.slice = function slice (start, end) {
8961 var len = this.length
8963 end = end === undefined ? len : ~~end
8967 if (start <
0) start =
0
8968 } else if (start
> len) {
8974 if (end <
0) end =
0
8975 } else if (end
> len) {
8979 if (end < start) end = start
8981 var newBuf = this.subarray(start, end)
8982 // Return an augmented `Uint8Array` instance
8983 newBuf.__proto__ = Buffer.prototype
8988 * Need to make sure that buffer isn't trying to write out of bounds.
8990 function checkOffset (offset, ext, length) {
8991 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8992 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8995 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8996 offset = offset
>>> 0
8997 byteLength = byteLength
>>> 0
8998 if (!noAssert) checkOffset(offset, byteLength, this.length)
9000 var val = this[offset]
9003 while (++i < byteLength && (mul *=
0x100)) {
9004 val += this[offset + i] * mul
9010 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
9011 offset = offset
>>> 0
9012 byteLength = byteLength
>>> 0
9014 checkOffset(offset, byteLength, this.length)
9017 var val = this[offset + --byteLength]
9019 while (byteLength
> 0 && (mul *=
0x100)) {
9020 val += this[offset + --byteLength] * mul
9026 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
9027 offset = offset
>>> 0
9028 if (!noAssert) checkOffset(offset,
1, this.length)
9032 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
9033 offset = offset
>>> 0
9034 if (!noAssert) checkOffset(offset,
2, this.length)
9035 return this[offset] | (this[offset +
1] <<
8)
9038 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
9039 offset = offset
>>> 0
9040 if (!noAssert) checkOffset(offset,
2, this.length)
9041 return (this[offset] <<
8) | this[offset +
1]
9044 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9045 offset = offset
>>> 0
9046 if (!noAssert) checkOffset(offset,
4, this.length)
9048 return ((this[offset]) |
9049 (this[offset +
1] <<
8) |
9050 (this[offset +
2] <<
16)) +
9051 (this[offset +
3] *
0x1000000)
9054 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9055 offset = offset
>>> 0
9056 if (!noAssert) checkOffset(offset,
4, this.length)
9058 return (this[offset] *
0x1000000) +
9059 ((this[offset +
1] <<
16) |
9060 (this[offset +
2] <<
8) |
9064 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9065 offset = offset
>>> 0
9066 byteLength = byteLength
>>> 0
9067 if (!noAssert) checkOffset(offset, byteLength, this.length)
9069 var val = this[offset]
9072 while (++i < byteLength && (mul *=
0x100)) {
9073 val += this[offset + i] * mul
9077 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9082 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9083 offset = offset
>>> 0
9084 byteLength = byteLength
>>> 0
9085 if (!noAssert) checkOffset(offset, byteLength, this.length)
9089 var val = this[offset + --i]
9090 while (i
> 0 && (mul *=
0x100)) {
9091 val += this[offset + --i] * mul
9095 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9100 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9101 offset = offset
>>> 0
9102 if (!noAssert) checkOffset(offset,
1, this.length)
9103 if (!(this[offset] &
0x80)) return (this[offset])
9104 return ((
0xff - this[offset] +
1) * -
1)
9107 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9108 offset = offset
>>> 0
9109 if (!noAssert) checkOffset(offset,
2, this.length)
9110 var val = this[offset] | (this[offset +
1] <<
8)
9111 return (val &
0x8000) ? val |
0xFFFF0000 : val
9114 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9115 offset = offset
>>> 0
9116 if (!noAssert) checkOffset(offset,
2, this.length)
9117 var val = this[offset +
1] | (this[offset] <<
8)
9118 return (val &
0x8000) ? val |
0xFFFF0000 : val
9121 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9122 offset = offset
>>> 0
9123 if (!noAssert) checkOffset(offset,
4, this.length)
9125 return (this[offset]) |
9126 (this[offset +
1] <<
8) |
9127 (this[offset +
2] <<
16) |
9128 (this[offset +
3] <<
24)
9131 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9132 offset = offset
>>> 0
9133 if (!noAssert) checkOffset(offset,
4, this.length)
9135 return (this[offset] <<
24) |
9136 (this[offset +
1] <<
16) |
9137 (this[offset +
2] <<
8) |
9141 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9142 offset = offset
>>> 0
9143 if (!noAssert) checkOffset(offset,
4, this.length)
9144 return ieee754.read(this, offset, true,
23,
4)
9147 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9148 offset = offset
>>> 0
9149 if (!noAssert) checkOffset(offset,
4, this.length)
9150 return ieee754.read(this, offset, false,
23,
4)
9153 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9154 offset = offset
>>> 0
9155 if (!noAssert) checkOffset(offset,
8, this.length)
9156 return ieee754.read(this, offset, true,
52,
8)
9159 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9160 offset = offset
>>> 0
9161 if (!noAssert) checkOffset(offset,
8, this.length)
9162 return ieee754.read(this, offset, false,
52,
8)
9165 function checkInt (buf, value, offset, ext, max, min) {
9166 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9167 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9168 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9171 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9173 offset = offset
>>> 0
9174 byteLength = byteLength
>>> 0
9176 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9177 checkInt(this, value, offset, byteLength, maxBytes,
0)
9182 this[offset] = value &
0xFF
9183 while (++i < byteLength && (mul *=
0x100)) {
9184 this[offset + i] = (value / mul) &
0xFF
9187 return offset + byteLength
9190 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9192 offset = offset
>>> 0
9193 byteLength = byteLength
>>> 0
9195 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9196 checkInt(this, value, offset, byteLength, maxBytes,
0)
9199 var i = byteLength -
1
9201 this[offset + i] = value &
0xFF
9202 while (--i
>=
0 && (mul *=
0x100)) {
9203 this[offset + i] = (value / mul) &
0xFF
9206 return offset + byteLength
9209 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9211 offset = offset
>>> 0
9212 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9213 this[offset] = (value &
0xff)
9217 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9219 offset = offset
>>> 0
9220 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9221 this[offset] = (value &
0xff)
9222 this[offset +
1] = (value
>>> 8)
9226 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9228 offset = offset
>>> 0
9229 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9230 this[offset] = (value
>>> 8)
9231 this[offset +
1] = (value &
0xff)
9235 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9237 offset = offset
>>> 0
9238 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9239 this[offset +
3] = (value
>>> 24)
9240 this[offset +
2] = (value
>>> 16)
9241 this[offset +
1] = (value
>>> 8)
9242 this[offset] = (value &
0xff)
9246 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9248 offset = offset
>>> 0
9249 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9250 this[offset] = (value
>>> 24)
9251 this[offset +
1] = (value
>>> 16)
9252 this[offset +
2] = (value
>>> 8)
9253 this[offset +
3] = (value &
0xff)
9257 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9259 offset = offset
>>> 0
9261 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9263 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9269 this[offset] = value &
0xFF
9270 while (++i < byteLength && (mul *=
0x100)) {
9271 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9274 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9277 return offset + byteLength
9280 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9282 offset = offset
>>> 0
9284 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9286 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9289 var i = byteLength -
1
9292 this[offset + i] = value &
0xFF
9293 while (--i
>=
0 && (mul *=
0x100)) {
9294 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9297 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9300 return offset + byteLength
9303 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9305 offset = offset
>>> 0
9306 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9307 if (value <
0) value =
0xff + value +
1
9308 this[offset] = (value &
0xff)
9312 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9314 offset = offset
>>> 0
9315 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9316 this[offset] = (value &
0xff)
9317 this[offset +
1] = (value
>>> 8)
9321 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9323 offset = offset
>>> 0
9324 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9325 this[offset] = (value
>>> 8)
9326 this[offset +
1] = (value &
0xff)
9330 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9332 offset = offset
>>> 0
9333 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9334 this[offset] = (value &
0xff)
9335 this[offset +
1] = (value
>>> 8)
9336 this[offset +
2] = (value
>>> 16)
9337 this[offset +
3] = (value
>>> 24)
9341 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9343 offset = offset
>>> 0
9344 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9345 if (value <
0) value =
0xffffffff + value +
1
9346 this[offset] = (value
>>> 24)
9347 this[offset +
1] = (value
>>> 16)
9348 this[offset +
2] = (value
>>> 8)
9349 this[offset +
3] = (value &
0xff)
9353 function checkIEEE754 (buf, value, offset, ext, max, min) {
9354 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9355 if (offset <
0) throw new RangeError('Index out of range')
9358 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9360 offset = offset
>>> 0
9362 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9364 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9368 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9369 return writeFloat(this, value, offset, true, noAssert)
9372 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9373 return writeFloat(this, value, offset, false, noAssert)
9376 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9378 offset = offset
>>> 0
9380 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9382 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9386 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9387 return writeDouble(this, value, offset, true, noAssert)
9390 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9391 return writeDouble(this, value, offset, false, noAssert)
9394 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9395 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9396 if (!start) start =
0
9397 if (!end && end !==
0) end = this.length
9398 if (targetStart
>= target.length) targetStart = target.length
9399 if (!targetStart) targetStart =
0
9400 if (end
> 0 && end < start) end = start
9402 // Copy
0 bytes; we're done
9403 if (end === start) return
0
9404 if (target.length ===
0 || this.length ===
0) return
0
9406 // Fatal error conditions
9407 if (targetStart <
0) {
9408 throw new RangeError('targetStart out of bounds')
9410 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9411 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9414 if (end
> this.length) end = this.length
9415 if (target.length - targetStart < end - start) {
9416 end = target.length - targetStart + start
9419 var len = end - start
9422 if (this === target && start < targetStart && targetStart < end) {
9423 // descending copy from end
9424 for (i = len -
1; i
>=
0; --i) {
9425 target[i + targetStart] = this[i + start]
9427 } else if (len <
1000) {
9428 // ascending copy from start
9429 for (i =
0; i < len; ++i) {
9430 target[i + targetStart] = this[i + start]
9433 Uint8Array.prototype.set.call(
9435 this.subarray(start, start + len),
9444 // buffer.fill(number[, offset[, end]])
9445 // buffer.fill(buffer[, offset[, end]])
9446 // buffer.fill(string[, offset[, end]][, encoding])
9447 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9448 // Handle string cases:
9449 if (typeof val === 'string') {
9450 if (typeof start === 'string') {
9454 } else if (typeof end === 'string') {
9458 if (val.length ===
1) {
9459 var code = val.charCodeAt(
0)
9464 if (encoding !== undefined && typeof encoding !== 'string') {
9465 throw new TypeError('encoding must be a string')
9467 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9468 throw new TypeError('Unknown encoding: ' + encoding)
9470 } else if (typeof val === 'number') {
9474 // Invalid ranges are not set to a default, so can range check early.
9475 if (start <
0 || this.length < start || this.length < end) {
9476 throw new RangeError('Out of range index')
9484 end = end === undefined ? this.length : end
>>> 0
9489 if (typeof val === 'number') {
9490 for (i = start; i < end; ++i) {
9494 var bytes = Buffer.isBuffer(val)
9496 : new Buffer(val, encoding)
9497 var len = bytes.length
9498 for (i =
0; i < end - start; ++i) {
9499 this[i + start] = bytes[i % len]
9509 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9511 function base64clean (str) {
9512 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9513 str = str.trim().replace(INVALID_BASE64_RE, '')
9514 // Node converts strings with length <
2 to ''
9515 if (str.length <
2) return ''
9516 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9517 while (str.length %
4 !==
0) {
9523 function toHex (n) {
9524 if (n <
16) return '
0' + n.toString(
16)
9525 return n.toString(
16)
9528 function utf8ToBytes (string, units) {
9529 units = units || Infinity
9531 var length = string.length
9532 var leadSurrogate = null
9535 for (var i =
0; i < length; ++i) {
9536 codePoint = string.charCodeAt(i)
9538 // is surrogate component
9539 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9540 // last char was a lead
9541 if (!leadSurrogate) {
9543 if (codePoint
> 0xDBFF) {
9545 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9547 } else if (i +
1 === length) {
9549 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9554 leadSurrogate = codePoint
9560 if (codePoint <
0xDC00) {
9561 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9562 leadSurrogate = codePoint
9566 // valid surrogate pair
9567 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9568 } else if (leadSurrogate) {
9569 // valid bmp char, but last char was a lead
9570 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9573 leadSurrogate = null
9576 if (codePoint <
0x80) {
9577 if ((units -=
1) <
0) break
9578 bytes.push(codePoint)
9579 } else if (codePoint <
0x800) {
9580 if ((units -=
2) <
0) break
9582 codePoint
>> 0x6 |
0xC0,
9583 codePoint &
0x3F |
0x80
9585 } else if (codePoint <
0x10000) {
9586 if ((units -=
3) <
0) break
9588 codePoint
>> 0xC |
0xE0,
9589 codePoint
>> 0x6 &
0x3F |
0x80,
9590 codePoint &
0x3F |
0x80
9592 } else if (codePoint <
0x110000) {
9593 if ((units -=
4) <
0) break
9595 codePoint
>> 0x12 |
0xF0,
9596 codePoint
>> 0xC &
0x3F |
0x80,
9597 codePoint
>> 0x6 &
0x3F |
0x80,
9598 codePoint &
0x3F |
0x80
9601 throw new Error('Invalid code point')
9608 function asciiToBytes (str) {
9610 for (var i =
0; i < str.length; ++i) {
9611 // Node's code seems to be doing this and not &
0x7F..
9612 byteArray.push(str.charCodeAt(i) &
0xFF)
9617 function utf16leToBytes (str, units) {
9620 for (var i =
0; i < str.length; ++i) {
9621 if ((units -=
2) <
0) break
9623 c = str.charCodeAt(i)
9633 function base64ToBytes (str) {
9634 return base64.toByteArray(base64clean(str))
9637 function blitBuffer (src, dst, offset, length) {
9638 for (var i =
0; i < length; ++i) {
9639 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9640 dst[i + offset] = src[i]
9645 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9646 function isArrayBufferView (obj) {
9647 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9650 function numberIsNaN (obj) {
9651 return obj !== obj // eslint-disable-line no-self-compare
9654 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9656 // Copyright Joyent, Inc. and other Node contributors.
9658 // Permission is hereby granted, free of charge, to any person obtaining a
9659 // copy of this software and associated documentation files (the
9660 // "Software"), to deal in the Software without restriction, including
9661 // without limitation the rights to use, copy, modify, merge, publish,
9662 // distribute, sublicense, and/or sell copies of the Software, and to permit
9663 // persons to whom the Software is furnished to do so, subject to the
9664 // following conditions:
9666 // The above copyright notice and this permission notice shall be included
9667 // in all copies or substantial portions of the Software.
9669 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9670 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9671 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9672 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9673 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9674 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9675 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9677 // NOTE: These type checking functions intentionally don't use `instanceof`
9678 // because it is fragile and can be easily faked with `Object.create()`.
9680 function isArray(arg) {
9681 if (Array.isArray) {
9682 return Array.isArray(arg);
9684 return objectToString(arg) === '[object Array]';
9686 exports.isArray = isArray;
9688 function isBoolean(arg) {
9689 return typeof arg === 'boolean';
9691 exports.isBoolean = isBoolean;
9693 function isNull(arg) {
9694 return arg === null;
9696 exports.isNull = isNull;
9698 function isNullOrUndefined(arg) {
9701 exports.isNullOrUndefined = isNullOrUndefined;
9703 function isNumber(arg) {
9704 return typeof arg === 'number';
9706 exports.isNumber = isNumber;
9708 function isString(arg) {
9709 return typeof arg === 'string';
9711 exports.isString = isString;
9713 function isSymbol(arg) {
9714 return typeof arg === 'symbol';
9716 exports.isSymbol = isSymbol;
9718 function isUndefined(arg) {
9719 return arg === void
0;
9721 exports.isUndefined = isUndefined;
9723 function isRegExp(re) {
9724 return objectToString(re) === '[object RegExp]';
9726 exports.isRegExp = isRegExp;
9728 function isObject(arg) {
9729 return typeof arg === 'object' && arg !== null;
9731 exports.isObject = isObject;
9733 function isDate(d) {
9734 return objectToString(d) === '[object Date]';
9736 exports.isDate = isDate;
9738 function isError(e) {
9739 return (objectToString(e) === '[object Error]' || e instanceof Error);
9741 exports.isError = isError;
9743 function isFunction(arg) {
9744 return typeof arg === 'function';
9746 exports.isFunction = isFunction;
9748 function isPrimitive(arg) {
9749 return arg === null ||
9750 typeof arg === 'boolean' ||
9751 typeof arg === 'number' ||
9752 typeof arg === 'string' ||
9753 typeof arg === 'symbol' || // ES6 symbol
9754 typeof arg === 'undefined';
9756 exports.isPrimitive = isPrimitive;
9758 exports.isBuffer = Buffer.isBuffer;
9760 function objectToString(o) {
9761 return Object.prototype.toString.call(o);
9764 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9765 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9766 // Copyright Joyent, Inc. and other Node contributors.
9768 // Permission is hereby granted, free of charge, to any person obtaining a
9769 // copy of this software and associated documentation files (the
9770 // "Software"), to deal in the Software without restriction, including
9771 // without limitation the rights to use, copy, modify, merge, publish,
9772 // distribute, sublicense, and/or sell copies of the Software, and to permit
9773 // persons to whom the Software is furnished to do so, subject to the
9774 // following conditions:
9776 // The above copyright notice and this permission notice shall be included
9777 // in all copies or substantial portions of the Software.
9779 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9780 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9781 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9782 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9783 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9784 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9785 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9787 function EventEmitter() {
9788 this._events = this._events || {};
9789 this._maxListeners = this._maxListeners || undefined;
9791 module.exports = EventEmitter;
9793 // Backwards-compat with node
0.10.x
9794 EventEmitter.EventEmitter = EventEmitter;
9796 EventEmitter.prototype._events = undefined;
9797 EventEmitter.prototype._maxListeners = undefined;
9799 // By default EventEmitters will print a warning if more than
10 listeners are
9800 // added to it. This is a useful default which helps finding memory leaks.
9801 EventEmitter.defaultMaxListeners =
10;
9803 // Obviously not all Emitters should be limited to
10. This function allows
9804 // that to be increased. Set to zero for unlimited.
9805 EventEmitter.prototype.setMaxListeners = function(n) {
9806 if (!isNumber(n) || n <
0 || isNaN(n))
9807 throw TypeError('n must be a positive number');
9808 this._maxListeners = n;
9812 EventEmitter.prototype.emit = function(type) {
9813 var er, handler, len, args, i, listeners;
9818 // If there is no 'error' event listener then throw.
9819 if (type === 'error') {
9820 if (!this._events.error ||
9821 (isObject(this._events.error) && !this._events.error.length)) {
9823 if (er instanceof Error) {
9824 throw er; // Unhandled 'error' event
9826 // At least give some kind of context to the user
9827 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9834 handler = this._events[type];
9836 if (isUndefined(handler))
9839 if (isFunction(handler)) {
9840 switch (arguments.length) {
9846 handler.call(this, arguments[
1]);
9849 handler.call(this, arguments[
1], arguments[
2]);
9853 args = Array.prototype.slice.call(arguments,
1);
9854 handler.apply(this, args);
9856 } else if (isObject(handler)) {
9857 args = Array.prototype.slice.call(arguments,
1);
9858 listeners = handler.slice();
9859 len = listeners.length;
9860 for (i =
0; i < len; i++)
9861 listeners[i].apply(this, args);
9867 EventEmitter.prototype.addListener = function(type, listener) {
9870 if (!isFunction(listener))
9871 throw TypeError('listener must be a function');
9876 // To avoid recursion in the case that type === "newListener"! Before
9877 // adding it to the listeners, first emit "newListener".
9878 if (this._events.newListener)
9879 this.emit('newListener', type,
9880 isFunction(listener.listener) ?
9881 listener.listener : listener);
9883 if (!this._events[type])
9884 // Optimize the case of one listener. Don't need the extra array object.
9885 this._events[type] = listener;
9886 else if (isObject(this._events[type]))
9887 // If we've already got an array, just append.
9888 this._events[type].push(listener);
9890 // Adding the second element, need to change to array.
9891 this._events[type] = [this._events[type], listener];
9893 // Check for listener leak
9894 if (isObject(this._events[type]) && !this._events[type].warned) {
9895 if (!isUndefined(this._maxListeners)) {
9896 m = this._maxListeners;
9898 m = EventEmitter.defaultMaxListeners;
9901 if (m && m
> 0 && this._events[type].length
> m) {
9902 this._events[type].warned = true;
9903 console.error('(node) warning: possible EventEmitter memory ' +
9904 'leak detected. %d listeners added. ' +
9905 'Use emitter.setMaxListeners() to increase limit.',
9906 this._events[type].length);
9907 if (typeof console.trace === 'function') {
9908 // not supported in IE
10
9917 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9919 EventEmitter.prototype.once = function(type, listener) {
9920 if (!isFunction(listener))
9921 throw TypeError('listener must be a function');
9926 this.removeListener(type, g);
9930 listener.apply(this, arguments);
9934 g.listener = listener;
9940 // emits a 'removeListener' event iff the listener was removed
9941 EventEmitter.prototype.removeListener = function(type, listener) {
9942 var list, position, length, i;
9944 if (!isFunction(listener))
9945 throw TypeError('listener must be a function');
9947 if (!this._events || !this._events[type])
9950 list = this._events[type];
9951 length = list.length;
9954 if (list === listener ||
9955 (isFunction(list.listener) && list.listener === listener)) {
9956 delete this._events[type];
9957 if (this._events.removeListener)
9958 this.emit('removeListener', type, listener);
9960 } else if (isObject(list)) {
9961 for (i = length; i--
> 0;) {
9962 if (list[i] === listener ||
9963 (list[i].listener && list[i].listener === listener)) {
9972 if (list.length ===
1) {
9974 delete this._events[type];
9976 list.splice(position,
1);
9979 if (this._events.removeListener)
9980 this.emit('removeListener', type, listener);
9986 EventEmitter.prototype.removeAllListeners = function(type) {
9992 // not listening for removeListener, no need to emit
9993 if (!this._events.removeListener) {
9994 if (arguments.length ===
0)
9996 else if (this._events[type])
9997 delete this._events[type];
10001 // emit removeListener for all listeners on all events
10002 if (arguments.length ===
0) {
10003 for (key in this._events) {
10004 if (key === 'removeListener') continue;
10005 this.removeAllListeners(key);
10007 this.removeAllListeners('removeListener');
10012 listeners = this._events[type];
10014 if (isFunction(listeners)) {
10015 this.removeListener(type, listeners);
10016 } else if (listeners) {
10018 while (listeners.length)
10019 this.removeListener(type, listeners[listeners.length -
1]);
10021 delete this._events[type];
10026 EventEmitter.prototype.listeners = function(type) {
10028 if (!this._events || !this._events[type])
10030 else if (isFunction(this._events[type]))
10031 ret = [this._events[type]];
10033 ret = this._events[type].slice();
10037 EventEmitter.prototype.listenerCount = function(type) {
10038 if (this._events) {
10039 var evlistener = this._events[type];
10041 if (isFunction(evlistener))
10043 else if (evlistener)
10044 return evlistener.length;
10049 EventEmitter.listenerCount = function(emitter, type) {
10050 return emitter.listenerCount(type);
10053 function isFunction(arg) {
10054 return typeof arg === 'function';
10057 function isNumber(arg) {
10058 return typeof arg === 'number';
10061 function isObject(arg) {
10062 return typeof arg === 'object' && arg !== null;
10065 function isUndefined(arg) {
10066 return arg === void
0;
10069 },{}],
7:[function(require,module,exports){
10070 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10072 var eLen = nBytes *
8 - mLen -
1
10073 var eMax = (
1 << eLen) -
1
10074 var eBias = eMax
>> 1
10076 var i = isLE ? (nBytes -
1) :
0
10077 var d = isLE ? -
1 :
1
10078 var s = buffer[offset + i]
10082 e = s & ((
1 << (-nBits)) -
1)
10085 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10087 m = e & ((
1 << (-nBits)) -
1)
10090 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10094 } else if (e === eMax) {
10095 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10097 m = m + Math.pow(
2, mLen)
10100 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10103 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10105 var eLen = nBytes *
8 - mLen -
1
10106 var eMax = (
1 << eLen) -
1
10107 var eBias = eMax
>> 1
10108 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10109 var i = isLE ?
0 : (nBytes -
1)
10110 var d = isLE ?
1 : -
1
10111 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10113 value = Math.abs(value)
10115 if (isNaN(value) || value === Infinity) {
10116 m = isNaN(value) ?
1 :
0
10119 e = Math.floor(Math.log(value) / Math.LN2)
10120 if (value * (c = Math.pow(
2, -e)) <
1) {
10124 if (e + eBias
>=
1) {
10127 value += rt * Math.pow(
2,
1 - eBias)
10129 if (value * c
>=
2) {
10134 if (e + eBias
>= eMax) {
10137 } else if (e + eBias
>=
1) {
10138 m = (value * c -
1) * Math.pow(
2, mLen)
10141 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10146 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10148 e = (e << mLen) | m
10150 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10152 buffer[offset + i - d] |= s *
128
10155 },{}],
8:[function(require,module,exports){
10156 if (typeof Object.create === 'function') {
10157 // implementation from standard node.js 'util' module
10158 module.exports = function inherits(ctor, superCtor) {
10159 ctor.super_ = superCtor
10160 ctor.prototype = Object.create(superCtor.prototype, {
10170 // old school shim for old browsers
10171 module.exports = function inherits(ctor, superCtor) {
10172 ctor.super_ = superCtor
10173 var TempCtor = function () {}
10174 TempCtor.prototype = superCtor.prototype
10175 ctor.prototype = new TempCtor()
10176 ctor.prototype.constructor = ctor
10180 },{}],
9:[function(require,module,exports){
10182 * Determine if an object is a Buffer
10184 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10188 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10189 // Object.prototype.constructor. Remove this eventually
10190 module.exports = function (obj) {
10191 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10194 function isBuffer (obj) {
10195 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10198 // For Node v0.10 support. Remove this eventually.
10199 function isSlowBuffer (obj) {
10200 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10203 },{}],
10:[function(require,module,exports){
10204 var toString = {}.toString;
10206 module.exports = Array.isArray || function (arr) {
10207 return toString.call(arr) == '[object Array]';
10210 },{}],
11:[function(require,module,exports){
10211 (function (process){
10214 if (!process.version ||
10215 process.version.indexOf('v0.') ===
0 ||
10216 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10217 module.exports = nextTick;
10219 module.exports = process.nextTick;
10222 function nextTick(fn, arg1, arg2, arg3) {
10223 if (typeof fn !== 'function') {
10224 throw new TypeError('"callback" argument must be a function');
10226 var len = arguments.length;
10231 return process.nextTick(fn);
10233 return process.nextTick(function afterTickOne() {
10234 fn.call(null, arg1);
10237 return process.nextTick(function afterTickTwo() {
10238 fn.call(null, arg1, arg2);
10241 return process.nextTick(function afterTickThree() {
10242 fn.call(null, arg1, arg2, arg3);
10245 args = new Array(len -
1);
10247 while (i < args.length) {
10248 args[i++] = arguments[i];
10250 return process.nextTick(function afterTick() {
10251 fn.apply(null, args);
10256 }).call(this,require('_process'))
10257 },{"_process":
12}],
12:[function(require,module,exports){
10258 // shim for using process in browser
10259 var process = module.exports = {};
10261 // cached from whatever global is present so that test runners that stub it
10262 // don't break things. But we need to wrap it in a try catch in case it is
10263 // wrapped in strict mode code which doesn't define any globals. It's inside a
10264 // function because try/catches deoptimize in certain engines.
10266 var cachedSetTimeout;
10267 var cachedClearTimeout;
10269 function defaultSetTimout() {
10270 throw new Error('setTimeout has not been defined');
10272 function defaultClearTimeout () {
10273 throw new Error('clearTimeout has not been defined');
10277 if (typeof setTimeout === 'function') {
10278 cachedSetTimeout = setTimeout;
10280 cachedSetTimeout = defaultSetTimout;
10283 cachedSetTimeout = defaultSetTimout;
10286 if (typeof clearTimeout === 'function') {
10287 cachedClearTimeout = clearTimeout;
10289 cachedClearTimeout = defaultClearTimeout;
10292 cachedClearTimeout = defaultClearTimeout;
10295 function runTimeout(fun) {
10296 if (cachedSetTimeout === setTimeout) {
10297 //normal enviroments in sane situations
10298 return setTimeout(fun,
0);
10300 // if setTimeout wasn't available but was latter defined
10301 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10302 cachedSetTimeout = setTimeout;
10303 return setTimeout(fun,
0);
10306 // when when somebody has screwed with setTimeout but no I.E. maddness
10307 return cachedSetTimeout(fun,
0);
10310 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10311 return cachedSetTimeout.call(null, fun,
0);
10313 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
10314 return cachedSetTimeout.call(this, fun,
0);
10320 function runClearTimeout(marker) {
10321 if (cachedClearTimeout === clearTimeout) {
10322 //normal enviroments in sane situations
10323 return clearTimeout(marker);
10325 // if clearTimeout wasn't available but was latter defined
10326 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10327 cachedClearTimeout = clearTimeout;
10328 return clearTimeout(marker);
10331 // when when somebody has screwed with setTimeout but no I.E. maddness
10332 return cachedClearTimeout(marker);
10335 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10336 return cachedClearTimeout.call(null, marker);
10338 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
10339 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10340 return cachedClearTimeout.call(this, marker);
10348 var draining = false;
10350 var queueIndex = -
1;
10352 function cleanUpNextTick() {
10353 if (!draining || !currentQueue) {
10357 if (currentQueue.length) {
10358 queue = currentQueue.concat(queue);
10362 if (queue.length) {
10367 function drainQueue() {
10371 var timeout = runTimeout(cleanUpNextTick);
10374 var len = queue.length;
10376 currentQueue = queue;
10378 while (++queueIndex < len) {
10379 if (currentQueue) {
10380 currentQueue[queueIndex].run();
10384 len = queue.length;
10386 currentQueue = null;
10388 runClearTimeout(timeout);
10391 process.nextTick = function (fun) {
10392 var args = new Array(arguments.length -
1);
10393 if (arguments.length
> 1) {
10394 for (var i =
1; i < arguments.length; i++) {
10395 args[i -
1] = arguments[i];
10398 queue.push(new Item(fun, args));
10399 if (queue.length ===
1 && !draining) {
10400 runTimeout(drainQueue);
10404 // v8 likes predictible objects
10405 function Item(fun, array) {
10407 this.array = array;
10409 Item.prototype.run = function () {
10410 this.fun.apply(null, this.array);
10412 process.title = 'browser';
10413 process.browser = true;
10416 process.version = ''; // empty string to avoid regexp issues
10417 process.versions = {};
10422 process.addListener = noop;
10423 process.once = noop;
10424 process.off = noop;
10425 process.removeListener = noop;
10426 process.removeAllListeners = noop;
10427 process.emit = noop;
10428 process.prependListener = noop;
10429 process.prependOnceListener = noop;
10431 process.listeners = function (name) { return [] }
10433 process.binding = function (name) {
10434 throw new Error('process.binding is not supported');
10437 process.cwd = function () { return '/' };
10438 process.chdir = function (dir) {
10439 throw new Error('process.chdir is not supported');
10441 process.umask = function() { return
0; };
10443 },{}],
13:[function(require,module,exports){
10444 module.exports = require('./lib/_stream_duplex.js');
10446 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10447 // Copyright Joyent, Inc. and other Node contributors.
10449 // Permission is hereby granted, free of charge, to any person obtaining a
10450 // copy of this software and associated documentation files (the
10451 //
"Software"), to deal in the Software without restriction, including
10452 // without limitation the rights to use, copy, modify, merge, publish,
10453 // distribute, sublicense, and/or sell copies of the Software, and to permit
10454 // persons to whom the Software is furnished to do so, subject to the
10455 // following conditions:
10457 // The above copyright notice and this permission notice shall be included
10458 // in all copies or substantial portions of the Software.
10460 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10461 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10462 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10463 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10464 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10465 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10466 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10468 // a duplex stream is just a stream that is both readable and writable.
10469 // Since JS doesn't have multiple prototypal inheritance, this class
10470 // prototypally inherits from Readable, and then parasitically from
10477 var processNextTick = require('process-nextick-args');
10481 var objectKeys = Object.keys || function (obj) {
10483 for (var key in obj) {
10489 module.exports = Duplex;
10492 var util = require('core-util-is');
10493 util.inherits = require('inherits');
10496 var Readable = require('./_stream_readable');
10497 var Writable = require('./_stream_writable');
10499 util.inherits(Duplex, Readable);
10501 var keys = objectKeys(Writable.prototype);
10502 for (var v =
0; v < keys.length; v++) {
10503 var method = keys[v];
10504 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10507 function Duplex(options) {
10508 if (!(this instanceof Duplex)) return new Duplex(options);
10510 Readable.call(this, options);
10511 Writable.call(this, options);
10513 if (options && options.readable === false) this.readable = false;
10515 if (options && options.writable === false) this.writable = false;
10517 this.allowHalfOpen = true;
10518 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10520 this.once('end', onend);
10523 // the no-half-open enforcer
10525 // if we allow half-open state, or if the writable side ended,
10527 if (this.allowHalfOpen || this._writableState.ended) return;
10529 // no more data can be written.
10530 // But allow more writes to happen in this tick.
10531 processNextTick(onEndNT, this);
10534 function onEndNT(self) {
10538 Object.defineProperty(Duplex.prototype, 'destroyed', {
10540 if (this._readableState === undefined || this._writableState === undefined) {
10543 return this._readableState.destroyed && this._writableState.destroyed;
10545 set: function (value) {
10546 // we ignore the value if the stream
10547 // has not been initialized yet
10548 if (this._readableState === undefined || this._writableState === undefined) {
10552 // backward compatibility, the user is explicitly
10553 // managing destroyed
10554 this._readableState.destroyed = value;
10555 this._writableState.destroyed = value;
10559 Duplex.prototype._destroy = function (err, cb) {
10563 processNextTick(cb, err);
10566 function forEach(xs, f) {
10567 for (var i =
0, l = xs.length; i < l; i++) {
10571 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10572 // Copyright Joyent, Inc. and other Node contributors.
10574 // Permission is hereby granted, free of charge, to any person obtaining a
10575 // copy of this software and associated documentation files (the
10576 // "Software"), to deal in the Software without restriction, including
10577 // without limitation the rights to use, copy, modify, merge, publish,
10578 // distribute, sublicense, and/or sell copies of the Software, and to permit
10579 // persons to whom the Software is furnished to do so, subject to the
10580 // following conditions:
10582 // The above copyright notice and this permission notice shall be included
10583 // in all copies or substantial portions of the Software.
10585 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10586 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10587 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10588 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10589 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10590 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10591 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10593 // a passthrough stream.
10594 // basically just the most minimal sort of Transform stream.
10595 // Every written chunk gets output as-is.
10599 module.exports = PassThrough;
10601 var Transform = require('./_stream_transform');
10604 var util = require('core-util-is');
10605 util.inherits = require('inherits');
10608 util.inherits(PassThrough, Transform);
10610 function PassThrough(options) {
10611 if (!(this instanceof PassThrough)) return new PassThrough(options);
10613 Transform.call(this, options);
10616 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10619 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10620 (function (process,global){
10621 // Copyright Joyent, Inc. and other Node contributors.
10623 // Permission is hereby granted, free of charge, to any person obtaining a
10624 // copy of this software and associated documentation files (the
10625 // "Software"), to deal in the Software without restriction, including
10626 // without limitation the rights to use, copy, modify, merge, publish,
10627 // distribute, sublicense, and/or sell copies of the Software, and to permit
10628 // persons to whom the Software is furnished to do so, subject to the
10629 // following conditions:
10631 // The above copyright notice and this permission notice shall be included
10632 // in all copies or substantial portions of the Software.
10634 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10635 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10636 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10637 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10638 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10639 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10640 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10646 var processNextTick = require('process-nextick-args');
10649 module.exports = Readable;
10652 var isArray = require('isarray');
10659 Readable.ReadableState = ReadableState;
10662 var EE = require('events').EventEmitter;
10664 var EElistenerCount = function (emitter, type) {
10665 return emitter.listeners(type).length;
10670 var Stream = require('./internal/streams/stream');
10673 // TODO(bmeurer): Change this back to const once hole checks are
10674 // properly optimized away early in Ignition+TurboFan.
10676 var Buffer = require('safe-buffer').Buffer;
10677 var OurUint8Array = global.Uint8Array || function () {};
10678 function _uint8ArrayToBuffer(chunk) {
10679 return Buffer.from(chunk);
10681 function _isUint8Array(obj) {
10682 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10687 var util = require('core-util-is');
10688 util.inherits = require('inherits');
10692 var debugUtil = require('util');
10693 var debug = void
0;
10694 if (debugUtil && debugUtil.debuglog) {
10695 debug = debugUtil.debuglog('stream');
10697 debug = function () {};
10701 var BufferList = require('./internal/streams/BufferList');
10702 var destroyImpl = require('./internal/streams/destroy');
10705 util.inherits(Readable, Stream);
10707 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10709 function prependListener(emitter, event, fn) {
10710 // Sadly this is not cacheable as some libraries bundle their own
10711 // event emitter implementation with them.
10712 if (typeof emitter.prependListener === 'function') {
10713 return emitter.prependListener(event, fn);
10715 // This is a hack to make sure that our error handler is attached before any
10716 // userland ones. NEVER DO THIS. This is here only because this code needs
10717 // to continue to work with older versions of Node.js that do not include
10718 // the prependListener() method. The goal is to eventually remove this hack.
10719 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
10723 function ReadableState(options, stream) {
10724 Duplex = Duplex || require('./_stream_duplex');
10726 options = options || {};
10728 // object stream flag. Used to make read(n) ignore n and to
10729 // make all the buffer merging and length checks go away
10730 this.objectMode = !!options.objectMode;
10732 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10734 // the point at which it stops calling _read() to fill the buffer
10735 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10736 var hwm = options.highWaterMark;
10737 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10738 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10741 this.highWaterMark = Math.floor(this.highWaterMark);
10743 // A linked list is used to store data chunks instead of an array because the
10744 // linked list can remove elements from the beginning faster than
10746 this.buffer = new BufferList();
10749 this.pipesCount =
0;
10750 this.flowing = null;
10751 this.ended = false;
10752 this.endEmitted = false;
10753 this.reading = false;
10755 // a flag to be able to tell if the event 'readable'/'data' is emitted
10756 // immediately, or on a later tick. We set this to true at first, because
10757 // any actions that shouldn't happen until "later" should generally also
10758 // not happen before the first read call.
10761 // whenever we return null, then we set a flag to say
10762 // that we're awaiting a 'readable' event emission.
10763 this.needReadable = false;
10764 this.emittedReadable = false;
10765 this.readableListening = false;
10766 this.resumeScheduled = false;
10768 // has it been destroyed
10769 this.destroyed = false;
10771 // Crypto is kind of old and crusty. Historically, its default string
10772 // encoding is 'binary' so we have to make this configurable.
10773 // Everything else in the universe uses 'utf8', though.
10774 this.defaultEncoding = options.defaultEncoding || 'utf8';
10776 // the number of writers that are awaiting a drain event in .pipe()s
10777 this.awaitDrain =
0;
10779 // if true, a maybeReadMore has been scheduled
10780 this.readingMore = false;
10782 this.decoder = null;
10783 this.encoding = null;
10784 if (options.encoding) {
10785 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10786 this.decoder = new StringDecoder(options.encoding);
10787 this.encoding = options.encoding;
10791 function Readable(options) {
10792 Duplex = Duplex || require('./_stream_duplex');
10794 if (!(this instanceof Readable)) return new Readable(options);
10796 this._readableState = new ReadableState(options, this);
10799 this.readable = true;
10802 if (typeof options.read === 'function') this._read = options.read;
10804 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10810 Object.defineProperty(Readable.prototype, 'destroyed', {
10812 if (this._readableState === undefined) {
10815 return this._readableState.destroyed;
10817 set: function (value) {
10818 // we ignore the value if the stream
10819 // has not been initialized yet
10820 if (!this._readableState) {
10824 // backward compatibility, the user is explicitly
10825 // managing destroyed
10826 this._readableState.destroyed = value;
10830 Readable.prototype.destroy = destroyImpl.destroy;
10831 Readable.prototype._undestroy = destroyImpl.undestroy;
10832 Readable.prototype._destroy = function (err, cb) {
10837 // Manually shove something into the read() buffer.
10838 // This returns true if the highWaterMark has not been hit yet,
10839 // similar to how Writable.write() returns true if you should
10840 // write() some more.
10841 Readable.prototype.push = function (chunk, encoding) {
10842 var state = this._readableState;
10843 var skipChunkCheck;
10845 if (!state.objectMode) {
10846 if (typeof chunk === 'string') {
10847 encoding = encoding || state.defaultEncoding;
10848 if (encoding !== state.encoding) {
10849 chunk = Buffer.from(chunk, encoding);
10852 skipChunkCheck = true;
10855 skipChunkCheck = true;
10858 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10861 // Unshift should *always* be something directly out of read()
10862 Readable.prototype.unshift = function (chunk) {
10863 return readableAddChunk(this, chunk, null, true, false);
10866 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10867 var state = stream._readableState;
10868 if (chunk === null) {
10869 state.reading = false;
10870 onEofChunk(stream, state);
10873 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10875 stream.emit('error', er);
10876 } else if (state.objectMode || chunk && chunk.length
> 0) {
10877 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10878 chunk = _uint8ArrayToBuffer(chunk);
10882 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10883 } else if (state.ended) {
10884 stream.emit('error', new Error('stream.push() after EOF'));
10886 state.reading = false;
10887 if (state.decoder && !encoding) {
10888 chunk = state.decoder.write(chunk);
10889 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10891 addChunk(stream, state, chunk, false);
10894 } else if (!addToFront) {
10895 state.reading = false;
10899 return needMoreData(state);
10902 function addChunk(stream, state, chunk, addToFront) {
10903 if (state.flowing && state.length ===
0 && !state.sync) {
10904 stream.emit('data', chunk);
10907 // update the buffer info.
10908 state.length += state.objectMode ?
1 : chunk.length;
10909 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10911 if (state.needReadable) emitReadable(stream);
10913 maybeReadMore(stream, state);
10916 function chunkInvalid(state, chunk) {
10918 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10919 er = new TypeError('Invalid non-string/buffer chunk');
10924 // if it's past the high water mark, we can push in some more.
10925 // Also, if we have no data yet, we can stand some
10926 // more bytes. This is to work around cases where hwm=
0,
10927 // such as the repl. Also, if the push() triggered a
10928 // readable event, and the user called read(largeNumber) such that
10929 // needReadable was set, then we ought to push more, so that another
10930 // 'readable' event will be triggered.
10931 function needMoreData(state) {
10932 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10935 Readable.prototype.isPaused = function () {
10936 return this._readableState.flowing === false;
10939 // backwards compatibility.
10940 Readable.prototype.setEncoding = function (enc) {
10941 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10942 this._readableState.decoder = new StringDecoder(enc);
10943 this._readableState.encoding = enc;
10947 // Don't raise the hwm
> 8MB
10948 var MAX_HWM =
0x800000;
10949 function computeNewHighWaterMark(n) {
10950 if (n
>= MAX_HWM) {
10953 // Get the next highest power of
2 to prevent increasing hwm excessively in
10966 // This function is designed to be inlinable, so please take care when making
10967 // changes to the function body.
10968 function howMuchToRead(n, state) {
10969 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10970 if (state.objectMode) return
1;
10972 // Only flow one buffer at a time
10973 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10975 // If we're asking for more than the current hwm, then raise the hwm.
10976 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10977 if (n <= state.length) return n;
10978 // Don't have enough
10979 if (!state.ended) {
10980 state.needReadable = true;
10983 return state.length;
10986 // you can override either this method, or the async _read(n) below.
10987 Readable.prototype.read = function (n) {
10989 n = parseInt(n,
10);
10990 var state = this._readableState;
10993 if (n !==
0) state.emittedReadable = false;
10995 // if we're doing read(
0) to trigger a readable event, but we
10996 // already have a bunch of data in the buffer, then just trigger
10997 // the 'readable' event and move on.
10998 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10999 debug('read: emitReadable', state.length, state.ended);
11000 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
11004 n = howMuchToRead(n, state);
11006 // if we've ended, and we're now clear, then finish it up.
11007 if (n ===
0 && state.ended) {
11008 if (state.length ===
0) endReadable(this);
11012 // All the actual chunk generation logic needs to be
11013 // *below* the call to _read. The reason is that in certain
11014 // synthetic stream cases, such as passthrough streams, _read
11015 // may be a completely synchronous operation which may change
11016 // the state of the read buffer, providing enough data when
11017 // before there was *not* enough.
11019 // So, the steps are:
11020 //
1. Figure out what the state of things will be after we do
11021 // a read from the buffer.
11023 //
2. If that resulting state will trigger a _read, then call _read.
11024 // Note that this may be asynchronous, or synchronous. Yes, it is
11025 // deeply ugly to write APIs this way, but that still doesn't mean
11026 // that the Readable class should behave improperly, as streams are
11027 // designed to be sync/async agnostic.
11028 // Take note if the _read call is sync or async (ie, if the read call
11029 // has returned yet), so that we know whether or not it's safe to emit
11032 //
3. Actually pull the requested chunks out of the buffer and return.
11034 // if we need a readable event, then we need to do some reading.
11035 var doRead = state.needReadable;
11036 debug('need readable', doRead);
11038 // if we currently have less than the highWaterMark, then also read some
11039 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11041 debug('length less than watermark', doRead);
11044 // however, if we've ended, then there's no point, and if we're already
11045 // reading, then it's unnecessary.
11046 if (state.ended || state.reading) {
11048 debug('reading or ended', doRead);
11049 } else if (doRead) {
11051 state.reading = true;
11053 // if the length is currently zero, then we *need* a readable event.
11054 if (state.length ===
0) state.needReadable = true;
11055 // call internal read method
11056 this._read(state.highWaterMark);
11057 state.sync = false;
11058 // If _read pushed data synchronously, then `reading` will be false,
11059 // and we need to re-evaluate how much data we can return to the user.
11060 if (!state.reading) n = howMuchToRead(nOrig, state);
11064 if (n
> 0) ret = fromList(n, state);else ret = null;
11066 if (ret === null) {
11067 state.needReadable = true;
11073 if (state.length ===
0) {
11074 // If we have nothing in the buffer, then we want to know
11075 // as soon as we *do* get something into the buffer.
11076 if (!state.ended) state.needReadable = true;
11078 // If we tried to read() past the EOF, then emit end on the next tick.
11079 if (nOrig !== n && state.ended) endReadable(this);
11082 if (ret !== null) this.emit('data', ret);
11087 function onEofChunk(stream, state) {
11088 if (state.ended) return;
11089 if (state.decoder) {
11090 var chunk = state.decoder.end();
11091 if (chunk && chunk.length) {
11092 state.buffer.push(chunk);
11093 state.length += state.objectMode ?
1 : chunk.length;
11096 state.ended = true;
11098 // emit 'readable' now to make sure it gets picked up.
11099 emitReadable(stream);
11102 // Don't emit readable right away in sync mode, because this can trigger
11103 // another read() call =
> stack overflow. This way, it might trigger
11104 // a nextTick recursion warning, but that's not so bad.
11105 function emitReadable(stream) {
11106 var state = stream._readableState;
11107 state.needReadable = false;
11108 if (!state.emittedReadable) {
11109 debug('emitReadable', state.flowing);
11110 state.emittedReadable = true;
11111 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11115 function emitReadable_(stream) {
11116 debug('emit readable');
11117 stream.emit('readable');
11121 // at this point, the user has presumably seen the 'readable' event,
11122 // and called read() to consume some data. that may have triggered
11123 // in turn another _read(n) call, in which case reading = true if
11124 // it's in progress.
11125 // However, if we're not ended, or reading, and the length < hwm,
11126 // then go ahead and try to read some more preemptively.
11127 function maybeReadMore(stream, state) {
11128 if (!state.readingMore) {
11129 state.readingMore = true;
11130 processNextTick(maybeReadMore_, stream, state);
11134 function maybeReadMore_(stream, state) {
11135 var len = state.length;
11136 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11137 debug('maybeReadMore read
0');
11139 if (len === state.length)
11140 // didn't get any data, stop spinning.
11141 break;else len = state.length;
11143 state.readingMore = false;
11146 // abstract method. to be overridden in specific implementation classes.
11147 // call cb(er, data) where data is <= n in length.
11148 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11149 // arbitrary, and perhaps not very meaningful.
11150 Readable.prototype._read = function (n) {
11151 this.emit('error', new Error('_read() is not implemented'));
11154 Readable.prototype.pipe = function (dest, pipeOpts) {
11156 var state = this._readableState;
11158 switch (state.pipesCount) {
11160 state.pipes = dest;
11163 state.pipes = [state.pipes, dest];
11166 state.pipes.push(dest);
11169 state.pipesCount +=
1;
11170 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11172 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11174 var endFn = doEnd ? onend : unpipe;
11175 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11177 dest.on('unpipe', onunpipe);
11178 function onunpipe(readable, unpipeInfo) {
11180 if (readable === src) {
11181 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11182 unpipeInfo.hasUnpiped = true;
11193 // when the dest drains, it reduces the awaitDrain counter
11194 // on the source. This would be more elegant with a .once()
11195 // handler in flow(), but adding and removing repeatedly is
11197 var ondrain = pipeOnDrain(src);
11198 dest.on('drain', ondrain);
11200 var cleanedUp = false;
11201 function cleanup() {
11203 // cleanup event handlers once the pipe is broken
11204 dest.removeListener('close', onclose);
11205 dest.removeListener('finish', onfinish);
11206 dest.removeListener('drain', ondrain);
11207 dest.removeListener('error', onerror);
11208 dest.removeListener('unpipe', onunpipe);
11209 src.removeListener('end', onend);
11210 src.removeListener('end', unpipe);
11211 src.removeListener('data', ondata);
11215 // if the reader is waiting for a drain event from this
11216 // specific writer, then it would cause it to never start
11218 // So, if this is awaiting a drain, then we just call it now.
11219 // If we don't know, then assume that we are waiting for one.
11220 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11223 // If the user pushes more data while we're writing to dest then we'll end up
11224 // in ondata again. However, we only want to increase awaitDrain once because
11225 // dest will only emit one 'drain' event for the multiple writes.
11226 // =
> Introduce a guard on increasing awaitDrain.
11227 var increasedAwaitDrain = false;
11228 src.on('data', ondata);
11229 function ondata(chunk) {
11231 increasedAwaitDrain = false;
11232 var ret = dest.write(chunk);
11233 if (false === ret && !increasedAwaitDrain) {
11234 // If the user unpiped during `dest.write()`, it is possible
11235 // to get stuck in a permanently paused state if that write
11236 // also returned false.
11237 // =
> Check whether `dest` is still a piping destination.
11238 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11239 debug('false write response, pause', src._readableState.awaitDrain);
11240 src._readableState.awaitDrain++;
11241 increasedAwaitDrain = true;
11247 // if the dest has an error, then stop piping into it.
11248 // however, don't suppress the throwing behavior for this.
11249 function onerror(er) {
11250 debug('onerror', er);
11252 dest.removeListener('error', onerror);
11253 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11256 // Make sure our error handler is attached before userland ones.
11257 prependListener(dest, 'error', onerror);
11259 // Both close and finish should trigger unpipe, but only once.
11260 function onclose() {
11261 dest.removeListener('finish', onfinish);
11264 dest.once('close', onclose);
11265 function onfinish() {
11267 dest.removeListener('close', onclose);
11270 dest.once('finish', onfinish);
11272 function unpipe() {
11277 // tell the dest that it's being piped to
11278 dest.emit('pipe', src);
11280 // start the flow if it hasn't been started already.
11281 if (!state.flowing) {
11282 debug('pipe resume');
11289 function pipeOnDrain(src) {
11290 return function () {
11291 var state = src._readableState;
11292 debug('pipeOnDrain', state.awaitDrain);
11293 if (state.awaitDrain) state.awaitDrain--;
11294 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11295 state.flowing = true;
11301 Readable.prototype.unpipe = function (dest) {
11302 var state = this._readableState;
11303 var unpipeInfo = { hasUnpiped: false };
11305 // if we're not piping anywhere, then do nothing.
11306 if (state.pipesCount ===
0) return this;
11308 // just one destination. most common case.
11309 if (state.pipesCount ===
1) {
11310 // passed in one, but it's not the right one.
11311 if (dest && dest !== state.pipes) return this;
11313 if (!dest) dest = state.pipes;
11316 state.pipes = null;
11317 state.pipesCount =
0;
11318 state.flowing = false;
11319 if (dest) dest.emit('unpipe', this, unpipeInfo);
11323 // slow case. multiple pipe destinations.
11327 var dests = state.pipes;
11328 var len = state.pipesCount;
11329 state.pipes = null;
11330 state.pipesCount =
0;
11331 state.flowing = false;
11333 for (var i =
0; i < len; i++) {
11334 dests[i].emit('unpipe', this, unpipeInfo);
11338 // try to find the right one.
11339 var index = indexOf(state.pipes, dest);
11340 if (index === -
1) return this;
11342 state.pipes.splice(index,
1);
11343 state.pipesCount -=
1;
11344 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11346 dest.emit('unpipe', this, unpipeInfo);
11351 // set up data events if they are asked for
11352 // Ensure readable listeners eventually get something
11353 Readable.prototype.on = function (ev, fn) {
11354 var res = Stream.prototype.on.call(this, ev, fn);
11356 if (ev === 'data') {
11357 // Start flowing on next tick if stream isn't explicitly paused
11358 if (this._readableState.flowing !== false) this.resume();
11359 } else if (ev === 'readable') {
11360 var state = this._readableState;
11361 if (!state.endEmitted && !state.readableListening) {
11362 state.readableListening = state.needReadable = true;
11363 state.emittedReadable = false;
11364 if (!state.reading) {
11365 processNextTick(nReadingNextTick, this);
11366 } else if (state.length) {
11367 emitReadable(this);
11374 Readable.prototype.addListener = Readable.prototype.on;
11376 function nReadingNextTick(self) {
11377 debug('readable nexttick read
0');
11381 // pause() and resume() are remnants of the legacy readable stream API
11382 // If the user uses them, then switch into old mode.
11383 Readable.prototype.resume = function () {
11384 var state = this._readableState;
11385 if (!state.flowing) {
11387 state.flowing = true;
11388 resume(this, state);
11393 function resume(stream, state) {
11394 if (!state.resumeScheduled) {
11395 state.resumeScheduled = true;
11396 processNextTick(resume_, stream, state);
11400 function resume_(stream, state) {
11401 if (!state.reading) {
11402 debug('resume read
0');
11406 state.resumeScheduled = false;
11407 state.awaitDrain =
0;
11408 stream.emit('resume');
11410 if (state.flowing && !state.reading) stream.read(
0);
11413 Readable.prototype.pause = function () {
11414 debug('call pause flowing=%j', this._readableState.flowing);
11415 if (false !== this._readableState.flowing) {
11417 this._readableState.flowing = false;
11418 this.emit('pause');
11423 function flow(stream) {
11424 var state = stream._readableState;
11425 debug('flow', state.flowing);
11426 while (state.flowing && stream.read() !== null) {}
11429 // wrap an old-style stream as the async data source.
11430 // This is *not* part of the readable stream interface.
11431 // It is an ugly unfortunate mess of history.
11432 Readable.prototype.wrap = function (stream) {
11433 var state = this._readableState;
11434 var paused = false;
11437 stream.on('end', function () {
11438 debug('wrapped end');
11439 if (state.decoder && !state.ended) {
11440 var chunk = state.decoder.end();
11441 if (chunk && chunk.length) self.push(chunk);
11447 stream.on('data', function (chunk) {
11448 debug('wrapped data');
11449 if (state.decoder) chunk = state.decoder.write(chunk);
11451 // don't skip over falsy values in objectMode
11452 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11454 var ret = self.push(chunk);
11461 // proxy all the other methods.
11462 // important when wrapping filters and duplexes.
11463 for (var i in stream) {
11464 if (this[i] === undefined && typeof stream[i] === 'function') {
11465 this[i] = function (method) {
11466 return function () {
11467 return stream[method].apply(stream, arguments);
11473 // proxy certain important events.
11474 for (var n =
0; n < kProxyEvents.length; n++) {
11475 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11478 // when we try to consume some more bytes, simply unpause the
11479 // underlying stream.
11480 self._read = function (n) {
11481 debug('wrapped _read', n);
11491 // exposed for testing purposes only.
11492 Readable._fromList = fromList;
11494 // Pluck off n bytes from an array of buffers.
11495 // Length is the combined lengths of all the buffers in the list.
11496 // This function is designed to be inlinable, so please take care when making
11497 // changes to the function body.
11498 function fromList(n, state) {
11499 // nothing buffered
11500 if (state.length ===
0) return null;
11503 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11504 // read it all, truncate the list
11505 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
11506 state.buffer.clear();
11508 // read part of list
11509 ret = fromListPartial(n, state.buffer, state.decoder);
11515 // Extracts only enough buffered data to satisfy the amount requested.
11516 // This function is designed to be inlinable, so please take care when making
11517 // changes to the function body.
11518 function fromListPartial(n, list, hasStrings) {
11520 if (n < list.head.data.length) {
11521 // slice is the same for buffers and strings
11522 ret = list.head.data.slice(
0, n);
11523 list.head.data = list.head.data.slice(n);
11524 } else if (n === list.head.data.length) {
11525 // first chunk is a perfect match
11526 ret = list.shift();
11528 // result spans more than one buffer
11529 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11534 // Copies a specified amount of characters from the list of buffered data
11536 // This function is designed to be inlinable, so please take care when making
11537 // changes to the function body.
11538 function copyFromBufferString(n, list) {
11543 while (p = p.next) {
11545 var nb = n
> str.length ? str.length : n;
11546 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11549 if (nb === str.length) {
11551 if (p.next) list.head = p.next;else list.head = list.tail = null;
11554 p.data = str.slice(nb);
11564 // Copies a specified amount of bytes from the list of buffered data chunks.
11565 // This function is designed to be inlinable, so please take care when making
11566 // changes to the function body.
11567 function copyFromBuffer(n, list) {
11568 var ret = Buffer.allocUnsafe(n);
11572 n -= p.data.length;
11573 while (p = p.next) {
11575 var nb = n
> buf.length ? buf.length : n;
11576 buf.copy(ret, ret.length - n,
0, nb);
11579 if (nb === buf.length) {
11581 if (p.next) list.head = p.next;else list.head = list.tail = null;
11584 p.data = buf.slice(nb);
11594 function endReadable(stream) {
11595 var state = stream._readableState;
11597 // If we get here before consuming all the bytes, then that is a
11598 // bug in node. Should never happen.
11599 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11601 if (!state.endEmitted) {
11602 state.ended = true;
11603 processNextTick(endReadableNT, state, stream);
11607 function endReadableNT(state, stream) {
11608 // Check that we didn't get one last unshift.
11609 if (!state.endEmitted && state.length ===
0) {
11610 state.endEmitted = true;
11611 stream.readable = false;
11612 stream.emit('end');
11616 function forEach(xs, f) {
11617 for (var i =
0, l = xs.length; i < l; i++) {
11622 function indexOf(xs, x) {
11623 for (var i =
0, l = xs.length; i < l; i++) {
11624 if (xs[i] === x) return i;
11628 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11629 },{
"./_stream_duplex":
14,
"./internal/streams/BufferList":
19,
"./internal/streams/destroy":
20,
"./internal/streams/stream":
21,
"_process":
12,
"core-util-is":
5,
"events":
6,
"inherits":
8,
"isarray":
10,
"process-nextick-args":
11,
"safe-buffer":
26,
"string_decoder/":
28,
"util":
3}],
17:[function(require,module,exports){
11630 // Copyright Joyent, Inc. and other Node contributors.
11632 // Permission is hereby granted, free of charge, to any person obtaining a
11633 // copy of this software and associated documentation files (the
11634 //
"Software"), to deal in the Software without restriction, including
11635 // without limitation the rights to use, copy, modify, merge, publish,
11636 // distribute, sublicense, and/or sell copies of the Software, and to permit
11637 // persons to whom the Software is furnished to do so, subject to the
11638 // following conditions:
11640 // The above copyright notice and this permission notice shall be included
11641 // in all copies or substantial portions of the Software.
11643 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11644 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11645 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11646 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11647 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11648 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11649 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11651 // a transform stream is a readable/writable stream where you do
11652 // something with the data. Sometimes it's called a
"filter",
11653 // but that's not a great name for it, since that implies a thing where
11654 // some bits pass through, and others are simply ignored. (That would
11655 // be a valid example of a transform, of course.)
11657 // While the output is causally related to the input, it's not a
11658 // necessarily symmetric or synchronous transformation. For example,
11659 // a zlib stream might take multiple plain-text writes(), and then
11660 // emit a single compressed chunk some time in the future.
11662 // Here's how this works:
11664 // The Transform stream has all the aspects of the readable and writable
11665 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11666 // internally, and returns false if there's a lot of pending writes
11667 // buffered up. When you call read(), that calls _read(n) until
11668 // there's enough pending readable data buffered up.
11670 // In a transform stream, the written data is placed in a buffer. When
11671 // _read(n) is called, it transforms the queued up data, calling the
11672 // buffered _write cb's as it consumes chunks. If consuming a single
11673 // written chunk would result in multiple output chunks, then the first
11674 // outputted bit calls the readcb, and subsequent chunks just go into
11675 // the read buffer, and will cause it to emit 'readable' if necessary.
11677 // This way, back-pressure is actually determined by the reading side,
11678 // since _read has to be called to start processing a new chunk. However,
11679 // a pathological inflate type of transform can cause excessive buffering
11680 // here. For example, imagine a stream where every byte of input is
11681 // interpreted as an integer from
0-
255, and then results in that many
11682 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11683 //
1kb of data being output. In this case, you could write a very small
11684 // amount of input, and end up with a very large amount of output. In
11685 // such a pathological inflating mechanism, there'd be no way to tell
11686 // the system to stop doing the transform. A single
4MB write could
11687 // cause the system to run out of memory.
11689 // However, even in such a pathological case, only a single written chunk
11690 // would be consumed, and then the rest would wait (un-transformed) until
11691 // the results of the previous transformed chunk were consumed.
11695 module.exports = Transform;
11697 var Duplex = require('./_stream_duplex');
11700 var util = require('core-util-is');
11701 util.inherits = require('inherits');
11704 util.inherits(Transform, Duplex);
11706 function TransformState(stream) {
11707 this.afterTransform = function (er, data) {
11708 return afterTransform(stream, er, data);
11711 this.needTransform = false;
11712 this.transforming = false;
11713 this.writecb = null;
11714 this.writechunk = null;
11715 this.writeencoding = null;
11718 function afterTransform(stream, er, data) {
11719 var ts = stream._transformState;
11720 ts.transforming = false;
11722 var cb = ts.writecb;
11725 return stream.emit('error', new Error('write callback called multiple times'));
11728 ts.writechunk = null;
11731 if (data !== null && data !== undefined) stream.push(data);
11735 var rs = stream._readableState;
11736 rs.reading = false;
11737 if (rs.needReadable || rs.length < rs.highWaterMark) {
11738 stream._read(rs.highWaterMark);
11742 function Transform(options) {
11743 if (!(this instanceof Transform)) return new Transform(options);
11745 Duplex.call(this, options);
11747 this._transformState = new TransformState(this);
11751 // start out asking for a readable event once data is transformed.
11752 this._readableState.needReadable = true;
11754 // we have implemented the _read method, and done the other things
11755 // that Readable wants before the first _read call, so unset the
11756 // sync guard flag.
11757 this._readableState.sync = false;
11760 if (typeof options.transform === 'function') this._transform = options.transform;
11762 if (typeof options.flush === 'function') this._flush = options.flush;
11765 // When the writable side finishes, then flush out anything remaining.
11766 this.once('prefinish', function () {
11767 if (typeof this._flush === 'function') this._flush(function (er, data) {
11768 done(stream, er, data);
11769 });else done(stream);
11773 Transform.prototype.push = function (chunk, encoding) {
11774 this._transformState.needTransform = false;
11775 return Duplex.prototype.push.call(this, chunk, encoding);
11778 // This is the part where you do stuff!
11779 // override this function in implementation classes.
11780 // 'chunk' is an input chunk.
11782 // Call `push(newChunk)` to pass along transformed output
11783 // to the readable side. You may call 'push' zero or more times.
11785 // Call `cb(err)` when you are done with this chunk. If you pass
11786 // an error, then that'll put the hurt on the whole operation. If you
11787 // never call cb(), then you'll never get another chunk.
11788 Transform.prototype._transform = function (chunk, encoding, cb) {
11789 throw new Error('_transform() is not implemented');
11792 Transform.prototype._write = function (chunk, encoding, cb) {
11793 var ts = this._transformState;
11795 ts.writechunk = chunk;
11796 ts.writeencoding = encoding;
11797 if (!ts.transforming) {
11798 var rs = this._readableState;
11799 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11803 // Doesn't matter what the args are here.
11804 // _transform does all the work.
11805 // That we got here means that the readable side wants more data.
11806 Transform.prototype._read = function (n) {
11807 var ts = this._transformState;
11809 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11810 ts.transforming = true;
11811 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11813 // mark that we need a transform, so that any data that comes in
11814 // will get processed, now that we've asked for it.
11815 ts.needTransform = true;
11819 Transform.prototype._destroy = function (err, cb) {
11822 Duplex.prototype._destroy.call(this, err, function (err2) {
11824 _this.emit('close');
11828 function done(stream, er, data) {
11829 if (er) return stream.emit('error', er);
11831 if (data !== null && data !== undefined) stream.push(data);
11833 // if there's nothing in the write buffer, then that means
11834 // that nothing more will ever be provided
11835 var ws = stream._writableState;
11836 var ts = stream._transformState;
11838 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11840 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11842 return stream.push(null);
11844 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11845 (function (process,global){
11846 // Copyright Joyent, Inc. and other Node contributors.
11848 // Permission is hereby granted, free of charge, to any person obtaining a
11849 // copy of this software and associated documentation files (the
11850 // "Software"), to deal in the Software without restriction, including
11851 // without limitation the rights to use, copy, modify, merge, publish,
11852 // distribute, sublicense, and/or sell copies of the Software, and to permit
11853 // persons to whom the Software is furnished to do so, subject to the
11854 // following conditions:
11856 // The above copyright notice and this permission notice shall be included
11857 // in all copies or substantial portions of the Software.
11859 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11860 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11861 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11862 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11863 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11864 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11865 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11867 // A bit simpler than readable streams.
11868 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11869 // the drain event emission and buffering.
11875 var processNextTick = require('process-nextick-args');
11878 module.exports = Writable;
11880 /*
<replacement> */
11881 function WriteReq(chunk, encoding, cb) {
11882 this.chunk = chunk;
11883 this.encoding = encoding;
11884 this.callback = cb;
11888 // It seems a linked list but it is not
11889 // there will be only
2 of these for each stream
11890 function CorkedRequest(state) {
11895 this.finish = function () {
11896 onCorkedFinish(_this, state);
11899 /*
</replacement> */
11902 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11909 Writable.WritableState = WritableState;
11912 var util = require('core-util-is');
11913 util.inherits = require('inherits');
11917 var internalUtil = {
11918 deprecate: require('util-deprecate')
11923 var Stream = require('./internal/streams/stream');
11927 var Buffer = require('safe-buffer').Buffer;
11928 var OurUint8Array = global.Uint8Array || function () {};
11929 function _uint8ArrayToBuffer(chunk) {
11930 return Buffer.from(chunk);
11932 function _isUint8Array(obj) {
11933 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11937 var destroyImpl = require('./internal/streams/destroy');
11939 util.inherits(Writable, Stream);
11943 function WritableState(options, stream) {
11944 Duplex = Duplex || require('./_stream_duplex');
11946 options = options || {};
11948 // object stream flag to indicate whether or not this stream
11949 // contains buffers or objects.
11950 this.objectMode = !!options.objectMode;
11952 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11954 // the point at which write() starts returning false
11955 // Note:
0 is a valid value, means that we always return false if
11956 // the entire buffer is not flushed immediately on write()
11957 var hwm = options.highWaterMark;
11958 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11959 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11962 this.highWaterMark = Math.floor(this.highWaterMark);
11964 // if _final has been called
11965 this.finalCalled = false;
11967 // drain event flag.
11968 this.needDrain = false;
11969 // at the start of calling end()
11970 this.ending = false;
11971 // when end() has been called, and returned
11972 this.ended = false;
11973 // when 'finish' is emitted
11974 this.finished = false;
11976 // has it been destroyed
11977 this.destroyed = false;
11979 // should we decode strings into buffers before passing to _write?
11980 // this is here so that some node-core streams can optimize string
11981 // handling at a lower level.
11982 var noDecode = options.decodeStrings === false;
11983 this.decodeStrings = !noDecode;
11985 // Crypto is kind of old and crusty. Historically, its default string
11986 // encoding is 'binary' so we have to make this configurable.
11987 // Everything else in the universe uses 'utf8', though.
11988 this.defaultEncoding = options.defaultEncoding || 'utf8';
11990 // not an actual buffer we keep track of, but a measurement
11991 // of how much we're waiting to get pushed to some underlying
11995 // a flag to see when we're in the middle of a write.
11996 this.writing = false;
11998 // when true all writes will be buffered until .uncork() call
12001 // a flag to be able to tell if the onwrite cb is called immediately,
12002 // or on a later tick. We set this to true at first, because any
12003 // actions that shouldn't happen until "later" should generally also
12004 // not happen before the first write call.
12007 // a flag to know if we're processing previously buffered items, which
12008 // may call the _write() callback in the same tick, so that we don't
12009 // end up in an overlapped onwrite situation.
12010 this.bufferProcessing = false;
12012 // the callback that's passed to _write(chunk,cb)
12013 this.onwrite = function (er) {
12014 onwrite(stream, er);
12017 // the callback that the user supplies to write(chunk,encoding,cb)
12018 this.writecb = null;
12020 // the amount that is being written when _write is called.
12023 this.bufferedRequest = null;
12024 this.lastBufferedRequest = null;
12026 // number of pending user-supplied write callbacks
12027 // this must be
0 before 'finish' can be emitted
12028 this.pendingcb =
0;
12030 // emit prefinish if the only thing we're waiting for is _write cbs
12031 // This is relevant for synchronous Transform streams
12032 this.prefinished = false;
12034 // True if the error was already emitted and should not be thrown again
12035 this.errorEmitted = false;
12037 // count buffered requests
12038 this.bufferedRequestCount =
0;
12040 // allocate the first CorkedRequest, there is always
12041 // one allocated and free to use, and we maintain at most two
12042 this.corkedRequestsFree = new CorkedRequest(this);
12045 WritableState.prototype.getBuffer = function getBuffer() {
12046 var current = this.bufferedRequest;
12050 current = current.next;
12057 Object.defineProperty(WritableState.prototype, 'buffer', {
12058 get: internalUtil.deprecate(function () {
12059 return this.getBuffer();
12060 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12065 // Test _writableState for inheritance to account for Duplex streams,
12066 // whose prototype chain only points to Readable.
12067 var realHasInstance;
12068 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12069 realHasInstance = Function.prototype[Symbol.hasInstance];
12070 Object.defineProperty(Writable, Symbol.hasInstance, {
12071 value: function (object) {
12072 if (realHasInstance.call(this, object)) return true;
12074 return object && object._writableState instanceof WritableState;
12078 realHasInstance = function (object) {
12079 return object instanceof this;
12083 function Writable(options) {
12084 Duplex = Duplex || require('./_stream_duplex');
12086 // Writable ctor is applied to Duplexes, too.
12087 // `realHasInstance` is necessary because using plain `instanceof`
12088 // would return false, as no `_writableState` property is attached.
12090 // Trying to use the custom `instanceof` for Writable here will also break the
12091 // Node.js LazyTransform implementation, which has a non-trivial getter for
12092 // `_writableState` that would lead to infinite recursion.
12093 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12094 return new Writable(options);
12097 this._writableState = new WritableState(options, this);
12100 this.writable = true;
12103 if (typeof options.write === 'function') this._write = options.write;
12105 if (typeof options.writev === 'function') this._writev = options.writev;
12107 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12109 if (typeof options.final === 'function') this._final = options.final;
12115 // Otherwise people can pipe Writable streams, which is just wrong.
12116 Writable.prototype.pipe = function () {
12117 this.emit('error', new Error('Cannot pipe, not readable'));
12120 function writeAfterEnd(stream, cb) {
12121 var er = new Error('write after end');
12122 // TODO: defer error events consistently everywhere, not just the cb
12123 stream.emit('error', er);
12124 processNextTick(cb, er);
12127 // Checks that a user-supplied chunk is valid, especially for the particular
12128 // mode the stream is in. Currently this means that `null` is never accepted
12129 // and undefined/non-string values are only allowed in object mode.
12130 function validChunk(stream, state, chunk, cb) {
12134 if (chunk === null) {
12135 er = new TypeError('May not write null values to stream');
12136 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12137 er = new TypeError('Invalid non-string/buffer chunk');
12140 stream.emit('error', er);
12141 processNextTick(cb, er);
12147 Writable.prototype.write = function (chunk, encoding, cb) {
12148 var state = this._writableState;
12150 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12152 if (isBuf && !Buffer.isBuffer(chunk)) {
12153 chunk = _uint8ArrayToBuffer(chunk);
12156 if (typeof encoding === 'function') {
12161 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12163 if (typeof cb !== 'function') cb = nop;
12165 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12167 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12173 Writable.prototype.cork = function () {
12174 var state = this._writableState;
12179 Writable.prototype.uncork = function () {
12180 var state = this._writableState;
12182 if (state.corked) {
12185 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12189 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12190 // node::ParseEncoding() requires lower case.
12191 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12192 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
12193 this._writableState.defaultEncoding = encoding;
12197 function decodeChunk(state, chunk, encoding) {
12198 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12199 chunk = Buffer.from(chunk, encoding);
12204 // if we're already writing something, then just put this
12205 // in the queue, and wait our turn. Otherwise, call _write
12206 // If we return false, then we need a drain event, so set that flag.
12207 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12209 var newChunk = decodeChunk(state, chunk, encoding);
12210 if (chunk !== newChunk) {
12212 encoding = 'buffer';
12216 var len = state.objectMode ?
1 : chunk.length;
12218 state.length += len;
12220 var ret = state.length < state.highWaterMark;
12221 // we must ensure that previous needDrain will not be reset to false.
12222 if (!ret) state.needDrain = true;
12224 if (state.writing || state.corked) {
12225 var last = state.lastBufferedRequest;
12226 state.lastBufferedRequest = {
12228 encoding: encoding,
12234 last.next = state.lastBufferedRequest;
12236 state.bufferedRequest = state.lastBufferedRequest;
12238 state.bufferedRequestCount +=
1;
12240 doWrite(stream, state, false, len, chunk, encoding, cb);
12246 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12247 state.writelen = len;
12248 state.writecb = cb;
12249 state.writing = true;
12251 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12252 state.sync = false;
12255 function onwriteError(stream, state, sync, er, cb) {
12259 // defer the callback if we are being called synchronously
12260 // to avoid piling up things on the stack
12261 processNextTick(cb, er);
12262 // this can emit finish, and it will always happen
12264 processNextTick(finishMaybe, stream, state);
12265 stream._writableState.errorEmitted = true;
12266 stream.emit('error', er);
12268 // the caller expect this to happen before if
12271 stream._writableState.errorEmitted = true;
12272 stream.emit('error', er);
12273 // this can emit finish, but finish must
12274 // always follow error
12275 finishMaybe(stream, state);
12279 function onwriteStateUpdate(state) {
12280 state.writing = false;
12281 state.writecb = null;
12282 state.length -= state.writelen;
12283 state.writelen =
0;
12286 function onwrite(stream, er) {
12287 var state = stream._writableState;
12288 var sync = state.sync;
12289 var cb = state.writecb;
12291 onwriteStateUpdate(state);
12293 if (er) onwriteError(stream, state, sync, er, cb);else {
12294 // Check if we're actually ready to finish, but don't emit yet
12295 var finished = needFinish(state);
12297 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12298 clearBuffer(stream, state);
12303 asyncWrite(afterWrite, stream, state, finished, cb);
12306 afterWrite(stream, state, finished, cb);
12311 function afterWrite(stream, state, finished, cb) {
12312 if (!finished) onwriteDrain(stream, state);
12315 finishMaybe(stream, state);
12318 // Must force callback to be called on nextTick, so that we don't
12319 // emit 'drain' before the write() consumer gets the 'false' return
12320 // value, and has a chance to attach a 'drain' listener.
12321 function onwriteDrain(stream, state) {
12322 if (state.length ===
0 && state.needDrain) {
12323 state.needDrain = false;
12324 stream.emit('drain');
12328 // if there's something in the buffer waiting, then process it
12329 function clearBuffer(stream, state) {
12330 state.bufferProcessing = true;
12331 var entry = state.bufferedRequest;
12333 if (stream._writev && entry && entry.next) {
12334 // Fast case, write everything using _writev()
12335 var l = state.bufferedRequestCount;
12336 var buffer = new Array(l);
12337 var holder = state.corkedRequestsFree;
12338 holder.entry = entry;
12341 var allBuffers = true;
12343 buffer[count] = entry;
12344 if (!entry.isBuf) allBuffers = false;
12345 entry = entry.next;
12348 buffer.allBuffers = allBuffers;
12350 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12352 // doWrite is almost always async, defer these to save a bit of time
12353 // as the hot path ends with doWrite
12355 state.lastBufferedRequest = null;
12357 state.corkedRequestsFree = holder.next;
12358 holder.next = null;
12360 state.corkedRequestsFree = new CorkedRequest(state);
12363 // Slow case, write chunks one-by-one
12365 var chunk = entry.chunk;
12366 var encoding = entry.encoding;
12367 var cb = entry.callback;
12368 var len = state.objectMode ?
1 : chunk.length;
12370 doWrite(stream, state, false, len, chunk, encoding, cb);
12371 entry = entry.next;
12372 // if we didn't call the onwrite immediately, then
12373 // it means that we need to wait until it does.
12374 // also, that means that the chunk and cb are currently
12375 // being processed, so move the buffer counter past them.
12376 if (state.writing) {
12381 if (entry === null) state.lastBufferedRequest = null;
12384 state.bufferedRequestCount =
0;
12385 state.bufferedRequest = entry;
12386 state.bufferProcessing = false;
12389 Writable.prototype._write = function (chunk, encoding, cb) {
12390 cb(new Error('_write() is not implemented'));
12393 Writable.prototype._writev = null;
12395 Writable.prototype.end = function (chunk, encoding, cb) {
12396 var state = this._writableState;
12398 if (typeof chunk === 'function') {
12402 } else if (typeof encoding === 'function') {
12407 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12409 // .end() fully uncorks
12410 if (state.corked) {
12415 // ignore unnecessary end() calls.
12416 if (!state.ending && !state.finished) endWritable(this, state, cb);
12419 function needFinish(state) {
12420 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12422 function callFinal(stream, state) {
12423 stream._final(function (err) {
12426 stream.emit('error', err);
12428 state.prefinished = true;
12429 stream.emit('prefinish');
12430 finishMaybe(stream, state);
12433 function prefinish(stream, state) {
12434 if (!state.prefinished && !state.finalCalled) {
12435 if (typeof stream._final === 'function') {
12437 state.finalCalled = true;
12438 processNextTick(callFinal, stream, state);
12440 state.prefinished = true;
12441 stream.emit('prefinish');
12446 function finishMaybe(stream, state) {
12447 var need = needFinish(state);
12449 prefinish(stream, state);
12450 if (state.pendingcb ===
0) {
12451 state.finished = true;
12452 stream.emit('finish');
12458 function endWritable(stream, state, cb) {
12459 state.ending = true;
12460 finishMaybe(stream, state);
12462 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12464 state.ended = true;
12465 stream.writable = false;
12468 function onCorkedFinish(corkReq, state, err) {
12469 var entry = corkReq.entry;
12470 corkReq.entry = null;
12472 var cb = entry.callback;
12475 entry = entry.next;
12477 if (state.corkedRequestsFree) {
12478 state.corkedRequestsFree.next = corkReq;
12480 state.corkedRequestsFree = corkReq;
12484 Object.defineProperty(Writable.prototype, 'destroyed', {
12486 if (this._writableState === undefined) {
12489 return this._writableState.destroyed;
12491 set: function (value) {
12492 // we ignore the value if the stream
12493 // has not been initialized yet
12494 if (!this._writableState) {
12498 // backward compatibility, the user is explicitly
12499 // managing destroyed
12500 this._writableState.destroyed = value;
12504 Writable.prototype.destroy = destroyImpl.destroy;
12505 Writable.prototype._undestroy = destroyImpl.undestroy;
12506 Writable.prototype._destroy = function (err, cb) {
12510 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12511 },{"./_stream_duplex":
14,"./internal/streams/destroy":
20,"./internal/streams/stream":
21,"_process":
12,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11,"safe-buffer":
26,"util-deprecate":
29}],
19:[function(require,module,exports){
12516 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12518 var Buffer = require('safe-buffer').Buffer;
12521 function copyBuffer(src, target, offset) {
12522 src.copy(target, offset);
12525 module.exports = function () {
12526 function BufferList() {
12527 _classCallCheck(this, BufferList);
12534 BufferList.prototype.push = function push(v) {
12535 var entry = { data: v, next: null };
12536 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12541 BufferList.prototype.unshift = function unshift(v) {
12542 var entry = { data: v, next: this.head };
12543 if (this.length ===
0) this.tail = entry;
12548 BufferList.prototype.shift = function shift() {
12549 if (this.length ===
0) return;
12550 var ret = this.head.data;
12551 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12556 BufferList.prototype.clear = function clear() {
12557 this.head = this.tail = null;
12561 BufferList.prototype.join = function join(s) {
12562 if (this.length ===
0) return '';
12564 var ret = '' + p.data;
12565 while (p = p.next) {
12570 BufferList.prototype.concat = function concat(n) {
12571 if (this.length ===
0) return Buffer.alloc(
0);
12572 if (this.length ===
1) return this.head.data;
12573 var ret = Buffer.allocUnsafe(n
>>> 0);
12577 copyBuffer(p.data, ret, i);
12578 i += p.data.length;
12586 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12591 var processNextTick = require('process-nextick-args');
12594 // undocumented cb() API, needed for core, not for public API
12595 function destroy(err, cb) {
12598 var readableDestroyed = this._readableState && this._readableState.destroyed;
12599 var writableDestroyed = this._writableState && this._writableState.destroyed;
12601 if (readableDestroyed || writableDestroyed) {
12604 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12605 processNextTick(emitErrorNT, this, err);
12610 // we set destroyed to true before firing error callbacks in order
12611 // to make it re-entrance safe in case destroy() is called within callbacks
12613 if (this._readableState) {
12614 this._readableState.destroyed = true;
12617 // if this is a duplex stream mark the writable part as destroyed as well
12618 if (this._writableState) {
12619 this._writableState.destroyed = true;
12622 this._destroy(err || null, function (err) {
12624 processNextTick(emitErrorNT, _this, err);
12625 if (_this._writableState) {
12626 _this._writableState.errorEmitted = true;
12634 function undestroy() {
12635 if (this._readableState) {
12636 this._readableState.destroyed = false;
12637 this._readableState.reading = false;
12638 this._readableState.ended = false;
12639 this._readableState.endEmitted = false;
12642 if (this._writableState) {
12643 this._writableState.destroyed = false;
12644 this._writableState.ended = false;
12645 this._writableState.ending = false;
12646 this._writableState.finished = false;
12647 this._writableState.errorEmitted = false;
12651 function emitErrorNT(self, err) {
12652 self.emit('error', err);
12657 undestroy: undestroy
12659 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12660 module.exports = require('events').EventEmitter;
12662 },{"events":
6}],
22:[function(require,module,exports){
12663 module.exports = require('./readable').PassThrough
12665 },{"./readable":
23}],
23:[function(require,module,exports){
12666 exports = module.exports = require('./lib/_stream_readable.js');
12667 exports.Stream = exports;
12668 exports.Readable = exports;
12669 exports.Writable = require('./lib/_stream_writable.js');
12670 exports.Duplex = require('./lib/_stream_duplex.js');
12671 exports.Transform = require('./lib/_stream_transform.js');
12672 exports.PassThrough = require('./lib/_stream_passthrough.js');
12674 },{"./lib/_stream_duplex.js":
14,"./lib/_stream_passthrough.js":
15,"./lib/_stream_readable.js":
16,"./lib/_stream_transform.js":
17,"./lib/_stream_writable.js":
18}],
24:[function(require,module,exports){
12675 module.exports = require('./readable').Transform
12677 },{"./readable":
23}],
25:[function(require,module,exports){
12678 module.exports = require('./lib/_stream_writable.js');
12680 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12681 /* eslint-disable node/no-deprecated-api */
12682 var buffer = require('buffer')
12683 var Buffer = buffer.Buffer
12685 // alternative to using Object.keys for old browsers
12686 function copyProps (src, dst) {
12687 for (var key in src) {
12688 dst[key] = src[key]
12691 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12692 module.exports = buffer
12694 // Copy properties from require('buffer')
12695 copyProps(buffer, exports)
12696 exports.Buffer = SafeBuffer
12699 function SafeBuffer (arg, encodingOrOffset, length) {
12700 return Buffer(arg, encodingOrOffset, length)
12703 // Copy static methods from Buffer
12704 copyProps(Buffer, SafeBuffer)
12706 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12707 if (typeof arg === 'number') {
12708 throw new TypeError('Argument must not be a number')
12710 return Buffer(arg, encodingOrOffset, length)
12713 SafeBuffer.alloc = function (size, fill, encoding) {
12714 if (typeof size !== 'number') {
12715 throw new TypeError('Argument must be a number')
12717 var buf = Buffer(size)
12718 if (fill !== undefined) {
12719 if (typeof encoding === 'string') {
12720 buf.fill(fill, encoding)
12730 SafeBuffer.allocUnsafe = function (size) {
12731 if (typeof size !== 'number') {
12732 throw new TypeError('Argument must be a number')
12734 return Buffer(size)
12737 SafeBuffer.allocUnsafeSlow = function (size) {
12738 if (typeof size !== 'number') {
12739 throw new TypeError('Argument must be a number')
12741 return buffer.SlowBuffer(size)
12744 },{"buffer":
4}],
27:[function(require,module,exports){
12745 // Copyright Joyent, Inc. and other Node contributors.
12747 // Permission is hereby granted, free of charge, to any person obtaining a
12748 // copy of this software and associated documentation files (the
12749 // "Software"), to deal in the Software without restriction, including
12750 // without limitation the rights to use, copy, modify, merge, publish,
12751 // distribute, sublicense, and/or sell copies of the Software, and to permit
12752 // persons to whom the Software is furnished to do so, subject to the
12753 // following conditions:
12755 // The above copyright notice and this permission notice shall be included
12756 // in all copies or substantial portions of the Software.
12758 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12759 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12760 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12761 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12762 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12763 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12764 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12766 module.exports = Stream;
12768 var EE = require('events').EventEmitter;
12769 var inherits = require('inherits');
12771 inherits(Stream, EE);
12772 Stream.Readable = require('readable-stream/readable.js');
12773 Stream.Writable = require('readable-stream/writable.js');
12774 Stream.Duplex = require('readable-stream/duplex.js');
12775 Stream.Transform = require('readable-stream/transform.js');
12776 Stream.PassThrough = require('readable-stream/passthrough.js');
12778 // Backwards-compat with node
0.4.x
12779 Stream.Stream = Stream;
12783 // old-style streams. Note that the pipe method (the only relevant
12784 // part of this class) is overridden in the Readable class.
12786 function Stream() {
12790 Stream.prototype.pipe = function(dest, options) {
12793 function ondata(chunk) {
12794 if (dest.writable) {
12795 if (false === dest.write(chunk) && source.pause) {
12801 source.on('data', ondata);
12803 function ondrain() {
12804 if (source.readable && source.resume) {
12809 dest.on('drain', ondrain);
12811 // If the 'end' option is not supplied, dest.end() will be called when
12812 // source gets the 'end' or 'close' events. Only dest.end() once.
12813 if (!dest._isStdio && (!options || options.end !== false)) {
12814 source.on('end', onend);
12815 source.on('close', onclose);
12818 var didOnEnd = false;
12820 if (didOnEnd) return;
12827 function onclose() {
12828 if (didOnEnd) return;
12831 if (typeof dest.destroy === 'function') dest.destroy();
12834 // don't leave dangling pipes when there are errors.
12835 function onerror(er) {
12837 if (EE.listenerCount(this, 'error') ===
0) {
12838 throw er; // Unhandled stream error in pipe.
12842 source.on('error', onerror);
12843 dest.on('error', onerror);
12845 // remove all the event listeners that were added.
12846 function cleanup() {
12847 source.removeListener('data', ondata);
12848 dest.removeListener('drain', ondrain);
12850 source.removeListener('end', onend);
12851 source.removeListener('close', onclose);
12853 source.removeListener('error', onerror);
12854 dest.removeListener('error', onerror);
12856 source.removeListener('end', cleanup);
12857 source.removeListener('close', cleanup);
12859 dest.removeListener('close', cleanup);
12862 source.on('end', cleanup);
12863 source.on('close', cleanup);
12865 dest.on('close', cleanup);
12867 dest.emit('pipe', source);
12869 // Allow for unix-like usage: A.pipe(B).pipe(C)
12873 },{"events":
6,"inherits":
8,"readable-stream/duplex.js":
13,"readable-stream/passthrough.js":
22,"readable-stream/readable.js":
23,"readable-stream/transform.js":
24,"readable-stream/writable.js":
25}],
28:[function(require,module,exports){
12876 var Buffer = require('safe-buffer').Buffer;
12878 var isEncoding = Buffer.isEncoding || function (encoding) {
12879 encoding = '' + encoding;
12880 switch (encoding && encoding.toLowerCase()) {
12881 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':
12888 function _normalizeEncoding(enc) {
12889 if (!enc) return 'utf8';
12909 if (retried) return; // undefined
12910 enc = ('' + enc).toLowerCase();
12916 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12917 // modules monkey-patch it to support additional encodings
12918 function normalizeEncoding(enc) {
12919 var nenc = _normalizeEncoding(enc);
12920 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12921 return nenc || enc;
12924 // StringDecoder provides an interface for efficiently splitting a series of
12925 // buffers into a series of JS strings without breaking apart multi-byte
12927 exports.StringDecoder = StringDecoder;
12928 function StringDecoder(encoding) {
12929 this.encoding = normalizeEncoding(encoding);
12931 switch (this.encoding) {
12933 this.text = utf16Text;
12934 this.end = utf16End;
12938 this.fillLast = utf8FillLast;
12942 this.text = base64Text;
12943 this.end = base64End;
12947 this.write = simpleWrite;
12948 this.end = simpleEnd;
12952 this.lastTotal =
0;
12953 this.lastChar = Buffer.allocUnsafe(nb);
12956 StringDecoder.prototype.write = function (buf) {
12957 if (buf.length ===
0) return '';
12960 if (this.lastNeed) {
12961 r = this.fillLast(buf);
12962 if (r === undefined) return '';
12968 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12972 StringDecoder.prototype.end = utf8End;
12974 // Returns only complete characters in a Buffer
12975 StringDecoder.prototype.text = utf8Text;
12977 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12978 StringDecoder.prototype.fillLast = function (buf) {
12979 if (this.lastNeed <= buf.length) {
12980 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12981 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12983 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12984 this.lastNeed -= buf.length;
12987 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12988 // continuation byte.
12989 function utf8CheckByte(byte) {
12990 if (byte <=
0x7F) return
0;else if (byte
>> 5 ===
0x06) return
2;else if (byte
>> 4 ===
0x0E) return
3;else if (byte
>> 3 ===
0x1E) return
4;
12994 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12995 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12996 // needed to complete the UTF-
8 character (if applicable) are returned.
12997 function utf8CheckIncomplete(self, buf, i) {
12998 var j = buf.length -
1;
12999 if (j < i) return
0;
13000 var nb = utf8CheckByte(buf[j]);
13002 if (nb
> 0) self.lastNeed = nb -
1;
13005 if (--j < i) return
0;
13006 nb = utf8CheckByte(buf[j]);
13008 if (nb
> 0) self.lastNeed = nb -
2;
13011 if (--j < i) return
0;
13012 nb = utf8CheckByte(buf[j]);
13015 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
13022 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
13023 // needed or are available. If we see a non-continuation byte where we expect
13024 // one, we
"replace" the validated continuation bytes we've seen so far with
13025 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
13026 // behavior. The continuation byte check is included three times in the case
13027 // where all of the continuation bytes for a character exist in the same buffer.
13028 // It is also done this way as a slight performance increase instead of using a
13030 function utf8CheckExtraBytes(self, buf, p) {
13031 if ((buf[
0] &
0xC0) !==
0x80) {
13033 return '\ufffd'.repeat(p);
13035 if (self.lastNeed
> 1 && buf.length
> 1) {
13036 if ((buf[
1] &
0xC0) !==
0x80) {
13038 return '\ufffd'.repeat(p +
1);
13040 if (self.lastNeed
> 2 && buf.length
> 2) {
13041 if ((buf[
2] &
0xC0) !==
0x80) {
13043 return '\ufffd'.repeat(p +
2);
13049 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13050 function utf8FillLast(buf) {
13051 var p = this.lastTotal - this.lastNeed;
13052 var r = utf8CheckExtraBytes(this, buf, p);
13053 if (r !== undefined) return r;
13054 if (this.lastNeed <= buf.length) {
13055 buf.copy(this.lastChar, p,
0, this.lastNeed);
13056 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13058 buf.copy(this.lastChar, p,
0, buf.length);
13059 this.lastNeed -= buf.length;
13062 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13063 // partial character, the character's bytes are buffered until the required
13064 // number of bytes are available.
13065 function utf8Text(buf, i) {
13066 var total = utf8CheckIncomplete(this, buf, i);
13067 if (!this.lastNeed) return buf.toString('utf8', i);
13068 this.lastTotal = total;
13069 var end = buf.length - (total - this.lastNeed);
13070 buf.copy(this.lastChar,
0, end);
13071 return buf.toString('utf8', i, end);
13074 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13075 // character needs to be added to the output.
13076 function utf8End(buf) {
13077 var r = buf && buf.length ? this.write(buf) : '';
13078 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13082 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13083 // number of bytes available, we need to check if we end on a leading/high
13084 // surrogate. In that case, we need to wait for the next two bytes in order to
13085 // decode the last character properly.
13086 function utf16Text(buf, i) {
13087 if ((buf.length - i) %
2 ===
0) {
13088 var r = buf.toString('utf16le', i);
13090 var c = r.charCodeAt(r.length -
1);
13091 if (c
>=
0xD800 && c <=
0xDBFF) {
13093 this.lastTotal =
4;
13094 this.lastChar[
0] = buf[buf.length -
2];
13095 this.lastChar[
1] = buf[buf.length -
1];
13096 return r.slice(
0, -
1);
13102 this.lastTotal =
2;
13103 this.lastChar[
0] = buf[buf.length -
1];
13104 return buf.toString('utf16le', i, buf.length -
1);
13107 // For UTF-
16LE we do not explicitly append special replacement characters if we
13108 // end on a partial character, we simply let v8 handle that.
13109 function utf16End(buf) {
13110 var r = buf && buf.length ? this.write(buf) : '';
13111 if (this.lastNeed) {
13112 var end = this.lastTotal - this.lastNeed;
13113 return r + this.lastChar.toString('utf16le',
0, end);
13118 function base64Text(buf, i) {
13119 var n = (buf.length - i) %
3;
13120 if (n ===
0) return buf.toString('base64', i);
13121 this.lastNeed =
3 - n;
13122 this.lastTotal =
3;
13124 this.lastChar[
0] = buf[buf.length -
1];
13126 this.lastChar[
0] = buf[buf.length -
2];
13127 this.lastChar[
1] = buf[buf.length -
1];
13129 return buf.toString('base64', i, buf.length - n);
13132 function base64End(buf) {
13133 var r = buf && buf.length ? this.write(buf) : '';
13134 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13138 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13139 function simpleWrite(buf) {
13140 return buf.toString(this.encoding);
13143 function simpleEnd(buf) {
13144 return buf && buf.length ? this.write(buf) : '';
13146 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13147 (function (global){
13153 module.exports = deprecate;
13156 * Mark that a method should not be used.
13157 * Returns a modified function which warns once by default.
13159 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13161 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13162 * will throw an Error when invoked.
13164 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13165 * will invoke `console.trace()` instead of `console.error()`.
13167 * @param {Function} fn - the function to deprecate
13168 * @param {String} msg - the string to print to the console when `fn` is invoked
13169 * @returns {Function} a new "deprecated" version of `fn`
13173 function deprecate (fn, msg) {
13174 if (config('noDeprecation')) {
13178 var warned = false;
13179 function deprecated() {
13181 if (config('throwDeprecation')) {
13182 throw new Error(msg);
13183 } else if (config('traceDeprecation')) {
13184 console.trace(msg);
13190 return fn.apply(this, arguments);
13197 * Checks `localStorage` for boolean values for the given `name`.
13199 * @param {String} name
13200 * @returns {Boolean}
13204 function config (name) {
13205 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13207 if (!global.localStorage) return false;
13211 var val = global.localStorage[name];
13212 if (null == val) return false;
13213 return String(val).toLowerCase() === 'true';
13216 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13217 },{}],
30:[function(require,module,exports){
13218 arguments[
4][
8][
0].apply(exports,arguments)
13219 },{"dup":
8}],
31:[function(require,module,exports){
13220 module.exports = function isBuffer(arg) {
13221 return arg && typeof arg === 'object'
13222 && typeof arg.copy === 'function'
13223 && typeof arg.fill === 'function'
13224 && typeof arg.readUInt8 === 'function';
13226 },{}],
32:[function(require,module,exports){
13227 (function (process,global){
13228 // Copyright Joyent, Inc. and other Node contributors.
13230 // Permission is hereby granted, free of charge, to any person obtaining a
13231 // copy of this software and associated documentation files (the
13232 // "Software"), to deal in the Software without restriction, including
13233 // without limitation the rights to use, copy, modify, merge, publish,
13234 // distribute, sublicense, and/or sell copies of the Software, and to permit
13235 // persons to whom the Software is furnished to do so, subject to the
13236 // following conditions:
13238 // The above copyright notice and this permission notice shall be included
13239 // in all copies or substantial portions of the Software.
13241 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13242 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13243 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13244 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13245 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13246 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13247 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13249 var formatRegExp = /%[sdj%]/g;
13250 exports.format = function(f) {
13251 if (!isString(f)) {
13253 for (var i =
0; i < arguments.length; i++) {
13254 objects.push(inspect(arguments[i]));
13256 return objects.join(' ');
13260 var args = arguments;
13261 var len = args.length;
13262 var str = String(f).replace(formatRegExp, function(x) {
13263 if (x === '%%') return '%';
13264 if (i
>= len) return x;
13266 case '%s': return String(args[i++]);
13267 case '%d': return Number(args[i++]);
13270 return JSON.stringify(args[i++]);
13272 return '[Circular]';
13278 for (var x = args[i]; i < len; x = args[++i]) {
13279 if (isNull(x) || !isObject(x)) {
13282 str += ' ' + inspect(x);
13289 // Mark that a method should not be used.
13290 // Returns a modified function which warns once by default.
13291 // If --no-deprecation is set, then it is a no-op.
13292 exports.deprecate = function(fn, msg) {
13293 // Allow for deprecating things in the process of starting up.
13294 if (isUndefined(global.process)) {
13295 return function() {
13296 return exports.deprecate(fn, msg).apply(this, arguments);
13300 if (process.noDeprecation === true) {
13304 var warned = false;
13305 function deprecated() {
13307 if (process.throwDeprecation) {
13308 throw new Error(msg);
13309 } else if (process.traceDeprecation) {
13310 console.trace(msg);
13312 console.error(msg);
13316 return fn.apply(this, arguments);
13325 exports.debuglog = function(set) {
13326 if (isUndefined(debugEnviron))
13327 debugEnviron = process.env.NODE_DEBUG || '';
13328 set = set.toUpperCase();
13329 if (!debugs[set]) {
13330 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13331 var pid = process.pid;
13332 debugs[set] = function() {
13333 var msg = exports.format.apply(exports, arguments);
13334 console.error('%s %d: %s', set, pid, msg);
13337 debugs[set] = function() {};
13340 return debugs[set];
13345 * Echos the value of a value. Trys to print the value out
13346 * in the best way possible given the different types.
13348 * @param {Object} obj The object to print out.
13349 * @param {Object} opts Optional options object that alters the output.
13351 /* legacy: obj, showHidden, depth, colors*/
13352 function inspect(obj, opts) {
13356 stylize: stylizeNoColor
13359 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13360 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13361 if (isBoolean(opts)) {
13363 ctx.showHidden = opts;
13365 // got an "options" object
13366 exports._extend(ctx, opts);
13368 // set default options
13369 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13370 if (isUndefined(ctx.depth)) ctx.depth =
2;
13371 if (isUndefined(ctx.colors)) ctx.colors = false;
13372 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13373 if (ctx.colors) ctx.stylize = stylizeWithColor;
13374 return formatValue(ctx, obj, ctx.depth);
13376 exports.inspect = inspect;
13379 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13382 'italic' : [
3,
23],
13383 'underline' : [
4,
24],
13384 'inverse' : [
7,
27],
13385 'white' : [
37,
39],
13387 'black' : [
30,
39],
13390 'green' : [
32,
39],
13391 'magenta' : [
35,
39],
13393 'yellow' : [
33,
39]
13396 // Don't use 'blue' not visible on cmd.exe
13399 'number': 'yellow',
13400 'boolean': 'yellow',
13401 'undefined': 'grey',
13405 // "name": intentionally not styling
13410 function stylizeWithColor(str, styleType) {
13411 var style = inspect.styles[styleType];
13414 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13415 '\u001b[' + inspect.colors[style][
1] + 'm';
13422 function stylizeNoColor(str, styleType) {
13427 function arrayToHash(array) {
13430 array.forEach(function(val, idx) {
13438 function formatValue(ctx, value, recurseTimes) {
13439 // Provide a hook for user-specified inspect functions.
13440 // Check that value is an object with an inspect function on it
13441 if (ctx.customInspect &&
13443 isFunction(value.inspect) &&
13444 // Filter out the util module, it's inspect function is special
13445 value.inspect !== exports.inspect &&
13446 // Also filter out any prototype objects using the circular check.
13447 !(value.constructor && value.constructor.prototype === value)) {
13448 var ret = value.inspect(recurseTimes, ctx);
13449 if (!isString(ret)) {
13450 ret = formatValue(ctx, ret, recurseTimes);
13455 // Primitive types cannot have properties
13456 var primitive = formatPrimitive(ctx, value);
13461 // Look up the keys of the object.
13462 var keys = Object.keys(value);
13463 var visibleKeys = arrayToHash(keys);
13465 if (ctx.showHidden) {
13466 keys = Object.getOwnPropertyNames(value);
13469 // IE doesn't make error fields non-enumerable
13470 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13472 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13473 return formatError(value);
13476 // Some type of object without properties can be shortcutted.
13477 if (keys.length ===
0) {
13478 if (isFunction(value)) {
13479 var name = value.name ? ': ' + value.name : '';
13480 return ctx.stylize('[Function' + name + ']', 'special');
13482 if (isRegExp(value)) {
13483 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13485 if (isDate(value)) {
13486 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13488 if (isError(value)) {
13489 return formatError(value);
13493 var base = '', array = false, braces = ['{', '}'];
13495 // Make Array say that they are Array
13496 if (isArray(value)) {
13498 braces = ['[', ']'];
13501 // Make functions say that they are functions
13502 if (isFunction(value)) {
13503 var n = value.name ? ': ' + value.name : '';
13504 base = ' [Function' + n + ']';
13507 // Make RegExps say that they are RegExps
13508 if (isRegExp(value)) {
13509 base = ' ' + RegExp.prototype.toString.call(value);
13512 // Make dates with properties first say the date
13513 if (isDate(value)) {
13514 base = ' ' + Date.prototype.toUTCString.call(value);
13517 // Make error with message first say the error
13518 if (isError(value)) {
13519 base = ' ' + formatError(value);
13522 if (keys.length ===
0 && (!array || value.length ==
0)) {
13523 return braces[
0] + base + braces[
1];
13526 if (recurseTimes <
0) {
13527 if (isRegExp(value)) {
13528 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13530 return ctx.stylize('[Object]', 'special');
13534 ctx.seen.push(value);
13538 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13540 output = keys.map(function(key) {
13541 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13547 return reduceToSingleString(output, base, braces);
13551 function formatPrimitive(ctx, value) {
13552 if (isUndefined(value))
13553 return ctx.stylize('undefined', 'undefined');
13554 if (isString(value)) {
13555 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13556 .replace(/'/g, "\\'")
13557 .replace(/\\"/g, '"') + '\'';
13558 return ctx.stylize(simple, 'string');
13560 if (isNumber(value))
13561 return ctx.stylize('' + value, 'number');
13562 if (isBoolean(value))
13563 return ctx.stylize('' + value, 'boolean');
13564 // For some reason typeof null is "object", so special case here.
13566 return ctx.stylize('null', 'null');
13570 function formatError(value) {
13571 return '[' + Error.prototype.toString.call(value) + ']';
13575 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13577 for (var i =
0, l = value.length; i < l; ++i) {
13578 if (hasOwnProperty(value, String(i))) {
13579 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13585 keys.forEach(function(key) {
13586 if (!key.match(/^\d+$/)) {
13587 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13595 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13596 var name, str, desc;
13597 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13600 str = ctx.stylize('[Getter/Setter]', 'special');
13602 str = ctx.stylize('[Getter]', 'special');
13606 str = ctx.stylize('[Setter]', 'special');
13609 if (!hasOwnProperty(visibleKeys, key)) {
13610 name = '[' + key + ']';
13613 if (ctx.seen.indexOf(desc.value) <
0) {
13614 if (isNull(recurseTimes)) {
13615 str = formatValue(ctx, desc.value, null);
13617 str = formatValue(ctx, desc.value, recurseTimes -
1);
13619 if (str.indexOf('\n')
> -
1) {
13621 str = str.split('\n').map(function(line) {
13623 }).join('\n').substr(
2);
13625 str = '\n' + str.split('\n').map(function(line) {
13631 str = ctx.stylize('[Circular]', 'special');
13634 if (isUndefined(name)) {
13635 if (array && key.match(/^\d+$/)) {
13638 name = JSON.stringify('' + key);
13639 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13640 name = name.substr(
1, name.length -
2);
13641 name = ctx.stylize(name, 'name');
13643 name = name.replace(/'/g, "\\'")
13644 .replace(/\\"/g, '"')
13645 .replace(/(^"|"$)/g, "'");
13646 name = ctx.stylize(name, 'string');
13650 return name + ': ' + str;
13654 function reduceToSingleString(output, base, braces) {
13655 var numLinesEst =
0;
13656 var length = output.reduce(function(prev, cur) {
13658 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13659 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13664 (base === '' ? '' : base + '\n ') +
13666 output.join(',\n ') +
13671 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13675 // NOTE: These type checking functions intentionally don't use `instanceof`
13676 // because it is fragile and can be easily faked with `Object.create()`.
13677 function isArray(ar) {
13678 return Array.isArray(ar);
13680 exports.isArray = isArray;
13682 function isBoolean(arg) {
13683 return typeof arg === 'boolean';
13685 exports.isBoolean = isBoolean;
13687 function isNull(arg) {
13688 return arg === null;
13690 exports.isNull = isNull;
13692 function isNullOrUndefined(arg) {
13693 return arg == null;
13695 exports.isNullOrUndefined = isNullOrUndefined;
13697 function isNumber(arg) {
13698 return typeof arg === 'number';
13700 exports.isNumber = isNumber;
13702 function isString(arg) {
13703 return typeof arg === 'string';
13705 exports.isString = isString;
13707 function isSymbol(arg) {
13708 return typeof arg === 'symbol';
13710 exports.isSymbol = isSymbol;
13712 function isUndefined(arg) {
13713 return arg === void
0;
13715 exports.isUndefined = isUndefined;
13717 function isRegExp(re) {
13718 return isObject(re) && objectToString(re) === '[object RegExp]';
13720 exports.isRegExp = isRegExp;
13722 function isObject(arg) {
13723 return typeof arg === 'object' && arg !== null;
13725 exports.isObject = isObject;
13727 function isDate(d) {
13728 return isObject(d) && objectToString(d) === '[object Date]';
13730 exports.isDate = isDate;
13732 function isError(e) {
13733 return isObject(e) &&
13734 (objectToString(e) === '[object Error]' || e instanceof Error);
13736 exports.isError = isError;
13738 function isFunction(arg) {
13739 return typeof arg === 'function';
13741 exports.isFunction = isFunction;
13743 function isPrimitive(arg) {
13744 return arg === null ||
13745 typeof arg === 'boolean' ||
13746 typeof arg === 'number' ||
13747 typeof arg === 'string' ||
13748 typeof arg === 'symbol' || // ES6 symbol
13749 typeof arg === 'undefined';
13751 exports.isPrimitive = isPrimitive;
13753 exports.isBuffer = require('./support/isBuffer');
13755 function objectToString(o) {
13756 return Object.prototype.toString.call(o);
13761 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13765 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13766 'Oct', 'Nov', 'Dec'];
13769 function timestamp() {
13770 var d = new Date();
13771 var time = [pad(d.getHours()),
13772 pad(d.getMinutes()),
13773 pad(d.getSeconds())].join(':');
13774 return [d.getDate(), months[d.getMonth()], time].join(' ');
13778 // log is just a thin wrapper to console.log that prepends a timestamp
13779 exports.log = function() {
13780 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13785 * Inherit the prototype methods from one constructor into another.
13787 * The Function.prototype.inherits from lang.js rewritten as a standalone
13788 * function (not on Function.prototype). NOTE: If this file is to be loaded
13789 * during bootstrapping this function needs to be rewritten using some native
13790 * functions as prototype setup using normal JavaScript does not work as
13791 * expected during bootstrapping (see mirror.js in r114903).
13793 * @param {function} ctor Constructor function which needs to inherit the
13795 * @param {function} superCtor Constructor function to inherit prototype from.
13797 exports.inherits = require('inherits');
13799 exports._extend = function(origin, add) {
13800 // Don't do anything if add isn't an object
13801 if (!add || !isObject(add)) return origin;
13803 var keys = Object.keys(add);
13804 var i = keys.length;
13806 origin[keys[i]] = add[keys[i]];
13811 function hasOwnProperty(obj, prop) {
13812 return Object.prototype.hasOwnProperty.call(obj, prop);
13815 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13816 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13818 base58: require('bs58'),
13819 bitcoin: require('bitcoinjs-lib'),
13820 ecurve: require('ecurve'),
13821 BigInteger: require('bigi')
13824 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13826 // Forked from https://github.com/cryptocoinjs/bs58
13827 // Originally written by Mike Hearn for BitcoinJ
13828 // Copyright (c)
2011 Google Inc
13829 // Ported to JavaScript by Stefan Thomas
13830 // Merged Buffer refactorings from base58-native by Stephen Pair
13831 // Copyright (c)
2013 BitPay Inc
13833 var Buffer = require('safe-buffer').Buffer
13835 module.exports = function base (ALPHABET) {
13836 var ALPHABET_MAP = {}
13837 var BASE = ALPHABET.length
13838 var LEADER = ALPHABET.charAt(
0)
13840 // pre-compute lookup table
13841 for (var z =
0; z < ALPHABET.length; z++) {
13842 var x = ALPHABET.charAt(z)
13844 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13845 ALPHABET_MAP[x] = z
13848 function encode (source) {
13849 if (source.length ===
0) return ''
13852 for (var i =
0; i < source.length; ++i) {
13853 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13854 carry += digits[j] <<
8
13855 digits[j] = carry % BASE
13856 carry = (carry / BASE) |
0
13859 while (carry
> 0) {
13860 digits.push(carry % BASE)
13861 carry = (carry / BASE) |
0
13867 // deal with leading zeros
13868 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13869 // convert digits to a string
13870 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13875 function decodeUnsafe (string) {
13876 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13879 for (var i =
0; i < string.length; i++) {
13880 var value = ALPHABET_MAP[string[i]]
13881 if (value === undefined) return
13883 for (var j =
0, carry = value; j < bytes.length; ++j) {
13884 carry += bytes[j] * BASE
13885 bytes[j] = carry &
0xff
13889 while (carry
> 0) {
13890 bytes.push(carry &
0xff)
13895 // deal with leading zeros
13896 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13900 return Buffer.from(bytes.reverse())
13903 function decode (string) {
13904 var buffer = decodeUnsafe(string)
13905 if (buffer) return buffer
13907 throw new Error('Non-base' + BASE + ' character')
13912 decodeUnsafe: decodeUnsafe,
13917 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13918 // (public) Constructor
13919 function BigInteger(a, b, c) {
13920 if (!(this instanceof BigInteger))
13921 return new BigInteger(a, b, c)
13924 if ("number" == typeof a) this.fromNumber(a, b, c)
13925 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13926 else this.fromString(a, b)
13930 var proto = BigInteger.prototype
13932 // duck-typed isBigInteger
13933 proto.__bigi = require('../package.json').version
13934 BigInteger.isBigInteger = function (obj, check_ver) {
13935 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13941 // am: Compute w_j += (x*this_i), propagate carries,
13942 // c is initial carry, returns final carry.
13943 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13944 // We need to select the fastest one that works in this environment.
13946 // am1: use a single mult and divide to get the high bits,
13947 // max digit bits should be
26 because
13948 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13949 function am1(i, x, w, j, c, n) {
13951 var v = x * this[i++] + w[j] + c
13952 c = Math.floor(v /
0x4000000)
13953 w[j++] = v &
0x3ffffff
13957 // am2 avoids a big mult-and-extract completely.
13958 // Max digit bits should be <=
30 because we do bitwise ops
13959 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13960 function am2(i, x, w, j, c, n) {
13961 var xl = x &
0x7fff,
13964 var l = this[i] &
0x7fff
13965 var h = this[i++]
>> 15
13966 var m = xh * l + h * xl
13967 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13968 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13969 w[j++] = l &
0x3fffffff
13973 // Alternately, set max digit bits to
28 since some
13974 // browsers slow down when dealing with
32-bit numbers.
13975 function am3(i, x, w, j, c, n) {
13976 var xl = x &
0x3fff,
13979 var l = this[i] &
0x3fff
13980 var h = this[i++]
>> 14
13981 var m = xh * l + h * xl
13982 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13983 c = (l
>> 28) + (m
>> 14) + xh * h
13984 w[j++] = l &
0xfffffff
13990 BigInteger.prototype.am = am1
13993 BigInteger.prototype.DB = dbits
13994 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13995 var DV = BigInteger.prototype.DV = (
1 << dbits)
13998 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13999 BigInteger.prototype.F1 = BI_FP - dbits
14000 BigInteger.prototype.F2 =
2 * dbits - BI_FP
14002 // Digit conversions
14003 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
14004 var BI_RC = new Array()
14006 rr =
"0".charCodeAt(
0)
14007 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
14008 rr =
"a".charCodeAt(
0)
14009 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
14010 rr =
"A".charCodeAt(
0)
14011 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
14013 function int2char(n) {
14014 return BI_RM.charAt(n)
14017 function intAt(s, i) {
14018 var c = BI_RC[s.charCodeAt(i)]
14019 return (c == null) ? -
1 : c
14022 // (protected) copy this to r
14023 function bnpCopyTo(r) {
14024 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
14029 // (protected) set from integer value x, -DV <= x < DV
14030 function bnpFromInt(x) {
14032 this.s = (x <
0) ? -
1 :
0
14033 if (x
> 0) this[
0] = x
14034 else if (x < -
1) this[
0] = x + DV
14038 // return bigint initialized to value
14040 var r = new BigInteger()
14045 // (protected) set from string and radix
14046 function bnpFromString(s, b) {
14051 else if (b ==
8) k =
3
14052 else if (b ==
256) k =
8; // byte array
14053 else if (b ==
2) k =
1
14054 else if (b ==
32) k =
5
14055 else if (b ==
4) k =
2
14057 self.fromRadix(s, b)
14066 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14068 if (s.charAt(i) == "-") mi = true
14074 else if (sh + k
> self.DB) {
14075 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14076 self[self.t++] = (x
>> (self.DB - sh))
14078 self[self.t -
1] |= x << sh
14080 if (sh
>= self.DB) sh -= self.DB
14082 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14084 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14087 if (mi) BigInteger.ZERO.subTo(self, self)
14090 // (protected) clamp off excess high words
14091 function bnpClamp() {
14092 var c = this.s & this.DM
14093 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14096 // (public) return string representation in given radix
14097 function bnToString(b) {
14099 if (self.s <
0) return
"-" + self.negate()
14103 else if (b ==
8) k =
3
14104 else if (b ==
2) k =
1
14105 else if (b ==
32) k =
5
14106 else if (b ==
4) k =
2
14107 else return self.toRadix(b)
14108 var km = (
1 << k) -
1,
14112 var p = self.DB - (i * self.DB) % k
14114 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14120 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14121 d |= self[--i]
>> (p += self.DB - k)
14123 d = (self[i]
>> (p -= k)) & km
14129 if (d
> 0) m = true
14130 if (m) r += int2char(d)
14137 function bnNegate() {
14138 var r = new BigInteger()
14139 BigInteger.ZERO.subTo(this, r)
14145 return (this.s <
0) ? this.negate() : this
14148 // (public) return + if this
> a, - if this < a,
0 if equal
14149 function bnCompareTo(a) {
14150 var r = this.s - a.s
14151 if (r !=
0) return r
14154 if (r !=
0) return (this.s <
0) ? -r : r
14156 if ((r = this[i] - a[i]) !=
0) return r
14160 // returns bit length of the integer x
14161 function nbits(x) {
14164 if ((t = x
>>> 16) !=
0) {
14168 if ((t = x
>> 8) !=
0) {
14172 if ((t = x
>> 4) !=
0) {
14176 if ((t = x
>> 2) !=
0) {
14180 if ((t = x
>> 1) !=
0) {
14187 // (public) return the number of bits in
"this"
14188 function bnBitLength() {
14189 if (this.t <=
0) return
0
14190 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14193 // (public) return the number of bytes in
"this"
14194 function bnByteLength() {
14195 return this.bitLength()
>> 3
14198 // (protected) r = this << n*DB
14199 function bnpDLShiftTo(n, r) {
14201 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14202 for (i = n -
1; i
>=
0; --i) r[i] =
0
14207 // (protected) r = this
>> n*DB
14208 function bnpDRShiftTo(n, r) {
14209 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14210 r.t = Math.max(this.t - n,
0)
14214 // (protected) r = this << n
14215 function bnpLShiftTo(n, r) {
14217 var bs = n % self.DB
14218 var cbs = self.DB - bs
14219 var bm = (
1 << cbs) -
1
14220 var ds = Math.floor(n / self.DB),
14221 c = (self.s << bs) & self.DM,
14223 for (i = self.t -
1; i
>=
0; --i) {
14224 r[i + ds +
1] = (self[i]
>> cbs) | c
14225 c = (self[i] & bm) << bs
14227 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14229 r.t = self.t + ds +
1
14234 // (protected) r = this
>> n
14235 function bnpRShiftTo(n, r) {
14238 var ds = Math.floor(n / self.DB)
14239 if (ds
>= self.t) {
14243 var bs = n % self.DB
14244 var cbs = self.DB - bs
14245 var bm = (
1 << bs) -
1
14246 r[
0] = self[ds]
>> bs
14247 for (var i = ds +
1; i < self.t; ++i) {
14248 r[i - ds -
1] |= (self[i] & bm) << cbs
14249 r[i - ds] = self[i]
>> bs
14251 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14256 // (protected) r = this - a
14257 function bnpSubTo(a, r) {
14261 m = Math.min(a.t, self.t)
14263 c += self[i] - a[i]
14264 r[i++] = c & self.DM
14267 if (a.t < self.t) {
14269 while (i < self.t) {
14271 r[i++] = c & self.DM
14279 r[i++] = c & self.DM
14284 r.s = (c <
0) ? -
1 :
0
14285 if (c < -
1) r[i++] = self.DV + c
14286 else if (c
> 0) r[i++] = c
14291 // (protected) r = this * a, r != this,a (HAC
14.12)
14292 //
"this" should be the larger one if appropriate.
14293 function bnpMultiplyTo(a, r) {
14294 var x = this.abs(),
14298 while (--i
>=
0) r[i] =
0
14299 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14302 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14305 // (protected) r = this^
2, r != this (HAC
14.16)
14306 function bnpSquareTo(r) {
14308 var i = r.t =
2 * x.t
14309 while (--i
>=
0) r[i] =
0
14310 for (i =
0; i < x.t -
1; ++i) {
14311 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14312 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14317 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14322 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14323 // r != q, this != m. q or r may be null.
14324 function bnpDivRemTo(m, q, r) {
14327 if (pm.t <=
0) return
14328 var pt = self.abs()
14330 if (q != null) q.fromInt(
0)
14331 if (r != null) self.copyTo(r)
14334 if (r == null) r = new BigInteger()
14335 var y = new BigInteger(),
14338 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14340 pm.lShiftTo(nsh, y)
14341 pt.lShiftTo(nsh, r)
14348 if (y0 ==
0) return
14349 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14350 var d1 = self.FV / yt,
14351 d2 = (
1 << self.F1) / yt,
14355 t = (q == null) ? new BigInteger() : q
14357 if (r.compareTo(t)
>=
0) {
14361 BigInteger.ONE.dlShiftTo(ys, t)
14362 t.subTo(y, y); // "negative" y so we can replace sub with am later
14363 while (y.t < ys) y[y.t++] =
0
14365 // Estimate quotient digit
14366 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14367 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14370 while (r[i] < --qd) r.subTo(t, r)
14375 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14379 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14380 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14383 // (public) this mod a
14384 function bnMod(a) {
14385 var r = new BigInteger()
14387 .divRemTo(a, null, r)
14388 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14392 // Modular reduction using
"classic" algorithm
14393 function Classic(m) {
14397 function cConvert(x) {
14398 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14402 function cRevert(x) {
14406 function cReduce(x) {
14407 x.divRemTo(this.m, null, x)
14410 function cMulTo(x, y, r) {
14415 function cSqrTo(x, r) {
14420 Classic.prototype.convert = cConvert
14421 Classic.prototype.revert = cRevert
14422 Classic.prototype.reduce = cReduce
14423 Classic.prototype.mulTo = cMulTo
14424 Classic.prototype.sqrTo = cSqrTo
14426 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14430 // xy(
2-xy) = (
1+km)(
1-km)
14431 // x[y(
2-xy)] =
1-k^
2m^
2
14432 // x[y(
2-xy)] ==
1 (mod m^
2)
14433 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14434 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14435 // JS multiply "overflows" differently from C/C++, so care is needed here.
14436 function bnpInvDigit() {
14437 if (this.t <
1) return
0
14439 if ((x &
1) ==
0) return
0
14440 var y = x &
3; // y ==
1/x mod
2^
2
14441 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14442 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14443 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14444 // last step - calculate inverse mod DV directly
14445 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14446 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14447 // we really want the negative inverse, and -DV < y < DV
14448 return (y
> 0) ? this.DV - y : -y
14451 // Montgomery reduction
14452 function Montgomery(m) {
14454 this.mp = m.invDigit()
14455 this.mpl = this.mp &
0x7fff
14456 this.mph = this.mp
>> 15
14457 this.um = (
1 << (m.DB -
15)) -
1
14462 function montConvert(x) {
14463 var r = new BigInteger()
14465 .dlShiftTo(this.m.t, r)
14466 r.divRemTo(this.m, null, r)
14467 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14472 function montRevert(x) {
14473 var r = new BigInteger()
14479 // x = x/R mod m (HAC
14.32)
14480 function montReduce(x) {
14481 while (x.t <= this.mt2) // pad x so am has enough room later
14483 for (var i =
0; i < this.m.t; ++i) {
14484 // faster way of calculating u0 = x[i]*mp mod DV
14485 var j = x[i] &
0x7fff
14486 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14487 // use am to combine the multiply-shift-add into one call
14489 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14491 while (x[j]
>= x.DV) {
14497 x.drShiftTo(this.m.t, x)
14498 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14501 // r = "x^
2/R mod m"; x != r
14502 function montSqrTo(x, r) {
14507 // r = "xy/R mod m"; x,y != r
14508 function montMulTo(x, y, r) {
14513 Montgomery.prototype.convert = montConvert
14514 Montgomery.prototype.revert = montRevert
14515 Montgomery.prototype.reduce = montReduce
14516 Montgomery.prototype.mulTo = montMulTo
14517 Montgomery.prototype.sqrTo = montSqrTo
14519 // (protected) true iff this is even
14520 function bnpIsEven() {
14521 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14524 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14525 function bnpExp(e, z) {
14526 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14527 var r = new BigInteger(),
14528 r2 = new BigInteger(),
14529 g = z.convert(this),
14534 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14544 // (public) this^e % m,
0 <= e <
2^
32
14545 function bnModPowInt(e, m) {
14547 if (e <
256 || m.isEven()) z = new Classic(m)
14548 else z = new Montgomery(m)
14549 return this.exp(e, z)
14553 proto.copyTo = bnpCopyTo
14554 proto.fromInt = bnpFromInt
14555 proto.fromString = bnpFromString
14556 proto.clamp = bnpClamp
14557 proto.dlShiftTo = bnpDLShiftTo
14558 proto.drShiftTo = bnpDRShiftTo
14559 proto.lShiftTo = bnpLShiftTo
14560 proto.rShiftTo = bnpRShiftTo
14561 proto.subTo = bnpSubTo
14562 proto.multiplyTo = bnpMultiplyTo
14563 proto.squareTo = bnpSquareTo
14564 proto.divRemTo = bnpDivRemTo
14565 proto.invDigit = bnpInvDigit
14566 proto.isEven = bnpIsEven
14570 proto.toString = bnToString
14571 proto.negate = bnNegate
14573 proto.compareTo = bnCompareTo
14574 proto.bitLength = bnBitLength
14575 proto.byteLength = bnByteLength
14577 proto.modPowInt = bnModPowInt
14580 function bnClone() {
14581 var r = new BigInteger()
14586 // (public) return value as integer
14587 function bnIntValue() {
14589 if (this.t ==
1) return this[
0] - this.DV
14590 else if (this.t ==
0) return -
1
14591 } else if (this.t ==
1) return this[
0]
14592 else if (this.t ==
0) return
0
14593 // assumes
16 < DB <
32
14594 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14597 // (public) return value as byte
14598 function bnByteValue() {
14599 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14602 // (public) return value as short (assumes DB
>=
16)
14603 function bnShortValue() {
14604 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14607 // (protected) return x s.t. r^x < DV
14608 function bnpChunkSize(r) {
14609 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14612 // (public)
0 if this ==
0,
1 if this
> 0
14613 function bnSigNum() {
14614 if (this.s <
0) return -
1
14615 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14619 // (protected) convert to radix string
14620 function bnpToRadix(b) {
14621 if (b == null) b =
10
14622 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14623 var cs = this.chunkSize(b)
14624 var a = Math.pow(b, cs)
14626 y = new BigInteger(),
14627 z = new BigInteger(),
14629 this.divRemTo(d, y, z)
14630 while (y.signum()
> 0) {
14631 r = (a + z.intValue())
14634 y.divRemTo(d, y, z)
14636 return z.intValue()
14640 // (protected) convert from radix string
14641 function bnpFromRadix(s, b) {
14644 if (b == null) b =
10
14645 var cs = self.chunkSize(b)
14646 var d = Math.pow(b, cs),
14650 for (var i =
0; i < s.length; ++i) {
14651 var x = intAt(s, i)
14653 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14659 self.dAddOffset(w,
0)
14665 self.dMultiply(Math.pow(b, j))
14666 self.dAddOffset(w,
0)
14668 if (mi) BigInteger.ZERO.subTo(self, self)
14671 // (protected) alternate constructor
14672 function bnpFromNumber(a, b, c) {
14674 if (
"number" == typeof b) {
14675 // new BigInteger(int,int,RNG)
14676 if (a <
2) self.fromInt(
1)
14678 self.fromNumber(a, c)
14679 if (!self.testBit(a -
1)) // force MSB set
14680 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14681 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14682 while (!self.isProbablePrime(b)) {
14683 self.dAddOffset(
2,
0)
14684 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14688 // new BigInteger(int,RNG)
14689 var x = new Array(),
14691 x.length = (a
>> 3) +
1
14693 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14695 self.fromString(x,
256)
14699 // (public) convert to bigendian byte array
14700 function bnToByteArray() {
14705 var p = self.DB - (i * self.DB) %
8,
14708 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14709 r[k++] = d | (self.s << (self.DB - p))
14712 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14713 d |= self[--i]
>> (p += self.DB -
8)
14715 d = (self[i]
>> (p -=
8)) &
0xff
14721 if ((d &
0x80) !=
0) d |= -
256
14722 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14723 if (k
> 0 || d != self.s) r[k++] = d
14729 function bnEquals(a) {
14730 return (this.compareTo(a) ==
0)
14733 function bnMin(a) {
14734 return (this.compareTo(a) <
0) ? this : a
14737 function bnMax(a) {
14738 return (this.compareTo(a)
> 0) ? this : a
14741 // (protected) r = this op a (bitwise)
14742 function bnpBitwiseTo(a, op, r) {
14744 var i, f, m = Math.min(a.t, self.t)
14745 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14746 if (a.t < self.t) {
14748 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14751 f = self.s & self.DM
14752 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14755 r.s = op(self.s, a.s)
14759 // (public) this & a
14760 function op_and(x, y) {
14764 function bnAnd(a) {
14765 var r = new BigInteger()
14766 this.bitwiseTo(a, op_and, r)
14770 // (public) this | a
14771 function op_or(x, y) {
14776 var r = new BigInteger()
14777 this.bitwiseTo(a, op_or, r)
14781 // (public) this ^ a
14782 function op_xor(x, y) {
14786 function bnXor(a) {
14787 var r = new BigInteger()
14788 this.bitwiseTo(a, op_xor, r)
14792 // (public) this & ~a
14793 function op_andnot(x, y) {
14797 function bnAndNot(a) {
14798 var r = new BigInteger()
14799 this.bitwiseTo(a, op_andnot, r)
14805 var r = new BigInteger()
14806 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14812 // (public) this << n
14813 function bnShiftLeft(n) {
14814 var r = new BigInteger()
14815 if (n <
0) this.rShiftTo(-n, r)
14816 else this.lShiftTo(n, r)
14820 // (public) this
>> n
14821 function bnShiftRight(n) {
14822 var r = new BigInteger()
14823 if (n <
0) this.lShiftTo(-n, r)
14824 else this.rShiftTo(n, r)
14828 // return index of lowest
1-bit in x, x <
2^
31
14830 if (x ==
0) return -
1
14832 if ((x &
0xffff) ==
0) {
14836 if ((x &
0xff) ==
0) {
14840 if ((x &
0xf) ==
0) {
14844 if ((x &
3) ==
0) {
14848 if ((x &
1) ==
0)++r
14852 // (public) returns index of lowest
1-bit (or -
1 if none)
14853 function bnGetLowestSetBit() {
14854 for (var i =
0; i < this.t; ++i)
14855 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14856 if (this.s <
0) return this.t * this.DB
14860 // return number of
1 bits in x
14870 // (public) return number of set bits
14871 function bnBitCount() {
14873 x = this.s & this.DM
14874 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14878 // (public) true iff nth bit is set
14879 function bnTestBit(n) {
14880 var j = Math.floor(n / this.DB)
14881 if (j
>= this.t) return (this.s !=
0)
14882 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14885 // (protected) this op (
1<
<n)
14886 function bnpChangeBit(n, op) {
14887 var r = BigInteger.ONE.shiftLeft(n)
14888 this.bitwiseTo(r, op, r)
14892 // (public) this | (
1<
<n)
14893 function bnSetBit(n) {
14894 return this.changeBit(n, op_or)
14897 // (public) this & ~(
1<
<n)
14898 function bnClearBit(n) {
14899 return this.changeBit(n, op_andnot)
14902 // (public) this ^ (
1<
<n)
14903 function bnFlipBit(n) {
14904 return this.changeBit(n, op_xor)
14907 // (protected) r = this + a
14908 function bnpAddTo(a, r) {
14913 m = Math.min(a.t, self.t)
14915 c += self[i] + a[i]
14916 r[i++] = c & self.DM
14919 if (a.t < self.t) {
14921 while (i < self.t) {
14923 r[i++] = c & self.DM
14931 r[i++] = c & self.DM
14936 r.s = (c <
0) ? -
1 :
0
14937 if (c
> 0) r[i++] = c
14938 else if (c < -
1) r[i++] = self.DV + c
14943 // (public) this + a
14944 function bnAdd(a) {
14945 var r = new BigInteger()
14950 // (public) this - a
14951 function bnSubtract(a) {
14952 var r = new BigInteger()
14957 // (public) this * a
14958 function bnMultiply(a) {
14959 var r = new BigInteger()
14960 this.multiplyTo(a, r)
14965 function bnSquare() {
14966 var r = new BigInteger()
14971 // (public) this / a
14972 function bnDivide(a) {
14973 var r = new BigInteger()
14974 this.divRemTo(a, r, null)
14978 // (public) this % a
14979 function bnRemainder(a) {
14980 var r = new BigInteger()
14981 this.divRemTo(a, null, r)
14985 // (public) [this/a,this%a]
14986 function bnDivideAndRemainder(a) {
14987 var q = new BigInteger(),
14988 r = new BigInteger()
14989 this.divRemTo(a, q, r)
14990 return new Array(q, r)
14993 // (protected) this *= n, this
>=
0,
1 < n < DV
14994 function bnpDMultiply(n) {
14995 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
15000 // (protected) this += n << w words, this
>=
0
15001 function bnpDAddOffset(n, w) {
15003 while (this.t <= w) this[this.t++] =
0
15005 while (this[w]
>= this.DV) {
15007 if (++w
>= this.t) this[this.t++] =
0
15012 // A "null" reducer
15013 function NullExp() {}
15019 function nMulTo(x, y, r) {
15023 function nSqrTo(x, r) {
15027 NullExp.prototype.convert = nNop
15028 NullExp.prototype.revert = nNop
15029 NullExp.prototype.mulTo = nMulTo
15030 NullExp.prototype.sqrTo = nSqrTo
15033 function bnPow(e) {
15034 return this.exp(e, new NullExp())
15037 // (protected) r = lower n words of "this * a", a.t <= n
15038 // "this" should be the larger one if appropriate.
15039 function bnpMultiplyLowerTo(a, n, r) {
15040 var i = Math.min(this.t + a.t, n)
15041 r.s =
0; // assumes a,this
>=
0
15043 while (i
> 0) r[--i] =
0
15045 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15046 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15050 // (protected) r =
"this * a" without lower n words, n
> 0
15051 //
"this" should be the larger one if appropriate.
15052 function bnpMultiplyUpperTo(a, n, r) {
15054 var i = r.t = this.t + a.t - n
15055 r.s =
0; // assumes a,this
>=
0
15056 while (--i
>=
0) r[i] =
0
15057 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15058 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15063 // Barrett modular reduction
15064 function Barrett(m) {
15066 this.r2 = new BigInteger()
15067 this.q3 = new BigInteger()
15068 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15069 this.mu = this.r2.divide(m)
15073 function barrettConvert(x) {
15074 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15075 else if (x.compareTo(this.m) <
0) return x
15077 var r = new BigInteger()
15084 function barrettRevert(x) {
15088 // x = x mod m (HAC
14.42)
15089 function barrettReduce(x) {
15091 x.drShiftTo(self.m.t -
1, self.r2)
15092 if (x.t
> self.m.t +
1) {
15096 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15097 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15098 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15099 x.subTo(self.r2, x)
15100 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15103 // r = x^
2 mod m; x != r
15104 function barrettSqrTo(x, r) {
15109 // r = x*y mod m; x,y != r
15110 function barrettMulTo(x, y, r) {
15115 Barrett.prototype.convert = barrettConvert
15116 Barrett.prototype.revert = barrettRevert
15117 Barrett.prototype.reduce = barrettReduce
15118 Barrett.prototype.mulTo = barrettMulTo
15119 Barrett.prototype.sqrTo = barrettSqrTo
15121 // (public) this^e % m (HAC
14.85)
15122 function bnModPow(e, m) {
15123 var i = e.bitLength(),
15126 if (i <=
0) return r
15127 else if (i <
18) k =
1
15128 else if (i <
48) k =
3
15129 else if (i <
144) k =
4
15130 else if (i <
768) k =
5
15134 else if (m.isEven())
15137 z = new Montgomery(m)
15140 var g = new Array(),
15144 g[
1] = z.convert(this)
15146 var g2 = new BigInteger()
15149 g[n] = new BigInteger()
15150 z.mulTo(g2, g[n -
2], g[n])
15157 r2 = new BigInteger(),
15159 i = nbits(e[j]) -
1
15161 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15163 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15164 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15168 while ((w &
1) ==
0) {
15172 if ((i -= n) <
0) {
15176 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15185 if (n
> 0) z.sqrTo(r, r2)
15191 z.mulTo(r2, g[w], r)
15194 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15208 // (public) gcd(this,a) (HAC
14.54)
15209 function bnGCD(a) {
15210 var x = (this.s <
0) ? this.negate() : this.clone()
15211 var y = (a.s <
0) ? a.negate() : a.clone()
15212 if (x.compareTo(y) <
0) {
15217 var i = x.getLowestSetBit(),
15218 g = y.getLowestSetBit()
15219 if (g <
0) return x
15225 while (x.signum()
> 0) {
15226 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15227 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15228 if (x.compareTo(y)
>=
0) {
15236 if (g
> 0) y.lShiftTo(g, y)
15240 // (protected) this % n, n <
2^
26
15241 function bnpModInt(n) {
15242 if (n <=
0) return
0
15243 var d = this.DV % n,
15244 r = (this.s <
0) ? n -
1 :
0
15246 if (d ==
0) r = this[
0] % n
15248 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15252 // (public)
1/this % m (HAC
14.61)
15253 function bnModInverse(m) {
15254 var ac = m.isEven()
15255 if (this.signum() ===
0) throw new Error('division by zero')
15256 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15263 while (u.signum() !=
0) {
15264 while (u.isEven()) {
15267 if (!a.isEven() || !b.isEven()) {
15272 } else if (!b.isEven()) b.subTo(m, b)
15275 while (v.isEven()) {
15278 if (!c.isEven() || !d.isEven()) {
15283 } else if (!d.isEven()) d.subTo(m, d)
15286 if (u.compareTo(v)
>=
0) {
15288 if (ac) a.subTo(c, a)
15292 if (ac) c.subTo(a, c)
15296 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15297 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15298 while (d.signum() <
0) d.addTo(m, d)
15303 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15304 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15305 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15306 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15307 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15308 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15309 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15310 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15311 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15312 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15313 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15316 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15318 // (public) test primality with certainty
>=
1-
.5^t
15319 function bnIsProbablePrime(t) {
15320 var i, x = this.abs()
15321 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15322 for (i =
0; i < lowprimes.length; ++i)
15323 if (x[
0] == lowprimes[i]) return true
15326 if (x.isEven()) return false
15328 while (i < lowprimes.length) {
15329 var m = lowprimes[i],
15331 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15333 while (i < j) if (m % lowprimes[i++] ==
0) return false
15335 return x.millerRabin(t)
15338 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15339 function bnpMillerRabin(t) {
15340 var n1 = this.subtract(BigInteger.ONE)
15341 var k = n1.getLowestSetBit()
15342 if (k <=
0) return false
15343 var r = n1.shiftRight(k)
15345 if (t
> lowprimes.length) t = lowprimes.length
15346 var a = new BigInteger(null)
15348 for (var i =
0; i < t; ++i) {
15350 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15351 if (bases.indexOf(j) == -
1) break
15355 var y = a.modPow(r, this)
15356 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15358 while (j++ < k && y.compareTo(n1) !=
0) {
15359 y = y.modPowInt(
2, this)
15360 if (y.compareTo(BigInteger.ONE) ==
0) return false
15362 if (y.compareTo(n1) !=
0) return false
15369 proto.chunkSize = bnpChunkSize
15370 proto.toRadix = bnpToRadix
15371 proto.fromRadix = bnpFromRadix
15372 proto.fromNumber = bnpFromNumber
15373 proto.bitwiseTo = bnpBitwiseTo
15374 proto.changeBit = bnpChangeBit
15375 proto.addTo = bnpAddTo
15376 proto.dMultiply = bnpDMultiply
15377 proto.dAddOffset = bnpDAddOffset
15378 proto.multiplyLowerTo = bnpMultiplyLowerTo
15379 proto.multiplyUpperTo = bnpMultiplyUpperTo
15380 proto.modInt = bnpModInt
15381 proto.millerRabin = bnpMillerRabin
15384 proto.clone = bnClone
15385 proto.intValue = bnIntValue
15386 proto.byteValue = bnByteValue
15387 proto.shortValue = bnShortValue
15388 proto.signum = bnSigNum
15389 proto.toByteArray = bnToByteArray
15390 proto.equals = bnEquals
15396 proto.andNot = bnAndNot
15398 proto.shiftLeft = bnShiftLeft
15399 proto.shiftRight = bnShiftRight
15400 proto.getLowestSetBit = bnGetLowestSetBit
15401 proto.bitCount = bnBitCount
15402 proto.testBit = bnTestBit
15403 proto.setBit = bnSetBit
15404 proto.clearBit = bnClearBit
15405 proto.flipBit = bnFlipBit
15407 proto.subtract = bnSubtract
15408 proto.multiply = bnMultiply
15409 proto.divide = bnDivide
15410 proto.remainder = bnRemainder
15411 proto.divideAndRemainder = bnDivideAndRemainder
15412 proto.modPow = bnModPow
15413 proto.modInverse = bnModInverse
15416 proto.isProbablePrime = bnIsProbablePrime
15418 // JSBN-specific extension
15419 proto.square = bnSquare
15422 BigInteger.ZERO = nbv(
0)
15423 BigInteger.ONE = nbv(
1)
15424 BigInteger.valueOf = nbv
15426 module.exports = BigInteger
15428 },{"../package.json":
38}],
36:[function(require,module,exports){
15429 (function (Buffer){
15430 // FIXME: Kind of a weird way to throw exceptions, consider removing
15431 var assert = require('assert')
15432 var BigInteger = require('./bigi')
15435 * Turns a byte array into a big integer.
15437 * This function will interpret a byte array as a big integer in big
15440 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15441 // BigInteger expects a DER integer conformant byte array
15442 if (byteArray[
0] &
0x80) {
15443 return new BigInteger([
0].concat(byteArray))
15446 return new BigInteger(byteArray)
15450 * Returns a byte array representation of the big integer.
15452 * This returns the absolute of the contained value in big endian
15453 * form. A value of zero results in an empty array.
15455 BigInteger.prototype.toByteArrayUnsigned = function() {
15456 var byteArray = this.toByteArray()
15457 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15460 BigInteger.fromDERInteger = function(byteArray) {
15461 return new BigInteger(byteArray)
15465 * Converts BigInteger to a DER integer representation.
15467 * The format for this value uses the most significant bit as a sign
15468 * bit. If the most significant bit is already set and the integer is
15469 * positive, a
0x00 is prepended.
15484 *
62300 =
> 0x00f35c
15485 * -
62300 =
> 0xff0ca4
15487 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15489 BigInteger.fromBuffer = function(buffer) {
15490 // BigInteger expects a DER integer conformant byte array
15491 if (buffer[
0] &
0x80) {
15492 var byteArray = Array.prototype.slice.call(buffer)
15494 return new BigInteger([
0].concat(byteArray))
15497 return new BigInteger(buffer)
15500 BigInteger.fromHex = function(hex) {
15501 if (hex === '') return BigInteger.ZERO
15503 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15504 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15505 return new BigInteger(hex,
16)
15508 BigInteger.prototype.toBuffer = function(size) {
15509 var byteArray = this.toByteArrayUnsigned()
15512 var padding = size - byteArray.length
15513 while (zeros.length < padding) zeros.push(
0)
15515 return new Buffer(zeros.concat(byteArray))
15518 BigInteger.prototype.toHex = function(size) {
15519 return this.toBuffer(size).toString('hex')
15522 }).call(this,require(
"buffer").Buffer)
15523 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15524 var BigInteger = require('./bigi')
15527 require('./convert')
15529 module.exports = BigInteger
15530 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15535 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15538 "_from":
"bigi@latest",
15539 "_id":
"bigi@1.4.2",
15541 "_installable": true,
15542 "_location":
"/bigi",
15543 "_nodeVersion":
"6.1.0",
15544 "_npmOperationalInternal": {
15545 "host":
"packages-12-west.internal.npmjs.com",
15546 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15549 "email":
"jprichardson@gmail.com",
15550 "name":
"jprichardson"
15552 "_npmVersion":
"3.8.6",
15553 "_phantomChildren": {},
15567 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15568 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15569 "_shrinkwrap": null,
15571 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15573 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15575 "dependencies": {},
15576 "description":
"Big integers.",
15577 "devDependencies": {
15578 "coveralls":
"^2.11.2",
15579 "istanbul":
"^0.3.5",
15580 "jshint":
"^2.5.1",
15582 "mochify":
"^2.1.0"
15586 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15587 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15589 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15590 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15608 "main":
"./lib/index.js",
15611 "email":
"boydb@midnightdesign.ws",
15612 "name":
"midnightlightning"
15615 "email":
"sidazhang89@gmail.com",
15616 "name":
"sidazhang"
15619 "email":
"npm@shesek.info",
15623 "email":
"jprichardson@gmail.com",
15624 "name":
"jprichardson"
15628 "optionalDependencies": {},
15629 "readme":
"ERROR: No README data found!",
15632 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15635 "browser-test":
"mochify --wd -R spec",
15636 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15637 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15638 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15639 "test":
"_mocha -- test/*.js",
15647 "safari/6.0..latest",
15648 "iphone/6.0..latest",
15649 "android-browser/4.2..latest"
15651 "files":
"test/*.js",
15657 },{}],
39:[function(require,module,exports){
15658 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15659 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15660 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15662 var Buffer = require('safe-buffer').Buffer
15664 function check (buffer) {
15665 if (buffer.length <
8) return false
15666 if (buffer.length
> 72) return false
15667 if (buffer[
0] !==
0x30) return false
15668 if (buffer[
1] !== buffer.length -
2) return false
15669 if (buffer[
2] !==
0x02) return false
15671 var lenR = buffer[
3]
15672 if (lenR ===
0) return false
15673 if (
5 + lenR
>= buffer.length) return false
15674 if (buffer[
4 + lenR] !==
0x02) return false
15676 var lenS = buffer[
5 + lenR]
15677 if (lenS ===
0) return false
15678 if ((
6 + lenR + lenS) !== buffer.length) return false
15680 if (buffer[
4] &
0x80) return false
15681 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15683 if (buffer[lenR +
6] &
0x80) return false
15684 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15688 function decode (buffer) {
15689 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15690 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15691 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15692 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15693 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15695 var lenR = buffer[
3]
15696 if (lenR ===
0) throw new Error('R length is zero')
15697 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15698 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15700 var lenS = buffer[
5 + lenR]
15701 if (lenS ===
0) throw new Error('S length is zero')
15702 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15704 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15705 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15707 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15708 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15710 // non-BIP66 - extract R, S values
15712 r: buffer.slice(
4,
4 + lenR),
15713 s: buffer.slice(
6 + lenR)
15718 * Expects r and s to be positive DER integers.
15720 * The DER format uses the most significant bit as a sign bit (&
0x80).
15721 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15736 *
62300 =
> 0x00f35c
15737 * -
62300 =
> 0xff0ca4
15739 function encode (r, s) {
15740 var lenR = r.length
15741 var lenS = s.length
15742 if (lenR ===
0) throw new Error('R length is zero')
15743 if (lenS ===
0) throw new Error('S length is zero')
15744 if (lenR
> 33) throw new Error('R length is too long')
15745 if (lenS
> 33) throw new Error('S length is too long')
15746 if (r[
0] &
0x80) throw new Error('R value is negative')
15747 if (s[
0] &
0x80) throw new Error('S value is negative')
15748 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15749 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15751 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15753 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15754 signature[
0] =
0x30
15755 signature[
1] = signature.length -
2
15756 signature[
2] =
0x02
15757 signature[
3] = r.length
15758 r.copy(signature,
4)
15759 signature[
4 + lenR] =
0x02
15760 signature[
5 + lenR] = s.length
15761 s.copy(signature,
6 + lenR)
15772 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15776 "OP_PUSHDATA1":
76,
15777 "OP_PUSHDATA2":
77,
15778 "OP_PUSHDATA4":
78,
15804 "OP_VERNOTIF":
102,
15810 "OP_TOALTSTACK":
107,
15811 "OP_FROMALTSTACK":
108,
15841 "OP_EQUALVERIFY":
136,
15842 "OP_RESERVED1":
137,
15843 "OP_RESERVED2":
138,
15852 "OP_0NOTEQUAL":
146,
15863 "OP_NUMEQUAL":
156,
15864 "OP_NUMEQUALVERIFY":
157,
15865 "OP_NUMNOTEQUAL":
158,
15866 "OP_LESSTHAN":
159,
15867 "OP_GREATERTHAN":
160,
15868 "OP_LESSTHANOREQUAL":
161,
15869 "OP_GREATERTHANOREQUAL":
162,
15875 "OP_RIPEMD160":
166,
15880 "OP_CODESEPARATOR":
171,
15881 "OP_CHECKSIG":
172,
15882 "OP_CHECKSIGVERIFY":
173,
15883 "OP_CHECKMULTISIG":
174,
15884 "OP_CHECKMULTISIGVERIFY":
175,
15888 "OP_CHECKLOCKTIMEVERIFY":
177,
15899 "OP_PUBKEYHASH":
253,
15901 "OP_INVALIDOPCODE":
255
15904 },{}],
41:[function(require,module,exports){
15905 var OPS = require('./index.json')
15908 for (var op in OPS) {
15913 module.exports = map
15915 },{
"./index.json":
40}],
42:[function(require,module,exports){
15916 var Buffer = require('safe-buffer').Buffer
15917 var bs58check = require('bs58check')
15918 var bscript = require('./script')
15919 var networks = require('./networks')
15920 var typeforce = require('typeforce')
15921 var types = require('./types')
15923 function fromBase58Check (address) {
15924 var payload = bs58check.decode(address)
15925 if (payload.length <
21) throw new TypeError(address + ' is too short')
15926 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15928 var version = payload.readUInt8(
0)
15929 var hash = payload.slice(
1)
15931 return { hash: hash, version: version }
15934 function toBase58Check (hash, version) {
15935 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15937 var payload = Buffer.allocUnsafe(
21)
15938 payload.writeUInt8(version,
0)
15939 hash.copy(payload,
1)
15941 return bs58check.encode(payload)
15944 function fromOutputScript (outputScript, network) {
15945 network = network || networks.bitcoin
15947 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15948 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15950 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15953 function toOutputScript (address, network) {
15954 network = network || networks.bitcoin
15956 var decode = fromBase58Check(address)
15957 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15958 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15960 throw new Error(address + ' has no matching Script')
15964 fromBase58Check: fromBase58Check,
15965 fromOutputScript: fromOutputScript,
15966 toBase58Check: toBase58Check,
15967 toOutputScript: toOutputScript
15970 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15971 var Buffer = require('safe-buffer').Buffer
15972 var bcrypto = require('./crypto')
15973 var fastMerkleRoot = require('merkle-lib/fastRoot')
15974 var typeforce = require('typeforce')
15975 var types = require('./types')
15976 var varuint = require('varuint-bitcoin')
15978 var Transaction = require('./transaction')
15980 function Block () {
15982 this.prevHash = null
15983 this.merkleRoot = null
15989 Block.fromBuffer = function (buffer) {
15990 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15993 function readSlice (n) {
15995 return buffer.slice(offset - n, offset)
15998 function readUInt32 () {
15999 var i = buffer.readUInt32LE(offset)
16004 function readInt32 () {
16005 var i = buffer.readInt32LE(offset)
16010 var block = new Block()
16011 block.version = readInt32()
16012 block.prevHash = readSlice(
32)
16013 block.merkleRoot = readSlice(
32)
16014 block.timestamp = readUInt32()
16015 block.bits = readUInt32()
16016 block.nonce = readUInt32()
16018 if (buffer.length ===
80) return block
16020 function readVarInt () {
16021 var vi = varuint.decode(buffer, offset)
16022 offset += varuint.decode.bytes
16026 function readTransaction () {
16027 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16028 offset += tx.byteLength()
16032 var nTransactions = readVarInt()
16033 block.transactions = []
16035 for (var i =
0; i < nTransactions; ++i) {
16036 var tx = readTransaction()
16037 block.transactions.push(tx)
16043 Block.prototype.byteLength = function (headersOnly) {
16044 if (headersOnly || !this.transactions) return
80
16046 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16047 return a + x.byteLength()
16051 Block.fromHex = function (hex) {
16052 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16055 Block.prototype.getHash = function () {
16056 return bcrypto.hash256(this.toBuffer(true))
16059 Block.prototype.getId = function () {
16060 return this.getHash().reverse().toString('hex')
16063 Block.prototype.getUTCDate = function () {
16064 var date = new Date(
0) // epoch
16065 date.setUTCSeconds(this.timestamp)
16070 // TODO: buffer, offset compatibility
16071 Block.prototype.toBuffer = function (headersOnly) {
16072 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16075 function writeSlice (slice) {
16076 slice.copy(buffer, offset)
16077 offset += slice.length
16080 function writeInt32 (i) {
16081 buffer.writeInt32LE(i, offset)
16084 function writeUInt32 (i) {
16085 buffer.writeUInt32LE(i, offset)
16089 writeInt32(this.version)
16090 writeSlice(this.prevHash)
16091 writeSlice(this.merkleRoot)
16092 writeUInt32(this.timestamp)
16093 writeUInt32(this.bits)
16094 writeUInt32(this.nonce)
16096 if (headersOnly || !this.transactions) return buffer
16098 varuint.encode(this.transactions.length, buffer, offset)
16099 offset += varuint.encode.bytes
16101 this.transactions.forEach(function (tx) {
16102 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16103 tx.toBuffer(buffer, offset)
16110 Block.prototype.toHex = function (headersOnly) {
16111 return this.toBuffer(headersOnly).toString('hex')
16114 Block.calculateTarget = function (bits) {
16115 var exponent = ((bits &
0xff000000)
>> 24) -
3
16116 var mantissa = bits &
0x007fffff
16117 var target = Buffer.alloc(
32,
0)
16118 target.writeUInt32BE(mantissa,
28 - exponent)
16122 Block.calculateMerkleRoot = function (transactions) {
16123 typeforce([{ getHash: types.Function }], transactions)
16124 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16126 var hashes = transactions.map(function (transaction) {
16127 return transaction.getHash()
16130 return fastMerkleRoot(hashes, bcrypto.hash256)
16133 Block.prototype.checkMerkleRoot = function () {
16134 if (!this.transactions) return false
16136 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16137 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16140 Block.prototype.checkProofOfWork = function () {
16141 var hash = this.getHash().reverse()
16142 var target = Block.calculateTarget(this.bits)
16144 return hash.compare(target) <=
0
16147 module.exports = Block
16149 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16150 var pushdata = require('pushdata-bitcoin')
16151 var varuint = require('varuint-bitcoin')
16153 // https://github.com/feross/buffer/blob/master/index.js#L1127
16154 function verifuint (value, max) {
16155 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16156 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16157 if (value
> max) throw new Error('RangeError: value out of range')
16158 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16161 function readUInt64LE (buffer, offset) {
16162 var a = buffer.readUInt32LE(offset)
16163 var b = buffer.readUInt32LE(offset +
4)
16166 verifuint(b + a,
0x001fffffffffffff)
16171 function writeUInt64LE (buffer, value, offset) {
16172 verifuint(value,
0x001fffffffffffff)
16174 buffer.writeInt32LE(value & -
1, offset)
16175 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16179 // TODO: remove in
4.0.0?
16180 function readVarInt (buffer, offset) {
16181 var result = varuint.decode(buffer, offset)
16185 size: varuint.decode.bytes
16189 // TODO: remove in
4.0.0?
16190 function writeVarInt (buffer, number, offset) {
16191 varuint.encode(number, buffer, offset)
16192 return varuint.encode.bytes
16196 pushDataSize: pushdata.encodingLength,
16197 readPushDataInt: pushdata.decode,
16198 readUInt64LE: readUInt64LE,
16199 readVarInt: readVarInt,
16200 varIntBuffer: varuint.encode,
16201 varIntSize: varuint.encodingLength,
16202 writePushDataInt: pushdata.encode,
16203 writeUInt64LE: writeUInt64LE,
16204 writeVarInt: writeVarInt
16207 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16208 var createHash = require('create-hash')
16210 function ripemd160 (buffer) {
16211 return createHash('rmd160').update(buffer).digest()
16214 function sha1 (buffer) {
16215 return createHash('sha1').update(buffer).digest()
16218 function sha256 (buffer) {
16219 return createHash('sha256').update(buffer).digest()
16222 function hash160 (buffer) {
16223 return ripemd160(sha256(buffer))
16226 function hash256 (buffer) {
16227 return sha256(sha256(buffer))
16233 ripemd160: ripemd160,
16238 },{"create-hash":
82}],
46:[function(require,module,exports){
16239 var Buffer = require('safe-buffer').Buffer
16240 var createHmac = require('create-hmac')
16241 var typeforce = require('typeforce')
16242 var types = require('./types')
16244 var BigInteger = require('bigi')
16245 var ECSignature = require('./ecsignature')
16247 var ZERO = Buffer.alloc(
1,
0)
16248 var ONE = Buffer.alloc(
1,
1)
16250 var ecurve = require('ecurve')
16251 var secp256k1 = ecurve.getCurveByName('secp256k1')
16253 // https://tools.ietf.org/html/rfc6979#section-
3.2
16254 function deterministicGenerateK (hash, x, checkSig) {
16255 typeforce(types.tuple(
16257 types.Buffer256bit,
16261 // Step A, ignored as hash already provided
16264 var k = Buffer.alloc(
32,
0)
16265 var v = Buffer.alloc(
32,
1)
16268 k = createHmac('sha256', k)
16276 v = createHmac('sha256', k).update(v).digest()
16279 k = createHmac('sha256', k)
16287 v = createHmac('sha256', k).update(v).digest()
16289 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16291 v = createHmac('sha256', k).update(v).digest()
16293 var T = BigInteger.fromBuffer(v)
16295 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16296 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16297 k = createHmac('sha256', k)
16302 v = createHmac('sha256', k).update(v).digest()
16304 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16306 v = createHmac('sha256', k).update(v).digest()
16307 T = BigInteger.fromBuffer(v)
16313 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16315 function sign (hash, d) {
16316 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16318 var x = d.toBuffer(
32)
16319 var e = BigInteger.fromBuffer(hash)
16320 var n = secp256k1.n
16321 var G = secp256k1.G
16324 deterministicGenerateK(hash, x, function (k) {
16325 var Q = G.multiply(k)
16327 if (secp256k1.isInfinity(Q)) return false
16329 r = Q.affineX.mod(n)
16330 if (r.signum() ===
0) return false
16332 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16333 if (s.signum() ===
0) return false
16338 // enforce low S values, see bip62: 'low s values in signatures'
16339 if (s.compareTo(N_OVER_TWO)
> 0) {
16343 return new ECSignature(r, s)
16346 function verify (hash, signature, Q) {
16347 typeforce(types.tuple(
16353 var n = secp256k1.n
16354 var G = secp256k1.G
16356 var r = signature.r
16357 var s = signature.s
16359 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16360 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16361 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16363 //
1.4.2 H = Hash(M), already done by the user
16365 var e = BigInteger.fromBuffer(hash)
16368 var sInv = s.modInverse(n)
16370 //
1.4.4 Compute u1 = es^−
1 mod n
16371 // u2 = rs^−
1 mod n
16372 var u1 = e.multiply(sInv).mod(n)
16373 var u2 = r.multiply(sInv).mod(n)
16375 //
1.4.5 Compute R = (xR, yR)
16377 var R = G.multiplyTwo(u1, Q, u2)
16379 //
1.4.5 (cont.) Enforce R is not at infinity
16380 if (secp256k1.isInfinity(R)) return false
16382 //
1.4.6 Convert the field element R.x to an integer
16385 //
1.4.7 Set v = xR mod n
16388 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16393 deterministicGenerateK: deterministicGenerateK,
16401 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16402 var baddress = require('./address')
16403 var bcrypto = require('./crypto')
16404 var ecdsa = require('./ecdsa')
16405 var randomBytes = require('randombytes')
16406 var typeforce = require('typeforce')
16407 var types = require('./types')
16408 var wif = require('wif')
16410 var NETWORKS = require('./networks')
16411 var BigInteger = require('bigi')
16413 var ecurve = require('ecurve')
16414 var secp256k1 = ecdsa.__curve
16416 function ECPair (d, Q, options) {
16419 compressed: types.maybe(types.Boolean),
16420 network: types.maybe(types.Network)
16424 options = options || {}
16427 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16428 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16429 if (Q) throw new TypeError('Unexpected publicKey parameter')
16433 typeforce(types.ECPoint, Q)
16438 this.compressed = options.compressed === undefined ? true : options.compressed
16439 this.network = options.network || NETWORKS.bitcoin
16442 Object.defineProperty(ECPair.prototype, 'Q', {
16444 if (!this.__Q && this.d) {
16445 this.__Q = secp256k1.G.multiply(this.d)
16452 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16453 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16455 return new ECPair(null, Q, {
16456 compressed: Q.compressed,
16461 ECPair.fromWIF = function (string, network) {
16462 var decoded = wif.decode(string)
16463 var version = decoded.version
16465 // list of networks?
16466 if (types.Array(network)) {
16467 network = network.filter(function (x) {
16468 return version === x.wif
16471 if (!network) throw new Error('Unknown network version')
16473 // otherwise, assume a network object (or default to bitcoin)
16475 network = network || NETWORKS.bitcoin
16477 if (version !== network.wif) throw new Error('Invalid network version')
16480 var d = BigInteger.fromBuffer(decoded.privateKey)
16482 return new ECPair(d, null, {
16483 compressed: decoded.compressed,
16488 ECPair.makeRandom = function (options) {
16489 options = options || {}
16491 var rng = options.rng || randomBytes
16495 var buffer = rng(
32)
16496 typeforce(types.Buffer256bit, buffer)
16498 d = BigInteger.fromBuffer(buffer)
16499 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16501 return new ECPair(d, null, options)
16504 ECPair.prototype.getAddress = function () {
16505 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16508 ECPair.prototype.getNetwork = function () {
16509 return this.network
16512 ECPair.prototype.getPublicKeyBuffer = function () {
16513 return this.Q.getEncoded(this.compressed)
16516 ECPair.prototype.sign = function (hash) {
16517 if (!this.d) throw new Error('Missing private key')
16519 return ecdsa.sign(hash, this.d)
16522 ECPair.prototype.toWIF = function () {
16523 if (!this.d) throw new Error('Missing private key')
16525 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16528 ECPair.prototype.verify = function (hash, signature) {
16529 return ecdsa.verify(hash, signature, this.Q)
16532 module.exports = ECPair
16534 },{"./address":
42,"./crypto":
45,"./ecdsa":
46,"./networks":
51,"./types":
78,"bigi":
37,"ecurve":
89,"randombytes":
96,"typeforce":
109,"wif":
112}],
48:[function(require,module,exports){
16535 (function (Buffer){
16536 var bip66 = require('bip66')
16537 var typeforce = require('typeforce')
16538 var types = require('./types')
16540 var BigInteger = require('bigi')
16542 function ECSignature (r, s) {
16543 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16549 ECSignature.parseCompact = function (buffer) {
16550 if (buffer.length !==
65) throw new Error('Invalid signature length')
16552 var flagByte = buffer.readUInt8(
0) -
27
16553 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16555 var compressed = !!(flagByte &
4)
16556 var recoveryParam = flagByte &
3
16558 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16559 var s = BigInteger.fromBuffer(buffer.slice(
33))
16562 compressed: compressed,
16564 signature: new ECSignature(r, s)
16568 ECSignature.fromDER = function (buffer) {
16569 var decode = bip66.decode(buffer)
16570 var r = BigInteger.fromDERInteger(decode.r)
16571 var s = BigInteger.fromDERInteger(decode.s)
16573 return new ECSignature(r, s)
16576 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16577 ECSignature.parseScriptSignature = function (buffer) {
16578 var hashType = buffer.readUInt8(buffer.length -
1)
16579 var hashTypeMod = hashType & ~
0x80
16581 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16584 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16589 ECSignature.prototype.toCompact = function (i, compressed) {
16596 var buffer = Buffer.alloc(
65)
16597 buffer.writeUInt8(i,
0)
16598 this.r.toBuffer(
32).copy(buffer,
1)
16599 this.s.toBuffer(
32).copy(buffer,
33)
16604 ECSignature.prototype.toDER = function () {
16605 var r = Buffer.from(this.r.toDERInteger())
16606 var s = Buffer.from(this.s.toDERInteger())
16608 return bip66.encode(r, s)
16611 ECSignature.prototype.toScriptSignature = function (hashType) {
16612 var hashTypeMod = hashType & ~
0x80
16613 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16615 var hashTypeBuffer = Buffer.alloc(
1)
16616 hashTypeBuffer.writeUInt8(hashType,
0)
16618 return Buffer.concat([this.toDER(), hashTypeBuffer])
16621 module.exports = ECSignature
16623 }).call(this,require("buffer").Buffer)
16624 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16625 var Buffer = require('safe-buffer').Buffer
16626 var base58check = require('bs58check')
16627 var bcrypto = require('./crypto')
16628 var createHmac = require('create-hmac')
16629 var typeforce = require('typeforce')
16630 var types = require('./types')
16631 var NETWORKS = require('./networks')
16633 var BigInteger = require('bigi')
16634 var ECPair = require('./ecpair')
16636 var ecurve = require('ecurve')
16637 var curve = ecurve.getCurveByName('secp256k1')
16639 function HDNode (keyPair, chainCode) {
16640 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16642 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16644 this.keyPair = keyPair
16645 this.chainCode = chainCode
16648 this.parentFingerprint =
0x00000000
16651 HDNode.HIGHEST_BIT =
0x80000000
16653 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16655 HDNode.fromSeedBuffer = function (seed, network) {
16656 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16658 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16659 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16661 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16662 var IL = I.slice(
0,
32)
16663 var IR = I.slice(
32)
16665 // In case IL is
0 or
>= n, the master key is invalid
16666 // This is handled by the ECPair constructor
16667 var pIL = BigInteger.fromBuffer(IL)
16668 var keyPair = new ECPair(pIL, null, {
16672 return new HDNode(keyPair, IR)
16675 HDNode.fromSeedHex = function (hex, network) {
16676 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16679 HDNode.fromBase58 = function (string, networks) {
16680 var buffer = base58check.decode(string)
16681 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16683 //
4 bytes: version bytes
16684 var version = buffer.readUInt32BE(
0)
16687 // list of networks?
16688 if (Array.isArray(networks)) {
16689 network = networks.filter(function (x) {
16690 return version === x.bip32.private ||
16691 version === x.bip32.public
16694 if (!network) throw new Error('Unknown network version')
16696 // otherwise, assume a network object (or default to bitcoin)
16698 network = networks || NETWORKS.bitcoin
16701 if (version !== network.bip32.private &&
16702 version !== network.bip32.public) throw new Error('Invalid network version')
16704 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16705 var depth = buffer[
4]
16707 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16708 var parentFingerprint = buffer.readUInt32BE(
5)
16710 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16713 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16714 // This is encoded in MSB order. (
0x00000000 if master key)
16715 var index = buffer.readUInt32BE(
9)
16716 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16718 //
32 bytes: the chain code
16719 var chainCode = buffer.slice(
13,
45)
16722 //
33 bytes: private key data (
0x00 + k)
16723 if (version === network.bip32.private) {
16724 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16726 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16727 keyPair = new ECPair(d, null, { network: network })
16729 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16731 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16732 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16734 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16735 // If not, the extended public key is invalid.
16738 keyPair = new ECPair(null, Q, { network: network })
16741 var hd = new HDNode(keyPair, chainCode)
16744 hd.parentFingerprint = parentFingerprint
16749 HDNode.prototype.getAddress = function () {
16750 return this.keyPair.getAddress()
16753 HDNode.prototype.getIdentifier = function () {
16754 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16757 HDNode.prototype.getFingerprint = function () {
16758 return this.getIdentifier().slice(
0,
4)
16761 HDNode.prototype.getNetwork = function () {
16762 return this.keyPair.getNetwork()
16765 HDNode.prototype.getPublicKeyBuffer = function () {
16766 return this.keyPair.getPublicKeyBuffer()
16769 HDNode.prototype.neutered = function () {
16770 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16771 network: this.keyPair.network
16774 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16775 neutered.depth = this.depth
16776 neutered.index = this.index
16777 neutered.parentFingerprint = this.parentFingerprint
16782 HDNode.prototype.sign = function (hash) {
16783 return this.keyPair.sign(hash)
16786 HDNode.prototype.verify = function (hash, signature) {
16787 return this.keyPair.verify(hash, signature)
16790 HDNode.prototype.toBase58 = function (__isPrivate) {
16791 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16794 var network = this.keyPair.network
16795 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16796 var buffer = Buffer.allocUnsafe(
78)
16798 //
4 bytes: version bytes
16799 buffer.writeUInt32BE(version,
0)
16801 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16802 buffer.writeUInt8(this.depth,
4)
16804 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16805 buffer.writeUInt32BE(this.parentFingerprint,
5)
16807 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16808 // This is encoded in big endian. (
0x00000000 if master key)
16809 buffer.writeUInt32BE(this.index,
9)
16811 //
32 bytes: the chain code
16812 this.chainCode.copy(buffer,
13)
16814 //
33 bytes: the public key or private key data
16815 if (!this.isNeutered()) {
16816 //
0x00 + k for private keys
16817 buffer.writeUInt8(
0,
45)
16818 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16820 //
33 bytes: the public key
16822 // X9.62 encoding for public keys
16823 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16826 return base58check.encode(buffer)
16829 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16830 HDNode.prototype.derive = function (index) {
16831 typeforce(types.UInt32, index)
16833 var isHardened = index
>= HDNode.HIGHEST_BIT
16834 var data = Buffer.allocUnsafe(
37)
16838 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16840 // data =
0x00 || ser256(kpar) || ser32(index)
16842 this.keyPair.d.toBuffer(
32).copy(data,
1)
16843 data.writeUInt32BE(index,
33)
16847 // data = serP(point(kpar)) || ser32(index)
16848 // = serP(Kpar) || ser32(index)
16849 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16850 data.writeUInt32BE(index,
33)
16853 var I = createHmac('sha512', this.chainCode).update(data).digest()
16854 var IL = I.slice(
0,
32)
16855 var IR = I.slice(
32)
16857 var pIL = BigInteger.fromBuffer(IL)
16859 // In case parse256(IL)
>= n, proceed with the next value for i
16860 if (pIL.compareTo(curve.n)
>=
0) {
16861 return this.derive(index +
1)
16864 // Private parent key -
> private child key
16866 if (!this.isNeutered()) {
16867 // ki = parse256(IL) + kpar (mod n)
16868 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16870 // In case ki ==
0, proceed with the next value for i
16871 if (ki.signum() ===
0) {
16872 return this.derive(index +
1)
16875 derivedKeyPair = new ECPair(ki, null, {
16876 network: this.keyPair.network
16879 // Public parent key -
> public child key
16881 // Ki = point(parse256(IL)) + Kpar
16883 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16885 // In case Ki is the point at infinity, proceed with the next value for i
16886 if (curve.isInfinity(Ki)) {
16887 return this.derive(index +
1)
16890 derivedKeyPair = new ECPair(null, Ki, {
16891 network: this.keyPair.network
16895 var hd = new HDNode(derivedKeyPair, IR)
16896 hd.depth = this.depth +
1
16898 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16903 HDNode.prototype.deriveHardened = function (index) {
16904 typeforce(types.UInt31, index)
16906 // Only derives hardened private keys by default
16907 return this.derive(index + HDNode.HIGHEST_BIT)
16910 // Private === not neutered
16911 // Public === neutered
16912 HDNode.prototype.isNeutered = function () {
16913 return !(this.keyPair.d)
16916 HDNode.prototype.derivePath = function (path) {
16917 typeforce(types.BIP32Path, path)
16919 var splitPath = path.split('/')
16920 if (splitPath[
0] === 'm') {
16921 if (this.parentFingerprint) {
16922 throw new Error('Not a master node')
16925 splitPath = splitPath.slice(
1)
16928 return splitPath.reduce(function (prevHd, indexStr) {
16930 if (indexStr.slice(-
1) === "'") {
16931 index = parseInt(indexStr.slice(
0, -
1),
10)
16932 return prevHd.deriveHardened(index)
16934 index = parseInt(indexStr,
10)
16935 return prevHd.derive(index)
16940 module.exports = HDNode
16942 },{"./crypto":
45,"./ecpair":
47,"./networks":
51,"./types":
78,"bigi":
37,"bs58check":
80,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
50:[function(require,module,exports){
16944 Block: require('./block'),
16945 ECPair: require('./ecpair'),
16946 ECSignature: require('./ecsignature'),
16947 HDNode: require('./hdnode'),
16948 Transaction: require('./transaction'),
16949 TransactionBuilder: require('./transaction_builder'),
16951 address: require('./address'),
16952 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16953 crypto: require('./crypto'),
16954 networks: require('./networks'),
16955 opcodes: require('bitcoin-ops'),
16956 script: require('./script')
16959 },{"./address":
42,"./block":
43,"./bufferutils":
44,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./hdnode":
49,"./networks":
51,"./script":
52,"./transaction":
76,"./transaction_builder":
77,"bitcoin-ops":
40}],
51:[function(require,module,exports){
16960 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16961 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16965 messagePrefix: '\x18Bitcoin Signed Message:\n',
16967 public:
0x0488b21e,
16968 private:
0x0488ade4
16975 messagePrefix: '\x18Bitcoin Signed Message:\n',
16977 public:
0x043587cf,
16978 private:
0x04358394
16985 messagePrefix: '\x19Litecoin Signed Message:\n',
16987 public:
0x0488b21e,
16988 private:
0x0488ade4,
16995 messagePrefix: '\x19Litecoin Signed Message:\n',
16997 public:
0x019da462,
16998 private:
0x019d9cfe
17006 },{}],
52:[function(require,module,exports){
17007 var Buffer = require('safe-buffer').Buffer
17008 var bip66 = require('bip66')
17009 var pushdata = require('pushdata-bitcoin')
17010 var typeforce = require('typeforce')
17011 var types = require('./types')
17012 var scriptNumber = require('./script_number')
17014 var OPS = require('bitcoin-ops')
17015 var REVERSE_OPS = require('bitcoin-ops/map')
17016 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17018 function isOPInt (value) {
17019 return types.Number(value) &&
17020 ((value === OPS.OP_0) ||
17021 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
17022 (value === OPS.OP_1NEGATE))
17025 function isPushOnlyChunk (value) {
17026 return types.Buffer(value) || isOPInt(value)
17029 function isPushOnly (value) {
17030 return types.Array(value) && value.every(isPushOnlyChunk)
17033 function compile (chunks) {
17035 if (Buffer.isBuffer(chunks)) return chunks
17037 typeforce(types.Array, chunks)
17039 var bufferSize = chunks.reduce(function (accum, chunk) {
17041 if (Buffer.isBuffer(chunk)) {
17042 // adhere to BIP62.3, minimal push policy
17043 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17047 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17054 var buffer = Buffer.allocUnsafe(bufferSize)
17057 chunks.forEach(function (chunk) {
17059 if (Buffer.isBuffer(chunk)) {
17060 // adhere to BIP62.3, minimal push policy
17061 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17062 var opcode = OP_INT_BASE + chunk[
0]
17063 buffer.writeUInt8(opcode, offset)
17068 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17069 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17074 offset += pushdata.encode(buffer, chunk.length, offset)
17076 chunk.copy(buffer, offset)
17077 offset += chunk.length
17081 buffer.writeUInt8(chunk, offset)
17086 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17090 function decompile (buffer) {
17092 if (types.Array(buffer)) return buffer
17094 typeforce(types.Buffer, buffer)
17099 while (i < buffer.length) {
17100 var opcode = buffer[i]
17103 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17104 var d = pushdata.decode(buffer, i)
17106 // did reading a pushDataInt fail? empty script
17107 if (d === null) return []
17110 // attempt to read too much data? empty script
17111 if (i + d.number
> buffer.length) return []
17113 var data = buffer.slice(i, i + d.number)
17120 chunks.push(opcode)
17129 function toASM (chunks) {
17130 if (Buffer.isBuffer(chunks)) {
17131 chunks = decompile(chunks)
17134 return chunks.map(function (chunk) {
17136 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17139 return REVERSE_OPS[chunk]
17143 function fromASM (asm) {
17144 typeforce(types.String, asm)
17146 return compile(asm.split(' ').map(function (chunkStr) {
17148 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17149 typeforce(types.Hex, chunkStr)
17152 return Buffer.from(chunkStr, 'hex')
17156 function toStack (chunks) {
17157 chunks = decompile(chunks)
17158 typeforce(isPushOnly, chunks)
17160 return chunks.map(function (op) {
17161 if (Buffer.isBuffer(op)) return op
17162 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17164 return scriptNumber.encode(op - OP_INT_BASE)
17168 function isCanonicalPubKey (buffer) {
17169 if (!Buffer.isBuffer(buffer)) return false
17170 if (buffer.length <
33) return false
17172 switch (buffer[
0]) {
17175 return buffer.length ===
33
17177 return buffer.length ===
65
17183 function isDefinedHashType (hashType) {
17184 var hashTypeMod = hashType & ~
0x80
17186 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17187 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17190 function isCanonicalSignature (buffer) {
17191 if (!Buffer.isBuffer(buffer)) return false
17192 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17194 return bip66.check(buffer.slice(
0, -
1))
17199 decompile: decompile,
17204 number: require('./script_number'),
17206 isCanonicalPubKey: isCanonicalPubKey,
17207 isCanonicalSignature: isCanonicalSignature,
17208 isPushOnly: isPushOnly,
17209 isDefinedHashType: isDefinedHashType
17212 var templates = require('./templates')
17213 for (var key in templates) {
17214 module.exports[key] = templates[key]
17217 },{
"./script_number":
53,
"./templates":
54,
"./types":
78,
"bip66":
39,
"bitcoin-ops":
40,
"bitcoin-ops/map":
41,
"pushdata-bitcoin":
95,
"safe-buffer":
98,
"typeforce":
109}],
53:[function(require,module,exports){
17218 var Buffer = require('safe-buffer').Buffer
17220 function decode (buffer, maxLength, minimal) {
17221 maxLength = maxLength ||
4
17222 minimal = minimal === undefined ? true : minimal
17224 var length = buffer.length
17225 if (length ===
0) return
0
17226 if (length
> maxLength) throw new TypeError('Script number overflow')
17228 if ((buffer[length -
1] &
0x7f) ===
0) {
17229 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17234 if (length ===
5) {
17235 var a = buffer.readUInt32LE(
0)
17236 var b = buffer.readUInt8(
4)
17238 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17239 return (b *
0x100000000) + a
17244 //
32-bit /
24-bit /
16-bit /
8-bit
17245 for (var i =
0; i < length; ++i) {
17246 result |= buffer[i] << (
8 * i)
17249 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17253 function scriptNumSize (i) {
17254 return i
> 0x7fffffff ?
5
17262 function encode (number) {
17263 var value = Math.abs(number)
17264 var size = scriptNumSize(value)
17265 var buffer = Buffer.allocUnsafe(size)
17266 var negative = number <
0
17268 for (var i =
0; i < size; ++i) {
17269 buffer.writeUInt8(value &
0xff, i)
17273 if (buffer[size -
1] &
0x80) {
17274 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17275 } else if (negative) {
17276 buffer[size -
1] |=
0x80
17287 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17288 var decompile = require('../script').decompile
17289 var multisig = require('./multisig')
17290 var nullData = require('./nulldata')
17291 var pubKey = require('./pubkey')
17292 var pubKeyHash = require('./pubkeyhash')
17293 var scriptHash = require('./scripthash')
17294 var witnessPubKeyHash = require('./witnesspubkeyhash')
17295 var witnessScriptHash = require('./witnessscripthash')
17296 var witnessCommitment = require('./witnesscommitment')
17299 MULTISIG: 'multisig',
17300 NONSTANDARD: 'nonstandard',
17301 NULLDATA: 'nulldata',
17303 P2PKH: 'pubkeyhash',
17304 P2SH: 'scripthash',
17305 P2WPKH: 'witnesspubkeyhash',
17306 P2WSH: 'witnessscripthash',
17307 WITNESS_COMMITMENT: 'witnesscommitment'
17310 function classifyOutput (script) {
17311 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17312 if (witnessScriptHash.output.check(script)) return types.P2WSH
17313 if (pubKeyHash.output.check(script)) return types.P2PKH
17314 if (scriptHash.output.check(script)) return types.P2SH
17316 // XXX: optimization, below functions .decompile before use
17317 var chunks = decompile(script)
17318 if (multisig.output.check(chunks)) return types.MULTISIG
17319 if (pubKey.output.check(chunks)) return types.P2PK
17320 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17321 if (nullData.output.check(chunks)) return types.NULLDATA
17323 return types.NONSTANDARD
17326 function classifyInput (script, allowIncomplete) {
17327 // XXX: optimization, below functions .decompile before use
17328 var chunks = decompile(script)
17330 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17331 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17332 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17333 if (pubKey.input.check(chunks)) return types.P2PK
17335 return types.NONSTANDARD
17338 function classifyWitness (script, allowIncomplete) {
17339 // XXX: optimization, below functions .decompile before use
17340 var chunks = decompile(script)
17342 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17343 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17345 return types.NONSTANDARD
17349 classifyInput: classifyInput,
17350 classifyOutput: classifyOutput,
17351 classifyWitness: classifyWitness,
17352 multisig: multisig,
17353 nullData: nullData,
17355 pubKeyHash: pubKeyHash,
17356 scriptHash: scriptHash,
17357 witnessPubKeyHash: witnessPubKeyHash,
17358 witnessScriptHash: witnessScriptHash,
17359 witnessCommitment: witnessCommitment,
17363 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17365 input: require('./input'),
17366 output: require('./output')
17369 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17370 // OP_0 [signatures ...]
17372 var Buffer = require('safe-buffer').Buffer
17373 var bscript = require('../../script')
17374 var typeforce = require('typeforce')
17375 var OPS = require('bitcoin-ops')
17377 function partialSignature (value) {
17378 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17381 function check (script, allowIncomplete) {
17382 var chunks = bscript.decompile(script)
17383 if (chunks.length <
2) return false
17384 if (chunks[
0] !== OPS.OP_0) return false
17386 if (allowIncomplete) {
17387 return chunks.slice(
1).every(partialSignature)
17390 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17392 check.toJSON = function () { return 'multisig input' }
17394 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17396 function encodeStack (signatures, scriptPubKey) {
17397 typeforce([partialSignature], signatures)
17399 if (scriptPubKey) {
17400 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17402 if (signatures.length < scriptData.m) {
17403 throw new TypeError('Not enough signatures provided')
17406 if (signatures.length
> scriptData.pubKeys.length) {
17407 throw new TypeError('Too many signatures provided')
17411 return [].concat(EMPTY_BUFFER, signatures)
17414 function encode (signatures, scriptPubKey) {
17415 return bscript.compile(encodeStack(signatures, scriptPubKey))
17418 function decodeStack (stack, allowIncomplete) {
17419 typeforce(check, stack, allowIncomplete)
17420 return stack.slice(
1)
17423 function decode (buffer, allowIncomplete) {
17424 var stack = bscript.decompile(buffer)
17425 return decodeStack(stack, allowIncomplete)
17431 decodeStack: decodeStack,
17433 encodeStack: encodeStack
17436 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17437 // m [pubKeys ...] n OP_CHECKMULTISIG
17439 var bscript = require('../../script')
17440 var types = require('../../types')
17441 var typeforce = require('typeforce')
17442 var OPS = require('bitcoin-ops')
17443 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17445 function check (script, allowIncomplete) {
17446 var chunks = bscript.decompile(script)
17448 if (chunks.length <
4) return false
17449 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17450 if (!types.Number(chunks[
0])) return false
17451 if (!types.Number(chunks[chunks.length -
2])) return false
17452 var m = chunks[
0] - OP_INT_BASE
17453 var n = chunks[chunks.length -
2] - OP_INT_BASE
17455 if (m <=
0) return false
17456 if (n
> 16) return false
17457 if (m
> n) return false
17458 if (n !== chunks.length -
3) return false
17459 if (allowIncomplete) return true
17461 var keys = chunks.slice(
1, -
2)
17462 return keys.every(bscript.isCanonicalPubKey)
17464 check.toJSON = function () { return 'multi-sig output' }
17466 function encode (m, pubKeys) {
17469 pubKeys: [bscript.isCanonicalPubKey]
17475 var n = pubKeys.length
17476 if (n < m) throw new TypeError('Not enough pubKeys provided')
17478 return bscript.compile([].concat(
17482 OPS.OP_CHECKMULTISIG
17486 function decode (buffer, allowIncomplete) {
17487 var chunks = bscript.decompile(buffer)
17488 typeforce(check, chunks, allowIncomplete)
17491 m: chunks[
0] - OP_INT_BASE,
17492 pubKeys: chunks.slice(
1, -
2)
17502 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17503 // OP_RETURN {data}
17505 var bscript = require('../script')
17506 var types = require('../types')
17507 var typeforce = require('typeforce')
17508 var OPS = require('bitcoin-ops')
17510 function check (script) {
17511 var buffer = bscript.compile(script)
17513 return buffer.length
> 1 &&
17514 buffer[
0] === OPS.OP_RETURN
17516 check.toJSON = function () { return 'null data output' }
17518 function encode (data) {
17519 typeforce(types.Buffer, data)
17521 return bscript.compile([OPS.OP_RETURN, data])
17524 function decode (buffer) {
17525 typeforce(check, buffer)
17527 return buffer.slice(
2)
17538 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17539 arguments[
4][
55][
0].apply(exports,arguments)
17540 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17543 var bscript = require('../../script')
17544 var types = require('../../types')
17545 var typeforce = require('typeforce')
17547 function check (script) {
17548 var chunks = bscript.decompile(script)
17550 return chunks.length ===
1 &&
17551 bscript.isCanonicalSignature(chunks[
0])
17553 check.toJSON = function () { return 'pubKey input' }
17555 function encodeStack (signature) {
17556 typeforce(types.Buffer, signature)
17560 function encode (signature) {
17561 return bscript.compile(encodeStack(signature))
17564 function decodeStack (stack) {
17565 typeforce(check, stack)
17569 function decode (buffer) {
17570 var stack = bscript.decompile(buffer)
17571 return decodeStack(stack)
17577 decodeStack: decodeStack,
17579 encodeStack: encodeStack
17582 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17583 // {pubKey} OP_CHECKSIG
17585 var bscript = require('../../script')
17586 var typeforce = require('typeforce')
17587 var OPS = require('bitcoin-ops')
17589 function check (script) {
17590 var chunks = bscript.decompile(script)
17592 return chunks.length ===
2 &&
17593 bscript.isCanonicalPubKey(chunks[
0]) &&
17594 chunks[
1] === OPS.OP_CHECKSIG
17596 check.toJSON = function () { return 'pubKey output' }
17598 function encode (pubKey) {
17599 typeforce(bscript.isCanonicalPubKey, pubKey)
17601 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17604 function decode (buffer) {
17605 var chunks = bscript.decompile(buffer)
17606 typeforce(check, chunks)
17617 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17618 arguments[
4][
55][
0].apply(exports,arguments)
17619 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17620 // {signature} {pubKey}
17622 var bscript = require('../../script')
17623 var types = require('../../types')
17624 var typeforce = require('typeforce')
17626 function check (script) {
17627 var chunks = bscript.decompile(script)
17629 return chunks.length ===
2 &&
17630 bscript.isCanonicalSignature(chunks[
0]) &&
17631 bscript.isCanonicalPubKey(chunks[
1])
17633 check.toJSON = function () { return 'pubKeyHash input' }
17635 function encodeStack (signature, pubKey) {
17637 signature: types.Buffer, pubKey: types.Buffer
17639 signature: signature, pubKey: pubKey
17642 return [signature, pubKey]
17645 function encode (signature, pubKey) {
17646 return bscript.compile(encodeStack(signature, pubKey))
17649 function decodeStack (stack) {
17650 typeforce(check, stack)
17653 signature: stack[
0],
17658 function decode (buffer) {
17659 var stack = bscript.decompile(buffer)
17660 return decodeStack(stack)
17666 decodeStack: decodeStack,
17668 encodeStack: encodeStack
17671 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17672 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17674 var bscript = require('../../script')
17675 var types = require('../../types')
17676 var typeforce = require('typeforce')
17677 var OPS = require('bitcoin-ops')
17679 function check (script) {
17680 var buffer = bscript.compile(script)
17682 return buffer.length ===
25 &&
17683 buffer[
0] === OPS.OP_DUP &&
17684 buffer[
1] === OPS.OP_HASH160 &&
17685 buffer[
2] ===
0x14 &&
17686 buffer[
23] === OPS.OP_EQUALVERIFY &&
17687 buffer[
24] === OPS.OP_CHECKSIG
17689 check.toJSON = function () { return 'pubKeyHash output' }
17691 function encode (pubKeyHash) {
17692 typeforce(types.Hash160bit, pubKeyHash)
17694 return bscript.compile([
17698 OPS.OP_EQUALVERIFY,
17703 function decode (buffer) {
17704 typeforce(check, buffer)
17706 return buffer.slice(
3,
23)
17715 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17716 arguments[
4][
55][
0].apply(exports,arguments)
17717 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17718 //
<scriptSig> {serialized scriptPubKey script}
17720 var Buffer = require('safe-buffer').Buffer
17721 var bscript = require('../../script')
17722 var typeforce = require('typeforce')
17724 function check (script, allowIncomplete) {
17725 var chunks = bscript.decompile(script)
17726 if (chunks.length <
1) return false
17728 var lastChunk = chunks[chunks.length -
1]
17729 if (!Buffer.isBuffer(lastChunk)) return false
17731 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17732 var redeemScriptChunks = bscript.decompile(lastChunk)
17734 // is redeemScript a valid script?
17735 if (redeemScriptChunks.length ===
0) return false
17737 // is redeemScriptSig push only?
17738 if (!bscript.isPushOnly(scriptSigChunks)) return false
17740 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17741 var outputType = bscript.classifyOutput(redeemScriptChunks)
17742 if (chunks.length ===
1) {
17743 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17745 return inputType === outputType
17747 check.toJSON = function () { return 'scriptHash input' }
17749 function encodeStack (redeemScriptStack, redeemScript) {
17750 var serializedScriptPubKey = bscript.compile(redeemScript)
17752 return [].concat(redeemScriptStack, serializedScriptPubKey)
17755 function encode (redeemScriptSig, redeemScript) {
17756 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17758 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17761 function decodeStack (stack) {
17762 typeforce(check, stack)
17765 redeemScriptStack: stack.slice(
0, -
1),
17766 redeemScript: stack[stack.length -
1]
17770 function decode (buffer) {
17771 var stack = bscript.decompile(buffer)
17772 var result = decodeStack(stack)
17773 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17774 delete result.redeemScriptStack
17781 decodeStack: decodeStack,
17783 encodeStack: encodeStack
17786 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17787 // OP_HASH160 {scriptHash} OP_EQUAL
17789 var bscript = require('../../script')
17790 var types = require('../../types')
17791 var typeforce = require('typeforce')
17792 var OPS = require('bitcoin-ops')
17794 function check (script) {
17795 var buffer = bscript.compile(script)
17797 return buffer.length ===
23 &&
17798 buffer[
0] === OPS.OP_HASH160 &&
17799 buffer[
1] ===
0x14 &&
17800 buffer[
22] === OPS.OP_EQUAL
17802 check.toJSON = function () { return 'scriptHash output' }
17804 function encode (scriptHash) {
17805 typeforce(types.Hash160bit, scriptHash)
17807 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17810 function decode (buffer) {
17811 typeforce(check, buffer)
17813 return buffer.slice(
2,
22)
17822 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17824 output: require('./output')
17827 },{"./output":
69}],
69:[function(require,module,exports){
17828 // OP_RETURN {aa21a9ed} {commitment}
17830 var Buffer = require('safe-buffer').Buffer
17831 var bscript = require('../../script')
17832 var types = require('../../types')
17833 var typeforce = require('typeforce')
17834 var OPS = require('bitcoin-ops')
17836 var HEADER = Buffer.from('aa21a9ed', 'hex')
17838 function check (script) {
17839 var buffer = bscript.compile(script)
17841 return buffer.length
> 37 &&
17842 buffer[
0] === OPS.OP_RETURN &&
17843 buffer[
1] ===
0x24 &&
17844 buffer.slice(
2,
6).equals(HEADER)
17847 check.toJSON = function () { return 'Witness commitment output' }
17849 function encode (commitment) {
17850 typeforce(types.Hash256bit, commitment)
17852 var buffer = Buffer.allocUnsafe(
36)
17853 HEADER.copy(buffer,
0)
17854 commitment.copy(buffer,
4)
17856 return bscript.compile([OPS.OP_RETURN, buffer])
17859 function decode (buffer) {
17860 typeforce(check, buffer)
17862 return bscript.decompile(buffer)[
1].slice(
4,
36)
17871 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17872 arguments[
4][
55][
0].apply(exports,arguments)
17873 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17874 // {signature} {pubKey}
17876 var pkh = require('../pubkeyhash/input')
17880 decodeStack: pkh.decodeStack,
17881 encodeStack: pkh.encodeStack
17884 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17885 // OP_0 {pubKeyHash}
17887 var bscript = require('../../script')
17888 var types = require('../../types')
17889 var typeforce = require('typeforce')
17890 var OPS = require('bitcoin-ops')
17892 function check (script) {
17893 var buffer = bscript.compile(script)
17895 return buffer.length ===
22 &&
17896 buffer[
0] === OPS.OP_0 &&
17899 check.toJSON = function () { return 'Witness pubKeyHash output' }
17901 function encode (pubKeyHash) {
17902 typeforce(types.Hash160bit, pubKeyHash)
17904 return bscript.compile([OPS.OP_0, pubKeyHash])
17907 function decode (buffer) {
17908 typeforce(check, buffer)
17910 return buffer.slice(
2)
17919 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17920 arguments[
4][
55][
0].apply(exports,arguments)
17921 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17922 // {signature} {pubKey}
17924 var p2sh = require('../scripthash/input')
17928 decodeStack: p2sh.decodeStack,
17929 encodeStack: p2sh.encodeStack
17932 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17933 // OP_0 {scriptHash}
17935 var bscript = require('../../script')
17936 var types = require('../../types')
17937 var typeforce = require('typeforce')
17938 var OPS = require('bitcoin-ops')
17940 function check (script) {
17941 var buffer = bscript.compile(script)
17943 return buffer.length ===
34 &&
17944 buffer[
0] === OPS.OP_0 &&
17947 check.toJSON = function () { return 'Witness scriptHash output' }
17949 function encode (scriptHash) {
17950 typeforce(types.Hash256bit, scriptHash)
17952 return bscript.compile([OPS.OP_0, scriptHash])
17955 function decode (buffer) {
17956 typeforce(check, buffer)
17958 return buffer.slice(
2)
17967 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17968 var Buffer = require('safe-buffer').Buffer
17969 var bcrypto = require('./crypto')
17970 var bscript = require('./script')
17971 var bufferutils = require('./bufferutils')
17972 var opcodes = require('bitcoin-ops')
17973 var typeforce = require('typeforce')
17974 var types = require('./types')
17975 var varuint = require('varuint-bitcoin')
17977 function varSliceSize (someScript) {
17978 var length = someScript.length
17980 return varuint.encodingLength(length) + length
17983 function vectorSize (someVector) {
17984 var length = someVector.length
17986 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17987 return sum + varSliceSize(witness)
17991 function Transaction () {
17998 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17999 Transaction.SIGHASH_ALL =
0x01
18000 Transaction.SIGHASH_NONE =
0x02
18001 Transaction.SIGHASH_SINGLE =
0x03
18002 Transaction.SIGHASH_ANYONECANPAY =
0x80
18003 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
18004 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
18006 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
18007 var EMPTY_WITNESS = []
18008 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
18009 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
18010 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
18011 var BLANK_OUTPUT = {
18012 script: EMPTY_SCRIPT,
18013 valueBuffer: VALUE_UINT64_MAX
18016 Transaction.fromBuffer = function (buffer, __noStrict) {
18018 function readSlice (n) {
18020 return buffer.slice(offset - n, offset)
18023 function readUInt32 () {
18024 var i = buffer.readUInt32LE(offset)
18029 function readInt32 () {
18030 var i = buffer.readInt32LE(offset)
18035 function readUInt64 () {
18036 var i = bufferutils.readUInt64LE(buffer, offset)
18041 function readVarInt () {
18042 var vi = varuint.decode(buffer, offset)
18043 offset += varuint.decode.bytes
18047 function readVarSlice () {
18048 return readSlice(readVarInt())
18051 function readVector () {
18052 var count = readVarInt()
18054 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18058 var tx = new Transaction()
18059 tx.version = readInt32()
18061 var marker = buffer.readUInt8(offset)
18062 var flag = buffer.readUInt8(offset +
1)
18064 var hasWitnesses = false
18065 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18066 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18068 hasWitnesses = true
18071 var vinLen = readVarInt()
18072 for (var i =
0; i < vinLen; ++i) {
18074 hash: readSlice(
32),
18075 index: readUInt32(),
18076 script: readVarSlice(),
18077 sequence: readUInt32(),
18078 witness: EMPTY_WITNESS
18082 var voutLen = readVarInt()
18083 for (i =
0; i < voutLen; ++i) {
18085 value: readUInt64(),
18086 script: readVarSlice()
18090 if (hasWitnesses) {
18091 for (i =
0; i < vinLen; ++i) {
18092 tx.ins[i].witness = readVector()
18095 // was this pointless?
18096 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18099 tx.locktime = readUInt32()
18101 if (__noStrict) return tx
18102 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18107 Transaction.fromHex = function (hex) {
18108 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18111 Transaction.isCoinbaseHash = function (buffer) {
18112 typeforce(types.Hash256bit, buffer)
18113 for (var i =
0; i <
32; ++i) {
18114 if (buffer[i] !==
0) return false
18119 Transaction.prototype.isCoinbase = function () {
18120 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18123 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18124 typeforce(types.tuple(
18127 types.maybe(types.UInt32),
18128 types.maybe(types.Buffer)
18131 if (types.Null(sequence)) {
18132 sequence = Transaction.DEFAULT_SEQUENCE
18135 // Add the input and return the input's index
18136 return (this.ins.push({
18139 script: scriptSig || EMPTY_SCRIPT,
18140 sequence: sequence,
18141 witness: EMPTY_WITNESS
18145 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18146 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18148 // Add the output and return the output's index
18149 return (this.outs.push({
18150 script: scriptPubKey,
18155 Transaction.prototype.hasWitnesses = function () {
18156 return this.ins.some(function (x) {
18157 return x.witness.length !==
0
18161 Transaction.prototype.weight = function () {
18162 var base = this.__byteLength(false)
18163 var total = this.__byteLength(true)
18164 return base *
3 + total
18167 Transaction.prototype.virtualSize = function () {
18168 return Math.ceil(this.weight() /
4)
18171 Transaction.prototype.byteLength = function () {
18172 return this.__byteLength(true)
18175 Transaction.prototype.__byteLength = function (__allowWitness) {
18176 var hasWitnesses = __allowWitness && this.hasWitnesses()
18179 (hasWitnesses ?
10 :
8) +
18180 varuint.encodingLength(this.ins.length) +
18181 varuint.encodingLength(this.outs.length) +
18182 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18183 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18184 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18188 Transaction.prototype.clone = function () {
18189 var newTx = new Transaction()
18190 newTx.version = this.version
18191 newTx.locktime = this.locktime
18193 newTx.ins = this.ins.map(function (txIn) {
18197 script: txIn.script,
18198 sequence: txIn.sequence,
18199 witness: txIn.witness
18203 newTx.outs = this.outs.map(function (txOut) {
18205 script: txOut.script,
18214 * Hash transaction for signing a specific input.
18216 * Bitcoin uses a different hash for each signed transaction input.
18217 * This method copies the transaction, makes the necessary changes based on the
18218 * hashType, and then hashes the result.
18219 * This hash can then be used to sign the provided transaction input.
18221 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18222 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18224 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18225 if (inIndex
>= this.ins.length) return ONE
18227 // ignore OP_CODESEPARATOR
18228 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18229 return x !== opcodes.OP_CODESEPARATOR
18232 var txTmp = this.clone()
18234 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18235 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18238 // ignore sequence numbers (except at inIndex)
18239 txTmp.ins.forEach(function (input, i) {
18240 if (i === inIndex) return
18245 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18246 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18247 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18248 if (inIndex
>= this.outs.length) return ONE
18250 // truncate outputs after
18251 txTmp.outs.length = inIndex +
1
18253 // "blank" outputs before
18254 for (var i =
0; i < inIndex; i++) {
18255 txTmp.outs[i] = BLANK_OUTPUT
18258 // ignore sequence numbers (except at inIndex)
18259 txTmp.ins.forEach(function (input, y) {
18260 if (y === inIndex) return
18266 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18267 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18268 txTmp.ins = [txTmp.ins[inIndex]]
18269 txTmp.ins[
0].script = ourScript
18271 // SIGHASH_ALL: only ignore input scripts
18273 // "blank" others input scripts
18274 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18275 txTmp.ins[inIndex].script = ourScript
18278 // serialize and hash
18279 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18280 buffer.writeInt32LE(hashType, buffer.length -
4)
18281 txTmp.__toBuffer(buffer,
0, false)
18283 return bcrypto.hash256(buffer)
18286 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18287 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18289 var tbuffer, toffset
18290 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18291 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18292 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18293 function writeVarInt (i) {
18294 varuint.encode(i, tbuffer, toffset)
18295 toffset += varuint.encode.bytes
18297 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18299 var hashOutputs = ZERO
18300 var hashPrevouts = ZERO
18301 var hashSequence = ZERO
18303 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18304 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18307 this.ins.forEach(function (txIn) {
18308 writeSlice(txIn.hash)
18309 writeUInt32(txIn.index)
18312 hashPrevouts = bcrypto.hash256(tbuffer)
18315 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18316 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18317 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18318 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18321 this.ins.forEach(function (txIn) {
18322 writeUInt32(txIn.sequence)
18325 hashSequence = bcrypto.hash256(tbuffer)
18328 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18329 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18330 var txOutsSize = this.outs.reduce(function (sum, output) {
18331 return sum +
8 + varSliceSize(output.script)
18334 tbuffer = Buffer.allocUnsafe(txOutsSize)
18337 this.outs.forEach(function (out) {
18338 writeUInt64(out.value)
18339 writeVarSlice(out.script)
18342 hashOutputs = bcrypto.hash256(tbuffer)
18343 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18344 var output = this.outs[inIndex]
18346 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18348 writeUInt64(output.value)
18349 writeVarSlice(output.script)
18351 hashOutputs = bcrypto.hash256(tbuffer)
18354 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18357 var input = this.ins[inIndex]
18358 writeUInt32(this.version)
18359 writeSlice(hashPrevouts)
18360 writeSlice(hashSequence)
18361 writeSlice(input.hash)
18362 writeUInt32(input.index)
18363 writeVarSlice(prevOutScript)
18365 writeUInt32(input.sequence)
18366 writeSlice(hashOutputs)
18367 writeUInt32(this.locktime)
18368 writeUInt32(hashType)
18369 return bcrypto.hash256(tbuffer)
18372 Transaction.prototype.getHash = function () {
18373 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18376 Transaction.prototype.getId = function () {
18377 // transaction hash's are displayed in reverse order
18378 return this.getHash().reverse().toString('hex')
18381 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18382 return this.__toBuffer(buffer, initialOffset, true)
18385 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18386 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18388 var offset = initialOffset ||
0
18389 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18390 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18391 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18392 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18393 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18394 function writeVarInt (i) {
18395 varuint.encode(i, buffer, offset)
18396 offset += varuint.encode.bytes
18398 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18399 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18401 writeInt32(this.version)
18403 var hasWitnesses = __allowWitness && this.hasWitnesses()
18405 if (hasWitnesses) {
18406 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18407 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18410 writeVarInt(this.ins.length)
18412 this.ins.forEach(function (txIn) {
18413 writeSlice(txIn.hash)
18414 writeUInt32(txIn.index)
18415 writeVarSlice(txIn.script)
18416 writeUInt32(txIn.sequence)
18419 writeVarInt(this.outs.length)
18420 this.outs.forEach(function (txOut) {
18421 if (!txOut.valueBuffer) {
18422 writeUInt64(txOut.value)
18424 writeSlice(txOut.valueBuffer)
18427 writeVarSlice(txOut.script)
18430 if (hasWitnesses) {
18431 this.ins.forEach(function (input) {
18432 writeVector(input.witness)
18436 writeUInt32(this.locktime)
18438 // avoid slicing unless necessary
18439 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18443 Transaction.prototype.toHex = function () {
18444 return this.toBuffer().toString('hex')
18447 Transaction.prototype.setInputScript = function (index, scriptSig) {
18448 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18450 this.ins[index].script = scriptSig
18453 Transaction.prototype.setWitness = function (index, witness) {
18454 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18456 this.ins[index].witness = witness
18459 module.exports = Transaction
18461 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18462 var Buffer = require('safe-buffer').Buffer
18463 var baddress = require('./address')
18464 var bcrypto = require('./crypto')
18465 var bscript = require('./script')
18466 var networks = require('./networks')
18467 var ops = require('bitcoin-ops')
18468 var typeforce = require('typeforce')
18469 var types = require('./types')
18470 var scriptTypes = bscript.types
18471 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18472 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18474 var ECPair = require('./ecpair')
18475 var ECSignature = require('./ecsignature')
18476 var Transaction = require('./transaction')
18478 function extractChunks (type, chunks, script) {
18480 var signatures = []
18482 case scriptTypes.P2PKH:
18483 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18484 pubKeys = chunks.slice(
1)
18485 signatures = chunks.slice(
0,
1)
18488 case scriptTypes.P2PK:
18489 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18490 signatures = chunks.slice(
0,
1)
18493 case scriptTypes.MULTISIG:
18495 var multisig = bscript.multisig.output.decode(script)
18496 pubKeys = multisig.pubKeys
18499 signatures = chunks.slice(
1).map(function (chunk) {
18500 return chunk.length ===
0 ? undefined : chunk
18507 signatures: signatures
18510 function expandInput (scriptSig, witnessStack) {
18511 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18519 var witnessScriptType
18520 var redeemScriptType
18521 var witness = false
18527 var scriptSigChunks = bscript.decompile(scriptSig)
18528 var sigType = bscript.classifyInput(scriptSigChunks, true)
18529 if (sigType === scriptTypes.P2SH) {
18531 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18532 redeemScriptType = bscript.classifyOutput(redeemScript)
18533 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18534 prevOutType = scriptTypes.P2SH
18535 script = redeemScript
18538 var classifyWitness = bscript.classifyWitness(witnessStack)
18539 if (classifyWitness === scriptTypes.P2WSH) {
18540 witnessScript = witnessStack[witnessStack.length -
1]
18541 witnessScriptType = bscript.classifyOutput(witnessScript)
18543 if (scriptSig.length ===
0) {
18544 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18545 prevOutType = scriptTypes.P2WSH
18546 if (typeof redeemScript !== 'undefined') {
18547 throw new Error('Redeem script given when unnecessary')
18551 if (!redeemScript) {
18552 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18554 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18555 if (!redeemScript.equals(witnessProgram)) {
18556 throw new Error('Redeem script didn\'t match witnessScript')
18560 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18561 throw new Error('unsupported witness script')
18563 script = witnessScript
18564 scriptType = witnessScriptType
18565 chunks = witnessStack.slice(
0, -
1)
18566 } else if (classifyWitness === scriptTypes.P2WPKH) {
18567 var key = witnessStack[witnessStack.length -
1]
18568 var keyHash = bcrypto.hash160(key)
18569 if (scriptSig.length ===
0) {
18570 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18571 prevOutType = scriptTypes.P2WPKH
18572 if (typeof redeemScript !== 'undefined') {
18573 throw new Error('Redeem script given when unnecessary')
18576 if (!redeemScript) {
18577 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18579 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18580 if (!redeemScript.equals(witnessProgram)) {
18581 throw new Error('Redeem script did not have the right witness program')
18585 scriptType = scriptTypes.P2PKH
18586 chunks = witnessStack
18587 } else if (redeemScript) {
18588 if (P2SH.indexOf(redeemScriptType) === -
1) {
18589 throw new Error('Bad redeemscript!')
18592 script = redeemScript
18593 scriptType = redeemScriptType
18594 chunks = scriptSigChunks.slice(
0, -
1)
18596 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18597 chunks = scriptSigChunks
18600 var expanded = extractChunks(scriptType, chunks, script)
18603 pubKeys: expanded.pubKeys,
18604 signatures: expanded.signatures,
18605 prevOutScript: prevOutScript,
18606 prevOutType: prevOutType,
18607 signType: scriptType,
18608 signScript: script,
18609 witness: Boolean(witness)
18613 result.redeemScript = redeemScript
18614 result.redeemScriptType = redeemScriptType
18618 result.witnessScript = witnessScript
18619 result.witnessScriptType = witnessScriptType
18625 // could be done in expandInput, but requires the original Transaction for hashForSignature
18626 function fixMultisigOrder (input, transaction, vin) {
18627 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18628 if (input.pubKeys.length === input.signatures.length) return
18630 var unmatched = input.signatures.concat()
18632 input.signatures = input.pubKeys.map(function (pubKey) {
18633 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18636 // check for a signature
18637 unmatched.some(function (signature, i) {
18638 // skip if undefined || OP_0
18639 if (!signature) return false
18641 // TODO: avoid O(n) hashForSignature
18642 var parsed = ECSignature.parseScriptSignature(signature)
18643 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18645 // skip if signature does not match pubKey
18646 if (!keyPair.verify(hash, parsed.signature)) return false
18648 // remove matched signature from unmatched
18649 unmatched[i] = undefined
18659 function expandOutput (script, scriptType, ourPubKey) {
18660 typeforce(types.Buffer, script)
18662 var scriptChunks = bscript.decompile(script)
18664 scriptType = bscript.classifyOutput(script)
18669 switch (scriptType) {
18670 // does our hash160(pubKey) match the output scripts?
18671 case scriptTypes.P2PKH:
18672 if (!ourPubKey) break
18674 var pkh1 = scriptChunks[
2]
18675 var pkh2 = bcrypto.hash160(ourPubKey)
18676 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18679 // does our hash160(pubKey) match the output scripts?
18680 case scriptTypes.P2WPKH:
18681 if (!ourPubKey) break
18683 var wpkh1 = scriptChunks[
1]
18684 var wpkh2 = bcrypto.hash160(ourPubKey)
18685 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18688 case scriptTypes.P2PK:
18689 pubKeys = scriptChunks.slice(
0,
1)
18692 case scriptTypes.MULTISIG:
18693 pubKeys = scriptChunks.slice(
1, -
2)
18696 default: return { scriptType: scriptType }
18701 scriptType: scriptType,
18702 signatures: pubKeys.map(function () { return undefined })
18706 function checkP2shInput (input, redeemScriptHash) {
18707 if (input.prevOutType) {
18708 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18710 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18711 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18715 function checkP2WSHInput (input, witnessScriptHash) {
18716 if (input.prevOutType) {
18717 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18719 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18720 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18724 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18731 var redeemScriptHash
18733 var witness = false
18736 var witnessScriptHash
18741 if (redeemScript && witnessScript) {
18742 redeemScriptHash = bcrypto.hash160(redeemScript)
18743 witnessScriptHash = bcrypto.sha256(witnessScript)
18744 checkP2shInput(input, redeemScriptHash)
18746 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18748 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18749 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18750 prevOutType = bscript.types.P2SH
18751 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18752 p2sh = witness = p2wsh = true
18753 p2shType = bscript.types.P2WSH
18754 signType = witnessType = expanded.scriptType
18755 signScript = witnessScript
18756 } else if (redeemScript) {
18757 redeemScriptHash = bcrypto.hash160(redeemScript)
18758 checkP2shInput(input, redeemScriptHash)
18760 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18761 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18763 prevOutType = bscript.types.P2SH
18764 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18766 signType = p2shType = expanded.scriptType
18767 signScript = redeemScript
18768 witness = signType === bscript.types.P2WPKH
18769 } else if (witnessScript) {
18770 witnessScriptHash = bcrypto.sha256(witnessScript)
18771 checkP2WSHInput(input, witnessScriptHash)
18773 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18774 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18776 prevOutType = bscript.types.P2WSH
18777 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18778 witness = p2wsh = true
18779 signType = witnessType = expanded.scriptType
18780 signScript = witnessScript
18781 } else if (input.prevOutType) {
18782 // embedded scripts are not possible without a redeemScript
18783 if (input.prevOutType === scriptTypes.P2SH ||
18784 input.prevOutType === scriptTypes.P2WSH) {
18785 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18788 prevOutType = input.prevOutType
18789 prevOutScript = input.prevOutScript
18790 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18791 if (!expanded.pubKeys) return
18793 witness = (input.prevOutType === scriptTypes.P2WPKH)
18794 signType = prevOutType
18795 signScript = prevOutScript
18797 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18798 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18799 prevOutType = scriptTypes.P2PKH
18801 signType = prevOutType
18802 signScript = prevOutScript
18805 if (witness && !types.Satoshi(witnessValue)) {
18806 throw new Error('Input was witness but not given witness value')
18809 if (signType === scriptTypes.P2WPKH) {
18810 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18814 input.redeemScript = redeemScript
18815 input.redeemScriptType = p2shType
18819 input.witnessScript = witnessScript
18820 input.witnessScriptType = witnessType
18823 input.pubKeys = expanded.pubKeys
18824 input.signatures = expanded.signatures
18825 input.signScript = signScript
18826 input.signType = signType
18827 input.prevOutScript = prevOutScript
18828 input.prevOutType = prevOutType
18829 input.witness = witness
18832 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18833 if (type === scriptTypes.P2PKH) {
18834 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18835 } else if (type === scriptTypes.P2PK) {
18836 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18837 } else if (type === scriptTypes.MULTISIG) {
18838 if (signatures.length
> 0) {
18839 signatures = signatures.map(function (signature) {
18840 return signature || ops.OP_0
18842 if (!allowIncomplete) {
18843 // remove blank signatures
18844 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18847 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18850 throw new Error('Not yet supported')
18853 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18858 function buildInput (input, allowIncomplete) {
18859 var scriptType = input.prevOutType
18862 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18863 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18867 if (scriptType === bscript.types.P2SH) {
18868 // We can remove this error later when we have a guarantee prepareInput
18869 // rejects unsignable scripts - it MUST be signable at this point.
18870 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18871 throw new Error('Impossible to sign this type')
18874 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18875 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18877 // If it wasn't SIGNABLE, it's witness, defer to that
18878 scriptType = input.redeemScriptType
18881 if (scriptType === bscript.types.P2WPKH) {
18882 // P2WPKH is a special case of P2PKH
18883 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18884 } else if (scriptType === bscript.types.P2WSH) {
18885 // We can remove this check later
18886 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18887 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18888 witness.push(input.witnessScript)
18890 // We can remove this error later when we have a guarantee prepareInput
18891 // rejects unsignble scripts - it MUST be signable at this point.
18895 scriptType = input.witnessScriptType
18898 // append redeemScript if necessary
18900 sig.push(input.redeemScript)
18905 script: bscript.compile(sig),
18910 function TransactionBuilder (network, maximumFeeRate) {
18911 this.prevTxMap = {}
18912 this.network = network || networks.bitcoin
18914 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18915 this.maximumFeeRate = maximumFeeRate ||
1000
18918 this.tx = new Transaction()
18921 TransactionBuilder.prototype.setLockTime = function (locktime) {
18922 typeforce(types.UInt32, locktime)
18924 // if any signatures exist, throw
18925 if (this.inputs.some(function (input) {
18926 if (!input.signatures) return false
18928 return input.signatures.some(function (s) { return s })
18930 throw new Error('No, this would invalidate signatures')
18933 this.tx.locktime = locktime
18936 TransactionBuilder.prototype.setVersion = function (version) {
18937 typeforce(types.UInt32, version)
18939 // XXX: this might eventually become more complex depending on what the versions represent
18940 this.tx.version = version
18943 TransactionBuilder.fromTransaction = function (transaction, network) {
18944 var txb = new TransactionBuilder(network)
18946 // Copy transaction fields
18947 txb.setVersion(transaction.version)
18948 txb.setLockTime(transaction.locktime)
18950 // Copy outputs (done first to avoid signature invalidation)
18951 transaction.outs.forEach(function (txOut) {
18952 txb.addOutput(txOut.script, txOut.value)
18956 transaction.ins.forEach(function (txIn) {
18957 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18958 sequence: txIn.sequence,
18959 script: txIn.script,
18960 witness: txIn.witness
18964 // fix some things not possible through the public API
18965 txb.inputs.forEach(function (input, i) {
18966 fixMultisigOrder(input, transaction, i)
18972 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18973 if (!this.__canModifyInputs()) {
18974 throw new Error('No, this would invalidate signatures')
18979 // is it a hex string?
18980 if (typeof txHash === 'string') {
18981 // transaction hashs's are displayed in reverse order, un-reverse it
18982 txHash = Buffer.from(txHash, 'hex').reverse()
18984 // is it a Transaction object?
18985 } else if (txHash instanceof Transaction) {
18986 var txOut = txHash.outs[vout]
18987 prevOutScript = txOut.script
18988 value = txOut.value
18990 txHash = txHash.getHash()
18993 return this.__addInputUnsafe(txHash, vout, {
18994 sequence: sequence,
18995 prevOutScript: prevOutScript,
19000 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
19001 if (Transaction.isCoinbaseHash(txHash)) {
19002 throw new Error('coinbase inputs not supported')
19005 var prevTxOut = txHash.toString('hex') + ':' + vout
19006 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
19010 // derive what we can from the scriptSig
19011 if (options.script !== undefined) {
19012 input = expandInput(options.script, options.witness || [])
19015 // if an input value was given, retain it
19016 if (options.value !== undefined) {
19017 input.value = options.value
19020 // derive what we can from the previous transactions output script
19021 if (!input.prevOutScript && options.prevOutScript) {
19024 if (!input.pubKeys && !input.signatures) {
19025 var expanded = expandOutput(options.prevOutScript)
19027 if (expanded.pubKeys) {
19028 input.pubKeys = expanded.pubKeys
19029 input.signatures = expanded.signatures
19032 prevOutType = expanded.scriptType
19035 input.prevOutScript = options.prevOutScript
19036 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
19039 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19040 this.inputs[vin] = input
19041 this.prevTxMap[prevTxOut] = vin
19046 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19047 if (!this.__canModifyOutputs()) {
19048 throw new Error('No, this would invalidate signatures')
19051 // Attempt to get a script if it's a base58 address string
19052 if (typeof scriptPubKey === 'string') {
19053 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19056 return this.tx.addOutput(scriptPubKey, value)
19059 TransactionBuilder.prototype.build = function () {
19060 return this.__build(false)
19062 TransactionBuilder.prototype.buildIncomplete = function () {
19063 return this.__build(true)
19066 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19067 if (!allowIncomplete) {
19068 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19069 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19072 var tx = this.tx.clone()
19073 // Create script signatures from inputs
19074 this.inputs.forEach(function (input, i) {
19075 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19076 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19077 var result = buildInput(input, allowIncomplete)
19079 // skip if no result
19080 if (!allowIncomplete) {
19081 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19082 throw new Error(result.type + ' not supported')
19086 tx.setInputScript(i, result.script)
19087 tx.setWitness(i, result.witness)
19090 if (!allowIncomplete) {
19091 // do not rely on this, its merely a last resort
19092 if (this.__overMaximumFees(tx.byteLength())) {
19093 throw new Error('Transaction has absurd fees')
19100 function canSign (input) {
19101 return input.prevOutScript !== undefined &&
19102 input.signScript !== undefined &&
19103 input.pubKeys !== undefined &&
19104 input.signatures !== undefined &&
19105 input.signatures.length === input.pubKeys.length &&
19106 input.pubKeys.length
> 0 &&
19107 input.witness !== undefined
19110 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19111 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19112 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19113 hashType = hashType || Transaction.SIGHASH_ALL
19115 var input = this.inputs[vin]
19117 // if redeemScript was previously provided, enforce consistency
19118 if (input.redeemScript !== undefined &&
19120 !input.redeemScript.equals(redeemScript)) {
19121 throw new Error('Inconsistent redeemScript')
19124 var kpPubKey = keyPair.getPublicKeyBuffer()
19125 if (!canSign(input)) {
19126 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19127 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19132 if (input.witness) {
19133 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19135 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19137 // enforce in order signing of public keys
19138 var signed = input.pubKeys.some(function (pubKey, i) {
19139 if (!kpPubKey.equals(pubKey)) return false
19140 if (input.signatures[i]) throw new Error('Signature already exists')
19142 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19146 if (!signed) throw new Error('Key pair cannot sign for this input')
19149 function signatureHashType (buffer) {
19150 return buffer.readUInt8(buffer.length -
1)
19153 TransactionBuilder.prototype.__canModifyInputs = function () {
19154 return this.inputs.every(function (input) {
19156 if (input.signatures === undefined) return true
19158 return input.signatures.every(function (signature) {
19159 if (!signature) return true
19160 var hashType = signatureHashType(signature)
19162 // if SIGHASH_ANYONECANPAY is set, signatures would not
19163 // be invalidated by more inputs
19164 return hashType & Transaction.SIGHASH_ANYONECANPAY
19169 TransactionBuilder.prototype.__canModifyOutputs = function () {
19170 var nInputs = this.tx.ins.length
19171 var nOutputs = this.tx.outs.length
19173 return this.inputs.every(function (input) {
19174 if (input.signatures === undefined) return true
19176 return input.signatures.every(function (signature) {
19177 if (!signature) return true
19178 var hashType = signatureHashType(signature)
19180 var hashTypeMod = hashType &
0x1f
19181 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19182 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19183 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19184 // some signatures would be invalidated by the addition
19186 return nInputs <= nOutputs
19192 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19193 // not all inputs will have .value defined
19194 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19196 // but all outputs do, and if we have any input value
19197 // we can immediately determine if the outputs are too small
19198 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19199 var fee = incoming - outgoing
19200 var feeRate = fee / bytes
19202 return feeRate
> this.maximumFeeRate
19205 module.exports = TransactionBuilder
19207 },{"./address":
42,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./networks":
51,"./script":
52,"./transaction":
76,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
78:[function(require,module,exports){
19208 var typeforce = require('typeforce')
19210 var UINT31_MAX = Math.pow(
2,
31) -
1
19211 function UInt31 (value) {
19212 return typeforce.UInt32(value) && value <= UINT31_MAX
19215 function BIP32Path (value) {
19216 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19218 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19220 var SATOSHI_MAX =
21 *
1e14
19221 function Satoshi (value) {
19222 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19225 // external dependent types
19226 var BigInt = typeforce.quacksLike('BigInteger')
19227 var ECPoint = typeforce.quacksLike('Point')
19229 // exposed, external API
19230 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19231 var Network = typeforce.compile({
19232 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19234 public: typeforce.UInt32,
19235 private: typeforce.UInt32
19237 pubKeyHash: typeforce.UInt8,
19238 scriptHash: typeforce.UInt8,
19239 wif: typeforce.UInt8
19242 // extend typeforce types with ours
19245 BIP32Path: BIP32Path,
19246 Buffer256bit: typeforce.BufferN(
32),
19248 ECSignature: ECSignature,
19249 Hash160bit: typeforce.BufferN(
20),
19250 Hash256bit: typeforce.BufferN(
32),
19256 for (var typeName in typeforce) {
19257 types[typeName] = typeforce[typeName]
19260 module.exports = types
19262 },{"typeforce":
109}],
79:[function(require,module,exports){
19263 var basex = require('base-x')
19264 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19266 module.exports = basex(ALPHABET)
19268 },{"base-x":
34}],
80:[function(require,module,exports){
19269 (function (Buffer){
19272 var base58 = require('bs58')
19273 var createHash = require('create-hash')
19275 // SHA256(SHA256(buffer))
19276 function sha256x2 (buffer) {
19277 var tmp = createHash('sha256').update(buffer).digest()
19278 return createHash('sha256').update(tmp).digest()
19281 // Encode a buffer as a base58-check encoded string
19282 function encode (payload) {
19283 var checksum = sha256x2(payload)
19285 return base58.encode(Buffer.concat([
19288 ], payload.length +
4))
19291 function decodeRaw (buffer) {
19292 var payload = buffer.slice(
0, -
4)
19293 var checksum = buffer.slice(-
4)
19294 var newChecksum = sha256x2(payload)
19296 if (checksum[
0] ^ newChecksum[
0] |
19297 checksum[
1] ^ newChecksum[
1] |
19298 checksum[
2] ^ newChecksum[
2] |
19299 checksum[
3] ^ newChecksum[
3]) return
19304 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19305 function decodeUnsafe (string) {
19306 var buffer = base58.decodeUnsafe(string)
19307 if (!buffer) return
19309 return decodeRaw(buffer)
19312 function decode (string) {
19313 var buffer = base58.decode(string)
19314 var payload = decodeRaw(buffer)
19315 if (!payload) throw new Error('Invalid checksum')
19322 decodeUnsafe: decodeUnsafe
19325 }).call(this,require("buffer").Buffer)
19326 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19327 var Buffer = require('safe-buffer').Buffer
19328 var Transform = require('stream').Transform
19329 var StringDecoder = require('string_decoder').StringDecoder
19330 var inherits = require('inherits')
19332 function CipherBase (hashMode) {
19333 Transform.call(this)
19334 this.hashMode = typeof hashMode === 'string'
19335 if (this.hashMode) {
19336 this[hashMode] = this._finalOrDigest
19338 this.final = this._finalOrDigest
19341 this.__final = this._final
19344 this._decoder = null
19345 this._encoding = null
19347 inherits(CipherBase, Transform)
19349 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19350 if (typeof data === 'string') {
19351 data = Buffer.from(data, inputEnc)
19354 var outData = this._update(data)
19355 if (this.hashMode) return this
19358 outData = this._toString(outData, outputEnc)
19364 CipherBase.prototype.setAutoPadding = function () {}
19365 CipherBase.prototype.getAuthTag = function () {
19366 throw new Error('trying to get auth tag in unsupported state')
19369 CipherBase.prototype.setAuthTag = function () {
19370 throw new Error('trying to set auth tag in unsupported state')
19373 CipherBase.prototype.setAAD = function () {
19374 throw new Error('trying to set aad in unsupported state')
19377 CipherBase.prototype._transform = function (data, _, next) {
19380 if (this.hashMode) {
19383 this.push(this._update(data))
19391 CipherBase.prototype._flush = function (done) {
19394 this.push(this.__final())
19401 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19402 var outData = this.__final() || Buffer.alloc(
0)
19404 outData = this._toString(outData, outputEnc, true)
19409 CipherBase.prototype._toString = function (value, enc, fin) {
19410 if (!this._decoder) {
19411 this._decoder = new StringDecoder(enc)
19412 this._encoding = enc
19415 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19417 var out = this._decoder.write(value)
19419 out += this._decoder.end()
19425 module.exports = CipherBase
19427 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19428 (function (Buffer){
19430 var inherits = require('inherits')
19431 var md5 = require('./md5')
19432 var RIPEMD160 = require('ripemd160')
19433 var sha = require('sha.js')
19435 var Base = require('cipher-base')
19437 function HashNoConstructor (hash) {
19438 Base.call(this, 'digest')
19444 inherits(HashNoConstructor, Base)
19446 HashNoConstructor.prototype._update = function (data) {
19447 this.buffers.push(data)
19450 HashNoConstructor.prototype._final = function () {
19451 var buf = Buffer.concat(this.buffers)
19452 var r = this._hash(buf)
19453 this.buffers = null
19458 function Hash (hash) {
19459 Base.call(this, 'digest')
19464 inherits(Hash, Base)
19466 Hash.prototype._update = function (data) {
19467 this._hash.update(data)
19470 Hash.prototype._final = function () {
19471 return this._hash.digest()
19474 module.exports = function createHash (alg) {
19475 alg = alg.toLowerCase()
19476 if (alg === 'md5') return new HashNoConstructor(md5)
19477 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19479 return new Hash(sha(alg))
19482 }).call(this,require("buffer").Buffer)
19483 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19484 (function (Buffer){
19487 var zeroBuffer = new Buffer(intSize)
19493 function toArray (buf) {
19494 if ((buf.length % intSize) !==
0) {
19495 var len = buf.length + (intSize - (buf.length % intSize))
19496 buf = Buffer.concat([buf, zeroBuffer], len)
19499 var arr = new Array(buf.length
>>> 2)
19500 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19501 arr[j] = buf.readInt32LE(i)
19507 module.exports = function hash (buf, fn) {
19508 var arr = fn(toArray(buf), buf.length * charSize)
19509 buf = new Buffer(hashSize)
19510 for (var i =
0; i < arr.length; i++) {
19511 buf.writeInt32LE(arr[i], i <<
2, true)
19516 }).call(this,require(
"buffer").Buffer)
19517 },{
"buffer":
4}],
84:[function(require,module,exports){
19520 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19521 * Digest Algorithm, as defined in RFC
1321.
19522 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19523 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19524 * Distributed under the BSD License
19525 * See http://pajhome.org.uk/crypt/md5 for more info.
19528 var makeHash = require('./make-hash')
19531 * Calculate the MD5 of an array of little-endian words, and a bit length
19533 function core_md5 (x, len) {
19534 /* append padding */
19535 x[len
>> 5] |=
0x80 << ((len) %
32)
19536 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19540 var c = -
1732584194
19543 for (var i =
0; i < x.length; i +=
16) {
19549 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19550 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19551 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19552 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19553 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19554 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19555 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19556 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19557 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19558 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19559 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19560 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19561 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19562 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19563 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19564 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19566 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19567 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19568 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19569 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19570 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19571 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19572 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19573 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19574 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19575 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19576 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19577 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19578 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19579 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19580 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19581 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19583 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19584 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19585 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19586 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19587 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19588 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19589 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19590 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19591 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19592 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19593 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19594 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19595 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19596 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19597 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19598 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19600 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19601 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19602 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19603 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19604 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19605 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19606 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19607 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19608 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19609 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19610 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19611 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19612 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19613 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19614 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19615 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19617 a = safe_add(a, olda)
19618 b = safe_add(b, oldb)
19619 c = safe_add(c, oldc)
19620 d = safe_add(d, oldd)
19623 return [a, b, c, d]
19627 * These functions implement the four basic operations the algorithm uses.
19629 function md5_cmn (q, a, b, x, s, t) {
19630 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19633 function md5_ff (a, b, c, d, x, s, t) {
19634 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19637 function md5_gg (a, b, c, d, x, s, t) {
19638 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19641 function md5_hh (a, b, c, d, x, s, t) {
19642 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19645 function md5_ii (a, b, c, d, x, s, t) {
19646 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19650 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19651 * to work around bugs in some JS interpreters.
19653 function safe_add (x, y) {
19654 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19655 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19656 return (msw <<
16) | (lsw &
0xFFFF)
19660 * Bitwise rotate a
32-bit number to the left.
19662 function bit_rol (num, cnt) {
19663 return (num << cnt) | (num
>>> (
32 - cnt))
19666 module.exports = function md5 (buf) {
19667 return makeHash(buf, core_md5)
19670 },{"./make-hash":
83}],
85:[function(require,module,exports){
19672 var inherits = require('inherits')
19673 var Legacy = require('./legacy')
19674 var Base = require('cipher-base')
19675 var Buffer = require('safe-buffer').Buffer
19676 var md5 = require('create-hash/md5')
19677 var RIPEMD160 = require('ripemd160')
19679 var sha = require('sha.js')
19681 var ZEROS = Buffer.alloc(
128)
19683 function Hmac (alg, key) {
19684 Base.call(this, 'digest')
19685 if (typeof key === 'string') {
19686 key = Buffer.from(key)
19689 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19693 if (key.length
> blocksize) {
19694 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19695 key = hash.update(key).digest()
19696 } else if (key.length < blocksize) {
19697 key = Buffer.concat([key, ZEROS], blocksize)
19700 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19701 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19703 for (var i =
0; i < blocksize; i++) {
19704 ipad[i] = key[i] ^
0x36
19705 opad[i] = key[i] ^
0x5C
19707 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19708 this._hash.update(ipad)
19711 inherits(Hmac, Base)
19713 Hmac.prototype._update = function (data) {
19714 this._hash.update(data)
19717 Hmac.prototype._final = function () {
19718 var h = this._hash.digest()
19719 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19720 return hash.update(this._opad).update(h).digest()
19723 module.exports = function createHmac (alg, key) {
19724 alg = alg.toLowerCase()
19725 if (alg === 'rmd160' || alg === 'ripemd160') {
19726 return new Hmac('rmd160', key)
19728 if (alg === 'md5') {
19729 return new Legacy(md5, key)
19731 return new Hmac(alg, key)
19734 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19736 var inherits = require('inherits')
19737 var Buffer = require('safe-buffer').Buffer
19739 var Base = require('cipher-base')
19741 var ZEROS = Buffer.alloc(
128)
19744 function Hmac (alg, key) {
19745 Base.call(this, 'digest')
19746 if (typeof key === 'string') {
19747 key = Buffer.from(key)
19753 if (key.length
> blocksize) {
19755 } else if (key.length < blocksize) {
19756 key = Buffer.concat([key, ZEROS], blocksize)
19759 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19760 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19762 for (var i =
0; i < blocksize; i++) {
19763 ipad[i] = key[i] ^
0x36
19764 opad[i] = key[i] ^
0x5C
19767 this._hash = [ipad]
19770 inherits(Hmac, Base)
19772 Hmac.prototype._update = function (data) {
19773 this._hash.push(data)
19776 Hmac.prototype._final = function () {
19777 var h = this._alg(Buffer.concat(this._hash))
19778 return this._alg(Buffer.concat([this._opad, h]))
19780 module.exports = Hmac
19782 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19783 var assert = require('assert')
19784 var BigInteger = require('bigi')
19786 var Point = require('./point')
19788 function Curve (p, a, b, Gx, Gy, n, h) {
19792 this.G = Point.fromAffine(this, Gx, Gy)
19796 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19799 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19801 // determine size of p in bytes
19802 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19805 Curve.prototype.pointFromX = function (isOdd, x) {
19806 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19807 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19810 if (beta.isEven() ^ !isOdd) {
19811 y = this.p.subtract(y) // -y % p
19814 return Point.fromAffine(this, x, y)
19817 Curve.prototype.isInfinity = function (Q) {
19818 if (Q === this.infinity) return true
19820 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19823 Curve.prototype.isOnCurve = function (Q) {
19824 if (this.isInfinity(Q)) return true
19832 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19833 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19834 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19836 // and check that y^
2 = x^
3 + ax + b (mod p)
19837 var lhs = y.square().mod(p)
19838 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19839 return lhs.equals(rhs)
19843 * Validate an elliptic curve point.
19845 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19847 Curve.prototype.validate = function (Q) {
19849 assert(!this.isInfinity(Q), 'Point is at infinity')
19850 assert(this.isOnCurve(Q), 'Point is not on the curve')
19852 // Check nQ = O (where Q is a scalar multiple of G)
19853 var nQ = Q.multiply(this.n)
19854 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19859 module.exports = Curve
19861 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19864 "p": "fffffffdffffffffffffffffffffffff",
19865 "a": "fffffffdfffffffffffffffffffffffc",
19866 "b": "e87579c11079f43dd824993c2cee5ed3",
19867 "n": "fffffffe0000000075a30d1b9038a115",
19869 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19870 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19873 "p": "fffffffffffffffffffffffffffffffeffffac73",
19876 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19878 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19879 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19882 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19883 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19884 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19885 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19887 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19888 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19891 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19894 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19896 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19897 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19900 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19901 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19902 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19903 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19905 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19906 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19909 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19912 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19914 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19915 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19918 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19919 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19920 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19921 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19923 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19924 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19928 },{}],
89:[function(require,module,exports){
19929 var Point = require('./point')
19930 var Curve = require('./curve')
19932 var getCurveByName = require('./names')
19937 getCurveByName: getCurveByName
19940 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19941 var BigInteger = require('bigi')
19943 var curves = require('./curves.json')
19944 var Curve = require('./curve')
19946 function getCurveByName (name) {
19947 var curve = curves[name]
19948 if (!curve) return null
19950 var p = new BigInteger(curve.p,
16)
19951 var a = new BigInteger(curve.a,
16)
19952 var b = new BigInteger(curve.b,
16)
19953 var n = new BigInteger(curve.n,
16)
19954 var h = new BigInteger(curve.h,
16)
19955 var Gx = new BigInteger(curve.Gx,
16)
19956 var Gy = new BigInteger(curve.Gy,
16)
19958 return new Curve(p, a, b, Gx, Gy, n, h)
19961 module.exports = getCurveByName
19963 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19964 (function (Buffer){
19965 var assert = require('assert')
19966 var BigInteger = require('bigi')
19968 var THREE = BigInteger.valueOf(
3)
19970 function Point (curve, x, y, z) {
19971 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19979 this.compressed = true
19982 Object.defineProperty(Point.prototype, 'zInv', {
19984 if (this._zInv === null) {
19985 this._zInv = this.z.modInverse(this.curve.p)
19992 Object.defineProperty(Point.prototype, 'affineX', {
19994 return this.x.multiply(this.zInv).mod(this.curve.p)
19998 Object.defineProperty(Point.prototype, 'affineY', {
20000 return this.y.multiply(this.zInv).mod(this.curve.p)
20004 Point.fromAffine = function (curve, x, y) {
20005 return new Point(curve, x, y, BigInteger.ONE)
20008 Point.prototype.equals = function (other) {
20009 if (other === this) return true
20010 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
20011 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
20013 // u = Y2 * Z1 - Y1 * Z2
20014 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
20016 if (u.signum() !==
0) return false
20018 // v = X2 * Z1 - X1 * Z2
20019 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
20021 return v.signum() ===
0
20024 Point.prototype.negate = function () {
20025 var y = this.curve.p.subtract(this.y)
20027 return new Point(this.curve, this.x, y, this.z)
20030 Point.prototype.add = function (b) {
20031 if (this.curve.isInfinity(this)) return b
20032 if (this.curve.isInfinity(b)) return this
20039 // u = Y2 * Z1 - Y1 * Z2
20040 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20041 // v = X2 * Z1 - X1 * Z2
20042 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20044 if (v.signum() ===
0) {
20045 if (u.signum() ===
0) {
20046 return this.twice() // this == b, so double
20049 return this.curve.infinity // this = -b, so infinity
20052 var v2 = v.square()
20053 var v3 = v2.multiply(v)
20054 var x1v2 = x1.multiply(v2)
20055 var zu2 = u.square().multiply(this.z)
20057 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20058 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20059 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20060 var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)
20061 // z3 = v^
3 * z1 * z2
20062 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20064 return new Point(this.curve, x3, y3, z3)
20067 Point.prototype.twice = function () {
20068 if (this.curve.isInfinity(this)) return this
20069 if (this.y.signum() ===
0) return this.curve.infinity
20074 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20075 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20076 var a = this.curve.a
20078 // w =
3 * x1^
2 + a * z1^
2
20079 var w = x1.square().multiply(THREE)
20081 if (a.signum() !==
0) {
20082 w = w.add(this.z.square().multiply(a))
20085 w = w.mod(this.curve.p)
20086 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20087 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20088 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20089 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20090 // z3 =
8 * (y1 * z1)^
3
20091 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20093 return new Point(this.curve, x3, y3, z3)
20096 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20097 // TODO: modularize the multiplication algorithm
20098 Point.prototype.multiply = function (k) {
20099 if (this.curve.isInfinity(this)) return this
20100 if (k.signum() ===
0) return this.curve.infinity
20103 var h = e.multiply(THREE)
20105 var neg = this.negate()
20108 for (var i = h.bitLength() -
2; i
> 0; --i) {
20109 var hBit = h.testBit(i)
20110 var eBit = e.testBit(i)
20114 if (hBit !== eBit) {
20115 R = R.add(hBit ? this : neg)
20122 // Compute this*j + x*k (simultaneous multiplication)
20123 Point.prototype.multiplyTwo = function (j, x, k) {
20124 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20125 var R = this.curve.infinity
20126 var both = this.add(x)
20129 var jBit = j.testBit(i)
20130 var kBit = k.testBit(i)
20149 Point.prototype.getEncoded = function (compressed) {
20150 if (compressed == null) compressed = this.compressed
20151 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20153 var x = this.affineX
20154 var y = this.affineY
20155 var byteLength = this.curve.pLength
20160 buffer = new Buffer(
1 + byteLength)
20161 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20165 buffer = new Buffer(
1 + byteLength + byteLength)
20166 buffer.writeUInt8(
0x04,
0)
20168 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20171 x.toBuffer(byteLength).copy(buffer,
1)
20176 Point.decodeFrom = function (curve, buffer) {
20177 var type = buffer.readUInt8(
0)
20178 var compressed = (type !==
4)
20180 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20181 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20185 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20186 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20188 var isOdd = (type ===
0x03)
20189 Q = curve.pointFromX(isOdd, x)
20191 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20193 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20194 Q = Point.fromAffine(curve, x, y)
20197 Q.compressed = compressed
20201 Point.prototype.toString = function () {
20202 if (this.curve.isInfinity(this)) return '(INFINITY)'
20204 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20207 module.exports = Point
20209 }).call(this,require("buffer").Buffer)
20210 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20211 (function (Buffer){
20213 var Transform = require('stream').Transform
20214 var inherits = require('inherits')
20216 function HashBase (blockSize) {
20217 Transform.call(this)
20219 this._block = new Buffer(blockSize)
20220 this._blockSize = blockSize
20221 this._blockOffset =
0
20222 this._length = [
0,
0,
0,
0]
20224 this._finalized = false
20227 inherits(HashBase, Transform)
20229 HashBase.prototype._transform = function (chunk, encoding, callback) {
20232 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20241 HashBase.prototype._flush = function (callback) {
20244 this.push(this._digest())
20252 HashBase.prototype.update = function (data, encoding) {
20253 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20254 if (this._finalized) throw new Error('Digest already called')
20255 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20258 var block = this._block
20260 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20261 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20263 this._blockOffset =
0
20265 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20268 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20269 this._length[j] += carry
20270 carry = (this._length[j] /
0x0100000000) |
0
20271 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20277 HashBase.prototype._update = function (data) {
20278 throw new Error('_update is not implemented')
20281 HashBase.prototype.digest = function (encoding) {
20282 if (this._finalized) throw new Error('Digest already called')
20283 this._finalized = true
20285 var digest = this._digest()
20286 if (encoding !== undefined) digest = digest.toString(encoding)
20290 HashBase.prototype._digest = function () {
20291 throw new Error('_digest is not implemented')
20294 module.exports = HashBase
20296 }).call(this,require(
"buffer").Buffer)
20297 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20298 arguments[
4][
8][
0].apply(exports,arguments)
20299 },{
"dup":
8}],
94:[function(require,module,exports){
20300 (function (Buffer){
20301 // constant-space merkle root calculation algorithm
20302 module.exports = function fastRoot (values, digestFn) {
20303 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20304 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20306 var length = values.length
20307 var results = values.concat()
20309 while (length
> 1) {
20312 for (var i =
0; i < length; i +=
2, ++j) {
20313 var left = results[i]
20314 var right = i +
1 === length ? left : results[i +
1]
20315 var data = Buffer.concat([left, right])
20317 results[j] = digestFn(data)
20326 }).call(this,require(
"buffer").Buffer)
20327 },{
"buffer":
4}],
95:[function(require,module,exports){
20328 var OPS = require('bitcoin-ops')
20330 function encodingLength (i) {
20331 return i < OPS.OP_PUSHDATA1 ?
1
20337 function encode (buffer, number, offset) {
20338 var size = encodingLength(number)
20342 buffer.writeUInt8(number, offset)
20345 } else if (size ===
2) {
20346 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20347 buffer.writeUInt8(number, offset +
1)
20350 } else if (size ===
3) {
20351 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20352 buffer.writeUInt16LE(number, offset +
1)
20356 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20357 buffer.writeUInt32LE(number, offset +
1)
20363 function decode (buffer, offset) {
20364 var opcode = buffer.readUInt8(offset)
20368 if (opcode < OPS.OP_PUSHDATA1) {
20373 } else if (opcode === OPS.OP_PUSHDATA1) {
20374 if (offset +
2 > buffer.length) return null
20375 number = buffer.readUInt8(offset +
1)
20379 } else if (opcode === OPS.OP_PUSHDATA2) {
20380 if (offset +
3 > buffer.length) return null
20381 number = buffer.readUInt16LE(offset +
1)
20386 if (offset +
5 > buffer.length) return null
20387 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20389 number = buffer.readUInt32LE(offset +
1)
20401 encodingLength: encodingLength,
20406 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20407 (function (process,global){
20410 function oldBrowser () {
20411 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20414 var Buffer = require('safe-buffer').Buffer
20415 var crypto = global.crypto || global.msCrypto
20417 if (crypto && crypto.getRandomValues) {
20418 module.exports = randomBytes
20420 module.exports = oldBrowser
20423 function randomBytes (size, cb) {
20424 // phantomjs needs to throw
20425 if (size
> 65536) throw new Error('requested too many random bytes')
20426 // in case browserify isn't using the Uint8Array version
20427 var rawBytes = new global.Uint8Array(size)
20429 // This will not work in older browsers.
20430 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20431 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20432 crypto.getRandomValues(rawBytes)
20435 // XXX: phantomjs doesn't like a buffer being passed here
20436 var bytes = Buffer.from(rawBytes.buffer)
20438 if (typeof cb === 'function') {
20439 return process.nextTick(function () {
20447 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20448 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20449 (function (Buffer){
20451 var inherits = require('inherits')
20452 var HashBase = require('hash-base')
20454 function RIPEMD160 () {
20455 HashBase.call(this,
64)
20458 this._a =
0x67452301
20459 this._b =
0xefcdab89
20460 this._c =
0x98badcfe
20461 this._d =
0x10325476
20462 this._e =
0xc3d2e1f0
20465 inherits(RIPEMD160, HashBase)
20467 RIPEMD160.prototype._update = function () {
20468 var m = new Array(
16)
20469 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20477 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20479 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20480 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20481 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20482 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20483 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20484 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20485 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20486 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20487 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20488 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20489 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20490 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20491 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20492 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20493 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20494 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20495 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20497 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20499 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20500 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20501 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20502 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20503 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20504 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20505 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20506 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20507 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20508 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20509 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20510 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20511 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20512 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20513 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20514 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20515 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20517 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20519 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20520 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20521 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20522 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20523 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20524 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20525 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20526 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20527 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20528 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20529 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20530 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20531 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20532 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20533 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20534 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20535 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20537 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20539 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20540 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20541 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20542 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20543 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20544 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20545 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20546 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20547 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20548 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20549 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20550 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20551 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20552 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20553 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20554 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20555 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20557 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20559 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20560 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20561 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20562 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20563 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20564 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20565 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20566 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20567 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20568 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20569 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20570 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20571 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20572 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20573 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20574 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20575 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20583 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20585 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20586 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20587 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20588 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20589 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20590 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20591 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20592 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20593 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20594 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20595 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20596 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20597 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20598 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20599 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20600 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20601 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20603 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20605 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20606 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20607 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20608 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20609 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20610 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20611 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20612 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20613 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20614 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20615 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20616 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20617 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20618 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20619 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20620 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20621 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20623 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20625 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20626 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20627 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20628 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20629 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20630 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20631 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20632 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20633 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20634 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20635 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20636 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20637 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20638 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20639 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20640 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20641 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20643 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20645 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20646 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20647 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20648 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20649 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20650 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20651 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20652 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20653 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20654 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20655 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20656 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20657 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20658 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20659 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20660 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20661 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20663 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20665 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20666 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20667 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20668 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20669 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20670 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20671 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20672 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20673 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20674 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20675 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20676 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20677 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20678 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20679 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20680 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20681 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20684 var t = (this._b + cl + dr) |
0
20685 this._b = (this._c + dl + er) |
0
20686 this._c = (this._d + el + ar) |
0
20687 this._d = (this._e + al + br) |
0
20688 this._e = (this._a + bl + cr) |
0
20692 RIPEMD160.prototype._digest = function () {
20693 // create padding and handle blocks
20694 this._block[this._blockOffset++] =
0x80
20695 if (this._blockOffset
> 56) {
20696 this._block.fill(
0, this._blockOffset,
64)
20698 this._blockOffset =
0
20701 this._block.fill(
0, this._blockOffset,
56)
20702 this._block.writeUInt32LE(this._length[
0],
56)
20703 this._block.writeUInt32LE(this._length[
1],
60)
20707 var buffer = new Buffer(
20)
20708 buffer.writeInt32LE(this._a,
0)
20709 buffer.writeInt32LE(this._b,
4)
20710 buffer.writeInt32LE(this._c,
8)
20711 buffer.writeInt32LE(this._d,
12)
20712 buffer.writeInt32LE(this._e,
16)
20716 function rotl (x, n) {
20717 return (x << n) | (x
>>> (
32 - n))
20720 function fn1 (a, b, c, d, e, m, k, s) {
20721 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20724 function fn2 (a, b, c, d, e, m, k, s) {
20725 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20728 function fn3 (a, b, c, d, e, m, k, s) {
20729 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20732 function fn4 (a, b, c, d, e, m, k, s) {
20733 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20736 function fn5 (a, b, c, d, e, m, k, s) {
20737 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20740 module.exports = RIPEMD160
20742 }).call(this,require("buffer").Buffer)
20743 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20744 arguments[
4][
26][
0].apply(exports,arguments)
20745 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20746 (function (Buffer){
20747 // prototype class for hash functions
20748 function Hash (blockSize, finalSize) {
20749 this._block = new Buffer(blockSize)
20750 this._finalSize = finalSize
20751 this._blockSize = blockSize
20756 Hash.prototype.update = function (data, enc) {
20757 if (typeof data === 'string') {
20758 enc = enc || 'utf8'
20759 data = new Buffer(data, enc)
20762 var l = this._len += data.length
20763 var s = this._s ||
0
20765 var buffer = this._block
20768 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20771 for (var i =
0; i < ch; i++) {
20772 buffer[(s % this._blockSize) + i] = data[i + f]
20778 if ((s % this._blockSize) ===
0) {
20779 this._update(buffer)
20787 Hash.prototype.digest = function (enc) {
20788 // Suppose the length of the message M, in bits, is l
20789 var l = this._len *
8
20791 // Append the bit
1 to the end of the message
20792 this._block[this._len % this._blockSize] =
0x80
20794 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20795 this._block.fill(
0, this._len % this._blockSize +
1)
20797 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20798 this._update(this._block)
20799 this._block.fill(
0)
20802 // to this append the block which is equal to the number l written in binary
20803 // TODO: handle case where l is
> Math.pow(
2,
29)
20804 this._block.writeInt32BE(l, this._blockSize -
4)
20806 var hash = this._update(this._block) || this._hash()
20808 return enc ? hash.toString(enc) : hash
20811 Hash.prototype._update = function () {
20812 throw new Error('_update must be implemented by subclass')
20815 module.exports = Hash
20817 }).call(this,require("buffer").Buffer)
20818 },{"buffer":
4}],
100:[function(require,module,exports){
20819 var exports = module.exports = function SHA (algorithm) {
20820 algorithm = algorithm.toLowerCase()
20822 var Algorithm = exports[algorithm]
20823 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20825 return new Algorithm()
20828 exports.sha = require('./sha')
20829 exports.sha1 = require('./sha1')
20830 exports.sha224 = require('./sha224')
20831 exports.sha256 = require('./sha256')
20832 exports.sha384 = require('./sha384')
20833 exports.sha512 = require('./sha512')
20835 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20836 (function (Buffer){
20838 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20839 * in FIPS PUB
180-
1
20840 * This source code is derived from sha1.js of the same repository.
20841 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20842 * operation was added.
20845 var inherits = require('inherits')
20846 var Hash = require('./hash')
20849 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20852 var W = new Array(
80)
20858 Hash.call(this,
64,
56)
20861 inherits(Sha, Hash)
20863 Sha.prototype.init = function () {
20864 this._a =
0x67452301
20865 this._b =
0xefcdab89
20866 this._c =
0x98badcfe
20867 this._d =
0x10325476
20868 this._e =
0xc3d2e1f0
20873 function rotl5 (num) {
20874 return (num <<
5) | (num
>>> 27)
20877 function rotl30 (num) {
20878 return (num <<
30) | (num
>>> 2)
20881 function ft (s, b, c, d) {
20882 if (s ===
0) return (b & c) | ((~b) & d)
20883 if (s ===
2) return (b & c) | (b & d) | (c & d)
20887 Sha.prototype._update = function (M) {
20890 var a = this._a |
0
20891 var b = this._b |
0
20892 var c = this._c |
0
20893 var d = this._d |
0
20894 var e = this._e |
0
20896 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20897 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20899 for (var j =
0; j <
80; ++j) {
20901 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20910 this._a = (a + this._a) |
0
20911 this._b = (b + this._b) |
0
20912 this._c = (c + this._c) |
0
20913 this._d = (d + this._d) |
0
20914 this._e = (e + this._e) |
0
20917 Sha.prototype._hash = function () {
20918 var H = new Buffer(
20)
20920 H.writeInt32BE(this._a |
0,
0)
20921 H.writeInt32BE(this._b |
0,
4)
20922 H.writeInt32BE(this._c |
0,
8)
20923 H.writeInt32BE(this._d |
0,
12)
20924 H.writeInt32BE(this._e |
0,
16)
20929 module.exports = Sha
20931 }).call(this,require(
"buffer").Buffer)
20932 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20933 (function (Buffer){
20935 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20936 * in FIPS PUB
180-
1
20937 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20938 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20939 * Distributed under the BSD License
20940 * See http://pajhome.org.uk/crypt/md5 for details.
20943 var inherits = require('inherits')
20944 var Hash = require('./hash')
20947 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20950 var W = new Array(
80)
20956 Hash.call(this,
64,
56)
20959 inherits(Sha1, Hash)
20961 Sha1.prototype.init = function () {
20962 this._a =
0x67452301
20963 this._b =
0xefcdab89
20964 this._c =
0x98badcfe
20965 this._d =
0x10325476
20966 this._e =
0xc3d2e1f0
20971 function rotl1 (num) {
20972 return (num <<
1) | (num
>>> 31)
20975 function rotl5 (num) {
20976 return (num <<
5) | (num
>>> 27)
20979 function rotl30 (num) {
20980 return (num <<
30) | (num
>>> 2)
20983 function ft (s, b, c, d) {
20984 if (s ===
0) return (b & c) | ((~b) & d)
20985 if (s ===
2) return (b & c) | (b & d) | (c & d)
20989 Sha1.prototype._update = function (M) {
20992 var a = this._a |
0
20993 var b = this._b |
0
20994 var c = this._c |
0
20995 var d = this._d |
0
20996 var e = this._e |
0
20998 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20999 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
21001 for (var j =
0; j <
80; ++j) {
21003 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
21012 this._a = (a + this._a) |
0
21013 this._b = (b + this._b) |
0
21014 this._c = (c + this._c) |
0
21015 this._d = (d + this._d) |
0
21016 this._e = (e + this._e) |
0
21019 Sha1.prototype._hash = function () {
21020 var H = new Buffer(
20)
21022 H.writeInt32BE(this._a |
0,
0)
21023 H.writeInt32BE(this._b |
0,
4)
21024 H.writeInt32BE(this._c |
0,
8)
21025 H.writeInt32BE(this._d |
0,
12)
21026 H.writeInt32BE(this._e |
0,
16)
21031 module.exports = Sha1
21033 }).call(this,require(
"buffer").Buffer)
21034 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
21035 (function (Buffer){
21037 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21039 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21040 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21044 var inherits = require('inherits')
21045 var Sha256 = require('./sha256')
21046 var Hash = require('./hash')
21048 var W = new Array(
64)
21050 function Sha224 () {
21053 this._w = W // new Array(
64)
21055 Hash.call(this,
64,
56)
21058 inherits(Sha224, Sha256)
21060 Sha224.prototype.init = function () {
21061 this._a =
0xc1059ed8
21062 this._b =
0x367cd507
21063 this._c =
0x3070dd17
21064 this._d =
0xf70e5939
21065 this._e =
0xffc00b31
21066 this._f =
0x68581511
21067 this._g =
0x64f98fa7
21068 this._h =
0xbefa4fa4
21073 Sha224.prototype._hash = function () {
21074 var H = new Buffer(
28)
21076 H.writeInt32BE(this._a,
0)
21077 H.writeInt32BE(this._b,
4)
21078 H.writeInt32BE(this._c,
8)
21079 H.writeInt32BE(this._d,
12)
21080 H.writeInt32BE(this._e,
16)
21081 H.writeInt32BE(this._f,
20)
21082 H.writeInt32BE(this._g,
24)
21087 module.exports = Sha224
21089 }).call(this,require(
"buffer").Buffer)
21090 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21091 (function (Buffer){
21093 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21095 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21096 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21100 var inherits = require('inherits')
21101 var Hash = require('./hash')
21104 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21105 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21106 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21107 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21108 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21109 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21110 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21111 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21112 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21113 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21114 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21115 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21116 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21117 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21118 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21119 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21122 var W = new Array(
64)
21124 function Sha256 () {
21127 this._w = W // new Array(
64)
21129 Hash.call(this,
64,
56)
21132 inherits(Sha256, Hash)
21134 Sha256.prototype.init = function () {
21135 this._a =
0x6a09e667
21136 this._b =
0xbb67ae85
21137 this._c =
0x3c6ef372
21138 this._d =
0xa54ff53a
21139 this._e =
0x510e527f
21140 this._f =
0x9b05688c
21141 this._g =
0x1f83d9ab
21142 this._h =
0x5be0cd19
21147 function ch (x, y, z) {
21148 return z ^ (x & (y ^ z))
21151 function maj (x, y, z) {
21152 return (x & y) | (z & (x | y))
21155 function sigma0 (x) {
21156 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21159 function sigma1 (x) {
21160 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21163 function gamma0 (x) {
21164 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21167 function gamma1 (x) {
21168 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21171 Sha256.prototype._update = function (M) {
21174 var a = this._a |
0
21175 var b = this._b |
0
21176 var c = this._c |
0
21177 var d = this._d |
0
21178 var e = this._e |
0
21179 var f = this._f |
0
21180 var g = this._g |
0
21181 var h = this._h |
0
21183 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21184 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21186 for (var j =
0; j <
64; ++j) {
21187 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21188 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21200 this._a = (a + this._a) |
0
21201 this._b = (b + this._b) |
0
21202 this._c = (c + this._c) |
0
21203 this._d = (d + this._d) |
0
21204 this._e = (e + this._e) |
0
21205 this._f = (f + this._f) |
0
21206 this._g = (g + this._g) |
0
21207 this._h = (h + this._h) |
0
21210 Sha256.prototype._hash = function () {
21211 var H = new Buffer(
32)
21213 H.writeInt32BE(this._a,
0)
21214 H.writeInt32BE(this._b,
4)
21215 H.writeInt32BE(this._c,
8)
21216 H.writeInt32BE(this._d,
12)
21217 H.writeInt32BE(this._e,
16)
21218 H.writeInt32BE(this._f,
20)
21219 H.writeInt32BE(this._g,
24)
21220 H.writeInt32BE(this._h,
28)
21225 module.exports = Sha256
21227 }).call(this,require(
"buffer").Buffer)
21228 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21229 (function (Buffer){
21230 var inherits = require('inherits')
21231 var SHA512 = require('./sha512')
21232 var Hash = require('./hash')
21234 var W = new Array(
160)
21236 function Sha384 () {
21240 Hash.call(this,
128,
112)
21243 inherits(Sha384, SHA512)
21245 Sha384.prototype.init = function () {
21246 this._ah =
0xcbbb9d5d
21247 this._bh =
0x629a292a
21248 this._ch =
0x9159015a
21249 this._dh =
0x152fecd8
21250 this._eh =
0x67332667
21251 this._fh =
0x8eb44a87
21252 this._gh =
0xdb0c2e0d
21253 this._hh =
0x47b5481d
21255 this._al =
0xc1059ed8
21256 this._bl =
0x367cd507
21257 this._cl =
0x3070dd17
21258 this._dl =
0xf70e5939
21259 this._el =
0xffc00b31
21260 this._fl =
0x68581511
21261 this._gl =
0x64f98fa7
21262 this._hl =
0xbefa4fa4
21267 Sha384.prototype._hash = function () {
21268 var H = new Buffer(
48)
21270 function writeInt64BE (h, l, offset) {
21271 H.writeInt32BE(h, offset)
21272 H.writeInt32BE(l, offset +
4)
21275 writeInt64BE(this._ah, this._al,
0)
21276 writeInt64BE(this._bh, this._bl,
8)
21277 writeInt64BE(this._ch, this._cl,
16)
21278 writeInt64BE(this._dh, this._dl,
24)
21279 writeInt64BE(this._eh, this._el,
32)
21280 writeInt64BE(this._fh, this._fl,
40)
21285 module.exports = Sha384
21287 }).call(this,require(
"buffer").Buffer)
21288 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21289 (function (Buffer){
21290 var inherits = require('inherits')
21291 var Hash = require('./hash')
21294 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21295 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21296 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21297 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21298 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21299 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21300 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21301 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21302 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21303 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21304 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21305 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21306 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21307 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21308 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21309 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21310 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21311 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21312 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21313 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21314 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21315 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21316 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21317 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21318 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21319 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21320 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21321 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21322 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21323 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21324 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21325 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21326 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21327 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21328 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21329 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21330 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21331 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21332 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21333 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21336 var W = new Array(
160)
21338 function Sha512 () {
21342 Hash.call(this,
128,
112)
21345 inherits(Sha512, Hash)
21347 Sha512.prototype.init = function () {
21348 this._ah =
0x6a09e667
21349 this._bh =
0xbb67ae85
21350 this._ch =
0x3c6ef372
21351 this._dh =
0xa54ff53a
21352 this._eh =
0x510e527f
21353 this._fh =
0x9b05688c
21354 this._gh =
0x1f83d9ab
21355 this._hh =
0x5be0cd19
21357 this._al =
0xf3bcc908
21358 this._bl =
0x84caa73b
21359 this._cl =
0xfe94f82b
21360 this._dl =
0x5f1d36f1
21361 this._el =
0xade682d1
21362 this._fl =
0x2b3e6c1f
21363 this._gl =
0xfb41bd6b
21364 this._hl =
0x137e2179
21369 function Ch (x, y, z) {
21370 return z ^ (x & (y ^ z))
21373 function maj (x, y, z) {
21374 return (x & y) | (z & (x | y))
21377 function sigma0 (x, xl) {
21378 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21381 function sigma1 (x, xl) {
21382 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21385 function Gamma0 (x, xl) {
21386 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21389 function Gamma0l (x, xl) {
21390 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21393 function Gamma1 (x, xl) {
21394 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21397 function Gamma1l (x, xl) {
21398 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21401 function getCarry (a, b) {
21402 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21405 Sha512.prototype._update = function (M) {
21408 var ah = this._ah |
0
21409 var bh = this._bh |
0
21410 var ch = this._ch |
0
21411 var dh = this._dh |
0
21412 var eh = this._eh |
0
21413 var fh = this._fh |
0
21414 var gh = this._gh |
0
21415 var hh = this._hh |
0
21417 var al = this._al |
0
21418 var bl = this._bl |
0
21419 var cl = this._cl |
0
21420 var dl = this._dl |
0
21421 var el = this._el |
0
21422 var fl = this._fl |
0
21423 var gl = this._gl |
0
21424 var hl = this._hl |
0
21426 for (var i =
0; i <
32; i +=
2) {
21427 W[i] = M.readInt32BE(i *
4)
21428 W[i +
1] = M.readInt32BE(i *
4 +
4)
21430 for (; i <
160; i +=
2) {
21431 var xh = W[i -
15 *
2]
21432 var xl = W[i -
15 *
2 +
1]
21433 var gamma0 = Gamma0(xh, xl)
21434 var gamma0l = Gamma0l(xl, xh)
21437 xl = W[i -
2 *
2 +
1]
21438 var gamma1 = Gamma1(xh, xl)
21439 var gamma1l = Gamma1l(xl, xh)
21441 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21442 var Wi7h = W[i -
7 *
2]
21443 var Wi7l = W[i -
7 *
2 +
1]
21445 var Wi16h = W[i -
16 *
2]
21446 var Wi16l = W[i -
16 *
2 +
1]
21448 var Wil = (gamma0l + Wi7l) |
0
21449 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21450 Wil = (Wil + gamma1l) |
0
21451 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21452 Wil = (Wil + Wi16l) |
0
21453 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21459 for (var j =
0; j <
160; j +=
2) {
21463 var majh = maj(ah, bh, ch)
21464 var majl = maj(al, bl, cl)
21466 var sigma0h = sigma0(ah, al)
21467 var sigma0l = sigma0(al, ah)
21468 var sigma1h = sigma1(eh, el)
21469 var sigma1l = sigma1(el, eh)
21471 // t1 = h + sigma1 + ch + K[j] + W[j]
21475 var chh = Ch(eh, fh, gh)
21476 var chl = Ch(el, fl, gl)
21478 var t1l = (hl + sigma1l) |
0
21479 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21480 t1l = (t1l + chl) |
0
21481 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21482 t1l = (t1l + Kil) |
0
21483 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21484 t1l = (t1l + Wil) |
0
21485 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21487 // t2 = sigma0 + maj
21488 var t2l = (sigma0l + majl) |
0
21489 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21497 el = (dl + t1l) |
0
21498 eh = (dh + t1h + getCarry(el, dl)) |
0
21505 al = (t1l + t2l) |
0
21506 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21509 this._al = (this._al + al) |
0
21510 this._bl = (this._bl + bl) |
0
21511 this._cl = (this._cl + cl) |
0
21512 this._dl = (this._dl + dl) |
0
21513 this._el = (this._el + el) |
0
21514 this._fl = (this._fl + fl) |
0
21515 this._gl = (this._gl + gl) |
0
21516 this._hl = (this._hl + hl) |
0
21518 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21519 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21520 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21521 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21522 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21523 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21524 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21525 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21528 Sha512.prototype._hash = function () {
21529 var H = new Buffer(
64)
21531 function writeInt64BE (h, l, offset) {
21532 H.writeInt32BE(h, offset)
21533 H.writeInt32BE(l, offset +
4)
21536 writeInt64BE(this._ah, this._al,
0)
21537 writeInt64BE(this._bh, this._bl,
8)
21538 writeInt64BE(this._ch, this._cl,
16)
21539 writeInt64BE(this._dh, this._dl,
24)
21540 writeInt64BE(this._eh, this._el,
32)
21541 writeInt64BE(this._fh, this._fl,
40)
21542 writeInt64BE(this._gh, this._gl,
48)
21543 writeInt64BE(this._hh, this._hl,
56)
21548 module.exports = Sha512
21550 }).call(this,require(
"buffer").Buffer)
21551 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21552 var inherits = require('inherits')
21553 var native = require('./native')
21555 function TfTypeError (type, value, valueTypeName) {
21556 this.__error = Error.call(this)
21558 this.__value = value
21559 this.__valueTypeName = valueTypeName
21562 Object.defineProperty(this, 'message', {
21565 if (message) return message
21567 valueTypeName = valueTypeName || getValueTypeName(value)
21568 message = tfErrorString(type, value, valueTypeName)
21575 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21576 this.__error = error || Error.call(this)
21577 this.__label = label
21578 this.__property = property
21580 this.__value = value
21581 this.__valueTypeName = valueTypeName
21584 Object.defineProperty(this, 'message', {
21587 if (message) return message
21589 valueTypeName = valueTypeName || getValueTypeName(value)
21590 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21592 message = 'Unexpected property
"' + property + '"'
21600 // inherit from Error, assign stack
21601 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21602 inherits(tfErrorType, Error)
21603 Object.defineProperty(tfErrorType, 'stack', {
21604 get: function () { return this.__error.stack }
21608 function tfCustomError (expected, actual) {
21609 return new TfTypeError(expected, {}, actual)
21612 function tfSubError (e, property, label) {
21614 if (e instanceof TfPropertyTypeError) {
21615 property = property + '.' + e.__property
21618 return new TfPropertyTypeError(
21619 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21624 if (e instanceof TfTypeError) {
21625 return new TfPropertyTypeError(
21626 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21633 function getTypeName (fn) {
21634 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21637 function getValueTypeName (value) {
21638 return native.Nil(value) ? '' : getTypeName(value.constructor)
21641 function getValue (value) {
21642 if (native.Function(value)) return ''
21643 if (native.String(value)) return JSON.stringify(value)
21644 if (value && native.Object(value)) return ''
21648 function tfJSON (type) {
21649 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21650 if (native.Array(type)) return 'Array'
21651 if (type && native.Object(type)) return 'Object'
21653 return type !== undefined ? type : ''
21656 function tfErrorString (type, value, valueTypeName) {
21657 var valueJson = getValue(value)
21659 return 'Expected ' + tfJSON(type) + ', got' +
21660 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21661 (valueJson !== '' ? ' ' + valueJson : '')
21664 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21665 var description = '
" of type '
21666 if (label === 'key') description = '" with key type '
21668 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21672 TfTypeError: TfTypeError,
21673 TfPropertyTypeError: TfPropertyTypeError,
21674 tfCustomError: tfCustomError,
21675 tfSubError: tfSubError,
21677 getValueTypeName: getValueTypeName
21680 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21681 (function (Buffer){
21682 var NATIVE = require('./native')
21683 var ERRORS = require('./errors')
21685 function _Buffer (value) {
21686 return Buffer.isBuffer(value)
21689 function Hex (value) {
21690 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21693 function _LengthN (type, length) {
21694 var name = type.toJSON()
21696 function Length (value) {
21697 if (!type(value)) return false
21698 if (value.length === length) return true
21700 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21702 Length.toJSON = function () { return name }
21707 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21708 var _BufferN = _LengthN.bind(null, _Buffer)
21709 var _HexN = _LengthN.bind(null, Hex)
21711 var UINT53_MAX = Math.pow(2, 53) - 1
21713 function Finite (value) {
21714 return typeof value === 'number' && isFinite(value)
21716 function Int8 (value) { return ((value << 24) >> 24) === value }
21717 function Int16 (value) { return ((value << 16) >> 16) === value }
21718 function Int32 (value) { return (value | 0) === value }
21719 function UInt8 (value) { return (value & 0xff) === value }
21720 function UInt16 (value) { return (value & 0xffff) === value }
21721 function UInt32 (value) { return (value >>> 0) === value }
21722 function UInt53 (value) {
21723 return typeof value === 'number' &&
21725 value <= UINT53_MAX &&
21726 Math.floor(value) === value
21745 for (var typeName in types) {
21746 types[typeName].toJSON = function (t) {
21748 }.bind(null, typeName)
21751 module.exports = types
21753 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21754 },{"../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
":9,"./errors
":107,"./native
":110}],109:[function(require,module,exports){
21755 var ERRORS = require('./errors')
21756 var NATIVE = require('./native')
21759 var tfJSON = ERRORS.tfJSON
21760 var TfTypeError = ERRORS.TfTypeError
21761 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21762 var tfSubError = ERRORS.tfSubError
21763 var getValueTypeName = ERRORS.getValueTypeName
21766 arrayOf: function arrayOf (type) {
21767 type = compile(type)
21769 function _arrayOf (array, strict) {
21770 if (!NATIVE.Array(array)) return false
21772 return array.every(function (value, i) {
21774 return typeforce(type, value, strict)
21776 throw tfSubError(e, i)
21780 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21785 maybe: function maybe (type) {
21786 type = compile(type)
21788 function _maybe (value, strict) {
21789 return NATIVE.Nil(value) || type(value, strict, maybe)
21791 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21796 map: function map (propertyType, propertyKeyType) {
21797 propertyType = compile(propertyType)
21798 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21800 function _map (value, strict) {
21801 if (!NATIVE.Object(value, strict)) return false
21802 if (NATIVE.Nil(value, strict)) return false
21804 for (var propertyName in value) {
21806 if (propertyKeyType) {
21807 typeforce(propertyKeyType, propertyName, strict)
21810 throw tfSubError(e, propertyName, 'key')
21814 var propertyValue = value[propertyName]
21815 typeforce(propertyType, propertyValue, strict)
21817 throw tfSubError(e, propertyName)
21824 if (propertyKeyType) {
21825 _map.toJSON = function () {
21826 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21829 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21835 object: function object (uncompiled) {
21838 for (var typePropertyName in uncompiled) {
21839 type[typePropertyName] = compile(uncompiled[typePropertyName])
21842 function _object (value, strict) {
21843 if (!NATIVE.Object(value)) return false
21844 if (NATIVE.Nil(value)) return false
21849 for (propertyName in type) {
21850 var propertyType = type[propertyName]
21851 var propertyValue = value[propertyName]
21853 typeforce(propertyType, propertyValue, strict)
21856 throw tfSubError(e, propertyName)
21860 for (propertyName in value) {
21861 if (type[propertyName]) continue
21863 throw new TfPropertyTypeError(undefined, propertyName)
21869 _object.toJSON = function () { return tfJSON(type) }
21874 oneOf: function oneOf () {
21875 var types = [].slice.call(arguments).map(compile)
21877 function _oneOf (value, strict) {
21878 return types.some(function (type) {
21880 return typeforce(type, value, strict)
21886 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21891 quacksLike: function quacksLike (type) {
21892 function _quacksLike (value) {
21893 return type === getValueTypeName(value)
21895 _quacksLike.toJSON = function () { return type }
21900 tuple: function tuple () {
21901 var types = [].slice.call(arguments).map(compile)
21903 function _tuple (values, strict) {
21904 return types.every(function (type, i) {
21906 return typeforce(type, values[i], strict)
21908 throw tfSubError(e, i)
21910 }) && (!strict || values.length === arguments.length)
21912 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21917 value: function value (expected) {
21918 function _value (actual) {
21919 return actual === expected
21921 _value.toJSON = function () { return expected }
21927 function compile (type) {
21928 if (NATIVE.String(type)) {
21929 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21931 return NATIVE[type] || TYPES.quacksLike(type)
21932 } else if (type && NATIVE.Object(type)) {
21933 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21935 return TYPES.object(type)
21936 } else if (NATIVE.Function(type)) {
21940 return TYPES.value(type)
21943 function typeforce (type, value, strict, surrogate) {
21944 if (NATIVE.Function(type)) {
21945 if (type(value, strict)) return true
21947 throw new TfTypeError(surrogate || type, value)
21951 return typeforce(compile(type), value, strict)
21954 // assign types to typeforce function
21955 for (var typeName in NATIVE) {
21956 typeforce[typeName] = NATIVE[typeName]
21959 for (typeName in TYPES) {
21960 typeforce[typeName] = TYPES[typeName]
21963 var EXTRA = require('./extra')
21964 for (typeName in EXTRA) {
21965 typeforce[typeName] = EXTRA[typeName]
21969 function __async (type, value, strict, callback) {
21970 // default to falsy strict if using shorthand overload
21971 if (typeof strict === 'function') return __async(type, value, false, strict)
21974 typeforce(type, value, strict)
21982 typeforce.async = __async
21983 typeforce.compile = compile
21984 typeforce.TfTypeError = TfTypeError
21985 typeforce.TfPropertyTypeError = TfPropertyTypeError
21987 module.exports = typeforce
21989 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21991 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21992 Boolean: function (value) { return typeof value === 'boolean' },
21993 Function: function (value) { return typeof value === 'function' },
21994 Nil: function (value) { return value === undefined || value === null },
21995 Number: function (value) { return typeof value === 'number' },
21996 Object: function (value) { return typeof value === 'object' },
21997 String: function (value) { return typeof value === 'string' },
21998 '': function () { return true }
22002 types.Null = types.Nil
22004 for (var typeName in types) {
22005 types[typeName].toJSON = function (t) {
22007 }.bind(null, typeName)
22010 module.exports = types
22012 },{}],111:[function(require,module,exports){
22013 (function (Buffer){
22016 // Number.MAX_SAFE_INTEGER
22017 var MAX_SAFE_INTEGER = 9007199254740991
22019 function checkUInt53 (n) {
22020 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
22023 function encode (number, buffer, offset) {
22024 checkUInt53(number)
22026 if (!buffer) buffer = new Buffer(encodingLength(number))
22027 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22028 if (!offset) offset = 0
22031 if (number < 0xfd) {
22032 buffer.writeUInt8(number, offset)
22036 } else if (number <= 0xffff) {
22037 buffer.writeUInt8(0xfd, offset)
22038 buffer.writeUInt16LE(number, offset + 1)
22042 } else if (number <= 0xffffffff) {
22043 buffer.writeUInt8(0xfe, offset)
22044 buffer.writeUInt32LE(number, offset + 1)
22049 buffer.writeUInt8(0xff, offset)
22050 buffer.writeUInt32LE(number >>> 0, offset + 1)
22051 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22058 function decode (buffer, offset) {
22059 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22060 if (!offset) offset = 0
22062 var first = buffer.readUInt8(offset)
22065 if (first < 0xfd) {
22070 } else if (first === 0xfd) {
22072 return buffer.readUInt16LE(offset + 1)
22075 } else if (first === 0xfe) {
22077 return buffer.readUInt32LE(offset + 1)
22082 var lo = buffer.readUInt32LE(offset + 1)
22083 var hi = buffer.readUInt32LE(offset + 5)
22084 var number = hi * 0x0100000000 + lo
22085 checkUInt53(number)
22091 function encodingLength (number) {
22092 checkUInt53(number)
22096 : number <= 0xffff ? 3
22097 : number <= 0xffffffff ? 5
22102 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22104 }).call(this,require("buffer
").Buffer)
22105 },{"buffer
":4}],112:[function(require,module,exports){
22106 (function (Buffer){
22107 var bs58check = require('bs58check')
22109 function decodeRaw (buffer, version) {
22110 // check version only if defined
22111 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22114 if (buffer.length === 33) {
22116 version: buffer[0],
22117 privateKey: buffer.slice(1, 33),
22123 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22125 // invalid compression flag
22126 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22129 version: buffer[0],
22130 privateKey: buffer.slice(1, 33),
22135 function encodeRaw (version, privateKey, compressed) {
22136 var result = new Buffer(compressed ? 34 : 33)
22138 result.writeUInt8(version, 0)
22139 privateKey.copy(result, 1)
22148 function decode (string, version) {
22149 return decodeRaw(bs58check.decode(string), version)
22152 function encode (version, privateKey, compressed) {
22153 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22155 return bs58check.encode(
22158 version.privateKey,
22166 decodeRaw: decodeRaw,
22168 encodeRaw: encodeRaw
22171 }).call(this,require("buffer
").Buffer)
22172 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22175 <script>bitcoinjs.bitcoin.networks.shadow = {
22176 messagePrefix: 'unused',
22178 public: 0xEE80286A,
22179 private: 0xEE8031E8
22186 bitcoinjs.bitcoin.networks.shadowtn = {
22187 messagePrefix: 'unused',
22189 public: 0x76C0FDFB,
22190 private: 0x76C1077A
22197 bitcoinjs.bitcoin.networks.clam = {
22198 messagePrefix: 'unused',
22200 public: 0xa8c26d64,
22201 private: 0xa8c17826
22204 scriptHash: 0x00, // TODO set this correctly
22208 bitcoinjs.bitcoin.networks.crown = {
22209 messagePrefix: 'unused',
22211 public: 0x0488b21e,
22212 private: 0x0488ade4
22219 bitcoinjs.bitcoin.networks.dash = {
22220 messagePrefix: 'unused',
22222 public: 0x0488b21e,
22223 private: 0x0488ade4
22230 bitcoinjs.bitcoin.networks.maza = {
22231 messagePrefix: 'unused',
22233 public: 0x0488b21e,
22234 private: 0x0488ade4
22241 bitcoinjs.bitcoin.networks.dashtn = {
22242 messagePrefix: 'unused',
22244 public: 0x043587cf,
22245 private: 0x04358394
22252 bitcoinjs.bitcoin.networks.game = {
22253 messagePrefix: 'unused',
22255 public: 0x0488b21e,
22256 private: 0x0488ade4
22263 bitcoinjs.bitcoin.networks.namecoin = {
22264 messagePrefix: 'unused',
22266 public: 0x0488b21e,
22267 private: 0x0488ade4
22270 scriptHash: 0x00, // TODO set this correctly
22274 bitcoinjs.bitcoin.networks.peercoin = {
22275 messagePrefix: 'unused',
22277 public: 0x0488b21e,
22278 private: 0x0488ade4
22281 scriptHash: 0x00, // TODO set this correctly
22285 bitcoinjs.bitcoin.networks.slimcoin = {
22286 messagePrefix: 'unused',
22288 public: 0xef6adf10,
22289 private: 0xef69ea80
22296 bitcoinjs.bitcoin.networks.slimcointn = {
22297 messagePrefix: 'unused',
22299 public: 0x043587CF,
22300 private: 0x04358394
22307 bitcoinjs.bitcoin.networks.dogecoin = {
22308 messagePrefix: '\x19Dogecoin Signed Message:\n',
22310 public: 0x02facafd,
22311 private: 0x02fac398
22318 bitcoinjs.bitcoin.networks.viacoin = {
22319 messagePrefix: '\x18Viacoin Signed Message:\n',
22321 public: 0x0488b21e,
22322 private: 0x0488ade4
22329 bitcoinjs.bitcoin.networks.viacointestnet = {
22330 messagePrefix: '\x18Viacoin Signed Message:\n',
22332 public: 0x043587cf,
22333 private: 0x04358394
22340 bitcoinjs.bitcoin.networks.gamerscoin = {
22341 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22343 public: 0x019da462,
22344 private: 0x019d9cfe
22351 bitcoinjs.bitcoin.networks.jumbucks = {
22352 messagePrefix: '\x19Jumbucks Signed Message:\n',
22354 public: 0x037a689a,
22355 private: 0x037a6460
22362 bitcoinjs.bitcoin.networks.zetacoin = {
22363 messagePrefix: '\x18Zetacoin Signed Message:\n',
22365 public: 0x0488b21e,
22366 private: 0x0488ade4
22373 bitcoinjs.bitcoin.networks.myriadcoin = {
22374 messagePrefix: 'unused',
22376 public: 0x0488b21e,
22377 private: 0x0488ade4
22380 scriptHash: 0x00, // TODO set this correctly
22384 bitcoinjs.bitcoin.networks.pivx = {
22385 messagePrefix: 'unused',
22387 public: 0x022d2533,
22388 private: 0x0221312b
22395 bitcoinjs.bitcoin.networks.pivxtestnet = {
22396 messagePrefix: 'unused',
22398 public: 0x3a8061a0,
22399 private: 0x3a805837
22406 bitcoinjs.bitcoin.networks.fujicoin = {
22407 messagePrefix: '\x19FujiCoin Signed Message:\n',
22409 public: 0x0488b21e,
22410 private: 0x0488ade4
22417 bitcoinjs.bitcoin.networks.nubits = {
22418 messagePrefix: '\x18Nu Signed Message:\n',
22420 public: 0x0488b21e,
22421 private: 0x0488ade4
22428 bitcoinjs.bitcoin.networks.bgold = {
22429 messagePrefix: 'unused',
22431 public: 0x0488b21e,
22432 private: 0x0488ade4
22439 bitcoinjs.bitcoin.networks.bitcoinCashBitbpay = {
22440 messagePrefix: '\x18Bitcoin Signed Message:\n',
22442 public: 0x0488b21e,
22443 private: 0x0488ade4
22450 bitcoinjs.bitcoin.networks.monacoin = {
22451 messagePrefix: '\x18Monacoin Signed Message:\n',
22453 public: 0x0488b21e,
22454 private: 0x0488ade4
22461 bitcoinjs.bitcoin.networks.bitcoinBip49 = {
22462 messagePrefix: '\x18Bitcoin Signed Message:\n',
22464 public: 0x049d7cb2,
22465 private: 0x049d7878
22472 bitcoinjs.bitcoin.networks.testnetBip49 = {
22473 messagePrefix: '\x18Bitcoin Signed Message:\n',
22475 public: 0x044a5262,
22476 private: 0x044a4e28
22483 bitcoinjs.bitcoin.networks.litecoinBip49 = {
22484 messagePrefix: '\x19Litecoin Signed Message:\n',
22486 public: 0x01b26ef6,
22487 private: 0x01b26792
22494 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ethUtil = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
22495 (function (global){
22498 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22499 // original notice:
22502 * The buffer module from node.js, for the browser.
22504 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22507 function compare(a, b) {
22515 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22516 if (a[i] !== b[i]) {
22531 function isBuffer(b) {
22532 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22533 return global.Buffer.isBuffer(b);
22535 return !!(b != null && b._isBuffer);
22538 // based on node assert, original notice:
22540 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22542 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22544 // Originally from narwhal.js (http://narwhaljs.org)
22545 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22547 // Permission is hereby granted, free of charge, to any person obtaining a copy
22548 // of this software and associated documentation files (the 'Software'), to
22549 // deal in the Software without restriction, including without limitation the
22550 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22551 // sell copies of the Software, and to permit persons to whom the Software is
22552 // furnished to do so, subject to the following conditions:
22554 // The above copyright notice and this permission notice shall be included in
22555 // all copies or substantial portions of the Software.
22557 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22558 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22559 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22560 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22561 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22562 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22564 var util = require('util/');
22565 var hasOwn = Object.prototype.hasOwnProperty;
22566 var pSlice = Array.prototype.slice;
22567 var functionsHaveNames = (function () {
22568 return function foo() {}.name === 'foo';
22570 function pToString (obj) {
22571 return Object.prototype.toString.call(obj);
22573 function isView(arrbuf) {
22574 if (isBuffer(arrbuf)) {
22577 if (typeof global.ArrayBuffer !== 'function') {
22580 if (typeof ArrayBuffer.isView === 'function') {
22581 return ArrayBuffer.isView(arrbuf);
22586 if (arrbuf instanceof DataView) {
22589 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22594 //
1. The assert module provides functions that throw
22595 // AssertionError's when particular conditions are not met. The
22596 // assert module must conform to the following interface.
22598 var assert = module.exports = ok;
22600 //
2. The AssertionError is defined in assert.
22601 // new assert.AssertionError({ message: message,
22603 // expected: expected })
22605 var regex = /\s*function\s+([^\(\s]*)\s*/;
22606 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22607 function getName(func) {
22608 if (!util.isFunction(func)) {
22611 if (functionsHaveNames) {
22614 var str = func.toString();
22615 var match = str.match(regex);
22616 return match && match[
1];
22618 assert.AssertionError = function AssertionError(options) {
22619 this.name = 'AssertionError';
22620 this.actual = options.actual;
22621 this.expected = options.expected;
22622 this.operator = options.operator;
22623 if (options.message) {
22624 this.message = options.message;
22625 this.generatedMessage = false;
22627 this.message = getMessage(this);
22628 this.generatedMessage = true;
22630 var stackStartFunction = options.stackStartFunction || fail;
22631 if (Error.captureStackTrace) {
22632 Error.captureStackTrace(this, stackStartFunction);
22634 // non v8 browsers so we can have a stacktrace
22635 var err = new Error();
22637 var out = err.stack;
22639 // try to strip useless frames
22640 var fn_name = getName(stackStartFunction);
22641 var idx = out.indexOf('\n' + fn_name);
22643 // once we have located the function frame
22644 // we need to strip out everything before it (and its line)
22645 var next_line = out.indexOf('\n', idx +
1);
22646 out = out.substring(next_line +
1);
22654 // assert.AssertionError instanceof Error
22655 util.inherits(assert.AssertionError, Error);
22657 function truncate(s, n) {
22658 if (typeof s === 'string') {
22659 return s.length < n ? s : s.slice(
0, n);
22664 function inspect(something) {
22665 if (functionsHaveNames || !util.isFunction(something)) {
22666 return util.inspect(something);
22668 var rawname = getName(something);
22669 var name = rawname ? ': ' + rawname : '';
22670 return '[Function' + name + ']';
22672 function getMessage(self) {
22673 return truncate(inspect(self.actual),
128) + ' ' +
22674 self.operator + ' ' +
22675 truncate(inspect(self.expected),
128);
22678 // At present only the three keys mentioned above are used and
22679 // understood by the spec. Implementations or sub modules can pass
22680 // other keys to the AssertionError's constructor - they will be
22683 //
3. All of the following functions must throw an AssertionError
22684 // when a corresponding condition is not met, with a message that
22685 // may be undefined if not provided. All assertion methods provide
22686 // both the actual and expected values to the assertion error for
22687 // display purposes.
22689 function fail(actual, expected, message, operator, stackStartFunction) {
22690 throw new assert.AssertionError({
22693 expected: expected,
22694 operator: operator,
22695 stackStartFunction: stackStartFunction
22699 // EXTENSION! allows for well behaved errors defined elsewhere.
22700 assert.fail = fail;
22702 //
4. Pure assertion tests whether a value is truthy, as determined
22704 // assert.ok(guard, message_opt);
22705 // This statement is equivalent to assert.equal(true, !!guard,
22706 // message_opt);. To test strictly for the value true, use
22707 // assert.strictEqual(true, guard, message_opt);.
22709 function ok(value, message) {
22710 if (!value) fail(value, true, message, '==', assert.ok);
22714 //
5. The equality assertion tests shallow, coercive equality with
22716 // assert.equal(actual, expected, message_opt);
22718 assert.equal = function equal(actual, expected, message) {
22719 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22722 //
6. The non-equality assertion tests for whether two objects are not equal
22723 // with != assert.notEqual(actual, expected, message_opt);
22725 assert.notEqual = function notEqual(actual, expected, message) {
22726 if (actual == expected) {
22727 fail(actual, expected, message, '!=', assert.notEqual);
22731 //
7. The equivalence assertion tests a deep equality relation.
22732 // assert.deepEqual(actual, expected, message_opt);
22734 assert.deepEqual = function deepEqual(actual, expected, message) {
22735 if (!_deepEqual(actual, expected, false)) {
22736 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22740 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22741 if (!_deepEqual(actual, expected, true)) {
22742 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22746 function _deepEqual(actual, expected, strict, memos) {
22747 //
7.1. All identical values are equivalent, as determined by ===.
22748 if (actual === expected) {
22750 } else if (isBuffer(actual) && isBuffer(expected)) {
22751 return compare(actual, expected) ===
0;
22753 //
7.2. If the expected value is a Date object, the actual value is
22754 // equivalent if it is also a Date object that refers to the same time.
22755 } else if (util.isDate(actual) && util.isDate(expected)) {
22756 return actual.getTime() === expected.getTime();
22758 //
7.3 If the expected value is a RegExp object, the actual value is
22759 // equivalent if it is also a RegExp object with the same source and
22760 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22761 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22762 return actual.source === expected.source &&
22763 actual.global === expected.global &&
22764 actual.multiline === expected.multiline &&
22765 actual.lastIndex === expected.lastIndex &&
22766 actual.ignoreCase === expected.ignoreCase;
22768 //
7.4. Other pairs that do not both pass typeof value == 'object',
22769 // equivalence is determined by ==.
22770 } else if ((actual === null || typeof actual !== 'object') &&
22771 (expected === null || typeof expected !== 'object')) {
22772 return strict ? actual === expected : actual == expected;
22774 // If both values are instances of typed arrays, wrap their underlying
22775 // ArrayBuffers in a Buffer each to increase performance
22776 // This optimization requires the arrays to have the same type as checked by
22777 // Object.prototype.toString (aka pToString). Never perform binary
22778 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22779 // bit patterns are not identical.
22780 } else if (isView(actual) && isView(expected) &&
22781 pToString(actual) === pToString(expected) &&
22782 !(actual instanceof Float32Array ||
22783 actual instanceof Float64Array)) {
22784 return compare(new Uint8Array(actual.buffer),
22785 new Uint8Array(expected.buffer)) ===
0;
22787 //
7.5 For all other Object pairs, including Array objects, equivalence is
22788 // determined by having the same number of owned properties (as verified
22789 // with Object.prototype.hasOwnProperty.call), the same set of keys
22790 // (although not necessarily the same order), equivalent values for every
22791 // corresponding key, and an identical 'prototype' property. Note: this
22792 // accounts for both named and indexed properties on Arrays.
22793 } else if (isBuffer(actual) !== isBuffer(expected)) {
22796 memos = memos || {actual: [], expected: []};
22798 var actualIndex = memos.actual.indexOf(actual);
22799 if (actualIndex !== -
1) {
22800 if (actualIndex === memos.expected.indexOf(expected)) {
22805 memos.actual.push(actual);
22806 memos.expected.push(expected);
22808 return objEquiv(actual, expected, strict, memos);
22812 function isArguments(object) {
22813 return Object.prototype.toString.call(object) == '[object Arguments]';
22816 function objEquiv(a, b, strict, actualVisitedObjects) {
22817 if (a === null || a === undefined || b === null || b === undefined)
22819 // if one is a primitive, the other must be same
22820 if (util.isPrimitive(a) || util.isPrimitive(b))
22822 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22824 var aIsArgs = isArguments(a);
22825 var bIsArgs = isArguments(b);
22826 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22829 a = pSlice.call(a);
22830 b = pSlice.call(b);
22831 return _deepEqual(a, b, strict);
22833 var ka = objectKeys(a);
22834 var kb = objectKeys(b);
22836 // having the same number of owned properties (keys incorporates
22838 if (ka.length !== kb.length)
22840 //the same set of keys (although not necessarily the same order),
22843 //~~~cheap key test
22844 for (i = ka.length -
1; i
>=
0; i--) {
22845 if (ka[i] !== kb[i])
22848 //equivalent values for every corresponding key, and
22849 //~~~possibly expensive deep test
22850 for (i = ka.length -
1; i
>=
0; i--) {
22852 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22858 //
8. The non-equivalence assertion tests for any deep inequality.
22859 // assert.notDeepEqual(actual, expected, message_opt);
22861 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22862 if (_deepEqual(actual, expected, false)) {
22863 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22867 assert.notDeepStrictEqual = notDeepStrictEqual;
22868 function notDeepStrictEqual(actual, expected, message) {
22869 if (_deepEqual(actual, expected, true)) {
22870 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22875 //
9. The strict equality assertion tests strict equality, as determined by ===.
22876 // assert.strictEqual(actual, expected, message_opt);
22878 assert.strictEqual = function strictEqual(actual, expected, message) {
22879 if (actual !== expected) {
22880 fail(actual, expected, message, '===', assert.strictEqual);
22884 //
10. The strict non-equality assertion tests for strict inequality, as
22885 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22887 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22888 if (actual === expected) {
22889 fail(actual, expected, message, '!==', assert.notStrictEqual);
22893 function expectedException(actual, expected) {
22894 if (!actual || !expected) {
22898 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22899 return expected.test(actual);
22903 if (actual instanceof expected) {
22907 // Ignore. The instanceof check doesn't work for arrow functions.
22910 if (Error.isPrototypeOf(expected)) {
22914 return expected.call({}, actual) === true;
22917 function _tryBlock(block) {
22927 function _throws(shouldThrow, block, expected, message) {
22930 if (typeof block !== 'function') {
22931 throw new TypeError('"block" argument must be a function');
22934 if (typeof expected === 'string') {
22935 message = expected;
22939 actual = _tryBlock(block);
22941 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22942 (message ? ' ' + message : '.');
22944 if (shouldThrow && !actual) {
22945 fail(actual, expected, 'Missing expected exception' + message);
22948 var userProvidedMessage = typeof message === 'string';
22949 var isUnwantedException = !shouldThrow && util.isError(actual);
22950 var isUnexpectedException = !shouldThrow && actual && !expected;
22952 if ((isUnwantedException &&
22953 userProvidedMessage &&
22954 expectedException(actual, expected)) ||
22955 isUnexpectedException) {
22956 fail(actual, expected, 'Got unwanted exception' + message);
22959 if ((shouldThrow && actual && expected &&
22960 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22965 //
11. Expected to throw an error:
22966 // assert.throws(block, Error_opt, message_opt);
22968 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22969 _throws(true, block, error, message);
22972 // EXTENSION! This is annoying to write outside this module.
22973 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22974 _throws(false, block, error, message);
22977 assert.ifError = function(err) { if (err) throw err; };
22979 var objectKeys = Object.keys || function (obj) {
22981 for (var key in obj) {
22982 if (hasOwn.call(obj, key)) keys.push(key);
22987 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22988 },{"util/":
30}],
2:[function(require,module,exports){
22991 exports.byteLength = byteLength
22992 exports.toByteArray = toByteArray
22993 exports.fromByteArray = fromByteArray
22997 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22999 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
23000 for (var i =
0, len = code.length; i < len; ++i) {
23001 lookup[i] = code[i]
23002 revLookup[code.charCodeAt(i)] = i
23005 revLookup['-'.charCodeAt(
0)] =
62
23006 revLookup['_'.charCodeAt(
0)] =
63
23008 function placeHoldersCount (b64) {
23009 var len = b64.length
23011 throw new Error('Invalid string. Length must be a multiple of
4')
23014 // the number of equal signs (place holders)
23015 // if there are two placeholders, than the two characters before it
23016 // represent one byte
23017 // if there is only one, then the three characters before it represent
2 bytes
23018 // this is just a cheap hack to not do indexOf twice
23019 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
23022 function byteLength (b64) {
23023 // base64 is
4/
3 + up to two characters of the original data
23024 return b64.length *
3 /
4 - placeHoldersCount(b64)
23027 function toByteArray (b64) {
23028 var i, j, l, tmp, placeHolders, arr
23029 var len = b64.length
23030 placeHolders = placeHoldersCount(b64)
23032 arr = new Arr(len *
3 /
4 - placeHolders)
23034 // if there are placeholders, only get up to the last complete
4 chars
23035 l = placeHolders
> 0 ? len -
4 : len
23039 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
23040 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
23041 arr[L++] = (tmp
>> 16) &
0xFF
23042 arr[L++] = (tmp
>> 8) &
0xFF
23043 arr[L++] = tmp &
0xFF
23046 if (placeHolders ===
2) {
23047 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
23048 arr[L++] = tmp &
0xFF
23049 } else if (placeHolders ===
1) {
23050 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
23051 arr[L++] = (tmp
>> 8) &
0xFF
23052 arr[L++] = tmp &
0xFF
23058 function tripletToBase64 (num) {
23059 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
23062 function encodeChunk (uint8, start, end) {
23065 for (var i = start; i < end; i +=
3) {
23066 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
23067 output.push(tripletToBase64(tmp))
23069 return output.join('')
23072 function fromByteArray (uint8) {
23074 var len = uint8.length
23075 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
23078 var maxChunkLength =
16383 // must be multiple of
3
23080 // go through the array every three bytes, we'll deal with trailing stuff later
23081 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
23082 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
23085 // pad the end with zeros, but make sure to not forget the extra bytes
23086 if (extraBytes ===
1) {
23087 tmp = uint8[len -
1]
23088 output += lookup[tmp
>> 2]
23089 output += lookup[(tmp <<
4) &
0x3F]
23091 } else if (extraBytes ===
2) {
23092 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
23093 output += lookup[tmp
>> 10]
23094 output += lookup[(tmp
>> 4) &
0x3F]
23095 output += lookup[(tmp <<
2) &
0x3F]
23101 return parts.join('')
23104 },{}],
3:[function(require,module,exports){
23106 },{}],
4:[function(require,module,exports){
23107 (function (global){
23110 var buffer = require('buffer');
23111 var Buffer = buffer.Buffer;
23112 var SlowBuffer = buffer.SlowBuffer;
23113 var MAX_LEN = buffer.kMaxLength ||
2147483647;
23114 exports.alloc = function alloc(size, fill, encoding) {
23115 if (typeof Buffer.alloc === 'function') {
23116 return Buffer.alloc(size, fill, encoding);
23118 if (typeof encoding === 'number') {
23119 throw new TypeError('encoding must not be number');
23121 if (typeof size !== 'number') {
23122 throw new TypeError('size must be a number');
23124 if (size
> MAX_LEN) {
23125 throw new RangeError('size is too large');
23127 var enc = encoding;
23129 if (_fill === undefined) {
23133 var buf = new Buffer(size);
23134 if (typeof _fill === 'string') {
23135 var fillBuf = new Buffer(_fill, enc);
23136 var flen = fillBuf.length;
23138 while (++i < size) {
23139 buf[i] = fillBuf[i % flen];
23146 exports.allocUnsafe = function allocUnsafe(size) {
23147 if (typeof Buffer.allocUnsafe === 'function') {
23148 return Buffer.allocUnsafe(size);
23150 if (typeof size !== 'number') {
23151 throw new TypeError('size must be a number');
23153 if (size
> MAX_LEN) {
23154 throw new RangeError('size is too large');
23156 return new Buffer(size);
23158 exports.from = function from(value, encodingOrOffset, length) {
23159 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23160 return Buffer.from(value, encodingOrOffset, length);
23162 if (typeof value === 'number') {
23163 throw new TypeError('"value" argument must not be a number');
23165 if (typeof value === 'string') {
23166 return new Buffer(value, encodingOrOffset);
23168 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23169 var offset = encodingOrOffset;
23170 if (arguments.length ===
1) {
23171 return new Buffer(value);
23173 if (typeof offset === 'undefined') {
23177 if (typeof len === 'undefined') {
23178 len = value.byteLength - offset;
23180 if (offset
>= value.byteLength) {
23181 throw new RangeError('\'offset\' is out of bounds');
23183 if (len
> value.byteLength - offset) {
23184 throw new RangeError('\'length\' is out of bounds');
23186 return new Buffer(value.slice(offset, offset + len));
23188 if (Buffer.isBuffer(value)) {
23189 var out = new Buffer(value.length);
23190 value.copy(out,
0,
0, value.length);
23194 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23195 return new Buffer(value);
23197 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23198 return new Buffer(value.data);
23202 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23204 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23205 if (typeof Buffer.allocUnsafeSlow === 'function') {
23206 return Buffer.allocUnsafeSlow(size);
23208 if (typeof size !== 'number') {
23209 throw new TypeError('size must be a number');
23211 if (size
>= MAX_LEN) {
23212 throw new RangeError('size is too large');
23214 return new SlowBuffer(size);
23217 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23218 },{"buffer":
5}],
5:[function(require,module,exports){
23220 * The buffer module from node.js, for the browser.
23222 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23225 /* eslint-disable no-proto */
23229 var base64 = require('base64-js')
23230 var ieee754 = require('ieee754')
23232 exports.Buffer = Buffer
23233 exports.SlowBuffer = SlowBuffer
23234 exports.INSPECT_MAX_BYTES =
50
23236 var K_MAX_LENGTH =
0x7fffffff
23237 exports.kMaxLength = K_MAX_LENGTH
23240 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23241 * === true Use Uint8Array implementation (fastest)
23242 * === false Print warning and recommend using `buffer` v4.x which has an Object
23243 * implementation (most compatible, even IE6)
23245 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23246 * Opera
11.6+, iOS
4.2+.
23248 * We report that the browser does not support typed arrays if the are not subclassable
23249 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23250 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23251 * for __proto__ and has a buggy typed array implementation.
23253 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23255 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23256 typeof console.error === 'function') {
23258 'This browser lacks typed array (Uint8Array) support which is required by ' +
23259 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23263 function typedArraySupport () {
23264 // Can typed array instances can be augmented?
23266 var arr = new Uint8Array(
1)
23267 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23268 return arr.foo() ===
42
23274 function createBuffer (length) {
23275 if (length
> K_MAX_LENGTH) {
23276 throw new RangeError('Invalid typed array length')
23278 // Return an augmented `Uint8Array` instance
23279 var buf = new Uint8Array(length)
23280 buf.__proto__ = Buffer.prototype
23285 * The Buffer constructor returns instances of `Uint8Array` that have their
23286 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23287 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23288 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23289 * returns a single octet.
23291 * The `Uint8Array` prototype remains unmodified.
23294 function Buffer (arg, encodingOrOffset, length) {
23296 if (typeof arg === 'number') {
23297 if (typeof encodingOrOffset === 'string') {
23299 'If encoding is specified then the first argument must be a string'
23302 return allocUnsafe(arg)
23304 return from(arg, encodingOrOffset, length)
23307 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23308 if (typeof Symbol !== 'undefined' && Symbol.species &&
23309 Buffer[Symbol.species] === Buffer) {
23310 Object.defineProperty(Buffer, Symbol.species, {
23312 configurable: true,
23318 Buffer.poolSize =
8192 // not used by this implementation
23320 function from (value, encodingOrOffset, length) {
23321 if (typeof value === 'number') {
23322 throw new TypeError('"value" argument must not be a number')
23325 if (value instanceof ArrayBuffer) {
23326 return fromArrayBuffer(value, encodingOrOffset, length)
23329 if (typeof value === 'string') {
23330 return fromString(value, encodingOrOffset)
23333 return fromObject(value)
23337 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23338 * if value is a number.
23339 * Buffer.from(str[, encoding])
23340 * Buffer.from(array)
23341 * Buffer.from(buffer)
23342 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23344 Buffer.from = function (value, encodingOrOffset, length) {
23345 return from(value, encodingOrOffset, length)
23348 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23349 // https://github.com/feross/buffer/pull/
148
23350 Buffer.prototype.__proto__ = Uint8Array.prototype
23351 Buffer.__proto__ = Uint8Array
23353 function assertSize (size) {
23354 if (typeof size !== 'number') {
23355 throw new TypeError('"size" argument must be a number')
23356 } else if (size <
0) {
23357 throw new RangeError('"size" argument must not be negative')
23361 function alloc (size, fill, encoding) {
23364 return createBuffer(size)
23366 if (fill !== undefined) {
23367 // Only pay attention to encoding if it's a string. This
23368 // prevents accidentally sending in a number that would
23369 // be interpretted as a start offset.
23370 return typeof encoding === 'string'
23371 ? createBuffer(size).fill(fill, encoding)
23372 : createBuffer(size).fill(fill)
23374 return createBuffer(size)
23378 * Creates a new filled Buffer instance.
23379 * alloc(size[, fill[, encoding]])
23381 Buffer.alloc = function (size, fill, encoding) {
23382 return alloc(size, fill, encoding)
23385 function allocUnsafe (size) {
23387 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23391 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23393 Buffer.allocUnsafe = function (size) {
23394 return allocUnsafe(size)
23397 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23399 Buffer.allocUnsafeSlow = function (size) {
23400 return allocUnsafe(size)
23403 function fromString (string, encoding) {
23404 if (typeof encoding !== 'string' || encoding === '') {
23408 if (!Buffer.isEncoding(encoding)) {
23409 throw new TypeError('"encoding" must be a valid string encoding')
23412 var length = byteLength(string, encoding) |
0
23413 var buf = createBuffer(length)
23415 var actual = buf.write(string, encoding)
23417 if (actual !== length) {
23418 // Writing a hex string, for example, that contains invalid characters will
23419 // cause everything after the first invalid character to be ignored. (e.g.
23420 // 'abxxcd' will be treated as 'ab')
23421 buf = buf.slice(
0, actual)
23427 function fromArrayLike (array) {
23428 var length = array.length <
0 ?
0 : checked(array.length) |
0
23429 var buf = createBuffer(length)
23430 for (var i =
0; i < length; i +=
1) {
23431 buf[i] = array[i] &
255
23436 function fromArrayBuffer (array, byteOffset, length) {
23437 if (byteOffset <
0 || array.byteLength < byteOffset) {
23438 throw new RangeError('\'offset\' is out of bounds')
23441 if (array.byteLength < byteOffset + (length ||
0)) {
23442 throw new RangeError('\'length\' is out of bounds')
23446 if (byteOffset === undefined && length === undefined) {
23447 buf = new Uint8Array(array)
23448 } else if (length === undefined) {
23449 buf = new Uint8Array(array, byteOffset)
23451 buf = new Uint8Array(array, byteOffset, length)
23454 // Return an augmented `Uint8Array` instance
23455 buf.__proto__ = Buffer.prototype
23459 function fromObject (obj) {
23460 if (Buffer.isBuffer(obj)) {
23461 var len = checked(obj.length) |
0
23462 var buf = createBuffer(len)
23464 if (buf.length ===
0) {
23468 obj.copy(buf,
0,
0, len)
23473 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23474 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23475 return createBuffer(
0)
23477 return fromArrayLike(obj)
23480 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23481 return fromArrayLike(obj.data)
23485 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23488 function checked (length) {
23489 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23490 // length is NaN (which is otherwise coerced to zero.)
23491 if (length
>= K_MAX_LENGTH) {
23492 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23493 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23498 function SlowBuffer (length) {
23499 if (+length != length) { // eslint-disable-line eqeqeq
23502 return Buffer.alloc(+length)
23505 Buffer.isBuffer = function isBuffer (b) {
23506 return b != null && b._isBuffer === true
23509 Buffer.compare = function compare (a, b) {
23510 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23511 throw new TypeError('Arguments must be Buffers')
23514 if (a === b) return
0
23519 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23520 if (a[i] !== b[i]) {
23527 if (x < y) return -
1
23528 if (y < x) return
1
23532 Buffer.isEncoding = function isEncoding (encoding) {
23533 switch (String(encoding).toLowerCase()) {
23551 Buffer.concat = function concat (list, length) {
23552 if (!Array.isArray(list)) {
23553 throw new TypeError('"list" argument must be an Array of Buffers')
23556 if (list.length ===
0) {
23557 return Buffer.alloc(
0)
23561 if (length === undefined) {
23563 for (i =
0; i < list.length; ++i) {
23564 length += list[i].length
23568 var buffer = Buffer.allocUnsafe(length)
23570 for (i =
0; i < list.length; ++i) {
23572 if (!Buffer.isBuffer(buf)) {
23573 throw new TypeError('"list" argument must be an Array of Buffers')
23575 buf.copy(buffer, pos)
23581 function byteLength (string, encoding) {
23582 if (Buffer.isBuffer(string)) {
23583 return string.length
23585 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23586 return string.byteLength
23588 if (typeof string !== 'string') {
23589 string = '' + string
23592 var len = string.length
23593 if (len ===
0) return
0
23595 // Use a for loop to avoid recursion
23596 var loweredCase = false
23598 switch (encoding) {
23606 return utf8ToBytes(string).length
23615 return base64ToBytes(string).length
23617 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23618 encoding = ('' + encoding).toLowerCase()
23623 Buffer.byteLength = byteLength
23625 function slowToString (encoding, start, end) {
23626 var loweredCase = false
23628 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23629 // property of a typed array.
23631 // This behaves neither like String nor Uint8Array in that we set start/end
23632 // to their upper/lower bounds if the value passed is out of range.
23633 // undefined is handled specially as per ECMA-
262 6th Edition,
23634 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23635 if (start === undefined || start <
0) {
23638 // Return early if start
> this.length. Done here to prevent potential uint32
23639 // coercion fail below.
23640 if (start
> this.length) {
23644 if (end === undefined || end
> this.length) {
23652 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23656 if (end <= start) {
23660 if (!encoding) encoding = 'utf8'
23663 switch (encoding) {
23665 return hexSlice(this, start, end)
23669 return utf8Slice(this, start, end)
23672 return asciiSlice(this, start, end)
23676 return latin1Slice(this, start, end)
23679 return base64Slice(this, start, end)
23685 return utf16leSlice(this, start, end)
23688 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23689 encoding = (encoding + '').toLowerCase()
23695 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23696 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23697 // reliably in a browserify context because there could be multiple different
23698 // copies of the 'buffer' package in use. This method works even for Buffer
23699 // instances that were created from another copy of the `buffer` package.
23700 // See: https://github.com/feross/buffer/issues/
154
23701 Buffer.prototype._isBuffer = true
23703 function swap (b, n, m) {
23709 Buffer.prototype.swap16 = function swap16 () {
23710 var len = this.length
23711 if (len %
2 !==
0) {
23712 throw new RangeError('Buffer size must be a multiple of
16-bits')
23714 for (var i =
0; i < len; i +=
2) {
23715 swap(this, i, i +
1)
23720 Buffer.prototype.swap32 = function swap32 () {
23721 var len = this.length
23722 if (len %
4 !==
0) {
23723 throw new RangeError('Buffer size must be a multiple of
32-bits')
23725 for (var i =
0; i < len; i +=
4) {
23726 swap(this, i, i +
3)
23727 swap(this, i +
1, i +
2)
23732 Buffer.prototype.swap64 = function swap64 () {
23733 var len = this.length
23734 if (len %
8 !==
0) {
23735 throw new RangeError('Buffer size must be a multiple of
64-bits')
23737 for (var i =
0; i < len; i +=
8) {
23738 swap(this, i, i +
7)
23739 swap(this, i +
1, i +
6)
23740 swap(this, i +
2, i +
5)
23741 swap(this, i +
3, i +
4)
23746 Buffer.prototype.toString = function toString () {
23747 var length = this.length
23748 if (length ===
0) return ''
23749 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23750 return slowToString.apply(this, arguments)
23753 Buffer.prototype.equals = function equals (b) {
23754 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23755 if (this === b) return true
23756 return Buffer.compare(this, b) ===
0
23759 Buffer.prototype.inspect = function inspect () {
23761 var max = exports.INSPECT_MAX_BYTES
23762 if (this.length
> 0) {
23763 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23764 if (this.length
> max) str += ' ... '
23766 return '
<Buffer ' + str + '
>'
23769 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23770 if (!Buffer.isBuffer(target)) {
23771 throw new TypeError('Argument must be a Buffer')
23774 if (start === undefined) {
23777 if (end === undefined) {
23778 end = target ? target.length :
0
23780 if (thisStart === undefined) {
23783 if (thisEnd === undefined) {
23784 thisEnd = this.length
23787 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23788 throw new RangeError('out of range index')
23791 if (thisStart
>= thisEnd && start
>= end) {
23794 if (thisStart
>= thisEnd) {
23797 if (start
>= end) {
23806 if (this === target) return
0
23808 var x = thisEnd - thisStart
23809 var y = end - start
23810 var len = Math.min(x, y)
23812 var thisCopy = this.slice(thisStart, thisEnd)
23813 var targetCopy = target.slice(start, end)
23815 for (var i =
0; i < len; ++i) {
23816 if (thisCopy[i] !== targetCopy[i]) {
23823 if (x < y) return -
1
23824 if (y < x) return
1
23828 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23829 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23832 // - buffer - a Buffer to search
23833 // - val - a string, Buffer, or number
23834 // - byteOffset - an index into `buffer`; will be clamped to an int32
23835 // - encoding - an optional encoding, relevant is val is a string
23836 // - dir - true for indexOf, false for lastIndexOf
23837 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23838 // Empty buffer means no match
23839 if (buffer.length ===
0) return -
1
23841 // Normalize byteOffset
23842 if (typeof byteOffset === 'string') {
23843 encoding = byteOffset
23845 } else if (byteOffset
> 0x7fffffff) {
23846 byteOffset =
0x7fffffff
23847 } else if (byteOffset < -
0x80000000) {
23848 byteOffset = -
0x80000000
23850 byteOffset = +byteOffset // Coerce to Number.
23851 if (isNaN(byteOffset)) {
23852 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23853 byteOffset = dir ?
0 : (buffer.length -
1)
23856 // Normalize byteOffset: negative offsets start from the end of the buffer
23857 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23858 if (byteOffset
>= buffer.length) {
23860 else byteOffset = buffer.length -
1
23861 } else if (byteOffset <
0) {
23862 if (dir) byteOffset =
0
23867 if (typeof val === 'string') {
23868 val = Buffer.from(val, encoding)
23871 // Finally, search either indexOf (if dir is true) or lastIndexOf
23872 if (Buffer.isBuffer(val)) {
23873 // Special case: looking for empty string/buffer always fails
23874 if (val.length ===
0) {
23877 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23878 } else if (typeof val === 'number') {
23879 val = val &
0xFF // Search for a byte value [
0-
255]
23880 if (typeof Uint8Array.prototype.indexOf === 'function') {
23882 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23884 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23887 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23890 throw new TypeError('val must be string, number or Buffer')
23893 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23895 var arrLength = arr.length
23896 var valLength = val.length
23898 if (encoding !== undefined) {
23899 encoding = String(encoding).toLowerCase()
23900 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23901 encoding === 'utf16le' || encoding === 'utf-
16le') {
23902 if (arr.length <
2 || val.length <
2) {
23912 function read (buf, i) {
23913 if (indexSize ===
1) {
23916 return buf.readUInt16BE(i * indexSize)
23922 var foundIndex = -
1
23923 for (i = byteOffset; i < arrLength; i++) {
23924 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23925 if (foundIndex === -
1) foundIndex = i
23926 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23928 if (foundIndex !== -
1) i -= i - foundIndex
23933 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23934 for (i = byteOffset; i
>=
0; i--) {
23936 for (var j =
0; j < valLength; j++) {
23937 if (read(arr, i + j) !== read(val, j)) {
23942 if (found) return i
23949 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23950 return this.indexOf(val, byteOffset, encoding) !== -
1
23953 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23954 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23957 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23958 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23961 function hexWrite (buf, string, offset, length) {
23962 offset = Number(offset) ||
0
23963 var remaining = buf.length - offset
23967 length = Number(length)
23968 if (length
> remaining) {
23973 // must be an even number of digits
23974 var strLen = string.length
23975 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23977 if (length
> strLen /
2) {
23978 length = strLen /
2
23980 for (var i =
0; i < length; ++i) {
23981 var parsed = parseInt(string.substr(i *
2,
2),
16)
23982 if (isNaN(parsed)) return i
23983 buf[offset + i] = parsed
23988 function utf8Write (buf, string, offset, length) {
23989 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23992 function asciiWrite (buf, string, offset, length) {
23993 return blitBuffer(asciiToBytes(string), buf, offset, length)
23996 function latin1Write (buf, string, offset, length) {
23997 return asciiWrite(buf, string, offset, length)
24000 function base64Write (buf, string, offset, length) {
24001 return blitBuffer(base64ToBytes(string), buf, offset, length)
24004 function ucs2Write (buf, string, offset, length) {
24005 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
24008 Buffer.prototype.write = function write (string, offset, length, encoding) {
24009 // Buffer#write(string)
24010 if (offset === undefined) {
24012 length = this.length
24014 // Buffer#write(string, encoding)
24015 } else if (length === undefined && typeof offset === 'string') {
24017 length = this.length
24019 // Buffer#write(string, offset[, length][, encoding])
24020 } else if (isFinite(offset)) {
24021 offset = offset
>>> 0
24022 if (isFinite(length)) {
24023 length = length
>>> 0
24024 if (encoding === undefined) encoding = 'utf8'
24031 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
24035 var remaining = this.length - offset
24036 if (length === undefined || length
> remaining) length = remaining
24038 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
24039 throw new RangeError('Attempt to write outside buffer bounds')
24042 if (!encoding) encoding = 'utf8'
24044 var loweredCase = false
24046 switch (encoding) {
24048 return hexWrite(this, string, offset, length)
24052 return utf8Write(this, string, offset, length)
24055 return asciiWrite(this, string, offset, length)
24059 return latin1Write(this, string, offset, length)
24062 // Warning: maxLength not taken into account in base64Write
24063 return base64Write(this, string, offset, length)
24069 return ucs2Write(this, string, offset, length)
24072 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
24073 encoding = ('' + encoding).toLowerCase()
24079 Buffer.prototype.toJSON = function toJSON () {
24082 data: Array.prototype.slice.call(this._arr || this,
0)
24086 function base64Slice (buf, start, end) {
24087 if (start ===
0 && end === buf.length) {
24088 return base64.fromByteArray(buf)
24090 return base64.fromByteArray(buf.slice(start, end))
24094 function utf8Slice (buf, start, end) {
24095 end = Math.min(buf.length, end)
24100 var firstByte = buf[i]
24101 var codePoint = null
24102 var bytesPerSequence = (firstByte
> 0xEF) ?
4
24103 : (firstByte
> 0xDF) ?
3
24104 : (firstByte
> 0xBF) ?
2
24107 if (i + bytesPerSequence <= end) {
24108 var secondByte, thirdByte, fourthByte, tempCodePoint
24110 switch (bytesPerSequence) {
24112 if (firstByte <
0x80) {
24113 codePoint = firstByte
24117 secondByte = buf[i +
1]
24118 if ((secondByte &
0xC0) ===
0x80) {
24119 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
24120 if (tempCodePoint
> 0x7F) {
24121 codePoint = tempCodePoint
24126 secondByte = buf[i +
1]
24127 thirdByte = buf[i +
2]
24128 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24129 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24130 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24131 codePoint = tempCodePoint
24136 secondByte = buf[i +
1]
24137 thirdByte = buf[i +
2]
24138 fourthByte = buf[i +
3]
24139 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24140 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24141 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24142 codePoint = tempCodePoint
24148 if (codePoint === null) {
24149 // we did not generate a valid codePoint so insert a
24150 // replacement char (U+FFFD) and advance only
1 byte
24152 bytesPerSequence =
1
24153 } else if (codePoint
> 0xFFFF) {
24154 // encode to utf16 (surrogate pair dance)
24155 codePoint -=
0x10000
24156 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24157 codePoint =
0xDC00 | codePoint &
0x3FF
24160 res.push(codePoint)
24161 i += bytesPerSequence
24164 return decodeCodePointsArray(res)
24167 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24168 // the lowest limit is Chrome, with
0x10000 args.
24169 // We go
1 magnitude less, for safety
24170 var MAX_ARGUMENTS_LENGTH =
0x1000
24172 function decodeCodePointsArray (codePoints) {
24173 var len = codePoints.length
24174 if (len <= MAX_ARGUMENTS_LENGTH) {
24175 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24178 // Decode in chunks to avoid
"call stack size exceeded".
24182 res += String.fromCharCode.apply(
24184 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24190 function asciiSlice (buf, start, end) {
24192 end = Math.min(buf.length, end)
24194 for (var i = start; i < end; ++i) {
24195 ret += String.fromCharCode(buf[i] &
0x7F)
24200 function latin1Slice (buf, start, end) {
24202 end = Math.min(buf.length, end)
24204 for (var i = start; i < end; ++i) {
24205 ret += String.fromCharCode(buf[i])
24210 function hexSlice (buf, start, end) {
24211 var len = buf.length
24213 if (!start || start <
0) start =
0
24214 if (!end || end <
0 || end
> len) end = len
24217 for (var i = start; i < end; ++i) {
24218 out += toHex(buf[i])
24223 function utf16leSlice (buf, start, end) {
24224 var bytes = buf.slice(start, end)
24226 for (var i =
0; i < bytes.length; i +=
2) {
24227 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24232 Buffer.prototype.slice = function slice (start, end) {
24233 var len = this.length
24235 end = end === undefined ? len : ~~end
24239 if (start <
0) start =
0
24240 } else if (start
> len) {
24246 if (end <
0) end =
0
24247 } else if (end
> len) {
24251 if (end < start) end = start
24253 var newBuf = this.subarray(start, end)
24254 // Return an augmented `Uint8Array` instance
24255 newBuf.__proto__ = Buffer.prototype
24260 * Need to make sure that buffer isn't trying to write out of bounds.
24262 function checkOffset (offset, ext, length) {
24263 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24264 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24267 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24268 offset = offset
>>> 0
24269 byteLength = byteLength
>>> 0
24270 if (!noAssert) checkOffset(offset, byteLength, this.length)
24272 var val = this[offset]
24275 while (++i < byteLength && (mul *=
0x100)) {
24276 val += this[offset + i] * mul
24282 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24283 offset = offset
>>> 0
24284 byteLength = byteLength
>>> 0
24286 checkOffset(offset, byteLength, this.length)
24289 var val = this[offset + --byteLength]
24291 while (byteLength
> 0 && (mul *=
0x100)) {
24292 val += this[offset + --byteLength] * mul
24298 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24299 offset = offset
>>> 0
24300 if (!noAssert) checkOffset(offset,
1, this.length)
24301 return this[offset]
24304 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24305 offset = offset
>>> 0
24306 if (!noAssert) checkOffset(offset,
2, this.length)
24307 return this[offset] | (this[offset +
1] <<
8)
24310 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24311 offset = offset
>>> 0
24312 if (!noAssert) checkOffset(offset,
2, this.length)
24313 return (this[offset] <<
8) | this[offset +
1]
24316 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24317 offset = offset
>>> 0
24318 if (!noAssert) checkOffset(offset,
4, this.length)
24320 return ((this[offset]) |
24321 (this[offset +
1] <<
8) |
24322 (this[offset +
2] <<
16)) +
24323 (this[offset +
3] *
0x1000000)
24326 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24327 offset = offset
>>> 0
24328 if (!noAssert) checkOffset(offset,
4, this.length)
24330 return (this[offset] *
0x1000000) +
24331 ((this[offset +
1] <<
16) |
24332 (this[offset +
2] <<
8) |
24336 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24337 offset = offset
>>> 0
24338 byteLength = byteLength
>>> 0
24339 if (!noAssert) checkOffset(offset, byteLength, this.length)
24341 var val = this[offset]
24344 while (++i < byteLength && (mul *=
0x100)) {
24345 val += this[offset + i] * mul
24349 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24354 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24355 offset = offset
>>> 0
24356 byteLength = byteLength
>>> 0
24357 if (!noAssert) checkOffset(offset, byteLength, this.length)
24361 var val = this[offset + --i]
24362 while (i
> 0 && (mul *=
0x100)) {
24363 val += this[offset + --i] * mul
24367 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24372 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24373 offset = offset
>>> 0
24374 if (!noAssert) checkOffset(offset,
1, this.length)
24375 if (!(this[offset] &
0x80)) return (this[offset])
24376 return ((
0xff - this[offset] +
1) * -
1)
24379 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24380 offset = offset
>>> 0
24381 if (!noAssert) checkOffset(offset,
2, this.length)
24382 var val = this[offset] | (this[offset +
1] <<
8)
24383 return (val &
0x8000) ? val |
0xFFFF0000 : val
24386 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24387 offset = offset
>>> 0
24388 if (!noAssert) checkOffset(offset,
2, this.length)
24389 var val = this[offset +
1] | (this[offset] <<
8)
24390 return (val &
0x8000) ? val |
0xFFFF0000 : val
24393 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24394 offset = offset
>>> 0
24395 if (!noAssert) checkOffset(offset,
4, this.length)
24397 return (this[offset]) |
24398 (this[offset +
1] <<
8) |
24399 (this[offset +
2] <<
16) |
24400 (this[offset +
3] <<
24)
24403 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24404 offset = offset
>>> 0
24405 if (!noAssert) checkOffset(offset,
4, this.length)
24407 return (this[offset] <<
24) |
24408 (this[offset +
1] <<
16) |
24409 (this[offset +
2] <<
8) |
24413 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24414 offset = offset
>>> 0
24415 if (!noAssert) checkOffset(offset,
4, this.length)
24416 return ieee754.read(this, offset, true,
23,
4)
24419 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24420 offset = offset
>>> 0
24421 if (!noAssert) checkOffset(offset,
4, this.length)
24422 return ieee754.read(this, offset, false,
23,
4)
24425 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24426 offset = offset
>>> 0
24427 if (!noAssert) checkOffset(offset,
8, this.length)
24428 return ieee754.read(this, offset, true,
52,
8)
24431 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24432 offset = offset
>>> 0
24433 if (!noAssert) checkOffset(offset,
8, this.length)
24434 return ieee754.read(this, offset, false,
52,
8)
24437 function checkInt (buf, value, offset, ext, max, min) {
24438 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24439 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24440 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24443 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24445 offset = offset
>>> 0
24446 byteLength = byteLength
>>> 0
24448 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24449 checkInt(this, value, offset, byteLength, maxBytes,
0)
24454 this[offset] = value &
0xFF
24455 while (++i < byteLength && (mul *=
0x100)) {
24456 this[offset + i] = (value / mul) &
0xFF
24459 return offset + byteLength
24462 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24464 offset = offset
>>> 0
24465 byteLength = byteLength
>>> 0
24467 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24468 checkInt(this, value, offset, byteLength, maxBytes,
0)
24471 var i = byteLength -
1
24473 this[offset + i] = value &
0xFF
24474 while (--i
>=
0 && (mul *=
0x100)) {
24475 this[offset + i] = (value / mul) &
0xFF
24478 return offset + byteLength
24481 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24483 offset = offset
>>> 0
24484 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24485 this[offset] = (value &
0xff)
24489 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24491 offset = offset
>>> 0
24492 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24493 this[offset] = (value &
0xff)
24494 this[offset +
1] = (value
>>> 8)
24498 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24500 offset = offset
>>> 0
24501 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24502 this[offset] = (value
>>> 8)
24503 this[offset +
1] = (value &
0xff)
24507 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24509 offset = offset
>>> 0
24510 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24511 this[offset +
3] = (value
>>> 24)
24512 this[offset +
2] = (value
>>> 16)
24513 this[offset +
1] = (value
>>> 8)
24514 this[offset] = (value &
0xff)
24518 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24520 offset = offset
>>> 0
24521 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24522 this[offset] = (value
>>> 24)
24523 this[offset +
1] = (value
>>> 16)
24524 this[offset +
2] = (value
>>> 8)
24525 this[offset +
3] = (value &
0xff)
24529 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24531 offset = offset
>>> 0
24533 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24535 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24541 this[offset] = value &
0xFF
24542 while (++i < byteLength && (mul *=
0x100)) {
24543 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24546 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24549 return offset + byteLength
24552 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24554 offset = offset
>>> 0
24556 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24558 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24561 var i = byteLength -
1
24564 this[offset + i] = value &
0xFF
24565 while (--i
>=
0 && (mul *=
0x100)) {
24566 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24569 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24572 return offset + byteLength
24575 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24577 offset = offset
>>> 0
24578 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24579 if (value <
0) value =
0xff + value +
1
24580 this[offset] = (value &
0xff)
24584 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24586 offset = offset
>>> 0
24587 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24588 this[offset] = (value &
0xff)
24589 this[offset +
1] = (value
>>> 8)
24593 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24595 offset = offset
>>> 0
24596 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24597 this[offset] = (value
>>> 8)
24598 this[offset +
1] = (value &
0xff)
24602 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24604 offset = offset
>>> 0
24605 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24606 this[offset] = (value &
0xff)
24607 this[offset +
1] = (value
>>> 8)
24608 this[offset +
2] = (value
>>> 16)
24609 this[offset +
3] = (value
>>> 24)
24613 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24615 offset = offset
>>> 0
24616 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24617 if (value <
0) value =
0xffffffff + value +
1
24618 this[offset] = (value
>>> 24)
24619 this[offset +
1] = (value
>>> 16)
24620 this[offset +
2] = (value
>>> 8)
24621 this[offset +
3] = (value &
0xff)
24625 function checkIEEE754 (buf, value, offset, ext, max, min) {
24626 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24627 if (offset <
0) throw new RangeError('Index out of range')
24630 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24632 offset = offset
>>> 0
24634 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24636 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24640 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24641 return writeFloat(this, value, offset, true, noAssert)
24644 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24645 return writeFloat(this, value, offset, false, noAssert)
24648 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24650 offset = offset
>>> 0
24652 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24654 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24658 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24659 return writeDouble(this, value, offset, true, noAssert)
24662 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24663 return writeDouble(this, value, offset, false, noAssert)
24666 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24667 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24668 if (!start) start =
0
24669 if (!end && end !==
0) end = this.length
24670 if (targetStart
>= target.length) targetStart = target.length
24671 if (!targetStart) targetStart =
0
24672 if (end
> 0 && end < start) end = start
24674 // Copy
0 bytes; we're done
24675 if (end === start) return
0
24676 if (target.length ===
0 || this.length ===
0) return
0
24678 // Fatal error conditions
24679 if (targetStart <
0) {
24680 throw new RangeError('targetStart out of bounds')
24682 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24683 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24686 if (end
> this.length) end = this.length
24687 if (target.length - targetStart < end - start) {
24688 end = target.length - targetStart + start
24691 var len = end - start
24694 if (this === target && start < targetStart && targetStart < end) {
24695 // descending copy from end
24696 for (i = len -
1; i
>=
0; --i) {
24697 target[i + targetStart] = this[i + start]
24699 } else if (len <
1000) {
24700 // ascending copy from start
24701 for (i =
0; i < len; ++i) {
24702 target[i + targetStart] = this[i + start]
24705 Uint8Array.prototype.set.call(
24707 this.subarray(start, start + len),
24716 // buffer.fill(number[, offset[, end]])
24717 // buffer.fill(buffer[, offset[, end]])
24718 // buffer.fill(string[, offset[, end]][, encoding])
24719 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24720 // Handle string cases:
24721 if (typeof val === 'string') {
24722 if (typeof start === 'string') {
24726 } else if (typeof end === 'string') {
24730 if (val.length ===
1) {
24731 var code = val.charCodeAt(
0)
24736 if (encoding !== undefined && typeof encoding !== 'string') {
24737 throw new TypeError('encoding must be a string')
24739 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24740 throw new TypeError('Unknown encoding: ' + encoding)
24742 } else if (typeof val === 'number') {
24746 // Invalid ranges are not set to a default, so can range check early.
24747 if (start <
0 || this.length < start || this.length < end) {
24748 throw new RangeError('Out of range index')
24751 if (end <= start) {
24755 start = start
>>> 0
24756 end = end === undefined ? this.length : end
>>> 0
24761 if (typeof val === 'number') {
24762 for (i = start; i < end; ++i) {
24766 var bytes = Buffer.isBuffer(val)
24768 : new Buffer(val, encoding)
24769 var len = bytes.length
24770 for (i =
0; i < end - start; ++i) {
24771 this[i + start] = bytes[i % len]
24778 // HELPER FUNCTIONS
24779 // ================
24781 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24783 function base64clean (str) {
24784 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24785 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24786 // Node converts strings with length <
2 to ''
24787 if (str.length <
2) return ''
24788 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24789 while (str.length %
4 !==
0) {
24795 function stringtrim (str) {
24796 if (str.trim) return str.trim()
24797 return str.replace(/^\s+|\s+$/g, '')
24800 function toHex (n) {
24801 if (n <
16) return '
0' + n.toString(
16)
24802 return n.toString(
16)
24805 function utf8ToBytes (string, units) {
24806 units = units || Infinity
24808 var length = string.length
24809 var leadSurrogate = null
24812 for (var i =
0; i < length; ++i) {
24813 codePoint = string.charCodeAt(i)
24815 // is surrogate component
24816 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24817 // last char was a lead
24818 if (!leadSurrogate) {
24820 if (codePoint
> 0xDBFF) {
24821 // unexpected trail
24822 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24824 } else if (i +
1 === length) {
24826 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24831 leadSurrogate = codePoint
24836 //
2 leads in a row
24837 if (codePoint <
0xDC00) {
24838 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24839 leadSurrogate = codePoint
24843 // valid surrogate pair
24844 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24845 } else if (leadSurrogate) {
24846 // valid bmp char, but last char was a lead
24847 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24850 leadSurrogate = null
24853 if (codePoint <
0x80) {
24854 if ((units -=
1) <
0) break
24855 bytes.push(codePoint)
24856 } else if (codePoint <
0x800) {
24857 if ((units -=
2) <
0) break
24859 codePoint
>> 0x6 |
0xC0,
24860 codePoint &
0x3F |
0x80
24862 } else if (codePoint <
0x10000) {
24863 if ((units -=
3) <
0) break
24865 codePoint
>> 0xC |
0xE0,
24866 codePoint
>> 0x6 &
0x3F |
0x80,
24867 codePoint &
0x3F |
0x80
24869 } else if (codePoint <
0x110000) {
24870 if ((units -=
4) <
0) break
24872 codePoint
>> 0x12 |
0xF0,
24873 codePoint
>> 0xC &
0x3F |
0x80,
24874 codePoint
>> 0x6 &
0x3F |
0x80,
24875 codePoint &
0x3F |
0x80
24878 throw new Error('Invalid code point')
24885 function asciiToBytes (str) {
24887 for (var i =
0; i < str.length; ++i) {
24888 // Node's code seems to be doing this and not &
0x7F..
24889 byteArray.push(str.charCodeAt(i) &
0xFF)
24894 function utf16leToBytes (str, units) {
24897 for (var i =
0; i < str.length; ++i) {
24898 if ((units -=
2) <
0) break
24900 c = str.charCodeAt(i)
24910 function base64ToBytes (str) {
24911 return base64.toByteArray(base64clean(str))
24914 function blitBuffer (src, dst, offset, length) {
24915 for (var i =
0; i < length; ++i) {
24916 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24917 dst[i + offset] = src[i]
24922 function isnan (val) {
24923 return val !== val // eslint-disable-line no-self-compare
24926 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24927 (function (Buffer){
24928 // Copyright Joyent, Inc. and other Node contributors.
24930 // Permission is hereby granted, free of charge, to any person obtaining a
24931 // copy of this software and associated documentation files (the
24932 // "Software"), to deal in the Software without restriction, including
24933 // without limitation the rights to use, copy, modify, merge, publish,
24934 // distribute, sublicense, and/or sell copies of the Software, and to permit
24935 // persons to whom the Software is furnished to do so, subject to the
24936 // following conditions:
24938 // The above copyright notice and this permission notice shall be included
24939 // in all copies or substantial portions of the Software.
24941 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24942 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24943 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24944 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24945 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24946 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24947 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24949 // NOTE: These type checking functions intentionally don't use `instanceof`
24950 // because it is fragile and can be easily faked with `Object.create()`.
24952 function isArray(arg) {
24953 if (Array.isArray) {
24954 return Array.isArray(arg);
24956 return objectToString(arg) === '[object Array]';
24958 exports.isArray = isArray;
24960 function isBoolean(arg) {
24961 return typeof arg === 'boolean';
24963 exports.isBoolean = isBoolean;
24965 function isNull(arg) {
24966 return arg === null;
24968 exports.isNull = isNull;
24970 function isNullOrUndefined(arg) {
24971 return arg == null;
24973 exports.isNullOrUndefined = isNullOrUndefined;
24975 function isNumber(arg) {
24976 return typeof arg === 'number';
24978 exports.isNumber = isNumber;
24980 function isString(arg) {
24981 return typeof arg === 'string';
24983 exports.isString = isString;
24985 function isSymbol(arg) {
24986 return typeof arg === 'symbol';
24988 exports.isSymbol = isSymbol;
24990 function isUndefined(arg) {
24991 return arg === void
0;
24993 exports.isUndefined = isUndefined;
24995 function isRegExp(re) {
24996 return objectToString(re) === '[object RegExp]';
24998 exports.isRegExp = isRegExp;
25000 function isObject(arg) {
25001 return typeof arg === 'object' && arg !== null;
25003 exports.isObject = isObject;
25005 function isDate(d) {
25006 return objectToString(d) === '[object Date]';
25008 exports.isDate = isDate;
25010 function isError(e) {
25011 return (objectToString(e) === '[object Error]' || e instanceof Error);
25013 exports.isError = isError;
25015 function isFunction(arg) {
25016 return typeof arg === 'function';
25018 exports.isFunction = isFunction;
25020 function isPrimitive(arg) {
25021 return arg === null ||
25022 typeof arg === 'boolean' ||
25023 typeof arg === 'number' ||
25024 typeof arg === 'string' ||
25025 typeof arg === 'symbol' || // ES6 symbol
25026 typeof arg === 'undefined';
25028 exports.isPrimitive = isPrimitive;
25030 exports.isBuffer = Buffer.isBuffer;
25032 function objectToString(o) {
25033 return Object.prototype.toString.call(o);
25036 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
25037 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
25038 // Copyright Joyent, Inc. and other Node contributors.
25040 // Permission is hereby granted, free of charge, to any person obtaining a
25041 // copy of this software and associated documentation files (the
25042 // "Software"), to deal in the Software without restriction, including
25043 // without limitation the rights to use, copy, modify, merge, publish,
25044 // distribute, sublicense, and/or sell copies of the Software, and to permit
25045 // persons to whom the Software is furnished to do so, subject to the
25046 // following conditions:
25048 // The above copyright notice and this permission notice shall be included
25049 // in all copies or substantial portions of the Software.
25051 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25052 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25053 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25054 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25055 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25056 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25057 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25059 function EventEmitter() {
25060 this._events = this._events || {};
25061 this._maxListeners = this._maxListeners || undefined;
25063 module.exports = EventEmitter;
25065 // Backwards-compat with node
0.10.x
25066 EventEmitter.EventEmitter = EventEmitter;
25068 EventEmitter.prototype._events = undefined;
25069 EventEmitter.prototype._maxListeners = undefined;
25071 // By default EventEmitters will print a warning if more than
10 listeners are
25072 // added to it. This is a useful default which helps finding memory leaks.
25073 EventEmitter.defaultMaxListeners =
10;
25075 // Obviously not all Emitters should be limited to
10. This function allows
25076 // that to be increased. Set to zero for unlimited.
25077 EventEmitter.prototype.setMaxListeners = function(n) {
25078 if (!isNumber(n) || n <
0 || isNaN(n))
25079 throw TypeError('n must be a positive number');
25080 this._maxListeners = n;
25084 EventEmitter.prototype.emit = function(type) {
25085 var er, handler, len, args, i, listeners;
25090 // If there is no 'error' event listener then throw.
25091 if (type === 'error') {
25092 if (!this._events.error ||
25093 (isObject(this._events.error) && !this._events.error.length)) {
25095 if (er instanceof Error) {
25096 throw er; // Unhandled 'error' event
25098 // At least give some kind of context to the user
25099 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
25106 handler = this._events[type];
25108 if (isUndefined(handler))
25111 if (isFunction(handler)) {
25112 switch (arguments.length) {
25115 handler.call(this);
25118 handler.call(this, arguments[
1]);
25121 handler.call(this, arguments[
1], arguments[
2]);
25125 args = Array.prototype.slice.call(arguments,
1);
25126 handler.apply(this, args);
25128 } else if (isObject(handler)) {
25129 args = Array.prototype.slice.call(arguments,
1);
25130 listeners = handler.slice();
25131 len = listeners.length;
25132 for (i =
0; i < len; i++)
25133 listeners[i].apply(this, args);
25139 EventEmitter.prototype.addListener = function(type, listener) {
25142 if (!isFunction(listener))
25143 throw TypeError('listener must be a function');
25148 // To avoid recursion in the case that type === "newListener"! Before
25149 // adding it to the listeners, first emit "newListener".
25150 if (this._events.newListener)
25151 this.emit('newListener', type,
25152 isFunction(listener.listener) ?
25153 listener.listener : listener);
25155 if (!this._events[type])
25156 // Optimize the case of one listener. Don't need the extra array object.
25157 this._events[type] = listener;
25158 else if (isObject(this._events[type]))
25159 // If we've already got an array, just append.
25160 this._events[type].push(listener);
25162 // Adding the second element, need to change to array.
25163 this._events[type] = [this._events[type], listener];
25165 // Check for listener leak
25166 if (isObject(this._events[type]) && !this._events[type].warned) {
25167 if (!isUndefined(this._maxListeners)) {
25168 m = this._maxListeners;
25170 m = EventEmitter.defaultMaxListeners;
25173 if (m && m
> 0 && this._events[type].length
> m) {
25174 this._events[type].warned = true;
25175 console.error('(node) warning: possible EventEmitter memory ' +
25176 'leak detected. %d listeners added. ' +
25177 'Use emitter.setMaxListeners() to increase limit.',
25178 this._events[type].length);
25179 if (typeof console.trace === 'function') {
25180 // not supported in IE
10
25189 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25191 EventEmitter.prototype.once = function(type, listener) {
25192 if (!isFunction(listener))
25193 throw TypeError('listener must be a function');
25198 this.removeListener(type, g);
25202 listener.apply(this, arguments);
25206 g.listener = listener;
25212 // emits a 'removeListener' event iff the listener was removed
25213 EventEmitter.prototype.removeListener = function(type, listener) {
25214 var list, position, length, i;
25216 if (!isFunction(listener))
25217 throw TypeError('listener must be a function');
25219 if (!this._events || !this._events[type])
25222 list = this._events[type];
25223 length = list.length;
25226 if (list === listener ||
25227 (isFunction(list.listener) && list.listener === listener)) {
25228 delete this._events[type];
25229 if (this._events.removeListener)
25230 this.emit('removeListener', type, listener);
25232 } else if (isObject(list)) {
25233 for (i = length; i--
> 0;) {
25234 if (list[i] === listener ||
25235 (list[i].listener && list[i].listener === listener)) {
25244 if (list.length ===
1) {
25246 delete this._events[type];
25248 list.splice(position,
1);
25251 if (this._events.removeListener)
25252 this.emit('removeListener', type, listener);
25258 EventEmitter.prototype.removeAllListeners = function(type) {
25259 var key, listeners;
25264 // not listening for removeListener, no need to emit
25265 if (!this._events.removeListener) {
25266 if (arguments.length ===
0)
25268 else if (this._events[type])
25269 delete this._events[type];
25273 // emit removeListener for all listeners on all events
25274 if (arguments.length ===
0) {
25275 for (key in this._events) {
25276 if (key === 'removeListener') continue;
25277 this.removeAllListeners(key);
25279 this.removeAllListeners('removeListener');
25284 listeners = this._events[type];
25286 if (isFunction(listeners)) {
25287 this.removeListener(type, listeners);
25288 } else if (listeners) {
25290 while (listeners.length)
25291 this.removeListener(type, listeners[listeners.length -
1]);
25293 delete this._events[type];
25298 EventEmitter.prototype.listeners = function(type) {
25300 if (!this._events || !this._events[type])
25302 else if (isFunction(this._events[type]))
25303 ret = [this._events[type]];
25305 ret = this._events[type].slice();
25309 EventEmitter.prototype.listenerCount = function(type) {
25310 if (this._events) {
25311 var evlistener = this._events[type];
25313 if (isFunction(evlistener))
25315 else if (evlistener)
25316 return evlistener.length;
25321 EventEmitter.listenerCount = function(emitter, type) {
25322 return emitter.listenerCount(type);
25325 function isFunction(arg) {
25326 return typeof arg === 'function';
25329 function isNumber(arg) {
25330 return typeof arg === 'number';
25333 function isObject(arg) {
25334 return typeof arg === 'object' && arg !== null;
25337 function isUndefined(arg) {
25338 return arg === void
0;
25341 },{}],
8:[function(require,module,exports){
25342 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25344 var eLen = nBytes *
8 - mLen -
1
25345 var eMax = (
1 << eLen) -
1
25346 var eBias = eMax
>> 1
25348 var i = isLE ? (nBytes -
1) :
0
25349 var d = isLE ? -
1 :
1
25350 var s = buffer[offset + i]
25354 e = s & ((
1 << (-nBits)) -
1)
25357 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25359 m = e & ((
1 << (-nBits)) -
1)
25362 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25366 } else if (e === eMax) {
25367 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25369 m = m + Math.pow(
2, mLen)
25372 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25375 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25377 var eLen = nBytes *
8 - mLen -
1
25378 var eMax = (
1 << eLen) -
1
25379 var eBias = eMax
>> 1
25380 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25381 var i = isLE ?
0 : (nBytes -
1)
25382 var d = isLE ?
1 : -
1
25383 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25385 value = Math.abs(value)
25387 if (isNaN(value) || value === Infinity) {
25388 m = isNaN(value) ?
1 :
0
25391 e = Math.floor(Math.log(value) / Math.LN2)
25392 if (value * (c = Math.pow(
2, -e)) <
1) {
25396 if (e + eBias
>=
1) {
25399 value += rt * Math.pow(
2,
1 - eBias)
25401 if (value * c
>=
2) {
25406 if (e + eBias
>= eMax) {
25409 } else if (e + eBias
>=
1) {
25410 m = (value * c -
1) * Math.pow(
2, mLen)
25413 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25418 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25420 e = (e << mLen) | m
25422 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25424 buffer[offset + i - d] |= s *
128
25427 },{}],
9:[function(require,module,exports){
25428 if (typeof Object.create === 'function') {
25429 // implementation from standard node.js 'util' module
25430 module.exports = function inherits(ctor, superCtor) {
25431 ctor.super_ = superCtor
25432 ctor.prototype = Object.create(superCtor.prototype, {
25442 // old school shim for old browsers
25443 module.exports = function inherits(ctor, superCtor) {
25444 ctor.super_ = superCtor
25445 var TempCtor = function () {}
25446 TempCtor.prototype = superCtor.prototype
25447 ctor.prototype = new TempCtor()
25448 ctor.prototype.constructor = ctor
25452 },{}],
10:[function(require,module,exports){
25454 * Determine if an object is a Buffer
25456 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25460 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25461 // Object.prototype.constructor. Remove this eventually
25462 module.exports = function (obj) {
25463 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25466 function isBuffer (obj) {
25467 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25470 // For Node v0.10 support. Remove this eventually.
25471 function isSlowBuffer (obj) {
25472 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25475 },{}],
11:[function(require,module,exports){
25476 var toString = {}.toString;
25478 module.exports = Array.isArray || function (arr) {
25479 return toString.call(arr) == '[object Array]';
25482 },{}],
12:[function(require,module,exports){
25483 (function (process){
25486 if (!process.version ||
25487 process.version.indexOf('v0.') ===
0 ||
25488 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25489 module.exports = nextTick;
25491 module.exports = process.nextTick;
25494 function nextTick(fn, arg1, arg2, arg3) {
25495 if (typeof fn !== 'function') {
25496 throw new TypeError('"callback" argument must be a function');
25498 var len = arguments.length;
25503 return process.nextTick(fn);
25505 return process.nextTick(function afterTickOne() {
25506 fn.call(null, arg1);
25509 return process.nextTick(function afterTickTwo() {
25510 fn.call(null, arg1, arg2);
25513 return process.nextTick(function afterTickThree() {
25514 fn.call(null, arg1, arg2, arg3);
25517 args = new Array(len -
1);
25519 while (i < args.length) {
25520 args[i++] = arguments[i];
25522 return process.nextTick(function afterTick() {
25523 fn.apply(null, args);
25528 }).call(this,require('_process'))
25529 },{"_process":
13}],
13:[function(require,module,exports){
25530 // shim for using process in browser
25531 var process = module.exports = {};
25533 // cached from whatever global is present so that test runners that stub it
25534 // don't break things. But we need to wrap it in a try catch in case it is
25535 // wrapped in strict mode code which doesn't define any globals. It's inside a
25536 // function because try/catches deoptimize in certain engines.
25538 var cachedSetTimeout;
25539 var cachedClearTimeout;
25541 function defaultSetTimout() {
25542 throw new Error('setTimeout has not been defined');
25544 function defaultClearTimeout () {
25545 throw new Error('clearTimeout has not been defined');
25549 if (typeof setTimeout === 'function') {
25550 cachedSetTimeout = setTimeout;
25552 cachedSetTimeout = defaultSetTimout;
25555 cachedSetTimeout = defaultSetTimout;
25558 if (typeof clearTimeout === 'function') {
25559 cachedClearTimeout = clearTimeout;
25561 cachedClearTimeout = defaultClearTimeout;
25564 cachedClearTimeout = defaultClearTimeout;
25567 function runTimeout(fun) {
25568 if (cachedSetTimeout === setTimeout) {
25569 //normal enviroments in sane situations
25570 return setTimeout(fun,
0);
25572 // if setTimeout wasn't available but was latter defined
25573 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25574 cachedSetTimeout = setTimeout;
25575 return setTimeout(fun,
0);
25578 // when when somebody has screwed with setTimeout but no I.E. maddness
25579 return cachedSetTimeout(fun,
0);
25582 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25583 return cachedSetTimeout.call(null, fun,
0);
25585 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
25586 return cachedSetTimeout.call(this, fun,
0);
25592 function runClearTimeout(marker) {
25593 if (cachedClearTimeout === clearTimeout) {
25594 //normal enviroments in sane situations
25595 return clearTimeout(marker);
25597 // if clearTimeout wasn't available but was latter defined
25598 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25599 cachedClearTimeout = clearTimeout;
25600 return clearTimeout(marker);
25603 // when when somebody has screwed with setTimeout but no I.E. maddness
25604 return cachedClearTimeout(marker);
25607 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25608 return cachedClearTimeout.call(null, marker);
25610 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
25611 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25612 return cachedClearTimeout.call(this, marker);
25620 var draining = false;
25622 var queueIndex = -
1;
25624 function cleanUpNextTick() {
25625 if (!draining || !currentQueue) {
25629 if (currentQueue.length) {
25630 queue = currentQueue.concat(queue);
25634 if (queue.length) {
25639 function drainQueue() {
25643 var timeout = runTimeout(cleanUpNextTick);
25646 var len = queue.length;
25648 currentQueue = queue;
25650 while (++queueIndex < len) {
25651 if (currentQueue) {
25652 currentQueue[queueIndex].run();
25656 len = queue.length;
25658 currentQueue = null;
25660 runClearTimeout(timeout);
25663 process.nextTick = function (fun) {
25664 var args = new Array(arguments.length -
1);
25665 if (arguments.length
> 1) {
25666 for (var i =
1; i < arguments.length; i++) {
25667 args[i -
1] = arguments[i];
25670 queue.push(new Item(fun, args));
25671 if (queue.length ===
1 && !draining) {
25672 runTimeout(drainQueue);
25676 // v8 likes predictible objects
25677 function Item(fun, array) {
25679 this.array = array;
25681 Item.prototype.run = function () {
25682 this.fun.apply(null, this.array);
25684 process.title = 'browser';
25685 process.browser = true;
25688 process.version = ''; // empty string to avoid regexp issues
25689 process.versions = {};
25694 process.addListener = noop;
25695 process.once = noop;
25696 process.off = noop;
25697 process.removeListener = noop;
25698 process.removeAllListeners = noop;
25699 process.emit = noop;
25701 process.binding = function (name) {
25702 throw new Error('process.binding is not supported');
25705 process.cwd = function () { return '/' };
25706 process.chdir = function (dir) {
25707 throw new Error('process.chdir is not supported');
25709 process.umask = function() { return
0; };
25711 },{}],
14:[function(require,module,exports){
25712 module.exports = require(
"./lib/_stream_duplex.js")
25714 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25715 // a duplex stream is just a stream that is both readable and writable.
25716 // Since JS doesn't have multiple prototypal inheritance, this class
25717 // prototypally inherits from Readable, and then parasitically from
25724 var objectKeys = Object.keys || function (obj) {
25726 for (var key in obj) {
25732 module.exports = Duplex;
25735 var processNextTick = require('process-nextick-args');
25739 var util = require('core-util-is');
25740 util.inherits = require('inherits');
25743 var Readable = require('./_stream_readable');
25744 var Writable = require('./_stream_writable');
25746 util.inherits(Duplex, Readable);
25748 var keys = objectKeys(Writable.prototype);
25749 for (var v =
0; v < keys.length; v++) {
25750 var method = keys[v];
25751 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25754 function Duplex(options) {
25755 if (!(this instanceof Duplex)) return new Duplex(options);
25757 Readable.call(this, options);
25758 Writable.call(this, options);
25760 if (options && options.readable === false) this.readable = false;
25762 if (options && options.writable === false) this.writable = false;
25764 this.allowHalfOpen = true;
25765 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25767 this.once('end', onend);
25770 // the no-half-open enforcer
25772 // if we allow half-open state, or if the writable side ended,
25774 if (this.allowHalfOpen || this._writableState.ended) return;
25776 // no more data can be written.
25777 // But allow more writes to happen in this tick.
25778 processNextTick(onEndNT, this);
25781 function onEndNT(self) {
25785 function forEach(xs, f) {
25786 for (var i =
0, l = xs.length; i < l; i++) {
25790 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25791 // a passthrough stream.
25792 // basically just the most minimal sort of Transform stream.
25793 // Every written chunk gets output as-is.
25797 module.exports = PassThrough;
25799 var Transform = require('./_stream_transform');
25802 var util = require('core-util-is');
25803 util.inherits = require('inherits');
25806 util.inherits(PassThrough, Transform);
25808 function PassThrough(options) {
25809 if (!(this instanceof PassThrough)) return new PassThrough(options);
25811 Transform.call(this, options);
25814 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25817 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25818 (function (process){
25821 module.exports = Readable;
25824 var processNextTick = require('process-nextick-args');
25828 var isArray = require('isarray');
25835 Readable.ReadableState = ReadableState;
25838 var EE = require('events').EventEmitter;
25840 var EElistenerCount = function (emitter, type) {
25841 return emitter.listeners(type).length;
25849 Stream = require('st' + 'ream');
25850 } catch (_) {} finally {
25851 if (!Stream) Stream = require('events').EventEmitter;
25856 var Buffer = require('buffer').Buffer;
25858 var bufferShim = require('buffer-shims');
25862 var util = require('core-util-is');
25863 util.inherits = require('inherits');
25867 var debugUtil = require('util');
25868 var debug = void
0;
25869 if (debugUtil && debugUtil.debuglog) {
25870 debug = debugUtil.debuglog('stream');
25872 debug = function () {};
25876 var BufferList = require('./internal/streams/BufferList');
25879 util.inherits(Readable, Stream);
25881 function prependListener(emitter, event, fn) {
25882 // Sadly this is not cacheable as some libraries bundle their own
25883 // event emitter implementation with them.
25884 if (typeof emitter.prependListener === 'function') {
25885 return emitter.prependListener(event, fn);
25887 // This is a hack to make sure that our error handler is attached before any
25888 // userland ones. NEVER DO THIS. This is here only because this code needs
25889 // to continue to work with older versions of Node.js that do not include
25890 // the prependListener() method. The goal is to eventually remove this hack.
25891 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
25895 function ReadableState(options, stream) {
25896 Duplex = Duplex || require('./_stream_duplex');
25898 options = options || {};
25900 // object stream flag. Used to make read(n) ignore n and to
25901 // make all the buffer merging and length checks go away
25902 this.objectMode = !!options.objectMode;
25904 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25906 // the point at which it stops calling _read() to fill the buffer
25907 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25908 var hwm = options.highWaterMark;
25909 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25910 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25913 this.highWaterMark = ~ ~this.highWaterMark;
25915 // A linked list is used to store data chunks instead of an array because the
25916 // linked list can remove elements from the beginning faster than
25918 this.buffer = new BufferList();
25921 this.pipesCount =
0;
25922 this.flowing = null;
25923 this.ended = false;
25924 this.endEmitted = false;
25925 this.reading = false;
25927 // a flag to be able to tell if the onwrite cb is called immediately,
25928 // or on a later tick. We set this to true at first, because any
25929 // actions that shouldn't happen until "later" should generally also
25930 // not happen before the first write call.
25933 // whenever we return null, then we set a flag to say
25934 // that we're awaiting a 'readable' event emission.
25935 this.needReadable = false;
25936 this.emittedReadable = false;
25937 this.readableListening = false;
25938 this.resumeScheduled = false;
25940 // Crypto is kind of old and crusty. Historically, its default string
25941 // encoding is 'binary' so we have to make this configurable.
25942 // Everything else in the universe uses 'utf8', though.
25943 this.defaultEncoding = options.defaultEncoding || 'utf8';
25945 // when piping, we only care about 'readable' events that happen
25946 // after read()ing all the bytes and not getting any pushback.
25947 this.ranOut = false;
25949 // the number of writers that are awaiting a drain event in .pipe()s
25950 this.awaitDrain =
0;
25952 // if true, a maybeReadMore has been scheduled
25953 this.readingMore = false;
25955 this.decoder = null;
25956 this.encoding = null;
25957 if (options.encoding) {
25958 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25959 this.decoder = new StringDecoder(options.encoding);
25960 this.encoding = options.encoding;
25964 function Readable(options) {
25965 Duplex = Duplex || require('./_stream_duplex');
25967 if (!(this instanceof Readable)) return new Readable(options);
25969 this._readableState = new ReadableState(options, this);
25972 this.readable = true;
25974 if (options && typeof options.read === 'function') this._read = options.read;
25979 // Manually shove something into the read() buffer.
25980 // This returns true if the highWaterMark has not been hit yet,
25981 // similar to how Writable.write() returns true if you should
25982 // write() some more.
25983 Readable.prototype.push = function (chunk, encoding) {
25984 var state = this._readableState;
25986 if (!state.objectMode && typeof chunk === 'string') {
25987 encoding = encoding || state.defaultEncoding;
25988 if (encoding !== state.encoding) {
25989 chunk = bufferShim.from(chunk, encoding);
25994 return readableAddChunk(this, state, chunk, encoding, false);
25997 // Unshift should *always* be something directly out of read()
25998 Readable.prototype.unshift = function (chunk) {
25999 var state = this._readableState;
26000 return readableAddChunk(this, state, chunk, '', true);
26003 Readable.prototype.isPaused = function () {
26004 return this._readableState.flowing === false;
26007 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
26008 var er = chunkInvalid(state, chunk);
26010 stream.emit('error', er);
26011 } else if (chunk === null) {
26012 state.reading = false;
26013 onEofChunk(stream, state);
26014 } else if (state.objectMode || chunk && chunk.length
> 0) {
26015 if (state.ended && !addToFront) {
26016 var e = new Error('stream.push() after EOF');
26017 stream.emit('error', e);
26018 } else if (state.endEmitted && addToFront) {
26019 var _e = new Error('stream.unshift() after end event');
26020 stream.emit('error', _e);
26023 if (state.decoder && !addToFront && !encoding) {
26024 chunk = state.decoder.write(chunk);
26025 skipAdd = !state.objectMode && chunk.length ===
0;
26028 if (!addToFront) state.reading = false;
26030 // Don't add to the buffer if we've decoded to an empty string chunk and
26031 // we're not in object mode
26033 // if we want the data now, just emit it.
26034 if (state.flowing && state.length ===
0 && !state.sync) {
26035 stream.emit('data', chunk);
26038 // update the buffer info.
26039 state.length += state.objectMode ?
1 : chunk.length;
26040 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
26042 if (state.needReadable) emitReadable(stream);
26046 maybeReadMore(stream, state);
26048 } else if (!addToFront) {
26049 state.reading = false;
26052 return needMoreData(state);
26055 // if it's past the high water mark, we can push in some more.
26056 // Also, if we have no data yet, we can stand some
26057 // more bytes. This is to work around cases where hwm=
0,
26058 // such as the repl. Also, if the push() triggered a
26059 // readable event, and the user called read(largeNumber) such that
26060 // needReadable was set, then we ought to push more, so that another
26061 // 'readable' event will be triggered.
26062 function needMoreData(state) {
26063 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
26066 // backwards compatibility.
26067 Readable.prototype.setEncoding = function (enc) {
26068 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
26069 this._readableState.decoder = new StringDecoder(enc);
26070 this._readableState.encoding = enc;
26074 // Don't raise the hwm
> 8MB
26075 var MAX_HWM =
0x800000;
26076 function computeNewHighWaterMark(n) {
26077 if (n
>= MAX_HWM) {
26080 // Get the next highest power of
2 to prevent increasing hwm excessively in
26093 // This function is designed to be inlinable, so please take care when making
26094 // changes to the function body.
26095 function howMuchToRead(n, state) {
26096 if (n <=
0 || state.length ===
0 && state.ended) return
0;
26097 if (state.objectMode) return
1;
26099 // Only flow one buffer at a time
26100 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
26102 // If we're asking for more than the current hwm, then raise the hwm.
26103 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
26104 if (n <= state.length) return n;
26105 // Don't have enough
26106 if (!state.ended) {
26107 state.needReadable = true;
26110 return state.length;
26113 // you can override either this method, or the async _read(n) below.
26114 Readable.prototype.read = function (n) {
26116 n = parseInt(n,
10);
26117 var state = this._readableState;
26120 if (n !==
0) state.emittedReadable = false;
26122 // if we're doing read(
0) to trigger a readable event, but we
26123 // already have a bunch of data in the buffer, then just trigger
26124 // the 'readable' event and move on.
26125 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
26126 debug('read: emitReadable', state.length, state.ended);
26127 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26131 n = howMuchToRead(n, state);
26133 // if we've ended, and we're now clear, then finish it up.
26134 if (n ===
0 && state.ended) {
26135 if (state.length ===
0) endReadable(this);
26139 // All the actual chunk generation logic needs to be
26140 // *below* the call to _read. The reason is that in certain
26141 // synthetic stream cases, such as passthrough streams, _read
26142 // may be a completely synchronous operation which may change
26143 // the state of the read buffer, providing enough data when
26144 // before there was *not* enough.
26146 // So, the steps are:
26147 //
1. Figure out what the state of things will be after we do
26148 // a read from the buffer.
26150 //
2. If that resulting state will trigger a _read, then call _read.
26151 // Note that this may be asynchronous, or synchronous. Yes, it is
26152 // deeply ugly to write APIs this way, but that still doesn't mean
26153 // that the Readable class should behave improperly, as streams are
26154 // designed to be sync/async agnostic.
26155 // Take note if the _read call is sync or async (ie, if the read call
26156 // has returned yet), so that we know whether or not it's safe to emit
26159 //
3. Actually pull the requested chunks out of the buffer and return.
26161 // if we need a readable event, then we need to do some reading.
26162 var doRead = state.needReadable;
26163 debug('need readable', doRead);
26165 // if we currently have less than the highWaterMark, then also read some
26166 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26168 debug('length less than watermark', doRead);
26171 // however, if we've ended, then there's no point, and if we're already
26172 // reading, then it's unnecessary.
26173 if (state.ended || state.reading) {
26175 debug('reading or ended', doRead);
26176 } else if (doRead) {
26178 state.reading = true;
26180 // if the length is currently zero, then we *need* a readable event.
26181 if (state.length ===
0) state.needReadable = true;
26182 // call internal read method
26183 this._read(state.highWaterMark);
26184 state.sync = false;
26185 // If _read pushed data synchronously, then `reading` will be false,
26186 // and we need to re-evaluate how much data we can return to the user.
26187 if (!state.reading) n = howMuchToRead(nOrig, state);
26191 if (n
> 0) ret = fromList(n, state);else ret = null;
26193 if (ret === null) {
26194 state.needReadable = true;
26200 if (state.length ===
0) {
26201 // If we have nothing in the buffer, then we want to know
26202 // as soon as we *do* get something into the buffer.
26203 if (!state.ended) state.needReadable = true;
26205 // If we tried to read() past the EOF, then emit end on the next tick.
26206 if (nOrig !== n && state.ended) endReadable(this);
26209 if (ret !== null) this.emit('data', ret);
26214 function chunkInvalid(state, chunk) {
26216 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26217 er = new TypeError('Invalid non-string/buffer chunk');
26222 function onEofChunk(stream, state) {
26223 if (state.ended) return;
26224 if (state.decoder) {
26225 var chunk = state.decoder.end();
26226 if (chunk && chunk.length) {
26227 state.buffer.push(chunk);
26228 state.length += state.objectMode ?
1 : chunk.length;
26231 state.ended = true;
26233 // emit 'readable' now to make sure it gets picked up.
26234 emitReadable(stream);
26237 // Don't emit readable right away in sync mode, because this can trigger
26238 // another read() call =
> stack overflow. This way, it might trigger
26239 // a nextTick recursion warning, but that's not so bad.
26240 function emitReadable(stream) {
26241 var state = stream._readableState;
26242 state.needReadable = false;
26243 if (!state.emittedReadable) {
26244 debug('emitReadable', state.flowing);
26245 state.emittedReadable = true;
26246 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26250 function emitReadable_(stream) {
26251 debug('emit readable');
26252 stream.emit('readable');
26256 // at this point, the user has presumably seen the 'readable' event,
26257 // and called read() to consume some data. that may have triggered
26258 // in turn another _read(n) call, in which case reading = true if
26259 // it's in progress.
26260 // However, if we're not ended, or reading, and the length < hwm,
26261 // then go ahead and try to read some more preemptively.
26262 function maybeReadMore(stream, state) {
26263 if (!state.readingMore) {
26264 state.readingMore = true;
26265 processNextTick(maybeReadMore_, stream, state);
26269 function maybeReadMore_(stream, state) {
26270 var len = state.length;
26271 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26272 debug('maybeReadMore read
0');
26274 if (len === state.length)
26275 // didn't get any data, stop spinning.
26276 break;else len = state.length;
26278 state.readingMore = false;
26281 // abstract method. to be overridden in specific implementation classes.
26282 // call cb(er, data) where data is <= n in length.
26283 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26284 // arbitrary, and perhaps not very meaningful.
26285 Readable.prototype._read = function (n) {
26286 this.emit('error', new Error('_read() is not implemented'));
26289 Readable.prototype.pipe = function (dest, pipeOpts) {
26291 var state = this._readableState;
26293 switch (state.pipesCount) {
26295 state.pipes = dest;
26298 state.pipes = [state.pipes, dest];
26301 state.pipes.push(dest);
26304 state.pipesCount +=
1;
26305 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26307 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26309 var endFn = doEnd ? onend : cleanup;
26310 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26312 dest.on('unpipe', onunpipe);
26313 function onunpipe(readable) {
26315 if (readable === src) {
26325 // when the dest drains, it reduces the awaitDrain counter
26326 // on the source. This would be more elegant with a .once()
26327 // handler in flow(), but adding and removing repeatedly is
26329 var ondrain = pipeOnDrain(src);
26330 dest.on('drain', ondrain);
26332 var cleanedUp = false;
26333 function cleanup() {
26335 // cleanup event handlers once the pipe is broken
26336 dest.removeListener('close', onclose);
26337 dest.removeListener('finish', onfinish);
26338 dest.removeListener('drain', ondrain);
26339 dest.removeListener('error', onerror);
26340 dest.removeListener('unpipe', onunpipe);
26341 src.removeListener('end', onend);
26342 src.removeListener('end', cleanup);
26343 src.removeListener('data', ondata);
26347 // if the reader is waiting for a drain event from this
26348 // specific writer, then it would cause it to never start
26350 // So, if this is awaiting a drain, then we just call it now.
26351 // If we don't know, then assume that we are waiting for one.
26352 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26355 // If the user pushes more data while we're writing to dest then we'll end up
26356 // in ondata again. However, we only want to increase awaitDrain once because
26357 // dest will only emit one 'drain' event for the multiple writes.
26358 // =
> Introduce a guard on increasing awaitDrain.
26359 var increasedAwaitDrain = false;
26360 src.on('data', ondata);
26361 function ondata(chunk) {
26363 increasedAwaitDrain = false;
26364 var ret = dest.write(chunk);
26365 if (false === ret && !increasedAwaitDrain) {
26366 // If the user unpiped during `dest.write()`, it is possible
26367 // to get stuck in a permanently paused state if that write
26368 // also returned false.
26369 // =
> Check whether `dest` is still a piping destination.
26370 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26371 debug('false write response, pause', src._readableState.awaitDrain);
26372 src._readableState.awaitDrain++;
26373 increasedAwaitDrain = true;
26379 // if the dest has an error, then stop piping into it.
26380 // however, don't suppress the throwing behavior for this.
26381 function onerror(er) {
26382 debug('onerror', er);
26384 dest.removeListener('error', onerror);
26385 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26388 // Make sure our error handler is attached before userland ones.
26389 prependListener(dest, 'error', onerror);
26391 // Both close and finish should trigger unpipe, but only once.
26392 function onclose() {
26393 dest.removeListener('finish', onfinish);
26396 dest.once('close', onclose);
26397 function onfinish() {
26399 dest.removeListener('close', onclose);
26402 dest.once('finish', onfinish);
26404 function unpipe() {
26409 // tell the dest that it's being piped to
26410 dest.emit('pipe', src);
26412 // start the flow if it hasn't been started already.
26413 if (!state.flowing) {
26414 debug('pipe resume');
26421 function pipeOnDrain(src) {
26422 return function () {
26423 var state = src._readableState;
26424 debug('pipeOnDrain', state.awaitDrain);
26425 if (state.awaitDrain) state.awaitDrain--;
26426 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26427 state.flowing = true;
26433 Readable.prototype.unpipe = function (dest) {
26434 var state = this._readableState;
26436 // if we're not piping anywhere, then do nothing.
26437 if (state.pipesCount ===
0) return this;
26439 // just one destination. most common case.
26440 if (state.pipesCount ===
1) {
26441 // passed in one, but it's not the right one.
26442 if (dest && dest !== state.pipes) return this;
26444 if (!dest) dest = state.pipes;
26447 state.pipes = null;
26448 state.pipesCount =
0;
26449 state.flowing = false;
26450 if (dest) dest.emit('unpipe', this);
26454 // slow case. multiple pipe destinations.
26458 var dests = state.pipes;
26459 var len = state.pipesCount;
26460 state.pipes = null;
26461 state.pipesCount =
0;
26462 state.flowing = false;
26464 for (var i =
0; i < len; i++) {
26465 dests[i].emit('unpipe', this);
26469 // try to find the right one.
26470 var index = indexOf(state.pipes, dest);
26471 if (index === -
1) return this;
26473 state.pipes.splice(index,
1);
26474 state.pipesCount -=
1;
26475 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26477 dest.emit('unpipe', this);
26482 // set up data events if they are asked for
26483 // Ensure readable listeners eventually get something
26484 Readable.prototype.on = function (ev, fn) {
26485 var res = Stream.prototype.on.call(this, ev, fn);
26487 if (ev === 'data') {
26488 // Start flowing on next tick if stream isn't explicitly paused
26489 if (this._readableState.flowing !== false) this.resume();
26490 } else if (ev === 'readable') {
26491 var state = this._readableState;
26492 if (!state.endEmitted && !state.readableListening) {
26493 state.readableListening = state.needReadable = true;
26494 state.emittedReadable = false;
26495 if (!state.reading) {
26496 processNextTick(nReadingNextTick, this);
26497 } else if (state.length) {
26498 emitReadable(this, state);
26505 Readable.prototype.addListener = Readable.prototype.on;
26507 function nReadingNextTick(self) {
26508 debug('readable nexttick read
0');
26512 // pause() and resume() are remnants of the legacy readable stream API
26513 // If the user uses them, then switch into old mode.
26514 Readable.prototype.resume = function () {
26515 var state = this._readableState;
26516 if (!state.flowing) {
26518 state.flowing = true;
26519 resume(this, state);
26524 function resume(stream, state) {
26525 if (!state.resumeScheduled) {
26526 state.resumeScheduled = true;
26527 processNextTick(resume_, stream, state);
26531 function resume_(stream, state) {
26532 if (!state.reading) {
26533 debug('resume read
0');
26537 state.resumeScheduled = false;
26538 state.awaitDrain =
0;
26539 stream.emit('resume');
26541 if (state.flowing && !state.reading) stream.read(
0);
26544 Readable.prototype.pause = function () {
26545 debug('call pause flowing=%j', this._readableState.flowing);
26546 if (false !== this._readableState.flowing) {
26548 this._readableState.flowing = false;
26549 this.emit('pause');
26554 function flow(stream) {
26555 var state = stream._readableState;
26556 debug('flow', state.flowing);
26557 while (state.flowing && stream.read() !== null) {}
26560 // wrap an old-style stream as the async data source.
26561 // This is *not* part of the readable stream interface.
26562 // It is an ugly unfortunate mess of history.
26563 Readable.prototype.wrap = function (stream) {
26564 var state = this._readableState;
26565 var paused = false;
26568 stream.on('end', function () {
26569 debug('wrapped end');
26570 if (state.decoder && !state.ended) {
26571 var chunk = state.decoder.end();
26572 if (chunk && chunk.length) self.push(chunk);
26578 stream.on('data', function (chunk) {
26579 debug('wrapped data');
26580 if (state.decoder) chunk = state.decoder.write(chunk);
26582 // don't skip over falsy values in objectMode
26583 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26585 var ret = self.push(chunk);
26592 // proxy all the other methods.
26593 // important when wrapping filters and duplexes.
26594 for (var i in stream) {
26595 if (this[i] === undefined && typeof stream[i] === 'function') {
26596 this[i] = function (method) {
26597 return function () {
26598 return stream[method].apply(stream, arguments);
26604 // proxy certain important events.
26605 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26606 forEach(events, function (ev) {
26607 stream.on(ev, self.emit.bind(self, ev));
26610 // when we try to consume some more bytes, simply unpause the
26611 // underlying stream.
26612 self._read = function (n) {
26613 debug('wrapped _read', n);
26623 // exposed for testing purposes only.
26624 Readable._fromList = fromList;
26626 // Pluck off n bytes from an array of buffers.
26627 // Length is the combined lengths of all the buffers in the list.
26628 // This function is designed to be inlinable, so please take care when making
26629 // changes to the function body.
26630 function fromList(n, state) {
26631 // nothing buffered
26632 if (state.length ===
0) return null;
26635 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26636 // read it all, truncate the list
26637 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
26638 state.buffer.clear();
26640 // read part of list
26641 ret = fromListPartial(n, state.buffer, state.decoder);
26647 // Extracts only enough buffered data to satisfy the amount requested.
26648 // This function is designed to be inlinable, so please take care when making
26649 // changes to the function body.
26650 function fromListPartial(n, list, hasStrings) {
26652 if (n < list.head.data.length) {
26653 // slice is the same for buffers and strings
26654 ret = list.head.data.slice(
0, n);
26655 list.head.data = list.head.data.slice(n);
26656 } else if (n === list.head.data.length) {
26657 // first chunk is a perfect match
26658 ret = list.shift();
26660 // result spans more than one buffer
26661 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26666 // Copies a specified amount of characters from the list of buffered data
26668 // This function is designed to be inlinable, so please take care when making
26669 // changes to the function body.
26670 function copyFromBufferString(n, list) {
26675 while (p = p.next) {
26677 var nb = n
> str.length ? str.length : n;
26678 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26681 if (nb === str.length) {
26683 if (p.next) list.head = p.next;else list.head = list.tail = null;
26686 p.data = str.slice(nb);
26696 // Copies a specified amount of bytes from the list of buffered data chunks.
26697 // This function is designed to be inlinable, so please take care when making
26698 // changes to the function body.
26699 function copyFromBuffer(n, list) {
26700 var ret = bufferShim.allocUnsafe(n);
26704 n -= p.data.length;
26705 while (p = p.next) {
26707 var nb = n
> buf.length ? buf.length : n;
26708 buf.copy(ret, ret.length - n,
0, nb);
26711 if (nb === buf.length) {
26713 if (p.next) list.head = p.next;else list.head = list.tail = null;
26716 p.data = buf.slice(nb);
26726 function endReadable(stream) {
26727 var state = stream._readableState;
26729 // If we get here before consuming all the bytes, then that is a
26730 // bug in node. Should never happen.
26731 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26733 if (!state.endEmitted) {
26734 state.ended = true;
26735 processNextTick(endReadableNT, state, stream);
26739 function endReadableNT(state, stream) {
26740 // Check that we didn't get one last unshift.
26741 if (!state.endEmitted && state.length ===
0) {
26742 state.endEmitted = true;
26743 stream.readable = false;
26744 stream.emit('end');
26748 function forEach(xs, f) {
26749 for (var i =
0, l = xs.length; i < l; i++) {
26754 function indexOf(xs, x) {
26755 for (var i =
0, l = xs.length; i < l; i++) {
26756 if (xs[i] === x) return i;
26760 }).call(this,require('_process'))
26761 },{
"./_stream_duplex":
15,
"./internal/streams/BufferList":
20,
"_process":
13,
"buffer":
5,
"buffer-shims":
4,
"core-util-is":
6,
"events":
7,
"inherits":
9,
"isarray":
11,
"process-nextick-args":
12,
"string_decoder/":
26,
"util":
3}],
18:[function(require,module,exports){
26762 // a transform stream is a readable/writable stream where you do
26763 // something with the data. Sometimes it's called a
"filter",
26764 // but that's not a great name for it, since that implies a thing where
26765 // some bits pass through, and others are simply ignored. (That would
26766 // be a valid example of a transform, of course.)
26768 // While the output is causally related to the input, it's not a
26769 // necessarily symmetric or synchronous transformation. For example,
26770 // a zlib stream might take multiple plain-text writes(), and then
26771 // emit a single compressed chunk some time in the future.
26773 // Here's how this works:
26775 // The Transform stream has all the aspects of the readable and writable
26776 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26777 // internally, and returns false if there's a lot of pending writes
26778 // buffered up. When you call read(), that calls _read(n) until
26779 // there's enough pending readable data buffered up.
26781 // In a transform stream, the written data is placed in a buffer. When
26782 // _read(n) is called, it transforms the queued up data, calling the
26783 // buffered _write cb's as it consumes chunks. If consuming a single
26784 // written chunk would result in multiple output chunks, then the first
26785 // outputted bit calls the readcb, and subsequent chunks just go into
26786 // the read buffer, and will cause it to emit 'readable' if necessary.
26788 // This way, back-pressure is actually determined by the reading side,
26789 // since _read has to be called to start processing a new chunk. However,
26790 // a pathological inflate type of transform can cause excessive buffering
26791 // here. For example, imagine a stream where every byte of input is
26792 // interpreted as an integer from
0-
255, and then results in that many
26793 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26794 //
1kb of data being output. In this case, you could write a very small
26795 // amount of input, and end up with a very large amount of output. In
26796 // such a pathological inflating mechanism, there'd be no way to tell
26797 // the system to stop doing the transform. A single
4MB write could
26798 // cause the system to run out of memory.
26800 // However, even in such a pathological case, only a single written chunk
26801 // would be consumed, and then the rest would wait (un-transformed) until
26802 // the results of the previous transformed chunk were consumed.
26806 module.exports = Transform;
26808 var Duplex = require('./_stream_duplex');
26811 var util = require('core-util-is');
26812 util.inherits = require('inherits');
26815 util.inherits(Transform, Duplex);
26817 function TransformState(stream) {
26818 this.afterTransform = function (er, data) {
26819 return afterTransform(stream, er, data);
26822 this.needTransform = false;
26823 this.transforming = false;
26824 this.writecb = null;
26825 this.writechunk = null;
26826 this.writeencoding = null;
26829 function afterTransform(stream, er, data) {
26830 var ts = stream._transformState;
26831 ts.transforming = false;
26833 var cb = ts.writecb;
26835 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26837 ts.writechunk = null;
26840 if (data !== null && data !== undefined) stream.push(data);
26844 var rs = stream._readableState;
26845 rs.reading = false;
26846 if (rs.needReadable || rs.length < rs.highWaterMark) {
26847 stream._read(rs.highWaterMark);
26851 function Transform(options) {
26852 if (!(this instanceof Transform)) return new Transform(options);
26854 Duplex.call(this, options);
26856 this._transformState = new TransformState(this);
26860 // start out asking for a readable event once data is transformed.
26861 this._readableState.needReadable = true;
26863 // we have implemented the _read method, and done the other things
26864 // that Readable wants before the first _read call, so unset the
26865 // sync guard flag.
26866 this._readableState.sync = false;
26869 if (typeof options.transform === 'function') this._transform = options.transform;
26871 if (typeof options.flush === 'function') this._flush = options.flush;
26874 // When the writable side finishes, then flush out anything remaining.
26875 this.once('prefinish', function () {
26876 if (typeof this._flush === 'function') this._flush(function (er, data) {
26877 done(stream, er, data);
26878 });else done(stream);
26882 Transform.prototype.push = function (chunk, encoding) {
26883 this._transformState.needTransform = false;
26884 return Duplex.prototype.push.call(this, chunk, encoding);
26887 // This is the part where you do stuff!
26888 // override this function in implementation classes.
26889 // 'chunk' is an input chunk.
26891 // Call `push(newChunk)` to pass along transformed output
26892 // to the readable side. You may call 'push' zero or more times.
26894 // Call `cb(err)` when you are done with this chunk. If you pass
26895 // an error, then that'll put the hurt on the whole operation. If you
26896 // never call cb(), then you'll never get another chunk.
26897 Transform.prototype._transform = function (chunk, encoding, cb) {
26898 throw new Error('_transform() is not implemented');
26901 Transform.prototype._write = function (chunk, encoding, cb) {
26902 var ts = this._transformState;
26904 ts.writechunk = chunk;
26905 ts.writeencoding = encoding;
26906 if (!ts.transforming) {
26907 var rs = this._readableState;
26908 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26912 // Doesn't matter what the args are here.
26913 // _transform does all the work.
26914 // That we got here means that the readable side wants more data.
26915 Transform.prototype._read = function (n) {
26916 var ts = this._transformState;
26918 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26919 ts.transforming = true;
26920 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26922 // mark that we need a transform, so that any data that comes in
26923 // will get processed, now that we've asked for it.
26924 ts.needTransform = true;
26928 function done(stream, er, data) {
26929 if (er) return stream.emit('error', er);
26931 if (data !== null && data !== undefined) stream.push(data);
26933 // if there's nothing in the write buffer, then that means
26934 // that nothing more will ever be provided
26935 var ws = stream._writableState;
26936 var ts = stream._transformState;
26938 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26940 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26942 return stream.push(null);
26944 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26945 (function (process){
26946 // A bit simpler than readable streams.
26947 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26948 // the drain event emission and buffering.
26952 module.exports = Writable;
26955 var processNextTick = require('process-nextick-args');
26959 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26966 Writable.WritableState = WritableState;
26969 var util = require('core-util-is');
26970 util.inherits = require('inherits');
26974 var internalUtil = {
26975 deprecate: require('util-deprecate')
26983 Stream = require('st' + 'ream');
26984 } catch (_) {} finally {
26985 if (!Stream) Stream = require('events').EventEmitter;
26990 var Buffer = require('buffer').Buffer;
26992 var bufferShim = require('buffer-shims');
26995 util.inherits(Writable, Stream);
26999 function WriteReq(chunk, encoding, cb) {
27000 this.chunk = chunk;
27001 this.encoding = encoding;
27002 this.callback = cb;
27006 function WritableState(options, stream) {
27007 Duplex = Duplex || require('./_stream_duplex');
27009 options = options || {};
27011 // object stream flag to indicate whether or not this stream
27012 // contains buffers or objects.
27013 this.objectMode = !!options.objectMode;
27015 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
27017 // the point at which write() starts returning false
27018 // Note:
0 is a valid value, means that we always return false if
27019 // the entire buffer is not flushed immediately on write()
27020 var hwm = options.highWaterMark;
27021 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
27022 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
27025 this.highWaterMark = ~ ~this.highWaterMark;
27027 // drain event flag.
27028 this.needDrain = false;
27029 // at the start of calling end()
27030 this.ending = false;
27031 // when end() has been called, and returned
27032 this.ended = false;
27033 // when 'finish' is emitted
27034 this.finished = false;
27036 // should we decode strings into buffers before passing to _write?
27037 // this is here so that some node-core streams can optimize string
27038 // handling at a lower level.
27039 var noDecode = options.decodeStrings === false;
27040 this.decodeStrings = !noDecode;
27042 // Crypto is kind of old and crusty. Historically, its default string
27043 // encoding is 'binary' so we have to make this configurable.
27044 // Everything else in the universe uses 'utf8', though.
27045 this.defaultEncoding = options.defaultEncoding || 'utf8';
27047 // not an actual buffer we keep track of, but a measurement
27048 // of how much we're waiting to get pushed to some underlying
27052 // a flag to see when we're in the middle of a write.
27053 this.writing = false;
27055 // when true all writes will be buffered until .uncork() call
27058 // a flag to be able to tell if the onwrite cb is called immediately,
27059 // or on a later tick. We set this to true at first, because any
27060 // actions that shouldn't happen until "later" should generally also
27061 // not happen before the first write call.
27064 // a flag to know if we're processing previously buffered items, which
27065 // may call the _write() callback in the same tick, so that we don't
27066 // end up in an overlapped onwrite situation.
27067 this.bufferProcessing = false;
27069 // the callback that's passed to _write(chunk,cb)
27070 this.onwrite = function (er) {
27071 onwrite(stream, er);
27074 // the callback that the user supplies to write(chunk,encoding,cb)
27075 this.writecb = null;
27077 // the amount that is being written when _write is called.
27080 this.bufferedRequest = null;
27081 this.lastBufferedRequest = null;
27083 // number of pending user-supplied write callbacks
27084 // this must be
0 before 'finish' can be emitted
27085 this.pendingcb =
0;
27087 // emit prefinish if the only thing we're waiting for is _write cbs
27088 // This is relevant for synchronous Transform streams
27089 this.prefinished = false;
27091 // True if the error was already emitted and should not be thrown again
27092 this.errorEmitted = false;
27094 // count buffered requests
27095 this.bufferedRequestCount =
0;
27097 // allocate the first CorkedRequest, there is always
27098 // one allocated and free to use, and we maintain at most two
27099 this.corkedRequestsFree = new CorkedRequest(this);
27102 WritableState.prototype.getBuffer = function getBuffer() {
27103 var current = this.bufferedRequest;
27107 current = current.next;
27114 Object.defineProperty(WritableState.prototype, 'buffer', {
27115 get: internalUtil.deprecate(function () {
27116 return this.getBuffer();
27117 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
27122 // Test _writableState for inheritance to account for Duplex streams,
27123 // whose prototype chain only points to Readable.
27124 var realHasInstance;
27125 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
27126 realHasInstance = Function.prototype[Symbol.hasInstance];
27127 Object.defineProperty(Writable, Symbol.hasInstance, {
27128 value: function (object) {
27129 if (realHasInstance.call(this, object)) return true;
27131 return object && object._writableState instanceof WritableState;
27135 realHasInstance = function (object) {
27136 return object instanceof this;
27140 function Writable(options) {
27141 Duplex = Duplex || require('./_stream_duplex');
27143 // Writable ctor is applied to Duplexes, too.
27144 // `realHasInstance` is necessary because using plain `instanceof`
27145 // would return false, as no `_writableState` property is attached.
27147 // Trying to use the custom `instanceof` for Writable here will also break the
27148 // Node.js LazyTransform implementation, which has a non-trivial getter for
27149 // `_writableState` that would lead to infinite recursion.
27150 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27151 return new Writable(options);
27154 this._writableState = new WritableState(options, this);
27157 this.writable = true;
27160 if (typeof options.write === 'function') this._write = options.write;
27162 if (typeof options.writev === 'function') this._writev = options.writev;
27168 // Otherwise people can pipe Writable streams, which is just wrong.
27169 Writable.prototype.pipe = function () {
27170 this.emit('error', new Error('Cannot pipe, not readable'));
27173 function writeAfterEnd(stream, cb) {
27174 var er = new Error('write after end');
27175 // TODO: defer error events consistently everywhere, not just the cb
27176 stream.emit('error', er);
27177 processNextTick(cb, er);
27180 // If we get something that is not a buffer, string, null, or undefined,
27181 // and we're not in objectMode, then that's an error.
27182 // Otherwise stream chunks are all considered to be of length=
1, and the
27183 // watermarks determine how many objects to keep in the buffer, rather than
27184 // how many bytes or characters.
27185 function validChunk(stream, state, chunk, cb) {
27188 // Always throw error if a null is written
27189 // if we are not in object mode then throw
27190 // if it is not a buffer, string, or undefined.
27191 if (chunk === null) {
27192 er = new TypeError('May not write null values to stream');
27193 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27194 er = new TypeError('Invalid non-string/buffer chunk');
27197 stream.emit('error', er);
27198 processNextTick(cb, er);
27204 Writable.prototype.write = function (chunk, encoding, cb) {
27205 var state = this._writableState;
27208 if (typeof encoding === 'function') {
27213 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27215 if (typeof cb !== 'function') cb = nop;
27217 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27219 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27225 Writable.prototype.cork = function () {
27226 var state = this._writableState;
27231 Writable.prototype.uncork = function () {
27232 var state = this._writableState;
27234 if (state.corked) {
27237 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27241 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27242 // node::ParseEncoding() requires lower case.
27243 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27244 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
27245 this._writableState.defaultEncoding = encoding;
27249 function decodeChunk(state, chunk, encoding) {
27250 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27251 chunk = bufferShim.from(chunk, encoding);
27256 // if we're already writing something, then just put this
27257 // in the queue, and wait our turn. Otherwise, call _write
27258 // If we return false, then we need a drain event, so set that flag.
27259 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27260 chunk = decodeChunk(state, chunk, encoding);
27262 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27263 var len = state.objectMode ?
1 : chunk.length;
27265 state.length += len;
27267 var ret = state.length < state.highWaterMark;
27268 // we must ensure that previous needDrain will not be reset to false.
27269 if (!ret) state.needDrain = true;
27271 if (state.writing || state.corked) {
27272 var last = state.lastBufferedRequest;
27273 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27275 last.next = state.lastBufferedRequest;
27277 state.bufferedRequest = state.lastBufferedRequest;
27279 state.bufferedRequestCount +=
1;
27281 doWrite(stream, state, false, len, chunk, encoding, cb);
27287 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27288 state.writelen = len;
27289 state.writecb = cb;
27290 state.writing = true;
27292 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27293 state.sync = false;
27296 function onwriteError(stream, state, sync, er, cb) {
27298 if (sync) processNextTick(cb, er);else cb(er);
27300 stream._writableState.errorEmitted = true;
27301 stream.emit('error', er);
27304 function onwriteStateUpdate(state) {
27305 state.writing = false;
27306 state.writecb = null;
27307 state.length -= state.writelen;
27308 state.writelen =
0;
27311 function onwrite(stream, er) {
27312 var state = stream._writableState;
27313 var sync = state.sync;
27314 var cb = state.writecb;
27316 onwriteStateUpdate(state);
27318 if (er) onwriteError(stream, state, sync, er, cb);else {
27319 // Check if we're actually ready to finish, but don't emit yet
27320 var finished = needFinish(state);
27322 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27323 clearBuffer(stream, state);
27328 asyncWrite(afterWrite, stream, state, finished, cb);
27331 afterWrite(stream, state, finished, cb);
27336 function afterWrite(stream, state, finished, cb) {
27337 if (!finished) onwriteDrain(stream, state);
27340 finishMaybe(stream, state);
27343 // Must force callback to be called on nextTick, so that we don't
27344 // emit 'drain' before the write() consumer gets the 'false' return
27345 // value, and has a chance to attach a 'drain' listener.
27346 function onwriteDrain(stream, state) {
27347 if (state.length ===
0 && state.needDrain) {
27348 state.needDrain = false;
27349 stream.emit('drain');
27353 // if there's something in the buffer waiting, then process it
27354 function clearBuffer(stream, state) {
27355 state.bufferProcessing = true;
27356 var entry = state.bufferedRequest;
27358 if (stream._writev && entry && entry.next) {
27359 // Fast case, write everything using _writev()
27360 var l = state.bufferedRequestCount;
27361 var buffer = new Array(l);
27362 var holder = state.corkedRequestsFree;
27363 holder.entry = entry;
27367 buffer[count] = entry;
27368 entry = entry.next;
27372 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27374 // doWrite is almost always async, defer these to save a bit of time
27375 // as the hot path ends with doWrite
27377 state.lastBufferedRequest = null;
27379 state.corkedRequestsFree = holder.next;
27380 holder.next = null;
27382 state.corkedRequestsFree = new CorkedRequest(state);
27385 // Slow case, write chunks one-by-one
27387 var chunk = entry.chunk;
27388 var encoding = entry.encoding;
27389 var cb = entry.callback;
27390 var len = state.objectMode ?
1 : chunk.length;
27392 doWrite(stream, state, false, len, chunk, encoding, cb);
27393 entry = entry.next;
27394 // if we didn't call the onwrite immediately, then
27395 // it means that we need to wait until it does.
27396 // also, that means that the chunk and cb are currently
27397 // being processed, so move the buffer counter past them.
27398 if (state.writing) {
27403 if (entry === null) state.lastBufferedRequest = null;
27406 state.bufferedRequestCount =
0;
27407 state.bufferedRequest = entry;
27408 state.bufferProcessing = false;
27411 Writable.prototype._write = function (chunk, encoding, cb) {
27412 cb(new Error('_write() is not implemented'));
27415 Writable.prototype._writev = null;
27417 Writable.prototype.end = function (chunk, encoding, cb) {
27418 var state = this._writableState;
27420 if (typeof chunk === 'function') {
27424 } else if (typeof encoding === 'function') {
27429 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27431 // .end() fully uncorks
27432 if (state.corked) {
27437 // ignore unnecessary end() calls.
27438 if (!state.ending && !state.finished) endWritable(this, state, cb);
27441 function needFinish(state) {
27442 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27445 function prefinish(stream, state) {
27446 if (!state.prefinished) {
27447 state.prefinished = true;
27448 stream.emit('prefinish');
27452 function finishMaybe(stream, state) {
27453 var need = needFinish(state);
27455 if (state.pendingcb ===
0) {
27456 prefinish(stream, state);
27457 state.finished = true;
27458 stream.emit('finish');
27460 prefinish(stream, state);
27466 function endWritable(stream, state, cb) {
27467 state.ending = true;
27468 finishMaybe(stream, state);
27470 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27472 state.ended = true;
27473 stream.writable = false;
27476 // It seems a linked list but it is not
27477 // there will be only
2 of these for each stream
27478 function CorkedRequest(state) {
27484 this.finish = function (err) {
27485 var entry = _this.entry;
27486 _this.entry = null;
27488 var cb = entry.callback;
27491 entry = entry.next;
27493 if (state.corkedRequestsFree) {
27494 state.corkedRequestsFree.next = _this;
27496 state.corkedRequestsFree = _this;
27500 }).call(this,require('_process'))
27501 },{"./_stream_duplex":
15,"_process":
13,"buffer":
5,"buffer-shims":
4,"core-util-is":
6,"events":
7,"inherits":
9,"process-nextick-args":
12,"util-deprecate":
27}],
20:[function(require,module,exports){
27504 var Buffer = require('buffer').Buffer;
27506 var bufferShim = require('buffer-shims');
27509 module.exports = BufferList;
27511 function BufferList() {
27517 BufferList.prototype.push = function (v) {
27518 var entry = { data: v, next: null };
27519 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27524 BufferList.prototype.unshift = function (v) {
27525 var entry = { data: v, next: this.head };
27526 if (this.length ===
0) this.tail = entry;
27531 BufferList.prototype.shift = function () {
27532 if (this.length ===
0) return;
27533 var ret = this.head.data;
27534 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27539 BufferList.prototype.clear = function () {
27540 this.head = this.tail = null;
27544 BufferList.prototype.join = function (s) {
27545 if (this.length ===
0) return '';
27547 var ret = '' + p.data;
27548 while (p = p.next) {
27553 BufferList.prototype.concat = function (n) {
27554 if (this.length ===
0) return bufferShim.alloc(
0);
27555 if (this.length ===
1) return this.head.data;
27556 var ret = bufferShim.allocUnsafe(n
>>> 0);
27560 p.data.copy(ret, i);
27561 i += p.data.length;
27566 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27567 module.exports = require(
"./lib/_stream_passthrough.js")
27569 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27570 (function (process){
27571 var Stream = (function (){
27573 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27576 exports = module.exports = require('./lib/_stream_readable.js');
27577 exports.Stream = Stream || exports;
27578 exports.Readable = exports;
27579 exports.Writable = require('./lib/_stream_writable.js');
27580 exports.Duplex = require('./lib/_stream_duplex.js');
27581 exports.Transform = require('./lib/_stream_transform.js');
27582 exports.PassThrough = require('./lib/_stream_passthrough.js');
27584 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27585 module.exports = Stream;
27588 }).call(this,require('_process'))
27589 },{
"./lib/_stream_duplex.js":
15,
"./lib/_stream_passthrough.js":
16,
"./lib/_stream_readable.js":
17,
"./lib/_stream_transform.js":
18,
"./lib/_stream_writable.js":
19,
"_process":
13}],
23:[function(require,module,exports){
27590 module.exports = require(
"./lib/_stream_transform.js")
27592 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27593 module.exports = require(
"./lib/_stream_writable.js")
27595 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27596 // Copyright Joyent, Inc. and other Node contributors.
27598 // Permission is hereby granted, free of charge, to any person obtaining a
27599 // copy of this software and associated documentation files (the
27600 //
"Software"), to deal in the Software without restriction, including
27601 // without limitation the rights to use, copy, modify, merge, publish,
27602 // distribute, sublicense, and/or sell copies of the Software, and to permit
27603 // persons to whom the Software is furnished to do so, subject to the
27604 // following conditions:
27606 // The above copyright notice and this permission notice shall be included
27607 // in all copies or substantial portions of the Software.
27609 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27610 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27611 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27612 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27613 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27614 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27615 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27617 module.exports = Stream;
27619 var EE = require('events').EventEmitter;
27620 var inherits = require('inherits');
27622 inherits(Stream, EE);
27623 Stream.Readable = require('readable-stream/readable.js');
27624 Stream.Writable = require('readable-stream/writable.js');
27625 Stream.Duplex = require('readable-stream/duplex.js');
27626 Stream.Transform = require('readable-stream/transform.js');
27627 Stream.PassThrough = require('readable-stream/passthrough.js');
27629 // Backwards-compat with node
0.4.x
27630 Stream.Stream = Stream;
27634 // old-style streams. Note that the pipe method (the only relevant
27635 // part of this class) is overridden in the Readable class.
27637 function Stream() {
27641 Stream.prototype.pipe = function(dest, options) {
27644 function ondata(chunk) {
27645 if (dest.writable) {
27646 if (false === dest.write(chunk) && source.pause) {
27652 source.on('data', ondata);
27654 function ondrain() {
27655 if (source.readable && source.resume) {
27660 dest.on('drain', ondrain);
27662 // If the 'end' option is not supplied, dest.end() will be called when
27663 // source gets the 'end' or 'close' events. Only dest.end() once.
27664 if (!dest._isStdio && (!options || options.end !== false)) {
27665 source.on('end', onend);
27666 source.on('close', onclose);
27669 var didOnEnd = false;
27671 if (didOnEnd) return;
27678 function onclose() {
27679 if (didOnEnd) return;
27682 if (typeof dest.destroy === 'function') dest.destroy();
27685 // don't leave dangling pipes when there are errors.
27686 function onerror(er) {
27688 if (EE.listenerCount(this, 'error') ===
0) {
27689 throw er; // Unhandled stream error in pipe.
27693 source.on('error', onerror);
27694 dest.on('error', onerror);
27696 // remove all the event listeners that were added.
27697 function cleanup() {
27698 source.removeListener('data', ondata);
27699 dest.removeListener('drain', ondrain);
27701 source.removeListener('end', onend);
27702 source.removeListener('close', onclose);
27704 source.removeListener('error', onerror);
27705 dest.removeListener('error', onerror);
27707 source.removeListener('end', cleanup);
27708 source.removeListener('close', cleanup);
27710 dest.removeListener('close', cleanup);
27713 source.on('end', cleanup);
27714 source.on('close', cleanup);
27716 dest.on('close', cleanup);
27718 dest.emit('pipe', source);
27720 // Allow for unix-like usage: A.pipe(B).pipe(C)
27724 },{
"events":
7,
"inherits":
9,
"readable-stream/duplex.js":
14,
"readable-stream/passthrough.js":
21,
"readable-stream/readable.js":
22,
"readable-stream/transform.js":
23,
"readable-stream/writable.js":
24}],
26:[function(require,module,exports){
27725 // Copyright Joyent, Inc. and other Node contributors.
27727 // Permission is hereby granted, free of charge, to any person obtaining a
27728 // copy of this software and associated documentation files (the
27729 //
"Software"), to deal in the Software without restriction, including
27730 // without limitation the rights to use, copy, modify, merge, publish,
27731 // distribute, sublicense, and/or sell copies of the Software, and to permit
27732 // persons to whom the Software is furnished to do so, subject to the
27733 // following conditions:
27735 // The above copyright notice and this permission notice shall be included
27736 // in all copies or substantial portions of the Software.
27738 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27739 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27740 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27741 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27742 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27743 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27744 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27746 var Buffer = require('buffer').Buffer;
27748 var isBufferEncoding = Buffer.isEncoding
27749 || function(encoding) {
27750 switch (encoding && encoding.toLowerCase()) {
27751 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;
27752 default: return false;
27757 function assertEncoding(encoding) {
27758 if (encoding && !isBufferEncoding(encoding)) {
27759 throw new Error('Unknown encoding: ' + encoding);
27763 // StringDecoder provides an interface for efficiently splitting a series of
27764 // buffers into a series of JS strings without breaking apart multi-byte
27765 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27767 // @TODO Handling all encodings inside a single object makes it very difficult
27768 // to reason about this code, so it should be split up in the future.
27769 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27770 // points as used by CESU-
8.
27771 var StringDecoder = exports.StringDecoder = function(encoding) {
27772 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27773 assertEncoding(encoding);
27774 switch (this.encoding) {
27776 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27777 this.surrogateSize =
3;
27781 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27782 this.surrogateSize =
2;
27783 this.detectIncompleteChar = utf16DetectIncompleteChar;
27786 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27787 this.surrogateSize =
3;
27788 this.detectIncompleteChar = base64DetectIncompleteChar;
27791 this.write = passThroughWrite;
27795 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27796 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27797 this.charBuffer = new Buffer(
6);
27798 // Number of bytes received for the current incomplete multi-byte character.
27799 this.charReceived =
0;
27800 // Number of bytes expected for the current incomplete multi-byte character.
27801 this.charLength =
0;
27805 // write decodes the given buffer and returns it as JS string that is
27806 // guaranteed to not contain any partial multi-byte characters. Any partial
27807 // character found at the end of the buffer is buffered up, and will be
27808 // returned when calling write again with the remaining bytes.
27810 // Note: Converting a Buffer containing an orphan surrogate to a String
27811 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27812 // Buffer#write) will replace incomplete surrogates with the unicode
27813 // replacement character. See https://codereview.chromium.org/
121173009/ .
27814 StringDecoder.prototype.write = function(buffer) {
27816 // if our last write ended with an incomplete multibyte character
27817 while (this.charLength) {
27818 // determine how many remaining bytes this buffer has to offer for this char
27819 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27820 this.charLength - this.charReceived :
27823 // add the new bytes to the char buffer
27824 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27825 this.charReceived += available;
27827 if (this.charReceived < this.charLength) {
27828 // still not enough chars in this buffer? wait for more ...
27832 // remove bytes belonging to the current character from the buffer
27833 buffer = buffer.slice(available, buffer.length);
27835 // get the character that was split
27836 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27838 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27839 var charCode = charStr.charCodeAt(charStr.length -
1);
27840 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27841 this.charLength += this.surrogateSize;
27845 this.charReceived = this.charLength =
0;
27847 // if there are no more bytes in this buffer, just emit our char
27848 if (buffer.length ===
0) {
27854 // determine and set charLength / charReceived
27855 this.detectIncompleteChar(buffer);
27857 var end = buffer.length;
27858 if (this.charLength) {
27859 // buffer the incomplete character bytes we got
27860 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27861 end -= this.charReceived;
27864 charStr += buffer.toString(this.encoding,
0, end);
27866 var end = charStr.length -
1;
27867 var charCode = charStr.charCodeAt(end);
27868 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27869 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27870 var size = this.surrogateSize;
27871 this.charLength += size;
27872 this.charReceived += size;
27873 this.charBuffer.copy(this.charBuffer, size,
0, size);
27874 buffer.copy(this.charBuffer,
0,
0, size);
27875 return charStr.substring(
0, end);
27878 // or just emit the charStr
27882 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27883 // the end of the given buffer. If so, it sets this.charLength to the byte
27884 // length that character, and sets this.charReceived to the number of bytes
27885 // that are available for this character.
27886 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27887 // determine how many bytes we have to check at the end of this buffer
27888 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27890 // Figure out if one of the last i bytes of our buffer announces an
27891 // incomplete char.
27892 for (; i
> 0; i--) {
27893 var c = buffer[buffer.length - i];
27895 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27898 if (i ==
1 && c
>> 5 ==
0x06) {
27899 this.charLength =
2;
27904 if (i <=
2 && c
>> 4 ==
0x0E) {
27905 this.charLength =
3;
27910 if (i <=
3 && c
>> 3 ==
0x1E) {
27911 this.charLength =
4;
27915 this.charReceived = i;
27918 StringDecoder.prototype.end = function(buffer) {
27920 if (buffer && buffer.length)
27921 res = this.write(buffer);
27923 if (this.charReceived) {
27924 var cr = this.charReceived;
27925 var buf = this.charBuffer;
27926 var enc = this.encoding;
27927 res += buf.slice(
0, cr).toString(enc);
27933 function passThroughWrite(buffer) {
27934 return buffer.toString(this.encoding);
27937 function utf16DetectIncompleteChar(buffer) {
27938 this.charReceived = buffer.length %
2;
27939 this.charLength = this.charReceived ?
2 :
0;
27942 function base64DetectIncompleteChar(buffer) {
27943 this.charReceived = buffer.length %
3;
27944 this.charLength = this.charReceived ?
3 :
0;
27947 },{
"buffer":
5}],
27:[function(require,module,exports){
27948 (function (global){
27954 module.exports = deprecate;
27957 * Mark that a method should not be used.
27958 * Returns a modified function which warns once by default.
27960 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27962 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27963 * will throw an Error when invoked.
27965 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27966 * will invoke `console.trace()` instead of `console.error()`.
27968 * @param {Function} fn - the function to deprecate
27969 * @param {String} msg - the string to print to the console when `fn` is invoked
27970 * @returns {Function} a new
"deprecated" version of `fn`
27974 function deprecate (fn, msg) {
27975 if (config('noDeprecation')) {
27979 var warned = false;
27980 function deprecated() {
27982 if (config('throwDeprecation')) {
27983 throw new Error(msg);
27984 } else if (config('traceDeprecation')) {
27985 console.trace(msg);
27991 return fn.apply(this, arguments);
27998 * Checks `localStorage` for boolean values for the given `name`.
28000 * @param {String} name
28001 * @returns {Boolean}
28005 function config (name) {
28006 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
28008 if (!global.localStorage) return false;
28012 var val = global.localStorage[name];
28013 if (null == val) return false;
28014 return String(val).toLowerCase() === 'true';
28017 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28018 },{}],
28:[function(require,module,exports){
28019 arguments[
4][
9][
0].apply(exports,arguments)
28020 },{
"dup":
9}],
29:[function(require,module,exports){
28021 module.exports = function isBuffer(arg) {
28022 return arg && typeof arg === 'object'
28023 && typeof arg.copy === 'function'
28024 && typeof arg.fill === 'function'
28025 && typeof arg.readUInt8 === 'function';
28027 },{}],
30:[function(require,module,exports){
28028 (function (process,global){
28029 // Copyright Joyent, Inc. and other Node contributors.
28031 // Permission is hereby granted, free of charge, to any person obtaining a
28032 // copy of this software and associated documentation files (the
28033 //
"Software"), to deal in the Software without restriction, including
28034 // without limitation the rights to use, copy, modify, merge, publish,
28035 // distribute, sublicense, and/or sell copies of the Software, and to permit
28036 // persons to whom the Software is furnished to do so, subject to the
28037 // following conditions:
28039 // The above copyright notice and this permission notice shall be included
28040 // in all copies or substantial portions of the Software.
28042 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28043 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28044 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28045 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28046 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28047 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28048 // USE OR OTHER DEALINGS IN THE SOFTWARE.
28050 var formatRegExp = /%[sdj%]/g;
28051 exports.format = function(f) {
28052 if (!isString(f)) {
28054 for (var i =
0; i < arguments.length; i++) {
28055 objects.push(inspect(arguments[i]));
28057 return objects.join(' ');
28061 var args = arguments;
28062 var len = args.length;
28063 var str = String(f).replace(formatRegExp, function(x) {
28064 if (x === '%%') return '%';
28065 if (i
>= len) return x;
28067 case '%s': return String(args[i++]);
28068 case '%d': return Number(args[i++]);
28071 return JSON.stringify(args[i++]);
28073 return '[Circular]';
28079 for (var x = args[i]; i < len; x = args[++i]) {
28080 if (isNull(x) || !isObject(x)) {
28083 str += ' ' + inspect(x);
28090 // Mark that a method should not be used.
28091 // Returns a modified function which warns once by default.
28092 // If --no-deprecation is set, then it is a no-op.
28093 exports.deprecate = function(fn, msg) {
28094 // Allow for deprecating things in the process of starting up.
28095 if (isUndefined(global.process)) {
28096 return function() {
28097 return exports.deprecate(fn, msg).apply(this, arguments);
28101 if (process.noDeprecation === true) {
28105 var warned = false;
28106 function deprecated() {
28108 if (process.throwDeprecation) {
28109 throw new Error(msg);
28110 } else if (process.traceDeprecation) {
28111 console.trace(msg);
28113 console.error(msg);
28117 return fn.apply(this, arguments);
28126 exports.debuglog = function(set) {
28127 if (isUndefined(debugEnviron))
28128 debugEnviron = process.env.NODE_DEBUG || '';
28129 set = set.toUpperCase();
28130 if (!debugs[set]) {
28131 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28132 var pid = process.pid;
28133 debugs[set] = function() {
28134 var msg = exports.format.apply(exports, arguments);
28135 console.error('%s %d: %s', set, pid, msg);
28138 debugs[set] = function() {};
28141 return debugs[set];
28146 * Echos the value of a value. Trys to print the value out
28147 * in the best way possible given the different types.
28149 * @param {Object} obj The object to print out.
28150 * @param {Object} opts Optional options object that alters the output.
28152 /* legacy: obj, showHidden, depth, colors*/
28153 function inspect(obj, opts) {
28157 stylize: stylizeNoColor
28160 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28161 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28162 if (isBoolean(opts)) {
28164 ctx.showHidden = opts;
28166 // got an "options" object
28167 exports._extend(ctx, opts);
28169 // set default options
28170 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28171 if (isUndefined(ctx.depth)) ctx.depth =
2;
28172 if (isUndefined(ctx.colors)) ctx.colors = false;
28173 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28174 if (ctx.colors) ctx.stylize = stylizeWithColor;
28175 return formatValue(ctx, obj, ctx.depth);
28177 exports.inspect = inspect;
28180 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28183 'italic' : [
3,
23],
28184 'underline' : [
4,
24],
28185 'inverse' : [
7,
27],
28186 'white' : [
37,
39],
28188 'black' : [
30,
39],
28191 'green' : [
32,
39],
28192 'magenta' : [
35,
39],
28194 'yellow' : [
33,
39]
28197 // Don't use 'blue' not visible on cmd.exe
28200 'number': 'yellow',
28201 'boolean': 'yellow',
28202 'undefined': 'grey',
28206 // "name": intentionally not styling
28211 function stylizeWithColor(str, styleType) {
28212 var style = inspect.styles[styleType];
28215 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28216 '\u001b[' + inspect.colors[style][
1] + 'm';
28223 function stylizeNoColor(str, styleType) {
28228 function arrayToHash(array) {
28231 array.forEach(function(val, idx) {
28239 function formatValue(ctx, value, recurseTimes) {
28240 // Provide a hook for user-specified inspect functions.
28241 // Check that value is an object with an inspect function on it
28242 if (ctx.customInspect &&
28244 isFunction(value.inspect) &&
28245 // Filter out the util module, it's inspect function is special
28246 value.inspect !== exports.inspect &&
28247 // Also filter out any prototype objects using the circular check.
28248 !(value.constructor && value.constructor.prototype === value)) {
28249 var ret = value.inspect(recurseTimes, ctx);
28250 if (!isString(ret)) {
28251 ret = formatValue(ctx, ret, recurseTimes);
28256 // Primitive types cannot have properties
28257 var primitive = formatPrimitive(ctx, value);
28262 // Look up the keys of the object.
28263 var keys = Object.keys(value);
28264 var visibleKeys = arrayToHash(keys);
28266 if (ctx.showHidden) {
28267 keys = Object.getOwnPropertyNames(value);
28270 // IE doesn't make error fields non-enumerable
28271 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28273 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28274 return formatError(value);
28277 // Some type of object without properties can be shortcutted.
28278 if (keys.length ===
0) {
28279 if (isFunction(value)) {
28280 var name = value.name ? ': ' + value.name : '';
28281 return ctx.stylize('[Function' + name + ']', 'special');
28283 if (isRegExp(value)) {
28284 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28286 if (isDate(value)) {
28287 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28289 if (isError(value)) {
28290 return formatError(value);
28294 var base = '', array = false, braces = ['{', '}'];
28296 // Make Array say that they are Array
28297 if (isArray(value)) {
28299 braces = ['[', ']'];
28302 // Make functions say that they are functions
28303 if (isFunction(value)) {
28304 var n = value.name ? ': ' + value.name : '';
28305 base = ' [Function' + n + ']';
28308 // Make RegExps say that they are RegExps
28309 if (isRegExp(value)) {
28310 base = ' ' + RegExp.prototype.toString.call(value);
28313 // Make dates with properties first say the date
28314 if (isDate(value)) {
28315 base = ' ' + Date.prototype.toUTCString.call(value);
28318 // Make error with message first say the error
28319 if (isError(value)) {
28320 base = ' ' + formatError(value);
28323 if (keys.length ===
0 && (!array || value.length ==
0)) {
28324 return braces[
0] + base + braces[
1];
28327 if (recurseTimes <
0) {
28328 if (isRegExp(value)) {
28329 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28331 return ctx.stylize('[Object]', 'special');
28335 ctx.seen.push(value);
28339 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28341 output = keys.map(function(key) {
28342 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28348 return reduceToSingleString(output, base, braces);
28352 function formatPrimitive(ctx, value) {
28353 if (isUndefined(value))
28354 return ctx.stylize('undefined', 'undefined');
28355 if (isString(value)) {
28356 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28357 .replace(/'/g, "\\'")
28358 .replace(/\\"/g, '"') + '\'';
28359 return ctx.stylize(simple, 'string');
28361 if (isNumber(value))
28362 return ctx.stylize('' + value, 'number');
28363 if (isBoolean(value))
28364 return ctx.stylize('' + value, 'boolean');
28365 // For some reason typeof null is "object", so special case here.
28367 return ctx.stylize('null', 'null');
28371 function formatError(value) {
28372 return '[' + Error.prototype.toString.call(value) + ']';
28376 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28378 for (var i =
0, l = value.length; i < l; ++i) {
28379 if (hasOwnProperty(value, String(i))) {
28380 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28386 keys.forEach(function(key) {
28387 if (!key.match(/^\d+$/)) {
28388 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28396 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28397 var name, str, desc;
28398 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28401 str = ctx.stylize('[Getter/Setter]', 'special');
28403 str = ctx.stylize('[Getter]', 'special');
28407 str = ctx.stylize('[Setter]', 'special');
28410 if (!hasOwnProperty(visibleKeys, key)) {
28411 name = '[' + key + ']';
28414 if (ctx.seen.indexOf(desc.value) <
0) {
28415 if (isNull(recurseTimes)) {
28416 str = formatValue(ctx, desc.value, null);
28418 str = formatValue(ctx, desc.value, recurseTimes -
1);
28420 if (str.indexOf('\n')
> -
1) {
28422 str = str.split('\n').map(function(line) {
28424 }).join('\n').substr(
2);
28426 str = '\n' + str.split('\n').map(function(line) {
28432 str = ctx.stylize('[Circular]', 'special');
28435 if (isUndefined(name)) {
28436 if (array && key.match(/^\d+$/)) {
28439 name = JSON.stringify('' + key);
28440 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28441 name = name.substr(
1, name.length -
2);
28442 name = ctx.stylize(name, 'name');
28444 name = name.replace(/'/g, "\\'")
28445 .replace(/\\"/g, '"')
28446 .replace(/(^"|"$)/g, "'");
28447 name = ctx.stylize(name, 'string');
28451 return name + ': ' + str;
28455 function reduceToSingleString(output, base, braces) {
28456 var numLinesEst =
0;
28457 var length = output.reduce(function(prev, cur) {
28459 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28460 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28465 (base === '' ? '' : base + '\n ') +
28467 output.join(',\n ') +
28472 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28476 // NOTE: These type checking functions intentionally don't use `instanceof`
28477 // because it is fragile and can be easily faked with `Object.create()`.
28478 function isArray(ar) {
28479 return Array.isArray(ar);
28481 exports.isArray = isArray;
28483 function isBoolean(arg) {
28484 return typeof arg === 'boolean';
28486 exports.isBoolean = isBoolean;
28488 function isNull(arg) {
28489 return arg === null;
28491 exports.isNull = isNull;
28493 function isNullOrUndefined(arg) {
28494 return arg == null;
28496 exports.isNullOrUndefined = isNullOrUndefined;
28498 function isNumber(arg) {
28499 return typeof arg === 'number';
28501 exports.isNumber = isNumber;
28503 function isString(arg) {
28504 return typeof arg === 'string';
28506 exports.isString = isString;
28508 function isSymbol(arg) {
28509 return typeof arg === 'symbol';
28511 exports.isSymbol = isSymbol;
28513 function isUndefined(arg) {
28514 return arg === void
0;
28516 exports.isUndefined = isUndefined;
28518 function isRegExp(re) {
28519 return isObject(re) && objectToString(re) === '[object RegExp]';
28521 exports.isRegExp = isRegExp;
28523 function isObject(arg) {
28524 return typeof arg === 'object' && arg !== null;
28526 exports.isObject = isObject;
28528 function isDate(d) {
28529 return isObject(d) && objectToString(d) === '[object Date]';
28531 exports.isDate = isDate;
28533 function isError(e) {
28534 return isObject(e) &&
28535 (objectToString(e) === '[object Error]' || e instanceof Error);
28537 exports.isError = isError;
28539 function isFunction(arg) {
28540 return typeof arg === 'function';
28542 exports.isFunction = isFunction;
28544 function isPrimitive(arg) {
28545 return arg === null ||
28546 typeof arg === 'boolean' ||
28547 typeof arg === 'number' ||
28548 typeof arg === 'string' ||
28549 typeof arg === 'symbol' || // ES6 symbol
28550 typeof arg === 'undefined';
28552 exports.isPrimitive = isPrimitive;
28554 exports.isBuffer = require('./support/isBuffer');
28556 function objectToString(o) {
28557 return Object.prototype.toString.call(o);
28562 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28566 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28567 'Oct', 'Nov', 'Dec'];
28570 function timestamp() {
28571 var d = new Date();
28572 var time = [pad(d.getHours()),
28573 pad(d.getMinutes()),
28574 pad(d.getSeconds())].join(':');
28575 return [d.getDate(), months[d.getMonth()], time].join(' ');
28579 // log is just a thin wrapper to console.log that prepends a timestamp
28580 exports.log = function() {
28581 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28586 * Inherit the prototype methods from one constructor into another.
28588 * The Function.prototype.inherits from lang.js rewritten as a standalone
28589 * function (not on Function.prototype). NOTE: If this file is to be loaded
28590 * during bootstrapping this function needs to be rewritten using some native
28591 * functions as prototype setup using normal JavaScript does not work as
28592 * expected during bootstrapping (see mirror.js in r114903).
28594 * @param {function} ctor Constructor function which needs to inherit the
28596 * @param {function} superCtor Constructor function to inherit prototype from.
28598 exports.inherits = require('inherits');
28600 exports._extend = function(origin, add) {
28601 // Don't do anything if add isn't an object
28602 if (!add || !isObject(add)) return origin;
28604 var keys = Object.keys(add);
28605 var i = keys.length;
28607 origin[keys[i]] = add[keys[i]];
28612 function hasOwnProperty(obj, prop) {
28613 return Object.prototype.hasOwnProperty.call(obj, prop);
28616 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28617 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28618 (function (Buffer){
28619 const createKeccakHash = require('keccak')
28620 const secp256k1 = require('secp256k1')
28621 const assert = require('assert')
28622 const rlp = require('rlp')
28623 const BN = require('bn.js')
28624 const createHash = require('create-hash')
28625 Object.assign(exports, require('ethjs-util'))
28628 * the max integer that this VM can handle (a ```BN```)
28629 * @var {BN} MAX_INTEGER
28631 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28634 *
2^
256 (a ```BN```)
28635 * @var {BN} TWO_POW256
28637 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28640 * SHA3-
256 hash of null (a ```String```)
28641 * @var {String} SHA3_NULL_S
28643 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28646 * SHA3-
256 hash of null (a ```Buffer```)
28647 * @var {Buffer} SHA3_NULL
28649 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28652 * SHA3-
256 of an RLP of an empty array (a ```String```)
28653 * @var {String} SHA3_RLP_ARRAY_S
28655 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28658 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28659 * @var {Buffer} SHA3_RLP_ARRAY
28661 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28664 * SHA3-
256 hash of the RLP of null (a ```String```)
28665 * @var {String} SHA3_RLP_S
28667 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28670 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28671 * @var {Buffer} SHA3_RLP
28673 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28676 * [`BN`](https://github.com/indutny/bn.js)
28682 * [`rlp`](https://github.com/ethereumjs/rlp)
28688 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28691 exports.secp256k1 = secp256k1
28694 * Returns a buffer filled with
0s
28696 * @param {Number} bytes the number of bytes the buffer should be
28699 exports.zeros = function (bytes) {
28700 return Buffer.allocUnsafe(bytes).fill(
0)
28704 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28705 * Or it truncates the beginning if it exceeds.
28706 * @method lsetLength
28707 * @param {Buffer|Array} msg the value to pad
28708 * @param {Number} length the number of bytes the output should be
28709 * @param {Boolean} [right=false] whether to start padding form the left or right
28710 * @return {Buffer|Array}
28712 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28713 var buf = exports.zeros(length)
28714 msg = exports.toBuffer(msg)
28716 if (msg.length < length) {
28720 return msg.slice(
0, length)
28722 if (msg.length < length) {
28723 msg.copy(buf, length - msg.length)
28726 return msg.slice(-length)
28731 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28732 * Or it truncates the beginning if it exceeds.
28733 * @param {Buffer|Array} msg the value to pad
28734 * @param {Number} length the number of bytes the output should be
28735 * @return {Buffer|Array}
28737 exports.setLengthRight = function (msg, length) {
28738 return exports.setLength(msg, length, true)
28742 * Trims leading zeros from a `Buffer` or an `Array`
28743 * @param {Buffer|Array|String} a
28744 * @return {Buffer|Array|String}
28746 exports.unpad = exports.stripZeros = function (a) {
28747 a = exports.stripHexPrefix(a)
28749 while (a.length
> 0 && first.toString() === '
0') {
28756 * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.
28757 * @param {*} v the value
28759 exports.toBuffer = function (v) {
28760 if (!Buffer.isBuffer(v)) {
28761 if (Array.isArray(v)) {
28763 } else if (typeof v === 'string') {
28764 if (exports.isHexPrefixed(v)) {
28765 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28769 } else if (typeof v === 'number') {
28770 v = exports.intToBuffer(v)
28771 } else if (v === null || v === undefined) {
28772 v = Buffer.allocUnsafe(
0)
28773 } else if (v.toArray) {
28774 // converts a BN to a Buffer
28775 v = Buffer.from(v.toArray())
28777 throw new Error('invalid type')
28784 * Converts a `Buffer` to a `Number`
28785 * @param {Buffer} buf
28787 * @throws If the input number exceeds
53 bits.
28789 exports.bufferToInt = function (buf) {
28790 return new BN(exports.toBuffer(buf)).toNumber()
28794 * Converts a `Buffer` into a hex `String`
28795 * @param {Buffer} buf
28798 exports.bufferToHex = function (buf) {
28799 buf = exports.toBuffer(buf)
28800 return '
0x' + buf.toString('hex')
28804 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28805 * @param {Buffer} num
28808 exports.fromSigned = function (num) {
28809 return new BN(num).fromTwos(
256)
28813 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28817 exports.toUnsigned = function (num) {
28818 return Buffer.from(num.toTwos(
256).toArray())
28822 * Creates SHA-
3 hash of the input
28823 * @param {Buffer|Array|String|Number} a the input data
28824 * @param {Number} [bits=
256] the SHA width
28827 exports.sha3 = function (a, bits) {
28828 a = exports.toBuffer(a)
28829 if (!bits) bits =
256
28831 return createKeccakHash('keccak' + bits).update(a).digest()
28835 * Creates SHA256 hash of the input
28836 * @param {Buffer|Array|String|Number} a the input data
28839 exports.sha256 = function (a) {
28840 a = exports.toBuffer(a)
28841 return createHash('sha256').update(a).digest()
28845 * Creates RIPEMD160 hash of the input
28846 * @param {Buffer|Array|String|Number} a the input data
28847 * @param {Boolean} padded whether it should be padded to
256 bits or not
28850 exports.ripemd160 = function (a, padded) {
28851 a = exports.toBuffer(a)
28852 var hash = createHash('rmd160').update(a).digest()
28853 if (padded === true) {
28854 return exports.setLength(hash,
32)
28861 * Creates SHA-
3 hash of the RLP encoded version of the input
28862 * @param {Buffer|Array|String|Number} a the input data
28865 exports.rlphash = function (a) {
28866 return exports.sha3(rlp.encode(a))
28870 * Checks if the private key satisfies the rules of the curve secp256k1.
28871 * @param {Buffer} privateKey
28872 * @return {Boolean}
28874 exports.isValidPrivate = function (privateKey) {
28875 return secp256k1.privateKeyVerify(privateKey)
28879 * Checks if the public key satisfies the rules of the curve secp256k1
28880 * and the requirements of Ethereum.
28881 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28882 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28883 * @return {Boolean}
28885 exports.isValidPublic = function (publicKey, sanitize) {
28886 if (publicKey.length ===
64) {
28887 // Convert to SEC1 for secp256k1
28888 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28895 return secp256k1.publicKeyVerify(publicKey)
28899 * Returns the ethereum address of a given public key.
28900 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28901 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28902 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28905 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28906 pubKey = exports.toBuffer(pubKey)
28907 if (sanitize && (pubKey.length !==
64)) {
28908 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28910 assert(pubKey.length ===
64)
28911 // Only take the lower
160bits of the hash
28912 return exports.sha3(pubKey).slice(-
20)
28916 * Returns the ethereum public key of a given private key
28917 * @param {Buffer} privateKey A private key must be
256 bits wide
28920 var privateToPublic = exports.privateToPublic = function (privateKey) {
28921 privateKey = exports.toBuffer(privateKey)
28922 // skip the type flag and use the X, Y points
28923 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28927 * Converts a public key to the Ethereum format.
28928 * @param {Buffer} publicKey
28931 exports.importPublic = function (publicKey) {
28932 publicKey = exports.toBuffer(publicKey)
28933 if (publicKey.length !==
64) {
28934 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28941 * @param {Buffer} msgHash
28942 * @param {Buffer} privateKey
28945 exports.ecsign = function (msgHash, privateKey) {
28946 var sig = secp256k1.sign(msgHash, privateKey)
28949 ret.r = sig.signature.slice(
0,
32)
28950 ret.s = sig.signature.slice(
32,
64)
28951 ret.v = sig.recovery +
27
28956 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28957 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28958 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28959 * used to produce the signature.
28961 * @returns {Buffer} hash
28963 exports.hashPersonalMessage = function (message) {
28964 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28965 return exports.sha3(Buffer.concat([prefix, message]))
28969 * ECDSA public key recovery from signature
28970 * @param {Buffer} msgHash
28971 * @param {Number} v
28972 * @param {Buffer} r
28973 * @param {Buffer} s
28974 * @return {Buffer} publicKey
28976 exports.ecrecover = function (msgHash, v, r, s) {
28977 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28978 var recovery = v -
27
28979 if (recovery !==
0 && recovery !==
1) {
28980 throw new Error('Invalid signature v value')
28982 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28983 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28987 * Convert signature parameters into the format of `eth_sign` RPC method
28988 * @param {Number} v
28989 * @param {Buffer} r
28990 * @param {Buffer} s
28991 * @return {String} sig
28993 exports.toRpcSig = function (v, r, s) {
28994 // NOTE: with potential introduction of chainId this might need to be updated
28995 if (v !==
27 && v !==
28) {
28996 throw new Error('Invalid recovery id')
28999 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
29000 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
29001 return exports.bufferToHex(Buffer.concat([
29002 exports.setLengthLeft(r,
32),
29003 exports.setLengthLeft(s,
32),
29004 exports.toBuffer(v -
27)
29009 * Convert signature format of the `eth_sign` RPC method to signature parameters
29010 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
29011 * @param {String} sig
29014 exports.fromRpcSig = function (sig) {
29015 sig = exports.toBuffer(sig)
29017 // NOTE: with potential introduction of chainId this might need to be updated
29018 if (sig.length !==
65) {
29019 throw new Error('Invalid signature length')
29023 // support both versions of `eth_sign` responses
29030 r: sig.slice(
0,
32),
29031 s: sig.slice(
32,
64)
29036 * Returns the ethereum address of a given private key
29037 * @param {Buffer} privateKey A private key must be
256 bits wide
29040 exports.privateToAddress = function (privateKey) {
29041 return exports.publicToAddress(privateToPublic(privateKey))
29045 * Checks if the address is a valid. Accepts checksummed addresses too
29046 * @param {String} address
29047 * @return {Boolean}
29049 exports.isValidAddress = function (address) {
29050 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
29054 * Returns a checksummed address
29055 * @param {String} address
29058 exports.toChecksumAddress = function (address) {
29059 address = exports.stripHexPrefix(address).toLowerCase()
29060 var hash = exports.sha3(address).toString('hex')
29063 for (var i =
0; i < address.length; i++) {
29064 if (parseInt(hash[i],
16)
>=
8) {
29065 ret += address[i].toUpperCase()
29075 * Checks if the address is a valid checksummed address
29076 * @param {Buffer} address
29077 * @return {Boolean}
29079 exports.isValidChecksumAddress = function (address) {
29080 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
29084 * Generates an address of a newly created contract
29085 * @param {Buffer} from the address which is creating this new address
29086 * @param {Buffer} nonce the nonce of the from account
29089 exports.generateAddress = function (from, nonce) {
29090 from = exports.toBuffer(from)
29091 nonce = new BN(nonce)
29093 if (nonce.isZero()) {
29094 // in RLP we want to encode null in the case of zero nonce
29095 // read the RLP documentation for an answer if you dare
29098 nonce = Buffer.from(nonce.toArray())
29101 // Only take the lower
160bits of the hash
29102 return exports.rlphash([from, nonce]).slice(-
20)
29106 * Returns true if the supplied address belongs to a precompiled account
29107 * @param {Buffer|String} address
29108 * @return {Boolean}
29110 exports.isPrecompiled = function (address) {
29111 var a = exports.unpad(address)
29112 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
29116 * Adds
"0x" to a given `String` if it does not already start with
"0x"
29117 * @param {String} str
29120 exports.addHexPrefix = function (str) {
29121 if (typeof str !== 'string') {
29125 return exports.isHexPrefixed(str) ? str : '
0x' + str
29129 * Validate ECDSA signature
29130 * @method isValidSignature
29131 * @param {Buffer} v
29132 * @param {Buffer} r
29133 * @param {Buffer} s
29134 * @param {Boolean} [homestead=true]
29135 * @return {Boolean}
29138 exports.isValidSignature = function (v, r, s, homestead) {
29139 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29140 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29142 if (r.length !==
32 || s.length !==
32) {
29146 if (v !==
27 && v !==
28) {
29153 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29157 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29165 * Converts a `Buffer` or `Array` to JSON
29166 * @param {Buffer|Array} ba
29167 * @return {Array|String|null}
29169 exports.baToJSON = function (ba) {
29170 if (Buffer.isBuffer(ba)) {
29171 return '
0x' + ba.toString('hex')
29172 } else if (ba instanceof Array) {
29174 for (var i =
0; i < ba.length; i++) {
29175 array.push(exports.baToJSON(ba[i]))
29182 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29183 * @param {Object} self the `Object` to define properties on
29184 * @param {Array} fields an array fields to define. Fields can contain:
29185 * * `name` - the name of the properties
29186 * * `length` - the number of bytes the field can have
29187 * * `allowLess` - if the field can be less than the length
29189 * @param {*} data data to be validated against the definitions
29191 exports.defineProperties = function (self, fields, data) {
29195 // attach the `toJSON`
29196 self.toJSON = function (label) {
29199 self._fields.forEach(function (field) {
29200 obj[field] = '
0x' + self[field].toString('hex')
29204 return exports.baToJSON(this.raw)
29207 self.serialize = function serialize () {
29208 return rlp.encode(self.raw)
29211 fields.forEach(function (field, i) {
29212 self._fields.push(field.name)
29213 function getter () {
29216 function setter (v) {
29217 v = exports.toBuffer(v)
29219 if (v.toString('hex') === '
00' && !field.allowZero) {
29220 v = Buffer.allocUnsafe(
0)
29223 if (field.allowLess && field.length) {
29224 v = exports.stripZeros(v)
29225 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29226 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29227 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29233 Object.defineProperty(self, field.name, {
29235 configurable: true,
29240 if (field.default) {
29241 self[field.name] = field.default
29246 Object.defineProperty(self, field.alias, {
29248 configurable: true,
29255 // if the constuctor is passed data
29257 if (typeof data === 'string') {
29258 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29261 if (Buffer.isBuffer(data)) {
29262 data = rlp.decode(data)
29265 if (Array.isArray(data)) {
29266 if (data.length
> self._fields.length) {
29267 throw (new Error('wrong number of fields in data'))
29270 // make sure all the items are buffers
29271 data.forEach(function (d, i) {
29272 self[self._fields[i]] = exports.toBuffer(d)
29274 } else if (typeof data === 'object') {
29275 const keys = Object.keys(data)
29276 fields.forEach(function (field) {
29277 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29278 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29281 throw new Error('invalid data')
29286 }).call(this,require("buffer").Buffer)
29287 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29288 (function (Buffer){
29289 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29290 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29291 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29293 function check (buffer) {
29294 if (buffer.length <
8) return false
29295 if (buffer.length
> 72) return false
29296 if (buffer[
0] !==
0x30) return false
29297 if (buffer[
1] !== buffer.length -
2) return false
29298 if (buffer[
2] !==
0x02) return false
29300 var lenR = buffer[
3]
29301 if (lenR ===
0) return false
29302 if (
5 + lenR
>= buffer.length) return false
29303 if (buffer[
4 + lenR] !==
0x02) return false
29305 var lenS = buffer[
5 + lenR]
29306 if (lenS ===
0) return false
29307 if ((
6 + lenR + lenS) !== buffer.length) return false
29309 if (buffer[
4] &
0x80) return false
29310 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29312 if (buffer[lenR +
6] &
0x80) return false
29313 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29317 function decode (buffer) {
29318 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29319 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29320 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29321 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29322 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29324 var lenR = buffer[
3]
29325 if (lenR ===
0) throw new Error('R length is zero')
29326 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29327 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29329 var lenS = buffer[
5 + lenR]
29330 if (lenS ===
0) throw new Error('S length is zero')
29331 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29333 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29334 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29336 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29337 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29339 // non-BIP66 - extract R, S values
29341 r: buffer.slice(
4,
4 + lenR),
29342 s: buffer.slice(
6 + lenR)
29347 * Expects r and s to be positive DER integers.
29349 * The DER format uses the most significant bit as a sign bit (&
0x80).
29350 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29365 *
62300 =
> 0x00f35c
29366 * -
62300 =
> 0xff0ca4
29368 function encode (r, s) {
29369 var lenR = r.length
29370 var lenS = s.length
29371 if (lenR ===
0) throw new Error('R length is zero')
29372 if (lenS ===
0) throw new Error('S length is zero')
29373 if (lenR
> 33) throw new Error('R length is too long')
29374 if (lenS
> 33) throw new Error('S length is too long')
29375 if (r[
0] &
0x80) throw new Error('R value is negative')
29376 if (s[
0] &
0x80) throw new Error('S value is negative')
29377 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29378 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29380 var signature = new Buffer(
6 + lenR + lenS)
29382 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29383 signature[
0] =
0x30
29384 signature[
1] = signature.length -
2
29385 signature[
2] =
0x02
29386 signature[
3] = r.length
29387 r.copy(signature,
4)
29388 signature[
4 + lenR] =
0x02
29389 signature[
5 + lenR] = s.length
29390 s.copy(signature,
6 + lenR)
29401 }).call(this,require(
"buffer").Buffer)
29402 },{
"buffer":
5}],
33:[function(require,module,exports){
29403 (function (module, exports) {
29407 function assert (val, msg) {
29408 if (!val) throw new Error(msg || 'Assertion failed');
29411 // Could use `inherits` module, but don't want to move from single file
29412 // architecture yet.
29413 function inherits (ctor, superCtor) {
29414 ctor.super_ = superCtor;
29415 var TempCtor = function () {};
29416 TempCtor.prototype = superCtor.prototype;
29417 ctor.prototype = new TempCtor();
29418 ctor.prototype.constructor = ctor;
29423 function BN (number, base, endian) {
29424 if (BN.isBN(number)) {
29432 // Reduction context
29435 if (number !== null) {
29436 if (base === 'le' || base === 'be') {
29441 this._init(number ||
0, base ||
10, endian || 'be');
29444 if (typeof module === 'object') {
29445 module.exports = BN;
29455 Buffer = require('buf' + 'fer').Buffer;
29459 BN.isBN = function isBN (num) {
29460 if (num instanceof BN) {
29464 return num !== null && typeof num === 'object' &&
29465 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29468 BN.max = function max (left, right) {
29469 if (left.cmp(right)
> 0) return left;
29473 BN.min = function min (left, right) {
29474 if (left.cmp(right) <
0) return left;
29478 BN.prototype._init = function init (number, base, endian) {
29479 if (typeof number === 'number') {
29480 return this._initNumber(number, base, endian);
29483 if (typeof number === 'object') {
29484 return this._initArray(number, base, endian);
29487 if (base === 'hex') {
29490 assert(base === (base |
0) && base
>=
2 && base <=
36);
29492 number = number.toString().replace(/\s+/g, '');
29494 if (number[
0] === '-') {
29499 this._parseHex(number, start);
29501 this._parseBase(number, base, start);
29504 if (number[
0] === '-') {
29510 if (endian !== 'le') return;
29512 this._initArray(this.toArray(), base, endian);
29515 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29520 if (number <
0x4000000) {
29521 this.words = [ number &
0x3ffffff ];
29523 } else if (number <
0x10000000000000) {
29525 number &
0x3ffffff,
29526 (number /
0x4000000) &
0x3ffffff
29530 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29532 number &
0x3ffffff,
29533 (number /
0x4000000) &
0x3ffffff,
29539 if (endian !== 'le') return;
29541 // Reverse the bytes
29542 this._initArray(this.toArray(), base, endian);
29545 BN.prototype._initArray = function _initArray (number, base, endian) {
29546 // Perhaps a Uint8Array
29547 assert(typeof number.length === 'number');
29548 if (number.length <=
0) {
29549 this.words = [
0 ];
29554 this.length = Math.ceil(number.length /
3);
29555 this.words = new Array(this.length);
29556 for (var i =
0; i < this.length; i++) {
29562 if (endian === 'be') {
29563 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29564 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29565 this.words[j] |= (w << off) &
0x3ffffff;
29566 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29573 } else if (endian === 'le') {
29574 for (i =
0, j =
0; i < number.length; i +=
3) {
29575 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29576 this.words[j] |= (w << off) &
0x3ffffff;
29577 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29585 return this.strip();
29588 function parseHex (str, start, end) {
29590 var len = Math.min(str.length, end);
29591 for (var i = start; i < len; i++) {
29592 var c = str.charCodeAt(i) -
48;
29597 if (c
>=
49 && c <=
54) {
29601 } else if (c
>=
17 && c <=
22) {
29612 BN.prototype._parseHex = function _parseHex (number, start) {
29613 // Create possibly bigger array to ensure that it fits the number
29614 this.length = Math.ceil((number.length - start) /
6);
29615 this.words = new Array(this.length);
29616 for (var i =
0; i < this.length; i++) {
29621 // Scan
24-bit chunks and add them to the number
29623 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29624 w = parseHex(number, i, i +
6);
29625 this.words[j] |= (w << off) &
0x3ffffff;
29626 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29627 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29634 if (i +
6 !== start) {
29635 w = parseHex(number, start, i +
6);
29636 this.words[j] |= (w << off) &
0x3ffffff;
29637 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29642 function parseBase (str, start, end, mul) {
29644 var len = Math.min(str.length, end);
29645 for (var i = start; i < len; i++) {
29646 var c = str.charCodeAt(i) -
48;
29655 } else if (c
>=
17) {
29666 BN.prototype._parseBase = function _parseBase (number, base, start) {
29667 // Initialize as zero
29668 this.words = [
0 ];
29671 // Find length of limb in base
29672 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29676 limbPow = (limbPow / base) |
0;
29678 var total = number.length - start;
29679 var mod = total % limbLen;
29680 var end = Math.min(total, total - mod) + start;
29683 for (var i = start; i < end; i += limbLen) {
29684 word = parseBase(number, i, i + limbLen, base);
29686 this.imuln(limbPow);
29687 if (this.words[
0] + word <
0x4000000) {
29688 this.words[
0] += word;
29696 word = parseBase(number, i, number.length, base);
29698 for (i =
0; i < mod; i++) {
29703 if (this.words[
0] + word <
0x4000000) {
29704 this.words[
0] += word;
29711 BN.prototype.copy = function copy (dest) {
29712 dest.words = new Array(this.length);
29713 for (var i =
0; i < this.length; i++) {
29714 dest.words[i] = this.words[i];
29716 dest.length = this.length;
29717 dest.negative = this.negative;
29718 dest.red = this.red;
29721 BN.prototype.clone = function clone () {
29722 var r = new BN(null);
29727 BN.prototype._expand = function _expand (size) {
29728 while (this.length < size) {
29729 this.words[this.length++] =
0;
29734 // Remove leading `
0` from `this`
29735 BN.prototype.strip = function strip () {
29736 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29739 return this._normSign();
29742 BN.prototype._normSign = function _normSign () {
29744 if (this.length ===
1 && this.words[
0] ===
0) {
29750 BN.prototype.inspect = function inspect () {
29751 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29757 var groupSizes = [];
29758 var groupBases = [];
29762 while (++i < BN.wordSize) {
29771 while (++base <
36 +
1) {
29774 while (groupBase < (
1 << BN.wordSize) / base) {
29778 groupSizes[base] = groupSize;
29779 groupBases[base] = groupBase;
29801 '
0000000000000000',
29802 '
00000000000000000',
29803 '
000000000000000000',
29804 '
0000000000000000000',
29805 '
00000000000000000000',
29806 '
000000000000000000000',
29807 '
0000000000000000000000',
29808 '
00000000000000000000000',
29809 '
000000000000000000000000',
29810 '
0000000000000000000000000'
29815 25,
16,
12,
11,
10,
9,
8,
29816 8,
7,
7,
7,
7,
6,
6,
29817 6,
6,
6,
6,
6,
5,
5,
29818 5,
5,
5,
5,
5,
5,
5,
29819 5,
5,
5,
5,
5,
5,
5
29824 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29825 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29826 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29827 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29828 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29831 BN.prototype.toString = function toString (base, padding) {
29833 padding = padding |
0 ||
1;
29836 if (base ===
16 || base === 'hex') {
29840 for (var i =
0; i < this.length; i++) {
29841 var w = this.words[i];
29842 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29843 carry = (w
>>> (
24 - off)) &
0xffffff;
29844 if (carry !==
0 || i !== this.length -
1) {
29845 out = zeros[
6 - word.length] + word + out;
29856 out = carry.toString(
16) + out;
29858 while (out.length % padding !==
0) {
29861 if (this.negative !==
0) {
29867 if (base === (base |
0) && base
>=
2 && base <=
36) {
29868 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29869 var groupSize = groupSizes[base];
29870 // var groupBase = Math.pow(base, groupSize);
29871 var groupBase = groupBases[base];
29873 var c = this.clone();
29875 while (!c.isZero()) {
29876 var r = c.modn(groupBase).toString(base);
29877 c = c.idivn(groupBase);
29880 out = zeros[groupSize - r.length] + r + out;
29885 if (this.isZero()) {
29888 while (out.length % padding !==
0) {
29891 if (this.negative !==
0) {
29897 assert(false, 'Base should be between
2 and
36');
29900 BN.prototype.toNumber = function toNumber () {
29901 var ret = this.words[
0];
29902 if (this.length ===
2) {
29903 ret += this.words[
1] *
0x4000000;
29904 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29905 // NOTE: at this stage it is known that the top bit is set
29906 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29907 } else if (this.length
> 2) {
29908 assert(false, 'Number can only safely store up to
53 bits');
29910 return (this.negative !==
0) ? -ret : ret;
29913 BN.prototype.toJSON = function toJSON () {
29914 return this.toString(
16);
29917 BN.prototype.toBuffer = function toBuffer (endian, length) {
29918 assert(typeof Buffer !== 'undefined');
29919 return this.toArrayLike(Buffer, endian, length);
29922 BN.prototype.toArray = function toArray (endian, length) {
29923 return this.toArrayLike(Array, endian, length);
29926 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29927 var byteLength = this.byteLength();
29928 var reqLength = length || Math.max(
1, byteLength);
29929 assert(byteLength <= reqLength, 'byte array longer than desired length');
29930 assert(reqLength
> 0, 'Requested array length <=
0');
29933 var littleEndian = endian === 'le';
29934 var res = new ArrayType(reqLength);
29937 var q = this.clone();
29938 if (!littleEndian) {
29939 // Assume big-endian
29940 for (i =
0; i < reqLength - byteLength; i++) {
29944 for (i =
0; !q.isZero(); i++) {
29948 res[reqLength - i -
1] = b;
29951 for (i =
0; !q.isZero(); i++) {
29958 for (; i < reqLength; i++) {
29967 BN.prototype._countBits = function _countBits (w) {
29968 return
32 - Math.clz32(w);
29971 BN.prototype._countBits = function _countBits (w) {
29994 BN.prototype._zeroBits = function _zeroBits (w) {
29996 if (w ===
0) return
26;
30000 if ((t &
0x1fff) ===
0) {
30004 if ((t &
0x7f) ===
0) {
30008 if ((t &
0xf) ===
0) {
30012 if ((t &
0x3) ===
0) {
30016 if ((t &
0x1) ===
0) {
30022 // Return number of used bits in a BN
30023 BN.prototype.bitLength = function bitLength () {
30024 var w = this.words[this.length -
1];
30025 var hi = this._countBits(w);
30026 return (this.length -
1) *
26 + hi;
30029 function toBitArray (num) {
30030 var w = new Array(num.bitLength());
30032 for (var bit =
0; bit < w.length; bit++) {
30033 var off = (bit /
26) |
0;
30034 var wbit = bit %
26;
30036 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
30042 // Number of trailing zero bits
30043 BN.prototype.zeroBits = function zeroBits () {
30044 if (this.isZero()) return
0;
30047 for (var i =
0; i < this.length; i++) {
30048 var b = this._zeroBits(this.words[i]);
30050 if (b !==
26) break;
30055 BN.prototype.byteLength = function byteLength () {
30056 return Math.ceil(this.bitLength() /
8);
30059 BN.prototype.toTwos = function toTwos (width) {
30060 if (this.negative !==
0) {
30061 return this.abs().inotn(width).iaddn(
1);
30063 return this.clone();
30066 BN.prototype.fromTwos = function fromTwos (width) {
30067 if (this.testn(width -
1)) {
30068 return this.notn(width).iaddn(
1).ineg();
30070 return this.clone();
30073 BN.prototype.isNeg = function isNeg () {
30074 return this.negative !==
0;
30077 // Return negative clone of `this`
30078 BN.prototype.neg = function neg () {
30079 return this.clone().ineg();
30082 BN.prototype.ineg = function ineg () {
30083 if (!this.isZero()) {
30084 this.negative ^=
1;
30090 // Or `num` with `this` in-place
30091 BN.prototype.iuor = function iuor (num) {
30092 while (this.length < num.length) {
30093 this.words[this.length++] =
0;
30096 for (var i =
0; i < num.length; i++) {
30097 this.words[i] = this.words[i] | num.words[i];
30100 return this.strip();
30103 BN.prototype.ior = function ior (num) {
30104 assert((this.negative | num.negative) ===
0);
30105 return this.iuor(num);
30108 // Or `num` with `this`
30109 BN.prototype.or = function or (num) {
30110 if (this.length
> num.length) return this.clone().ior(num);
30111 return num.clone().ior(this);
30114 BN.prototype.uor = function uor (num) {
30115 if (this.length
> num.length) return this.clone().iuor(num);
30116 return num.clone().iuor(this);
30119 // And `num` with `this` in-place
30120 BN.prototype.iuand = function iuand (num) {
30121 // b = min-length(num, this)
30123 if (this.length
> num.length) {
30129 for (var i =
0; i < b.length; i++) {
30130 this.words[i] = this.words[i] & num.words[i];
30133 this.length = b.length;
30135 return this.strip();
30138 BN.prototype.iand = function iand (num) {
30139 assert((this.negative | num.negative) ===
0);
30140 return this.iuand(num);
30143 // And `num` with `this`
30144 BN.prototype.and = function and (num) {
30145 if (this.length
> num.length) return this.clone().iand(num);
30146 return num.clone().iand(this);
30149 BN.prototype.uand = function uand (num) {
30150 if (this.length
> num.length) return this.clone().iuand(num);
30151 return num.clone().iuand(this);
30154 // Xor `num` with `this` in-place
30155 BN.prototype.iuxor = function iuxor (num) {
30156 // a.length
> b.length
30159 if (this.length
> num.length) {
30167 for (var i =
0; i < b.length; i++) {
30168 this.words[i] = a.words[i] ^ b.words[i];
30172 for (; i < a.length; i++) {
30173 this.words[i] = a.words[i];
30177 this.length = a.length;
30179 return this.strip();
30182 BN.prototype.ixor = function ixor (num) {
30183 assert((this.negative | num.negative) ===
0);
30184 return this.iuxor(num);
30187 // Xor `num` with `this`
30188 BN.prototype.xor = function xor (num) {
30189 if (this.length
> num.length) return this.clone().ixor(num);
30190 return num.clone().ixor(this);
30193 BN.prototype.uxor = function uxor (num) {
30194 if (this.length
> num.length) return this.clone().iuxor(num);
30195 return num.clone().iuxor(this);
30198 // Not ``this`` with ``width`` bitwidth
30199 BN.prototype.inotn = function inotn (width) {
30200 assert(typeof width === 'number' && width
>=
0);
30202 var bytesNeeded = Math.ceil(width /
26) |
0;
30203 var bitsLeft = width %
26;
30205 // Extend the buffer with leading zeroes
30206 this._expand(bytesNeeded);
30208 if (bitsLeft
> 0) {
30212 // Handle complete words
30213 for (var i =
0; i < bytesNeeded; i++) {
30214 this.words[i] = ~this.words[i] &
0x3ffffff;
30217 // Handle the residue
30218 if (bitsLeft
> 0) {
30219 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30222 // And remove leading zeroes
30223 return this.strip();
30226 BN.prototype.notn = function notn (width) {
30227 return this.clone().inotn(width);
30230 // Set `bit` of `this`
30231 BN.prototype.setn = function setn (bit, val) {
30232 assert(typeof bit === 'number' && bit
>=
0);
30234 var off = (bit /
26) |
0;
30235 var wbit = bit %
26;
30237 this._expand(off +
1);
30240 this.words[off] = this.words[off] | (
1 << wbit);
30242 this.words[off] = this.words[off] & ~(
1 << wbit);
30245 return this.strip();
30248 // Add `num` to `this` in-place
30249 BN.prototype.iadd = function iadd (num) {
30252 // negative + positive
30253 if (this.negative !==
0 && num.negative ===
0) {
30255 r = this.isub(num);
30256 this.negative ^=
1;
30257 return this._normSign();
30259 // positive + negative
30260 } else if (this.negative ===
0 && num.negative !==
0) {
30262 r = this.isub(num);
30264 return r._normSign();
30267 // a.length
> b.length
30269 if (this.length
> num.length) {
30278 for (var i =
0; i < b.length; i++) {
30279 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30280 this.words[i] = r &
0x3ffffff;
30283 for (; carry !==
0 && i < a.length; i++) {
30284 r = (a.words[i] |
0) + carry;
30285 this.words[i] = r &
0x3ffffff;
30289 this.length = a.length;
30291 this.words[this.length] = carry;
30293 // Copy the rest of the words
30294 } else if (a !== this) {
30295 for (; i < a.length; i++) {
30296 this.words[i] = a.words[i];
30303 // Add `num` to `this`
30304 BN.prototype.add = function add (num) {
30306 if (num.negative !==
0 && this.negative ===
0) {
30308 res = this.sub(num);
30311 } else if (num.negative ===
0 && this.negative !==
0) {
30313 res = num.sub(this);
30318 if (this.length
> num.length) return this.clone().iadd(num);
30320 return num.clone().iadd(this);
30323 // Subtract `num` from `this` in-place
30324 BN.prototype.isub = function isub (num) {
30325 // this - (-num) = this + num
30326 if (num.negative !==
0) {
30328 var r = this.iadd(num);
30330 return r._normSign();
30332 // -this - num = -(this + num)
30333 } else if (this.negative !==
0) {
30337 return this._normSign();
30340 // At this point both numbers are positive
30341 var cmp = this.cmp(num);
30343 // Optimization - zeroify
30362 for (var i =
0; i < b.length; i++) {
30363 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30365 this.words[i] = r &
0x3ffffff;
30367 for (; carry !==
0 && i < a.length; i++) {
30368 r = (a.words[i] |
0) + carry;
30370 this.words[i] = r &
0x3ffffff;
30373 // Copy rest of the words
30374 if (carry ===
0 && i < a.length && a !== this) {
30375 for (; i < a.length; i++) {
30376 this.words[i] = a.words[i];
30380 this.length = Math.max(this.length, i);
30386 return this.strip();
30389 // Subtract `num` from `this`
30390 BN.prototype.sub = function sub (num) {
30391 return this.clone().isub(num);
30394 function smallMulTo (self, num, out) {
30395 out.negative = num.negative ^ self.negative;
30396 var len = (self.length + num.length) |
0;
30398 len = (len -
1) |
0;
30400 // Peel one iteration (compiler can't do it, because of code complexity)
30401 var a = self.words[
0] |
0;
30402 var b = num.words[
0] |
0;
30405 var lo = r &
0x3ffffff;
30406 var carry = (r /
0x4000000) |
0;
30409 for (var k =
1; k < len; k++) {
30410 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30411 // note that ncarry could be
>=
0x3ffffff
30412 var ncarry = carry
>>> 26;
30413 var rword = carry &
0x3ffffff;
30414 var maxJ = Math.min(k, num.length -
1);
30415 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30416 var i = (k - j) |
0;
30417 a = self.words[i] |
0;
30418 b = num.words[j] |
0;
30420 ncarry += (r /
0x4000000) |
0;
30421 rword = r &
0x3ffffff;
30423 out.words[k] = rword |
0;
30424 carry = ncarry |
0;
30427 out.words[k] = carry |
0;
30432 return out.strip();
30435 // TODO(indutny): it may be reasonable to omit it for users who don't need
30436 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30437 // multiplication (like elliptic secp256k1).
30438 var comb10MulTo = function comb10MulTo (self, num, out) {
30439 var a = self.words;
30447 var al0 = a0 &
0x1fff;
30448 var ah0 = a0
>>> 13;
30450 var al1 = a1 &
0x1fff;
30451 var ah1 = a1
>>> 13;
30453 var al2 = a2 &
0x1fff;
30454 var ah2 = a2
>>> 13;
30456 var al3 = a3 &
0x1fff;
30457 var ah3 = a3
>>> 13;
30459 var al4 = a4 &
0x1fff;
30460 var ah4 = a4
>>> 13;
30462 var al5 = a5 &
0x1fff;
30463 var ah5 = a5
>>> 13;
30465 var al6 = a6 &
0x1fff;
30466 var ah6 = a6
>>> 13;
30468 var al7 = a7 &
0x1fff;
30469 var ah7 = a7
>>> 13;
30471 var al8 = a8 &
0x1fff;
30472 var ah8 = a8
>>> 13;
30474 var al9 = a9 &
0x1fff;
30475 var ah9 = a9
>>> 13;
30477 var bl0 = b0 &
0x1fff;
30478 var bh0 = b0
>>> 13;
30480 var bl1 = b1 &
0x1fff;
30481 var bh1 = b1
>>> 13;
30483 var bl2 = b2 &
0x1fff;
30484 var bh2 = b2
>>> 13;
30486 var bl3 = b3 &
0x1fff;
30487 var bh3 = b3
>>> 13;
30489 var bl4 = b4 &
0x1fff;
30490 var bh4 = b4
>>> 13;
30492 var bl5 = b5 &
0x1fff;
30493 var bh5 = b5
>>> 13;
30495 var bl6 = b6 &
0x1fff;
30496 var bh6 = b6
>>> 13;
30498 var bl7 = b7 &
0x1fff;
30499 var bh7 = b7
>>> 13;
30501 var bl8 = b8 &
0x1fff;
30502 var bh8 = b8
>>> 13;
30504 var bl9 = b9 &
0x1fff;
30505 var bh9 = b9
>>> 13;
30507 out.negative = self.negative ^ num.negative;
30510 lo = Math.imul(al0, bl0);
30511 mid = Math.imul(al0, bh0);
30512 mid = (mid + Math.imul(ah0, bl0)) |
0;
30513 hi = Math.imul(ah0, bh0);
30514 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30515 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30518 lo = Math.imul(al1, bl0);
30519 mid = Math.imul(al1, bh0);
30520 mid = (mid + Math.imul(ah1, bl0)) |
0;
30521 hi = Math.imul(ah1, bh0);
30522 lo = (lo + Math.imul(al0, bl1)) |
0;
30523 mid = (mid + Math.imul(al0, bh1)) |
0;
30524 mid = (mid + Math.imul(ah0, bl1)) |
0;
30525 hi = (hi + Math.imul(ah0, bh1)) |
0;
30526 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30527 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30530 lo = Math.imul(al2, bl0);
30531 mid = Math.imul(al2, bh0);
30532 mid = (mid + Math.imul(ah2, bl0)) |
0;
30533 hi = Math.imul(ah2, bh0);
30534 lo = (lo + Math.imul(al1, bl1)) |
0;
30535 mid = (mid + Math.imul(al1, bh1)) |
0;
30536 mid = (mid + Math.imul(ah1, bl1)) |
0;
30537 hi = (hi + Math.imul(ah1, bh1)) |
0;
30538 lo = (lo + Math.imul(al0, bl2)) |
0;
30539 mid = (mid + Math.imul(al0, bh2)) |
0;
30540 mid = (mid + Math.imul(ah0, bl2)) |
0;
30541 hi = (hi + Math.imul(ah0, bh2)) |
0;
30542 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30543 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30546 lo = Math.imul(al3, bl0);
30547 mid = Math.imul(al3, bh0);
30548 mid = (mid + Math.imul(ah3, bl0)) |
0;
30549 hi = Math.imul(ah3, bh0);
30550 lo = (lo + Math.imul(al2, bl1)) |
0;
30551 mid = (mid + Math.imul(al2, bh1)) |
0;
30552 mid = (mid + Math.imul(ah2, bl1)) |
0;
30553 hi = (hi + Math.imul(ah2, bh1)) |
0;
30554 lo = (lo + Math.imul(al1, bl2)) |
0;
30555 mid = (mid + Math.imul(al1, bh2)) |
0;
30556 mid = (mid + Math.imul(ah1, bl2)) |
0;
30557 hi = (hi + Math.imul(ah1, bh2)) |
0;
30558 lo = (lo + Math.imul(al0, bl3)) |
0;
30559 mid = (mid + Math.imul(al0, bh3)) |
0;
30560 mid = (mid + Math.imul(ah0, bl3)) |
0;
30561 hi = (hi + Math.imul(ah0, bh3)) |
0;
30562 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30563 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30566 lo = Math.imul(al4, bl0);
30567 mid = Math.imul(al4, bh0);
30568 mid = (mid + Math.imul(ah4, bl0)) |
0;
30569 hi = Math.imul(ah4, bh0);
30570 lo = (lo + Math.imul(al3, bl1)) |
0;
30571 mid = (mid + Math.imul(al3, bh1)) |
0;
30572 mid = (mid + Math.imul(ah3, bl1)) |
0;
30573 hi = (hi + Math.imul(ah3, bh1)) |
0;
30574 lo = (lo + Math.imul(al2, bl2)) |
0;
30575 mid = (mid + Math.imul(al2, bh2)) |
0;
30576 mid = (mid + Math.imul(ah2, bl2)) |
0;
30577 hi = (hi + Math.imul(ah2, bh2)) |
0;
30578 lo = (lo + Math.imul(al1, bl3)) |
0;
30579 mid = (mid + Math.imul(al1, bh3)) |
0;
30580 mid = (mid + Math.imul(ah1, bl3)) |
0;
30581 hi = (hi + Math.imul(ah1, bh3)) |
0;
30582 lo = (lo + Math.imul(al0, bl4)) |
0;
30583 mid = (mid + Math.imul(al0, bh4)) |
0;
30584 mid = (mid + Math.imul(ah0, bl4)) |
0;
30585 hi = (hi + Math.imul(ah0, bh4)) |
0;
30586 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30587 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30590 lo = Math.imul(al5, bl0);
30591 mid = Math.imul(al5, bh0);
30592 mid = (mid + Math.imul(ah5, bl0)) |
0;
30593 hi = Math.imul(ah5, bh0);
30594 lo = (lo + Math.imul(al4, bl1)) |
0;
30595 mid = (mid + Math.imul(al4, bh1)) |
0;
30596 mid = (mid + Math.imul(ah4, bl1)) |
0;
30597 hi = (hi + Math.imul(ah4, bh1)) |
0;
30598 lo = (lo + Math.imul(al3, bl2)) |
0;
30599 mid = (mid + Math.imul(al3, bh2)) |
0;
30600 mid = (mid + Math.imul(ah3, bl2)) |
0;
30601 hi = (hi + Math.imul(ah3, bh2)) |
0;
30602 lo = (lo + Math.imul(al2, bl3)) |
0;
30603 mid = (mid + Math.imul(al2, bh3)) |
0;
30604 mid = (mid + Math.imul(ah2, bl3)) |
0;
30605 hi = (hi + Math.imul(ah2, bh3)) |
0;
30606 lo = (lo + Math.imul(al1, bl4)) |
0;
30607 mid = (mid + Math.imul(al1, bh4)) |
0;
30608 mid = (mid + Math.imul(ah1, bl4)) |
0;
30609 hi = (hi + Math.imul(ah1, bh4)) |
0;
30610 lo = (lo + Math.imul(al0, bl5)) |
0;
30611 mid = (mid + Math.imul(al0, bh5)) |
0;
30612 mid = (mid + Math.imul(ah0, bl5)) |
0;
30613 hi = (hi + Math.imul(ah0, bh5)) |
0;
30614 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30615 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30618 lo = Math.imul(al6, bl0);
30619 mid = Math.imul(al6, bh0);
30620 mid = (mid + Math.imul(ah6, bl0)) |
0;
30621 hi = Math.imul(ah6, bh0);
30622 lo = (lo + Math.imul(al5, bl1)) |
0;
30623 mid = (mid + Math.imul(al5, bh1)) |
0;
30624 mid = (mid + Math.imul(ah5, bl1)) |
0;
30625 hi = (hi + Math.imul(ah5, bh1)) |
0;
30626 lo = (lo + Math.imul(al4, bl2)) |
0;
30627 mid = (mid + Math.imul(al4, bh2)) |
0;
30628 mid = (mid + Math.imul(ah4, bl2)) |
0;
30629 hi = (hi + Math.imul(ah4, bh2)) |
0;
30630 lo = (lo + Math.imul(al3, bl3)) |
0;
30631 mid = (mid + Math.imul(al3, bh3)) |
0;
30632 mid = (mid + Math.imul(ah3, bl3)) |
0;
30633 hi = (hi + Math.imul(ah3, bh3)) |
0;
30634 lo = (lo + Math.imul(al2, bl4)) |
0;
30635 mid = (mid + Math.imul(al2, bh4)) |
0;
30636 mid = (mid + Math.imul(ah2, bl4)) |
0;
30637 hi = (hi + Math.imul(ah2, bh4)) |
0;
30638 lo = (lo + Math.imul(al1, bl5)) |
0;
30639 mid = (mid + Math.imul(al1, bh5)) |
0;
30640 mid = (mid + Math.imul(ah1, bl5)) |
0;
30641 hi = (hi + Math.imul(ah1, bh5)) |
0;
30642 lo = (lo + Math.imul(al0, bl6)) |
0;
30643 mid = (mid + Math.imul(al0, bh6)) |
0;
30644 mid = (mid + Math.imul(ah0, bl6)) |
0;
30645 hi = (hi + Math.imul(ah0, bh6)) |
0;
30646 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30647 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30650 lo = Math.imul(al7, bl0);
30651 mid = Math.imul(al7, bh0);
30652 mid = (mid + Math.imul(ah7, bl0)) |
0;
30653 hi = Math.imul(ah7, bh0);
30654 lo = (lo + Math.imul(al6, bl1)) |
0;
30655 mid = (mid + Math.imul(al6, bh1)) |
0;
30656 mid = (mid + Math.imul(ah6, bl1)) |
0;
30657 hi = (hi + Math.imul(ah6, bh1)) |
0;
30658 lo = (lo + Math.imul(al5, bl2)) |
0;
30659 mid = (mid + Math.imul(al5, bh2)) |
0;
30660 mid = (mid + Math.imul(ah5, bl2)) |
0;
30661 hi = (hi + Math.imul(ah5, bh2)) |
0;
30662 lo = (lo + Math.imul(al4, bl3)) |
0;
30663 mid = (mid + Math.imul(al4, bh3)) |
0;
30664 mid = (mid + Math.imul(ah4, bl3)) |
0;
30665 hi = (hi + Math.imul(ah4, bh3)) |
0;
30666 lo = (lo + Math.imul(al3, bl4)) |
0;
30667 mid = (mid + Math.imul(al3, bh4)) |
0;
30668 mid = (mid + Math.imul(ah3, bl4)) |
0;
30669 hi = (hi + Math.imul(ah3, bh4)) |
0;
30670 lo = (lo + Math.imul(al2, bl5)) |
0;
30671 mid = (mid + Math.imul(al2, bh5)) |
0;
30672 mid = (mid + Math.imul(ah2, bl5)) |
0;
30673 hi = (hi + Math.imul(ah2, bh5)) |
0;
30674 lo = (lo + Math.imul(al1, bl6)) |
0;
30675 mid = (mid + Math.imul(al1, bh6)) |
0;
30676 mid = (mid + Math.imul(ah1, bl6)) |
0;
30677 hi = (hi + Math.imul(ah1, bh6)) |
0;
30678 lo = (lo + Math.imul(al0, bl7)) |
0;
30679 mid = (mid + Math.imul(al0, bh7)) |
0;
30680 mid = (mid + Math.imul(ah0, bl7)) |
0;
30681 hi = (hi + Math.imul(ah0, bh7)) |
0;
30682 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30683 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30686 lo = Math.imul(al8, bl0);
30687 mid = Math.imul(al8, bh0);
30688 mid = (mid + Math.imul(ah8, bl0)) |
0;
30689 hi = Math.imul(ah8, bh0);
30690 lo = (lo + Math.imul(al7, bl1)) |
0;
30691 mid = (mid + Math.imul(al7, bh1)) |
0;
30692 mid = (mid + Math.imul(ah7, bl1)) |
0;
30693 hi = (hi + Math.imul(ah7, bh1)) |
0;
30694 lo = (lo + Math.imul(al6, bl2)) |
0;
30695 mid = (mid + Math.imul(al6, bh2)) |
0;
30696 mid = (mid + Math.imul(ah6, bl2)) |
0;
30697 hi = (hi + Math.imul(ah6, bh2)) |
0;
30698 lo = (lo + Math.imul(al5, bl3)) |
0;
30699 mid = (mid + Math.imul(al5, bh3)) |
0;
30700 mid = (mid + Math.imul(ah5, bl3)) |
0;
30701 hi = (hi + Math.imul(ah5, bh3)) |
0;
30702 lo = (lo + Math.imul(al4, bl4)) |
0;
30703 mid = (mid + Math.imul(al4, bh4)) |
0;
30704 mid = (mid + Math.imul(ah4, bl4)) |
0;
30705 hi = (hi + Math.imul(ah4, bh4)) |
0;
30706 lo = (lo + Math.imul(al3, bl5)) |
0;
30707 mid = (mid + Math.imul(al3, bh5)) |
0;
30708 mid = (mid + Math.imul(ah3, bl5)) |
0;
30709 hi = (hi + Math.imul(ah3, bh5)) |
0;
30710 lo = (lo + Math.imul(al2, bl6)) |
0;
30711 mid = (mid + Math.imul(al2, bh6)) |
0;
30712 mid = (mid + Math.imul(ah2, bl6)) |
0;
30713 hi = (hi + Math.imul(ah2, bh6)) |
0;
30714 lo = (lo + Math.imul(al1, bl7)) |
0;
30715 mid = (mid + Math.imul(al1, bh7)) |
0;
30716 mid = (mid + Math.imul(ah1, bl7)) |
0;
30717 hi = (hi + Math.imul(ah1, bh7)) |
0;
30718 lo = (lo + Math.imul(al0, bl8)) |
0;
30719 mid = (mid + Math.imul(al0, bh8)) |
0;
30720 mid = (mid + Math.imul(ah0, bl8)) |
0;
30721 hi = (hi + Math.imul(ah0, bh8)) |
0;
30722 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30723 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30726 lo = Math.imul(al9, bl0);
30727 mid = Math.imul(al9, bh0);
30728 mid = (mid + Math.imul(ah9, bl0)) |
0;
30729 hi = Math.imul(ah9, bh0);
30730 lo = (lo + Math.imul(al8, bl1)) |
0;
30731 mid = (mid + Math.imul(al8, bh1)) |
0;
30732 mid = (mid + Math.imul(ah8, bl1)) |
0;
30733 hi = (hi + Math.imul(ah8, bh1)) |
0;
30734 lo = (lo + Math.imul(al7, bl2)) |
0;
30735 mid = (mid + Math.imul(al7, bh2)) |
0;
30736 mid = (mid + Math.imul(ah7, bl2)) |
0;
30737 hi = (hi + Math.imul(ah7, bh2)) |
0;
30738 lo = (lo + Math.imul(al6, bl3)) |
0;
30739 mid = (mid + Math.imul(al6, bh3)) |
0;
30740 mid = (mid + Math.imul(ah6, bl3)) |
0;
30741 hi = (hi + Math.imul(ah6, bh3)) |
0;
30742 lo = (lo + Math.imul(al5, bl4)) |
0;
30743 mid = (mid + Math.imul(al5, bh4)) |
0;
30744 mid = (mid + Math.imul(ah5, bl4)) |
0;
30745 hi = (hi + Math.imul(ah5, bh4)) |
0;
30746 lo = (lo + Math.imul(al4, bl5)) |
0;
30747 mid = (mid + Math.imul(al4, bh5)) |
0;
30748 mid = (mid + Math.imul(ah4, bl5)) |
0;
30749 hi = (hi + Math.imul(ah4, bh5)) |
0;
30750 lo = (lo + Math.imul(al3, bl6)) |
0;
30751 mid = (mid + Math.imul(al3, bh6)) |
0;
30752 mid = (mid + Math.imul(ah3, bl6)) |
0;
30753 hi = (hi + Math.imul(ah3, bh6)) |
0;
30754 lo = (lo + Math.imul(al2, bl7)) |
0;
30755 mid = (mid + Math.imul(al2, bh7)) |
0;
30756 mid = (mid + Math.imul(ah2, bl7)) |
0;
30757 hi = (hi + Math.imul(ah2, bh7)) |
0;
30758 lo = (lo + Math.imul(al1, bl8)) |
0;
30759 mid = (mid + Math.imul(al1, bh8)) |
0;
30760 mid = (mid + Math.imul(ah1, bl8)) |
0;
30761 hi = (hi + Math.imul(ah1, bh8)) |
0;
30762 lo = (lo + Math.imul(al0, bl9)) |
0;
30763 mid = (mid + Math.imul(al0, bh9)) |
0;
30764 mid = (mid + Math.imul(ah0, bl9)) |
0;
30765 hi = (hi + Math.imul(ah0, bh9)) |
0;
30766 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30767 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30770 lo = Math.imul(al9, bl1);
30771 mid = Math.imul(al9, bh1);
30772 mid = (mid + Math.imul(ah9, bl1)) |
0;
30773 hi = Math.imul(ah9, bh1);
30774 lo = (lo + Math.imul(al8, bl2)) |
0;
30775 mid = (mid + Math.imul(al8, bh2)) |
0;
30776 mid = (mid + Math.imul(ah8, bl2)) |
0;
30777 hi = (hi + Math.imul(ah8, bh2)) |
0;
30778 lo = (lo + Math.imul(al7, bl3)) |
0;
30779 mid = (mid + Math.imul(al7, bh3)) |
0;
30780 mid = (mid + Math.imul(ah7, bl3)) |
0;
30781 hi = (hi + Math.imul(ah7, bh3)) |
0;
30782 lo = (lo + Math.imul(al6, bl4)) |
0;
30783 mid = (mid + Math.imul(al6, bh4)) |
0;
30784 mid = (mid + Math.imul(ah6, bl4)) |
0;
30785 hi = (hi + Math.imul(ah6, bh4)) |
0;
30786 lo = (lo + Math.imul(al5, bl5)) |
0;
30787 mid = (mid + Math.imul(al5, bh5)) |
0;
30788 mid = (mid + Math.imul(ah5, bl5)) |
0;
30789 hi = (hi + Math.imul(ah5, bh5)) |
0;
30790 lo = (lo + Math.imul(al4, bl6)) |
0;
30791 mid = (mid + Math.imul(al4, bh6)) |
0;
30792 mid = (mid + Math.imul(ah4, bl6)) |
0;
30793 hi = (hi + Math.imul(ah4, bh6)) |
0;
30794 lo = (lo + Math.imul(al3, bl7)) |
0;
30795 mid = (mid + Math.imul(al3, bh7)) |
0;
30796 mid = (mid + Math.imul(ah3, bl7)) |
0;
30797 hi = (hi + Math.imul(ah3, bh7)) |
0;
30798 lo = (lo + Math.imul(al2, bl8)) |
0;
30799 mid = (mid + Math.imul(al2, bh8)) |
0;
30800 mid = (mid + Math.imul(ah2, bl8)) |
0;
30801 hi = (hi + Math.imul(ah2, bh8)) |
0;
30802 lo = (lo + Math.imul(al1, bl9)) |
0;
30803 mid = (mid + Math.imul(al1, bh9)) |
0;
30804 mid = (mid + Math.imul(ah1, bl9)) |
0;
30805 hi = (hi + Math.imul(ah1, bh9)) |
0;
30806 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30807 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30810 lo = Math.imul(al9, bl2);
30811 mid = Math.imul(al9, bh2);
30812 mid = (mid + Math.imul(ah9, bl2)) |
0;
30813 hi = Math.imul(ah9, bh2);
30814 lo = (lo + Math.imul(al8, bl3)) |
0;
30815 mid = (mid + Math.imul(al8, bh3)) |
0;
30816 mid = (mid + Math.imul(ah8, bl3)) |
0;
30817 hi = (hi + Math.imul(ah8, bh3)) |
0;
30818 lo = (lo + Math.imul(al7, bl4)) |
0;
30819 mid = (mid + Math.imul(al7, bh4)) |
0;
30820 mid = (mid + Math.imul(ah7, bl4)) |
0;
30821 hi = (hi + Math.imul(ah7, bh4)) |
0;
30822 lo = (lo + Math.imul(al6, bl5)) |
0;
30823 mid = (mid + Math.imul(al6, bh5)) |
0;
30824 mid = (mid + Math.imul(ah6, bl5)) |
0;
30825 hi = (hi + Math.imul(ah6, bh5)) |
0;
30826 lo = (lo + Math.imul(al5, bl6)) |
0;
30827 mid = (mid + Math.imul(al5, bh6)) |
0;
30828 mid = (mid + Math.imul(ah5, bl6)) |
0;
30829 hi = (hi + Math.imul(ah5, bh6)) |
0;
30830 lo = (lo + Math.imul(al4, bl7)) |
0;
30831 mid = (mid + Math.imul(al4, bh7)) |
0;
30832 mid = (mid + Math.imul(ah4, bl7)) |
0;
30833 hi = (hi + Math.imul(ah4, bh7)) |
0;
30834 lo = (lo + Math.imul(al3, bl8)) |
0;
30835 mid = (mid + Math.imul(al3, bh8)) |
0;
30836 mid = (mid + Math.imul(ah3, bl8)) |
0;
30837 hi = (hi + Math.imul(ah3, bh8)) |
0;
30838 lo = (lo + Math.imul(al2, bl9)) |
0;
30839 mid = (mid + Math.imul(al2, bh9)) |
0;
30840 mid = (mid + Math.imul(ah2, bl9)) |
0;
30841 hi = (hi + Math.imul(ah2, bh9)) |
0;
30842 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30843 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30846 lo = Math.imul(al9, bl3);
30847 mid = Math.imul(al9, bh3);
30848 mid = (mid + Math.imul(ah9, bl3)) |
0;
30849 hi = Math.imul(ah9, bh3);
30850 lo = (lo + Math.imul(al8, bl4)) |
0;
30851 mid = (mid + Math.imul(al8, bh4)) |
0;
30852 mid = (mid + Math.imul(ah8, bl4)) |
0;
30853 hi = (hi + Math.imul(ah8, bh4)) |
0;
30854 lo = (lo + Math.imul(al7, bl5)) |
0;
30855 mid = (mid + Math.imul(al7, bh5)) |
0;
30856 mid = (mid + Math.imul(ah7, bl5)) |
0;
30857 hi = (hi + Math.imul(ah7, bh5)) |
0;
30858 lo = (lo + Math.imul(al6, bl6)) |
0;
30859 mid = (mid + Math.imul(al6, bh6)) |
0;
30860 mid = (mid + Math.imul(ah6, bl6)) |
0;
30861 hi = (hi + Math.imul(ah6, bh6)) |
0;
30862 lo = (lo + Math.imul(al5, bl7)) |
0;
30863 mid = (mid + Math.imul(al5, bh7)) |
0;
30864 mid = (mid + Math.imul(ah5, bl7)) |
0;
30865 hi = (hi + Math.imul(ah5, bh7)) |
0;
30866 lo = (lo + Math.imul(al4, bl8)) |
0;
30867 mid = (mid + Math.imul(al4, bh8)) |
0;
30868 mid = (mid + Math.imul(ah4, bl8)) |
0;
30869 hi = (hi + Math.imul(ah4, bh8)) |
0;
30870 lo = (lo + Math.imul(al3, bl9)) |
0;
30871 mid = (mid + Math.imul(al3, bh9)) |
0;
30872 mid = (mid + Math.imul(ah3, bl9)) |
0;
30873 hi = (hi + Math.imul(ah3, bh9)) |
0;
30874 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30875 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30878 lo = Math.imul(al9, bl4);
30879 mid = Math.imul(al9, bh4);
30880 mid = (mid + Math.imul(ah9, bl4)) |
0;
30881 hi = Math.imul(ah9, bh4);
30882 lo = (lo + Math.imul(al8, bl5)) |
0;
30883 mid = (mid + Math.imul(al8, bh5)) |
0;
30884 mid = (mid + Math.imul(ah8, bl5)) |
0;
30885 hi = (hi + Math.imul(ah8, bh5)) |
0;
30886 lo = (lo + Math.imul(al7, bl6)) |
0;
30887 mid = (mid + Math.imul(al7, bh6)) |
0;
30888 mid = (mid + Math.imul(ah7, bl6)) |
0;
30889 hi = (hi + Math.imul(ah7, bh6)) |
0;
30890 lo = (lo + Math.imul(al6, bl7)) |
0;
30891 mid = (mid + Math.imul(al6, bh7)) |
0;
30892 mid = (mid + Math.imul(ah6, bl7)) |
0;
30893 hi = (hi + Math.imul(ah6, bh7)) |
0;
30894 lo = (lo + Math.imul(al5, bl8)) |
0;
30895 mid = (mid + Math.imul(al5, bh8)) |
0;
30896 mid = (mid + Math.imul(ah5, bl8)) |
0;
30897 hi = (hi + Math.imul(ah5, bh8)) |
0;
30898 lo = (lo + Math.imul(al4, bl9)) |
0;
30899 mid = (mid + Math.imul(al4, bh9)) |
0;
30900 mid = (mid + Math.imul(ah4, bl9)) |
0;
30901 hi = (hi + Math.imul(ah4, bh9)) |
0;
30902 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30903 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30906 lo = Math.imul(al9, bl5);
30907 mid = Math.imul(al9, bh5);
30908 mid = (mid + Math.imul(ah9, bl5)) |
0;
30909 hi = Math.imul(ah9, bh5);
30910 lo = (lo + Math.imul(al8, bl6)) |
0;
30911 mid = (mid + Math.imul(al8, bh6)) |
0;
30912 mid = (mid + Math.imul(ah8, bl6)) |
0;
30913 hi = (hi + Math.imul(ah8, bh6)) |
0;
30914 lo = (lo + Math.imul(al7, bl7)) |
0;
30915 mid = (mid + Math.imul(al7, bh7)) |
0;
30916 mid = (mid + Math.imul(ah7, bl7)) |
0;
30917 hi = (hi + Math.imul(ah7, bh7)) |
0;
30918 lo = (lo + Math.imul(al6, bl8)) |
0;
30919 mid = (mid + Math.imul(al6, bh8)) |
0;
30920 mid = (mid + Math.imul(ah6, bl8)) |
0;
30921 hi = (hi + Math.imul(ah6, bh8)) |
0;
30922 lo = (lo + Math.imul(al5, bl9)) |
0;
30923 mid = (mid + Math.imul(al5, bh9)) |
0;
30924 mid = (mid + Math.imul(ah5, bl9)) |
0;
30925 hi = (hi + Math.imul(ah5, bh9)) |
0;
30926 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30927 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30930 lo = Math.imul(al9, bl6);
30931 mid = Math.imul(al9, bh6);
30932 mid = (mid + Math.imul(ah9, bl6)) |
0;
30933 hi = Math.imul(ah9, bh6);
30934 lo = (lo + Math.imul(al8, bl7)) |
0;
30935 mid = (mid + Math.imul(al8, bh7)) |
0;
30936 mid = (mid + Math.imul(ah8, bl7)) |
0;
30937 hi = (hi + Math.imul(ah8, bh7)) |
0;
30938 lo = (lo + Math.imul(al7, bl8)) |
0;
30939 mid = (mid + Math.imul(al7, bh8)) |
0;
30940 mid = (mid + Math.imul(ah7, bl8)) |
0;
30941 hi = (hi + Math.imul(ah7, bh8)) |
0;
30942 lo = (lo + Math.imul(al6, bl9)) |
0;
30943 mid = (mid + Math.imul(al6, bh9)) |
0;
30944 mid = (mid + Math.imul(ah6, bl9)) |
0;
30945 hi = (hi + Math.imul(ah6, bh9)) |
0;
30946 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30947 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30950 lo = Math.imul(al9, bl7);
30951 mid = Math.imul(al9, bh7);
30952 mid = (mid + Math.imul(ah9, bl7)) |
0;
30953 hi = Math.imul(ah9, bh7);
30954 lo = (lo + Math.imul(al8, bl8)) |
0;
30955 mid = (mid + Math.imul(al8, bh8)) |
0;
30956 mid = (mid + Math.imul(ah8, bl8)) |
0;
30957 hi = (hi + Math.imul(ah8, bh8)) |
0;
30958 lo = (lo + Math.imul(al7, bl9)) |
0;
30959 mid = (mid + Math.imul(al7, bh9)) |
0;
30960 mid = (mid + Math.imul(ah7, bl9)) |
0;
30961 hi = (hi + Math.imul(ah7, bh9)) |
0;
30962 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30963 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30966 lo = Math.imul(al9, bl8);
30967 mid = Math.imul(al9, bh8);
30968 mid = (mid + Math.imul(ah9, bl8)) |
0;
30969 hi = Math.imul(ah9, bh8);
30970 lo = (lo + Math.imul(al8, bl9)) |
0;
30971 mid = (mid + Math.imul(al8, bh9)) |
0;
30972 mid = (mid + Math.imul(ah8, bl9)) |
0;
30973 hi = (hi + Math.imul(ah8, bh9)) |
0;
30974 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30975 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30978 lo = Math.imul(al9, bl9);
30979 mid = Math.imul(al9, bh9);
30980 mid = (mid + Math.imul(ah9, bl9)) |
0;
30981 hi = Math.imul(ah9, bh9);
30982 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30983 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
31013 comb10MulTo = smallMulTo;
31016 function bigMulTo (self, num, out) {
31017 out.negative = num.negative ^ self.negative;
31018 out.length = self.length + num.length;
31022 for (var k =
0; k < out.length -
1; k++) {
31023 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
31024 // note that ncarry could be
>=
0x3ffffff
31025 var ncarry = hncarry;
31027 var rword = carry &
0x3ffffff;
31028 var maxJ = Math.min(k, num.length -
1);
31029 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
31031 var a = self.words[i] |
0;
31032 var b = num.words[j] |
0;
31035 var lo = r &
0x3ffffff;
31036 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
31037 lo = (lo + rword) |
0;
31038 rword = lo &
0x3ffffff;
31039 ncarry = (ncarry + (lo
>>> 26)) |
0;
31041 hncarry += ncarry
>>> 26;
31042 ncarry &=
0x3ffffff;
31044 out.words[k] = rword;
31049 out.words[k] = carry;
31054 return out.strip();
31057 function jumboMulTo (self, num, out) {
31058 var fftm = new FFTM();
31059 return fftm.mulp(self, num, out);
31062 BN.prototype.mulTo = function mulTo (num, out) {
31064 var len = this.length + num.length;
31065 if (this.length ===
10 && num.length ===
10) {
31066 res = comb10MulTo(this, num, out);
31067 } else if (len <
63) {
31068 res = smallMulTo(this, num, out);
31069 } else if (len <
1024) {
31070 res = bigMulTo(this, num, out);
31072 res = jumboMulTo(this, num, out);
31078 // Cooley-Tukey algorithm for FFT
31079 // slightly revisited to rely on looping instead of recursion
31081 function FFTM (x, y) {
31086 FFTM.prototype.makeRBT = function makeRBT (N) {
31087 var t = new Array(N);
31088 var l = BN.prototype._countBits(N) -
1;
31089 for (var i =
0; i < N; i++) {
31090 t[i] = this.revBin(i, l, N);
31096 // Returns binary-reversed representation of `x`
31097 FFTM.prototype.revBin = function revBin (x, l, N) {
31098 if (x ===
0 || x === N -
1) return x;
31101 for (var i =
0; i < l; i++) {
31102 rb |= (x &
1) << (l - i -
1);
31109 // Performs "tweedling" phase, therefore 'emulating'
31110 // behaviour of the recursive algorithm
31111 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
31112 for (var i =
0; i < N; i++) {
31113 rtws[i] = rws[rbt[i]];
31114 itws[i] = iws[rbt[i]];
31118 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
31119 this.permute(rbt, rws, iws, rtws, itws, N);
31121 for (var s =
1; s < N; s <<=
1) {
31124 var rtwdf = Math.cos(
2 * Math.PI / l);
31125 var itwdf = Math.sin(
2 * Math.PI / l);
31127 for (var p =
0; p < N; p += l) {
31128 var rtwdf_ = rtwdf;
31129 var itwdf_ = itwdf;
31131 for (var j =
0; j < s; j++) {
31132 var re = rtws[p + j];
31133 var ie = itws[p + j];
31135 var ro = rtws[p + j + s];
31136 var io = itws[p + j + s];
31138 var rx = rtwdf_ * ro - itwdf_ * io;
31140 io = rtwdf_ * io + itwdf_ * ro;
31143 rtws[p + j] = re + ro;
31144 itws[p + j] = ie + io;
31146 rtws[p + j + s] = re - ro;
31147 itws[p + j + s] = ie - io;
31149 /* jshint maxdepth : false */
31151 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31153 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31161 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31162 var N = Math.max(m, n) |
1;
31165 for (N = N /
2 |
0; N; N = N
>>> 1) {
31169 return
1 << i +
1 + odd;
31172 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31173 if (N <=
1) return;
31175 for (var i =
0; i < N /
2; i++) {
31178 rws[i] = rws[N - i -
1];
31179 rws[N - i -
1] = t;
31183 iws[i] = -iws[N - i -
1];
31184 iws[N - i -
1] = -t;
31188 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31190 for (var i =
0; i < N /
2; i++) {
31191 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31192 Math.round(ws[
2 * i] / N) +
31195 ws[i] = w &
0x3ffffff;
31197 if (w <
0x4000000) {
31200 carry = w /
0x4000000 |
0;
31207 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31209 for (var i =
0; i < len; i++) {
31210 carry = carry + (ws[i] |
0);
31212 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31213 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31217 for (i =
2 * len; i < N; ++i) {
31221 assert(carry ===
0);
31222 assert((carry & ~
0x1fff) ===
0);
31225 FFTM.prototype.stub = function stub (N) {
31226 var ph = new Array(N);
31227 for (var i =
0; i < N; i++) {
31234 FFTM.prototype.mulp = function mulp (x, y, out) {
31235 var N =
2 * this.guessLen13b(x.length, y.length);
31237 var rbt = this.makeRBT(N);
31239 var _ = this.stub(N);
31241 var rws = new Array(N);
31242 var rwst = new Array(N);
31243 var iwst = new Array(N);
31245 var nrws = new Array(N);
31246 var nrwst = new Array(N);
31247 var niwst = new Array(N);
31249 var rmws = out.words;
31252 this.convert13b(x.words, x.length, rws, N);
31253 this.convert13b(y.words, y.length, nrws, N);
31255 this.transform(rws, _, rwst, iwst, N, rbt);
31256 this.transform(nrws, _, nrwst, niwst, N, rbt);
31258 for (var i =
0; i < N; i++) {
31259 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31260 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31264 this.conjugate(rwst, iwst, N);
31265 this.transform(rwst, iwst, rmws, _, N, rbt);
31266 this.conjugate(rmws, _, N);
31267 this.normalize13b(rmws, N);
31269 out.negative = x.negative ^ y.negative;
31270 out.length = x.length + y.length;
31271 return out.strip();
31274 // Multiply `this` by `num`
31275 BN.prototype.mul = function mul (num) {
31276 var out = new BN(null);
31277 out.words = new Array(this.length + num.length);
31278 return this.mulTo(num, out);
31281 // Multiply employing FFT
31282 BN.prototype.mulf = function mulf (num) {
31283 var out = new BN(null);
31284 out.words = new Array(this.length + num.length);
31285 return jumboMulTo(this, num, out);
31288 // In-place Multiplication
31289 BN.prototype.imul = function imul (num) {
31290 return this.clone().mulTo(num, this);
31293 BN.prototype.imuln = function imuln (num) {
31294 assert(typeof num === 'number');
31295 assert(num <
0x4000000);
31299 for (var i =
0; i < this.length; i++) {
31300 var w = (this.words[i] |
0) * num;
31301 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31303 carry += (w /
0x4000000) |
0;
31304 // NOTE: lo is
27bit maximum
31305 carry += lo
>>> 26;
31306 this.words[i] = lo &
0x3ffffff;
31310 this.words[i] = carry;
31317 BN.prototype.muln = function muln (num) {
31318 return this.clone().imuln(num);
31322 BN.prototype.sqr = function sqr () {
31323 return this.mul(this);
31326 // `this` * `this` in-place
31327 BN.prototype.isqr = function isqr () {
31328 return this.imul(this.clone());
31331 // Math.pow(`this`, `num`)
31332 BN.prototype.pow = function pow (num) {
31333 var w = toBitArray(num);
31334 if (w.length ===
0) return new BN(
1);
31336 // Skip leading zeroes
31338 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31339 if (w[i] !==
0) break;
31342 if (++i < w.length) {
31343 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31344 if (w[i] ===
0) continue;
31353 // Shift-left in-place
31354 BN.prototype.iushln = function iushln (bits) {
31355 assert(typeof bits === 'number' && bits
>=
0);
31357 var s = (bits - r) /
26;
31358 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31364 for (i =
0; i < this.length; i++) {
31365 var newCarry = this.words[i] & carryMask;
31366 var c = ((this.words[i] |
0) - newCarry) << r;
31367 this.words[i] = c | carry;
31368 carry = newCarry
>>> (
26 - r);
31372 this.words[i] = carry;
31378 for (i = this.length -
1; i
>=
0; i--) {
31379 this.words[i + s] = this.words[i];
31382 for (i =
0; i < s; i++) {
31389 return this.strip();
31392 BN.prototype.ishln = function ishln (bits) {
31393 // TODO(indutny): implement me
31394 assert(this.negative ===
0);
31395 return this.iushln(bits);
31398 // Shift-right in-place
31399 // NOTE: `hint` is a lowest bit before trailing zeroes
31400 // NOTE: if `extended` is present - it will be filled with destroyed bits
31401 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31402 assert(typeof bits === 'number' && bits
>=
0);
31405 h = (hint - (hint %
26)) /
26;
31411 var s = Math.min((bits - r) /
26, this.length);
31412 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31413 var maskedWords = extended;
31416 h = Math.max(
0, h);
31418 // Extended mode, copy masked part
31420 for (var i =
0; i < s; i++) {
31421 maskedWords.words[i] = this.words[i];
31423 maskedWords.length = s;
31427 // No-op, we should not move anything at all
31428 } else if (this.length
> s) {
31430 for (i =
0; i < this.length; i++) {
31431 this.words[i] = this.words[i + s];
31439 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31440 var word = this.words[i] |
0;
31441 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31442 carry = word & mask;
31445 // Push carried bits as a mask
31446 if (maskedWords && carry !==
0) {
31447 maskedWords.words[maskedWords.length++] = carry;
31450 if (this.length ===
0) {
31455 return this.strip();
31458 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31459 // TODO(indutny): implement me
31460 assert(this.negative ===
0);
31461 return this.iushrn(bits, hint, extended);
31465 BN.prototype.shln = function shln (bits) {
31466 return this.clone().ishln(bits);
31469 BN.prototype.ushln = function ushln (bits) {
31470 return this.clone().iushln(bits);
31474 BN.prototype.shrn = function shrn (bits) {
31475 return this.clone().ishrn(bits);
31478 BN.prototype.ushrn = function ushrn (bits) {
31479 return this.clone().iushrn(bits);
31482 // Test if n bit is set
31483 BN.prototype.testn = function testn (bit) {
31484 assert(typeof bit === 'number' && bit
>=
0);
31486 var s = (bit - r) /
26;
31489 // Fast case: bit is much higher than all existing words
31490 if (this.length <= s) return false;
31492 // Check bit and return
31493 var w = this.words[s];
31498 // Return only lowers bits of number (in-place)
31499 BN.prototype.imaskn = function imaskn (bits) {
31500 assert(typeof bits === 'number' && bits
>=
0);
31502 var s = (bits - r) /
26;
31504 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31506 if (this.length <= s) {
31513 this.length = Math.min(s, this.length);
31516 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31517 this.words[this.length -
1] &= mask;
31520 return this.strip();
31523 // Return only lowers bits of number
31524 BN.prototype.maskn = function maskn (bits) {
31525 return this.clone().imaskn(bits);
31528 // Add plain number `num` to `this`
31529 BN.prototype.iaddn = function iaddn (num) {
31530 assert(typeof num === 'number');
31531 assert(num <
0x4000000);
31532 if (num <
0) return this.isubn(-num);
31534 // Possible sign change
31535 if (this.negative !==
0) {
31536 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31537 this.words[
0] = num - (this.words[
0] |
0);
31548 // Add without checks
31549 return this._iaddn(num);
31552 BN.prototype._iaddn = function _iaddn (num) {
31553 this.words[
0] += num;
31556 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31557 this.words[i] -=
0x4000000;
31558 if (i === this.length -
1) {
31559 this.words[i +
1] =
1;
31561 this.words[i +
1]++;
31564 this.length = Math.max(this.length, i +
1);
31569 // Subtract plain number `num` from `this`
31570 BN.prototype.isubn = function isubn (num) {
31571 assert(typeof num === 'number');
31572 assert(num <
0x4000000);
31573 if (num <
0) return this.iaddn(-num);
31575 if (this.negative !==
0) {
31582 this.words[
0] -= num;
31584 if (this.length ===
1 && this.words[
0] <
0) {
31585 this.words[
0] = -this.words[
0];
31589 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31590 this.words[i] +=
0x4000000;
31591 this.words[i +
1] -=
1;
31595 return this.strip();
31598 BN.prototype.addn = function addn (num) {
31599 return this.clone().iaddn(num);
31602 BN.prototype.subn = function subn (num) {
31603 return this.clone().isubn(num);
31606 BN.prototype.iabs = function iabs () {
31612 BN.prototype.abs = function abs () {
31613 return this.clone().iabs();
31616 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31617 var len = num.length + shift;
31624 for (i =
0; i < num.length; i++) {
31625 w = (this.words[i + shift] |
0) + carry;
31626 var right = (num.words[i] |
0) * mul;
31627 w -= right &
0x3ffffff;
31628 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31629 this.words[i + shift] = w &
0x3ffffff;
31631 for (; i < this.length - shift; i++) {
31632 w = (this.words[i + shift] |
0) + carry;
31634 this.words[i + shift] = w &
0x3ffffff;
31637 if (carry ===
0) return this.strip();
31639 // Subtraction overflow
31640 assert(carry === -
1);
31642 for (i =
0; i < this.length; i++) {
31643 w = -(this.words[i] |
0) + carry;
31645 this.words[i] = w &
0x3ffffff;
31649 return this.strip();
31652 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31653 var shift = this.length - num.length;
31655 var a = this.clone();
31659 var bhi = b.words[b.length -
1] |
0;
31660 var bhiBits = this._countBits(bhi);
31661 shift =
26 - bhiBits;
31663 b = b.ushln(shift);
31665 bhi = b.words[b.length -
1] |
0;
31668 // Initialize quotient
31669 var m = a.length - b.length;
31672 if (mode !== 'mod') {
31675 q.words = new Array(q.length);
31676 for (var i =
0; i < q.length; i++) {
31681 var diff = a.clone()._ishlnsubmul(b,
1, m);
31682 if (diff.negative ===
0) {
31689 for (var j = m -
1; j
>=
0; j--) {
31690 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31691 (a.words[b.length + j -
1] |
0);
31693 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31695 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31697 a._ishlnsubmul(b, qj, j);
31698 while (a.negative !==
0) {
31701 a._ishlnsubmul(b,
1, j);
31716 if (mode !== 'div' && shift !==
0) {
31726 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31727 // to `div` to request div only, or be absent to
31728 // request both div & mod
31729 //
2) `positive` is true if unsigned mod is requested
31730 BN.prototype.divmod = function divmod (num, mode, positive) {
31731 assert(!num.isZero());
31733 if (this.isZero()) {
31741 if (this.negative !==
0 && num.negative ===
0) {
31742 res = this.neg().divmod(num, mode);
31744 if (mode !== 'mod') {
31745 div = res.div.neg();
31748 if (mode !== 'div') {
31749 mod = res.mod.neg();
31750 if (positive && mod.negative !==
0) {
31761 if (this.negative ===
0 && num.negative !==
0) {
31762 res = this.divmod(num.neg(), mode);
31764 if (mode !== 'mod') {
31765 div = res.div.neg();
31774 if ((this.negative & num.negative) !==
0) {
31775 res = this.neg().divmod(num.neg(), mode);
31777 if (mode !== 'div') {
31778 mod = res.mod.neg();
31779 if (positive && mod.negative !==
0) {
31790 // Both numbers are positive at this point
31792 // Strip both numbers to approximate shift value
31793 if (num.length
> this.length || this.cmp(num) <
0) {
31800 // Very short reduction
31801 if (num.length ===
1) {
31802 if (mode === 'div') {
31804 div: this.divn(num.words[
0]),
31809 if (mode === 'mod') {
31812 mod: new BN(this.modn(num.words[
0]))
31817 div: this.divn(num.words[
0]),
31818 mod: new BN(this.modn(num.words[
0]))
31822 return this._wordDiv(num, mode);
31825 // Find `this` / `num`
31826 BN.prototype.div = function div (num) {
31827 return this.divmod(num, 'div', false).div;
31830 // Find `this` % `num`
31831 BN.prototype.mod = function mod (num) {
31832 return this.divmod(num, 'mod', false).mod;
31835 BN.prototype.umod = function umod (num) {
31836 return this.divmod(num, 'mod', true).mod;
31839 // Find Round(`this` / `num`)
31840 BN.prototype.divRound = function divRound (num) {
31841 var dm = this.divmod(num);
31843 // Fast case - exact division
31844 if (dm.mod.isZero()) return dm.div;
31846 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31848 var half = num.ushrn(
1);
31849 var r2 = num.andln(
1);
31850 var cmp = mod.cmp(half);
31853 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31856 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31859 BN.prototype.modn = function modn (num) {
31860 assert(num <=
0x3ffffff);
31861 var p = (
1 <<
26) % num;
31864 for (var i = this.length -
1; i
>=
0; i--) {
31865 acc = (p * acc + (this.words[i] |
0)) % num;
31871 // In-place division by number
31872 BN.prototype.idivn = function idivn (num) {
31873 assert(num <=
0x3ffffff);
31876 for (var i = this.length -
1; i
>=
0; i--) {
31877 var w = (this.words[i] |
0) + carry *
0x4000000;
31878 this.words[i] = (w / num) |
0;
31882 return this.strip();
31885 BN.prototype.divn = function divn (num) {
31886 return this.clone().idivn(num);
31889 BN.prototype.egcd = function egcd (p) {
31890 assert(p.negative ===
0);
31891 assert(!p.isZero());
31896 if (x.negative !==
0) {
31902 // A * x + B * y = x
31906 // C * x + D * y = y
31912 while (x.isEven() && y.isEven()) {
31918 var yp = y.clone();
31919 var xp = x.clone();
31921 while (!x.isZero()) {
31922 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31926 if (A.isOdd() || B.isOdd()) {
31936 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31940 if (C.isOdd() || D.isOdd()) {
31950 if (x.cmp(y)
>=
0) {
31968 // This is reduced incarnation of the binary EEA
31969 // above, designated to invert members of the
31970 // _prime_ fields F(p) at a maximal speed
31971 BN.prototype._invmp = function _invmp (p) {
31972 assert(p.negative ===
0);
31973 assert(!p.isZero());
31978 if (a.negative !==
0) {
31984 var x1 = new BN(
1);
31985 var x2 = new BN(
0);
31987 var delta = b.clone();
31989 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31990 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
32002 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
32014 if (a.cmp(b)
>=
0) {
32024 if (a.cmpn(
1) ===
0) {
32030 if (res.cmpn(
0) <
0) {
32037 BN.prototype.gcd = function gcd (num) {
32038 if (this.isZero()) return num.abs();
32039 if (num.isZero()) return this.abs();
32041 var a = this.clone();
32042 var b = num.clone();
32046 // Remove common factor of two
32047 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
32053 while (a.isEven()) {
32056 while (b.isEven()) {
32062 // Swap `a` and `b` to make `a` always bigger than `b`
32066 } else if (r ===
0 || b.cmpn(
1) ===
0) {
32073 return b.iushln(shift);
32076 // Invert number in the field F(num)
32077 BN.prototype.invm = function invm (num) {
32078 return this.egcd(num).a.umod(num);
32081 BN.prototype.isEven = function isEven () {
32082 return (this.words[
0] &
1) ===
0;
32085 BN.prototype.isOdd = function isOdd () {
32086 return (this.words[
0] &
1) ===
1;
32089 // And first word and num
32090 BN.prototype.andln = function andln (num) {
32091 return this.words[
0] & num;
32094 // Increment at the bit position in-line
32095 BN.prototype.bincn = function bincn (bit) {
32096 assert(typeof bit === 'number');
32098 var s = (bit - r) /
26;
32101 // Fast case: bit is much higher than all existing words
32102 if (this.length <= s) {
32103 this._expand(s +
1);
32104 this.words[s] |= q;
32108 // Add bit and propagate, if needed
32110 for (var i = s; carry !==
0 && i < this.length; i++) {
32111 var w = this.words[i] |
0;
32118 this.words[i] = carry;
32124 BN.prototype.isZero = function isZero () {
32125 return this.length ===
1 && this.words[
0] ===
0;
32128 BN.prototype.cmpn = function cmpn (num) {
32129 var negative = num <
0;
32131 if (this.negative !==
0 && !negative) return -
1;
32132 if (this.negative ===
0 && negative) return
1;
32137 if (this.length
> 1) {
32144 assert(num <=
0x3ffffff, 'Number is too big');
32146 var w = this.words[
0] |
0;
32147 res = w === num ?
0 : w < num ? -
1 :
1;
32149 if (this.negative !==
0) return -res |
0;
32153 // Compare two numbers and return:
32154 //
1 - if `this`
> `num`
32155 //
0 - if `this` == `num`
32156 // -
1 - if `this` < `num`
32157 BN.prototype.cmp = function cmp (num) {
32158 if (this.negative !==
0 && num.negative ===
0) return -
1;
32159 if (this.negative ===
0 && num.negative !==
0) return
1;
32161 var res = this.ucmp(num);
32162 if (this.negative !==
0) return -res |
0;
32166 // Unsigned comparison
32167 BN.prototype.ucmp = function ucmp (num) {
32168 // At this point both numbers have the same sign
32169 if (this.length
> num.length) return
1;
32170 if (this.length < num.length) return -
1;
32173 for (var i = this.length -
1; i
>=
0; i--) {
32174 var a = this.words[i] |
0;
32175 var b = num.words[i] |
0;
32177 if (a === b) continue;
32180 } else if (a
> b) {
32188 BN.prototype.gtn = function gtn (num) {
32189 return this.cmpn(num) ===
1;
32192 BN.prototype.gt = function gt (num) {
32193 return this.cmp(num) ===
1;
32196 BN.prototype.gten = function gten (num) {
32197 return this.cmpn(num)
>=
0;
32200 BN.prototype.gte = function gte (num) {
32201 return this.cmp(num)
>=
0;
32204 BN.prototype.ltn = function ltn (num) {
32205 return this.cmpn(num) === -
1;
32208 BN.prototype.lt = function lt (num) {
32209 return this.cmp(num) === -
1;
32212 BN.prototype.lten = function lten (num) {
32213 return this.cmpn(num) <=
0;
32216 BN.prototype.lte = function lte (num) {
32217 return this.cmp(num) <=
0;
32220 BN.prototype.eqn = function eqn (num) {
32221 return this.cmpn(num) ===
0;
32224 BN.prototype.eq = function eq (num) {
32225 return this.cmp(num) ===
0;
32229 // A reduce context, could be using montgomery or something better, depending
32230 // on the `m` itself.
32232 BN.red = function red (num) {
32233 return new Red(num);
32236 BN.prototype.toRed = function toRed (ctx) {
32237 assert(!this.red, 'Already a number in reduction context');
32238 assert(this.negative ===
0, 'red works only with positives');
32239 return ctx.convertTo(this)._forceRed(ctx);
32242 BN.prototype.fromRed = function fromRed () {
32243 assert(this.red, 'fromRed works only with numbers in reduction context');
32244 return this.red.convertFrom(this);
32247 BN.prototype._forceRed = function _forceRed (ctx) {
32252 BN.prototype.forceRed = function forceRed (ctx) {
32253 assert(!this.red, 'Already a number in reduction context');
32254 return this._forceRed(ctx);
32257 BN.prototype.redAdd = function redAdd (num) {
32258 assert(this.red, 'redAdd works only with red numbers');
32259 return this.red.add(this, num);
32262 BN.prototype.redIAdd = function redIAdd (num) {
32263 assert(this.red, 'redIAdd works only with red numbers');
32264 return this.red.iadd(this, num);
32267 BN.prototype.redSub = function redSub (num) {
32268 assert(this.red, 'redSub works only with red numbers');
32269 return this.red.sub(this, num);
32272 BN.prototype.redISub = function redISub (num) {
32273 assert(this.red, 'redISub works only with red numbers');
32274 return this.red.isub(this, num);
32277 BN.prototype.redShl = function redShl (num) {
32278 assert(this.red, 'redShl works only with red numbers');
32279 return this.red.shl(this, num);
32282 BN.prototype.redMul = function redMul (num) {
32283 assert(this.red, 'redMul works only with red numbers');
32284 this.red._verify2(this, num);
32285 return this.red.mul(this, num);
32288 BN.prototype.redIMul = function redIMul (num) {
32289 assert(this.red, 'redMul works only with red numbers');
32290 this.red._verify2(this, num);
32291 return this.red.imul(this, num);
32294 BN.prototype.redSqr = function redSqr () {
32295 assert(this.red, 'redSqr works only with red numbers');
32296 this.red._verify1(this);
32297 return this.red.sqr(this);
32300 BN.prototype.redISqr = function redISqr () {
32301 assert(this.red, 'redISqr works only with red numbers');
32302 this.red._verify1(this);
32303 return this.red.isqr(this);
32306 // Square root over p
32307 BN.prototype.redSqrt = function redSqrt () {
32308 assert(this.red, 'redSqrt works only with red numbers');
32309 this.red._verify1(this);
32310 return this.red.sqrt(this);
32313 BN.prototype.redInvm = function redInvm () {
32314 assert(this.red, 'redInvm works only with red numbers');
32315 this.red._verify1(this);
32316 return this.red.invm(this);
32319 // Return negative clone of `this` % `red modulo`
32320 BN.prototype.redNeg = function redNeg () {
32321 assert(this.red, 'redNeg works only with red numbers');
32322 this.red._verify1(this);
32323 return this.red.neg(this);
32326 BN.prototype.redPow = function redPow (num) {
32327 assert(this.red && !num.red, 'redPow(normalNum)');
32328 this.red._verify1(this);
32329 return this.red.pow(this, num);
32332 // Prime numbers with efficient reduction
32340 // Pseudo-Mersenne prime
32341 function MPrime (name, p) {
32344 this.p = new BN(p,
16);
32345 this.n = this.p.bitLength();
32346 this.k = new BN(
1).iushln(this.n).isub(this.p);
32348 this.tmp = this._tmp();
32351 MPrime.prototype._tmp = function _tmp () {
32352 var tmp = new BN(null);
32353 tmp.words = new Array(Math.ceil(this.n /
13));
32357 MPrime.prototype.ireduce = function ireduce (num) {
32358 // Assumes that `num` is less than `P^
2`
32359 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32364 this.split(r, this.tmp);
32366 r = r.iadd(this.tmp);
32367 rlen = r.bitLength();
32368 } while (rlen
> this.n);
32370 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32374 } else if (cmp
> 0) {
32383 MPrime.prototype.split = function split (input, out) {
32384 input.iushrn(this.n,
0, out);
32387 MPrime.prototype.imulK = function imulK (num) {
32388 return num.imul(this.k);
32395 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32397 inherits(K256, MPrime);
32399 K256.prototype.split = function split (input, output) {
32400 //
256 =
9 *
26 +
22
32401 var mask =
0x3fffff;
32403 var outLen = Math.min(input.length,
9);
32404 for (var i =
0; i < outLen; i++) {
32405 output.words[i] = input.words[i];
32407 output.length = outLen;
32409 if (input.length <=
9) {
32410 input.words[
0] =
0;
32415 // Shift by
9 limbs
32416 var prev = input.words[
9];
32417 output.words[output.length++] = prev & mask;
32419 for (i =
10; i < input.length; i++) {
32420 var next = input.words[i] |
0;
32421 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32425 input.words[i -
10] = prev;
32426 if (prev ===
0 && input.length
> 10) {
32427 input.length -=
10;
32433 K256.prototype.imulK = function imulK (num) {
32434 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32435 num.words[num.length] =
0;
32436 num.words[num.length +
1] =
0;
32439 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32441 for (var i =
0; i < num.length; i++) {
32442 var w = num.words[i] |
0;
32444 num.words[i] = lo &
0x3ffffff;
32445 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32448 // Fast length reduction
32449 if (num.words[num.length -
1] ===
0) {
32451 if (num.words[num.length -
1] ===
0) {
32462 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32464 inherits(P224, MPrime);
32470 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32472 inherits(P192, MPrime);
32474 function P25519 () {
32479 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32481 inherits(P25519, MPrime);
32483 P25519.prototype.imulK = function imulK (num) {
32486 for (var i =
0; i < num.length; i++) {
32487 var hi = (num.words[i] |
0) *
0x13 + carry;
32488 var lo = hi &
0x3ffffff;
32495 num.words[num.length++] = carry;
32500 // Exported mostly for testing purposes, use plain name instead
32501 BN._prime = function prime (name) {
32502 // Cached version of prime
32503 if (primes[name]) return primes[name];
32506 if (name === 'k256') {
32507 prime = new K256();
32508 } else if (name === 'p224') {
32509 prime = new P224();
32510 } else if (name === 'p192') {
32511 prime = new P192();
32512 } else if (name === 'p25519') {
32513 prime = new P25519();
32515 throw new Error('Unknown prime ' + name);
32517 primes[name] = prime;
32523 // Base reduction engine
32526 if (typeof m === 'string') {
32527 var prime = BN._prime(m);
32529 this.prime = prime;
32531 assert(m.gtn(
1), 'modulus must be greater than
1');
32537 Red.prototype._verify1 = function _verify1 (a) {
32538 assert(a.negative ===
0, 'red works only with positives');
32539 assert(a.red, 'red works only with red numbers');
32542 Red.prototype._verify2 = function _verify2 (a, b) {
32543 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32544 assert(a.red && a.red === b.red,
32545 'red works only with red numbers');
32548 Red.prototype.imod = function imod (a) {
32549 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32550 return a.umod(this.m)._forceRed(this);
32553 Red.prototype.neg = function neg (a) {
32558 return this.m.sub(a)._forceRed(this);
32561 Red.prototype.add = function add (a, b) {
32562 this._verify2(a, b);
32564 var res = a.add(b);
32565 if (res.cmp(this.m)
>=
0) {
32568 return res._forceRed(this);
32571 Red.prototype.iadd = function iadd (a, b) {
32572 this._verify2(a, b);
32574 var res = a.iadd(b);
32575 if (res.cmp(this.m)
>=
0) {
32581 Red.prototype.sub = function sub (a, b) {
32582 this._verify2(a, b);
32584 var res = a.sub(b);
32585 if (res.cmpn(
0) <
0) {
32588 return res._forceRed(this);
32591 Red.prototype.isub = function isub (a, b) {
32592 this._verify2(a, b);
32594 var res = a.isub(b);
32595 if (res.cmpn(
0) <
0) {
32601 Red.prototype.shl = function shl (a, num) {
32603 return this.imod(a.ushln(num));
32606 Red.prototype.imul = function imul (a, b) {
32607 this._verify2(a, b);
32608 return this.imod(a.imul(b));
32611 Red.prototype.mul = function mul (a, b) {
32612 this._verify2(a, b);
32613 return this.imod(a.mul(b));
32616 Red.prototype.isqr = function isqr (a) {
32617 return this.imul(a, a.clone());
32620 Red.prototype.sqr = function sqr (a) {
32621 return this.mul(a, a);
32624 Red.prototype.sqrt = function sqrt (a) {
32625 if (a.isZero()) return a.clone();
32627 var mod3 = this.m.andln(
3);
32628 assert(mod3 %
2 ===
1);
32632 var pow = this.m.add(new BN(
1)).iushrn(
2);
32633 return this.pow(a, pow);
32636 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32638 // Find Q and S, that Q *
2 ^ S = (P -
1)
32639 var q = this.m.subn(
1);
32641 while (!q.isZero() && q.andln(
1) ===
0) {
32645 assert(!q.isZero());
32647 var one = new BN(
1).toRed(this);
32648 var nOne = one.redNeg();
32650 // Find quadratic non-residue
32651 // NOTE: Max is such because of generalized Riemann hypothesis.
32652 var lpow = this.m.subn(
1).iushrn(
1);
32653 var z = this.m.bitLength();
32654 z = new BN(
2 * z * z).toRed(this);
32656 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32660 var c = this.pow(z, q);
32661 var r = this.pow(a, q.addn(
1).iushrn(
1));
32662 var t = this.pow(a, q);
32664 while (t.cmp(one) !==
0) {
32666 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32667 tmp = tmp.redSqr();
32670 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32681 Red.prototype.invm = function invm (a) {
32682 var inv = a._invmp(this.m);
32683 if (inv.negative !==
0) {
32685 return this.imod(inv).redNeg();
32687 return this.imod(inv);
32691 Red.prototype.pow = function pow (a, num) {
32692 if (num.isZero()) return new BN(
1);
32693 if (num.cmpn(
1) ===
0) return a.clone();
32695 var windowSize =
4;
32696 var wnd = new Array(
1 << windowSize);
32697 wnd[
0] = new BN(
1).toRed(this);
32699 for (var i =
2; i < wnd.length; i++) {
32700 wnd[i] = this.mul(wnd[i -
1], a);
32705 var currentLen =
0;
32706 var start = num.bitLength() %
26;
32711 for (i = num.length -
1; i
>=
0; i--) {
32712 var word = num.words[i];
32713 for (var j = start -
1; j
>=
0; j--) {
32714 var bit = (word
>> j) &
1;
32715 if (res !== wnd[
0]) {
32716 res = this.sqr(res);
32719 if (bit ===
0 && current ===
0) {
32727 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32729 res = this.mul(res, wnd[current]);
32739 Red.prototype.convertTo = function convertTo (num) {
32740 var r = num.umod(this.m);
32742 return r === num ? r.clone() : r;
32745 Red.prototype.convertFrom = function convertFrom (num) {
32746 var res = num.clone();
32752 // Montgomery method engine
32755 BN.mont = function mont (num) {
32756 return new Mont(num);
32759 function Mont (m) {
32762 this.shift = this.m.bitLength();
32763 if (this.shift %
26 !==
0) {
32764 this.shift +=
26 - (this.shift %
26);
32767 this.r = new BN(
1).iushln(this.shift);
32768 this.r2 = this.imod(this.r.sqr());
32769 this.rinv = this.r._invmp(this.m);
32771 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32772 this.minv = this.minv.umod(this.r);
32773 this.minv = this.r.sub(this.minv);
32775 inherits(Mont, Red);
32777 Mont.prototype.convertTo = function convertTo (num) {
32778 return this.imod(num.ushln(this.shift));
32781 Mont.prototype.convertFrom = function convertFrom (num) {
32782 var r = this.imod(num.mul(this.rinv));
32787 Mont.prototype.imul = function imul (a, b) {
32788 if (a.isZero() || b.isZero()) {
32795 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32796 var u = t.isub(c).iushrn(this.shift);
32799 if (u.cmp(this.m)
>=
0) {
32800 res = u.isub(this.m);
32801 } else if (u.cmpn(
0) <
0) {
32802 res = u.iadd(this.m);
32805 return res._forceRed(this);
32808 Mont.prototype.mul = function mul (a, b) {
32809 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32812 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32813 var u = t.isub(c).iushrn(this.shift);
32815 if (u.cmp(this.m)
>=
0) {
32816 res = u.isub(this.m);
32817 } else if (u.cmpn(
0) <
0) {
32818 res = u.iadd(this.m);
32821 return res._forceRed(this);
32824 Mont.prototype.invm = function invm (a) {
32825 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32826 var res = this.imod(a._invmp(this.m).mul(this.r2));
32827 return res._forceRed(this);
32829 })(typeof module === 'undefined' || module, this);
32831 },{}],
34:[function(require,module,exports){
32834 module.exports = function rand(len) {
32836 r = new Rand(null);
32838 return r.generate(len);
32841 function Rand(rand) {
32844 module.exports.Rand = Rand;
32846 Rand.prototype.generate = function generate(len) {
32847 return this._rand(len);
32850 if (typeof self === 'object') {
32851 if (self.crypto && self.crypto.getRandomValues) {
32853 Rand.prototype._rand = function _rand(n) {
32854 var arr = new Uint8Array(n);
32855 self.crypto.getRandomValues(arr);
32858 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32860 Rand.prototype._rand = function _rand(n) {
32861 var arr = new Uint8Array(n);
32862 self.msCrypto.getRandomValues(arr);
32867 Rand.prototype._rand = function() {
32868 throw new Error('Not implemented yet');
32872 // Node.js or Web worker with no crypto support
32874 var crypto = require('crypto');
32876 Rand.prototype._rand = function _rand(n) {
32877 return crypto.randomBytes(n);
32880 // Emulate crypto API using randy
32881 Rand.prototype._rand = function _rand(n) {
32882 var res = new Uint8Array(n);
32883 for (var i =
0; i < res.length; i++)
32884 res[i] = this.rand.getByte();
32890 },{"crypto":
3}],
35:[function(require,module,exports){
32891 (function (Buffer){
32892 var Transform = require('stream').Transform
32893 var inherits = require('inherits')
32894 var StringDecoder = require('string_decoder').StringDecoder
32895 module.exports = CipherBase
32896 inherits(CipherBase, Transform)
32897 function CipherBase (hashMode) {
32898 Transform.call(this)
32899 this.hashMode = typeof hashMode === 'string'
32900 if (this.hashMode) {
32901 this[hashMode] = this._finalOrDigest
32903 this.final = this._finalOrDigest
32905 this._decoder = null
32906 this._encoding = null
32908 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32909 if (typeof data === 'string') {
32910 data = new Buffer(data, inputEnc)
32912 var outData = this._update(data)
32913 if (this.hashMode) {
32917 outData = this._toString(outData, outputEnc)
32922 CipherBase.prototype.setAutoPadding = function () {}
32924 CipherBase.prototype.getAuthTag = function () {
32925 throw new Error('trying to get auth tag in unsupported state')
32928 CipherBase.prototype.setAuthTag = function () {
32929 throw new Error('trying to set auth tag in unsupported state')
32932 CipherBase.prototype.setAAD = function () {
32933 throw new Error('trying to set aad in unsupported state')
32936 CipherBase.prototype._transform = function (data, _, next) {
32939 if (this.hashMode) {
32942 this.push(this._update(data))
32950 CipherBase.prototype._flush = function (done) {
32953 this.push(this._final())
32960 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32961 var outData = this._final() || new Buffer('')
32963 outData = this._toString(outData, outputEnc, true)
32968 CipherBase.prototype._toString = function (value, enc, fin) {
32969 if (!this._decoder) {
32970 this._decoder = new StringDecoder(enc)
32971 this._encoding = enc
32973 if (this._encoding !== enc) {
32974 throw new Error('can\'t switch encodings')
32976 var out = this._decoder.write(value)
32978 out += this._decoder.end()
32983 }).call(this,require("buffer").Buffer)
32984 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32985 (function (Buffer){
32987 var inherits = require('inherits')
32988 var md5 = require('./md5')
32989 var rmd160 = require('ripemd160')
32990 var sha = require('sha.js')
32992 var Base = require('cipher-base')
32994 function HashNoConstructor(hash) {
32995 Base.call(this, 'digest')
33001 inherits(HashNoConstructor, Base)
33003 HashNoConstructor.prototype._update = function (data) {
33004 this.buffers.push(data)
33007 HashNoConstructor.prototype._final = function () {
33008 var buf = Buffer.concat(this.buffers)
33009 var r = this._hash(buf)
33010 this.buffers = null
33015 function Hash(hash) {
33016 Base.call(this, 'digest')
33021 inherits(Hash, Base)
33023 Hash.prototype._update = function (data) {
33024 this._hash.update(data)
33027 Hash.prototype._final = function () {
33028 return this._hash.digest()
33031 module.exports = function createHash (alg) {
33032 alg = alg.toLowerCase()
33033 if ('md5' === alg) return new HashNoConstructor(md5)
33034 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
33036 return new Hash(sha(alg))
33039 }).call(this,require("buffer").Buffer)
33040 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
33041 (function (Buffer){
33044 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
33047 function toArray(buf, bigEndian) {
33048 if ((buf.length % intSize) !==
0) {
33049 var len = buf.length + (intSize - (buf.length % intSize));
33050 buf = Buffer.concat([buf, zeroBuffer], len);
33054 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
33055 for (var i =
0; i < buf.length; i += intSize) {
33056 arr.push(fn.call(buf, i));
33061 function toBuffer(arr, size, bigEndian) {
33062 var buf = new Buffer(size);
33063 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
33064 for (var i =
0; i < arr.length; i++) {
33065 fn.call(buf, arr[i], i *
4, true);
33070 function hash(buf, fn, hashSize, bigEndian) {
33071 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
33072 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
33073 return toBuffer(arr, hashSize, bigEndian);
33075 exports.hash = hash;
33076 }).call(this,require("buffer").Buffer)
33077 },{"buffer":
5}],
38:[function(require,module,exports){
33080 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
33081 * Digest Algorithm, as defined in RFC
1321.
33082 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
33083 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
33084 * Distributed under the BSD License
33085 * See http://pajhome.org.uk/crypt/md5 for more info.
33088 var helpers = require('./helpers');
33091 * Calculate the MD5 of an array of little-endian words, and a bit length
33093 function core_md5(x, len)
33095 /* append padding */
33096 x[len
>> 5] |=
0x80 << ((len) %
32);
33097 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
33099 var a =
1732584193;
33100 var b = -
271733879;
33101 var c = -
1732584194;
33104 for(var i =
0; i < x.length; i +=
16)
33111 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
33112 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
33113 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
33114 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
33115 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
33116 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
33117 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
33118 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
33119 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
33120 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
33121 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
33122 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
33123 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
33124 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
33125 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
33126 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33128 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33129 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33130 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33131 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33132 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33133 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33134 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33135 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33136 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33137 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33138 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33139 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33140 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33141 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33142 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33143 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33145 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33146 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33147 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33148 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33149 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33150 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33151 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33152 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33153 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33154 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33155 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33156 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33157 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33158 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33159 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33160 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33162 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33163 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33164 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33165 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33166 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33167 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33168 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33169 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33170 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33171 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33172 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33173 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33174 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33175 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33176 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33177 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33179 a = safe_add(a, olda);
33180 b = safe_add(b, oldb);
33181 c = safe_add(c, oldc);
33182 d = safe_add(d, oldd);
33184 return Array(a, b, c, d);
33189 * These functions implement the four basic operations the algorithm uses.
33191 function md5_cmn(q, a, b, x, s, t)
33193 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33195 function md5_ff(a, b, c, d, x, s, t)
33197 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33199 function md5_gg(a, b, c, d, x, s, t)
33201 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33203 function md5_hh(a, b, c, d, x, s, t)
33205 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33207 function md5_ii(a, b, c, d, x, s, t)
33209 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33213 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33214 * to work around bugs in some JS interpreters.
33216 function safe_add(x, y)
33218 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33219 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33220 return (msw <<
16) | (lsw &
0xFFFF);
33224 * Bitwise rotate a
32-bit number to the left.
33226 function bit_rol(num, cnt)
33228 return (num << cnt) | (num
>>> (
32 - cnt));
33231 module.exports = function md5(buf) {
33232 return helpers.hash(buf, core_md5,
16);
33234 },{"./helpers":
37}],
39:[function(require,module,exports){
33237 var elliptic = exports;
33239 elliptic.version = require('../package.json').version;
33240 elliptic.utils = require('./elliptic/utils');
33241 elliptic.rand = require('brorand');
33242 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33243 elliptic.curve = require('./elliptic/curve');
33244 elliptic.curves = require('./elliptic/curves');
33247 elliptic.ec = require('./elliptic/ec');
33248 elliptic.eddsa = require('./elliptic/eddsa');
33250 },{"../package.json":
55,"./elliptic/curve":
42,"./elliptic/curves":
45,"./elliptic/ec":
46,"./elliptic/eddsa":
49,"./elliptic/hmac-drbg":
52,"./elliptic/utils":
54,"brorand":
34}],
40:[function(require,module,exports){
33253 var BN = require('bn.js');
33254 var elliptic = require('../../elliptic');
33255 var utils = elliptic.utils;
33256 var getNAF = utils.getNAF;
33257 var getJSF = utils.getJSF;
33258 var assert = utils.assert;
33260 function BaseCurve(type, conf) {
33262 this.p = new BN(conf.p,
16);
33264 // Use Montgomery, when there is no fast reduction for the prime
33265 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33267 // Useful for many curves
33268 this.zero = new BN(
0).toRed(this.red);
33269 this.one = new BN(
1).toRed(this.red);
33270 this.two = new BN(
2).toRed(this.red);
33272 // Curve configuration, optional
33273 this.n = conf.n && new BN(conf.n,
16);
33274 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33276 // Temporary arrays
33277 this._wnafT1 = new Array(
4);
33278 this._wnafT2 = new Array(
4);
33279 this._wnafT3 = new Array(
4);
33280 this._wnafT4 = new Array(
4);
33282 // Generalized Greg Maxwell's trick
33283 var adjustCount = this.n && this.p.div(this.n);
33284 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33287 this._maxwellTrick = true;
33288 this.redN = this.n.toRed(this.red);
33291 module.exports = BaseCurve;
33293 BaseCurve.prototype.point = function point() {
33294 throw new Error('Not implemented');
33297 BaseCurve.prototype.validate = function validate() {
33298 throw new Error('Not implemented');
33301 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33302 assert(p.precomputed);
33303 var doubles = p._getDoubles();
33305 var naf = getNAF(k,
1);
33306 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33309 // Translate into more windowed form
33311 for (var j =
0; j < naf.length; j += doubles.step) {
33313 for (var k = j + doubles.step -
1; k
>= j; k--)
33314 nafW = (nafW <<
1) + naf[k];
33318 var a = this.jpoint(null, null, null);
33319 var b = this.jpoint(null, null, null);
33320 for (var i = I; i
> 0; i--) {
33321 for (var j =
0; j < repr.length; j++) {
33322 var nafW = repr[j];
33324 b = b.mixedAdd(doubles.points[j]);
33325 else if (nafW === -i)
33326 b = b.mixedAdd(doubles.points[j].neg());
33333 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33336 // Precompute window
33337 var nafPoints = p._getNAFPoints(w);
33339 var wnd = nafPoints.points;
33342 var naf = getNAF(k, w);
33344 // Add `this`*(N+
1) for every w-NAF index
33345 var acc = this.jpoint(null, null, null);
33346 for (var i = naf.length -
1; i
>=
0; i--) {
33348 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33358 if (p.type === 'affine') {
33361 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33363 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33367 acc = acc.add(wnd[(z -
1)
>> 1]);
33369 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33372 return p.type === 'affine' ? acc.toP() : acc;
33375 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33380 var wndWidth = this._wnafT1;
33381 var wnd = this._wnafT2;
33382 var naf = this._wnafT3;
33386 for (var i =
0; i < len; i++) {
33388 var nafPoints = p._getNAFPoints(defW);
33389 wndWidth[i] = nafPoints.wnd;
33390 wnd[i] = nafPoints.points;
33393 // Comb small window NAFs
33394 for (var i = len -
1; i
>=
1; i -=
2) {
33397 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33398 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33399 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33400 max = Math.max(naf[a].length, max);
33401 max = Math.max(naf[b].length, max);
33412 // Try to avoid Projective points, if possible
33413 if (points[a].y.cmp(points[b].y) ===
0) {
33414 comb[
1] = points[a].add(points[b]);
33415 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33416 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33417 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33418 comb[
2] = points[a].add(points[b].neg());
33420 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33421 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33436 var jsf = getJSF(coeffs[a], coeffs[b]);
33437 max = Math.max(jsf[
0].length, max);
33438 naf[a] = new Array(max);
33439 naf[b] = new Array(max);
33440 for (var j =
0; j < max; j++) {
33441 var ja = jsf[
0][j] |
0;
33442 var jb = jsf[
1][j] |
0;
33444 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33450 var acc = this.jpoint(null, null, null);
33451 var tmp = this._wnafT4;
33452 for (var i = max; i
>=
0; i--) {
33457 for (var j =
0; j < len; j++) {
33458 tmp[j] = naf[j][i] |
0;
33473 for (var j =
0; j < len; j++) {
33479 p = wnd[j][(z -
1)
>> 1];
33481 p = wnd[j][(-z -
1)
>> 1].neg();
33483 if (p.type === 'affine')
33484 acc = acc.mixedAdd(p);
33489 // Zeroify references
33490 for (var i =
0; i < len; i++)
33493 if (jacobianResult)
33499 function BasePoint(curve, type) {
33500 this.curve = curve;
33502 this.precomputed = null;
33504 BaseCurve.BasePoint = BasePoint;
33506 BasePoint.prototype.eq = function eq(/*other*/) {
33507 throw new Error('Not implemented');
33510 BasePoint.prototype.validate = function validate() {
33511 return this.curve.validate(this);
33514 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33515 bytes = utils.toArray(bytes, enc);
33517 var len = this.p.byteLength();
33519 // uncompressed, hybrid-odd, hybrid-even
33520 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33521 bytes.length -
1 ===
2 * len) {
33522 if (bytes[
0] ===
0x06)
33523 assert(bytes[bytes.length -
1] %
2 ===
0);
33524 else if (bytes[
0] ===
0x07)
33525 assert(bytes[bytes.length -
1] %
2 ===
1);
33527 var res = this.point(bytes.slice(
1,
1 + len),
33528 bytes.slice(
1 + len,
1 +
2 * len));
33531 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33532 bytes.length -
1 === len) {
33533 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33535 throw new Error('Unknown point format');
33538 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33539 return this.encode(enc, true);
33542 BasePoint.prototype._encode = function _encode(compact) {
33543 var len = this.curve.p.byteLength();
33544 var x = this.getX().toArray('be', len);
33547 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33549 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33552 BasePoint.prototype.encode = function encode(enc, compact) {
33553 return utils.encode(this._encode(compact), enc);
33556 BasePoint.prototype.precompute = function precompute(power) {
33557 if (this.precomputed)
33560 var precomputed = {
33565 precomputed.naf = this._getNAFPoints(
8);
33566 precomputed.doubles = this._getDoubles(
4, power);
33567 precomputed.beta = this._getBeta();
33568 this.precomputed = precomputed;
33573 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33574 if (!this.precomputed)
33577 var doubles = this.precomputed.doubles;
33581 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33584 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33585 if (this.precomputed && this.precomputed.doubles)
33586 return this.precomputed.doubles;
33588 var doubles = [ this ];
33590 for (var i =
0; i < power; i += step) {
33591 for (var j =
0; j < step; j++)
33601 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33602 if (this.precomputed && this.precomputed.naf)
33603 return this.precomputed.naf;
33605 var res = [ this ];
33606 var max = (
1 << wnd) -
1;
33607 var dbl = max ===
1 ? null : this.dbl();
33608 for (var i =
1; i < max; i++)
33609 res[i] = res[i -
1].add(dbl);
33616 BasePoint.prototype._getBeta = function _getBeta() {
33620 BasePoint.prototype.dblp = function dblp(k) {
33622 for (var i =
0; i < k; i++)
33627 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33630 var curve = require('../curve');
33631 var elliptic = require('../../elliptic');
33632 var BN = require('bn.js');
33633 var inherits = require('inherits');
33634 var Base = curve.base;
33636 var assert = elliptic.utils.assert;
33638 function EdwardsCurve(conf) {
33639 // NOTE: Important as we are creating point in Base.call()
33640 this.twisted = (conf.a |
0) !==
1;
33641 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33642 this.extended = this.mOneA;
33644 Base.call(this, 'edwards', conf);
33646 this.a = new BN(conf.a,
16).umod(this.red.m);
33647 this.a = this.a.toRed(this.red);
33648 this.c = new BN(conf.c,
16).toRed(this.red);
33649 this.c2 = this.c.redSqr();
33650 this.d = new BN(conf.d,
16).toRed(this.red);
33651 this.dd = this.d.redAdd(this.d);
33653 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33654 this.oneC = (conf.c |
0) ===
1;
33656 inherits(EdwardsCurve, Base);
33657 module.exports = EdwardsCurve;
33659 EdwardsCurve.prototype._mulA = function _mulA(num) {
33661 return num.redNeg();
33663 return this.a.redMul(num);
33666 EdwardsCurve.prototype._mulC = function _mulC(num) {
33670 return this.c.redMul(num);
33673 // Just for compatibility with Short curve
33674 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33675 return this.point(x, y, z, t);
33678 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33681 x = x.toRed(this.red);
33683 var x2 = x.redSqr();
33684 var rhs = this.c2.redSub(this.a.redMul(x2));
33685 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33687 var y2 = rhs.redMul(lhs.redInvm());
33688 var y = y2.redSqrt();
33689 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33690 throw new Error('invalid point');
33692 var isOdd = y.fromRed().isOdd();
33693 if (odd && !isOdd || !odd && isOdd)
33696 return this.point(x, y);
33699 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33702 y = y.toRed(this.red);
33704 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33705 var y2 = y.redSqr();
33706 var lhs = y2.redSub(this.one);
33707 var rhs = y2.redMul(this.d).redAdd(this.one);
33708 var x2 = lhs.redMul(rhs.redInvm());
33710 if (x2.cmp(this.zero) ===
0) {
33712 throw new Error('invalid point');
33714 return this.point(this.zero, y);
33717 var x = x2.redSqrt();
33718 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33719 throw new Error('invalid point');
33721 if (x.isOdd() !== odd)
33724 return this.point(x, y);
33727 EdwardsCurve.prototype.validate = function validate(point) {
33728 if (point.isInfinity())
33731 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33734 var x2 = point.x.redSqr();
33735 var y2 = point.y.redSqr();
33736 var lhs = x2.redMul(this.a).redAdd(y2);
33737 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33739 return lhs.cmp(rhs) ===
0;
33742 function Point(curve, x, y, z, t) {
33743 Base.BasePoint.call(this, curve, 'projective');
33744 if (x === null && y === null && z === null) {
33745 this.x = this.curve.zero;
33746 this.y = this.curve.one;
33747 this.z = this.curve.one;
33748 this.t = this.curve.zero;
33751 this.x = new BN(x,
16);
33752 this.y = new BN(y,
16);
33753 this.z = z ? new BN(z,
16) : this.curve.one;
33754 this.t = t && new BN(t,
16);
33756 this.x = this.x.toRed(this.curve.red);
33758 this.y = this.y.toRed(this.curve.red);
33760 this.z = this.z.toRed(this.curve.red);
33761 if (this.t && !this.t.red)
33762 this.t = this.t.toRed(this.curve.red);
33763 this.zOne = this.z === this.curve.one;
33765 // Use extended coordinates
33766 if (this.curve.extended && !this.t) {
33767 this.t = this.x.redMul(this.y);
33769 this.t = this.t.redMul(this.z.redInvm());
33773 inherits(Point, Base.BasePoint);
33775 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33776 return Point.fromJSON(this, obj);
33779 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33780 return new Point(this, x, y, z, t);
33783 Point.fromJSON = function fromJSON(curve, obj) {
33784 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33787 Point.prototype.inspect = function inspect() {
33788 if (this.isInfinity())
33789 return '
<EC Point Infinity
>';
33790 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33791 ' y: ' + this.y.fromRed().toString(
16,
2) +
33792 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33795 Point.prototype.isInfinity = function isInfinity() {
33796 // XXX This code assumes that zero is always zero in red
33797 return this.x.cmpn(
0) ===
0 &&
33798 this.y.cmp(this.z) ===
0;
33801 Point.prototype._extDbl = function _extDbl() {
33802 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33803 // #doubling-dbl-
2008-hwcd
33807 var a = this.x.redSqr();
33809 var b = this.y.redSqr();
33811 var c = this.z.redSqr();
33814 var d = this.curve._mulA(a);
33815 // E = (X1 + Y1)^
2 - A - B
33816 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33818 var g = d.redAdd(b);
33820 var f = g.redSub(c);
33822 var h = d.redSub(b);
33824 var nx = e.redMul(f);
33826 var ny = g.redMul(h);
33828 var nt = e.redMul(h);
33830 var nz = f.redMul(g);
33831 return this.curve.point(nx, ny, nz, nt);
33834 Point.prototype._projDbl = function _projDbl() {
33835 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33836 // #doubling-dbl-
2008-bbjlp
33837 // #doubling-dbl-
2007-bl
33839 // Generally
3M +
4S or
2M +
4S
33842 var b = this.x.redAdd(this.y).redSqr();
33844 var c = this.x.redSqr();
33846 var d = this.y.redSqr();
33851 if (this.curve.twisted) {
33853 var e = this.curve._mulA(c);
33855 var f = e.redAdd(d);
33857 // X3 = (B - C - D) * (F -
2)
33858 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33859 // Y3 = F * (E - D)
33860 ny = f.redMul(e.redSub(d));
33861 // Z3 = F^
2 -
2 * F
33862 nz = f.redSqr().redSub(f).redSub(f);
33865 var h = this.z.redSqr();
33867 var j = f.redSub(h).redISub(h);
33869 nx = b.redSub(c).redISub(d).redMul(j);
33870 // Y3 = F * (E - D)
33871 ny = f.redMul(e.redSub(d));
33877 var e = c.redAdd(d);
33879 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33881 var j = e.redSub(h).redSub(h);
33882 // X3 = c * (B - E) * J
33883 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33884 // Y3 = c * E * (C - D)
33885 ny = this.curve._mulC(e).redMul(c.redISub(d));
33889 return this.curve.point(nx, ny, nz);
33892 Point.prototype.dbl = function dbl() {
33893 if (this.isInfinity())
33896 // Double in extended coordinates
33897 if (this.curve.extended)
33898 return this._extDbl();
33900 return this._projDbl();
33903 Point.prototype._extAdd = function _extAdd(p) {
33904 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33905 // #addition-add-
2008-hwcd-
3
33908 // A = (Y1 - X1) * (Y2 - X2)
33909 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33910 // B = (Y1 + X1) * (Y2 + X2)
33911 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33913 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33915 var d = this.z.redMul(p.z.redAdd(p.z));
33917 var e = b.redSub(a);
33919 var f = d.redSub(c);
33921 var g = d.redAdd(c);
33923 var h = b.redAdd(a);
33925 var nx = e.redMul(f);
33927 var ny = g.redMul(h);
33929 var nt = e.redMul(h);
33931 var nz = f.redMul(g);
33932 return this.curve.point(nx, ny, nz, nt);
33935 Point.prototype._projAdd = function _projAdd(p) {
33936 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33937 // #addition-add-
2008-bbjlp
33938 // #addition-add-
2007-bl
33942 var a = this.z.redMul(p.z);
33944 var b = a.redSqr();
33946 var c = this.x.redMul(p.x);
33948 var d = this.y.redMul(p.y);
33950 var e = this.curve.d.redMul(c).redMul(d);
33952 var f = b.redSub(e);
33954 var g = b.redAdd(e);
33955 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33956 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33957 var nx = a.redMul(f).redMul(tmp);
33960 if (this.curve.twisted) {
33961 // Y3 = A * G * (D - a * C)
33962 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33966 // Y3 = A * G * (D - C)
33967 ny = a.redMul(g).redMul(d.redSub(c));
33969 nz = this.curve._mulC(f).redMul(g);
33971 return this.curve.point(nx, ny, nz);
33974 Point.prototype.add = function add(p) {
33975 if (this.isInfinity())
33977 if (p.isInfinity())
33980 if (this.curve.extended)
33981 return this._extAdd(p);
33983 return this._projAdd(p);
33986 Point.prototype.mul = function mul(k) {
33987 if (this._hasDoubles(k))
33988 return this.curve._fixedNafMul(this, k);
33990 return this.curve._wnafMul(this, k);
33993 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33994 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33997 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33998 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
34001 Point.prototype.normalize = function normalize() {
34005 // Normalize coordinates
34006 var zi = this.z.redInvm();
34007 this.x = this.x.redMul(zi);
34008 this.y = this.y.redMul(zi);
34010 this.t = this.t.redMul(zi);
34011 this.z = this.curve.one;
34016 Point.prototype.neg = function neg() {
34017 return this.curve.point(this.x.redNeg(),
34020 this.t && this.t.redNeg());
34023 Point.prototype.getX = function getX() {
34025 return this.x.fromRed();
34028 Point.prototype.getY = function getY() {
34030 return this.y.fromRed();
34033 Point.prototype.eq = function eq(other) {
34034 return this === other ||
34035 this.getX().cmp(other.getX()) ===
0 &&
34036 this.getY().cmp(other.getY()) ===
0;
34039 Point.prototype.eqXToP = function eqXToP(x) {
34040 var rx = x.toRed(this.curve.red).redMul(this.z);
34041 if (this.x.cmp(rx) ===
0)
34044 var xc = x.clone();
34045 var t = this.curve.redN.redMul(this.z);
34047 xc.iadd(this.curve.n);
34048 if (xc.cmp(this.curve.p)
>=
0)
34052 if (this.x.cmp(rx) ===
0)
34058 // Compatibility with BaseCurve
34059 Point.prototype.toP = Point.prototype.normalize;
34060 Point.prototype.mixedAdd = Point.prototype.add;
34062 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
34065 var curve = exports;
34067 curve.base = require('./base');
34068 curve.short = require('./short');
34069 curve.mont = require('./mont');
34070 curve.edwards = require('./edwards');
34072 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
34075 var curve = require('../curve');
34076 var BN = require('bn.js');
34077 var inherits = require('inherits');
34078 var Base = curve.base;
34080 var elliptic = require('../../elliptic');
34081 var utils = elliptic.utils;
34083 function MontCurve(conf) {
34084 Base.call(this, 'mont', conf);
34086 this.a = new BN(conf.a,
16).toRed(this.red);
34087 this.b = new BN(conf.b,
16).toRed(this.red);
34088 this.i4 = new BN(
4).toRed(this.red).redInvm();
34089 this.two = new BN(
2).toRed(this.red);
34090 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
34092 inherits(MontCurve, Base);
34093 module.exports = MontCurve;
34095 MontCurve.prototype.validate = function validate(point) {
34096 var x = point.normalize().x;
34097 var x2 = x.redSqr();
34098 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
34099 var y = rhs.redSqrt();
34101 return y.redSqr().cmp(rhs) ===
0;
34104 function Point(curve, x, z) {
34105 Base.BasePoint.call(this, curve, 'projective');
34106 if (x === null && z === null) {
34107 this.x = this.curve.one;
34108 this.z = this.curve.zero;
34110 this.x = new BN(x,
16);
34111 this.z = new BN(z,
16);
34113 this.x = this.x.toRed(this.curve.red);
34115 this.z = this.z.toRed(this.curve.red);
34118 inherits(Point, Base.BasePoint);
34120 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
34121 return this.point(utils.toArray(bytes, enc),
1);
34124 MontCurve.prototype.point = function point(x, z) {
34125 return new Point(this, x, z);
34128 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34129 return Point.fromJSON(this, obj);
34132 Point.prototype.precompute = function precompute() {
34136 Point.prototype._encode = function _encode() {
34137 return this.getX().toArray('be', this.curve.p.byteLength());
34140 Point.fromJSON = function fromJSON(curve, obj) {
34141 return new Point(curve, obj[
0], obj[
1] || curve.one);
34144 Point.prototype.inspect = function inspect() {
34145 if (this.isInfinity())
34146 return '
<EC Point Infinity
>';
34147 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34148 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34151 Point.prototype.isInfinity = function isInfinity() {
34152 // XXX This code assumes that zero is always zero in red
34153 return this.z.cmpn(
0) ===
0;
34156 Point.prototype.dbl = function dbl() {
34157 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34161 var a = this.x.redAdd(this.z);
34163 var aa = a.redSqr();
34165 var b = this.x.redSub(this.z);
34167 var bb = b.redSqr();
34169 var c = aa.redSub(bb);
34171 var nx = aa.redMul(bb);
34172 // Z3 = C * (BB + A24 * C)
34173 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34174 return this.curve.point(nx, nz);
34177 Point.prototype.add = function add() {
34178 throw new Error('Not supported on Montgomery curve');
34181 Point.prototype.diffAdd = function diffAdd(p, diff) {
34182 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34186 var a = this.x.redAdd(this.z);
34188 var b = this.x.redSub(this.z);
34190 var c = p.x.redAdd(p.z);
34192 var d = p.x.redSub(p.z);
34194 var da = d.redMul(a);
34196 var cb = c.redMul(b);
34197 // X5 = Z1 * (DA + CB)^
2
34198 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34199 // Z5 = X1 * (DA - CB)^
2
34200 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34201 return this.curve.point(nx, nz);
34204 Point.prototype.mul = function mul(k) {
34206 var a = this; // (N /
2) * Q + Q
34207 var b = this.curve.point(null, null); // (N /
2) * Q
34210 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34211 bits.push(t.andln(
1));
34213 for (var i = bits.length -
1; i
>=
0; i--) {
34214 if (bits[i] ===
0) {
34215 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34216 a = a.diffAdd(b, c);
34217 // N * Q =
2 * ((N /
2) * Q + Q))
34220 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34221 b = a.diffAdd(b, c);
34222 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34229 Point.prototype.mulAdd = function mulAdd() {
34230 throw new Error('Not supported on Montgomery curve');
34233 Point.prototype.jumlAdd = function jumlAdd() {
34234 throw new Error('Not supported on Montgomery curve');
34237 Point.prototype.eq = function eq(other) {
34238 return this.getX().cmp(other.getX()) ===
0;
34241 Point.prototype.normalize = function normalize() {
34242 this.x = this.x.redMul(this.z.redInvm());
34243 this.z = this.curve.one;
34247 Point.prototype.getX = function getX() {
34248 // Normalize coordinates
34251 return this.x.fromRed();
34254 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34257 var curve = require('../curve');
34258 var elliptic = require('../../elliptic');
34259 var BN = require('bn.js');
34260 var inherits = require('inherits');
34261 var Base = curve.base;
34263 var assert = elliptic.utils.assert;
34265 function ShortCurve(conf) {
34266 Base.call(this, 'short', conf);
34268 this.a = new BN(conf.a,
16).toRed(this.red);
34269 this.b = new BN(conf.b,
16).toRed(this.red);
34270 this.tinv = this.two.redInvm();
34272 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34273 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34275 // If the curve is endomorphic, precalculate beta and lambda
34276 this.endo = this._getEndomorphism(conf);
34277 this._endoWnafT1 = new Array(
4);
34278 this._endoWnafT2 = new Array(
4);
34280 inherits(ShortCurve, Base);
34281 module.exports = ShortCurve;
34283 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34284 // No efficient endomorphism
34285 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34288 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34292 beta = new BN(conf.beta,
16).toRed(this.red);
34294 var betas = this._getEndoRoots(this.p);
34295 // Choose the smallest beta
34296 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34297 beta = beta.toRed(this.red);
34300 lambda = new BN(conf.lambda,
16);
34302 // Choose the lambda that is matching selected beta
34303 var lambdas = this._getEndoRoots(this.n);
34304 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34305 lambda = lambdas[
0];
34307 lambda = lambdas[
1];
34308 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34312 // Get basis vectors, used for balanced length-two representation
34315 basis = conf.basis.map(function(vec) {
34317 a: new BN(vec.a,
16),
34318 b: new BN(vec.b,
16)
34322 basis = this._getEndoBasis(lambda);
34332 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34333 // Find roots of for x^
2 + x +
1 in F
34334 // Root = (-
1 +- Sqrt(-
3)) /
2
34336 var red = num === this.p ? this.red : BN.mont(num);
34337 var tinv = new BN(
2).toRed(red).redInvm();
34338 var ntinv = tinv.redNeg();
34340 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34342 var l1 = ntinv.redAdd(s).fromRed();
34343 var l2 = ntinv.redSub(s).fromRed();
34347 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34348 // aprxSqrt
>= sqrt(this.n)
34349 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34352 // Run EGCD, until r(L +
1) < aprxSqrt
34354 var v = this.n.clone();
34355 var x1 = new BN(
1);
34356 var y1 = new BN(
0);
34357 var x2 = new BN(
0);
34358 var y2 = new BN(
1);
34360 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34374 while (u.cmpn(
0) !==
0) {
34376 r = v.sub(q.mul(u));
34377 x = x2.sub(q.mul(x1));
34378 var y = y2.sub(q.mul(y1));
34380 if (!a1 && r.cmp(aprxSqrt) <
0) {
34385 } else if (a1 && ++i ===
2) {
34400 var len1 = a1.sqr().add(b1.sqr());
34401 var len2 = a2.sqr().add(b2.sqr());
34402 if (len2.cmp(len1)
>=
0) {
34423 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34424 var basis = this.endo.basis;
34428 var c1 = v2.b.mul(k).divRound(this.n);
34429 var c2 = v1.b.neg().mul(k).divRound(this.n);
34431 var p1 = c1.mul(v1.a);
34432 var p2 = c2.mul(v2.a);
34433 var q1 = c1.mul(v1.b);
34434 var q2 = c2.mul(v2.b);
34436 // Calculate answer
34437 var k1 = k.sub(p1).sub(p2);
34438 var k2 = q1.add(q2).neg();
34439 return { k1: k1, k2: k2 };
34442 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34445 x = x.toRed(this.red);
34447 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34448 var y = y2.redSqrt();
34449 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34450 throw new Error('invalid point');
34452 // XXX Is there any way to tell if the number is odd without converting it
34453 // to non-red form?
34454 var isOdd = y.fromRed().isOdd();
34455 if (odd && !isOdd || !odd && isOdd)
34458 return this.point(x, y);
34461 ShortCurve.prototype.validate = function validate(point) {
34468 var ax = this.a.redMul(x);
34469 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34470 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34473 ShortCurve.prototype._endoWnafMulAdd =
34474 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34475 var npoints = this._endoWnafT1;
34476 var ncoeffs = this._endoWnafT2;
34477 for (var i =
0; i < points.length; i++) {
34478 var split = this._endoSplit(coeffs[i]);
34480 var beta = p._getBeta();
34482 if (split.k1.negative) {
34486 if (split.k2.negative) {
34488 beta = beta.neg(true);
34491 npoints[i *
2] = p;
34492 npoints[i *
2 +
1] = beta;
34493 ncoeffs[i *
2] = split.k1;
34494 ncoeffs[i *
2 +
1] = split.k2;
34496 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34498 // Clean-up references to points and coefficients
34499 for (var j =
0; j < i *
2; j++) {
34506 function Point(curve, x, y, isRed) {
34507 Base.BasePoint.call(this, curve, 'affine');
34508 if (x === null && y === null) {
34513 this.x = new BN(x,
16);
34514 this.y = new BN(y,
16);
34515 // Force redgomery representation when loading from JSON
34517 this.x.forceRed(this.curve.red);
34518 this.y.forceRed(this.curve.red);
34521 this.x = this.x.toRed(this.curve.red);
34523 this.y = this.y.toRed(this.curve.red);
34527 inherits(Point, Base.BasePoint);
34529 ShortCurve.prototype.point = function point(x, y, isRed) {
34530 return new Point(this, x, y, isRed);
34533 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34534 return Point.fromJSON(this, obj, red);
34537 Point.prototype._getBeta = function _getBeta() {
34538 if (!this.curve.endo)
34541 var pre = this.precomputed;
34542 if (pre && pre.beta)
34545 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34547 var curve = this.curve;
34548 var endoMul = function(p) {
34549 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34552 beta.precomputed = {
34556 points: pre.naf.points.map(endoMul)
34558 doubles: pre.doubles && {
34559 step: pre.doubles.step,
34560 points: pre.doubles.points.map(endoMul)
34567 Point.prototype.toJSON = function toJSON() {
34568 if (!this.precomputed)
34569 return [ this.x, this.y ];
34571 return [ this.x, this.y, this.precomputed && {
34572 doubles: this.precomputed.doubles && {
34573 step: this.precomputed.doubles.step,
34574 points: this.precomputed.doubles.points.slice(
1)
34576 naf: this.precomputed.naf && {
34577 wnd: this.precomputed.naf.wnd,
34578 points: this.precomputed.naf.points.slice(
1)
34583 Point.fromJSON = function fromJSON(curve, obj, red) {
34584 if (typeof obj === 'string')
34585 obj = JSON.parse(obj);
34586 var res = curve.point(obj[
0], obj[
1], red);
34590 function obj2point(obj) {
34591 return curve.point(obj[
0], obj[
1], red);
34595 res.precomputed = {
34597 doubles: pre.doubles && {
34598 step: pre.doubles.step,
34599 points: [ res ].concat(pre.doubles.points.map(obj2point))
34603 points: [ res ].concat(pre.naf.points.map(obj2point))
34609 Point.prototype.inspect = function inspect() {
34610 if (this.isInfinity())
34611 return '
<EC Point Infinity
>';
34612 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34613 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34616 Point.prototype.isInfinity = function isInfinity() {
34620 Point.prototype.add = function add(p) {
34634 if (this.neg().eq(p))
34635 return this.curve.point(null, null);
34638 if (this.x.cmp(p.x) ===
0)
34639 return this.curve.point(null, null);
34641 var c = this.y.redSub(p.y);
34642 if (c.cmpn(
0) !==
0)
34643 c = c.redMul(this.x.redSub(p.x).redInvm());
34644 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34645 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34646 return this.curve.point(nx, ny);
34649 Point.prototype.dbl = function dbl() {
34654 var ys1 = this.y.redAdd(this.y);
34655 if (ys1.cmpn(
0) ===
0)
34656 return this.curve.point(null, null);
34658 var a = this.curve.a;
34660 var x2 = this.x.redSqr();
34661 var dyinv = ys1.redInvm();
34662 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34664 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34665 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34666 return this.curve.point(nx, ny);
34669 Point.prototype.getX = function getX() {
34670 return this.x.fromRed();
34673 Point.prototype.getY = function getY() {
34674 return this.y.fromRed();
34677 Point.prototype.mul = function mul(k) {
34680 if (this._hasDoubles(k))
34681 return this.curve._fixedNafMul(this, k);
34682 else if (this.curve.endo)
34683 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34685 return this.curve._wnafMul(this, k);
34688 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34689 var points = [ this, p2 ];
34690 var coeffs = [ k1, k2 ];
34691 if (this.curve.endo)
34692 return this.curve._endoWnafMulAdd(points, coeffs);
34694 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34697 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34698 var points = [ this, p2 ];
34699 var coeffs = [ k1, k2 ];
34700 if (this.curve.endo)
34701 return this.curve._endoWnafMulAdd(points, coeffs, true);
34703 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34706 Point.prototype.eq = function eq(p) {
34707 return this === p ||
34708 this.inf === p.inf &&
34709 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34712 Point.prototype.neg = function neg(_precompute) {
34716 var res = this.curve.point(this.x, this.y.redNeg());
34717 if (_precompute && this.precomputed) {
34718 var pre = this.precomputed;
34719 var negate = function(p) {
34722 res.precomputed = {
34725 points: pre.naf.points.map(negate)
34727 doubles: pre.doubles && {
34728 step: pre.doubles.step,
34729 points: pre.doubles.points.map(negate)
34736 Point.prototype.toJ = function toJ() {
34738 return this.curve.jpoint(null, null, null);
34740 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34744 function JPoint(curve, x, y, z) {
34745 Base.BasePoint.call(this, curve, 'jacobian');
34746 if (x === null && y === null && z === null) {
34747 this.x = this.curve.one;
34748 this.y = this.curve.one;
34749 this.z = new BN(
0);
34751 this.x = new BN(x,
16);
34752 this.y = new BN(y,
16);
34753 this.z = new BN(z,
16);
34756 this.x = this.x.toRed(this.curve.red);
34758 this.y = this.y.toRed(this.curve.red);
34760 this.z = this.z.toRed(this.curve.red);
34762 this.zOne = this.z === this.curve.one;
34764 inherits(JPoint, Base.BasePoint);
34766 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34767 return new JPoint(this, x, y, z);
34770 JPoint.prototype.toP = function toP() {
34771 if (this.isInfinity())
34772 return this.curve.point(null, null);
34774 var zinv = this.z.redInvm();
34775 var zinv2 = zinv.redSqr();
34776 var ax = this.x.redMul(zinv2);
34777 var ay = this.y.redMul(zinv2).redMul(zinv);
34779 return this.curve.point(ax, ay);
34782 JPoint.prototype.neg = function neg() {
34783 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34786 JPoint.prototype.add = function add(p) {
34788 if (this.isInfinity())
34792 if (p.isInfinity())
34796 var pz2 = p.z.redSqr();
34797 var z2 = this.z.redSqr();
34798 var u1 = this.x.redMul(pz2);
34799 var u2 = p.x.redMul(z2);
34800 var s1 = this.y.redMul(pz2.redMul(p.z));
34801 var s2 = p.y.redMul(z2.redMul(this.z));
34803 var h = u1.redSub(u2);
34804 var r = s1.redSub(s2);
34805 if (h.cmpn(
0) ===
0) {
34806 if (r.cmpn(
0) !==
0)
34807 return this.curve.jpoint(null, null, null);
34812 var h2 = h.redSqr();
34813 var h3 = h2.redMul(h);
34814 var v = u1.redMul(h2);
34816 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34817 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34818 var nz = this.z.redMul(p.z).redMul(h);
34820 return this.curve.jpoint(nx, ny, nz);
34823 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34825 if (this.isInfinity())
34829 if (p.isInfinity())
34833 var z2 = this.z.redSqr();
34835 var u2 = p.x.redMul(z2);
34837 var s2 = p.y.redMul(z2).redMul(this.z);
34839 var h = u1.redSub(u2);
34840 var r = s1.redSub(s2);
34841 if (h.cmpn(
0) ===
0) {
34842 if (r.cmpn(
0) !==
0)
34843 return this.curve.jpoint(null, null, null);
34848 var h2 = h.redSqr();
34849 var h3 = h2.redMul(h);
34850 var v = u1.redMul(h2);
34852 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34853 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34854 var nz = this.z.redMul(h);
34856 return this.curve.jpoint(nx, ny, nz);
34859 JPoint.prototype.dblp = function dblp(pow) {
34862 if (this.isInfinity())
34867 if (this.curve.zeroA || this.curve.threeA) {
34869 for (var i =
0; i < pow; i++)
34874 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34875 // N =
1 =
> 6M +
6S +
9A
34876 var a = this.curve.a;
34877 var tinv = this.curve.tinv;
34882 var jz4 = jz.redSqr().redSqr();
34885 var jyd = jy.redAdd(jy);
34886 for (var i =
0; i < pow; i++) {
34887 var jx2 = jx.redSqr();
34888 var jyd2 = jyd.redSqr();
34889 var jyd4 = jyd2.redSqr();
34890 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34892 var t1 = jx.redMul(jyd2);
34893 var nx = c.redSqr().redISub(t1.redAdd(t1));
34894 var t2 = t1.redISub(nx);
34895 var dny = c.redMul(t2);
34896 dny = dny.redIAdd(dny).redISub(jyd4);
34897 var nz = jyd.redMul(jz);
34899 jz4 = jz4.redMul(jyd4);
34906 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34909 JPoint.prototype.dbl = function dbl() {
34910 if (this.isInfinity())
34913 if (this.curve.zeroA)
34914 return this._zeroDbl();
34915 else if (this.curve.threeA)
34916 return this._threeDbl();
34918 return this._dbl();
34921 JPoint.prototype._zeroDbl = function _zeroDbl() {
34927 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34928 // #doubling-mdbl-
2007-bl
34932 var xx = this.x.redSqr();
34934 var yy = this.y.redSqr();
34936 var yyyy = yy.redSqr();
34937 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34938 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34940 // M =
3 * XX + a; a =
0
34941 var m = xx.redAdd(xx).redIAdd(xx);
34943 var t = m.redSqr().redISub(s).redISub(s);
34946 var yyyy8 = yyyy.redIAdd(yyyy);
34947 yyyy8 = yyyy8.redIAdd(yyyy8);
34948 yyyy8 = yyyy8.redIAdd(yyyy8);
34952 // Y3 = M * (S - T) -
8 * YYYY
34953 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34955 nz = this.y.redAdd(this.y);
34957 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34958 // #doubling-dbl-
2009-l
34962 var a = this.x.redSqr();
34964 var b = this.y.redSqr();
34966 var c = b.redSqr();
34967 // D =
2 * ((X1 + B)^
2 - A - C)
34968 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34971 var e = a.redAdd(a).redIAdd(a);
34973 var f = e.redSqr();
34976 var c8 = c.redIAdd(c);
34977 c8 = c8.redIAdd(c8);
34978 c8 = c8.redIAdd(c8);
34981 nx = f.redISub(d).redISub(d);
34982 // Y3 = E * (D - X3) -
8 * C
34983 ny = e.redMul(d.redISub(nx)).redISub(c8);
34984 // Z3 =
2 * Y1 * Z1
34985 nz = this.y.redMul(this.z);
34986 nz = nz.redIAdd(nz);
34989 return this.curve.jpoint(nx, ny, nz);
34992 JPoint.prototype._threeDbl = function _threeDbl() {
34998 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34999 // #doubling-mdbl-
2007-bl
35003 var xx = this.x.redSqr();
35005 var yy = this.y.redSqr();
35007 var yyyy = yy.redSqr();
35008 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
35009 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
35012 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
35014 var t = m.redSqr().redISub(s).redISub(s);
35017 // Y3 = M * (S - T) -
8 * YYYY
35018 var yyyy8 = yyyy.redIAdd(yyyy);
35019 yyyy8 = yyyy8.redIAdd(yyyy8);
35020 yyyy8 = yyyy8.redIAdd(yyyy8);
35021 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
35023 nz = this.y.redAdd(this.y);
35025 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
35029 var delta = this.z.redSqr();
35031 var gamma = this.y.redSqr();
35032 // beta = X1 * gamma
35033 var beta = this.x.redMul(gamma);
35034 // alpha =
3 * (X1 - delta) * (X1 + delta)
35035 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
35036 alpha = alpha.redAdd(alpha).redIAdd(alpha);
35037 // X3 = alpha^
2 -
8 * beta
35038 var beta4 = beta.redIAdd(beta);
35039 beta4 = beta4.redIAdd(beta4);
35040 var beta8 = beta4.redAdd(beta4);
35041 nx = alpha.redSqr().redISub(beta8);
35042 // Z3 = (Y1 + Z1)^
2 - gamma - delta
35043 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
35044 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
35045 var ggamma8 = gamma.redSqr();
35046 ggamma8 = ggamma8.redIAdd(ggamma8);
35047 ggamma8 = ggamma8.redIAdd(ggamma8);
35048 ggamma8 = ggamma8.redIAdd(ggamma8);
35049 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
35052 return this.curve.jpoint(nx, ny, nz);
35055 JPoint.prototype._dbl = function _dbl() {
35056 var a = this.curve.a;
35062 var jz4 = jz.redSqr().redSqr();
35064 var jx2 = jx.redSqr();
35065 var jy2 = jy.redSqr();
35067 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
35069 var jxd4 = jx.redAdd(jx);
35070 jxd4 = jxd4.redIAdd(jxd4);
35071 var t1 = jxd4.redMul(jy2);
35072 var nx = c.redSqr().redISub(t1.redAdd(t1));
35073 var t2 = t1.redISub(nx);
35075 var jyd8 = jy2.redSqr();
35076 jyd8 = jyd8.redIAdd(jyd8);
35077 jyd8 = jyd8.redIAdd(jyd8);
35078 jyd8 = jyd8.redIAdd(jyd8);
35079 var ny = c.redMul(t2).redISub(jyd8);
35080 var nz = jy.redAdd(jy).redMul(jz);
35082 return this.curve.jpoint(nx, ny, nz);
35085 JPoint.prototype.trpl = function trpl() {
35086 if (!this.curve.zeroA)
35087 return this.dbl().add(this);
35089 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
35093 var xx = this.x.redSqr();
35095 var yy = this.y.redSqr();
35097 var zz = this.z.redSqr();
35099 var yyyy = yy.redSqr();
35100 // M =
3 * XX + a * ZZ2; a =
0
35101 var m = xx.redAdd(xx).redIAdd(xx);
35103 var mm = m.redSqr();
35104 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
35105 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
35107 e = e.redAdd(e).redIAdd(e);
35110 var ee = e.redSqr();
35112 var t = yyyy.redIAdd(yyyy);
35116 // U = (M + E)^
2 - MM - EE - T
35117 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
35118 // X3 =
4 * (X1 * EE -
4 * YY * U)
35119 var yyu4 = yy.redMul(u);
35120 yyu4 = yyu4.redIAdd(yyu4);
35121 yyu4 = yyu4.redIAdd(yyu4);
35122 var nx = this.x.redMul(ee).redISub(yyu4);
35123 nx = nx.redIAdd(nx);
35124 nx = nx.redIAdd(nx);
35125 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
35126 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
35127 ny = ny.redIAdd(ny);
35128 ny = ny.redIAdd(ny);
35129 ny = ny.redIAdd(ny);
35130 // Z3 = (Z1 + E)^
2 - ZZ - EE
35131 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35133 return this.curve.jpoint(nx, ny, nz);
35136 JPoint.prototype.mul = function mul(k, kbase) {
35137 k = new BN(k, kbase);
35139 return this.curve._wnafMul(this, k);
35142 JPoint.prototype.eq = function eq(p) {
35143 if (p.type === 'affine')
35144 return this.eq(p.toJ());
35149 // x1 * z2^
2 == x2 * z1^
2
35150 var z2 = this.z.redSqr();
35151 var pz2 = p.z.redSqr();
35152 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35155 // y1 * z2^
3 == y2 * z1^
3
35156 var z3 = z2.redMul(this.z);
35157 var pz3 = pz2.redMul(p.z);
35158 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35161 JPoint.prototype.eqXToP = function eqXToP(x) {
35162 var zs = this.z.redSqr();
35163 var rx = x.toRed(this.curve.red).redMul(zs);
35164 if (this.x.cmp(rx) ===
0)
35167 var xc = x.clone();
35168 var t = this.curve.redN.redMul(zs);
35170 xc.iadd(this.curve.n);
35171 if (xc.cmp(this.curve.p)
>=
0)
35175 if (this.x.cmp(rx) ===
0)
35181 JPoint.prototype.inspect = function inspect() {
35182 if (this.isInfinity())
35183 return '
<EC JPoint Infinity
>';
35184 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35185 ' y: ' + this.y.toString(
16,
2) +
35186 ' z: ' + this.z.toString(
16,
2) + '
>';
35189 JPoint.prototype.isInfinity = function isInfinity() {
35190 // XXX This code assumes that zero is always zero in red
35191 return this.z.cmpn(
0) ===
0;
35194 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35197 var curves = exports;
35199 var hash = require('hash.js');
35200 var elliptic = require('../elliptic');
35202 var assert = elliptic.utils.assert;
35204 function PresetCurve(options) {
35205 if (options.type === 'short')
35206 this.curve = new elliptic.curve.short(options);
35207 else if (options.type === 'edwards')
35208 this.curve = new elliptic.curve.edwards(options);
35210 this.curve = new elliptic.curve.mont(options);
35211 this.g = this.curve.g;
35212 this.n = this.curve.n;
35213 this.hash = options.hash;
35215 assert(this.g.validate(), 'Invalid curve');
35216 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35218 curves.PresetCurve = PresetCurve;
35220 function defineCurve(name, options) {
35221 Object.defineProperty(curves, name, {
35222 configurable: true,
35225 var curve = new PresetCurve(options);
35226 Object.defineProperty(curves, name, {
35227 configurable: true,
35236 defineCurve('p192', {
35239 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35240 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35241 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35242 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35246 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35247 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35251 defineCurve('p224', {
35254 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35255 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35256 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35257 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35261 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35262 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35266 defineCurve('p256', {
35269 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35270 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35271 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35272 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35276 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35277 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35281 defineCurve('p384', {
35284 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35285 'fffffffe ffffffff
00000000 00000000 ffffffff',
35286 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35287 'fffffffe ffffffff
00000000 00000000 fffffffc',
35288 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35289 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35290 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35291 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35295 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35296 '
5502f25d bf55296c
3a545e38
72760ab7',
35297 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35298 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35302 defineCurve('p521', {
35305 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35306 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35307 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35308 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35309 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35310 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35311 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35312 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35313 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35314 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35315 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35316 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35320 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35321 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35322 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35323 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35324 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35325 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35329 defineCurve('curve25519', {
35332 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35335 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35343 defineCurve('ed25519', {
35346 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35349 // -
121665 * (
121666^(-
1)) (mod P)
35350 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35351 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35355 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35358 '
6666666666666666666666666666666666666666666666666666666666666658'
35364 pre = require('./precomputed/secp256k1');
35369 defineCurve('secp256k1', {
35372 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35375 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35379 // Precomputed endomorphism
35380 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35381 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35384 a: '
3086d221a7d46bcde86c90e49284eb15',
35385 b: '-e4437ed6010e88286f547fa90abfe4c3'
35388 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35389 b: '
3086d221a7d46bcde86c90e49284eb15'
35395 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35396 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35401 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35404 var BN = require('bn.js');
35405 var elliptic = require('../../elliptic');
35406 var utils = elliptic.utils;
35407 var assert = utils.assert;
35409 var KeyPair = require('./key');
35410 var Signature = require('./signature');
35412 function EC(options) {
35413 if (!(this instanceof EC))
35414 return new EC(options);
35416 // Shortcut `elliptic.ec(curve-name)`
35417 if (typeof options === 'string') {
35418 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35420 options = elliptic.curves[options];
35423 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35424 if (options instanceof elliptic.curves.PresetCurve)
35425 options = { curve: options };
35427 this.curve = options.curve.curve;
35428 this.n = this.curve.n;
35429 this.nh = this.n.ushrn(
1);
35430 this.g = this.curve.g;
35433 this.g = options.curve.g;
35434 this.g.precompute(options.curve.n.bitLength() +
1);
35436 // Hash for function for DRBG
35437 this.hash = options.hash || options.curve.hash;
35439 module.exports = EC;
35441 EC.prototype.keyPair = function keyPair(options) {
35442 return new KeyPair(this, options);
35445 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35446 return KeyPair.fromPrivate(this, priv, enc);
35449 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35450 return KeyPair.fromPublic(this, pub, enc);
35453 EC.prototype.genKeyPair = function genKeyPair(options) {
35457 // Instantiate Hmac_DRBG
35458 var drbg = new elliptic.hmacDRBG({
35460 pers: options.pers,
35461 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35462 nonce: this.n.toArray()
35465 var bytes = this.n.byteLength();
35466 var ns2 = this.n.sub(new BN(
2));
35468 var priv = new BN(drbg.generate(bytes));
35469 if (priv.cmp(ns2)
> 0)
35473 return this.keyFromPrivate(priv);
35477 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35478 var delta = msg.byteLength() *
8 - this.n.bitLength();
35480 msg = msg.ushrn(delta);
35481 if (!truncOnly && msg.cmp(this.n)
>=
0)
35482 return msg.sub(this.n);
35487 EC.prototype.sign = function sign(msg, key, enc, options) {
35488 if (typeof enc === 'object') {
35495 key = this.keyFromPrivate(key, enc);
35496 msg = this._truncateToN(new BN(msg,
16));
35498 // Zero-extend key to provide enough entropy
35499 var bytes = this.n.byteLength();
35500 var bkey = key.getPrivate().toArray('be', bytes);
35502 // Zero-extend nonce to have the same byte size as N
35503 var nonce = msg.toArray('be', bytes);
35505 // Instantiate Hmac_DRBG
35506 var drbg = new elliptic.hmacDRBG({
35510 pers: options.pers,
35511 persEnc: options.persEnc
35514 // Number of bytes to generate
35515 var ns1 = this.n.sub(new BN(
1));
35517 for (var iter =
0; true; iter++) {
35518 var k = options.k ?
35520 new BN(drbg.generate(this.n.byteLength()));
35521 k = this._truncateToN(k, true);
35522 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35525 var kp = this.g.mul(k);
35526 if (kp.isInfinity())
35529 var kpX = kp.getX();
35530 var r = kpX.umod(this.n);
35531 if (r.cmpn(
0) ===
0)
35534 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35535 s = s.umod(this.n);
35536 if (s.cmpn(
0) ===
0)
35539 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35540 (kpX.cmp(r) !==
0 ?
2 :
0);
35542 // Use complement of `s`, if it is
> `n /
2`
35543 if (options.canonical && s.cmp(this.nh)
> 0) {
35545 recoveryParam ^=
1;
35548 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35552 EC.prototype.verify = function verify(msg, signature, key, enc) {
35553 msg = this._truncateToN(new BN(msg,
16));
35554 key = this.keyFromPublic(key, enc);
35555 signature = new Signature(signature, 'hex');
35557 // Perform primitive values validation
35558 var r = signature.r;
35559 var s = signature.s;
35560 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35562 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35565 // Validate signature
35566 var sinv = s.invm(this.n);
35567 var u1 = sinv.mul(msg).umod(this.n);
35568 var u2 = sinv.mul(r).umod(this.n);
35570 if (!this.curve._maxwellTrick) {
35571 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35572 if (p.isInfinity())
35575 return p.getX().umod(this.n).cmp(r) ===
0;
35578 // NOTE: Greg Maxwell's trick, inspired by:
35579 // https://git.io/vad3K
35581 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35582 if (p.isInfinity())
35585 // Compare `p.x` of Jacobian point with `r`,
35586 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35587 // inverse of `p.z^
2`
35588 return p.eqXToP(r);
35591 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35592 assert((
3 & j) === j, 'The recovery param is more than two bits');
35593 signature = new Signature(signature, enc);
35596 var e = new BN(msg);
35597 var r = signature.r;
35598 var s = signature.s;
35600 // A set LSB signifies that the y-coordinate is odd
35601 var isYOdd = j &
1;
35602 var isSecondKey = j
>> 1;
35603 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35604 throw new Error('Unable to find sencond key candinate');
35606 //
1.1. Let x = r + jn.
35608 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35610 r = this.curve.pointFromX(r, isYOdd);
35612 var rInv = signature.r.invm(n);
35613 var s1 = n.sub(e).mul(rInv).umod(n);
35614 var s2 = s.mul(rInv).umod(n);
35616 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35617 // Q = r^-
1 (sR + -eG)
35618 return this.g.mulAdd(s1, r, s2);
35621 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35622 signature = new Signature(signature, enc);
35623 if (signature.recoveryParam !== null)
35624 return signature.recoveryParam;
35626 for (var i =
0; i <
4; i++) {
35629 Qprime = this.recoverPubKey(e, signature, i);
35637 throw new Error('Unable to find valid recovery factor');
35640 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35643 var BN = require('bn.js');
35644 var elliptic = require('../../elliptic');
35645 var utils = elliptic.utils;
35646 var assert = utils.assert;
35648 function KeyPair(ec, options) {
35653 // KeyPair(ec, { priv: ..., pub: ... })
35655 this._importPrivate(options.priv, options.privEnc);
35657 this._importPublic(options.pub, options.pubEnc);
35659 module.exports = KeyPair;
35661 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35662 if (pub instanceof KeyPair)
35665 return new KeyPair(ec, {
35671 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35672 if (priv instanceof KeyPair)
35675 return new KeyPair(ec, {
35681 KeyPair.prototype.validate = function validate() {
35682 var pub = this.getPublic();
35684 if (pub.isInfinity())
35685 return { result: false, reason: 'Invalid public key' };
35686 if (!pub.validate())
35687 return { result: false, reason: 'Public key is not a point' };
35688 if (!pub.mul(this.ec.curve.n).isInfinity())
35689 return { result: false, reason: 'Public key * N != O' };
35691 return { result: true, reason: null };
35694 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35695 // compact is optional argument
35696 if (typeof compact === 'string') {
35702 this.pub = this.ec.g.mul(this.priv);
35707 return this.pub.encode(enc, compact);
35710 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35712 return this.priv.toString(
16,
2);
35717 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35718 this.priv = new BN(key, enc ||
16);
35720 // Ensure that the priv won't be bigger than n, otherwise we may fail
35721 // in fixed multiplication method
35722 this.priv = this.priv.umod(this.ec.curve.n);
35725 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35726 if (key.x || key.y) {
35727 // Montgomery points only have an `x` coordinate.
35728 // Weierstrass/Edwards points on the other hand have both `x` and
35729 // `y` coordinates.
35730 if (this.ec.curve.type === 'mont') {
35731 assert(key.x, 'Need x coordinate');
35732 } else if (this.ec.curve.type === 'short' ||
35733 this.ec.curve.type === 'edwards') {
35734 assert(key.x && key.y, 'Need both x and y coordinate');
35736 this.pub = this.ec.curve.point(key.x, key.y);
35739 this.pub = this.ec.curve.decodePoint(key, enc);
35743 KeyPair.prototype.derive = function derive(pub) {
35744 return pub.mul(this.priv).getX();
35748 KeyPair.prototype.sign = function sign(msg, enc, options) {
35749 return this.ec.sign(msg, this, enc, options);
35752 KeyPair.prototype.verify = function verify(msg, signature) {
35753 return this.ec.verify(msg, signature, this);
35756 KeyPair.prototype.inspect = function inspect() {
35757 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35758 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35761 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35764 var BN = require('bn.js');
35766 var elliptic = require('../../elliptic');
35767 var utils = elliptic.utils;
35768 var assert = utils.assert;
35770 function Signature(options, enc) {
35771 if (options instanceof Signature)
35774 if (this._importDER(options, enc))
35777 assert(options.r && options.s, 'Signature without r or s');
35778 this.r = new BN(options.r,
16);
35779 this.s = new BN(options.s,
16);
35780 if (options.recoveryParam === undefined)
35781 this.recoveryParam = null;
35783 this.recoveryParam = options.recoveryParam;
35785 module.exports = Signature;
35787 function Position() {
35791 function getLength(buf, p) {
35792 var initial = buf[p.place++];
35793 if (!(initial &
0x80)) {
35796 var octetLen = initial &
0xf;
35798 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35806 function rmPadding(buf) {
35808 var len = buf.length -
1;
35809 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35815 return buf.slice(i);
35818 Signature.prototype._importDER = function _importDER(data, enc) {
35819 data = utils.toArray(data, enc);
35820 var p = new Position();
35821 if (data[p.place++] !==
0x30) {
35824 var len = getLength(data, p);
35825 if ((len + p.place) !== data.length) {
35828 if (data[p.place++] !==
0x02) {
35831 var rlen = getLength(data, p);
35832 var r = data.slice(p.place, rlen + p.place);
35834 if (data[p.place++] !==
0x02) {
35837 var slen = getLength(data, p);
35838 if (data.length !== slen + p.place) {
35841 var s = data.slice(p.place, slen + p.place);
35842 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35845 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35849 this.r = new BN(r);
35850 this.s = new BN(s);
35851 this.recoveryParam = null;
35856 function constructLength(arr, len) {
35861 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35862 arr.push(octets |
0x80);
35864 arr.push((len
>>> (octets <<
3)) &
0xff);
35869 Signature.prototype.toDER = function toDER(enc) {
35870 var r = this.r.toArray();
35871 var s = this.s.toArray();
35875 r = [
0 ].concat(r);
35878 s = [
0 ].concat(s);
35883 while (!s[
0] && !(s[
1] &
0x80)) {
35886 var arr = [
0x02 ];
35887 constructLength(arr, r.length);
35888 arr = arr.concat(r);
35890 constructLength(arr, s.length);
35891 var backHalf = arr.concat(s);
35892 var res = [
0x30 ];
35893 constructLength(res, backHalf.length);
35894 res = res.concat(backHalf);
35895 return utils.encode(res, enc);
35898 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35901 var hash = require('hash.js');
35902 var elliptic = require('../../elliptic');
35903 var utils = elliptic.utils;
35904 var assert = utils.assert;
35905 var parseBytes = utils.parseBytes;
35906 var KeyPair = require('./key');
35907 var Signature = require('./signature');
35909 function EDDSA(curve) {
35910 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35912 if (!(this instanceof EDDSA))
35913 return new EDDSA(curve);
35915 var curve = elliptic.curves[curve].curve;
35916 this.curve = curve;
35918 this.g.precompute(curve.n.bitLength() +
1);
35920 this.pointClass = curve.point().constructor;
35921 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35922 this.hash = hash.sha512;
35925 module.exports = EDDSA;
35928 * @param {Array|String} message - message bytes
35929 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35930 * @returns {Signature} - signature
35932 EDDSA.prototype.sign = function sign(message, secret) {
35933 message = parseBytes(message);
35934 var key = this.keyFromSecret(secret);
35935 var r = this.hashInt(key.messagePrefix(), message);
35936 var R = this.g.mul(r);
35937 var Rencoded = this.encodePoint(R);
35938 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35940 var S = r.add(s_).umod(this.curve.n);
35941 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35945 * @param {Array} message - message bytes
35946 * @param {Array|String|Signature} sig - sig bytes
35947 * @param {Array|String|Point|KeyPair} pub - public key
35948 * @returns {Boolean} - true if public key matches sig of message
35950 EDDSA.prototype.verify = function verify(message, sig, pub) {
35951 message = parseBytes(message);
35952 sig = this.makeSignature(sig);
35953 var key = this.keyFromPublic(pub);
35954 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35955 var SG = this.g.mul(sig.S());
35956 var RplusAh = sig.R().add(key.pub().mul(h));
35957 return RplusAh.eq(SG);
35960 EDDSA.prototype.hashInt = function hashInt() {
35961 var hash = this.hash();
35962 for (var i =
0; i < arguments.length; i++)
35963 hash.update(arguments[i]);
35964 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35967 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35968 return KeyPair.fromPublic(this, pub);
35971 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35972 return KeyPair.fromSecret(this, secret);
35975 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35976 if (sig instanceof Signature)
35978 return new Signature(this, sig);
35982 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35984 * EDDSA defines methods for encoding and decoding points and integers. These are
35985 * helper convenience methods, that pass along to utility functions implied
35989 EDDSA.prototype.encodePoint = function encodePoint(point) {
35990 var enc = point.getY().toArray('le', this.encodingLength);
35991 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35995 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35996 bytes = utils.parseBytes(bytes);
35998 var lastIx = bytes.length -
1;
35999 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
36000 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
36002 var y = utils.intFromLE(normed);
36003 return this.curve.pointFromY(y, xIsOdd);
36006 EDDSA.prototype.encodeInt = function encodeInt(num) {
36007 return num.toArray('le', this.encodingLength);
36010 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
36011 return utils.intFromLE(bytes);
36014 EDDSA.prototype.isPoint = function isPoint(val) {
36015 return val instanceof this.pointClass;
36018 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
36021 var elliptic = require('../../elliptic');
36022 var utils = elliptic.utils;
36023 var assert = utils.assert;
36024 var parseBytes = utils.parseBytes;
36025 var cachedProperty = utils.cachedProperty;
36028 * @param {EDDSA} eddsa - instance
36029 * @param {Object} params - public/private key parameters
36031 * @param {Array
<Byte>} [params.secret] - secret seed bytes
36032 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
36033 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
36036 function KeyPair(eddsa, params) {
36037 this.eddsa = eddsa;
36038 this._secret = parseBytes(params.secret);
36039 if (eddsa.isPoint(params.pub))
36040 this._pub = params.pub;
36042 this._pubBytes = parseBytes(params.pub);
36045 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
36046 if (pub instanceof KeyPair)
36048 return new KeyPair(eddsa, { pub: pub });
36051 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
36052 if (secret instanceof KeyPair)
36054 return new KeyPair(eddsa, { secret: secret });
36057 KeyPair.prototype.secret = function secret() {
36058 return this._secret;
36061 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
36062 return this.eddsa.encodePoint(this.pub());
36065 cachedProperty(KeyPair, 'pub', function pub() {
36066 if (this._pubBytes)
36067 return this.eddsa.decodePoint(this._pubBytes);
36068 return this.eddsa.g.mul(this.priv());
36071 cachedProperty(KeyPair, 'privBytes', function privBytes() {
36072 var eddsa = this.eddsa;
36073 var hash = this.hash();
36074 var lastIx = eddsa.encodingLength -
1;
36076 var a = hash.slice(
0, eddsa.encodingLength);
36084 cachedProperty(KeyPair, 'priv', function priv() {
36085 return this.eddsa.decodeInt(this.privBytes());
36088 cachedProperty(KeyPair, 'hash', function hash() {
36089 return this.eddsa.hash().update(this.secret()).digest();
36092 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
36093 return this.hash().slice(this.eddsa.encodingLength);
36096 KeyPair.prototype.sign = function sign(message) {
36097 assert(this._secret, 'KeyPair can only verify');
36098 return this.eddsa.sign(message, this);
36101 KeyPair.prototype.verify = function verify(message, sig) {
36102 return this.eddsa.verify(message, sig, this);
36105 KeyPair.prototype.getSecret = function getSecret(enc) {
36106 assert(this._secret, 'KeyPair is public only');
36107 return utils.encode(this.secret(), enc);
36110 KeyPair.prototype.getPublic = function getPublic(enc) {
36111 return utils.encode(this.pubBytes(), enc);
36114 module.exports = KeyPair;
36116 },{"../../elliptic":
39}],
51:[function(require,module,exports){
36119 var BN = require('bn.js');
36120 var elliptic = require('../../elliptic');
36121 var utils = elliptic.utils;
36122 var assert = utils.assert;
36123 var cachedProperty = utils.cachedProperty;
36124 var parseBytes = utils.parseBytes;
36127 * @param {EDDSA} eddsa - eddsa instance
36128 * @param {Array
<Bytes>|Object} sig -
36129 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36130 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36131 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36132 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36134 function Signature(eddsa, sig) {
36135 this.eddsa = eddsa;
36137 if (typeof sig !== 'object')
36138 sig = parseBytes(sig);
36140 if (Array.isArray(sig)) {
36142 R: sig.slice(
0, eddsa.encodingLength),
36143 S: sig.slice(eddsa.encodingLength)
36147 assert(sig.R && sig.S, 'Signature without R or S');
36149 if (eddsa.isPoint(sig.R))
36151 if (sig.S instanceof BN)
36154 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36155 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36158 cachedProperty(Signature, 'S', function S() {
36159 return this.eddsa.decodeInt(this.Sencoded());
36162 cachedProperty(Signature, 'R', function R() {
36163 return this.eddsa.decodePoint(this.Rencoded());
36166 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36167 return this.eddsa.encodePoint(this.R());
36170 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36171 return this.eddsa.encodeInt(this.S());
36174 Signature.prototype.toBytes = function toBytes() {
36175 return this.Rencoded().concat(this.Sencoded());
36178 Signature.prototype.toHex = function toHex() {
36179 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36182 module.exports = Signature;
36184 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36187 var hash = require('hash.js');
36188 var elliptic = require('../elliptic');
36189 var utils = elliptic.utils;
36190 var assert = utils.assert;
36192 function HmacDRBG(options) {
36193 if (!(this instanceof HmacDRBG))
36194 return new HmacDRBG(options);
36195 this.hash = options.hash;
36196 this.predResist = !!options.predResist;
36198 this.outLen = this.hash.outSize;
36199 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36201 this.reseed = null;
36202 this.reseedInterval = null;
36206 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36207 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36208 var pers = utils.toArray(options.pers, options.persEnc);
36209 assert(entropy.length
>= (this.minEntropy /
8),
36210 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36211 this._init(entropy, nonce, pers);
36213 module.exports = HmacDRBG;
36215 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36216 var seed = entropy.concat(nonce).concat(pers);
36218 this.K = new Array(this.outLen /
8);
36219 this.V = new Array(this.outLen /
8);
36220 for (var i =
0; i < this.V.length; i++) {
36225 this._update(seed);
36227 this.reseedInterval =
0x1000000000000; //
2^
48
36230 HmacDRBG.prototype._hmac = function hmac() {
36231 return new hash.hmac(this.hash, this.K);
36234 HmacDRBG.prototype._update = function update(seed) {
36235 var kmac = this._hmac()
36239 kmac = kmac.update(seed);
36240 this.K = kmac.digest();
36241 this.V = this._hmac().update(this.V).digest();
36245 this.K = this._hmac()
36250 this.V = this._hmac().update(this.V).digest();
36253 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36254 // Optional entropy enc
36255 if (typeof entropyEnc !== 'string') {
36261 entropy = utils.toBuffer(entropy, entropyEnc);
36262 add = utils.toBuffer(add, addEnc);
36264 assert(entropy.length
>= (this.minEntropy /
8),
36265 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36267 this._update(entropy.concat(add || []));
36271 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36272 if (this.reseed
> this.reseedInterval)
36273 throw new Error('Reseed is required');
36275 // Optional encoding
36276 if (typeof enc !== 'string') {
36282 // Optional additional data
36284 add = utils.toArray(add, addEnc);
36289 while (temp.length < len) {
36290 this.V = this._hmac().update(this.V).digest();
36291 temp = temp.concat(this.V);
36294 var res = temp.slice(
0, len);
36297 return utils.encode(res, enc);
36300 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36306 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36307 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36310 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36311 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36314 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36315 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36318 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36319 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36322 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36323 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36326 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36327 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36330 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36331 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36334 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36335 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36338 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36339 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36342 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36343 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36346 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36347 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36350 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36351 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36354 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36355 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36358 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36359 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36362 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36363 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36366 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36367 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36370 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36371 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36374 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36375 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36378 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36379 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36382 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36383 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36386 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36387 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36390 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36391 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36394 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36395 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36398 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36399 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36402 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36403 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36406 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36407 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36410 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36411 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36414 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36415 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36418 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36419 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36422 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36423 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36426 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36427 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36430 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36431 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36434 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36435 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36438 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36439 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36442 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36443 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36446 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36447 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36450 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36451 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36454 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36455 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36458 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36459 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36462 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36463 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36466 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36467 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36470 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36471 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36474 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36475 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36478 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36479 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36482 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36483 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36486 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36487 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36490 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36491 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36494 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36495 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36498 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36499 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36502 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36503 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36506 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36507 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36510 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36511 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36514 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36515 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36518 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36519 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36522 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36523 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36526 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36527 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36530 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36531 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36534 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36535 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36538 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36539 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36542 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36543 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36546 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36547 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36550 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36551 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36554 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36555 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36558 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36559 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36562 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36563 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36571 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36572 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36575 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36576 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36579 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36580 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36583 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36584 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36587 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36588 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36591 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36592 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36595 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36596 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36599 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36600 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36603 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36604 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36607 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36608 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36611 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36612 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36615 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36616 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36619 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36620 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36623 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36624 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36627 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36628 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36631 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36632 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36635 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36636 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36639 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36640 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36643 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36644 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36647 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36648 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36651 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36652 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36655 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36656 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36659 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36660 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36663 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36664 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36667 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36668 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36671 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36672 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36675 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36676 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36679 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36680 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36683 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36684 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36687 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36688 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36691 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36692 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36695 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36696 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36699 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36700 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36703 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36704 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36707 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36708 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36711 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36712 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36715 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36716 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36719 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36720 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36723 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36724 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36727 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36728 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36731 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36732 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36735 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36736 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36739 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36740 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36743 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36744 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36747 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36748 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36751 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36752 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36755 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36756 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36759 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36760 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36763 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36764 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36767 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36768 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36771 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36772 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36775 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36776 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36779 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36780 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36783 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36784 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36787 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36788 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36791 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36792 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36795 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36796 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36799 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36800 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36803 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36804 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36807 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36808 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36811 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36812 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36815 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36816 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36819 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36820 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36823 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36824 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36827 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36828 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36831 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36832 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36835 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36836 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36839 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36840 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36843 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36844 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36847 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36848 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36851 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36852 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36855 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36856 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36859 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36860 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36863 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36864 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36867 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36868 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36871 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36872 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36875 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36876 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36879 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36880 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36883 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36884 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36887 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36888 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36891 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36892 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36895 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36896 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36899 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36900 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36903 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36904 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36907 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36908 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36911 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36912 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36915 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36916 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36919 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36920 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36923 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36924 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36927 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36928 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36931 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36932 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36935 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36936 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36939 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36940 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36943 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36944 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36947 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36948 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36951 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36952 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36955 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36956 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36959 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36960 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36963 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36964 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36967 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36968 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36971 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36972 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36975 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36976 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36979 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36980 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36983 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36984 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36987 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36988 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36991 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36992 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36995 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36996 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36999 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
37000 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
37003 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
37004 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
37007 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
37008 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
37011 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
37012 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
37015 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
37016 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
37019 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
37020 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
37023 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
37024 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
37027 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
37028 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
37031 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
37032 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
37035 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
37036 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
37039 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
37040 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
37043 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
37044 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
37047 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
37048 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
37051 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
37052 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
37055 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
37056 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
37059 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
37060 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
37063 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
37064 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
37067 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
37068 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
37071 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
37072 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
37075 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
37076 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
37082 },{}],
54:[function(require,module,exports){
37085 var utils = exports;
37086 var BN = require('bn.js');
37088 utils.assert = function assert(val, msg) {
37090 throw new Error(msg || 'Assertion failed');
37093 function toArray(msg, enc) {
37094 if (Array.isArray(msg))
37095 return msg.slice();
37099 if (typeof msg !== 'string') {
37100 for (var i =
0; i < msg.length; i++)
37101 res[i] = msg[i] |
0;
37105 for (var i =
0; i < msg.length; i++) {
37106 var c = msg.charCodeAt(i);
37114 } else if (enc === 'hex') {
37115 msg = msg.replace(/[^a-z0-
9]+/ig, '');
37116 if (msg.length %
2 !==
0)
37118 for (var i =
0; i < msg.length; i +=
2)
37119 res.push(parseInt(msg[i] + msg[i +
1],
16));
37123 utils.toArray = toArray;
37125 function zero2(word) {
37126 if (word.length ===
1)
37131 utils.zero2 = zero2;
37133 function toHex(msg) {
37135 for (var i =
0; i < msg.length; i++)
37136 res += zero2(msg[i].toString(
16));
37139 utils.toHex = toHex;
37141 utils.encode = function encode(arr, enc) {
37148 // Represent num in a w-NAF form
37149 function getNAF(num, w) {
37151 var ws =
1 << (w +
1);
37152 var k = num.clone();
37153 while (k.cmpn(
1)
>=
0) {
37156 var mod = k.andln(ws -
1);
37157 if (mod
> (ws
>> 1) -
1)
37158 z = (ws
>> 1) - mod;
37167 // Optimization, shift by word if possible
37168 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37169 for (var i =
1; i < shift; i++)
37176 utils.getNAF = getNAF;
37178 // Represent k1, k2 in a Joint Sparse Form
37179 function getJSF(k1, k2) {
37189 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37192 var m14 = (k1.andln(
3) + d1) &
3;
37193 var m24 = (k2.andln(
3) + d2) &
3;
37199 if ((m14 &
1) ===
0) {
37202 var m8 = (k1.andln(
7) + d1) &
7;
37203 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37211 if ((m24 &
1) ===
0) {
37214 var m8 = (k2.andln(
7) + d2) &
7;
37215 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37223 if (
2 * d1 === u1 +
1)
37225 if (
2 * d2 === u2 +
1)
37233 utils.getJSF = getJSF;
37235 function cachedProperty(obj, name, computer) {
37236 var key = '_' + name;
37237 obj.prototype[name] = function cachedProperty() {
37238 return this[key] !== undefined ? this[key] :
37239 this[key] = computer.call(this);
37242 utils.cachedProperty = cachedProperty;
37244 function parseBytes(bytes) {
37245 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37248 utils.parseBytes = parseBytes;
37250 function intFromLE(bytes) {
37251 return new BN(bytes, 'hex', 'le');
37253 utils.intFromLE = intFromLE;
37256 },{
"bn.js":
33}],
55:[function(require,module,exports){
37261 "raw":
"elliptic@^6.2.3",
37263 "escapedName":
"elliptic",
37264 "name":
"elliptic",
37265 "rawSpec":
"^6.2.3",
37266 "spec":
">=6.2.3 <7.0.0",
37269 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37272 "_from":
"elliptic@>=6.2.3 <7.0.0",
37273 "_id":
"elliptic@6.3.3",
37275 "_location":
"/elliptic",
37276 "_nodeVersion":
"7.0.0",
37277 "_npmOperationalInternal": {
37278 "host":
"packages-18-east.internal.npmjs.com",
37279 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37283 "email":
"fedor@indutny.com"
37285 "_npmVersion":
"3.10.8",
37286 "_phantomChildren": {},
37288 "raw":
"elliptic@^6.2.3",
37290 "escapedName":
"elliptic",
37291 "name":
"elliptic",
37292 "rawSpec":
"^6.2.3",
37293 "spec":
">=6.2.3 <7.0.0",
37297 "/browserify-sign",
37301 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37302 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37303 "_shrinkwrap": null,
37304 "_spec":
"elliptic@^6.2.3",
37305 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37307 "name":
"Fedor Indutny",
37308 "email":
"fedor@indutny.com"
37311 "url":
"https://github.com/indutny/elliptic/issues"
37315 "brorand":
"^1.0.1",
37316 "hash.js":
"^1.0.0",
37317 "inherits":
"^2.0.1"
37319 "description":
"EC cryptography",
37320 "devDependencies": {
37322 "coveralls":
"^2.11.3",
37324 "grunt-browserify":
"^5.0.0",
37325 "grunt-cli":
"^1.2.0",
37326 "grunt-contrib-connect":
"^1.0.0",
37327 "grunt-contrib-copy":
"^1.0.0",
37328 "grunt-contrib-uglify":
"^1.0.1",
37329 "grunt-mocha-istanbul":
"^3.0.1",
37330 "grunt-saucelabs":
"^8.6.2",
37331 "istanbul":
"^0.4.2",
37333 "jshint":
"^2.6.0",
37338 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37339 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37344 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37345 "homepage":
"https://github.com/indutny/elliptic",
37353 "main":
"lib/elliptic.js",
37357 "email":
"fedor@indutny.com"
37360 "name":
"elliptic",
37361 "optionalDependencies": {},
37362 "readme":
"ERROR: No README data found!",
37365 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37368 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37369 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37370 "lint":
"npm run jscs && npm run jshint",
37371 "test":
"npm run lint && npm run unit",
37372 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37373 "version":
"grunt dist && git add dist/"
37378 },{}],
56:[function(require,module,exports){
37379 (function (Buffer){
37382 var isHexPrefixed = require('is-hex-prefixed');
37383 var stripHexPrefix = require('strip-hex-prefix');
37386 * Pads a `String` to have an even length
37387 * @param {String} value
37388 * @return {String} output
37390 function padToEven(value) {
37391 var a = value; // eslint-disable-line
37393 if (typeof a !== 'string') {
37394 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37397 if (a.length %
2) {
37405 * Converts a `Number` into a hex `String`
37406 * @param {Number} i
37409 function intToHex(i) {
37410 var hex = i.toString(
16); // eslint-disable-line
37412 return '
0x' + padToEven(hex);
37416 * Converts an `Number` to a `Buffer`
37417 * @param {Number} i
37420 function intToBuffer(i) {
37421 var hex = intToHex(i);
37423 return new Buffer(hex.slice(
2), 'hex');
37427 * Get the binary size of a string
37428 * @param {String} str
37431 function getBinarySize(str) {
37432 if (typeof str !== 'string') {
37433 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37436 return Buffer.byteLength(str, 'utf8');
37440 * Returns TRUE if the first specified array contains all elements
37441 * from the second one. FALSE otherwise.
37443 * @param {array} superset
37444 * @param {array} subset
37446 * @returns {boolean}
37448 function arrayContainsArray(superset, subset, some) {
37449 if (Array.isArray(superset) !== true) {
37450 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37452 if (Array.isArray(subset) !== true) {
37453 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37456 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37457 return superset.indexOf(value)
>=
0;
37462 * Should be called to get utf8 from it's hex representation
37465 * @param {String} string in hex
37466 * @returns {String} ascii string representation of hex value
37468 function toUtf8(hex) {
37469 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37471 return bufferValue.toString('utf8');
37475 * Should be called to get ascii from it's hex representation
37478 * @param {String} string in hex
37479 * @returns {String} ascii string representation of hex value
37481 function toAscii(hex) {
37482 var str = ''; // eslint-disable-line
37484 l = hex.length; // eslint-disable-line
37486 if (hex.substring(
0,
2) === '
0x') {
37490 for (; i < l; i +=
2) {
37491 var code = parseInt(hex.substr(i,
2),
16);
37492 str += String.fromCharCode(code);
37499 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37502 * @param {String} string
37503 * @param {Number} optional padding
37504 * @returns {String} hex representation of input string
37506 function fromUtf8(stringValue) {
37507 var str = new Buffer(stringValue, 'utf8');
37509 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37513 * Should be called to get hex representation (prefixed by
0x) of ascii string
37515 * @method fromAscii
37516 * @param {String} string
37517 * @param {Number} optional padding
37518 * @returns {String} hex representation of input string
37520 function fromAscii(stringValue) {
37521 var hex = ''; // eslint-disable-line
37522 for (var i =
0; i < stringValue.length; i++) {
37523 // eslint-disable-line
37524 var code = stringValue.charCodeAt(i);
37525 var n = code.toString(
16);
37526 hex += n.length <
2 ? '
0' + n : n;
37533 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37535 * @method getKeys get specific key from inner object array of objects
37536 * @param {String} params
37537 * @param {String} key
37538 * @param {Boolean} allowEmpty
37539 * @returns {Array} output just a simple array of output keys
37541 function getKeys(params, key, allowEmpty) {
37542 if (!Array.isArray(params)) {
37543 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37545 if (typeof key !== 'string') {
37546 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37549 var result = []; // eslint-disable-line
37551 for (var i =
0; i < params.length; i++) {
37552 // eslint-disable-line
37553 var value = params[i][key]; // eslint-disable-line
37554 if (allowEmpty && !value) {
37556 } else if (typeof value !== 'string') {
37557 throw new Error('invalid abi');
37559 result.push(value);
37566 * Is the string a hex string.
37568 * @method check if string is hex string of specific length
37569 * @param {String} value
37570 * @param {Number} length
37571 * @returns {Boolean} output the string is a hex string
37573 function isHexString(value, length) {
37574 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37578 if (length && value.length !==
2 +
2 * length) {
37586 arrayContainsArray: arrayContainsArray,
37587 intToBuffer: intToBuffer,
37588 getBinarySize: getBinarySize,
37589 isHexPrefixed: isHexPrefixed,
37590 stripHexPrefix: stripHexPrefix,
37591 padToEven: padToEven,
37592 intToHex: intToHex,
37593 fromAscii: fromAscii,
37594 fromUtf8: fromUtf8,
37598 isHexString: isHexString
37600 }).call(this,require("buffer").Buffer)
37601 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37602 var hash = exports;
37604 hash.utils = require('./hash/utils');
37605 hash.common = require('./hash/common');
37606 hash.sha = require('./hash/sha');
37607 hash.ripemd = require('./hash/ripemd');
37608 hash.hmac = require('./hash/hmac');
37610 // Proxy hash functions to the main object
37611 hash.sha1 = hash.sha.sha1;
37612 hash.sha256 = hash.sha.sha256;
37613 hash.sha224 = hash.sha.sha224;
37614 hash.sha384 = hash.sha.sha384;
37615 hash.sha512 = hash.sha.sha512;
37616 hash.ripemd160 = hash.ripemd.ripemd160;
37618 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37619 var hash = require('../hash');
37620 var utils = hash.utils;
37621 var assert = utils.assert;
37623 function BlockHash() {
37624 this.pending = null;
37625 this.pendingTotal =
0;
37626 this.blockSize = this.constructor.blockSize;
37627 this.outSize = this.constructor.outSize;
37628 this.hmacStrength = this.constructor.hmacStrength;
37629 this.padLength = this.constructor.padLength /
8;
37630 this.endian = 'big';
37632 this._delta8 = this.blockSize /
8;
37633 this._delta32 = this.blockSize /
32;
37635 exports.BlockHash = BlockHash;
37637 BlockHash.prototype.update = function update(msg, enc) {
37638 // Convert message to array, pad it, and join into
32bit blocks
37639 msg = utils.toArray(msg, enc);
37641 this.pending = msg;
37643 this.pending = this.pending.concat(msg);
37644 this.pendingTotal += msg.length;
37646 // Enough data, try updating
37647 if (this.pending.length
>= this._delta8) {
37648 msg = this.pending;
37650 // Process pending data in blocks
37651 var r = msg.length % this._delta8;
37652 this.pending = msg.slice(msg.length - r, msg.length);
37653 if (this.pending.length ===
0)
37654 this.pending = null;
37656 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37657 for (var i =
0; i < msg.length; i += this._delta32)
37658 this._update(msg, i, i + this._delta32);
37664 BlockHash.prototype.digest = function digest(enc) {
37665 this.update(this._pad());
37666 assert(this.pending === null);
37668 return this._digest(enc);
37671 BlockHash.prototype._pad = function pad() {
37672 var len = this.pendingTotal;
37673 var bytes = this._delta8;
37674 var k = bytes - ((len + this.padLength) % bytes);
37675 var res = new Array(k + this.padLength);
37677 for (var i =
1; i < k; i++)
37682 if (this.endian === 'big') {
37683 for (var t =
8; t < this.padLength; t++)
37690 res[i++] = (len
>>> 24) &
0xff;
37691 res[i++] = (len
>>> 16) &
0xff;
37692 res[i++] = (len
>>> 8) &
0xff;
37693 res[i++] = len &
0xff;
37695 res[i++] = len &
0xff;
37696 res[i++] = (len
>>> 8) &
0xff;
37697 res[i++] = (len
>>> 16) &
0xff;
37698 res[i++] = (len
>>> 24) &
0xff;
37704 for (var t =
8; t < this.padLength; t++)
37711 },{
"../hash":
57}],
59:[function(require,module,exports){
37712 var hmac = exports;
37714 var hash = require('../hash');
37715 var utils = hash.utils;
37716 var assert = utils.assert;
37718 function Hmac(hash, key, enc) {
37719 if (!(this instanceof Hmac))
37720 return new Hmac(hash, key, enc);
37722 this.blockSize = hash.blockSize /
8;
37723 this.outSize = hash.outSize /
8;
37727 this._init(utils.toArray(key, enc));
37729 module.exports = Hmac;
37731 Hmac.prototype._init = function init(key) {
37732 // Shorten key, if needed
37733 if (key.length
> this.blockSize)
37734 key = new this.Hash().update(key).digest();
37735 assert(key.length <= this.blockSize);
37737 // Add padding to key
37738 for (var i = key.length; i < this.blockSize; i++)
37741 for (var i =
0; i < key.length; i++)
37743 this.inner = new this.Hash().update(key);
37745 //
0x36 ^
0x5c =
0x6a
37746 for (var i =
0; i < key.length; i++)
37748 this.outer = new this.Hash().update(key);
37751 Hmac.prototype.update = function update(msg, enc) {
37752 this.inner.update(msg, enc);
37756 Hmac.prototype.digest = function digest(enc) {
37757 this.outer.update(this.inner.digest());
37758 return this.outer.digest(enc);
37761 },{"../hash":
57}],
60:[function(require,module,exports){
37762 var hash = require('../hash');
37763 var utils = hash.utils;
37765 var rotl32 = utils.rotl32;
37766 var sum32 = utils.sum32;
37767 var sum32_3 = utils.sum32_3;
37768 var sum32_4 = utils.sum32_4;
37769 var BlockHash = hash.common.BlockHash;
37771 function RIPEMD160() {
37772 if (!(this instanceof RIPEMD160))
37773 return new RIPEMD160();
37775 BlockHash.call(this);
37777 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37778 this.endian = 'little';
37780 utils.inherits(RIPEMD160, BlockHash);
37781 exports.ripemd160 = RIPEMD160;
37783 RIPEMD160.blockSize =
512;
37784 RIPEMD160.outSize =
160;
37785 RIPEMD160.hmacStrength =
192;
37786 RIPEMD160.padLength =
64;
37788 RIPEMD160.prototype._update = function update(msg, start) {
37799 for (var j =
0; j <
80; j++) {
37802 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37812 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37817 Dh = rotl32(Ch,
10);
37821 T = sum32_3(this.h[
1], C, Dh);
37822 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37823 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37824 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37825 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37829 RIPEMD160.prototype._digest = function digest(enc) {
37831 return utils.toHex32(this.h, 'little');
37833 return utils.split32(this.h, 'little');
37836 function f(j, x, y, z) {
37840 return (x & y) | ((~x) & z);
37842 return (x | (~y)) ^ z;
37844 return (x & z) | (y & (~z));
37846 return x ^ (y | (~z));
37876 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37877 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37878 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37879 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37880 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37884 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37885 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37886 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37887 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37888 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37892 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37893 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37894 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37895 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37896 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37900 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37901 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37902 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37903 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37904 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37907 },{"../hash":
57}],
61:[function(require,module,exports){
37908 var hash = require('../hash');
37909 var utils = hash.utils;
37910 var assert = utils.assert;
37912 var rotr32 = utils.rotr32;
37913 var rotl32 = utils.rotl32;
37914 var sum32 = utils.sum32;
37915 var sum32_4 = utils.sum32_4;
37916 var sum32_5 = utils.sum32_5;
37917 var rotr64_hi = utils.rotr64_hi;
37918 var rotr64_lo = utils.rotr64_lo;
37919 var shr64_hi = utils.shr64_hi;
37920 var shr64_lo = utils.shr64_lo;
37921 var sum64 = utils.sum64;
37922 var sum64_hi = utils.sum64_hi;
37923 var sum64_lo = utils.sum64_lo;
37924 var sum64_4_hi = utils.sum64_4_hi;
37925 var sum64_4_lo = utils.sum64_4_lo;
37926 var sum64_5_hi = utils.sum64_5_hi;
37927 var sum64_5_lo = utils.sum64_5_lo;
37928 var BlockHash = hash.common.BlockHash;
37931 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37932 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37933 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37934 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37935 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37936 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37937 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37938 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37939 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37940 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37941 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37942 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37943 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37944 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37945 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37946 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37950 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37951 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37952 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37953 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37954 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37955 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37956 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37957 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37958 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37959 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37960 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37961 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37962 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37963 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37964 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37965 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37966 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37967 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37968 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37969 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37970 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37971 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37972 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37973 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37974 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37975 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37976 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37977 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37978 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37979 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37980 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37981 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37982 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37983 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37984 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37985 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37986 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37987 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37988 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37989 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37993 0x5A827999,
0x6ED9EBA1,
37994 0x8F1BBCDC,
0xCA62C1D6
37997 function SHA256() {
37998 if (!(this instanceof SHA256))
37999 return new SHA256();
38001 BlockHash.call(this);
38002 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
38003 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
38005 this.W = new Array(
64);
38007 utils.inherits(SHA256, BlockHash);
38008 exports.sha256 = SHA256;
38010 SHA256.blockSize =
512;
38011 SHA256.outSize =
256;
38012 SHA256.hmacStrength =
192;
38013 SHA256.padLength =
64;
38015 SHA256.prototype._update = function _update(msg, start) {
38018 for (var i =
0; i <
16; i++)
38019 W[i] = msg[start + i];
38020 for (; i < W.length; i++)
38021 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
38032 assert(this.k.length === W.length);
38033 for (var i =
0; i < W.length; i++) {
38034 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
38035 var T2 = sum32(s0_256(a), maj32(a, b, c));
38046 this.h[
0] = sum32(this.h[
0], a);
38047 this.h[
1] = sum32(this.h[
1], b);
38048 this.h[
2] = sum32(this.h[
2], c);
38049 this.h[
3] = sum32(this.h[
3], d);
38050 this.h[
4] = sum32(this.h[
4], e);
38051 this.h[
5] = sum32(this.h[
5], f);
38052 this.h[
6] = sum32(this.h[
6], g);
38053 this.h[
7] = sum32(this.h[
7], h);
38056 SHA256.prototype._digest = function digest(enc) {
38058 return utils.toHex32(this.h, 'big');
38060 return utils.split32(this.h, 'big');
38063 function SHA224() {
38064 if (!(this instanceof SHA224))
38065 return new SHA224();
38068 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
38069 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
38071 utils.inherits(SHA224, SHA256);
38072 exports.sha224 = SHA224;
38074 SHA224.blockSize =
512;
38075 SHA224.outSize =
224;
38076 SHA224.hmacStrength =
192;
38077 SHA224.padLength =
64;
38079 SHA224.prototype._digest = function digest(enc) {
38080 // Just truncate output
38082 return utils.toHex32(this.h.slice(
0,
7), 'big');
38084 return utils.split32(this.h.slice(
0,
7), 'big');
38087 function SHA512() {
38088 if (!(this instanceof SHA512))
38089 return new SHA512();
38091 BlockHash.call(this);
38092 this.h = [
0x6a09e667,
0xf3bcc908,
38093 0xbb67ae85,
0x84caa73b,
38094 0x3c6ef372,
0xfe94f82b,
38095 0xa54ff53a,
0x5f1d36f1,
38096 0x510e527f,
0xade682d1,
38097 0x9b05688c,
0x2b3e6c1f,
38098 0x1f83d9ab,
0xfb41bd6b,
38099 0x5be0cd19,
0x137e2179 ];
38101 this.W = new Array(
160);
38103 utils.inherits(SHA512, BlockHash);
38104 exports.sha512 = SHA512;
38106 SHA512.blockSize =
1024;
38107 SHA512.outSize =
512;
38108 SHA512.hmacStrength =
192;
38109 SHA512.padLength =
128;
38111 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
38114 //
32 x
32bit words
38115 for (var i =
0; i <
32; i++)
38116 W[i] = msg[start + i];
38117 for (; i < W.length; i +=
2) {
38118 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
38119 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
38120 var c1_hi = W[i -
14]; // i -
7
38121 var c1_lo = W[i -
13];
38122 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
38123 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
38124 var c3_hi = W[i -
32]; // i -
16
38125 var c3_lo = W[i -
31];
38127 W[i] = sum64_4_hi(c0_hi, c0_lo,
38131 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38138 SHA512.prototype._update = function _update(msg, start) {
38139 this._prepareBlock(msg, start);
38143 var ah = this.h[
0];
38144 var al = this.h[
1];
38145 var bh = this.h[
2];
38146 var bl = this.h[
3];
38147 var ch = this.h[
4];
38148 var cl = this.h[
5];
38149 var dh = this.h[
6];
38150 var dl = this.h[
7];
38151 var eh = this.h[
8];
38152 var el = this.h[
9];
38153 var fh = this.h[
10];
38154 var fl = this.h[
11];
38155 var gh = this.h[
12];
38156 var gl = this.h[
13];
38157 var hh = this.h[
14];
38158 var hl = this.h[
15];
38160 assert(this.k.length === W.length);
38161 for (var i =
0; i < W.length; i +=
2) {
38164 var c1_hi = s1_512_hi(eh, el);
38165 var c1_lo = s1_512_lo(eh, el);
38166 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38167 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38168 var c3_hi = this.k[i];
38169 var c3_lo = this.k[i +
1];
38171 var c4_lo = W[i +
1];
38173 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38178 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38184 var c0_hi = s0_512_hi(ah, al);
38185 var c0_lo = s0_512_lo(ah, al);
38186 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38187 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38189 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38190 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38201 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38202 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38213 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38214 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38217 sum64(this.h,
0, ah, al);
38218 sum64(this.h,
2, bh, bl);
38219 sum64(this.h,
4, ch, cl);
38220 sum64(this.h,
6, dh, dl);
38221 sum64(this.h,
8, eh, el);
38222 sum64(this.h,
10, fh, fl);
38223 sum64(this.h,
12, gh, gl);
38224 sum64(this.h,
14, hh, hl);
38227 SHA512.prototype._digest = function digest(enc) {
38229 return utils.toHex32(this.h, 'big');
38231 return utils.split32(this.h, 'big');
38234 function SHA384() {
38235 if (!(this instanceof SHA384))
38236 return new SHA384();
38239 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38240 0x629a292a,
0x367cd507,
38241 0x9159015a,
0x3070dd17,
38242 0x152fecd8,
0xf70e5939,
38243 0x67332667,
0xffc00b31,
38244 0x8eb44a87,
0x68581511,
38245 0xdb0c2e0d,
0x64f98fa7,
38246 0x47b5481d,
0xbefa4fa4 ];
38248 utils.inherits(SHA384, SHA512);
38249 exports.sha384 = SHA384;
38251 SHA384.blockSize =
1024;
38252 SHA384.outSize =
384;
38253 SHA384.hmacStrength =
192;
38254 SHA384.padLength =
128;
38256 SHA384.prototype._digest = function digest(enc) {
38258 return utils.toHex32(this.h.slice(
0,
12), 'big');
38260 return utils.split32(this.h.slice(
0,
12), 'big');
38264 if (!(this instanceof SHA1))
38267 BlockHash.call(this);
38268 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38269 0x10325476,
0xc3d2e1f0 ];
38270 this.W = new Array(
80);
38273 utils.inherits(SHA1, BlockHash);
38274 exports.sha1 = SHA1;
38276 SHA1.blockSize =
512;
38277 SHA1.outSize =
160;
38278 SHA1.hmacStrength =
80;
38279 SHA1.padLength =
64;
38281 SHA1.prototype._update = function _update(msg, start) {
38284 for (var i =
0; i <
16; i++)
38285 W[i] = msg[start + i];
38287 for(; i < W.length; i++)
38288 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38296 for (var i =
0; i < W.length; i++) {
38297 var s = ~~(i /
20);
38298 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38306 this.h[
0] = sum32(this.h[
0], a);
38307 this.h[
1] = sum32(this.h[
1], b);
38308 this.h[
2] = sum32(this.h[
2], c);
38309 this.h[
3] = sum32(this.h[
3], d);
38310 this.h[
4] = sum32(this.h[
4], e);
38313 SHA1.prototype._digest = function digest(enc) {
38315 return utils.toHex32(this.h, 'big');
38317 return utils.split32(this.h, 'big');
38320 function ch32(x, y, z) {
38321 return (x & y) ^ ((~x) & z);
38324 function maj32(x, y, z) {
38325 return (x & y) ^ (x & z) ^ (y & z);
38328 function p32(x, y, z) {
38332 function s0_256(x) {
38333 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38336 function s1_256(x) {
38337 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38340 function g0_256(x) {
38341 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38344 function g1_256(x) {
38345 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38348 function ft_1(s, x, y, z) {
38350 return ch32(x, y, z);
38351 if (s ===
1 || s ===
3)
38352 return p32(x, y, z);
38354 return maj32(x, y, z);
38357 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38358 var r = (xh & yh) ^ ((~xh) & zh);
38364 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38365 var r = (xl & yl) ^ ((~xl) & zl);
38371 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38372 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38378 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38379 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38385 function s0_512_hi(xh, xl) {
38386 var c0_hi = rotr64_hi(xh, xl,
28);
38387 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38388 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38390 var r = c0_hi ^ c1_hi ^ c2_hi;
38396 function s0_512_lo(xh, xl) {
38397 var c0_lo = rotr64_lo(xh, xl,
28);
38398 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38399 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38401 var r = c0_lo ^ c1_lo ^ c2_lo;
38407 function s1_512_hi(xh, xl) {
38408 var c0_hi = rotr64_hi(xh, xl,
14);
38409 var c1_hi = rotr64_hi(xh, xl,
18);
38410 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38412 var r = c0_hi ^ c1_hi ^ c2_hi;
38418 function s1_512_lo(xh, xl) {
38419 var c0_lo = rotr64_lo(xh, xl,
14);
38420 var c1_lo = rotr64_lo(xh, xl,
18);
38421 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38423 var r = c0_lo ^ c1_lo ^ c2_lo;
38429 function g0_512_hi(xh, xl) {
38430 var c0_hi = rotr64_hi(xh, xl,
1);
38431 var c1_hi = rotr64_hi(xh, xl,
8);
38432 var c2_hi = shr64_hi(xh, xl,
7);
38434 var r = c0_hi ^ c1_hi ^ c2_hi;
38440 function g0_512_lo(xh, xl) {
38441 var c0_lo = rotr64_lo(xh, xl,
1);
38442 var c1_lo = rotr64_lo(xh, xl,
8);
38443 var c2_lo = shr64_lo(xh, xl,
7);
38445 var r = c0_lo ^ c1_lo ^ c2_lo;
38451 function g1_512_hi(xh, xl) {
38452 var c0_hi = rotr64_hi(xh, xl,
19);
38453 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38454 var c2_hi = shr64_hi(xh, xl,
6);
38456 var r = c0_hi ^ c1_hi ^ c2_hi;
38462 function g1_512_lo(xh, xl) {
38463 var c0_lo = rotr64_lo(xh, xl,
19);
38464 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38465 var c2_lo = shr64_lo(xh, xl,
6);
38467 var r = c0_lo ^ c1_lo ^ c2_lo;
38473 },{
"../hash":
57}],
62:[function(require,module,exports){
38474 var utils = exports;
38475 var inherits = require('inherits');
38477 function toArray(msg, enc) {
38478 if (Array.isArray(msg))
38479 return msg.slice();
38483 if (typeof msg === 'string') {
38485 for (var i =
0; i < msg.length; i++) {
38486 var c = msg.charCodeAt(i);
38494 } else if (enc === 'hex') {
38495 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38496 if (msg.length %
2 !==
0)
38498 for (var i =
0; i < msg.length; i +=
2)
38499 res.push(parseInt(msg[i] + msg[i +
1],
16));
38502 for (var i =
0; i < msg.length; i++)
38503 res[i] = msg[i] |
0;
38507 utils.toArray = toArray;
38509 function toHex(msg) {
38511 for (var i =
0; i < msg.length; i++)
38512 res += zero2(msg[i].toString(
16));
38515 utils.toHex = toHex;
38517 function htonl(w) {
38518 var res = (w
>>> 24) |
38519 ((w
>>> 8) &
0xff00) |
38520 ((w <<
8) &
0xff0000) |
38521 ((w &
0xff) <<
24);
38524 utils.htonl = htonl;
38526 function toHex32(msg, endian) {
38528 for (var i =
0; i < msg.length; i++) {
38530 if (endian === 'little')
38532 res += zero8(w.toString(
16));
38536 utils.toHex32 = toHex32;
38538 function zero2(word) {
38539 if (word.length ===
1)
38544 utils.zero2 = zero2;
38546 function zero8(word) {
38547 if (word.length ===
7)
38549 else if (word.length ===
6)
38550 return '
00' + word;
38551 else if (word.length ===
5)
38552 return '
000' + word;
38553 else if (word.length ===
4)
38554 return '
0000' + word;
38555 else if (word.length ===
3)
38556 return '
00000' + word;
38557 else if (word.length ===
2)
38558 return '
000000' + word;
38559 else if (word.length ===
1)
38560 return '
0000000' + word;
38564 utils.zero8 = zero8;
38566 function join32(msg, start, end, endian) {
38567 var len = end - start;
38568 assert(len %
4 ===
0);
38569 var res = new Array(len /
4);
38570 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38572 if (endian === 'big')
38573 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38575 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38580 utils.join32 = join32;
38582 function split32(msg, endian) {
38583 var res = new Array(msg.length *
4);
38584 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38586 if (endian === 'big') {
38588 res[k +
1] = (m
>>> 16) &
0xff;
38589 res[k +
2] = (m
>>> 8) &
0xff;
38590 res[k +
3] = m &
0xff;
38592 res[k +
3] = m
>>> 24;
38593 res[k +
2] = (m
>>> 16) &
0xff;
38594 res[k +
1] = (m
>>> 8) &
0xff;
38600 utils.split32 = split32;
38602 function rotr32(w, b) {
38603 return (w
>>> b) | (w << (
32 - b));
38605 utils.rotr32 = rotr32;
38607 function rotl32(w, b) {
38608 return (w << b) | (w
>>> (
32 - b));
38610 utils.rotl32 = rotl32;
38612 function sum32(a, b) {
38613 return (a + b)
>>> 0;
38615 utils.sum32 = sum32;
38617 function sum32_3(a, b, c) {
38618 return (a + b + c)
>>> 0;
38620 utils.sum32_3 = sum32_3;
38622 function sum32_4(a, b, c, d) {
38623 return (a + b + c + d)
>>> 0;
38625 utils.sum32_4 = sum32_4;
38627 function sum32_5(a, b, c, d, e) {
38628 return (a + b + c + d + e)
>>> 0;
38630 utils.sum32_5 = sum32_5;
38632 function assert(cond, msg) {
38634 throw new Error(msg || 'Assertion failed');
38636 utils.assert = assert;
38638 utils.inherits = inherits;
38640 function sum64(buf, pos, ah, al) {
38642 var bl = buf[pos +
1];
38644 var lo = (al + bl)
>>> 0;
38645 var hi = (lo < al ?
1 :
0) + ah + bh;
38646 buf[pos] = hi
>>> 0;
38649 exports.sum64 = sum64;
38651 function sum64_hi(ah, al, bh, bl) {
38652 var lo = (al + bl)
>>> 0;
38653 var hi = (lo < al ?
1 :
0) + ah + bh;
38656 exports.sum64_hi = sum64_hi;
38658 function sum64_lo(ah, al, bh, bl) {
38662 exports.sum64_lo = sum64_lo;
38664 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38667 lo = (lo + bl)
>>> 0;
38668 carry += lo < al ?
1 :
0;
38669 lo = (lo + cl)
>>> 0;
38670 carry += lo < cl ?
1 :
0;
38671 lo = (lo + dl)
>>> 0;
38672 carry += lo < dl ?
1 :
0;
38674 var hi = ah + bh + ch + dh + carry;
38677 exports.sum64_4_hi = sum64_4_hi;
38679 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38680 var lo = al + bl + cl + dl;
38683 exports.sum64_4_lo = sum64_4_lo;
38685 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38688 lo = (lo + bl)
>>> 0;
38689 carry += lo < al ?
1 :
0;
38690 lo = (lo + cl)
>>> 0;
38691 carry += lo < cl ?
1 :
0;
38692 lo = (lo + dl)
>>> 0;
38693 carry += lo < dl ?
1 :
0;
38694 lo = (lo + el)
>>> 0;
38695 carry += lo < el ?
1 :
0;
38697 var hi = ah + bh + ch + dh + eh + carry;
38700 exports.sum64_5_hi = sum64_5_hi;
38702 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38703 var lo = al + bl + cl + dl + el;
38707 exports.sum64_5_lo = sum64_5_lo;
38709 function rotr64_hi(ah, al, num) {
38710 var r = (al << (
32 - num)) | (ah
>>> num);
38713 exports.rotr64_hi = rotr64_hi;
38715 function rotr64_lo(ah, al, num) {
38716 var r = (ah << (
32 - num)) | (al
>>> num);
38719 exports.rotr64_lo = rotr64_lo;
38721 function shr64_hi(ah, al, num) {
38724 exports.shr64_hi = shr64_hi;
38726 function shr64_lo(ah, al, num) {
38727 var r = (ah << (
32 - num)) | (al
>>> num);
38730 exports.shr64_lo = shr64_lo;
38732 },{
"inherits":
63}],
63:[function(require,module,exports){
38733 arguments[
4][
9][
0].apply(exports,arguments)
38734 },{
"dup":
9}],
64:[function(require,module,exports){
38736 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38737 * @param {String} str the string input value
38738 * @return {Boolean} a boolean if it is or is not hex prefixed
38739 * @throws if the str input is not a string
38741 module.exports = function isHexPrefixed(str) {
38742 if (typeof str !== 'string') {
38743 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38746 return str.slice(
0,
2) === '
0x';
38749 },{}],
65:[function(require,module,exports){
38751 module.exports = require('./lib/api')(require('./lib/keccak'))
38753 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38755 var createKeccak = require('./keccak')
38756 var createShake = require('./shake')
38758 module.exports = function (KeccakState) {
38759 var Keccak = createKeccak(KeccakState)
38760 var Shake = createShake(KeccakState)
38762 return function (algorithm, options) {
38763 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38765 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38766 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38767 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38768 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38770 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38771 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38772 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38773 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38775 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38776 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38778 default: throw new Error('Invald algorithm: ' + algorithm)
38783 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38784 (function (Buffer){
38786 var Transform = require('stream').Transform
38787 var inherits = require('inherits')
38789 module.exports = function (KeccakState) {
38790 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38791 Transform.call(this, options)
38794 this._capacity = capacity
38795 this._delimitedSuffix = delimitedSuffix
38796 this._hashBitLength = hashBitLength
38797 this._options = options
38799 this._state = new KeccakState()
38800 this._state.initialize(rate, capacity)
38801 this._finalized = false
38804 inherits(Keccak, Transform)
38806 Keccak.prototype._transform = function (chunk, encoding, callback) {
38809 this.update(chunk, encoding)
38817 Keccak.prototype._flush = function (callback) {
38820 this.push(this.digest())
38828 Keccak.prototype.update = function (data, encoding) {
38829 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38830 if (this._finalized) throw new Error('Digest already called')
38831 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38833 this._state.absorb(data)
38838 Keccak.prototype.digest = function (encoding) {
38839 if (this._finalized) throw new Error('Digest already called')
38840 this._finalized = true
38842 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38843 var digest = this._state.squeeze(this._hashBitLength /
8)
38844 if (encoding !== undefined) digest = digest.toString(encoding)
38851 // remove result from memory
38852 Keccak.prototype._resetState = function () {
38853 this._state.initialize(this._rate, this._capacity)
38857 // because sometimes we need hash right now and little later
38858 Keccak.prototype._clone = function () {
38859 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38860 this._state.copy(clone._state)
38861 clone._finalized = this._finalized
38869 }).call(this,require(
"buffer").Buffer)
38870 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38871 (function (Buffer){
38873 var Transform = require('stream').Transform
38874 var inherits = require('inherits')
38876 module.exports = function (KeccakState) {
38877 function Shake (rate, capacity, delimitedSuffix, options) {
38878 Transform.call(this, options)
38881 this._capacity = capacity
38882 this._delimitedSuffix = delimitedSuffix
38883 this._options = options
38885 this._state = new KeccakState()
38886 this._state.initialize(rate, capacity)
38887 this._finalized = false
38890 inherits(Shake, Transform)
38892 Shake.prototype._transform = function (chunk, encoding, callback) {
38895 this.update(chunk, encoding)
38903 Shake.prototype._flush = function () {}
38905 Shake.prototype._read = function (size) {
38906 this.push(this.squeeze(size))
38909 Shake.prototype.update = function (data, encoding) {
38910 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38911 if (this._finalized) throw new Error('Squeeze already called')
38912 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38914 this._state.absorb(data)
38919 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38920 if (!this._finalized) {
38921 this._finalized = true
38922 this._state.absorbLastFewBits(this._delimitedSuffix)
38925 var data = this._state.squeeze(dataByteLength)
38926 if (encoding !== undefined) data = data.toString(encoding)
38931 Shake.prototype._resetState = function () {
38932 this._state.initialize(this._rate, this._capacity)
38936 Shake.prototype._clone = function () {
38937 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38938 this._state.copy(clone._state)
38939 clone._finalized = this._finalized
38947 }).call(this,require(
"buffer").Buffer)
38948 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38950 var P1600_ROUND_CONSTANTS = [
1,
0,
32898,
0,
32906,
2147483648,
2147516416,
2147483648,
32907,
0,
2147483649,
0,
2147516545,
2147483648,
32777,
2147483648,
138,
0,
136,
0,
2147516425,
0,
2147483658,
0,
2147516555,
0,
139,
2147483648,
32905,
2147483648,
32771,
2147483648,
32770,
2147483648,
128,
2147483648,
32778,
0,
2147483658,
2147483648,
2147516545,
2147483648,
32896,
2147483648,
2147483649,
0,
2147516424,
2147483648]
38952 exports.p1600 = function (s) {
38953 for (var round =
0; round <
24; ++round) {
38955 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38956 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38957 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38958 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38959 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38960 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38961 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38962 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38963 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38964 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38966 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38967 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38968 var t1slo0 = s[
0] ^ lo
38969 var t1shi0 = s[
1] ^ hi
38970 var t1slo5 = s[
10] ^ lo
38971 var t1shi5 = s[
11] ^ hi
38972 var t1slo10 = s[
20] ^ lo
38973 var t1shi10 = s[
21] ^ hi
38974 var t1slo15 = s[
30] ^ lo
38975 var t1shi15 = s[
31] ^ hi
38976 var t1slo20 = s[
40] ^ lo
38977 var t1shi20 = s[
41] ^ hi
38978 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38979 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38980 var t1slo1 = s[
2] ^ lo
38981 var t1shi1 = s[
3] ^ hi
38982 var t1slo6 = s[
12] ^ lo
38983 var t1shi6 = s[
13] ^ hi
38984 var t1slo11 = s[
22] ^ lo
38985 var t1shi11 = s[
23] ^ hi
38986 var t1slo16 = s[
32] ^ lo
38987 var t1shi16 = s[
33] ^ hi
38988 var t1slo21 = s[
42] ^ lo
38989 var t1shi21 = s[
43] ^ hi
38990 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38991 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38992 var t1slo2 = s[
4] ^ lo
38993 var t1shi2 = s[
5] ^ hi
38994 var t1slo7 = s[
14] ^ lo
38995 var t1shi7 = s[
15] ^ hi
38996 var t1slo12 = s[
24] ^ lo
38997 var t1shi12 = s[
25] ^ hi
38998 var t1slo17 = s[
34] ^ lo
38999 var t1shi17 = s[
35] ^ hi
39000 var t1slo22 = s[
44] ^ lo
39001 var t1shi22 = s[
45] ^ hi
39002 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
39003 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
39004 var t1slo3 = s[
6] ^ lo
39005 var t1shi3 = s[
7] ^ hi
39006 var t1slo8 = s[
16] ^ lo
39007 var t1shi8 = s[
17] ^ hi
39008 var t1slo13 = s[
26] ^ lo
39009 var t1shi13 = s[
27] ^ hi
39010 var t1slo18 = s[
36] ^ lo
39011 var t1shi18 = s[
37] ^ hi
39012 var t1slo23 = s[
46] ^ lo
39013 var t1shi23 = s[
47] ^ hi
39014 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
39015 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
39016 var t1slo4 = s[
8] ^ lo
39017 var t1shi4 = s[
9] ^ hi
39018 var t1slo9 = s[
18] ^ lo
39019 var t1shi9 = s[
19] ^ hi
39020 var t1slo14 = s[
28] ^ lo
39021 var t1shi14 = s[
29] ^ hi
39022 var t1slo19 = s[
38] ^ lo
39023 var t1shi19 = s[
39] ^ hi
39024 var t1slo24 = s[
48] ^ lo
39025 var t1shi24 = s[
49] ^ hi
39028 var t2slo0 = t1slo0
39029 var t2shi0 = t1shi0
39030 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
39031 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
39032 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
39033 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
39034 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
39035 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
39036 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
39037 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
39038 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
39039 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
39040 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
39041 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
39042 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
39043 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
39044 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
39045 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
39046 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
39047 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
39048 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
39049 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
39050 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
39051 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
39052 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
39053 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
39054 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
39055 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
39056 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
39057 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
39058 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
39059 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
39060 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
39061 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
39062 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
39063 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
39064 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
39065 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
39066 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
39067 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
39068 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
39069 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
39070 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
39071 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
39072 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
39073 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
39074 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
39075 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
39076 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
39077 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
39080 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
39081 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
39082 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
39083 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
39084 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
39085 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
39086 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
39087 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
39088 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
39089 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
39090 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
39091 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
39092 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
39093 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
39094 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
39095 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
39096 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
39097 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
39098 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
39099 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
39100 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
39101 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
39102 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
39103 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
39104 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
39105 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
39106 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
39107 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
39108 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
39109 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
39110 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
39111 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
39112 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
39113 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
39114 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
39115 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
39116 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
39117 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
39118 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
39119 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
39120 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
39121 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
39122 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
39123 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
39124 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
39125 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
39126 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
39127 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39128 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39129 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39132 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39133 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39137 },{}],
70:[function(require,module,exports){
39138 (function (Buffer){
39140 var keccakState = require('./keccak-state-unroll')
39142 function Keccak () {
39143 // much faster than `new Array(
50)`
39152 this.blockSize = null
39154 this.squeezing = false
39157 Keccak.prototype.initialize = function (rate, capacity) {
39158 for (var i =
0; i <
50; ++i) this.state[i] =
0
39159 this.blockSize = rate /
8
39161 this.squeezing = false
39164 Keccak.prototype.absorb = function (data) {
39165 for (var i =
0; i < data.length; ++i) {
39166 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39168 if (this.count === this.blockSize) {
39169 keccakState.p1600(this.state)
39175 Keccak.prototype.absorbLastFewBits = function (bits) {
39176 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39177 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39178 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39179 keccakState.p1600(this.state)
39181 this.squeezing = true
39184 Keccak.prototype.squeeze = function (length) {
39185 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39187 var output = Buffer.allocUnsafe(length)
39188 for (var i =
0; i < length; ++i) {
39189 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39191 if (this.count === this.blockSize) {
39192 keccakState.p1600(this.state)
39200 Keccak.prototype.copy = function (dest) {
39201 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39202 dest.blockSize = this.blockSize
39203 dest.count = this.count
39204 dest.squeezing = this.squeezing
39207 module.exports = Keccak
39209 }).call(this,require("buffer").Buffer)
39210 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39211 (function (Buffer){
39214 code.google.com/p/crypto-js
39215 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39216 code.google.com/p/crypto-js/wiki/License
39219 (c)
2012 by Cédric Mesnil. All rights reserved.
39221 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39223 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39224 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
39226 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39231 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39232 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39233 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39234 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39235 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39239 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39240 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39241 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39242 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39243 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39247 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39248 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39249 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39250 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39251 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39255 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39256 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39257 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39258 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39259 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39262 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39263 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39265 function bytesToWords (bytes) {
39267 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39268 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39273 function wordsToBytes (words) {
39275 for (var b =
0; b < words.length *
32; b +=
8) {
39276 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39281 function processBlock (H, M, offset) {
39283 for (var i =
0; i <
16; i++) {
39284 var offset_i = offset + i
39285 var M_offset_i = M[offset_i]
39289 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39290 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39294 // Working variables
39295 var al, bl, cl, dl, el
39296 var ar, br, cr, dr, er
39306 for (i =
0; i <
80; i +=
1) {
39307 t = (al + M[offset + zl[i]]) |
0
39309 t += f1(bl, cl, dl) + hl[
0]
39310 } else if (i <
32) {
39311 t += f2(bl, cl, dl) + hl[
1]
39312 } else if (i <
48) {
39313 t += f3(bl, cl, dl) + hl[
2]
39314 } else if (i <
64) {
39315 t += f4(bl, cl, dl) + hl[
3]
39316 } else {// if (i
<80) {
39317 t += f5(bl, cl, dl) + hl[
4]
39328 t = (ar + M[offset + zr[i]]) |
0
39330 t += f5(br, cr, dr) + hr[
0]
39331 } else if (i <
32) {
39332 t += f4(br, cr, dr) + hr[
1]
39333 } else if (i <
48) {
39334 t += f3(br, cr, dr) + hr[
2]
39335 } else if (i <
64) {
39336 t += f2(br, cr, dr) + hr[
3]
39337 } else {// if (i
<80) {
39338 t += f1(br, cr, dr) + hr[
4]
39351 // intermediate hash value
39352 t = (H[
1] + cl + dr) |
0
39353 H[
1] = (H[
2] + dl + er) |
0
39354 H[
2] = (H[
3] + el + ar) |
0
39355 H[
3] = (H[
4] + al + br) |
0
39356 H[
4] = (H[
0] + bl + cr) |
0
39360 function f1 (x, y, z) {
39361 return ((x) ^ (y) ^ (z))
39364 function f2 (x, y, z) {
39365 return (((x) & (y)) | ((~x) & (z)))
39368 function f3 (x, y, z) {
39369 return (((x) | (~(y))) ^ (z))
39372 function f4 (x, y, z) {
39373 return (((x) & (z)) | ((y) & (~(z))))
39376 function f5 (x, y, z) {
39377 return ((x) ^ ((y) | (~(z))))
39380 function rotl (x, n) {
39381 return (x << n) | (x
>>> (
32 - n))
39384 function ripemd160 (message) {
39385 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39387 if (typeof message === 'string') {
39388 message = new Buffer(message, 'utf8')
39391 var m = bytesToWords(message)
39393 var nBitsLeft = message.length *
8
39394 var nBitsTotal = message.length *
8
39397 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39398 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39399 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39400 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39403 for (var i =
0; i < m.length; i +=
16) {
39404 processBlock(H, m, i)
39408 for (i =
0; i <
5; i++) {
39413 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39414 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39417 var digestbytes = wordsToBytes(H)
39418 return new Buffer(digestbytes)
39421 module.exports = ripemd160
39423 }).call(this,require(
"buffer").Buffer)
39424 },{
"buffer":
5}],
72:[function(require,module,exports){
39425 (function (Buffer){
39426 const assert = require('assert')
39428 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39429 * This function takes in a data, convert it to buffer if not, and a length for recursion
39431 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39432 * @returns {Buffer} - returns buffer of encoded data
39434 exports.encode = function (input) {
39435 if (input instanceof Array) {
39437 for (var i =
0; i < input.length; i++) {
39438 output.push(exports.encode(input[i]))
39440 var buf = Buffer.concat(output)
39441 return Buffer.concat([encodeLength(buf.length,
192), buf])
39443 input = toBuffer(input)
39444 if (input.length ===
1 && input[
0] <
128) {
39447 return Buffer.concat([encodeLength(input.length,
128), input])
39452 function safeParseInt (v, base) {
39453 if (v.slice(
0,
2) === '
00') {
39454 throw (new Error('invalid RLP: extra zeros'))
39457 return parseInt(v, base)
39460 function encodeLength (len, offset) {
39462 return new Buffer([len + offset])
39464 var hexLength = intToHex(len)
39465 var lLength = hexLength.length /
2
39466 var firstByte = intToHex(offset +
55 + lLength)
39467 return new Buffer(firstByte + hexLength, 'hex')
39472 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39473 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39474 * @returns {Array} - returns decode Array of Buffers containg the original message
39476 exports.decode = function (input, stream) {
39477 if (!input || input.length ===
0) {
39478 return new Buffer([])
39481 input = toBuffer(input)
39482 var decoded = _decode(input)
39488 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39489 return decoded.data
39492 exports.getLength = function (input) {
39493 if (!input || input.length ===
0) {
39494 return new Buffer([])
39497 input = toBuffer(input)
39498 var firstByte = input[
0]
39499 if (firstByte <=
0x7f) {
39500 return input.length
39501 } else if (firstByte <=
0xb7) {
39502 return firstByte -
0x7f
39503 } else if (firstByte <=
0xbf) {
39504 return firstByte -
0xb6
39505 } else if (firstByte <=
0xf7) {
39506 // a list between
0-
55 bytes long
39507 return firstByte -
0xbf
39509 // a list over
55 bytes long
39510 var llength = firstByte -
0xf6
39511 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39512 return llength + length
39516 function _decode (input) {
39517 var length, llength, data, innerRemainder, d
39519 var firstByte = input[
0]
39521 if (firstByte <=
0x7f) {
39522 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39524 data: input.slice(
0,
1),
39525 remainder: input.slice(
1)
39527 } else if (firstByte <=
0xb7) {
39528 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39529 // The range of the first byte is [
0x80,
0xb7]
39530 length = firstByte -
0x7f
39532 // set
0x80 null to
0
39533 if (firstByte ===
0x80) {
39534 data = new Buffer([])
39536 data = input.slice(
1, length)
39539 if (length ===
2 && data[
0] <
0x80) {
39540 throw new Error('invalid rlp encoding: byte must be less
0x80')
39545 remainder: input.slice(length)
39547 } else if (firstByte <=
0xbf) {
39548 llength = firstByte -
0xb6
39549 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39550 data = input.slice(llength, length + llength)
39551 if (data.length < length) {
39552 throw (new Error('invalid RLP'))
39557 remainder: input.slice(length + llength)
39559 } else if (firstByte <=
0xf7) {
39560 // a list between
0-
55 bytes long
39561 length = firstByte -
0xbf
39562 innerRemainder = input.slice(
1, length)
39563 while (innerRemainder.length) {
39564 d = _decode(innerRemainder)
39565 decoded.push(d.data)
39566 innerRemainder = d.remainder
39571 remainder: input.slice(length)
39574 // a list over
55 bytes long
39575 llength = firstByte -
0xf6
39576 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39577 var totalLength = llength + length
39578 if (totalLength
> input.length) {
39579 throw new Error('invalid rlp: total length is larger than the data')
39582 innerRemainder = input.slice(llength, totalLength)
39583 if (innerRemainder.length ===
0) {
39584 throw new Error('invalid rlp, List has a invalid length')
39587 while (innerRemainder.length) {
39588 d = _decode(innerRemainder)
39589 decoded.push(d.data)
39590 innerRemainder = d.remainder
39594 remainder: input.slice(totalLength)
39599 function isHexPrefixed (str) {
39600 return str.slice(
0,
2) === '
0x'
39603 // Removes
0x from a given String
39604 function stripHexPrefix (str) {
39605 if (typeof str !== 'string') {
39608 return isHexPrefixed(str) ? str.slice(
2) : str
39611 function intToHex (i) {
39612 var hex = i.toString(
16)
39613 if (hex.length %
2) {
39620 function padToEven (a) {
39621 if (a.length %
2) a = '
0' + a
39625 function intToBuffer (i) {
39626 var hex = intToHex(i)
39627 return new Buffer(hex, 'hex')
39630 function toBuffer (v) {
39631 if (!Buffer.isBuffer(v)) {
39632 if (typeof v === 'string') {
39633 if (isHexPrefixed(v)) {
39634 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39638 } else if (typeof v === 'number') {
39644 } else if (v === null || v === undefined) {
39646 } else if (v.toArray) {
39647 // converts a BN to a Buffer
39648 v = new Buffer(v.toArray())
39650 throw new Error('invalid type')
39656 }).call(this,require("buffer").Buffer)
39657 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39659 module.exports = require('./lib')(require('./lib/elliptic'))
39661 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39662 (function (Buffer){
39664 var toString = Object.prototype.toString
39667 exports.isArray = function (value, message) {
39668 if (!Array.isArray(value)) throw TypeError(message)
39671 exports.isBoolean = function (value, message) {
39672 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39675 exports.isBuffer = function (value, message) {
39676 if (!Buffer.isBuffer(value)) throw TypeError(message)
39679 exports.isFunction = function (value, message) {
39680 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39683 exports.isNumber = function (value, message) {
39684 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39687 exports.isObject = function (value, message) {
39688 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39692 exports.isBufferLength = function (buffer, length, message) {
39693 if (buffer.length !== length) throw RangeError(message)
39696 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39697 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39700 exports.isLengthGTZero = function (value, message) {
39701 if (value.length ===
0) throw RangeError(message)
39704 exports.isNumberInInterval = function (number, x, y, message) {
39705 if (number <= x || number
>= y) throw RangeError(message)
39708 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39709 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39710 (function (Buffer){
39712 var bip66 = require('bip66')
39714 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39716 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39718 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39719 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39721 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39722 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39723 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39724 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39725 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39726 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39727 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39728 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39729 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39731 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39732 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39736 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39738 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39740 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39741 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39743 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39744 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39745 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39746 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39747 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39748 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39749 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39750 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39751 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39752 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39753 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39755 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39756 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39757 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39758 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39762 var ZERO_BUFFER_32 = new Buffer([
39763 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39764 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39767 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39768 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39769 privateKey.copy(result, compressed ?
8 :
9)
39770 publicKey.copy(result, compressed ?
181 :
214)
39774 exports.privateKeyImport = function (privateKey) {
39775 var length = privateKey.length
39779 if (length < index +
1 || privateKey[index] !==
0x30) return
39782 // sequence length constructor
39783 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39785 var lenb = privateKey[index] &
0x7f
39787 if (lenb <
1 || lenb
> 2) return
39788 if (length < index + lenb) return
39791 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39793 if (length < index + len) return
39795 // sequence element
0: version number (=
1)
39796 if (length < index +
3 ||
39797 privateKey[index] !==
0x02 ||
39798 privateKey[index +
1] !==
0x01 ||
39799 privateKey[index +
2] !==
0x01) {
39804 // sequence element
1: octet string, up to
32 bytes
39805 if (length < index +
2 ||
39806 privateKey[index] !==
0x04 ||
39807 privateKey[index +
1]
> 0x20 ||
39808 length < index +
2 + privateKey[index +
1]) {
39812 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39815 exports.signatureExport = function (sigObj) {
39816 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39817 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39819 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39820 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39822 return bip66.encode(r.slice(posR), s.slice(posS))
39825 exports.signatureImport = function (sig) {
39826 var r = new Buffer(ZERO_BUFFER_32)
39827 var s = new Buffer(ZERO_BUFFER_32)
39830 var sigObj = bip66.decode(sig)
39831 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39832 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39833 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39834 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39839 sigObj.r.copy(r,
32 - sigObj.r.length)
39840 sigObj.s.copy(s,
32 - sigObj.s.length)
39842 return { r: r, s: s }
39845 exports.signatureImportLax = function (sig) {
39846 var r = new Buffer(ZERO_BUFFER_32)
39847 var s = new Buffer(ZERO_BUFFER_32)
39849 var length = sig.length
39852 // sequence tag byte
39853 if (sig[index++] !==
0x30) return
39855 // sequence length byte
39856 var lenbyte = sig[index++]
39857 if (lenbyte &
0x80) {
39858 index += lenbyte -
0x80
39859 if (index
> length) return
39862 // sequence tag byte for r
39863 if (sig[index++] !==
0x02) return
39866 var rlen = sig[index++]
39868 lenbyte = rlen -
0x80
39869 if (index + lenbyte
> length) return
39870 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39871 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39873 if (rlen
> length - index) return
39877 // sequence tag byte for s
39878 if (sig[index++] !==
0x02) return
39881 var slen = sig[index++]
39883 lenbyte = slen -
0x80
39884 if (index + lenbyte
> length) return
39885 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39886 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39888 if (slen
> length - index) return
39892 // ignore leading zeros in r
39893 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39895 if (rlen
> 32) return
39896 var rvalue = sig.slice(rindex, rindex + rlen)
39897 rvalue.copy(r,
32 - rvalue.length)
39899 // ignore leading zeros in s
39900 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39902 if (slen
> 32) return
39903 var svalue = sig.slice(sindex, sindex + slen)
39904 svalue.copy(s,
32 - svalue.length)
39906 return { r: r, s: s }
39909 }).call(this,require(
"buffer").Buffer)
39910 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39911 (function (Buffer){
39913 var createHash = require('create-hash')
39914 var BN = require('bn.js')
39915 var EC = require('elliptic').ec
39917 var messages = require('../messages.json')
39919 var ec = new EC('secp256k1')
39920 var ecparams = ec.curve
39922 function loadCompressedPublicKey (first, xBuffer) {
39923 var x = new BN(xBuffer)
39926 if (x.cmp(ecparams.p)
>=
0) return null
39927 x = x.toRed(ecparams.red)
39929 // compute corresponding Y
39930 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39931 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39933 return ec.keyPair({ pub: { x: x, y: y } })
39936 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39937 var x = new BN(xBuffer)
39938 var y = new BN(yBuffer)
39941 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39943 x = x.toRed(ecparams.red)
39944 y = y.toRed(ecparams.red)
39947 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39950 var x3 = x.redSqr().redIMul(x)
39951 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39953 return ec.keyPair({ pub: { x: x, y: y } })
39956 function loadPublicKey (publicKey) {
39957 var first = publicKey[
0]
39961 if (publicKey.length !==
33) return null
39962 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39966 if (publicKey.length !==
65) return null
39967 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39973 exports.privateKeyVerify = function (privateKey) {
39974 var bn = new BN(privateKey)
39975 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39978 exports.privateKeyExport = function (privateKey, compressed) {
39979 var d = new BN(privateKey)
39980 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39982 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39985 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39986 var bn = new BN(tweak)
39987 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39989 bn.iadd(new BN(privateKey))
39990 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39991 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39993 return bn.toArrayLike(Buffer, 'be',
32)
39996 exports.privateKeyTweakMul = function (privateKey, tweak) {
39997 var bn = new BN(tweak)
39998 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
40000 bn.imul(new BN(privateKey))
40001 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
40003 return bn.toArrayLike(Buffer, 'be',
32)
40006 exports.publicKeyCreate = function (privateKey, compressed) {
40007 var d = new BN(privateKey)
40008 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
40010 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
40013 exports.publicKeyConvert = function (publicKey, compressed) {
40014 var pair = loadPublicKey(publicKey)
40015 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40017 return new Buffer(pair.getPublic(compressed, true))
40020 exports.publicKeyVerify = function (publicKey) {
40021 return loadPublicKey(publicKey) !== null
40024 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
40025 var pair = loadPublicKey(publicKey)
40026 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40028 tweak = new BN(tweak)
40029 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
40031 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
40034 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
40035 var pair = loadPublicKey(publicKey)
40036 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40038 tweak = new BN(tweak)
40039 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
40041 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
40044 exports.publicKeyCombine = function (publicKeys, compressed) {
40045 var pairs = new Array(publicKeys.length)
40046 for (var i =
0; i < publicKeys.length; ++i) {
40047 pairs[i] = loadPublicKey(publicKeys[i])
40048 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40051 var point = pairs[
0].pub
40052 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
40053 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
40055 return new Buffer(point.encode(true, compressed))
40058 exports.signatureNormalize = function (signature) {
40059 var r = new BN(signature.slice(
0,
32))
40060 var s = new BN(signature.slice(
32,
64))
40061 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40063 var result = new Buffer(signature)
40064 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
40069 exports.signatureExport = function (signature) {
40070 var r = signature.slice(
0,
32)
40071 var s = signature.slice(
32,
64)
40072 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40074 return { r: r, s: s }
40077 exports.signatureImport = function (sigObj) {
40078 var r = new BN(sigObj.r)
40079 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
40081 var s = new BN(sigObj.s)
40082 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
40084 return Buffer.concat([
40085 r.toArrayLike(Buffer, 'be',
32),
40086 s.toArrayLike(Buffer, 'be',
32)
40090 exports.sign = function (message, privateKey, noncefn, data) {
40091 if (typeof noncefn === 'function') {
40092 var getNonce = noncefn
40093 noncefn = function (counter) {
40094 var nonce = getNonce(message, privateKey, null, data, counter)
40095 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
40097 return new BN(nonce)
40101 var d = new BN(privateKey)
40102 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
40104 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
40106 signature: Buffer.concat([
40107 result.r.toArrayLike(Buffer, 'be',
32),
40108 result.s.toArrayLike(Buffer, 'be',
32)
40110 recovery: result.recoveryParam
40114 exports.verify = function (message, signature, publicKey) {
40115 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40117 var sigr = new BN(sigObj.r)
40118 var sigs = new BN(sigObj.s)
40119 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40120 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
40122 var pair = loadPublicKey(publicKey)
40123 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40125 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40128 exports.recover = function (message, signature, recovery, compressed) {
40129 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40131 var sigr = new BN(sigObj.r)
40132 var sigs = new BN(sigObj.s)
40133 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40136 if (sigr.isZero() || sigs.isZero()) throw new Error()
40138 var point = ec.recoverPubKey(message, sigObj, recovery)
40139 return new Buffer(point.encode(true, compressed))
40141 throw new Error(messages.ECDSA_RECOVER_FAIL)
40145 exports.ecdh = function (publicKey, privateKey) {
40146 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40147 return createHash('sha256').update(shared).digest()
40150 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40151 var pair = loadPublicKey(publicKey)
40152 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40154 var scalar = new BN(privateKey)
40155 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40157 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40160 }).call(this,require("buffer").Buffer)
40161 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40163 var assert = require('./assert')
40164 var der = require('./der')
40165 var messages = require('./messages.json')
40167 function initCompressedValue (value, defaultValue) {
40168 if (value === undefined) return defaultValue
40170 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40174 module.exports = function (secp256k1) {
40176 privateKeyVerify: function (privateKey) {
40177 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40178 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40181 privateKeyExport: function (privateKey, compressed) {
40182 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40183 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40185 compressed = initCompressedValue(compressed, true)
40186 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40188 return der.privateKeyExport(privateKey, publicKey, compressed)
40191 privateKeyImport: function (privateKey) {
40192 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40194 privateKey = der.privateKeyImport(privateKey)
40195 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40197 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40200 privateKeyTweakAdd: function (privateKey, tweak) {
40201 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40202 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40204 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40205 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40207 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40210 privateKeyTweakMul: function (privateKey, tweak) {
40211 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40212 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40214 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40215 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40217 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40220 publicKeyCreate: function (privateKey, compressed) {
40221 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40222 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40224 compressed = initCompressedValue(compressed, true)
40226 return secp256k1.publicKeyCreate(privateKey, compressed)
40229 publicKeyConvert: function (publicKey, compressed) {
40230 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40231 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40233 compressed = initCompressedValue(compressed, true)
40235 return secp256k1.publicKeyConvert(publicKey, compressed)
40238 publicKeyVerify: function (publicKey) {
40239 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40240 return secp256k1.publicKeyVerify(publicKey)
40243 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40244 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40245 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40247 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40248 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40250 compressed = initCompressedValue(compressed, true)
40252 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40255 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40256 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40257 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40259 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40260 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40262 compressed = initCompressedValue(compressed, true)
40264 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40267 publicKeyCombine: function (publicKeys, compressed) {
40268 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40269 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40270 for (var i =
0; i < publicKeys.length; ++i) {
40271 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40272 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40275 compressed = initCompressedValue(compressed, true)
40277 return secp256k1.publicKeyCombine(publicKeys, compressed)
40280 signatureNormalize: function (signature) {
40281 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40282 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40284 return secp256k1.signatureNormalize(signature)
40287 signatureExport: function (signature) {
40288 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40289 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40291 var sigObj = secp256k1.signatureExport(signature)
40292 return der.signatureExport(sigObj)
40295 signatureImport: function (sig) {
40296 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40297 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40299 var sigObj = der.signatureImport(sig)
40300 if (sigObj) return secp256k1.signatureImport(sigObj)
40302 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40305 signatureImportLax: function (sig) {
40306 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40307 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40309 var sigObj = der.signatureImportLax(sig)
40310 if (sigObj) return secp256k1.signatureImport(sigObj)
40312 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40315 sign: function (message, privateKey, options) {
40316 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40317 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40319 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40320 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40324 if (options !== undefined) {
40325 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40327 if (options.data !== undefined) {
40328 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40329 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40330 data = options.data
40333 if (options.noncefn !== undefined) {
40334 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40335 noncefn = options.noncefn
40339 return secp256k1.sign(message, privateKey, noncefn, data)
40342 verify: function (message, signature, publicKey) {
40343 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40344 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40346 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40347 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40349 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40350 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40352 return secp256k1.verify(message, signature, publicKey)
40355 recover: function (message, signature, recovery, compressed) {
40356 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40357 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40359 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40360 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40362 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40363 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40365 compressed = initCompressedValue(compressed, true)
40367 return secp256k1.recover(message, signature, recovery, compressed)
40370 ecdh: function (publicKey, privateKey) {
40371 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40372 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40374 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40375 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40377 return secp256k1.ecdh(publicKey, privateKey)
40380 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40381 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40382 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40384 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40385 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40387 compressed = initCompressedValue(compressed, true)
40389 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40394 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40396 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40397 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40398 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40399 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40400 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40401 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40402 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40403 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40404 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40405 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40406 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40407 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40408 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40409 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40410 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40411 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40412 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40413 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40414 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40415 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40416 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40417 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40418 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40419 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40420 "MSG32_TYPE_INVALID": "message should be a Buffer",
40421 "MSG32_LENGTH_INVALID": "message length is invalid",
40422 "OPTIONS_TYPE_INVALID": "options should be an Object",
40423 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40424 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40425 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40426 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40427 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40428 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40429 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40432 },{}],
79:[function(require,module,exports){
40433 (function (Buffer){
40434 // prototype class for hash functions
40435 function Hash (blockSize, finalSize) {
40436 this._block = new Buffer(blockSize)
40437 this._finalSize = finalSize
40438 this._blockSize = blockSize
40443 Hash.prototype.update = function (data, enc) {
40444 if (typeof data === 'string') {
40445 enc = enc || 'utf8'
40446 data = new Buffer(data, enc)
40449 var l = this._len += data.length
40450 var s = this._s ||
0
40452 var buffer = this._block
40455 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40458 for (var i =
0; i < ch; i++) {
40459 buffer[(s % this._blockSize) + i] = data[i + f]
40465 if ((s % this._blockSize) ===
0) {
40466 this._update(buffer)
40474 Hash.prototype.digest = function (enc) {
40475 // Suppose the length of the message M, in bits, is l
40476 var l = this._len *
8
40478 // Append the bit
1 to the end of the message
40479 this._block[this._len % this._blockSize] =
0x80
40481 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40482 this._block.fill(
0, this._len % this._blockSize +
1)
40484 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40485 this._update(this._block)
40486 this._block.fill(
0)
40489 // to this append the block which is equal to the number l written in binary
40490 // TODO: handle case where l is
> Math.pow(
2,
29)
40491 this._block.writeInt32BE(l, this._blockSize -
4)
40493 var hash = this._update(this._block) || this._hash()
40495 return enc ? hash.toString(enc) : hash
40498 Hash.prototype._update = function () {
40499 throw new Error('_update must be implemented by subclass')
40502 module.exports = Hash
40504 }).call(this,require("buffer").Buffer)
40505 },{"buffer":
5}],
80:[function(require,module,exports){
40506 var exports = module.exports = function SHA (algorithm) {
40507 algorithm = algorithm.toLowerCase()
40509 var Algorithm = exports[algorithm]
40510 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40512 return new Algorithm()
40515 exports.sha = require('./sha')
40516 exports.sha1 = require('./sha1')
40517 exports.sha224 = require('./sha224')
40518 exports.sha256 = require('./sha256')
40519 exports.sha384 = require('./sha384')
40520 exports.sha512 = require('./sha512')
40522 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40523 (function (Buffer){
40525 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40526 * in FIPS PUB
180-
1
40527 * This source code is derived from sha1.js of the same repository.
40528 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40529 * operation was added.
40532 var inherits = require('inherits')
40533 var Hash = require('./hash')
40536 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40539 var W = new Array(
80)
40545 Hash.call(this,
64,
56)
40548 inherits(Sha, Hash)
40550 Sha.prototype.init = function () {
40551 this._a =
0x67452301
40552 this._b =
0xefcdab89
40553 this._c =
0x98badcfe
40554 this._d =
0x10325476
40555 this._e =
0xc3d2e1f0
40560 function rotl5 (num) {
40561 return (num <<
5) | (num
>>> 27)
40564 function rotl30 (num) {
40565 return (num <<
30) | (num
>>> 2)
40568 function ft (s, b, c, d) {
40569 if (s ===
0) return (b & c) | ((~b) & d)
40570 if (s ===
2) return (b & c) | (b & d) | (c & d)
40574 Sha.prototype._update = function (M) {
40577 var a = this._a |
0
40578 var b = this._b |
0
40579 var c = this._c |
0
40580 var d = this._d |
0
40581 var e = this._e |
0
40583 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40584 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40586 for (var j =
0; j <
80; ++j) {
40588 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40597 this._a = (a + this._a) |
0
40598 this._b = (b + this._b) |
0
40599 this._c = (c + this._c) |
0
40600 this._d = (d + this._d) |
0
40601 this._e = (e + this._e) |
0
40604 Sha.prototype._hash = function () {
40605 var H = new Buffer(
20)
40607 H.writeInt32BE(this._a |
0,
0)
40608 H.writeInt32BE(this._b |
0,
4)
40609 H.writeInt32BE(this._c |
0,
8)
40610 H.writeInt32BE(this._d |
0,
12)
40611 H.writeInt32BE(this._e |
0,
16)
40616 module.exports = Sha
40618 }).call(this,require(
"buffer").Buffer)
40619 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40620 (function (Buffer){
40622 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40623 * in FIPS PUB
180-
1
40624 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40625 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40626 * Distributed under the BSD License
40627 * See http://pajhome.org.uk/crypt/md5 for details.
40630 var inherits = require('inherits')
40631 var Hash = require('./hash')
40634 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40637 var W = new Array(
80)
40643 Hash.call(this,
64,
56)
40646 inherits(Sha1, Hash)
40648 Sha1.prototype.init = function () {
40649 this._a =
0x67452301
40650 this._b =
0xefcdab89
40651 this._c =
0x98badcfe
40652 this._d =
0x10325476
40653 this._e =
0xc3d2e1f0
40658 function rotl1 (num) {
40659 return (num <<
1) | (num
>>> 31)
40662 function rotl5 (num) {
40663 return (num <<
5) | (num
>>> 27)
40666 function rotl30 (num) {
40667 return (num <<
30) | (num
>>> 2)
40670 function ft (s, b, c, d) {
40671 if (s ===
0) return (b & c) | ((~b) & d)
40672 if (s ===
2) return (b & c) | (b & d) | (c & d)
40676 Sha1.prototype._update = function (M) {
40679 var a = this._a |
0
40680 var b = this._b |
0
40681 var c = this._c |
0
40682 var d = this._d |
0
40683 var e = this._e |
0
40685 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40686 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40688 for (var j =
0; j <
80; ++j) {
40690 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40699 this._a = (a + this._a) |
0
40700 this._b = (b + this._b) |
0
40701 this._c = (c + this._c) |
0
40702 this._d = (d + this._d) |
0
40703 this._e = (e + this._e) |
0
40706 Sha1.prototype._hash = function () {
40707 var H = new Buffer(
20)
40709 H.writeInt32BE(this._a |
0,
0)
40710 H.writeInt32BE(this._b |
0,
4)
40711 H.writeInt32BE(this._c |
0,
8)
40712 H.writeInt32BE(this._d |
0,
12)
40713 H.writeInt32BE(this._e |
0,
16)
40718 module.exports = Sha1
40720 }).call(this,require(
"buffer").Buffer)
40721 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40722 (function (Buffer){
40724 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40726 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40727 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40731 var inherits = require('inherits')
40732 var Sha256 = require('./sha256')
40733 var Hash = require('./hash')
40735 var W = new Array(
64)
40737 function Sha224 () {
40740 this._w = W // new Array(
64)
40742 Hash.call(this,
64,
56)
40745 inherits(Sha224, Sha256)
40747 Sha224.prototype.init = function () {
40748 this._a =
0xc1059ed8
40749 this._b =
0x367cd507
40750 this._c =
0x3070dd17
40751 this._d =
0xf70e5939
40752 this._e =
0xffc00b31
40753 this._f =
0x68581511
40754 this._g =
0x64f98fa7
40755 this._h =
0xbefa4fa4
40760 Sha224.prototype._hash = function () {
40761 var H = new Buffer(
28)
40763 H.writeInt32BE(this._a,
0)
40764 H.writeInt32BE(this._b,
4)
40765 H.writeInt32BE(this._c,
8)
40766 H.writeInt32BE(this._d,
12)
40767 H.writeInt32BE(this._e,
16)
40768 H.writeInt32BE(this._f,
20)
40769 H.writeInt32BE(this._g,
24)
40774 module.exports = Sha224
40776 }).call(this,require(
"buffer").Buffer)
40777 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40778 (function (Buffer){
40780 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40782 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40783 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40787 var inherits = require('inherits')
40788 var Hash = require('./hash')
40791 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40792 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40793 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40794 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40795 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40796 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40797 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40798 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40799 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40800 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40801 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40802 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40803 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40804 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40805 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40806 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40809 var W = new Array(
64)
40811 function Sha256 () {
40814 this._w = W // new Array(
64)
40816 Hash.call(this,
64,
56)
40819 inherits(Sha256, Hash)
40821 Sha256.prototype.init = function () {
40822 this._a =
0x6a09e667
40823 this._b =
0xbb67ae85
40824 this._c =
0x3c6ef372
40825 this._d =
0xa54ff53a
40826 this._e =
0x510e527f
40827 this._f =
0x9b05688c
40828 this._g =
0x1f83d9ab
40829 this._h =
0x5be0cd19
40834 function ch (x, y, z) {
40835 return z ^ (x & (y ^ z))
40838 function maj (x, y, z) {
40839 return (x & y) | (z & (x | y))
40842 function sigma0 (x) {
40843 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40846 function sigma1 (x) {
40847 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40850 function gamma0 (x) {
40851 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40854 function gamma1 (x) {
40855 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40858 Sha256.prototype._update = function (M) {
40861 var a = this._a |
0
40862 var b = this._b |
0
40863 var c = this._c |
0
40864 var d = this._d |
0
40865 var e = this._e |
0
40866 var f = this._f |
0
40867 var g = this._g |
0
40868 var h = this._h |
0
40870 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40871 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40873 for (var j =
0; j <
64; ++j) {
40874 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40875 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40887 this._a = (a + this._a) |
0
40888 this._b = (b + this._b) |
0
40889 this._c = (c + this._c) |
0
40890 this._d = (d + this._d) |
0
40891 this._e = (e + this._e) |
0
40892 this._f = (f + this._f) |
0
40893 this._g = (g + this._g) |
0
40894 this._h = (h + this._h) |
0
40897 Sha256.prototype._hash = function () {
40898 var H = new Buffer(
32)
40900 H.writeInt32BE(this._a,
0)
40901 H.writeInt32BE(this._b,
4)
40902 H.writeInt32BE(this._c,
8)
40903 H.writeInt32BE(this._d,
12)
40904 H.writeInt32BE(this._e,
16)
40905 H.writeInt32BE(this._f,
20)
40906 H.writeInt32BE(this._g,
24)
40907 H.writeInt32BE(this._h,
28)
40912 module.exports = Sha256
40914 }).call(this,require(
"buffer").Buffer)
40915 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40916 (function (Buffer){
40917 var inherits = require('inherits')
40918 var SHA512 = require('./sha512')
40919 var Hash = require('./hash')
40921 var W = new Array(
160)
40923 function Sha384 () {
40927 Hash.call(this,
128,
112)
40930 inherits(Sha384, SHA512)
40932 Sha384.prototype.init = function () {
40933 this._ah =
0xcbbb9d5d
40934 this._bh =
0x629a292a
40935 this._ch =
0x9159015a
40936 this._dh =
0x152fecd8
40937 this._eh =
0x67332667
40938 this._fh =
0x8eb44a87
40939 this._gh =
0xdb0c2e0d
40940 this._hh =
0x47b5481d
40942 this._al =
0xc1059ed8
40943 this._bl =
0x367cd507
40944 this._cl =
0x3070dd17
40945 this._dl =
0xf70e5939
40946 this._el =
0xffc00b31
40947 this._fl =
0x68581511
40948 this._gl =
0x64f98fa7
40949 this._hl =
0xbefa4fa4
40954 Sha384.prototype._hash = function () {
40955 var H = new Buffer(
48)
40957 function writeInt64BE (h, l, offset) {
40958 H.writeInt32BE(h, offset)
40959 H.writeInt32BE(l, offset +
4)
40962 writeInt64BE(this._ah, this._al,
0)
40963 writeInt64BE(this._bh, this._bl,
8)
40964 writeInt64BE(this._ch, this._cl,
16)
40965 writeInt64BE(this._dh, this._dl,
24)
40966 writeInt64BE(this._eh, this._el,
32)
40967 writeInt64BE(this._fh, this._fl,
40)
40972 module.exports = Sha384
40974 }).call(this,require(
"buffer").Buffer)
40975 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40976 (function (Buffer){
40977 var inherits = require('inherits')
40978 var Hash = require('./hash')
40981 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40982 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40983 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40984 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40985 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40986 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40987 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40988 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40989 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40990 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40991 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40992 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40993 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40994 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40995 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40996 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40997 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40998 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40999 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
41000 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41001 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
41002 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41003 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
41004 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41005 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
41006 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41007 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
41008 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41009 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
41010 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41011 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
41012 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41013 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
41014 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41015 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
41016 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41017 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
41018 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41019 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
41020 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
41023 var W = new Array(
160)
41025 function Sha512 () {
41029 Hash.call(this,
128,
112)
41032 inherits(Sha512, Hash)
41034 Sha512.prototype.init = function () {
41035 this._ah =
0x6a09e667
41036 this._bh =
0xbb67ae85
41037 this._ch =
0x3c6ef372
41038 this._dh =
0xa54ff53a
41039 this._eh =
0x510e527f
41040 this._fh =
0x9b05688c
41041 this._gh =
0x1f83d9ab
41042 this._hh =
0x5be0cd19
41044 this._al =
0xf3bcc908
41045 this._bl =
0x84caa73b
41046 this._cl =
0xfe94f82b
41047 this._dl =
0x5f1d36f1
41048 this._el =
0xade682d1
41049 this._fl =
0x2b3e6c1f
41050 this._gl =
0xfb41bd6b
41051 this._hl =
0x137e2179
41056 function Ch (x, y, z) {
41057 return z ^ (x & (y ^ z))
41060 function maj (x, y, z) {
41061 return (x & y) | (z & (x | y))
41064 function sigma0 (x, xl) {
41065 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
41068 function sigma1 (x, xl) {
41069 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
41072 function Gamma0 (x, xl) {
41073 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
41076 function Gamma0l (x, xl) {
41077 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
41080 function Gamma1 (x, xl) {
41081 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
41084 function Gamma1l (x, xl) {
41085 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
41088 function getCarry (a, b) {
41089 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
41092 Sha512.prototype._update = function (M) {
41095 var ah = this._ah |
0
41096 var bh = this._bh |
0
41097 var ch = this._ch |
0
41098 var dh = this._dh |
0
41099 var eh = this._eh |
0
41100 var fh = this._fh |
0
41101 var gh = this._gh |
0
41102 var hh = this._hh |
0
41104 var al = this._al |
0
41105 var bl = this._bl |
0
41106 var cl = this._cl |
0
41107 var dl = this._dl |
0
41108 var el = this._el |
0
41109 var fl = this._fl |
0
41110 var gl = this._gl |
0
41111 var hl = this._hl |
0
41113 for (var i =
0; i <
32; i +=
2) {
41114 W[i] = M.readInt32BE(i *
4)
41115 W[i +
1] = M.readInt32BE(i *
4 +
4)
41117 for (; i <
160; i +=
2) {
41118 var xh = W[i -
15 *
2]
41119 var xl = W[i -
15 *
2 +
1]
41120 var gamma0 = Gamma0(xh, xl)
41121 var gamma0l = Gamma0l(xl, xh)
41124 xl = W[i -
2 *
2 +
1]
41125 var gamma1 = Gamma1(xh, xl)
41126 var gamma1l = Gamma1l(xl, xh)
41128 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41129 var Wi7h = W[i -
7 *
2]
41130 var Wi7l = W[i -
7 *
2 +
1]
41132 var Wi16h = W[i -
16 *
2]
41133 var Wi16l = W[i -
16 *
2 +
1]
41135 var Wil = (gamma0l + Wi7l) |
0
41136 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41137 Wil = (Wil + gamma1l) |
0
41138 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41139 Wil = (Wil + Wi16l) |
0
41140 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41146 for (var j =
0; j <
160; j +=
2) {
41150 var majh = maj(ah, bh, ch)
41151 var majl = maj(al, bl, cl)
41153 var sigma0h = sigma0(ah, al)
41154 var sigma0l = sigma0(al, ah)
41155 var sigma1h = sigma1(eh, el)
41156 var sigma1l = sigma1(el, eh)
41158 // t1 = h + sigma1 + ch + K[j] + W[j]
41162 var chh = Ch(eh, fh, gh)
41163 var chl = Ch(el, fl, gl)
41165 var t1l = (hl + sigma1l) |
0
41166 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41167 t1l = (t1l + chl) |
0
41168 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41169 t1l = (t1l + Kil) |
0
41170 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41171 t1l = (t1l + Wil) |
0
41172 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41174 // t2 = sigma0 + maj
41175 var t2l = (sigma0l + majl) |
0
41176 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41184 el = (dl + t1l) |
0
41185 eh = (dh + t1h + getCarry(el, dl)) |
0
41192 al = (t1l + t2l) |
0
41193 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41196 this._al = (this._al + al) |
0
41197 this._bl = (this._bl + bl) |
0
41198 this._cl = (this._cl + cl) |
0
41199 this._dl = (this._dl + dl) |
0
41200 this._el = (this._el + el) |
0
41201 this._fl = (this._fl + fl) |
0
41202 this._gl = (this._gl + gl) |
0
41203 this._hl = (this._hl + hl) |
0
41205 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41206 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41207 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41208 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41209 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41210 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41211 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41212 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41215 Sha512.prototype._hash = function () {
41216 var H = new Buffer(
64)
41218 function writeInt64BE (h, l, offset) {
41219 H.writeInt32BE(h, offset)
41220 H.writeInt32BE(l, offset +
4)
41223 writeInt64BE(this._ah, this._al,
0)
41224 writeInt64BE(this._bh, this._bl,
8)
41225 writeInt64BE(this._ch, this._cl,
16)
41226 writeInt64BE(this._dh, this._dl,
24)
41227 writeInt64BE(this._eh, this._el,
32)
41228 writeInt64BE(this._fh, this._fl,
40)
41229 writeInt64BE(this._gh, this._gl,
48)
41230 writeInt64BE(this._hh, this._hl,
56)
41235 module.exports = Sha512
41237 }).call(this,require(
"buffer").Buffer)
41238 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41239 var isHexPrefixed = require('is-hex-prefixed');
41242 * Removes '
0x' from a given `String` is present
41243 * @param {String} str the string value
41244 * @return {String|Optional} a string by pass if necessary
41246 module.exports = function stripHexPrefix(str) {
41247 if (typeof str !== 'string') {
41251 return isHexPrefixed(str) ? str.slice(
2) : str;
41254 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41256 <script>function convertRippleAdrr(address) {
41257 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41258 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41262 function convertRipplePriv(priv) {
41263 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41267 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41271 /** @fileOverview Javascript cryptography implementation.
41273 * Crush to remove comments, shorten variable names and
41274 * generally reduce transmission size.
41276 * @author Emily Stark
41277 * @author Mike Hamburg
41278 * @author Dan Boneh
41282 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41283 /*global document, window, escape, unescape, module, require, Uint32Array */
41285 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41287 /** @namespace Symmetric ciphers. */
41290 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41293 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41296 /** @namespace Block cipher modes of operation. */
41299 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41303 * @namespace Bit array encoders and decoders.
41306 * The members of this namespace are functions which translate between
41307 * SJCL's bitArrays and other objects (usually strings). Because it
41308 * isn't always clear which direction is encoding and which is decoding,
41309 * the method names are "fromBits" and "toBits".
41313 /** @namespace Exceptions. */
41315 /** @constructor Ciphertext is corrupt. */
41316 corrupt: function(message) {
41317 this.toString = function() { return "CORRUPT: "+this.message; };
41318 this.message = message;
41321 /** @constructor Invalid parameter. */
41322 invalid: function(message) {
41323 this.toString = function() { return "INVALID: "+this.message; };
41324 this.message = message;
41327 /** @constructor Bug or missing feature in SJCL. @constructor */
41328 bug: function(message) {
41329 this.toString = function() { return "BUG: "+this.message; };
41330 this.message = message;
41333 /** @constructor Something isn't ready. */
41334 notReady: function(message) {
41335 this.toString = function() { return "NOT READY: "+this.message; };
41336 this.message = message;
41341 if(typeof module !== 'undefined' && module.exports){
41342 module.exports = sjcl;
41344 if (typeof define === "function") {
41345 define([], function () {
41353 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41355 * @author Emily Stark
41356 * @author Mike Hamburg
41357 * @author Dan Boneh
41360 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41364 * These objects are the currency accepted by SJCL's crypto functions.
41368 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41369 * but many of them can take arguments that are not a multiple of
4 bytes.
41370 * This library encodes arrays of bits (whose size need not be a multiple of
8
41371 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41372 * array of words,
32 bits at a time. Since the words are double-precision
41373 * floating point numbers, they fit some extra data. We use this (in a private,
41374 * possibly-changing manner) to encode the number of bits actually present
41375 * in the last word of the array.
41379 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41380 * to ciphers like AES which want arrays of words.
41385 * Array slices in units of bits.
41386 * @param {bitArray} a The array to slice.
41387 * @param {Number} bstart The offset to the start of the slice, in bits.
41388 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41389 * slice until the end of the array.
41390 * @return {bitArray} The requested slice.
41392 bitSlice: function (a, bstart, bend) {
41393 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41394 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41398 * Extract a number packed into a bit array.
41399 * @param {bitArray} a The array to slice.
41400 * @param {Number} bstart The offset to the start of the slice, in bits.
41401 * @param {Number} length The length of the number to extract.
41402 * @return {Number} The requested slice.
41404 extract: function(a, bstart, blength) {
41405 // FIXME: this Math.floor is not necessary at all, but for some reason
41406 // seems to suppress a bug in the Chromium JIT.
41407 var x, sh = Math.floor((-bstart-blength) &
31);
41408 if ((bstart + blength -
1 ^ bstart) & -
32) {
41409 // it crosses a boundary
41410 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41412 // within a single word
41413 x = a[bstart/
32|
0]
>>> sh;
41415 return x & ((
1<
<blength) -
1);
41419 * Concatenate two bit arrays.
41420 * @param {bitArray} a1 The first array.
41421 * @param {bitArray} a2 The second array.
41422 * @return {bitArray} The concatenation of a1 and a2.
41424 concat: function (a1, a2) {
41425 if (a1.length ===
0 || a2.length ===
0) {
41426 return a1.concat(a2);
41429 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41430 if (shift ===
32) {
41431 return a1.concat(a2);
41433 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41438 * Find the length of an array of bits.
41439 * @param {bitArray} a The array.
41440 * @return {Number} The length of a, in bits.
41442 bitLength: function (a) {
41443 var l = a.length, x;
41444 if (l ===
0) { return
0; }
41446 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41450 * Truncate an array.
41451 * @param {bitArray} a The array.
41452 * @param {Number} len The length to truncate to, in bits.
41453 * @return {bitArray} A new array, truncated to len bits.
41455 clamp: function (a, len) {
41456 if (a.length *
32 < len) { return a; }
41457 a = a.slice(
0, Math.ceil(len /
32));
41460 if (l
> 0 && len) {
41461 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41467 * Make a partial word for a bit array.
41468 * @param {Number} len The number of bits in the word.
41469 * @param {Number} x The bits.
41470 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41471 * @return {Number} The partial word.
41473 partial: function (len, x, _end) {
41474 if (len ===
32) { return x; }
41475 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41479 * Get the number of bits used by a partial word.
41480 * @param {Number} x The partial word.
41481 * @return {Number} The number of bits used by the partial word.
41483 getPartial: function (x) {
41484 return Math.round(x/
0x10000000000) ||
32;
41488 * Compare two arrays for equality in a predictable amount of time.
41489 * @param {bitArray} a The first array.
41490 * @param {bitArray} b The second array.
41491 * @return {boolean} true if a == b; false otherwise.
41493 equal: function (a, b) {
41494 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41498 for (i=
0; i
<a.length; i++) {
41504 /** Shift an array right.
41505 * @param {bitArray} a The array to shift.
41506 * @param {Number} shift The number of bits to shift.
41507 * @param {Number} [carry=
0] A byte to carry in
41508 * @param {bitArray} [out=[]] An array to prepend to the output.
41511 _shiftRight: function (a, shift, carry, out) {
41512 var i, last2=
0, shift2;
41513 if (out === undefined) { out = []; }
41515 for (; shift
>=
32; shift -=
32) {
41520 return out.concat(a);
41523 for (i=
0; i
<a.length; i++) {
41524 out.push(carry | a[i]
>>>shift);
41525 carry = a[i] << (
32-shift);
41527 last2 = a.length ? a[a.length-
1] :
0;
41528 shift2 = sjcl.bitArray.getPartial(last2);
41529 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41533 /** xor a block of
4 words together.
41536 _xor4: function(x,y) {
41537 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41540 /** byteswap a word array inplace.
41541 * (does not handle partial words)
41542 * @param {sjcl.bitArray} a word array
41543 * @return {sjcl.bitArray} byteswapped array
41545 byteswapM: function(a) {
41546 var i, v, m =
0xff00;
41547 for (i =
0; i < a.length; ++i) {
41549 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41556 //// codecString.js
41558 /** @fileOverview Bit array codec implementations.
41560 * @author Emily Stark
41561 * @author Mike Hamburg
41562 * @author Dan Boneh
41565 /** @namespace UTF-
8 strings */
41566 sjcl.codec.utf8String = {
41567 /** Convert from a bitArray to a UTF-
8 string. */
41568 fromBits: function (arr) {
41569 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41570 for (i=
0; i
<bl/
8; i++) {
41574 out += String.fromCharCode(tmp
>>> 24);
41577 return decodeURIComponent(escape(out));
41580 /** Convert from a UTF-
8 string to a bitArray. */
41581 toBits: function (str) {
41582 str = unescape(encodeURIComponent(str));
41583 var out = [], i, tmp=
0;
41584 for (i=
0; i
<str.length; i++) {
41585 tmp = tmp <<
8 | str.charCodeAt(i);
41592 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41601 /** @fileOverview Bit array codec implementations.
41603 * @author Emily Stark
41604 * @author Mike Hamburg
41605 * @author Dan Boneh
41608 /** @namespace Hexadecimal */
41610 /** Convert from a bitArray to a hex string. */
41611 fromBits: function (arr) {
41613 for (i=
0; i
<arr.length; i++) {
41614 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41616 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41618 /** Convert from a hex string to a bitArray. */
41619 toBits: function (str) {
41620 var i, out=[], len;
41621 str = str.replace(/\s|
0x/g,
"");
41623 str = str +
"00000000";
41624 for (i=
0; i
<str.length; i+=
8) {
41625 out.push(parseInt(str.substr(i,
8),
16)^
0);
41627 return sjcl.bitArray.clamp(out, len*
4);
41634 /** @fileOverview Javascript SHA-
512 implementation.
41636 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41637 * SJCL by Stefan Thomas.
41639 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41640 * Released with New BSD License
41642 * @author Emily Stark
41643 * @author Mike Hamburg
41644 * @author Dan Boneh
41645 * @author Jeff Mott
41646 * @author Stefan Thomas
41650 * Context for a SHA-
512 operation in progress.
41652 * @class Secure Hash Algorithm,
512 bits.
41654 sjcl.hash.sha512 = function (hash) {
41655 if (!this._key[
0]) { this._precompute(); }
41657 this._h = hash._h.slice(
0);
41658 this._buffer = hash._buffer.slice(
0);
41659 this._length = hash._length;
41666 * Hash a string or an array of words.
41668 * @param {bitArray|String} data the data to hash.
41669 * @return {bitArray} The hash value, an array of
16 big-endian words.
41671 sjcl.hash.sha512.hash = function (data) {
41672 return (new sjcl.hash.sha512()).update(data).finalize();
41675 sjcl.hash.sha512.prototype = {
41677 * The hash's block size, in bits.
41683 * Reset the hash state.
41686 reset:function () {
41687 this._h = this._init.slice(
0);
41694 * Input several words to the hash.
41695 * @param {bitArray|String} data the data to hash.
41698 update: function (data) {
41699 if (typeof data ===
"string") {
41700 data = sjcl.codec.utf8String.toBits(data);
41702 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41704 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41705 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41706 this._block(b.splice(
0,
32));
41712 * Complete hashing and output the hash value.
41713 * @return {bitArray} The hash value, an array of
16 big-endian words.
41715 finalize:function () {
41716 var i, b = this._buffer, h = this._h;
41718 // Round out and push the buffer
41719 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41721 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41722 for (i = b.length +
4; i &
31; i++) {
41726 // append the length
41729 b.push(Math.floor(this._length /
0x100000000));
41730 b.push(this._length |
0);
41733 this._block(b.splice(
0,
32));
41741 * The SHA-
512 initialization vector, to be precomputed.
41747 * Least significant
24 bits of SHA512 initialization values.
41749 * Javascript only has
53 bits of precision, so we compute the
40 most
41750 * significant bits and add the remaining
24 bits as constants.
41754 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41758 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41759 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41763 * The SHA-
512 hash key, to be precomputed.
41769 * Least significant
24 bits of SHA512 key values.
41773 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41774 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41775 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41776 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41777 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41778 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41779 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41780 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41781 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41782 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41786 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41787 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41788 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41789 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41790 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41791 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41792 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41793 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41794 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41795 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41796 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41797 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41798 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41799 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41800 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41801 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41802 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41803 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41804 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41805 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41809 * Function to precompute _init and _key.
41812 _precompute: function () {
41813 // XXX: This code is for precomputing the SHA256 constants, change for
41814 // SHA512 and re-enable.
41815 var i =
0, prime =
2, factor;
41817 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41818 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41820 outer: for (; i
<80; prime++) {
41821 for (factor=
2; factor*factor <= prime; factor++) {
41822 if (prime % factor ===
0) {
41829 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41830 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41832 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41833 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41839 * Perform one cycle of SHA-
512.
41840 * @param {bitArray} words one block of words.
41843 _block:function (words) {
41845 w = words.slice(
0),
41848 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41849 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41850 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41851 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41853 // Working variables
41854 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41855 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41856 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41857 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41859 for (i=
0; i
<80; i++) {
41860 // load up the input word for this round
41863 wrl = w[i *
2 +
1];
41866 var gamma0xh = w[(i-
15) *
2];
41867 var gamma0xl = w[(i-
15) *
2 +
1];
41869 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41870 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41873 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41874 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41875 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41878 var gamma1xh = w[(i-
2) *
2];
41879 var gamma1xl = w[(i-
2) *
2 +
1];
41881 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41882 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41885 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41886 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41887 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41890 var wr7h = w[(i-
7) *
2];
41891 var wr7l = w[(i-
7) *
2 +
1];
41893 var wr16h = w[(i-
16) *
2];
41894 var wr16l = w[(i-
16) *
2 +
1];
41896 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41897 wrl = gamma0l + wr7l;
41898 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41900 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41902 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41906 w[i*
2 +
1] = wrl |=
0;
41909 var chh = (eh & fh) ^ (~eh & gh);
41910 var chl = (el & fl) ^ (~el & gl);
41913 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41914 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41917 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41918 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41921 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41922 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41926 var krl = k[i*
2+
1];
41928 // t1 = h + sigma1 + ch + K(round) + W(round)
41929 var t1l = hl + sigma1l;
41930 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41932 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41934 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41935 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41936 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41938 // t2 = sigma0 + maj
41939 var t2l = sigma0l + majl;
41940 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41942 // Update working variables
41949 el = (dl + t1l) |
0;
41950 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41957 al = (t1l + t2l) |
0;
41958 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41961 // Intermediate hash
41962 h0l = h[
1] = (h0l + al) |
0;
41963 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41964 h1l = h[
3] = (h1l + bl) |
0;
41965 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41966 h2l = h[
5] = (h2l + cl) |
0;
41967 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41968 h3l = h[
7] = (h3l + dl) |
0;
41969 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41970 h4l = h[
9] = (h4l + el) |
0;
41971 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41972 h5l = h[
11] = (h5l + fl) |
0;
41973 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41974 h6l = h[
13] = (h6l + gl) |
0;
41975 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41976 h7l = h[
15] = (h7l + hl) |
0;
41977 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41984 /** @fileOverview HMAC implementation.
41986 * @author Emily Stark
41987 * @author Mike Hamburg
41988 * @author Dan Boneh
41991 /** HMAC with the specified hash function.
41993 * @param {bitArray} key the key for HMAC.
41994 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41996 sjcl.misc.hmac = function (key, Hash) {
41997 this._hash = Hash = Hash || sjcl.hash.sha256;
41998 var exKey = [[],[]], i,
41999 bs = Hash.prototype.blockSize /
32;
42000 this._baseHash = [new Hash(), new Hash()];
42002 if (key.length
> bs) {
42003 key = Hash.hash(key);
42006 for (i=
0; i
<bs; i++) {
42007 exKey[
0][i] = key[i]^
0x36363636;
42008 exKey[
1][i] = key[i]^
0x5C5C5C5C;
42011 this._baseHash[
0].update(exKey[
0]);
42012 this._baseHash[
1].update(exKey[
1]);
42013 this._resultHash = new Hash(this._baseHash[
0]);
42016 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
42017 * @param {bitArray|String} data The data to mac.
42019 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
42020 if (!this._updated) {
42022 return this.digest(data);
42024 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
42028 sjcl.misc.hmac.prototype.reset = function () {
42029 this._resultHash = new this._hash(this._baseHash[
0]);
42030 this._updated = false;
42033 sjcl.misc.hmac.prototype.update = function (data) {
42034 this._updated = true;
42035 this._resultHash.update(data);
42038 sjcl.misc.hmac.prototype.digest = function () {
42039 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
42050 /** @fileOverview Password-based key-derivation function, version
2.0.
42052 * @author Emily Stark
42053 * @author Mike Hamburg
42054 * @author Dan Boneh
42057 /** Password-Based Key-Derivation Function, version
2.0.
42059 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
42061 * This is the method specified by RSA's PKCS #
5 standard.
42063 * @param {bitArray|String} password The password.
42064 * @param {bitArray|String} salt The salt. Should have lots of entropy.
42065 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
42066 * @param {Number} [length] The length of the derived key. Defaults to the
42067 output size of the hash function.
42068 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
42069 * @return {bitArray} the derived key.
42071 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
42072 count = count ||
1000;
42074 if (length <
0 || count <
0) {
42075 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
42078 if (typeof password ===
"string") {
42079 password = sjcl.codec.utf8String.toBits(password);
42082 if (typeof salt ===
"string") {
42083 salt = sjcl.codec.utf8String.toBits(salt);
42086 Prff = Prff || sjcl.misc.hmac;
42088 var prf = new Prff(password),
42089 u, ui, i, j, k, out = [], b = sjcl.bitArray;
42091 for (k =
1;
32 * out.length < (length ||
1); k++) {
42092 u = ui = prf.encrypt(b.concat(salt,[k]));
42094 for (i=
1; i
<count; i++) {
42095 ui = prf.encrypt(ui);
42096 for (j=
0; j
<ui.length; j++) {
42101 out = out.concat(u);
42104 if (length) { out = b.clamp(out, length); }
42112 /** @fileOverview Javascript SHA-
256 implementation.
42114 * An older version of this implementation is available in the public
42115 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
42116 * Stanford University
2008-
2010 and BSD-licensed for liability
42119 * Special thanks to Aldo Cortesi for pointing out several bugs in
42122 * @author Emily Stark
42123 * @author Mike Hamburg
42124 * @author Dan Boneh
42128 * Context for a SHA-
256 operation in progress.
42130 * @class Secure Hash Algorithm,
256 bits.
42132 sjcl.hash.sha256 = function (hash) {
42133 if (!this._key[
0]) { this._precompute(); }
42135 this._h = hash._h.slice(
0);
42136 this._buffer = hash._buffer.slice(
0);
42137 this._length = hash._length;
42144 * Hash a string or an array of words.
42146 * @param {bitArray|String} data the data to hash.
42147 * @return {bitArray} The hash value, an array of
16 big-endian words.
42149 sjcl.hash.sha256.hash = function (data) {
42150 return (new sjcl.hash.sha256()).update(data).finalize();
42153 sjcl.hash.sha256.prototype = {
42155 * The hash's block size, in bits.
42161 * Reset the hash state.
42164 reset:function () {
42165 this._h = this._init.slice(
0);
42172 * Input several words to the hash.
42173 * @param {bitArray|String} data the data to hash.
42176 update: function (data) {
42177 if (typeof data ===
"string") {
42178 data = sjcl.codec.utf8String.toBits(data);
42180 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42182 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42183 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42184 this._block(b.splice(
0,
16));
42190 * Complete hashing and output the hash value.
42191 * @return {bitArray} The hash value, an array of
8 big-endian words.
42193 finalize:function () {
42194 var i, b = this._buffer, h = this._h;
42196 // Round out and push the buffer
42197 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42199 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42200 for (i = b.length +
2; i &
15; i++) {
42204 // append the length
42205 b.push(Math.floor(this._length /
0x100000000));
42206 b.push(this._length |
0);
42209 this._block(b.splice(
0,
16));
42217 * The SHA-
256 initialization vector, to be precomputed.
42222 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42226 * The SHA-
256 hash key, to be precomputed.
42232 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42233 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42234 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42235 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42236 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42237 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42238 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42239 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42244 * Function to precompute _init and _key.
42247 _precompute: function () {
42248 var i =
0, prime =
2, factor;
42250 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42252 outer: for (; i
<64; prime++) {
42253 for (factor=
2; factor*factor <= prime; factor++) {
42254 if (prime % factor ===
0) {
42261 this._init[i] = frac(Math.pow(prime,
1/
2));
42263 this._key[i] = frac(Math.pow(prime,
1/
3));
42269 * Perform one cycle of SHA-
256.
42270 * @param {bitArray} words one block of words.
42273 _block:function (words) {
42275 w = words.slice(
0),
42278 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42279 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42281 /* Rationale for placement of |
0 :
42282 * If a value can overflow is original
32 bits by a factor of more than a few
42283 * million (
2^
23 ish), there is a possibility that it might overflow the
42284 *
53-bit mantissa and lose precision.
42286 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42287 * propagates around the loop, and on the hash state h[]. I don't believe
42288 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42289 * (for h4 anyway), and better safe than sorry.
42291 * The clamps on h[] are necessary for the output to be correct even in the
42292 * common case and for short inputs.
42294 for (i=
0; i
<64; i++) {
42295 // load up the input word for this round
42299 a = w[(i+
1 ) &
15];
42300 b = w[(i+
14) &
15];
42301 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42302 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42303 w[i&
15] + w[(i+
9) &
15]) |
0;
42306 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42309 h7 = h6; h6 = h5; h5 = h4;
42311 h3 = h2; h2 = h1; h1 = h0;
42313 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42316 h[
0] = h[
0]+h0 |
0;
42317 h[
1] = h[
1]+h1 |
0;
42318 h[
2] = h[
2]+h2 |
0;
42319 h[
3] = h[
3]+h3 |
0;
42320 h[
4] = h[
4]+h4 |
0;
42321 h[
5] = h[
5]+h5 |
0;
42322 h[
6] = h[
6]+h6 |
0;
42323 h[
7] = h[
7]+h7 |
0;
42327 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42328 WORDLISTS["english"] = [
42329 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42330 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42331 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42332 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42333 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42334 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42335 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42336 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42337 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42338 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42339 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42340 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42341 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42342 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42343 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42344 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42345 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42346 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42347 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42348 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42349 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42350 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42351 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42352 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42353 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42354 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42355 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42356 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42357 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42358 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42359 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42360 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42361 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42362 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42363 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42364 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42365 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42366 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42367 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42368 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42369 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42370 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42371 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42372 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42373 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42374 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42375 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42376 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42377 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42378 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42379 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42380 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42381 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42382 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42383 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42384 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42385 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42386 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42387 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42388 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42389 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42390 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42391 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42392 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42393 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42394 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42395 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42396 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42397 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42398 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42399 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42400 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42401 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42402 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42403 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42404 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42405 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42406 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42407 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42408 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42409 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42410 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42411 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42412 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42413 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42414 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42415 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42416 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42417 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42418 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42419 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42420 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42421 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42422 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42423 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42424 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42425 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42426 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42427 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42428 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42429 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42430 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42431 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42432 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42433 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42434 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42435 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42436 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42437 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42438 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42439 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42440 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42441 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42442 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42443 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42444 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42445 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42446 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42447 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42448 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42449 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42450 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42451 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42452 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42453 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42454 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42455 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42456 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42457 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42458 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42459 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42460 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42461 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42462 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42463 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42464 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42465 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42466 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42467 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42468 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42469 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42470 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42471 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42472 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42473 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42474 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42475 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42476 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42477 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42478 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42479 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42480 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42481 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42482 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42483 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42484 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42485 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42486 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42487 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42488 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42489 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42490 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42491 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42492 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42493 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42494 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42495 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42496 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42497 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42498 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42499 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42500 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42501 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42502 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42503 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42504 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42505 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42506 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42507 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42508 "thank","that","theme","then","theory","there","they","thing","this","thought",
42509 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42510 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42511 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42512 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42513 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42514 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42515 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42516 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42517 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42518 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42519 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42520 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42521 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42522 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42523 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42524 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42525 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42526 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42527 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42528 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42529 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42530 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42531 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42532 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42533 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42535 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42536 WORDLISTS["japanese"] = [
42537 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42538 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42539 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42540 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42541 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42542 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42543 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42544 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42545 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42546 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42547 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42548 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42549 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42550 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42551 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42552 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42553 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42554 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42555 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42556 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42557 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42558 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42559 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42560 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42561 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42562 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42563 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42564 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42565 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42566 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42567 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42568 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42569 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42570 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42571 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42572 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42573 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42574 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42575 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42576 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42577 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42578 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42579 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42580 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42581 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42582 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42583 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42584 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42585 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42586 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42587 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42588 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42589 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42590 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42591 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42592 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42593 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42594 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42595 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42596 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42597 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42598 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42599 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42600 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42601 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42602 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42603 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42604 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42605 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42606 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42607 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42608 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42609 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42610 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42611 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42612 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42613 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42614 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42615 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42616 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42617 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42618 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42619 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42620 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42621 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42622 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42623 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42624 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42625 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42626 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42627 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42628 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42629 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42630 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42631 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42632 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42633 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42634 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42635 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42636 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42637 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42638 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42639 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42640 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42641 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42642 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42643 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42644 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42645 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42646 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42647 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42648 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42649 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42650 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42651 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42652 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42653 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42654 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42655 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42656 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42657 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42658 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42659 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42660 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42661 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42662 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42663 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42664 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42665 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42666 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42667 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42668 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42669 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42670 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42671 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42672 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42673 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42674 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42675 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42676 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42677 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42678 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42679 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42680 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42681 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42682 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42683 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42684 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42685 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42686 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42687 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42688 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42689 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42690 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42691 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42692 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42693 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42694 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42695 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42696 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42697 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42698 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42699 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42700 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42701 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42702 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42703 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42704 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42705 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42706 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42707 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42708 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42709 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42710 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42711 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42712 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42713 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42714 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42715 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42716 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42717 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42718 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42719 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42720 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42721 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42722 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42723 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42724 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42725 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42726 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42727 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42728 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42729 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42730 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42731 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42732 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42733 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42734 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42735 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42736 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42737 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42738 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42739 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42740 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42741 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42743 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42744 WORDLISTS["spanish"] = [
42745 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42746 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42747 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42748 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42749 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42750 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42751 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42752 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42753 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42754 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42755 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42756 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42757 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42758 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42759 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42760 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42761 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42762 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42763 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42764 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42765 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42766 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42767 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42768 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42769 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42770 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42771 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42772 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42773 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42774 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42775 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42776 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42777 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42778 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42779 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42780 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42781 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42782 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42783 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42784 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42785 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42786 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42787 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42788 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42789 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42790 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42791 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42792 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42793 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42794 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42795 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42796 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42797 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42798 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42799 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42800 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42801 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42802 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42803 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42804 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42805 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42806 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42807 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42808 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42809 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42810 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42811 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42812 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42813 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42814 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42815 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42816 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42817 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42818 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42819 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42820 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42821 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42822 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42823 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42824 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42825 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42826 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42827 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42828 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42829 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42830 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42831 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42832 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42833 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42834 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42835 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42836 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42837 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42838 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42839 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42840 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42841 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42842 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42843 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42844 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42845 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42846 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42847 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42848 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42849 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42850 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42851 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42852 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42853 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42854 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42855 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42856 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42857 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42858 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42859 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42860 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42861 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42862 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42863 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42864 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42865 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42866 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42867 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42868 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42869 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42870 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42871 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42872 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42873 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42874 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42875 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42876 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42877 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42878 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
42879 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
42880 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
42881 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
42882 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
42883 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
42884 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
42885 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
42886 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
42887 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
42888 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
42889 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
42890 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
42891 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
42892 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
42893 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
42894 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
42895 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
42896 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
42897 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
42898 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
42899 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
42900 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
42901 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
42902 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
42903 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
42904 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
42905 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
42906 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
42907 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
42908 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
42909 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
42910 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
42911 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
42912 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
42913 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
42914 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
42915 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
42916 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
42917 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
42918 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
42919 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
42920 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
42921 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
42922 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
42923 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
42924 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
42925 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
42926 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
42927 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
42928 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
42929 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
42930 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
42931 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
42932 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
42933 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
42934 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
42935 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
42936 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
42937 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
42938 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
42939 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
42940 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
42941 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
42942 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
42943 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
42944 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
42945 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
42946 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
42947 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
42948 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
42949 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
42951 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42952 WORDLISTS["chinese_simplified"] = [
42953 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
42954 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
42955 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
42956 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
42957 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
42958 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
42959 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
42960 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
42961 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
42962 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
42963 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
42964 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
42965 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
42966 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
42967 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
42968 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
42969 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
42970 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
42971 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
42972 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
42973 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
42974 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
42975 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
42976 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
42977 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
42978 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
42979 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
42980 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
42981 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
42982 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
42983 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
42984 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
42985 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
42986 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
42987 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
42988 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
42989 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
42990 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
42991 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
42992 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
42993 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
42994 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
42995 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
42996 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
42997 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
42998 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
42999 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
43000 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
43001 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
43002 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
43003 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
43004 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
43005 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
43006 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
43007 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
43008 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
43009 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
43010 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
43011 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
43012 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
43013 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
43014 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
43015 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
43016 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
43017 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
43018 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
43019 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
43020 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
43021 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
43022 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
43023 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
43024 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
43025 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
43026 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
43027 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
43028 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43029 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
43030 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
43031 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
43032 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
43033 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
43034 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
43035 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
43036 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
43037 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
43038 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
43039 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
43040 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
43041 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
43042 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
43043 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
43044 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
43045 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43046 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
43047 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
43048 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
43049 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
43050 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
43051 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
43052 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
43053 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
43054 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
43055 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
43056 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
43057 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
43058 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
43059 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
43060 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
43061 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43062 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43063 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
43064 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
43065 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
43066 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
43067 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
43068 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
43069 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
43070 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
43071 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
43072 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
43073 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
43074 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43075 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
43076 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
43077 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
43078 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
43079 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
43080 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
43081 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
43082 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
43083 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
43084 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
43085 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
43086 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
43087 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
43088 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
43089 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
43090 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
43091 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
43092 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
43093 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
43094 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
43095 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
43096 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
43097 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
43098 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
43099 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
43100 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
43101 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
43102 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
43103 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
43104 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
43105 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
43106 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
43107 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
43108 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
43109 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
43110 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
43111 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
43112 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
43113 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
43114 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
43115 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
43116 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
43117 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
43118 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
43119 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
43120 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
43121 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
43122 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
43123 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
43124 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
43125 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
43126 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
43127 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
43128 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
43129 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
43130 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
43131 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
43132 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
43133 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
43134 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
43135 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
43136 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
43137 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
43138 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
43139 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
43140 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
43141 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
43142 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
43143 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
43144 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
43145 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
43146 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
43147 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
43148 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
43149 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
43150 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
43151 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
43152 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43153 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43154 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43155 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43156 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43157 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43159 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43160 WORDLISTS["chinese_traditional"] = [
43161 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43162 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43163 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43164 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43165 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43166 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43167 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43168 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43169 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43170 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43171 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43172 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43173 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43174 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43175 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43176 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43177 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43178 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43179 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43180 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43181 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43182 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43183 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43184 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43185 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43186 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43187 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43188 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43189 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43190 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43191 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43192 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43193 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43194 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43195 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43196 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43197 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43198 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43199 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43200 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43201 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43202 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43203 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43204 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43205 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43206 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43207 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43208 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43209 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43210 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43211 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43212 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43213 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43214 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43215 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43216 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43217 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43218 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43219 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43220 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43221 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43222 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43223 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43224 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43225 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43226 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43227 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43228 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43229 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43230 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43231 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43232 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43233 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43234 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43235 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43236 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43237 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43238 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43239 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43240 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43241 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43242 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43243 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43244 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43245 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43246 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43247 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43248 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43249 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43250 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43251 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43252 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43253 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43254 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43255 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43256 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43257 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43258 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43259 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43260 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43261 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43262 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43263 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43264 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43265 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43266 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43267 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43268 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43269 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43270 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43271 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43272 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43273 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43274 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43275 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43276 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43277 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43278 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43279 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43280 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43281 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43282 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43283 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43284 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43285 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43286 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43287 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43288 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43289 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43290 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43291 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43292 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43293 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43294 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43295 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43296 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43297 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43298 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43299 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43300 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43301 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43302 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43303 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43304 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43305 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43306 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43307 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43308 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43309 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43310 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43311 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43312 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43313 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43314 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43315 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43316 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43317 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43318 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43319 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43320 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43321 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43322 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43323 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43324 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43325 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43326 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43327 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43328 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43329 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43330 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43331 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43332 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43333 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43334 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43335 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43336 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43337 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43338 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43339 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43340 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43341 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43342 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43343 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43344 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43345 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43346 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43347 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43348 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43349 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43350 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43351 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43352 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43353 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43354 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43355 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43356 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43357 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43358 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43359 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43360 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43361 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43362 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43363 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43364 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43365 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43367 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43368 WORDLISTS["french"] = [
43369 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43370 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43371 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43372 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43373 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43374 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43375 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43376 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43377 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43378 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43379 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43380 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43381 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43382 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43383 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43384 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43385 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43386 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43387 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43388 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43389 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43390 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43391 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43392 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43393 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43394 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43395 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43396 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43397 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43398 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43399 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43400 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43401 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43402 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43403 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43404 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43405 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43406 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43407 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43408 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43409 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43410 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43411 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43412 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43413 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43414 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43415 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43416 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43417 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43418 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43419 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43420 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43421 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43422 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43423 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43424 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43425 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43426 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43427 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43428 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43429 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43430 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43431 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43432 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43433 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43434 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43435 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43436 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43437 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43438 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43439 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43440 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43441 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43442 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43443 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43444 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43445 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43446 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43447 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43448 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43449 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43450 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43451 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43452 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43453 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43454 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43455 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43456 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43457 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43458 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43459 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43460 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43461 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43462 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43463 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43464 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43465 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43466 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43467 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43468 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43469 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43470 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43471 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43472 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43473 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43474 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43475 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43476 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43477 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43478 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43479 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43480 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43481 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43482 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43483 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43484 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43485 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43486 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43487 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43488 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43489 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43490 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43491 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43492 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43493 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43494 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43495 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43496 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43497 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43498 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43499 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43500 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43501 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43502 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43503 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43504 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43505 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43506 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43507 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43508 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43509 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43510 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43511 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43512 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43513 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43514 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43515 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43516 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43517 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43518 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43519 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43520 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43521 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43522 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43523 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43524 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43525 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43526 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43527 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43528 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43529 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43530 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43531 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43532 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43533 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43534 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43535 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43536 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43537 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43538 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43539 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43540 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43541 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43542 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43543 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43544 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43545 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43546 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43547 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43548 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43549 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43550 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43551 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43552 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43553 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43554 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43555 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43556 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43557 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43558 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43559 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43560 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43561 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43562 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43563 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43564 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43565 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43566 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43567 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43568 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43569 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43570 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43571 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43572 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43573 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43575 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43576 WORDLISTS["italian"] = [
43577 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43578 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43579 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43580 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43581 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43582 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43583 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43584 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43585 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43586 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43587 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43588 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43589 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43590 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43591 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43592 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43593 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43594 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43595 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43596 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43597 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43598 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43599 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43600 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43601 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43602 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43603 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43604 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43605 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43606 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43607 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43608 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43609 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43610 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43611 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43612 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43613 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43614 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43615 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43616 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43617 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43618 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43619 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43620 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43621 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43622 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43623 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43624 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43625 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43626 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43627 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43628 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43629 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43630 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43631 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43632 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43633 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43634 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43635 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43636 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43637 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43638 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43639 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43640 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43641 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43642 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43643 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43644 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43645 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43646 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43647 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43648 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43649 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43650 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43651 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43652 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43653 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43654 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43655 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43656 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43657 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43658 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43659 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43660 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43661 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43662 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43663 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43664 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43665 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43666 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43667 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43668 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43669 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43670 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43671 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43672 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43673 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43674 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43675 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43676 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43677 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43678 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43679 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43680 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43681 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43682 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43683 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43684 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43685 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43686 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43687 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43688 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43689 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43690 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43691 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43692 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43693 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43694 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43695 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43696 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43697 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43698 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43699 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43700 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43701 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43702 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43703 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43704 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43705 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43706 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43707 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43708 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43709 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43710 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43711 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43712 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43713 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43714 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43715 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43716 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43717 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43718 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43719 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43720 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43721 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43722 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43723 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43724 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43725 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43726 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43727 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43728 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43729 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43730 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43731 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43732 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43733 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43734 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43735 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43736 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43737 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43738 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43739 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43740 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43741 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43742 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43743 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43744 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43745 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43746 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43747 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43748 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43749 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43750 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43751 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43752 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43753 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43754 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43755 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43756 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43757 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43758 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43759 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43760 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43761 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43762 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43763 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43764 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43765 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43766 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43767 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43768 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43769 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43770 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43771 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43772 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43773 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43774 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43775 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43776 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43777 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43778 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43779 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43780 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43781 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43784 * Copyright (c)
2013 Pavol Rusnak
43786 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43787 * this software and associated documentation files (the "Software"), to deal in
43788 * the Software without restriction, including without limitation the rights to
43789 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43790 * of the Software, and to permit persons to whom the Software is furnished to do
43791 * so, subject to the following conditions:
43793 * The above copyright notice and this permission notice shall be included in all
43794 * copies or substantial portions of the Software.
43796 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43797 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43798 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43799 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43800 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43801 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43805 * Javascript port from python by Ian Coleman
43807 * Requires code from sjcl
43808 * https://github.com/bitwiseshiftleft/sjcl
43811 var Mnemonic = function(language) {
43813 var PBKDF2_ROUNDS =
2048;
43819 var hmacSHA512 = function(key) {
43820 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43821 this.encrypt = function() {
43822 return hasher.encrypt.apply(hasher, arguments);
43827 wordlist = WORDLISTS[language];
43828 if (wordlist.length != RADIX) {
43829 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43834 self.generate = function(strength) {
43835 strength = strength ||
128;
43836 var r = strength %
32;
43838 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43840 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43841 if (!hasStrongCrypto) {
43842 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43844 var buffer = new Uint8Array(strength /
8);
43845 var data = crypto.getRandomValues(buffer);
43846 return self.toMnemonic(data);
43849 self.toMnemonic = function(byteArray) {
43850 if (byteArray.length %
4 > 0) {
43851 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43854 //h = hashlib.sha256(data).hexdigest()
43855 var data = byteArrayToWordArray(byteArray);
43856 var hash = sjcl.hash.sha256.hash(data);
43857 var h = sjcl.codec.hex.fromBits(hash);
43859 // b is a binary string, eg '
00111010101100...'
43860 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43861 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43863 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43864 // c = bin(int(h,
16))[
2:].zfill(
256)
43865 // d = c[:len(data) *
8 /
32]
43866 var a = byteArrayToBinaryString(byteArray);
43867 var c = zfill(hexStringToBinaryString(h),
256);
43868 var d = c.substring(
0, byteArray.length *
8 /
32);
43869 // b = line1 + line2
43873 var blen = b.length /
11;
43874 for (var i=
0; i
<blen; i++) {
43875 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43876 result.push(wordlist[idx]);
43878 return self.joinWords(result);
43881 self.check = function(mnemonic) {
43882 var mnemonic = self.splitWords(mnemonic);
43883 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
43886 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
43888 for (var i=
0; i
<mnemonic.length; i++) {
43889 var word = mnemonic[i];
43890 var wordIndex = wordlist.indexOf(word);
43891 if (wordIndex == -
1) {
43894 var binaryIndex = zfill(wordIndex.toString(
2),
11);
43895 idx.push(binaryIndex);
43897 var b = idx.join('');
43899 //d = b[:l /
33 *
32]
43901 var d = b.substring(
0, l /
33 *
32);
43902 var h = b.substring(l - l /
33, l);
43903 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
43904 var nd = binaryStringToWordArray(d);
43905 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
43906 var ndHash = sjcl.hash.sha256.hash(nd);
43907 var ndHex = sjcl.codec.hex.fromBits(ndHash);
43908 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
43909 var nh = ndBstr.substring(
0,l/
33);
43913 self.toSeed = function(mnemonic, passphrase) {
43914 passphrase = passphrase || '';
43915 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
43916 var mnemonicNormalized = self.normalizeString(mnemonic);
43917 passphrase = self.normalizeString(passphrase)
43918 passphrase =
"mnemonic" + passphrase;
43919 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
43920 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
43921 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
43922 var hashHex = sjcl.codec.hex.fromBits(result);
43926 self.splitWords = function(mnemonic) {
43927 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
43930 self.joinWords = function(words) {
43931 // Set space correctly depending on the language
43932 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
43934 if (language ==
"japanese") {
43935 space =
"\u3000"; // ideographic space
43937 return words.join(space);
43940 self.normalizeString = function(str) {
43941 if (typeof str.normalize ==
"function") {
43942 return str.normalize(
"NFKD");
43945 // TODO decide how to handle this in the future.
43946 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
43951 function byteArrayToWordArray(data) {
43953 for (var i=
0; i
<data.length/
4; i++) {
43955 v += data[i*
4 +
0] <<
8 *
3;
43956 v += data[i*
4 +
1] <<
8 *
2;
43957 v += data[i*
4 +
2] <<
8 *
1;
43958 v += data[i*
4 +
3] <<
8 *
0;
43964 function byteArrayToBinaryString(data) {
43966 for (var i=
0; i
<data.length; i++) {
43967 bin += zfill(data[i].toString(
2),
8);
43972 function hexStringToBinaryString(hexString) {
43974 for (var i=
0; i
<hexString.length; i++) {
43975 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
43977 return binaryString;
43980 function binaryStringToWordArray(binary) {
43981 var aLen = binary.length /
32;
43983 for (var i=
0; i
<aLen; i++) {
43984 var valueStr = binary.substring(
0,
32);
43985 var value = parseInt(valueStr,
2);
43987 binary = binary.slice(
32);
43992 // Pad a numeric string on the left with zero digits until the given width
43994 // Note this differs to the python implementation because it does not
43995 // handle numbers starting with a sign.
43996 function zfill(source, length) {
43997 source = source.toString();
43998 while (source.length < length) {
43999 source = '
0' + source;
44009 JavaScript BigInteger library version
0.9.1
44010 http://silentmatt.com/biginteger/
44012 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44013 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44014 Licensed under the MIT license.
44016 Support for arbitrary internal representation base was added by
44021 File: biginteger.js
44027 (function(exports) {
44031 An arbitrarily-large integer.
44033 <BigInteger> objects should be considered immutable. None of the "built-in"
44034 methods modify *this* or their arguments. All properties should be
44035 considered private.
44037 All the methods of
<BigInteger> instances can be called "statically". The
44038 static versions are convenient if you don't already have a
<BigInteger>
44041 As an example, these calls are equivalent.
44043 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44044 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44047 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44050 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44053 Constructor: BigInteger()
44054 Convert a value to a
<BigInteger>.
44056 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44057 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44058 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44059 without a radix argument.
44061 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44062 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44063 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44064 > var n3 = BigInteger(n2); // Return n2, unchanged
44066 The constructor form only takes an array and a sign. *n* must be an
44067 array of numbers in little-endian order, where each digit is between
0
44068 and BigInteger.base. The second parameter sets the sign: -
1 for
44069 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44070 may be modified*. If the array contains only zeros, the sign parameter
44071 is ignored and is forced to zero.
44073 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44077 n - Value to convert to a
<BigInteger>.
44081 A
<BigInteger> value.
44085 <parse>,
<BigInteger>
44087 function BigInteger(n, s, token) {
44088 if (token !== CONSTRUCT) {
44089 if (n instanceof BigInteger) {
44092 else if (typeof n === "undefined") {
44095 return BigInteger.parse(n);
44098 n = n || []; // Provide the nullary constructor for subclasses.
44099 while (n.length && !n[n.length -
1]) {
44103 this._s = n.length ? (s ||
1) :
0;
44106 BigInteger._construct = function(n, s) {
44107 return new BigInteger(n, s, CONSTRUCT);
44110 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44111 // require base to be a power of
10.
10^
7 is the largest such power
44112 // that won't cause a precision loss when digits are multiplied.
44113 var BigInteger_base =
10000000;
44114 var BigInteger_base_log10 =
7;
44116 BigInteger.base = BigInteger_base;
44117 BigInteger.base_log10 = BigInteger_base_log10;
44119 var ZERO = new BigInteger([],
0, CONSTRUCT);
44122 BigInteger.ZERO = ZERO;
44124 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44127 BigInteger.ONE = ONE;
44129 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44131 //
<BigInteger> -
1.
44132 BigInteger.M_ONE = M_ONE;
44135 // Shortcut for
<ZERO>.
44136 BigInteger._0 = ZERO;
44139 // Shortcut for
<ONE>.
44140 BigInteger._1 = ONE;
44144 Array of
<BigIntegers> from
0 to
36.
44146 These are used internally for parsing, but useful when you need a "small"
44151 <ZERO>,
<ONE>,
<_0>,
<_1>
44153 BigInteger.small = [
44156 /* Assuming BigInteger_base
> 36 */
44157 new BigInteger( [
2],
1, CONSTRUCT),
44158 new BigInteger( [
3],
1, CONSTRUCT),
44159 new BigInteger( [
4],
1, CONSTRUCT),
44160 new BigInteger( [
5],
1, CONSTRUCT),
44161 new BigInteger( [
6],
1, CONSTRUCT),
44162 new BigInteger( [
7],
1, CONSTRUCT),
44163 new BigInteger( [
8],
1, CONSTRUCT),
44164 new BigInteger( [
9],
1, CONSTRUCT),
44165 new BigInteger([
10],
1, CONSTRUCT),
44166 new BigInteger([
11],
1, CONSTRUCT),
44167 new BigInteger([
12],
1, CONSTRUCT),
44168 new BigInteger([
13],
1, CONSTRUCT),
44169 new BigInteger([
14],
1, CONSTRUCT),
44170 new BigInteger([
15],
1, CONSTRUCT),
44171 new BigInteger([
16],
1, CONSTRUCT),
44172 new BigInteger([
17],
1, CONSTRUCT),
44173 new BigInteger([
18],
1, CONSTRUCT),
44174 new BigInteger([
19],
1, CONSTRUCT),
44175 new BigInteger([
20],
1, CONSTRUCT),
44176 new BigInteger([
21],
1, CONSTRUCT),
44177 new BigInteger([
22],
1, CONSTRUCT),
44178 new BigInteger([
23],
1, CONSTRUCT),
44179 new BigInteger([
24],
1, CONSTRUCT),
44180 new BigInteger([
25],
1, CONSTRUCT),
44181 new BigInteger([
26],
1, CONSTRUCT),
44182 new BigInteger([
27],
1, CONSTRUCT),
44183 new BigInteger([
28],
1, CONSTRUCT),
44184 new BigInteger([
29],
1, CONSTRUCT),
44185 new BigInteger([
30],
1, CONSTRUCT),
44186 new BigInteger([
31],
1, CONSTRUCT),
44187 new BigInteger([
32],
1, CONSTRUCT),
44188 new BigInteger([
33],
1, CONSTRUCT),
44189 new BigInteger([
34],
1, CONSTRUCT),
44190 new BigInteger([
35],
1, CONSTRUCT),
44191 new BigInteger([
36],
1, CONSTRUCT)
44194 // Used for parsing/radix conversion
44195 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44199 Convert a
<BigInteger> to a string.
44201 When *base* is greater than
10, letters are upper case.
44205 base - Optional base to represent the number in (default is base
10).
44206 Must be between
2 and
36 inclusive, or an Error will be thrown.
44210 The string representation of the
<BigInteger>.
44212 BigInteger.prototype.toString = function(base) {
44213 base = +base ||
10;
44214 if (base <
2 || base
> 36) {
44215 throw new Error(
"illegal radix " + base +
".");
44217 if (this._s ===
0) {
44221 var str = this._s <
0 ?
"-" :
"";
44222 str += this._d[this._d.length -
1].toString();
44223 for (var i = this._d.length -
2; i
>=
0; i--) {
44224 var group = this._d[i].toString();
44225 while (group.length < BigInteger_base_log10) group = '
0' + group;
44231 var numerals = BigInteger.digits;
44232 base = BigInteger.small[base];
44233 var sign = this._s;
44235 var n = this.abs();
44239 while (n._s !==
0) {
44240 var divmod = n.divRem(base);
44243 // TODO: This could be changed to unshift instead of reversing at the end.
44244 // Benchmark both to compare speeds.
44245 digits.push(numerals[digit.valueOf()]);
44247 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44251 // Verify strings for parsing
44252 BigInteger.radixRegex = [
44294 Parse a string into a
<BigInteger>.
44296 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44297 *base* is not provided, it will be guessed based on the leading characters
44300 - "
0x" or "
0X": *base* =
16
44301 - "
0c" or "
0C": *base* =
8
44302 - "
0b" or "
0B": *base* =
2
44303 - else: *base* =
10
44305 If no base is provided, or *base* is
10, the number can be in exponential
44306 form. For example, these are all valid:
44308 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44309 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44310 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44312 If any characters fall outside the range defined by the radix, an exception
44317 s - The string to parse.
44318 base - Optional radix (default is to guess based on *s*).
44322 a
<BigInteger> instance.
44324 BigInteger.parse = function(s, base) {
44325 // Expands a number in exponential form to decimal form.
44326 // expandExponential("-
13.441*
10^
5") === "
1344100";
44327 // expandExponential("
1.12300e-1") === "
0.112300";
44328 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44329 function expandExponential(str) {
44330 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44332 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44335 var i = n.length + c;
44336 x = (l ? n : f).length;
44337 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44338 var z = (new Array(c +
1)).join("
0");
44340 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44345 if (typeof base === "undefined" || +base ===
10) {
44346 s = expandExponential(s);
44350 if (typeof base === "undefined") {
44351 prefixRE = '
0[xcb]';
44353 else if (base ==
16) {
44356 else if (base ==
8) {
44359 else if (base ==
2) {
44365 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44367 var sign = parts[
1] || "+";
44368 var baseSection = parts[
2] || "";
44369 var digits = parts[
3] || "";
44371 if (typeof base === "undefined") {
44373 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44376 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44379 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44386 else if (base <
2 || base
> 36) {
44387 throw new Error(
"Illegal radix " + base +
".");
44392 // Check for digits outside the range
44393 if (!(BigInteger.radixRegex[base].test(digits))) {
44394 throw new Error(
"Bad digit for radix " + base);
44397 // Strip leading zeros, and convert to array
44398 digits = digits.replace(/^
0+/,
"").split(
"");
44399 if (digits.length ===
0) {
44403 // Get the sign (we know it's not zero)
44404 sign = (sign ===
"-") ? -
1 :
1;
44409 while (digits.length
>= BigInteger_base_log10) {
44410 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44412 d.push(parseInt(digits.join(''),
10));
44413 return new BigInteger(d, sign, CONSTRUCT);
44416 // Do the conversion
44418 base = BigInteger.small[base];
44419 var small = BigInteger.small;
44420 for (var i =
0; i < digits.length; i++) {
44421 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44423 return new BigInteger(d._d, sign, CONSTRUCT);
44426 throw new Error("Invalid BigInteger format: " + s);
44432 Add two
<BigIntegers>.
44436 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44440 The numbers added together.
44444 <subtract>,
<multiply>,
<quotient>,
<next>
44446 BigInteger.prototype.add = function(n) {
44447 if (this._s ===
0) {
44448 return BigInteger(n);
44455 if (this._s !== n._s) {
44457 return this.subtract(n);
44464 var sum = new Array(Math.max(al, bl) +
1);
44465 var size = Math.min(al, bl);
44469 for (var i =
0; i < size; i++) {
44470 digit = a[i] + b[i] + carry;
44471 sum[i] = digit % BigInteger_base;
44472 carry = (digit / BigInteger_base) |
0;
44478 for (i = size; carry && i < al; i++) {
44479 digit = a[i] + carry;
44480 sum[i] = digit % BigInteger_base;
44481 carry = (digit / BigInteger_base) |
0;
44487 for ( ; i < al; i++) {
44491 return new BigInteger(sum, this._s, CONSTRUCT);
44496 Get the additive inverse of a
<BigInteger>.
44500 A
<BigInteger> with the same magnatude, but with the opposite sign.
44506 BigInteger.prototype.negate = function() {
44507 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44512 Get the absolute value of a
<BigInteger>.
44516 A
<BigInteger> with the same magnatude, but always positive (or zero).
44522 BigInteger.prototype.abs = function() {
44523 return (this._s <
0) ? this.negate() : this;
44528 Subtract two
<BigIntegers>.
44532 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44536 The *n* subtracted from *this*.
44540 <add>,
<multiply>,
<quotient>,
<prev>
44542 BigInteger.prototype.subtract = function(n) {
44543 if (this._s ===
0) {
44544 return BigInteger(n).negate();
44551 if (this._s !== n._s) {
44553 return this.add(n);
44557 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44559 m = new BigInteger(n._d,
1, CONSTRUCT);
44560 n = new BigInteger(this._d,
1, CONSTRUCT);
44563 // Both are positive =
> a - b
44564 var sign = m.compareAbs(n);
44568 else if (sign <
0) {
44580 var diff = new Array(al); // al
>= bl since a
> b
44585 for (i =
0; i < bl; i++) {
44586 digit = a[i] - borrow - b[i];
44588 digit += BigInteger_base;
44596 for (i = bl; i < al; i++) {
44597 digit = a[i] - borrow;
44599 digit += BigInteger_base;
44607 for ( ; i < al; i++) {
44611 return new BigInteger(diff, sign, CONSTRUCT);
44615 function addOne(n, sign) {
44617 var sum = a.slice();
44622 var digit = (a[i] ||
0) +
1;
44623 sum[i] = digit % BigInteger_base;
44624 if (digit <= BigInteger_base -
1) {
44630 return new BigInteger(sum, sign, CONSTRUCT);
44633 function subtractOne(n, sign) {
44635 var sum = a.slice();
44640 var digit = (a[i] ||
0) -
1;
44642 sum[i] = digit + BigInteger_base;
44651 return new BigInteger(sum, sign, CONSTRUCT);
44656 Get the next
<BigInteger> (add one).
44666 BigInteger.prototype.next = function() {
44671 return subtractOne(this, -
1);
44674 return addOne(this,
1);
44680 Get the previous
<BigInteger> (subtract one).
44690 BigInteger.prototype.prev = function() {
44695 return addOne(this, -
1);
44698 return subtractOne(this,
1);
44704 Function: compareAbs
44705 Compare the absolute value of two
<BigIntegers>.
44707 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44711 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44715 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44721 BigInteger.prototype.compareAbs = function(n) {
44726 if (!(n instanceof BigInteger)) {
44727 if (!isFinite(n)) {
44728 return(isNaN(n) ? n : -
1);
44733 if (this._s ===
0) {
44734 return (n._s !==
0) ? -
1 :
0;
44740 var l = this._d.length;
44741 var nl = n._d.length;
44751 for (var i = l-
1; i
>=
0; i--) {
44752 if (a[i] !== b[i]) {
44753 return a[i] < b[i] ? -
1 :
1;
44762 Compare two
<BigIntegers>.
44766 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44770 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44774 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44776 BigInteger.prototype.compare = function(n) {
44783 if (this._s ===
0) {
44787 if (this._s === n._s) { // both positive or both negative
44788 var cmp = this.compareAbs(n);
44789 return cmp * this._s;
44798 Return true iff *this* is either
1 or -
1.
44802 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44806 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44807 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44809 BigInteger.prototype.isUnit = function() {
44810 return this === ONE ||
44812 (this._d.length ===
1 && this._d[
0] ===
1);
44817 Multiply two
<BigIntegers>.
44821 n - The number to multiply *this* by. Will be converted to a
44826 The numbers multiplied together.
44830 <add>,
<subtract>,
<quotient>,
<square>
44832 BigInteger.prototype.multiply = function(n) {
44833 // TODO: Consider adding Karatsuba multiplication for large numbers
44834 if (this._s ===
0) {
44842 if (this.isUnit()) {
44850 return this.negate();
44855 return this.square();
44858 var r = (this._d.length
>= n._d.length);
44859 var a = (r ? this : n)._d; // a will be longer than b
44860 var b = (r ? n : this)._d;
44865 var partial = new Array(pl);
44867 for (i =
0; i < pl; i++) {
44871 for (i =
0; i < bl; i++) {
44874 var jlimit = al + i;
44876 for (var j = i; j < jlimit; j++) {
44877 digit = partial[j] + bi * a[j - i] + carry;
44878 carry = (digit / BigInteger_base) |
0;
44879 partial[j] = (digit % BigInteger_base) |
0;
44882 digit = partial[j] + carry;
44883 carry = (digit / BigInteger_base) |
0;
44884 partial[j] = digit % BigInteger_base;
44887 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
44890 // Multiply a BigInteger by a single-digit native number
44891 // Assumes that this and n are
>=
0
44892 // This is not really intended to be used outside the library itself
44893 BigInteger.prototype.multiplySingleDigit = function(n) {
44894 if (n ===
0 || this._s ===
0) {
44902 if (this._d.length ===
1) {
44903 digit = this._d[
0] * n;
44904 if (digit
>= BigInteger_base) {
44905 return new BigInteger([(digit % BigInteger_base)|
0,
44906 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
44908 return new BigInteger([digit],
1, CONSTRUCT);
44912 return this.add(this);
44914 if (this.isUnit()) {
44915 return new BigInteger([n],
1, CONSTRUCT);
44922 var partial = new Array(pl);
44923 for (var i =
0; i < pl; i++) {
44928 for (var j =
0; j < al; j++) {
44929 digit = n * a[j] + carry;
44930 carry = (digit / BigInteger_base) |
0;
44931 partial[j] = (digit % BigInteger_base) |
0;
44934 partial[j] = carry;
44937 return new BigInteger(partial,
1, CONSTRUCT);
44942 Multiply a
<BigInteger> by itself.
44944 This is slightly faster than regular multiplication, since it removes the
44945 duplicated multiplcations.
44949 > this.multiply(this)
44954 BigInteger.prototype.square = function() {
44955 // Normally, squaring a
10-digit number would take
100 multiplications.
44956 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
44957 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
44958 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
44960 if (this._s ===
0) {
44963 if (this.isUnit()) {
44967 var digits = this._d;
44968 var length = digits.length;
44969 var imult1 = new Array(length + length +
1);
44970 var product, carry, k;
44973 // Calculate diagonal
44974 for (i =
0; i < length; i++) {
44976 product = digits[i] * digits[i];
44977 carry = (product / BigInteger_base) |
0;
44978 imult1[k] = product % BigInteger_base;
44979 imult1[k +
1] = carry;
44982 // Calculate repeating part
44983 for (i =
0; i < length; i++) {
44986 for (var j = i +
1; j < length; j++, k++) {
44987 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
44988 carry = (product / BigInteger_base) |
0;
44989 imult1[k] = product % BigInteger_base;
44992 var digit = carry + imult1[k];
44993 carry = (digit / BigInteger_base) |
0;
44994 imult1[k] = digit % BigInteger_base;
44995 imult1[k +
1] += carry;
44998 return new BigInteger(imult1,
1, CONSTRUCT);
45003 Divide two
<BigIntegers> and truncate towards zero.
45005 <quotient> throws an exception if *n* is zero.
45009 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45013 The *this* / *n*, truncated to an integer.
45017 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45019 BigInteger.prototype.quotient = function(n) {
45020 return this.divRem(n)[
0];
45025 Deprecated synonym for
<quotient>.
45027 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45030 Function: remainder
45031 Calculate the remainder of two
<BigIntegers>.
45033 <remainder> throws an exception if *n* is zero.
45037 n - The remainder after *this* is divided *this* by *n*. Will be
45038 converted to a
<BigInteger>.
45046 <divRem>,
<quotient>
45048 BigInteger.prototype.remainder = function(n) {
45049 return this.divRem(n)[
1];
45054 Calculate the integer quotient and remainder of two
<BigIntegers>.
45056 <divRem> throws an exception if *n* is zero.
45060 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45064 A two-element array containing the quotient and the remainder.
45068 is exactly equivalent to
45070 > [a.quotient(b), a.remainder(b)]
45072 except it is faster, because they are calculated at the same time.
45076 <quotient>,
<remainder>
45078 BigInteger.prototype.divRem = function(n) {
45081 throw new Error("Divide by zero");
45083 if (this._s ===
0) {
45084 return [ZERO, ZERO];
45086 if (n._d.length ===
1) {
45087 return this.divRemSmall(n._s * n._d[
0]);
45090 // Test for easy cases -- |n1| <= |n2|
45091 switch (this.compareAbs(n)) {
45092 case
0: // n1 == n2
45093 return [this._s === n._s ? ONE : M_ONE, ZERO];
45094 case -
1: // |n1| < |n2|
45095 return [ZERO, this];
45098 var sign = this._s * n._s;
45100 var b_digits = this._d;
45101 var b_index = b_digits.length;
45102 var digits = n._d.length;
45106 var part = new BigInteger([],
0, CONSTRUCT);
45109 part._d.unshift(b_digits[--b_index]);
45110 part = new BigInteger(part._d,
1, CONSTRUCT);
45112 if (part.compareAbs(n) <
0) {
45116 if (part._s ===
0) {
45120 var xlen = part._d.length, ylen = a._d.length;
45121 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45122 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45123 if (part._d.length
> a._d.length) {
45124 // The length of part._d can either match a._d length,
45125 // or exceed it by one.
45126 highx = (highx+
1)*BigInteger_base;
45128 guess = Math.ceil(highx/highy);
45131 var check = a.multiplySingleDigit(guess);
45132 if (check.compareAbs(part) <=
0) {
45142 var diff = part.subtract(check);
45143 part._d = diff._d.slice();
45146 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45147 new BigInteger(part._d, this._s, CONSTRUCT)];
45150 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45151 // [
1, BigInteger.base). It's not necessary to call this, since the
45152 // other division functions will call it if they are able to.
45153 BigInteger.prototype.divRemSmall = function(n) {
45157 throw new Error("Divide by zero");
45160 var n_s = n <
0 ? -
1 :
1;
45161 var sign = this._s * n_s;
45164 if (n <
1 || n
>= BigInteger_base) {
45165 throw new Error("Argument out of range");
45168 if (this._s ===
0) {
45169 return [ZERO, ZERO];
45172 if (n ===
1 || n === -
1) {
45173 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45176 //
2 <= n < BigInteger_base
45178 // divide a single digit by a single digit
45179 if (this._d.length ===
1) {
45180 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45181 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45191 var digits = this._d.slice();
45192 var quot = new Array(digits.length);
45198 while (digits.length) {
45199 part = part * BigInteger_base + digits[digits.length -
1];
45203 diff = BigInteger_base * diff + part;
45210 guess = (part / n) |
0;
45213 var check = n * guess;
45214 diff = part - check;
45225 r = new BigInteger([diff],
1, CONSTRUCT);
45229 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45234 Return true iff *this* is divisible by two.
45236 Note that
<BigInteger.ZERO
> is even.
45240 true if *this* is even, false otherwise.
45246 BigInteger.prototype.isEven = function() {
45247 var digits = this._d;
45248 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45253 Return true iff *this* is not divisible by two.
45257 true if *this* is odd, false otherwise.
45263 BigInteger.prototype.isOdd = function() {
45264 return !this.isEven();
45269 Get the sign of a
<BigInteger>.
45279 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45281 BigInteger.prototype.sign = function() {
45286 Function: isPositive
45287 Return true iff *this*
> 0.
45291 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45295 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45297 BigInteger.prototype.isPositive = function() {
45298 return this._s
> 0;
45302 Function: isNegative
45303 Return true iff *this* <
0.
45307 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45311 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45313 BigInteger.prototype.isNegative = function() {
45314 return this._s <
0;
45319 Return true iff *this* ==
0.
45323 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45327 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45329 BigInteger.prototype.isZero = function() {
45330 return this._s ===
0;
45335 Multiply a
<BigInteger> by a power of
10.
45337 This is equivalent to, but faster than
45340 > return this.multiply(BigInteger("
1e" + n));
45343 > return this.quotient(BigInteger("
1e" + -n));
45348 n - The power of
10 to multiply *this* by. *n* is converted to a
45349 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45350 (
0x7FFFFFFF), or an exception will be thrown.
45354 *this* * (
10 ** *n*), truncated to an integer if necessary.
45360 BigInteger.prototype.exp10 = function(n) {
45365 if (Math.abs(n)
> Number(MAX_EXP)) {
45366 throw new Error("exponent too large in BigInteger.exp10");
45368 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45369 if (this._s ===
0) {
45373 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45375 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45381 k = k.multiplySingleDigit(Math.pow(
10, n));
45382 return (this._s <
0 ? k.negate() : k);
45383 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45386 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45388 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45391 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45397 Raise a
<BigInteger> to a power.
45399 In this implementation,
0**
0 is
1.
45403 n - The exponent to raise *this* by. *n* must be no greater than
45404 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45408 *this* raised to the *nth* power.
45414 BigInteger.prototype.pow = function(n) {
45415 if (this.isUnit()) {
45420 return BigInteger(n).isOdd() ? this : this.negate();
45428 else if (n._s <
0) {
45429 if (this._s ===
0) {
45430 throw new Error(
"Divide by zero");
45436 if (this._s ===
0) {
45443 if (n.compareAbs(MAX_EXP)
> 0) {
45444 throw new Error(
"exponent too large in BigInteger.pow");
45448 var two = BigInteger.small[
2];
45450 while (n.isPositive()) {
45452 aux = aux.multiply(x);
45458 n = n.quotient(two);
45466 Raise a
<BigInteger> to a power (mod m).
45468 Because it is reduced by a modulus,
<modPow> is not limited by
45469 <BigInteger.MAX_EXP
> like
<pow>.
45473 exponent - The exponent to raise *this* by. Must be positive.
45474 modulus - The modulus.
45478 *this* ^ *exponent* (mod *modulus*).
45484 BigInteger.prototype.modPow = function(exponent, modulus) {
45488 while (exponent.isPositive()) {
45489 if (exponent.isOdd()) {
45490 result = result.multiply(base).remainder(modulus);
45493 exponent = exponent.quotient(BigInteger.small[
2]);
45494 if (exponent.isPositive()) {
45495 base = base.square().remainder(modulus);
45504 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45506 This is equivalent to
45508 > Math.log(this.toJSValue())
45510 but handles values outside of the native number range.
45520 BigInteger.prototype.log = function() {
45522 case
0: return -Infinity;
45523 case -
1: return NaN;
45524 default: // Fall through.
45527 var l = this._d.length;
45529 if (l*BigInteger_base_log10 <
30) {
45530 return Math.log(this.valueOf());
45533 var N = Math.ceil(
30/BigInteger_base_log10);
45534 var firstNdigits = this._d.slice(l - N);
45535 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45540 Convert a
<BigInteger> to a native JavaScript integer.
45542 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45547 > parseInt(this.toString(),
10)
45551 <toString>,
<toJSValue>
45553 BigInteger.prototype.valueOf = function() {
45554 return parseInt(this.toString(),
10);
45558 Function: toJSValue
45559 Convert a
<BigInteger> to a native JavaScript integer.
45561 This is the same as valueOf, but more explicitly named.
45565 > parseInt(this.toString(),
10)
45569 <toString>,
<valueOf>
45571 BigInteger.prototype.toJSValue = function() {
45572 return parseInt(this.toString(),
10);
45575 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45576 // Constant: MAX_EXP
45577 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45578 BigInteger.MAX_EXP = MAX_EXP;
45581 function makeUnary(fn) {
45582 return function(a) {
45583 return fn.call(BigInteger(a));
45587 function makeBinary(fn) {
45588 return function(a, b) {
45589 return fn.call(BigInteger(a), BigInteger(b));
45593 function makeTrinary(fn) {
45594 return function(a, b, c) {
45595 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45601 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45602 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45603 var trinary = ["modPow"];
45605 for (i =
0; i < unary.length; i++) {
45607 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45610 for (i =
0; i < binary.length; i++) {
45612 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45615 for (i =
0; i < trinary.length; i++) {
45617 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45620 BigInteger.exp10 = function(x, n) {
45621 return BigInteger(x).exp10(n);
45626 exports.BigInteger = BigInteger;
45627 })(typeof exports !== 'undefined' ? exports : this);
45629 <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.zxcvbn = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&
&require;if(!u&&a)return a(o,!
0);if(i)return i(o,!
0);var f=new Error("Cannot find module '"+o+"'");throw f.
code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][
0].call(l.exports,function(e){var n=t[o][
1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&
&require;for(var o=
0;o
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
45630 var adjacency_graphs;adjacency_graphs={qwerty:{
"!":[
"`~",null,null,
"2@",
"qQ",null],'
"':[";:
","[{
","]}
",null,null,"/?
"],"#
":["2@
",null,null,"4$
","eE
","wW
"],$:["3#
",null,null,"5%
","rR
","eE
"],"%
":["4$
",null,null,"6^
","tT
","rR
"],"&
":["6^
",null,null,"8*
","uU
","yY
"],"'
":[";:
","[{
","]}
",null,null,"/?
"],"(
":["8*
",null,null,"0)
","oO
","iI
"],")
":["9(
",null,null,"-_
","pP
","oO
"],"*
":["7&
",null,null,"9(
","iI
","uU
"],"+
":["-_
",null,null,null,"]}
","[{
"],",
":["mM
","kK
","lL
",".
>",null,null],"-
":["0)
",null,null,"=+
","[{
","pP
"],".
":[",<
","lL
",";:
","/?
",null,null],"/
":[".
>",";:
","'\
"",null,null,null],
0:[
"9(",null,null,
"-_",
"pP",
"oO"],
1:[
"`~",null,null,
"2@",
"qQ",null],
2:[
"1!",null,null,
"3#",
"wW",
"qQ"],
3:[
"2@",null,null,
"4$",
"eE",
"wW"],
4:[
"3#",null,null,
"5%",
"rR",
"eE"],
5:[
"4$",null,null,
"6^",
"tT",
"rR"],
6:[
"5%",null,null,
"7&",
"yY",
"tT"],
7:[
"6^",null,null,
"8*",
"uU",
"yY"],
8:[
"7&",null,null,
"9(",
"iI",
"uU"],
9:[
"8*",null,null,
"0)",
"oO",
"iI"],
":":[
"lL",
"pP",
"[{",
"'\"","/?
",".
>"],";
":["lL
","pP
","[{
","'\
"",
"/?",
".>"],
"<":[
"mM",
"kK",
"lL",
".>",null,null],
"=":[
"-_",null,null,null,
"]}",
"[{"],
">":[
",<",
"lL",
";:",
"/?",null,null],
"?":[
".>",
";:",
"'\"",null,null,null],"@
":["1!
",null,null,"3#
","wW
","qQ
"],A:[null,"qQ
","wW
","sS
","zZ
",null],B:["vV
","gG
","hH
","nN
",null,null],C:["xX
","dD
","fF
","vV
",null,null],D:["sS
","eE
","rR
","fF
","cC
","xX
"],E:["wW
","3#
","4$
","rR
","dD
","sS
"],F:["dD
","rR
","tT
","gG
","vV
","cC
"],G:["fF
","tT
","yY
","hH
","bB
","vV
"],H:["gG
","yY
","uU
","jJ
","nN
","bB
"],I:["uU
","8*
","9(
","oO
","kK
","jJ
"],J:["hH
","uU
","iI
","kK
","mM
","nN
"],K:["jJ
","iI
","oO
","lL
",",<
","mM
"],L:["kK
","oO
","pP
",";:
",".
>",",<
"],M:["nN
","jJ
","kK
",",<
",null,null],N:["bB
","hH
","jJ
","mM
",null,null],O:["iI
","9(
","0)
","pP
","lL
","kK
"],P:["oO
","0)
","-_
","[{
",";:
","lL
"],Q:[null,"1!
","2@
","wW
","aA
",null],R:["eE
","4$
","5%
","tT
","fF
","dD
"],S:["aA
","wW
","eE
","dD
","xX
","zZ
"],T:["rR
","5%
","6^
","yY
","gG
","fF
"],U:["yY
","7&
","8*
","iI
","jJ
","hH
"],V:["cC
","fF
","gG
","bB
",null,null],W:["qQ
","2@
","3#
","eE
","sS
","aA
"],X:["zZ
","sS
","dD
","cC
",null,null],Y:["tT
","6^
","7&
","uU
","hH
","gG
"],Z:[null,"aA
","sS
","xX
",null,null],"[
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"\\":[
"]}",null,null,null,null,null],
"]":[
"[{",
"=+",null,
"\\|",null,
"'\""],"^
":["5%
",null,null,"7&
","yY
","tT
"],_:["0)
",null,null,"=+
","[{
","pP
"],"`
":[null,null,null,"1!
",null,null],a:[null,"qQ
","wW
","sS
","zZ
",null],b:["vV
","gG
","hH
","nN
",null,null],c:["xX
","dD
","fF
","vV
",null,null],d:["sS
","eE
","rR
","fF
","cC
","xX
"],e:["wW
","3#
","4$
","rR
","dD
","sS
"],f:["dD
","rR
","tT
","gG
","vV
","cC
"],g:["fF
","tT
","yY
","hH
","bB
","vV
"],h:["gG
","yY
","uU
","jJ
","nN
","bB
"],i:["uU
","8*
","9(
","oO
","kK
","jJ
"],j:["hH
","uU
","iI
","kK
","mM
","nN
"],k:["jJ
","iI
","oO
","lL
",",<
","mM
"],l:["kK
","oO
","pP
",";:
",".
>",",<
"],m:["nN
","jJ
","kK
",",<
",null,null],n:["bB
","hH
","jJ
","mM
",null,null],o:["iI
","9(
","0)
","pP
","lL
","kK
"],p:["oO
","0)
","-_
","[{
",";:
","lL
"],q:[null,"1!
","2@
","wW
","aA
",null],r:["eE
","4$
","5%
","tT
","fF
","dD
"],s:["aA
","wW
","eE
","dD
","xX
","zZ
"],t:["rR
","5%
","6^
","yY
","gG
","fF
"],u:["yY
","7&
","8*
","iI
","jJ
","hH
"],v:["cC
","fF
","gG
","bB
",null,null],w:["qQ
","2@
","3#
","eE
","sS
","aA
"],x:["zZ
","sS
","dD
","cC
",null,null],y:["tT
","6^
","7&
","uU
","hH
","gG
"],z:[null,"aA
","sS
","xX
",null,null],"{
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"|":[
"]}",null,null,null,null,null],
"}":[
"[{",
"=+",null,
"\\|",null,
"'\""],"~
":[null,null,null,"1!
",null,null]},dvorak:{"!
":["`~
",null,null,"2@
","'\
"",null],'
"':[null,"1!
","2@
",",<
","aA
",null],"#
":["2@
",null,null,"4$
",".
>",",<
"],$:["3#
",null,null,"5%
","pP
",".
>"],"%
":["4$
",null,null,"6^
","yY
","pP
"],"&
":["6^
",null,null,"8*
","gG
","fF
"],"'
":[null,"1!
","2@
",",<
","aA
",null],"(
":["8*
",null,null,"0)
","rR
","cC
"],")
":["9(
",null,null,"[{
","lL
","rR
"],"*
":["7&
",null,null,"9(
","cC
","gG
"],"+
":["/?
","]}
",null,"\\|
",null,"-_
"],",
":["'\
"",
"2@",
"3#",
".>",
"oO",
"aA"],
"-":[
"sS",
"/?",
"=+",null,null,
"zZ"],
".":[
",<",
"3#",
"4$",
"pP",
"eE",
"oO"],
"/":[
"lL",
"[{",
"]}",
"=+",
"-_",
"sS"],
0:[
"9(",null,null,
"[{",
"lL",
"rR"],
1:[
"`~",null,null,
"2@",
"'\"",null],2:["1!
",null,null,"3#
",",<
","'\
""],
3:[
"2@",null,null,
"4$",
".>",
",<"],
4:[
"3#",null,null,
"5%",
"pP",
".>"],
5:[
"4$",null,null,
"6^",
"yY",
"pP"],
6:[
"5%",null,null,
"7&",
"fF",
"yY"],
7:[
"6^",null,null,
"8*",
"gG",
"fF"],
8:[
"7&",null,null,
"9(",
"cC",
"gG"],
9:[
"8*",null,null,
"0)",
"rR",
"cC"],
":":[null,
"aA",
"oO",
"qQ",null,null],
";":[null,
"aA",
"oO",
"qQ",null,null],
"<":[
"'\"","2@
","3#
",".
>","oO
","aA
"],"=
":["/?
","]}
",null,"\\|
",null,"-_
"],">":[",<
","3#
","4$
","pP
","eE
","oO
"],"?
":["lL
","[{
","]}
","=+
","-_
","sS
"],"@
":["1!
",null,null,"3#
",",<
","'\
""],A:[null,
"'\"",",<
","oO
",";:
",null],B:["xX
","dD
","hH
","mM
",null,null],C:["gG
","8*
","9(
","rR
","tT
","hH
"],D:["iI
","fF
","gG
","hH
","bB
","xX
"],E:["oO
",".
>","pP
","uU
","jJ
","qQ
"],F:["yY
","6^
","7&
","gG
","dD
","iI
"],G:["fF
","7&
","8*
","cC
","hH
","dD
"],H:["dD
","gG
","cC
","tT
","mM
","bB
"],I:["uU
","yY
","fF
","dD
","xX
","kK
"],J:["qQ
","eE
","uU
","kK
",null,null],K:["jJ
","uU
","iI
","xX
",null,null],L:["rR
","0)
","[{
","/?
","sS
","nN
"],M:["bB
","hH
","tT
","wW
",null,null],N:["tT
","rR
","lL
","sS
","vV
","wW
"],O:["aA
",",<
",".
>","eE
","qQ
",";:
"],P:[".
>","4$
","5%
","yY
","uU
","eE
"],Q:[";:
","oO
","eE
","jJ
",null,null],R:["cC
","9(
","0)
","lL
","nN
","tT
"],S:["nN
","lL
","/?
","-_
","zZ
","vV
"],T:["hH
","cC
","rR
","nN
","wW
","mM
"],U:["eE
","pP
","yY
","iI
","kK
","jJ
"],V:["wW
","nN
","sS
","zZ
",null,null],W:["mM
","tT
","nN
","vV
",null,null],X:["kK
","iI
","dD
","bB
",null,null],Y:["pP
","5%
","6^
","fF
","iI
","uU
"],Z:["vV
","sS
","-_
",null,null,null],"[
":["0)
",null,null,"]}
","/?
","lL
"],"\\
":["=+
",null,null,null,null,null],"]
":["[{
",null,null,null,"=+
","/?
"],"^
":["5%
",null,null,"7&
","fF
","yY
"],_:["sS
","/?
","=+
",null,null,"zZ
"],"`
":[null,null,null,"1!
",null,null],a:[null,"'\
"",
",<",
"oO",
";:",null],b:[
"xX",
"dD",
"hH",
"mM",null,null],c:[
"gG",
"8*",
"9(",
"rR",
"tT",
"hH"],d:[
"iI",
"fF",
"gG",
"hH",
"bB",
"xX"],e:[
"oO",
".>",
"pP",
"uU",
"jJ",
"qQ"],f:[
"yY",
"6^",
"7&",
"gG",
"dD",
"iI"],g:[
"fF",
"7&",
"8*",
"cC",
"hH",
"dD"],h:[
"dD",
"gG",
"cC",
"tT",
"mM",
"bB"],i:[
"uU",
"yY",
"fF",
"dD",
"xX",
"kK"],j:[
"qQ",
"eE",
"uU",
"kK",null,null],k:[
"jJ",
"uU",
"iI",
"xX",null,null],l:[
"rR",
"0)",
"[{",
"/?",
"sS",
"nN"],m:[
"bB",
"hH",
"tT",
"wW",null,null],n:[
"tT",
"rR",
"lL",
"sS",
"vV",
"wW"],o:[
"aA",
",<",
".>",
"eE",
"qQ",
";:"],p:[
".>",
"4$",
"5%",
"yY",
"uU",
"eE"],q:[
";:",
"oO",
"eE",
"jJ",null,null],r:[
"cC",
"9(",
"0)",
"lL",
"nN",
"tT"],s:[
"nN",
"lL",
"/?",
"-_",
"zZ",
"vV"],t:[
"hH",
"cC",
"rR",
"nN",
"wW",
"mM"],u:[
"eE",
"pP",
"yY",
"iI",
"kK",
"jJ"],v:[
"wW",
"nN",
"sS",
"zZ",null,null],w:[
"mM",
"tT",
"nN",
"vV",null,null],x:[
"kK",
"iI",
"dD",
"bB",null,null],y:[
"pP",
"5%",
"6^",
"fF",
"iI",
"uU"],z:[
"vV",
"sS",
"-_",null,null,null],
"{":[
"0)",null,null,
"]}",
"/?",
"lL"],
"|":[
"=+",null,null,null,null,null],
"}":[
"[{",null,null,null,
"=+",
"/?"],
"~":[null,null,null,
"1!",null,null]},keypad:{
"*":[
"/",null,null,null,
"-",
"+",
"9",
"8"],
"+":[
"9",
"*",
"-",null,null,null,null,
"6"],
"-":[
"*",null,null,null,null,null,
"+",
"9"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[null,null,null,null,
"*",
"9",
"8",
"7"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",null,null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"+",null,null,
"3",
"2"],
7:[null,null,null,
"/",
"8",
"5",
"4",null],
8:[
"7",null,
"/",
"*",
"9",
"6",
"5",
"4"],
9:[
"8",
"/",
"*",
"-",
"+",null,
"6",
"5"]},mac_keypad:{
"*":[
"/",null,null,null,null,null,
"-",
"9"],
"+":[
"6",
"9",
"-",null,null,null,null,
"3"],
"-":[
"9",
"/",
"*",null,null,null,
"+",
"6"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[
"=",null,null,null,
"*",
"-",
"9",
"8"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",
"+",null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"-",
"+",null,
"3",
"2"],
7:[null,null,null,
"=",
"8",
"5",
"4",null],
8:[
"7",null,
"=",
"/",
"9",
"6",
"5",
"4"],
9:[
"8",
"=",
"/",
"*",
"-",
"+",
"6",
"5"],
"=":[null,null,null,null,
"/",
"9",
"8",
"7"]}},module.exports=adjacency_graphs;
45632 },{}],
2:[function(require,module,exports){
45633 var feedback,scoring;scoring=require(
"./scoring"),feedback={default_feedback:{warning:
"",suggestions:[
"Use a few words, avoid common phrases",
"No need for symbols, digits, or uppercase letters"]},get_feedback:function(e,s){var a,t,r,n,o,i;if(
0===s.length)return this.default_feedback;if(e
>2)return{warning:
"",suggestions:[]};for(n=s[
0],i=s.slice(
1),t=
0,r=i.length;t
<r;t++)o=i[t],o.token.length
>n.token.length&&(n=o);return feedback=this.get_match_feedback(n,
1===s.length),
a="Add another word or two. Uncommon words are better.",null!=feedback?(feedback.suggestions.unshift(a),null==feedback.warning&&(feedback.
warning="")):feedback={warning:"",suggestions:[a]},feedback},get_match_feedback:function(e,s){var a,t;switch(e.pattern){case"dictionary":return this.get_dictionary_match_feedback(e,s);case"spatial":return a=e.graph.toUpperCase(),t=
1===e.turns?"Straight rows of keys are easy to guess":"Short keyboard patterns are easy to guess",{warning:t,suggestions:["Use a longer keyboard pattern with more turns"]};case"repeat":return t=
1===e.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',{warning:t,suggestions:["Avoid repeated words and characters"]};case"sequence":return{warning:"Sequences like abc or
6543 are easy to guess",suggestions:["Avoid sequences"]};case"regex":if("recent_year"===e.regex_name)return{warning:"Recent years are easy to guess",suggestions:["Avoid recent years","Avoid years that are associated with you"]};break;case"date":return{warning:"Dates are often easy to guess",suggestions:["Avoid dates and years that are associated with you"]}}},get_dictionary_match_feedback:function(e,s){var a,t,r,n,o;return
n="passwords"===e.dictionary_name?!s||e.l33t||e.reversed?e.guesses_log10<=
4?"This is similar to a commonly used password":void
0:e.rank<=
10?"This is a top-
10 common password":e.rank<=
100?"This is a top-
100 common password":"This is a very common password":"english"===e.dictionary_name?s?"A word by itself is easy to guess":void
0:"surnames"===(a=e.dictionary_name)||"male_names"===a||"female_names"===a?s?"Names and surnames by themselves are easy to guess":"Common names and surnames are easy to guess":"",r=[],o=e.token,o.match(scoring.START_UPPER)?r.push("Capitalization doesn't help very much"):o.match(scoring.ALL_UPPER)&&o.toLowerCase()!==o&&r.push("All-uppercase is almost as easy to guess as all-lowercase"),e.reversed&&e.token.length
>=
4&&r.push("Reversed words aren't much harder to guess"),e.l33t&&r.push("Predictable substitutions like '@' instead of 'a' don't help very much"),t={warning:n,suggestions:r}}},module.exports=feedback;
45635 },{"./scoring":
6}],
3:[function(require,module,exports){
45636 var frequency_lists;frequency_lists={passwords:"
123456,password,
12345678,qwerty,
123456789,
12345,
1234,
111111,
1234567,dragon,
123123,baseball,abc123,football,monkey,letmein,shadow,master,
696969,mustang,
666666,qwertyuiop,
123321,
1234567890,pussy,superman,
654321,
1qaz2wsx,
7777777,fuckyou,qazwsx,jordan,
123qwe,
000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,
112233,zxcvbn,freedom,princess,maggie,pass,ginger,
11111111,
131313,fuck,love,cheese,
159753,summer,chelsea,dallas,biteme,matrix,yankees,
6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,
1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,
123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,
1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,
12344321,blowjob,
8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,
123abc,slipknot,qazxsw,
123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,
159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,
789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,
1q2w3e4r5t,sydney,gators,dexter,red123,
123456q,
12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,
5150,fucking,apollo,
1qazxsw2,
2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,
4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,
01012011,girls,bigboy,
102030,animal,police,online,
11223344,voyager,lifehack,
12qwaszx,fish,sniper,
315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,
789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,
007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,
147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,
12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,
111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,
147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,
010203,lizard,a123456,
123456789a,ruslan,eagle,
1232323q,scarface,qwerty12,
147852,a12345,buddha,porno,
420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,
12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,
123789,infinity,assman,bulldogs,fantasy,sucker,
1234554321,horney,domino,budlight,disney,ironman,usuckballz1,softball,brutus,redrum,bigred,mnbvcxz,fktrcfylh,karina,marines,digger,kawasaki,cougar,fireman,oksana,monday,cunt,justice,nigger,super,wildcats,tinker,logitech,dancer,swordfis,avalon,everton,alexandr,motorola,patriots,hentai,madonna,pussy1,ducati,colorado,connor,juventus,galore,smooth,freeuser,warcraft,boogie,titanic,wolverin,elizabet,arizona,valentin,saints,asdfg,accord,test123,password123,christ,yfnfif,stinky,slut,spiderma,naughty,chopper,hello123,ncc1701d,extreme,skyline,poop,zombie,pearljam,
123qweasd,froggy,awesome,vision,pirate,fylhtq,dreamer,bullet,predator,empire,
123123a,kirill,charlie1,panthers,penis,skipper,nemesis,rasdzv3,peekaboo,rolltide,cardinal,psycho,danger,mookie,happy1,wanker,chevelle,manutd,goblue,
9379992,hobbes,vegeta,fyfcnfcbz,
852456,picard,
159951,windows,loverboy,victory,vfrcbv,bambam,serega,
123654789,turkey,tweety,galina,hiphop,rooster,changeme,berlin,taurus,suckme,polina,electric,avatar,
134679,maksim,raptor,alpha1,hendrix,newport,bigcock,brazil,spring,a1b2c3,madmax,alpha,britney,sublime,darkside,bigman,wolfpack,classic,hercules,ronaldo,letmein1,
1q2w3e,
741852963,spiderman,blizzard,
123456789q,cheyenne,cjkysirj,tiger1,wombat,bubba1,pandora,zxc123,holiday,wildcat,devils,horse,alabama,
147852369,caesar,
12312,buddy1,bondage,pussycat,pickle,shaggy,catch22,leather,chronic,a1b2c3d4,admin,qqq111,qaz123,airplane,kodiak,freepass,billybob,sunset,katana,phpbb,chocolat,snowman,angel1,stingray,firebird,wolves,zeppelin,detroit,pontiac,gundam,panzer,vagina,outlaw,redhead,tarheels,greenday,nastya,
01011980,hardon,engineer,dragon1,hellfire,serenity,cobra,fireball,lickme,darkstar,
1029384756,
01011,mustang1,flash,
124578,strike,beauty,pavilion,
01012000,bobafett,dbrnjhbz,bigmac,bowling,chris1,ytrewq,natali,pyramid,rulez,welcome1,dodgers,apache,swimming,whynot,teens,trooper,fuckit,defender,precious,
135790,packard,weasel,popeye,lucifer,cancer,icecream,
142536,raven,swordfish,presario,viktor,rockstar,blonde,james1,wutang,spike,pimp,atlanta,airforce,thailand,casino,lennon,mouse,
741852,hacker,bluebird,hawkeye,
456123,theone,catfish,sailor,goldfish,nfnmzyf,tattoo,pervert,barbie,maxima,nipples,machine,trucks,wrangler,rocks,tornado,lights,cadillac,bubble,pegasus,madman,longhorn,browns,target,
666999,eatme,qazwsx123,microsoft,dilbert,christia,baller,lesbian,shooter,xfiles,seattle,qazqaz,cthutq,amateur,prelude,corona,freaky,malibu,
123qweasdzxc,assassin,
246810,atlantis,integra,pussies,iloveu,lonewolf,dragons,monkey1,unicorn,software,bobcat,stealth,peewee,openup,
753951,srinivas,zaqwsx,valentina,shotgun,trigger,veronika,bruins,coyote,babydoll,joker,dollar,lestat,rocky1,hottie,random,butterfly,wordpass,smiley,sweety,snake,chipper,woody,samurai,devildog,gizmo,maddie,soso123aljg,mistress,freedom1,flipper,express,hjvfirf,moose,cessna,piglet,polaris,teacher,montreal,cookies,wolfgang,scully,fatboy,wicked,balls,tickle,bunny,dfvgbh,foobar,transam,pepsi,fetish,oicu812,basketba,toshiba,hotstuff,sunday,booty,gambit,
31415926,impala,stephani,jessica1,hooker,lancer,knicks,shamrock,fuckyou2,stinger,
314159,redneck,deftones,squirt,siemens,blaster,trucker,subaru,renegade,ibanez,manson,swinger,reaper,blondie,mylove,galaxy,blahblah,enterpri,travel,
1234abcd,babylon5,indiana,skeeter,master1,sugar,ficken,smoke,bigone,sweetpea,fucked,trfnthbyf,marino,escort,smitty,bigfoot,babes,larisa,trumpet,spartan,valera,babylon,asdfghj,yankees1,bigboobs,stormy,mister,hamlet,aardvark,butterfl,marathon,paladin,cavalier,manchester,skater,indigo,hornet,buckeyes,
01011990,indians,karate,hesoyam,toronto,diamonds,chiefs,buckeye,
1qaz2wsx3edc,highland,hotsex,charger,redman,passwor,maiden,drpepper,storm,pornstar,garden,
12345678910,pencil,sherlock,timber,thuglife,insane,pizza,jungle,jesus1,aragorn,
1a2b3c,hamster,david1,triumph,techno,lollol,pioneer,catdog,
321654,fktrctq,morpheus,
141627,pascal,shadow1,hobbit,wetpussy,erotic,consumer,blabla,justme,stones,chrissy,spartak,goforit,burger,pitbull,adgjmptw,italia,barcelona,hunting,colors,kissme,virgin,overlord,pebbles,sundance,emerald,doggy,racecar,irina,element,
1478963,zipper,alpine,basket,goddess,poison,nipple,sakura,chichi,huskers,
13579,pussys,q12345,ultimate,ncc1701e,blackie,nicola,rommel,matthew1,caserta,omega,geronimo,sammy1,trojan,
123qwe123,philips,nugget,tarzan,chicks,aleksandr,bassman,trixie,portugal,anakin,dodger,bomber,superfly,madness,q1w2e3r4t5y6,loser,
123asd,fatcat,ybrbnf,soldier,warlock,wrinkle1,desire,sexual,babe,seminole,alejandr,
951753,
11235813,westham,andrei,concrete,access14,weed,letmein2,ladybug,naked,christop,trombone,tintin,bluesky,rhbcnbyf,qazxswedc,onelove,cdtnkfyf,whore,vfvjxrf,titans,stallion,truck,hansolo,blue22,smiles,beagle,panama,kingkong,flatron,inferno,mongoose,connect,poiuyt,snatch,qawsed,juice,blessed,rocker,snakes,turbo,bluemoon,sex4me,finger,jamaica,a1234567,mulder,beetle,fuckyou1,passat,immortal,plastic,
123454321,anthony1,whiskey,dietcoke,suck,spunky,magic1,monitor,cactus,exigen,planet,ripper,teen,spyder,apple1,nolimit,hollywoo,sluts,sticky,trunks,
1234321,
14789632,pickles,sailing,bonehead,ghbdtnbr,delta,charlott,rubber,
911911,
112358,molly1,yomama,hongkong,jumper,william1,ilovesex,faster,unreal,cumming,memphis,
1123581321,nylons,legion,sebastia,shalom,pentium,geheim,werewolf,funtime,ferret,orion,curious,
555666,niners,cantona,sprite,philly,pirates,abgrtyu,lollipop,eternity,boeing,super123,sweets,cooldude,tottenha,green1,jackoff,stocking,
7895123,moomoo,martini,biscuit,drizzt,colt45,fossil,makaveli,snapper,satan666,maniac,salmon,patriot,verbatim,nasty,shasta,asdzxc,shaved,blackcat,raistlin,qwerty12345,punkrock,cjkywt,
01012010,
4128,waterloo,crimson,twister,oxford,musicman,seinfeld,biggie,condor,ravens,megadeth,wolfman,cosmos,sharks,banshee,keeper,foxtrot,gn56gn56,skywalke,velvet,black1,sesame,dogs,squirrel,privet,sunrise,wolverine,sucks,legolas,grendel,ghost,cats,carrot,frosty,lvbnhbq,blades,stardust,frog,qazwsxed,
121314,coolio,brownie,groovy,twilight,daytona,vanhalen,pikachu,peanuts,licker,hershey,jericho,intrepid,ninja,
1234567a,zaq123,lobster,goblin,punisher,strider,shogun,kansas,amadeus,seven7,jason1,neptune,showtime,muscle,oldman,ekaterina,rfrfirf,getsome,showme,
111222333,obiwan,skittles,danni,tanker,maestro,tarheel,anubis,hannibal,anal,newlife,gothic,shark,fighter,blue123,blues,
123456z,princes,slick,chaos,thunder1,sabine,
1q2w3e4r5t6y,python,test1,mirage,devil,clover,tequila,chelsea1,surfing,delete,potato,chubby,panasonic,sandiego,portland,baggins,fusion,sooners,blackdog,buttons,californ,moscow,playtime,mature,
1a2b3c4d,dagger,dima,stimpy,asdf123,gangster,warriors,iverson,chargers,byteme,swallow,liquid,lucky7,dingdong,nymets,cracker,mushroom,
456852,crusader,bigguy,miami,dkflbvbh,bugger,nimrod,tazman,stranger,newpass,doodle,powder,gotcha,guardian,dublin,slapshot,septembe,
147896325,pepsi1,milano,grizzly,woody1,knights,photos,
2468,nookie,charly,rammstein,brasil,
123321123,scruffy,munchkin,poopie,
123098,kittycat,latino,walnut,
1701,thegame,viper1,
1passwor,kolobok,picasso,robert1,barcelon,bananas,trance,auburn,coltrane,eatshit,goodluck,starcraft,wheels,parrot,postal,blade,wisdom,pink,gorilla,katerina,pass123,andrew1,shaney14,dumbass,osiris,fuck_inside,oakland,discover,ranger1,spanking,lonestar,bingo,meridian,ping,heather1,dookie,stonecol,megaman,
192837465,rjntyjr,ledzep,lowrider,
25802580,richard1,firefly,griffey,racerx,paradox,ghjcnj,gangsta,zaq1xsw2,tacobell,weezer,sirius,halflife,buffett,shiloh,
123698745,vertigo,sergei,aliens,sobaka,keyboard,kangaroo,sinner,soccer1,
0.0.000,bonjour,socrates,chucky,hotboy,sprint,
0007,sarah1,scarlet,celica,shazam,formula1,sommer,trebor,qwerasdf,jeep,mailcreated5240,bollox,asshole1,fuckface,honda1,rebels,vacation,lexmark,penguins,
12369874,ragnarok,formula,
258456,tempest,vfhecz,tacoma,qwertz,colombia,flames,rockon,duck,prodigy,wookie,dodgeram,mustangs,
123qaz,sithlord,smoker,server,bang,incubus,scoobydo,oblivion,molson,kitkat,titleist,rescue,zxcv1234,carpet,
1122,bigballs,tardis,jimbob,xanadu,blueeyes,shaman,mersedes,pooper,pussy69,golfing,hearts,mallard,
12312312,kenwood,patrick1,dogg,cowboys1,oracle,
123zxc,nuttertools,
102938,topper,
1122334455,shemale,sleepy,gremlin,yourmom,
123987,gateway1,printer,monkeys,peterpan,mikey,kingston,cooler,analsex,jimbo,pa55word,asterix,freckles,birdman,frank1,defiant,aussie,stud,blondes,tatyana,
445566,aspirine,mariners,jackal,deadhead,katrin,anime,rootbeer,frogger,polo,scooter1,hallo,noodles,thomas1,parola,shaolin,celine,
11112222,plymouth,creampie,justdoit,ohyeah,fatass,assfuck,amazon,
1234567q,kisses,magnus,camel,nopass,bosco,
987456,
6751520,harley1,putter,champs,massive,spidey,lightnin,camelot,letsgo,gizmodo,aezakmi,bones,caliente,
12121,goodtime,thankyou,raiders1,brucelee,redalert,aquarius,
456654,catherin,smokin,pooh,mypass,astros,roller,porkchop,sapphire,qwert123,kevin1,a1s2d3f4,beckham,atomic,rusty1,vanilla,qazwsxedcrfv,hunter1,kaktus,cxfcnmt,blacky,
753159,elvis1,aggies,blackjac,bangkok,scream,
123321q,iforgot,power1,kasper,abc12,buster1,slappy,shitty,veritas,chevrole,amber1,
01012001,vader,amsterdam,jammer,primus,spectrum,eduard,granny,horny1,sasha1,clancy,usa123,satan,diamond1,hitler,avenger,
1221,spankme,
123456qwerty,simba,smudge,scrappy,labrador,john316,syracuse,front242,falcons,husker,candyman,commando,gator,pacman,delta1,pancho,krishna,fatman,clitoris,pineappl,lesbians,
8j4ye3uz,barkley,vulcan,punkin,boner,celtics,monopoly,flyboy,romashka,hamburg,
123456aa,lick,gangbang,
223344,area51,spartans,aaa111,tricky,snuggles,drago,homerun,vectra,homer1,hermes,topcat,cuddles,infiniti,
1234567890q,cosworth,goose,phoenix1,killer1,ivanov,bossman,qawsedrf,peugeot,exigent,doberman,durango,brandon1,plumber,telefon,horndog,laguna,rbhbkk,dawg,webmaster,breeze,beast,porsche9,beefcake,leopard,redbull,oscar1,topdog,godsmack,theking,pics,omega1,speaker,viktoria,fuckers,bowler,starbuck,gjkbyf,valhalla,anarchy,blacks,herbie,kingpin,starfish,nokia,loveit,achilles,
906090,labtec,ncc1701a,fitness,jordan1,brando,arsenal1,bull,kicker,napass,desert,sailboat,bohica,tractor,hidden,muppet,jackson1,jimmy1,terminator,phillies,pa55w0rd,terror,farside,swingers,legacy,frontier,butthole,doughboy,jrcfyf,tuesday,sabbath,daniel1,nebraska,homers,qwertyuio,azamat,fallen,agent007,striker,camels,iguana,looker,pinkfloy,moloko,qwerty123456,dannyboy,luckydog,
789654,pistol,whocares,charmed,skiing,select,franky,puppy,daniil,vladik,vette,vfrcbvrf,ihateyou,nevada,moneys,vkontakte,mandingo,puppies,
666777,mystic,zidane,kotenok,dilligaf,budman,bunghole,zvezda,
123457,triton,golfball,technics,trojans,panda,laptop,rookie,
01011991,
15426378,aberdeen,gustav,jethro,enterprise,igor,stripper,filter,hurrican,rfnthbyf,lespaul,gizmo1,butch,
132435,dthjybrf,
1366613,excalibu,
963852,nofear,momoney,possum,cutter,oilers,moocow,cupcake,gbpltw,batman1,splash,svetik,super1,soleil,bogdan,melissa1,vipers,babyboy,tdutybq,lancelot,ccbill,keystone,passwort,flamingo,firefox,dogman,vortex,rebel,noodle,raven1,zaphod,killme,pokemon1,coolman,danila,designer,skinny,kamikaze,deadman,gopher,doobie,warhammer,deeznuts,freaks,engage,chevy1,steve1,apollo13,poncho,hammers,azsxdc,dracula,
000007,sassy,bitch1,boots,deskjet,
12332,macdaddy,mighty,rangers1,manchest,sterlin,casey1,meatball,mailman,sinatra,cthulhu,summer1,bubbas,cartoon,bicycle,eatpussy,truelove,sentinel,tolkien,breast,capone,lickit,summit,
123456k,peter1,daisy1,kitty1,
123456789z,crazy1,jamesbon,texas1,sexygirl,
362436,sonic,billyboy,redhot,microsof,microlab,daddy1,rockets,iloveyo,fernand,gordon24,danie,cutlass,polska,star69,titties,pantyhos,
01011985,thekid,aikido,gofish,mayday,
1234qwe,coke,anfield,sony,lansing,smut,scotch,sexx,catman,
73501505,hustler,saun,dfkthbz,passwor1,jenny1,azsxdcfv,cheers,irish1,gabrie,tinman,orioles,
1225,charlton,fortuna,
01011970,airbus,rustam,xtreme,bigmoney,zxcasd,retard,grumpy,huskies,boxing,
4runner,kelly1,ultima,warlord,fordf150,oranges,rotten,asdfjkl,superstar,denali,sultan,bikini,saratoga,thor,figaro,sixers,wildfire,vladislav,
128500,sparta,mayhem,greenbay,chewie,music1,number1,cancun,fabie,mellon,poiuytrewq,cloud9,crunch,bigtime,chicken1,piccolo,bigbird,
321654987,billy1,mojo,
01011981,maradona,sandro,chester1,bizkit,rjirfrgbde,
789123,rightnow,jasmine1,hyperion,treasure,meatloaf,armani,rovers,jarhead,
01011986,cruise,coconut,dragoon,utopia,davids,cosmo,rfhbyf,reebok,
1066,charli,giorgi,sticks,sayang,pass1234,exodus,anaconda,zaqxsw,illini,woofwoof,emily1,sandy1,packer,poontang,govols,jedi,tomato,beaner,cooter,creamy,lionking,happy123,albatros,poodle,kenworth,dinosaur,greens,goku,happyday,eeyore,tsunami,cabbage,holyshit,turkey50,memorex,chaser,bogart,orgasm,tommy1,volley,whisper,knopka,ericsson,walleye,
321123,pepper1,katie1,chickens,tyler1,corrado,twisted,
100000,zorro,clemson,zxcasdqwe,tootsie,milana,zenith,fktrcfylhf,shania,frisco,polniypizdec0211,crazybab,junebug,fugazi,rereirf,vfvekz,
1001,sausage,vfczyz,koshka,clapton,justin1,anhyeuem,condom,fubar,hardrock,skywalker,tundra,cocks,gringo,
150781,canon,vitalik,aspire,stocks,samsung1,applepie,abc12345,arjay,gandalf1,boob,pillow,sparkle,gmoney,rockhard,lucky13,samiam,everest,hellyeah,bigsexy,skorpion,rfrnec,hedgehog,australi,candle,slacker,dicks,voyeur,jazzman,america1,bobby1,br0d3r,wolfie,vfksirf,
1qa2ws3ed,
13243546,fright,yosemite,temp,karolina,fart,barsik,surf,cheetah,baddog,deniska,starship,bootie,milena,hithere,kume,greatone,dildo,
50cent,
0.0.0.000,albion,amanda1,midget,lion,maxell,football1,cyclone,freeporn,nikola,bonsai,kenshin,slider,balloon,roadkill,killbill,
222333,jerkoff,
78945612,dinamo,tekken,rambler,goliath,cinnamon,malaka,backdoor,fiesta,packers1,rastaman,fletch,sojdlg123aljg,stefano,artemis,calico,nyjets,damnit,robotech,duchess,rctybz,hooter,keywest,
18436572,hal9000,mechanic,pingpong,operator,presto,sword,rasputin,spank,bristol,faggot,shado,
963852741,amsterda,
321456,wibble,carrera,alibaba,majestic,ramses,duster,route66,trident,clipper,steeler,wrestlin,divine,kipper,gotohell,kingfish,snake1,passwords,buttman,pompey,viagra,zxcvbnm1,spurs,
332211,slutty,lineage2,oleg,macross,pooter,brian1,qwert1,charles1,slave,jokers,yzerman,swimmer,ne1469,nwo4life,solnce,seamus,lolipop,pupsik,moose1,ivanova,secret1,matador,love69,
420247,ktyjxrf,subway,cinder,vermont,pussie,chico,florian,magick,guiness,allsop,ghetto,flash1,a123456789,typhoon,dfkthf,depeche,skydive,dammit,seeker,fuckthis,crysis,kcj9wx5n,umbrella,r2d2c3po,
123123q,snoopdog,critter,theboss,ding,
162534,splinter,kinky,cyclops,jayhawk,
456321,caramel,qwer123,underdog,caveman,onlyme,grapes,feather,hotshot,fuckher,renault,george1,sex123,pippen,
000001,
789987,floppy,cunts,megapass,
1000,pornos,usmc,kickass,great1,quattro,
135246,wassup,helloo,p0015123,nicole1,chivas,shannon1,bullseye,java,fishes,blackhaw,jamesbond,tunafish,juggalo,dkflbckfd,
123789456,dallas1,translator,
122333,beanie,alucard,gfhjkm123,supersta,magicman,ashley1,cohiba,xbox360,caligula,
12131415,facial,
7753191,dfktynbyf,cobra1,cigars,fang,klingon,bob123,safari,looser,
10203,deepthroat,malina,
200000,tazmania,gonzo,goalie,jacob1,monaco,cruiser,misfit,vh5150,tommyboy,marino13,yousuck,sharky,vfhufhbnf,horizon,absolut,brighton,
123456r,death1,kungfu,maxx,forfun,mamapapa,enter1,budweise,banker,getmoney,kostya,qazwsx12,bigbear,vector,fallout,nudist,gunners,royals,chainsaw,scania,trader,blueboy,walrus,eastside,kahuna,qwerty1234,love123,steph,
01011989,cypress,champ,undertaker,ybrjkfq,europa,snowboar,sabres,moneyman,chrisbln,minime,nipper,groucho,whitey,viewsonic,penthous,wolf359,fabric,flounder,coolguy,whitesox,passme,smegma,skidoo,thanatos,fucku2,snapple,dalejr,mondeo,thesims,mybaby,panasoni,sinbad,thecat,topher,frodo,sneakers,q123456,z1x2c3,alfa,chicago1,taylor1,ghjcnjnfr,cat123,olivier,cyber,titanium,
0420,madison1,jabroni,dang,hambone,intruder,holly1,gargoyle,sadie1,static,poseidon,studly,newcastl,sexxxx,poppy,johannes,danzig,beastie,musica,buckshot,sunnyday,adonis,bluedog,bonkers,
2128506,chrono,compute,spawn,
01011988,turbo1,smelly,wapbbs,goldstar,ferrari1,
778899,quantum,pisces,boomboom,gunnar,
1024,test1234,florida1,nike,superman1,multiplelo,custom,motherlode,
1qwerty,westwood,usnavy,apple123,daewoo,korn,stereo,sasuke,sunflowe,watcher,dharma,
555777,mouse1,assholes,babyblue,
123qwerty,marius,walmart,snoop,starfire,tigger1,paintbal,knickers,aaliyah,lokomotiv,theend,winston1,sapper,rover,erotica,scanner,racer,zeus,sexy69,doogie,bayern,joshua1,newbie,scott1,losers,droopy,outkast,martin1,dodge1,wasser,ufkbyf,rjycnfynby,thirteen,
12345z,
112211,hotred,deejay,hotpussy,
192837,jessic,philippe,scout,panther1,cubbies,havefun,magpie,fghtkm,avalanch,newyork1,pudding,leonid,harry1,cbr600,audia4,bimmer,fucku,
01011984,idontknow,vfvfgfgf,
1357,aleksey,builder,
01011987,zerocool,godfather,mylife,donuts,allmine,redfish,
777888,sascha,nitram,bounce,
333666,smokes,
1x2zkg8w,rodman,stunner,zxasqw12,hoosier,hairy,beretta,insert,
123456s,rtyuehe,francesc,tights,cheese1,micron,quartz,hockey1,gegcbr,searay,jewels,bogey,paintball,celeron,padres,bing,syncmaster,ziggy,simon1,beaches,prissy,diehard,orange1,mittens,aleksandra,queens,
02071986,biggles,thongs,southpark,artur,twinkle,gretzky,rabota,cambiami,monalisa,gollum,chuckles,spike1,gladiator,whisky,spongebob,sexy1,
03082006,mazafaka,meathead,
4121,ou8122,barefoot,
12345678q,cfitymrf,bigass,a1s2d3,kosmos,blessing,titty,clevelan,terrapin,ginger1,johnboy,maggot,clarinet,deeznutz,
336699,stumpy,stoney,footbal,traveler,volvo,bucket,snapon,pianoman,hawkeyes,futbol,casanova,tango,goodboy,scuba,honey1,sexyman,warthog,mustard,abc1234,nickel,
10203040,meowmeow,
1012,boricua,prophet,sauron,
12qwas,reefer,andromeda,crystal1,joker1,
90210,goofy,loco,lovesex,triangle,whatsup,mellow,bengals,monster1,maste,
01011910,lover1,love1,
123aaa,sunshin,smeghead,hokies,sting,welder,rambo,cerberus,bunny1,rockford,monke,
1q2w3e4r5,goldwing,gabriell,buzzard,crjhgbjy,james007,rainman,groove,tiberius,purdue,nokia6300,hayabusa,shou,jagger,diver,zigzag,poochie,usarmy,phish,redwood,redwing,
12345679,salamander,silver1,abcd123,sputnik,boobie,ripple,eternal,
12qw34er,thegreat,allstar,slinky,gesperrt,mishka,whiskers,pinhead,overkill,sweet1,rhfcjnrf,montgom240,sersolution,jamie1,starman,proxy,swords,nikolay,bacardi,rasta,badgirl,rebecca1,wildman,penny1,spaceman,
1007,
10101,logan1,hacked,bulldog1,helmet,windsor,buffy1,runescape,trapper,
123451,banane,dbrnjh,ripken,
12345qwe,frisky,shun,fester,oasis,lightning,ib6ub9,cicero,kool,pony,thedog,
784512,
01011992,megatron,illusion,edward1,napster,
11223,squash,roadking,woohoo,
19411945,hoosiers,
01091989,tracker,bagira,midway,leavemealone,br549,
14725836,
235689,menace,rachel1,feng,laser,stoned,realmadrid,
787898,balloons,tinkerbell,
5551212,maria1,pobeda,heineken,sonics,moonlight,optimus,comet,orchid,
02071982,jaybird,kashmir,
12345678a,chuang,chunky,peach,mortgage,rulezzz,saleen,chuckie,zippy,fishing1,gsxr750,doghouse,maxim,reader,shai,buddah,benfica,chou,salomon,meister,eraser,blackbir,bigmike,starter,pissing,angus,deluxe,eagles1,hardcock,
135792468,mian,seahawks,godfathe,bookworm,gregor,intel,talisman,blackjack,babyface,hawaiian,dogfood,zhong,
01011975,sancho,ludmila,medusa,mortimer,
123456654321,roadrunn,just4me,stalin,
01011993,handyman,alphabet,pizzas,calgary,clouds,password2,cgfhnfr,f**k,cubswin,gong,lexus,max123,xxx123,digital1,gfhjkm1,
7779311,missy1,michae,beautifu,gator1,
1005,pacers,buddie,chinook,heckfy,dutchess,sally1,breasts,beowulf,darkman,jenn,tiffany1,zhei,quan,qazwsx1,satana,shang,idontkno,smiths,puddin,nasty1,teddybea,valkyrie,passwd,chao,boxster,killers,yoda,cheater,inuyasha,beast1,wareagle,foryou,dragonball,mermaid,bhbirf,teddy1,dolphin1,misty1,delphi,gromit,sponge,qazzaq,fytxrf,gameover,diao,sergi,beamer,beemer,kittykat,rancid,manowar,adam12,diggler,assword,austin1,wishbone,gonavy,sparky1,fisting,thedude,sinister,
1213,venera,novell,salsero,jayden,fuckoff1,linda1,vedder,
02021987,
1pussy,redline,lust,jktymrf,
02011985,dfcbkbq,dragon12,chrome,gamecube,titten,cong,bella1,leng,
02081988,eureka,bitchass,
147369,banner,lakota,
123321a,mustafa,preacher,hotbox,
02041986,z1x2c3v4,playstation,
01011977,claymore,electra,checkers,zheng,qing,armagedon,
02051986,wrestle,svoboda,bulls,nimbus,alenka,madina,newpass6,onetime,aa123456,bartman,
02091987,silverad,electron,
12345t,devil666,oliver1,skylar,rhtdtlrj,gobucks,johann,
12011987,milkman,
02101985,camper,thunderb,bigbutt,jammin,davide,cheeks,goaway,lighter,claudi,thumbs,pissoff,ghostrider,cocaine,teng,squall,lotus,hootie,blackout,doitnow,subzero,
02031986,marine1,
02021988,pothead,
123456qw,skate,
1369,peng,antoni,neng,miao,bcfields,
1492,marika,
794613,musashi,tulips,nong,piao,chai,ruan,southpar,
02061985,nude,mandarin,
654123,ninjas,cannabis,jetski,xerxes,zhuang,kleopatra,dickie,bilbo,pinky,morgan1,
1020,
1017,dieter,baseball1,tottenham,quest,yfnfkmz,dirtbike,
1234567890a,mango,jackson5,ipswich,iamgod,
02011987,tdutybz,modena,qiao,slippery,qweasd123,bluefish,samtron,toon,
111333,iscool,
02091986,petrov,fuzzy,zhou,
1357924680,mollydog,deng,
02021986,
1236987,pheonix,zhun,ghblehjr,othello,starcraf,
000111,sanfran,a11111,cameltoe,badman,vasilisa,jiang,
1qaz2ws,luan,sveta,
12qw12,akira,chuai,
369963,cheech,beatle,pickup,paloma,
01011983,caravan,elizaveta,gawker,banzai,pussey,mullet,seng,bingo1,bearcat,flexible,farscape,borussia,zhuai,templar,guitar1,toolman,yfcntymrf,chloe1,xiang,slave1,guai,nuggets,
02081984,mantis,slim,scorpio1,fyutkbyf,thedoors,
02081987,
02061986,
123qq123,zappa,fergie,
7ugd
5hip
2j,huai,asdfzxcv,sunflower,pussyman,deadpool,bigtit,
01011982,love12,lassie,skyler,gatorade,carpedie,jockey,mancity,spectre,
02021984,cameron1,artemka,reng,
02031984,iomega,jing,moritz,spice,rhino,spinner,heater,zhai,hover,talon,grease,qiong,corleone,ltybcrf,tian,cowboy1,hippie,chimera,ting,alex123,
02021985,mickey1,corsair,sonoma,aaron1,xxxpass,bacchus,webmaste,chuo,xyz123,chrysler,spurs1,artem,shei,cosmic,
01020304,deutsch,gabriel1,
123455,oceans,
987456321,binladen,latinas,a12345678,speedo,buttercu,
02081989,
21031988,merlot,millwall,ceng,kotaku,jiong,dragonba,
2580,stonecold,snuffy,
01011999,
02011986,hellos,blaze,maggie1,slapper,istanbul,bonjovi,babylove,mazda,bullfrog,phoeni,meng,porsche1,nomore,
02061989,bobdylan,capslock,orion1,zaraza,teddybear,ntktajy,myname,rong,wraith,mets,niao,
02041984,smokie,chevrolet,dialog,gfhjkmgfhjkm,dotcom,vadim,monarch,athlon,mikey1,hamish,pian,liang,coolness,chui,thoma,ramones,ciccio,chippy,eddie1,house1,ning,marker,cougars,jackpot,barbados,reds,pdtplf,knockers,cobalt,amateurs,dipshit,napoli,kilroy,pulsar,jayhawks,daemon,alexey,weng,shuang,
9293709b13,shiner,eldorado,soulmate,mclaren,golfer1,andromed,duan,
50spanks,sexyboy,dogshit,
02021983,shuo,kakashka,syzygy,
111111a,yeahbaby,qiang,netscape,fulham,
120676,gooner,zhui,rainbow6,laurent,dog123,halifax,freeway,carlitos,
147963,eastwood,microphone,monkey12,
1123,persik,coldbeer,geng,nuan,danny1,fgtkmcby,entropy,gadget,just4fun,sophi,baggio,carlito,
1234567891,
02021989,
02041983,specialk,piramida,suan,bigblue,salasana,hopeful,mephisto,bailey1,hack,annie1,generic,violetta,spencer1,arcadia,
02051983,hondas,
9562876,trainer,jones1,smashing,liao,
159632,iceberg,rebel1,snooker,temp123,zang,matteo,fastball,q2w3e4r5,bamboo,fuckyo,shutup,astro,buddyboy,nikitos,redbird,maxxxx,shitface,
02031987,kuai,kissmyass,sahara,radiohea,
1234asdf,wildcard,maxwell1,patric,plasma,heynow,bruno1,shao,bigfish,misfits,sassy1,sheng,
02011988,
02081986,testpass,nanook,cygnus,licking,slavik,pringles,xing,
1022,ninja1,submit,dundee,tiburon,pinkfloyd,yummy,shuai,guang,chopin,obelix,insomnia,stroker,
1a2s3d4f,
1223,playboy1,lazarus,jorda,spider1,homerj,sleeper,
02041982,darklord,cang,
02041988,
02041987,tripod,magician,jelly,telephon,
15975,vsjasnel12,pasword,iverson3,pavlov,homeboy,gamecock,amigo,brodie,budapest,yjdsqgfhjkm,reckless,
02011980,pang,tiger123,
2469,mason1,orient,
01011979,zong,cdtnbr,maksimka,
1011,bushido,taxman,giorgio,sphinx,kazantip,
02101984,concorde,verizon,lovebug,georg,sam123,seadoo,qazwsxedc123,jiao,jezebel,pharmacy,abnormal,jellybea,maxime,puffy,islander,bunnies,jiggaman,drakon,
010180,pluto,zhjckfd,
12365,classics,crusher,mordor,hooligan,strawberry,
02081985,scrabble,hawaii50,
1224,wg8e3wjf,cthtuf,premium,arrow,
123456qwe,mazda626,ramrod,tootie,rhjrjlbk,ghost1,
1211,bounty,niang,
02071984,goat,killer12,sweetnes,porno1,masamune,
426hemi,corolla,mariposa,hjccbz,doomsday,bummer,blue12,zhao,bird33,excalibur,samsun,kirsty,buttfuck,kfhbcf,zhuo,marcello,ozzy,
02021982,dynamite,
655321,master12,
123465,lollypop,stepan,
1qa2ws,spiker,goirish,callum,michael2,moonbeam,attila,henry1,lindros,andrea1,sporty,lantern,
12365478,nextel,violin,volcom,
998877,water1,imation,inspiron,dynamo,citadel,placebo,clowns,tiao,
02061988,tripper,dabears,haggis,merlin1,
02031985,anthrax,amerika,iloveme,vsegda,burrito,bombers,snowboard,forsaken,katarina,a1a2a3,woofer,tigger2,fullmoon,tiger2,spock,hannah1,snoopy1,sexxxy,sausages,stanislav,cobain,robotics,exotic,green123,mobydick,senators,pumpkins,fergus,asddsa,
147741,
258852,windsurf,reddevil,vfitymrf,nevermind,nang,woodland,
4417,mick,shui,q1q2q3,wingman,
69696,superb,zuan,ganesh,pecker,zephyr,anastasiya,icu812,larry1,
02081982,broker,zalupa,mihail,vfibyf,dogger,
7007,paddle,varvara,schalke,
1z2x3c,presiden,yankees2,tuning,poopy,
02051982,concord,vanguard,stiffy,rjhjktdf,felix1,wrench,firewall,boxer,bubba69,popper,
02011984,temppass,gobears,cuan,tipper,fuckme1,kamila,thong,puss,bigcat,drummer1,
02031982,sowhat,digimon,tigers1,rang,jingle,bian,uranus,soprano,mandy1,dusty1,fandango,aloha,pumpkin1,postman,
02061980,dogcat,bombay,pussy123,onetwo,highheel,pippo,julie1,laura1,pepito,beng,smokey1,stylus,stratus,reload,duckie,karen1,jimbo1,
225588,
369258,krusty,snappy,asdf12,electro,
111qqq,kuang,fishin,clit,abstr,christma,qqqqq1,
1234560,carnage,guyver,boxers,kittens,zeng,
1000000,qwerty11,toaster,cramps,yugioh,
02061987,icehouse,zxcvbnm123,pineapple,namaste,harrypotter,mygirl,falcon1,earnhard,fender1,spikes,nutmeg,
01081989,dogboy,
02091983,
369852,softail,mypassword,prowler,bigboss,
1112,harvest,heng,jubilee,killjoy,basset,keng,zaqxswcde,redsox1,biao,titan,misfit99,robot,wifey,kidrock,
02101987,gameboy,enrico,
1z2x3c4v,broncos1,arrows,havana,banger,cookie1,chriss,
123qw,platypus,cindy1,lumber,pinball,foxy,london1,
1023,
05051987,
02041985,password12,superma,longbow,radiohead,nigga,
12051988,spongebo,qwert12345,abrakadabra,dodgers1,
02101989,chillin,niceguy,pistons,hookup,santafe,bigben,jets,
1013,vikings1,mankind,viktoriya,beardog,hammer1,
02071980,reddwarf,magelan,longjohn,jennife,gilles,carmex2,
02071987,stasik,bumper,doofus,slamdunk,pixies,garion,steffi,alessandro,beerman,niceass,warrior1,honolulu,
134679852,visa,johndeer,mother1,windmill,boozer,oatmeal,aptiva,busty,delight,tasty,slick1,bergkamp,badgers,guitars,puffin,
02091981,nikki1,irishman,miller1,zildjian,
123000,airwolf,magnet,anai,install,
02041981,
02061983,astra,romans,megan1,mudvayne,freebird,muscles,dogbert,
02091980,
02091984,snowflak,
01011900,mang,joseph1,nygiants,playstat,junior1,vjcrdf,qwer12,webhompas,giraffe,pelican,jefferso,comanche,bruiser,monkeybo,kjkszpj,
123456l,micro,albany,
02051987,angel123,epsilon,aladin,death666,hounddog,josephin,altima,chilly,
02071988,
78945,ultra,
02041979,gasman,thisisit,pavel,idunno,kimmie,
05051985,paulie,ballin,medion,moondog,manolo,pallmall,climber,fishbone,genesis1,
153624,toffee,tbone,clippers,krypton,jerry1,picturs,compass,
111111q,
02051988,
1121,
02081977,sairam,getout,
333777,cobras,
22041987,bigblock,severin,booster,norwich,whiteout,ctrhtn,
123456m,
02061984,hewlett,shocker,fuckinside,
02031981,chase1,white1,versace,
123456789s,basebal,iloveyou2,bluebell,
08031986,anthon,stubby,foreve,undertak,werder,saiyan,mama123,medic,chipmunk,mike123,mazdarx7,qwe123qwe,bowwow,kjrjvjnbd,celeb,choochoo,demo,lovelife,
02051984,colnago,lithium,
02051989,
15051981,zzzxxx,welcom,anastasi,fidelio,franc,
26061987,roadster,stone55,drifter,hookem,hellboy,
1234qw,cbr900rr,sinned,good123654,storm1,gypsy,zebra,zachary1,toejam,buceta,
02021979,testing1,redfox,lineage,mike1,highbury,koroleva,nathan1,washingt,
02061982,
02091985,vintage,redbaron,dalshe,mykids,
11051987,macbeth,julien,james123,krasotka,
111000,
10011986,
987123,pipeline,tatarin,sensei,codered,komodo,frogman,
7894561230,nascar24,juicy,
01031988,redrose,mydick,pigeon,tkbpfdtnf,smirnoff,
1215,spam,winner1,flyfish,moskva,
81fukkc,
21031987,olesya,starligh,summer99,
13041988,fishhead,freesex,super12,
06061986,azazel,scoobydoo,
02021981,cabron,yogibear,sheba1,konstantin,tranny,chilli,terminat,ghbywtccf,slowhand,soccer12,cricket1,fuckhead,
1002,seagull,achtung,blam,bigbob,bdsm,nostromo,survivor,cnfybckfd,lemonade,boomer1,rainbow1,rober,irinka,cocksuck,peaches1,itsme,sugar1,zodiac,upyours,dinara,
135791,sunny1,chiara,johnson1,
02041989,solitude,habibi,sushi,markiz,smoke1,rockies,catwoman,johnny1,qwerty7,bearcats,username,
01011978,wanderer,ohshit,
02101986,sigma,stephen1,paradigm,
02011989,flanker,sanity,jsbach,spotty,bologna,fantasia,chevys,borabora,cocker,
74108520,
123ewq,
12021988,
01061990,gtnhjdbx,
02071981,
01011960,sundevil,
3000gt,mustang6,gagging,maggi,armstron,yfnfkb,
13041987,revolver,
02021976,trouble1,madcat,jeremy1,jackass1,volkswag,
30051985,corndog,pool6123,marines1,
03041991,pizza1,piggy,sissy,
02031979,sunfire,angelus,undead,
24061986,
14061991,wildbill,shinobi,
45m2do5bs,
123qwer,
21011989,cleopatr,lasvega,hornets,amorcit,
11081989,coventry,nirvana1,destin,sidekick,
20061988,
02081983,gbhfvblf,sneaky,bmw325,
22021989,nfytxrf,sekret,kalina,zanzibar,hotone,qazws,wasabi,heidi1,highlander,blues1,hitachi,paolo,
23041987,slayer1,simba1,
02011981,tinkerbe,kieran,
01121986,
172839,boiler,
1125,bluesman,waffle,asdfgh01,threesom,conan,
1102,reflex,
18011987,nautilus,everlast,fatty,vader1,
01071986,cyborg,ghbdtn123,birddog,rubble,
02071983,suckers,
02021973,skyhawk,
12qw12qw,dakota1,joebob,nokia6233,woodie,longdong,lamer,troll,ghjcnjgfhjkm,
420000,boating,nitro,armada,messiah,
1031,penguin1,
02091989,americ,
02071989,redeye,asdqwe123,
07071987,monty1,goten,spikey,sonata,
635241,tokiohotel,sonyericsson,citroen,compaq1,
1812,umpire,belmont,jonny,pantera1,nudes,palmtree,
14111986,fenway,bighead,razor,gryphon,andyod22,aaaaa1,taco,
10031988,enterme,malachi,dogface,reptile,
01041985,dindom,handball,marseille,candy1,
19101987,torino,tigge,matthias,viewsoni,
13031987,stinker,evangelion,
24011985,
123456123,rampage,sandrine,
02081980,thecrow,astral,
28041987,sprinter,private1,seabee,shibby,
02101988,
25081988,fearless,junkie,
01091987,aramis,antelope,draven,fuck1,mazda6,eggman,
02021990,barselona,buddy123,
19061987,fyfnjkbq,nancy1,
12121990,
10071987,sluggo,kille,hotties,irishka,zxcasdqwe123,shamus,fairlane,honeybee,soccer10,
13061986,fantomas,
17051988,
10051987,
20111986,gladiato,karachi,gambler,gordo,
01011995,biatch,matthe,
25800852,papito,excite,buffalo1,bobdole,cheshire,player1,
28021992,thewho,
10101986,pinky1,mentor,tomahawk,brown1,
03041986,bismillah,bigpoppa,ijrjkfl,
01121988,runaway,
08121986,skibum,studman,helper,squeak,holycow,manfred,harlem,glock,gideon,
987321,
14021985,yellow1,wizard1,margarit,success1,medved,sf49ers,lambda,pasadena,johngalt,quasar,
1776,
02031980,coldplay,amand,playa,bigpimp,
04041991,capricorn,elefant,sweetness,bruce1,luca,dominik,
10011990,biker,
09051945,datsun,elcamino,trinitro,malice,audi,voyager1,
02101983,joe123,carpente,spartan1,mario1,glamour,diaper,
12121985,
22011988,winter1,asimov,callisto,nikolai,pebble,
02101981,vendetta,david123,boytoy,
11061985,
02031989,iloveyou1,stupid1,cayman,casper1,zippo,yamahar1,wildwood,foxylady,calibra,
02041980,
27061988,dungeon,leedsutd,
30041986,
11051990,bestbuy,antares,dominion,
24680,
01061986,skillet,enforcer,derparol,
01041988,
196969,
29071983,f00tball,purple1,mingus,
25031987,
21031990,remingto,giggles,klaste,
3x7pxr,
01011994,coolcat,
29051989,megane,
20031987,
02051980,
04041988,synergy,
0000007,macman,iforget,adgjmp,vjqgfhjkm,
28011987,rfvfcenhf,
16051989,
25121987,
16051987,rogue,mamamia,
08051990,
20091991,
1210,carnival,bolitas,paris1,dmitriy,dimas,
05051989,papillon,knuckles,
29011985,hola,tophat,
28021990,
100500,cutiepie,devo,
415263,ducks,ghjuhfvvf,asdqwe,
22021986,freefall,parol,
02011983,zarina,buste,vitamin,warez,bigones,
17061988,baritone,jamess,twiggy,mischief,bitchy,hetfield,
1003,dontknow,grinch,sasha_007,
18061990,
12031985,
12031987,calimero,
224466,letmei,
15011987,acmilan,alexandre,
02031977,
08081988,whiteboy,
21051991,barney1,
02071978,money123,
18091985,bigdawg,
02031988,cygnusx1,zoloto,
31011987,firefigh,blowfish,screamer,lfybbk,
20051988,chelse,
11121986,
01031989,harddick,sexylady,
30031988,
02041974,auditt,pizdec,kojak,kfgjxrf,
20091988,
123456ru,wp2003wp,
1204,
15051990,slugger,kordell1,
03031986,swinging,
01011974,
02071979,rockie,dimples,
1234123,
1dragon,trucking,rusty2,roger1,marijuana,kerouac,
02051978,
08031985,paco,thecure,keepout,kernel,noname123,
13121985,francisc,bozo,
02011982,
22071986,
02101979,obsidian,
12345qw,spud,tabasco,
02051985,jaguars,dfktynby,kokomo,popova,notused,sevens,
4200,magneto,
02051976,roswell,
15101986,
21101986,lakeside,bigbang,aspen,little1,
14021986,loki,suckmydick,strawber,carlos1,nokian73,dirty1,joshu,
25091987,
16121987,
02041975,advent,
17011987,slimshady,whistler,
10101990,stryker,
22031984,
15021985,
01031985,blueball,
26031988,ksusha,bahamut,robocop,w_pass,chris123,impreza,prozac,bookie,bricks,
13021990,alice1,cassandr,
11111q,john123,
4ever,korova,
02051973,
142857,
25041988,paramedi,eclipse1,salope,
07091990,
1124,darkangel,
23021986,
999666,nomad,
02051981,smackdow,
01021990,yoyoma,argentin,moonligh,
57chevy,bootys,hardone,capricor,galant,spanker,dkflbr,
24111989,magpies,krolik,
21051988,cevthrb,cheddar,
22041988,bigbooty,scuba1,qwedsa,duffman,bukkake,acura,johncena,sexxy,p@ssw0rd,
258369,cherries,
12345s,asgard,leopold,fuck123,mopar,lalakers,dogpound,matrix1,crusty,spanner,kestrel,fenris,universa,peachy,assasin,lemmein,eggplant,hejsan,canucks,wendy1,doggy1,aikman,tupac,turnip,godlike,fussball,golden1,
19283746,april1,django,petrova,captain1,vincent1,ratman,taekwondo,chocha,serpent,perfect1,capetown,vampir,amore,gymnast,timeout,nbvjatq,blue32,ksenia,k.lvbkf,nazgul,budweiser,clutch,mariya,sylveste,
02051972,beaker,cartman1,q11111,sexxx,forever1,loser1,marseill,magellan,vehpbr,sexgod,jktxrf,hallo123,
132456,liverpool1,southpaw,seneca,camden,
357159,camero,tenchi,johndoe,
145236,roofer,
741963,vlad,
02041978,fktyrf,zxcv123,wingnut,wolfpac,notebook,pufunga7782,brandy1,biteme1,goodgirl,redhat,
02031978,challeng,millenium,hoops,maveric,noname,angus1,gaell,onion,olympus,sabrina1,ricard,sixpack,gratis,gagged,camaross,hotgirls,flasher,
02051977,bubba123,goldfing,moonshin,gerrard,volkov,sonyfuck,mandrake,
258963,tracer,lakers1,asians,susan1,money12,helmut,boater,diablo2,
1234zxcv,dogwood,bubbles1,happy2,randy1,aries,beach1,marcius2,navigator,goodie,hellokitty,fkbyjxrf,earthlink,lookout,jumbo,opendoor,stanley1,marie1,
12345m,
07071977,ashle,wormix,murzik,
02081976,lakewood,bluejays,loveya,commande,gateway2,peppe,
01011976,
7896321,goth,oreo,slammer,rasmus,faith1,knight1,stone1,redskin,ironmaiden,gotmilk,destiny1,dejavu,
1master,midnite,timosha,espresso,delfin,toriamos,oberon,ceasar,markie,
1a2s3d,ghhh47hj7649,vjkjrj,daddyo,dougie,disco,auggie,lekker,therock1,ou8123,start1,noway,p4ssw0rd,shadow12,
333444,saigon,
2fast4u,capecod,
23skidoo,qazxcv,beater,bremen,aaasss,roadrunner,peace1,
12345qwer,
02071975,platon,bordeaux,vbkfirf,
135798642,test12,supernov,beatles1,qwert40,optimist,vanessa1,prince1,ilovegod,nightwish,natasha1,alchemy,bimbo,blue99,patches1,gsxr1000,richar,hattrick,hott,solaris,proton,nevets,enternow,beavis1,amigos,
159357a,ambers,lenochka,
147896,suckdick,shag,intercourse,blue1234,spiral,
02061977,tosser,ilove,
02031975,cowgirl,canuck,q2w3e4,munch,spoons,waterboy,
123567,evgeniy,savior,zasada,redcar,mamacita,terefon,globus,doggies,htubcnhfwbz,
1008,cuervo,suslik,azertyui,limewire,houston1,stratfor,steaua,coors,tennis1,
12345qwerty,stigmata,derf,klondike,patrici,marijuan,hardball,odyssey,nineinch,boston1,pass1,beezer,sandr,charon,power123,a1234,vauxhall,
875421,awesome1,reggae,boulder,funstuff,iriska,krokodil,rfntymrf,sterva,champ1,bball,peeper,m123456,toolbox,cabernet,sheepdog,magic32,pigpen,
02041977,holein1,lhfrjy,banan,dabomb,natalie1,jennaj,montana1,joecool,funky,steven1,ringo,junio,sammy123,qqqwww,baltimor,footjob,geezer,
357951,mash4077,cashmone,pancake,monic,grandam,bongo,yessir,gocubs,nastia,vancouve,barley,dragon69,watford,ilikepie,
02071976,laddie,
123456789m,hairball,toonarmy,pimpdadd,cvthnm,hunte,davinci,lback,sophie1,firenze,q1234567,admin1,bonanza,elway7,daman,strap,azert,wxcvbn,afrika,theforce,
123456t,idefix,wolfen,houdini,scheisse,default,beech,maserati,
02061976,sigmachi,dylan1,bigdicks,eskimo,mizzou,
02101976,riccardo,egghead,
111777,kronos,ghbrjk,chaos1,jomama,rfhnjirf,rodeo,dolemite,cafc91,nittany,pathfind,mikael,password9,vqsablpzla,purpl,gabber,modelsne,myxworld,hellsing,punker,rocknrol,fishon,fuck69,
02041976,lolol,twinkie,tripleh,cirrus,redbone,killer123,biggun,allegro,gthcbr,smith1,wanking,bootsy,barry1,mohawk,koolaid,
5329,futurama,samoht,klizma,
996633,lobo,honeys,peanut1,
556677,zxasqw,joemama,javelin,samm,
223322,sandra1,flicks,montag,nataly,
3006,tasha1,
1235789,dogbone,poker1,p0o9i8u7,goodday,smoothie,toocool,max333,metroid,archange,vagabond,billabon,
22061941,tyson1,
02031973,darkange,skateboard,evolutio,morrowind,wizards,frodo1,rockin,cumslut,plastics,zaqwsxcde,
5201314,doit,outback,bumble,dominiqu,persona,nevermore,alinka,
02021971,forgetit,sexo,all4one,c2h5oh,petunia,sheeba,kenny1,elisabet,aolsucks,woodstoc,pumper,
02011975,fabio,granada,scrapper,
123459,minimoni,q123456789,breaker,
1004,
02091976,ncc74656,slimshad,friendster,austin31,wiseguy,donner,dilbert1,
132465,blackbird,buffet,jellybean,barfly,behappy,
01011971,carebear,fireblad,
02051975,boxcar,cheeky,kiteboy,hello12,panda1,elvisp,opennow,doktor,alex12,
02101977,pornking,flamengo,
02091975,snowbird,lonesome,robin1,
11111a,weed420,baracuda,bleach,
12345abc,nokia1,metall,singapor,mariner,herewego,dingo,tycoon,cubs,blunts,proview,
123456789d,kamasutra,lagnaf,vipergts,navyseal,starwar,masterbate,wildone,peterbil,cucumber,butkus,
123qwert,climax,deniro,gotribe,cement,scooby1,summer69,harrier,shodan,newyear,
02091977,starwars1,romeo1,sedona,harald,doubled,sasha123,bigguns,salami,awnyce,kiwi,homemade,pimping,azzer,bradley1,warhamme,linkin,dudeman,qwe321,pinnacle,maxdog,flipflop,lfitymrf,fucker1,acidburn,esquire,sperma,fellatio,jeepster,thedon,sexybitch,pookey,spliff,widget,vfntvfnbrf,trinity1,mutant,samuel1,meliss,gohome,
1q2q3q,mercede,comein,grin,cartoons,paragon,henrik,rainyday,pacino,senna,bigdog1,alleycat,
12345qaz,narnia,mustang2,tanya1,gianni,apollo11,wetter,clovis,escalade,rainbows,freddy1,smart1,daisydog,s123456,cocksucker,pushkin,lefty,sambo,fyutkjxtr,hiziad,boyz,whiplash,orchard,newark,adrenalin,
1598753,bootsie,chelle,trustme,chewy,golfgti,tuscl,ambrosia,
5wr2i7h8,penetration,shonuf,jughead,payday,stickman,gotham,kolokol,johnny5,kolbasa,stang,puppydog,charisma,gators1,mone,jakarta,draco,nightmar,
01011973,inlove,laetitia,
02091973,tarpon,nautica,meadow,
0192837465,luckyone,
14881488,chessie,goldeney,tarakan,
69camaro,bungle,wordup,interne,fuckme2,
515000,dragonfl,sprout,
02081974,gerbil,bandit1,
02071971,melanie1,phialpha,camber,kathy1,adriano,gonzo1,
10293847,bigjohn,bismarck,
7777777a,scamper,
12348765,rabbits,
222777,bynthytn,dima123,alexander1,mallorca,dragster,favorite6,beethove,burner,cooper1,fosters,hello2,normandy,
777999,sebring,
1michael,lauren1,blake1,killa,
02091971,nounours,trumpet1,thumper1,playball,xantia,rugby1,rocknroll,guillaum,angela1,strelok,prosper,buttercup,masterp,dbnfkbr,cambridg,venom,treefrog,lumina,
1234566,supra,sexybabe,freee,shen,frogs,driller,pavement,grace1,dicky,checker,smackdown,pandas,cannibal,asdffdsa,blue42,zyjxrf,nthvbyfnjh,melrose,neon,jabber,gamma,
369258147,aprilia,atticus,benessere,catcher,skipper1,azertyuiop,sixty9,thierry,treetop,jello,melons,
123456789qwe,tantra,buzzer,catnip,bouncer,computer1,sexyone,ananas,young1,olenka,sexman,mooses,kittys,sephiroth,contra,hallowee,skylark,sparkles,
777333,
1qazxsw23edc,lucas1,q1w2e3r,gofast,hannes,amethyst,ploppy,flower2,hotass,amatory,volleyba,dixie1,bettyboo,ticklish,
02061974,frenchy,phish1,murphy1,trustno,
02061972,leinad,mynameis,spooge,jupiter1,hyundai,frosch,junkmail,abacab,marbles,
32167,casio,sunshine1,wayne1,longhair,caster,snicker,
02101973,gannibal,skinhead,hansol,gatsby,segblue2,montecar,plato,gumby,kaboom,matty,bosco1,
888999,jazzy,panter,jesus123,charlie2,giulia,candyass,sex69,travis1,farmboy,special1,
02041973,letsdoit,password01,allison1,abcdefg1,notredam,ilikeit,
789654123,liberty1,rugger,uptown,alcatraz,
123456w,airman,
007bond,navajo,kenobi,terrier,stayout,grisha,frankie1,fluff,
1qazzaq1,
1234561,virginie,
1234568,tango1,werdna,octopus,fitter,dfcbkbcf,blacklab,
115599,montrose,allen1,supernova,frederik,ilovepussy,justice1,radeon,playboy2,blubber,sliver,swoosh,motocros,lockdown,pearls,thebear,istheman,pinetree,biit,
1234rewq,rustydog,tampabay,titts,babycake,jehovah,vampire1,streaming,collie,camil,fidelity,calvin1,stitch,gatit,restart,puppy1,budgie,grunt,capitals,hiking,dreamcas,zorro1,
321678,riffraff,makaka,playmate,napalm,rollin,amstel,zxcvb123,samanth,rumble,fuckme69,jimmys,
951357,pizzaman,
1234567899,tralala,delpiero,alexi,yamato,itisme,
1million,vfndtq,kahlua,londo,wonderboy,carrots,tazz,ratboy,rfgecnf,
02081973,nico,fujitsu,tujhrf,sergbest,blobby,
02051970,sonic1,
1357911,smirnov,video1,panhead,bucky,
02031974,
44332211,duffer,cashmoney,left4dead,bagpuss,salman,
01011972,titfuck,
66613666,england1,malish,dresden,lemans,darina,zapper,
123456as,
123456qqq,met2002,
02041972,redstar,blue23,
1234509876,pajero,booyah,please1,tetsuo,semper,finder,hanuman,sunlight,
123456n,
02061971,treble,cupoi,password99,dimitri,
3ip76k2,popcorn1,lol12345,stellar,nympho,shark1,keith1,saskia,bigtruck,revoluti,rambo1,asd222,feelgood,phat,gogators,bismark,cola,puck,furball,burnout,slonik,bowtie,mommy1,icecube,fabienn,mouser,papamama,rolex,giants1,blue11,trooper1,momdad,iklo,morten,rhubarb,gareth,
123456d,blitz,canada1,r2d2,brest,tigercat,usmarine,lilbit,benny1,azrael,lebowski,
12345r,madagaskar,begemot,loverman,dragonballz,italiano,mazda3,naughty1,onions,diver1,cyrano,capcom,asdfg123,forlife,fisherman,weare138,requiem,mufasa,alpha123,piercing,hellas,abracadabra,duckman,caracas,macintos,
02011971,jordan2,crescent,fduecn,hogtied,eatmenow,ramjet,
18121812,kicksass,whatthe,discus,rfhfvtkmrf,rufus1,sqdwfe,mantle,vegitto,trek,dan123,paladin1,rudeboy,liliya,lunchbox,riversid,acapulco,libero,dnsadm,maison,toomuch,boobear,hemlock,sextoy,pugsley,misiek,athome,migue,altoids,marcin,
123450,rhfcfdbwf,jeter2,rhinos,rjhjkm,mercury1,ronaldinho,shampoo,makayla,kamilla,masterbating,tennesse,holger,john1,matchbox,hores,poptart,parlament,goodyear,asdfgh1,
02081970,hardwood,alain,erection,hfytnrb,highlife,implants,benjami,dipper,jeeper,bendover,supersonic,babybear,laserjet,gotenks,bama,natedogg,aol123,pokemo,rabbit1,raduga,sopranos,cashflow,menthol,pharao,hacking,
334455,ghjcnbnenrf,lizzy,muffin1,pooky,penis1,flyer,gramma,dipset,becca,ireland1,diana1,donjuan,pong,ziggy1,alterego,simple1,cbr900,logger,
111555,claudia1,cantona7,matisse,ljxtymrf,victori,harle,mamas,encore,mangos,iceman1,diamon,alexxx,tiamat,
5000,desktop,mafia,smurf,princesa,shojou,blueberr,welkom,maximka,
123890,
123q123,tammy1,bobmarley,clips,demon666,ismail,termite,laser1,missie,altair,donna1,bauhaus,trinitron,mogwai,flyers88,juniper,nokia5800,boroda,jingles,qwerasdfzxcv,shakur,
777666,legos,mallrats,
1qazxsw,goldeneye,tamerlan,julia1,backbone,spleen,
49ers,shady,darkone,medic1,justi,giggle,cloudy,aisan,douche,parkour,bluejay,huskers1,redwine,
1qw23er4,satchmo,
1231234,nineball,stewart1,ballsack,probes,kappa,amiga,flipper1,dortmund,
963258,trigun,
1237895,homepage,blinky,screwy,gizzmo,belkin,chemist,coolhand,chachi,braves1,thebest,greedisgood,pro100,banana1,
101091m,
123456g,wonderfu,barefeet,
8inches,
1111qqqq,kcchiefs,qweasdzxc123,metal1,jennifer1,xian,asdasd123,pollux,cheerleaers,fruity,mustang5,turbos,shopper,photon,espana,hillbill,oyster,macaroni,gigabyte,jesper,motown,tuxedo,buster12,triplex,cyclones,estrell,mortis,holla,
456987,fiddle,sapphic,jurassic,thebeast,ghjcnjq,baura,spock1,metallica1,karaoke,nemrac58,love1234,
02031970,flvbybcnhfnjh,frisbee,diva,ajax,feathers,flower1,soccer11,allday,mierda,pearl1,amature,marauder,
333555,redheads,womans,egorka,godbless,
159263,nimitz,aaaa1111,sashka,madcow,socce,greywolf,baboon,pimpdaddy,
123456789r,reloaded,lancia,rfhfylfi,dicker,placid,grimace,
22446688,olemiss,whores,culinary,wannabe,maxi,
1234567aa,amelie,riley1,trample,phantom1,baberuth,bramble,asdfqwer,vides,
4you,abc123456,taichi,aztnm,smother,outsider,hakr,blackhawk,bigblack,girlie,spook,valeriya,gianluca,freedo,
1q2q3q4q,handbag,lavalamp,cumm,pertinant,whatup,nokia123,redlight,patrik,
111aaa,poppy1,dfytxrf,aviator,sweeps,kristin1,cypher,elway,yinyang,access1,poophead,tucson,noles1,monterey,waterfal,dank,dougal,
918273,suede,minnesot,legman,bukowski,ganja,mammoth,riverrat,asswipe,daredevi,lian,arizona1,kamikadze,alex1234,smile1,angel2,
55bgates,bellagio,
0001,wanrltw,stiletto,lipton,arsena,biohazard,bbking,chappy,tetris,as123456,darthvad,lilwayne,nopassword,
7412369,
123456789987654321,natchez,glitter,
14785236,mytime,rubicon,moto,pyon,wazzup,tbird,shane1,nightowl,getoff,beckham7,trueblue,hotgirl,nevermin,deathnote,
13131,taffy,bigal,copenhag,apricot,gallaries,dtkjcbgtl,totoro,onlyone,civicsi,jesse1,baby123,sierra1,festus,abacus,sickboy,fishtank,fungus,charle,golfpro,teensex,mario66,seaside,aleksei,rosewood,blackberry,
1020304050,bedlam,schumi,deerhunt,contour,darkelf,surveyor,deltas,pitchers,
741258963,dipstick,funny1,lizzard,
112233445566,jupiter2,softtail,titman,greenman,z1x2c3v4b5,smartass,
12345677,notnow,myworld,nascar1,chewbacc,nosferatu,downhill,dallas22,kuan,blazers,whales,soldat,craving,powerman,yfcntyf,hotrats,cfvceyu,qweasdzx,princess1,feline,qqwwee,chitown,
1234qaz,mastermind,
114477,dingbat,care1839,standby,kismet,atreides,dogmeat,icarus,monkeyboy,alex1,mouses,nicetits,sealteam,chopper1,crispy,winter99,rrpass1,myporn,myspace1,corazo,topolino,ass123,lawman,muffy,orgy,
1love,passord,hooyah,ekmzyf,pretzel,amonra,nestle,
01011950,jimbeam,happyman,z12345,stonewal,helios,manunited,harcore,dick1,gaymen,
2hot4u,light1,qwerty13,kakashi,pjkjnj,alcatel,taylo,allah,buddydog,ltkmaby,mongo,blonds,start123,audia6,
123456v,civilwar,bellaco,turtles,mustan,deadspin,aaa123,fynjirf,lucky123,tortoise,amor,summe,waterski,zulu,drag0n,dtxyjcnm,gizmos,strife,interacial,pusyy,goose1,bear1,equinox,matri,jaguar1,tobydog,sammys,nachos,traktor,bryan1,morgoth,
444555,dasani,miami1,mashka,xxxxxx1,ownage,nightwin,hotlips,passmast,cool123,skolko,eldiablo,manu,
1357908642,screwyou,badabing,foreplay,hydro,kubrick,seductive,demon1,comeon,galileo,aladdin,metoo,happines,
902100,mizuno,caddy,bizzare,girls1,redone,ohmygod,sable,bonovox,girlies,hamper,opus,gizmodo1,aaabbb,pizzahut,
999888,rocky2,anton1,kikimora,peavey,ocelot,a1a2a3a4,
2wsx3edc,jackie1,solace,sprocket,galary,chuck1,volvo1,shurik,poop123,locutus,virago,wdtnjxtr,tequier,bisexual,doodles,makeitso,fishy,
789632145,nothing1,fishcake,sentry,libertad,oaktree,fivestar,adidas1,vegitta,mississi,spiffy,carme,neutron,vantage,agassi,boners,
123456789v,hilltop,taipan,barrage,kenneth1,fister,martian,willem,lfybkf,bluestar,moonman,ntktdbpjh,paperino,bikers,daffy,benji,quake,dragonfly,suckcock,danilka,lapochka,belinea,calypso,asshol,camero1,abraxas,mike1234,womam,q1q2q3q4q5,youknow,maxpower,pic's,audi80,sonora,raymond1,tickler,tadpole,belair,crazyman,finalfantasy,
999000,jonatha,paisley,kissmyas,morgana,monste,mantra,spunk,magic123,jonesy,mark1,alessand,
741258,baddest,ghbdtnrfrltkf,zxccxz,tictac,augustin,racers,
7grout,foxfire,
99762000,openit,nathanie,
1z2x3c4v5b,seadog,gangbanged,lovehate,hondacbr,harpoon,mamochka,fisherma,bismilla,locust,wally1,spiderman1,saffron,utjhubq,
123456987,
20spanks,safeway,pisser,bdfyjd,kristen1,bigdick1,magenta,vfhujif,anfisa,friday13,qaz123wsx,
0987654321q,tyrant,guan,meggie,kontol,nurlan,ayanami,rocket1,yaroslav,websol76,mutley,hugoboss,websolutions,elpaso,gagarin,badboys,sephirot,
918273645,newuser,qian,edcrfv,booger1,
852258,lockout,timoxa94,mazda323,firedog,sokolova,skydiver,jesus777,
1234567890z,soulfly,canary,malinka,guillerm,hookers,dogfart,surfer1,osprey,india123,rhjkbr,stoppedby,nokia5530,
123456789o,blue1,werter,divers,
3000,
123456f,alpina,cali,whoknows,godspeed,
986532,foreskin,fuzzy1,heyyou,didier,slapnuts,fresno,rosebud1,sandman1,bears1,blade1,honeybun,queen1,baronn,pakista,philipp,
9111961,topsecret,sniper1,
214365,slipper,letsfuck,pippen33,godawgs,mousey,qw123456,scrotum,loveis,lighthou,bp2002,nancy123,jeffrey1,susieq,buddy2,ralphie,trout1,willi,antonov,sluttey,rehbwf,marty1,darian,losangeles,letme1n,
12345d,pusssy,godiva,ender,golfnut,leonidas,a1b2c3d4e5,puffer,general1,wizzard,lehjxrf,racer1,bigbucks,cool12,buddys,zinger,esprit,vbienrf,josep,tickling,froggie,
987654321a,
895623,daddys,crumbs,gucci,mikkel,opiate,tracy1,christophe,came11,
777555,petrovich,humbug,dirtydog,allstate,horatio,wachtwoord,creepers,squirts,rotary,bigd,georgia1,fujifilm,
2sweet,dasha,yorkie,slimjim,wiccan,kenzie,system1,skunk,b12345,getit,pommes,daredevil,sugars,bucker,piston,lionheart,
1bitch,
515051,catfight,recon,icecold,fantom,vodafone,kontakt,boris1,vfcnth,canine,
01011961,valleywa,faraon,chickenwing101,qq123456,livewire,livelife,roosters,jeepers,ilya1234,coochie,pavlik,dewalt,dfhdfhf,architec,blackops,
1qaz2wsx3edc4rfv,rhfcjnf,wsxedc,teaser,sebora,
25252,rhino1,ankara,swifty,decimal,redleg,shanno,nermal,candies,smirnova,dragon01,photo1,ranetki,a1s2d3f4g5,axio,wertzu,maurizio,
6uldv
8,zxcvasdf,punkass,flowe,graywolf,peddler,
3rjs1la7qe,mpegs,seawolf,ladyboy,pianos,piggies,vixen,alexus,orpheus,gdtrfb,z123456,macgyver,hugetits,ralph1,flathead,maurici,mailru,goofball,nissan1,nikon,stopit,odin,big1,smooch,reboot,famil,bullit,anthony7,gerhard,methos,
124038,morena,eagle2,jessica2,zebras,getlost,gfynthf,
123581321,sarajevo,indon,comets,tatjana,rfgbnjirf,joystick,batman12,
123456c,sabre,beerme,victory1,kitties,
1475369,badboy1,booboo1,comcast,slava,squid,saxophon,lionhear,qaywsx,bustle,nastena,roadway,loader,hillside,starlight,
24681012,niggers,access99,bazooka,molly123,blackice,bandi,cocacol,nfhfrfy,timur,muschi,horse1,quant4307s,squerting,oscars,mygirls,flashman,tangerin,goofy1,p0o9i8,housewifes,newness,monkey69,escorpio,password11,hippo,warcraft3,qazxsw123,qpalzm,ribbit,ghbdtndctv,bogota,star123,
258000,lincoln1,bigjim,lacoste,firestorm,legenda,indain,ludacris,milamber,
1009,evangeli,letmesee,a111111,hooters1,bigred1,shaker,husky,a4tech,cnfkrth,argyle,rjhjdf,nataha,
0o9i8u7y,gibson1,sooners1,glendale,archery,hoochie,stooge,aaaaaa1,scorpions,school1,vegas1,rapier,mike23,bassoon,groupd2013,macaco,baker1,labia,freewill,santiag,silverado,butch1,vflfufcrfh,monica1,rugrat,cornhole,aerosmit,bionicle,gfgfvfvf,daniel12,virgo,fmale,favorite2,detroit1,pokey,shredder,baggies,wednesda,cosmo1,mimosa,sparhawk,firehawk,romario,
911turbo,funtimes,fhntvrf,nexus6,
159753456,timothy1,bajingan,terry1,frenchie,raiden,
1mustang,babemagnet,
74123698,nadejda,truffles,rapture,douglas1,lamborghini,motocross,rjcvjc,
748596,skeeter1,dante1,angel666,telecom,carsten,pietro,bmw318,astro1,carpediem,samir,orang,helium,scirocco,fuzzball,rushmore,rebelz,hotspur,lacrimosa,chevys10,madonna1,domenico,yfnfirf,jachin,shelby1,bloke,dawgs,dunhill,atlanta1,service1,mikado,devilman,angelit,reznor,euphoria,lesbain,checkmat,browndog,phreak,blaze1,crash1,farida,mutter,luckyme,horsemen,vgirl,jediknig,asdas,cesare,allnight,rockey,starlite,truck1,passfan,close-up,samue,cazzo,wrinkles,homely,eatme1,sexpot,snapshot,dima1995,asthma,thetruth,ducky,blender,priyanka,gaucho,dutchman,sizzle,kakarot,
651550,passcode,justinbieber,
666333,elodie,sanjay,
110442,alex01,lotus1,
2300mj,lakshmi,zoomer,quake3,
12349876,teapot,
12345687,ramada,pennywis,striper,pilot1,chingon,optima,nudity,ethan1,euclid,beeline,loyola,biguns,zaq12345,bravo1,disney1,buffa,assmunch,vivid,
6661313,wellingt,aqwzsx,madala11,
9874123,sigmar,pictere,tiptop,bettyboop,dinero,tahiti,gregory1,bionic,speed1,fubar1,lexus1,denis1,hawthorn,saxman,suntzu,bernhard,dominika,camaro1,hunter12,balboa,bmw2002,seville,diablo1,vfhbyjxrf,
1234abc,carling,lockerroom,punani,darth,baron1,vaness,
1password,libido,picher,
232425,karamba,futyn007,daydream,
11001001,dragon123,friends1,bopper,rocky123,chooch,asslover,shimmer,riddler,openme,tugboat,sexy123,midori,gulnara,christo,swatch,laker,offroad,puddles,hackers,mannheim,manager1,horseman,roman1,dancer1,komputer,pictuers,nokia5130,ejaculation,lioness,
123456y,evilone,nastenka,pushok,javie,lilman,
3141592,mjolnir,toulouse,pussy2,bigworm,smoke420,fullback,extensa,dreamcast,belize,delboy,willie1,casablanca,csyjxtr,ricky1,bonghit,salvator,basher,pussylover,rosie1,
963258741,vivitron,cobra427,meonly,armageddon,myfriend,zardoz,qwedsazxc,kraken,fzappa,starfox,
333999,illmatic,capoeira,weenie,ramzes,freedom2,toasty,pupkin,shinigami,fhvfutljy,nocturne,churchil,thumbnils,tailgate,neworder,sexymama,goarmy,cerebus,michelle1,vbifyz,surfsup,earthlin,dabulls,basketbal,aligator,mojojojo,saibaba,welcome2,wifes,wdtnjr,
12345w,slasher,papabear,terran,footman,hocke,
153759,texans,tom123,sfgiants,billabong,aassdd,monolith,xxx777,l3tm31n,ticktock,newone,hellno,japanees,contortionist,admin123,scout1,alabama1,divx1,rochard,privat,radar1,bigdad,fhctybq,tortuga,citrus,avanti,fantasy1,woodstock,s12345,fireman1,embalmer,woodwork,bonzai,konyor,newstart,jigga,panorama,goats,smithy,rugrats,hotmama,daedalus,nonstop,fruitbat,lisenok,quaker,violator,
12345123,my3sons,cajun,fraggle,gayboy,oldfart,vulva,knickerless,orgasms,undertow,binky,litle,kfcnjxrf,masturbation,bunnie,alexis1,planner,transexual,sparty,leeloo,monies,fozzie,stinger1,landrove,anakonda,scoobie,yamaha1,henti,star12,rfhlbyfk,beyonce,catfood,cjytxrf,zealots,strat,fordtruc,archangel,silvi,sativa,boogers,miles1,bigjoe,tulip,petite,greentea,shitter,jonboy,voltron,morticia,evanescence,
3edc4rfv,longshot,windows1,serge,aabbcc,starbucks,sinful,drywall,prelude1,www123,camel1,homebrew,marlins,
123412,letmeinn,domini,swampy,plokij,fordf350,webcam,michele1,bolivi,
27731828,wingzero,qawsedrftg,shinji,sverige,jasper1,piper1,cummer,iiyama,gocats,amour,alfarome,jumanji,mike69,fantasti,
1monkey,w00t88,shawn1,lorien,
1a2s3d4f5g,koleso,murph,natascha,sunkist,kennwort,emine,grinder,m12345,q1q2q3q4,cheeba,money2,qazwsxedc1,diamante,prosto,pdiddy,stinky1,gabby1,luckys,franci,pornographic,moochie,gfhjdjp,samdog,empire1,comicbookdb,emili,motdepasse,iphone,braveheart,reeses,nebula,sanjose,bubba2,kickflip,arcangel,superbow,porsche911,xyzzy,nigger1,dagobert,devil1,alatam,monkey2,barbara1,
12345v,vfpfafrf,alessio,babemagn,aceman,arrakis,kavkaz,
987789,jasons,berserk,sublime1,rogue1,myspace,buckwhea,csyekz,pussy4me,vette1,boots1,boingo,arnaud,budlite,redstorm,paramore,becky1,imtheman,chango,marley1,milkyway,
666555,giveme,mahalo,lux2000,lucian,paddy,praxis,shimano,bigpenis,creeper,newproject2004,rammstei,j3qq4h7h2v,hfljcnm,lambchop,anthony2,bugman,gfhjkm12,dreamer1,stooges,cybersex,diamant,cowboyup,maximus1,sentra,
615243,goethe,manhatta,fastcar,selmer,
1213141516,yfnfitymrf,denni,chewey,yankee1,elektra,
123456789p,trousers,fishface,topspin,orwell,vorona,sodapop,motherfu,ibilltes,forall,kookie,ronald1,balrog,maximilian,mypasswo,sonny1,zzxxcc,tkfkdg,magoo,mdogg,heeled,gitara,lesbos,marajade,tippy,morozova,enter123,lesbean,pounded,asd456,fialka,scarab,sharpie,spanky1,gstring,sachin,
12345asd,princeto,hellohel,ursitesux,billows,
1234kekc,kombat,cashew,duracell,kseniya,sevenof9,kostik,arthur1,corvet07,rdfhnbhf,songoku,tiberian,needforspeed,
1qwert,dropkick,kevin123,panache,libra,a123456a,kjiflm,vfhnsirf,cntgfy,iamcool,narut,buffer,sk8ordie,urlaub,fireblade,blanked,marishka,gemini1,altec,gorillaz,chief1,revival47,ironman1,space1,ramstein,doorknob,devilmaycry,nemesis1,sosiska,pennstat,monday1,pioner,shevchenko,detectiv,evildead,blessed1,aggie,coffees,tical,scotts,bullwink,marsel,krypto,adrock,rjitxrf,asmodeus,rapunzel,theboys,hotdogs,deepthro,maxpayne,veronic,fyyeirf,otter,cheste,abbey1,thanos,bedrock,bartok,google1,xxxzzz,rodent,montecarlo,hernande,mikayla,
123456789l,bravehea,
12locked,ltymub,pegasus1,ameteur,saltydog,faisal,milfnew,momsuck,everques,ytngfhjkz,m0nkey,businessbabe,cooki,custard,
123456ab,lbvjxrf,outlaws,
753357,qwerty78,udacha,insider,chees,fuckmehard,shotokan,katya,seahorse,vtldtlm,turtle1,mike12,beebop,heathe,everton1,darknes,barnie,rbcekz,alisher,toohot,theduke,
555222,reddog1,breezy,bulldawg,monkeyman,baylee,losangel,mastermi,apollo1,aurelie,zxcvb12345,cayenne,bastet,wsxzaq,geibcnbr,yello,fucmy69,redwall,ladybird,bitchs,cccccc1,rktjgfnhf,ghjdthrf,quest1,oedipus,linus,impalass,fartman,
12345k,fokker,
159753a,optiplex,bbbbbb1,realtor,slipkno,santacru,rowdy,jelena,smeller,
3984240,ddddd1,sexyme,janet1,
3698741,eatme69,cazzone,today1,poobear,ignatius,master123,newpass1,heather2,snoopdogg,blondinka,pass12,honeydew,fuckthat,
890098890,lovem,goldrush,gecko,biker1,llama,pendejo,avalanche,fremont,snowman1,gandolf,chowder,
1a2b3c4d5e,flyguy,magadan,
1fuck,pingvin,nokia5230,ab1234,lothar,lasers,bignuts,renee1,royboy,skynet,
12340987,
1122334,dragrace,lovely1,
22334455,booter,
12345612,corvett,
123456qq,capital1,videoes,funtik,wyvern,flange,sammydog,hulkster,
13245768,not4you,vorlon,omegared,l58jkdjp!,filippo,
123mudar,samadams,petrus,chris12,charlie123,
123456789123,icetea,sunderla,adrian1,
123qweas,kazanova,aslan,monkey123,fktyeirf,goodsex,
123ab,lbtest,banaan,bluenose,
837519,asd12345,waffenss,whateve,
1a2a3a4a,trailers,vfhbirf,bhbcrf,klaatu,turk182,monsoon,beachbum,sunbeam,succes,clyde1,viking1,rawhide,bubblegum,princ,mackenzi,hershey1,
222555,dima55,niggaz,manatee,aquila,anechka,pamel,bugsbunn,lovel,sestra,newport1,althor,hornyman,wakeup,zzz111,phishy,cerber,torrent,thething,solnishko,babel,buckeye1,peanu,ethernet,uncencored,baraka,
665544,chris2,rb26dett,willy1,choppers,texaco,biggirl,
123456b,anna2614,sukebe,caralho,callofduty,rt6ytere,jesus7,angel12,
1money,timelord,allblack,pavlova,romanov,tequiero,yitbos,lookup,bulls23,snowflake,dickweed,barks,lever,irisha,firestar,fred1234,ghjnjnbg,danman,gatito,betty1,milhouse,kbctyjr,masterbaiting,delsol,papit,doggys,
123698741,bdfyjdf,invictus,bloods,kayla1,yourmama,apple2,angelok,bigboy1,pontiac1,verygood,yeshua,twins2,porn4me,
141516,rasta69,james2,bosshog,candys,adventur,stripe,djkjlz,dokken,austin316,skins,hogwarts,vbhevbh,navigato,desperado,xxx666,cneltyn,vasiliy,hazmat,daytek,eightbal,fred1,four20,
74227422,fabia,aerosmith,manue,wingchun,boohoo,hombre,sanity72,goatboy,fuckm,partizan,avrora,utahjazz,submarin,pussyeat,heinlein,control1,costaric,smarty,chuan,triplets,snowy,snafu,teacher1,vangogh,vandal,evergree,cochise,qwerty99,pyramid1,saab900,sniffer,qaz741,lebron23,mark123,wolvie,blackbelt,yoshi,feeder,janeway,nutella,fuking,asscock,deepak,poppie,bigshow,housewife,grils,tonto,cynthia1,temptress,irakli,belle1,russell1,manders,frank123,seabass,gforce,songbird,zippy1,naught,brenda1,chewy1,hotshit,topaz,
43046721,girfriend,marinka,jakester,thatsme,planeta,falstaff,patrizia,reborn,riptide,cherry1,shuan,nogard,chino,oasis1,qwaszx12,goodlife,davis1,
1911a1,harrys,shitfuck,
12345678900,russian7,
007700,bulls1,porshe,danil,dolphi,river1,sabaka,gobigred,deborah1,volkswagen,miamo,alkaline,muffdive,
1letmein,fkbyrf,goodguy,hallo1,nirvan,ozzie,cannonda,cvbhyjdf,marmite,germany1,joeblow,radio1,love11,raindrop,
159852,jacko,newday,fathead,elvis123,caspe,citibank,sports1,deuce,boxter,fakepass,golfman,snowdog,birthday4,nonmembe,niklas,parsifal,krasota,theshit,
1235813,maganda,nikita1,omicron,cassie1,columbo,buick,sigma1,thistle,bassin,rickster,apteka,sienna,skulls,miamor,coolgirl,gravis,
1qazxc,virgini,hunter2,akasha,batma,motorcyc,bambino,tenerife,fordf250,zhuan,iloveporn,markiza,hotbabes,becool,fynjybyf,wapapapa,forme,mamont,pizda,dragonz,sharon1,scrooge,mrbill,pfloyd,leeroy,natedog,ishmael,
777111,tecumseh,carajo,nfy.irf,
0000000000o,blackcock,fedorov,antigone,feanor,novikova,bobert,peregrin,spartan117,pumkin,rayman,manuals,tooltime,
555333,bonethug,marina1,bonnie1,tonyhawk,laracroft,mahalkita,
18273645,terriers,gamer,hoser,littlema,molotok,glennwei,lemon1,caboose,tater,
12345654321,brians,fritz1,mistral,jigsaw,fuckshit,hornyguy,southside,edthom,antonio1,bobmarle,pitures,ilikesex,crafty,nexus,boarder,fulcrum,astonvil,yanks1,yngwie,account1,zooropa,hotlegs,sammi,gumbo,rover1,perkele,maurolarastefy,lampard,
357753,barracud,dmband,abcxyz,pathfinder,
335577,yuliya,micky,jayman,asdfg12345,
1596321,halcyon,rerfhtre,feniks,zaxscd,gotyoass,jaycee,samson1,jamesb,vibrate,grandpri,camino,colossus,davidb,mamo4ka,nicky1,homer123,pinguin,watermelon,shadow01,lasttime,glider,
823762,helen1,pyramids,tulane,osama,rostov,john12,scoote,bhbyrf,gohan,galeries,joyful,bigpussy,tonka,mowgli,astalavista,zzz123,leafs,dalejr8,unicorn1,
777000,primal,bigmama,okmijn,killzone,qaz12345,snookie,zxcvvcxz,davidc,epson,rockman,ceaser,beanbag,katten,
3151020,duckhunt,segreto,matros,ragnar,
699669,sexsexse,
123123z,fuckyeah,bigbutts,gbcmrf,element1,marketin,saratov,elbereth,blaster1,yamahar6,grime,masha,juneau,
1230123,pappy,lindsay1,mooner,seattle1,katzen,lucent,polly1,lagwagon,pixie,misiaczek,
666666a,smokedog,lakers24,eyeball,ironhors,ametuer,volkodav,vepsrf,kimmy,gumby1,poi098,ovation,
1q2w3,drinker,penetrating,summertime,
1dallas,prima,modles,takamine,hardwork,macintosh,tahoe,passthie,chiks,sundown,flowers1,boromir,music123,phaedrus,albert1,joung,malakas,gulliver,parker1,balder,sonne,jessie1,domainlock2005,express1,vfkbyf,youandme,raketa,koala,dhjnvytyjub,nhfrnjh,testibil,ybrbnjc,
987654321q,axeman,pintail,pokemon123,dogggg,shandy,thesaint,
11122233,x72jhhu3z,theclash,raptors,zappa1,djdjxrf,hell666,friday1,vivaldi,pluto1,lance1,guesswho,jeadmi,corgan,skillz,skippy1,mango1,gymnastic,satori,
362514,theedge,cxfcnkbdfz,sparkey,deicide,bagels,lololol,lemmings,r4e3w2q1,silve,staind,schnuffi,dazzle,basebal1,leroy1,bilbo1,luckie,qwerty2,goodfell,hermione,peaceout,davidoff,yesterda,killah,flippy,chrisb,zelda1,headless,muttley,fuckof,tittys,catdaddy,photog,beeker,reaver,ram1500,yorktown,bolero,tryagain,arman,chicco,learjet,alexei,jenna1,go2hell,
12s3t4p55,momsanaladventure,mustang9,protoss,rooter,ginola,dingo1,mojave,erica1,
1qazse4,marvin1,redwolf,sunbird,dangerou,maciek,girsl,hawks1,packard1,excellen,dashka,soleda,toonces,acetate,nacked,jbond007,alligator,debbie1,wellhung,monkeyma,supers,rigger,larsson,vaseline,rjnzhf,maripos,
123456asd,cbr600rr,doggydog,cronic,jason123,trekker,flipmode,druid,sonyvaio,dodges,mayfair,mystuff,fun4me,samanta,sofiya,magics,
1ranger,arcane,sixtynin,
222444,omerta,luscious,gbyudby,bobcats,envision,chance1,seaweed,holdem,tomate,mensch,slicer,acura1,goochi,qweewq,punter,repoman,tomboy,never1,cortina,gomets,
147896321,
369852147,dogma,bhjxrf,loglatin,eragon,strato,gazelle,growler,
885522,klaudia,payton34,fuckem,butchie,scorpi,lugano,
123456789k,nichola,chipper1,spide,uhbujhbq,rsalinas,vfylfhby,longhorns,bugatti,everquest,!qaz2wsx,blackass,
999111,snakeman,p455w0rd,fanatic,family1,pfqxbr,
777vlad,mysecret,marat,phoenix2,october1,genghis,panties1,cooker,citron,ace123,
1234569,gramps,blackcoc,kodiak1,hickory,ivanhoe,blackboy,escher,sincity,beaks,meandyou,spaniel,canon1,timmy1,lancaste,polaroid,edinburg,fuckedup,hotman,cueball,golfclub,gopack,bookcase,worldcup,dkflbvbhjdbx,twostep,
17171717aa,letsplay,zolushka,stella1,pfkegf,kingtut,
67camaro,barracuda,wiggles,gjhjkm,prancer,patata,kjifhf,theman1,romanova,sexyass,copper1,dobber,sokolov,pomidor,algernon,cadman,amoremio,william2,silly1,bobbys,hercule,hd764nw5d7e1vb1,defcon,deutschland,robinhood,alfalfa,machoman,lesbens,pandora1,easypay,tomservo,nadezhda,goonies,saab9000,jordyn,f15eagle,dbrecz,
12qwerty,greatsex,thrawn,blunted,baywatch,doggystyle,loloxx,chevy2,january1,kodak,bushel,
78963214,ub6ib9,zz8807zpl,briefs,hawker,
224488,first1,bonzo,brent1,erasure,
69213124,sidewind,soccer13,
622521,mentos,kolibri,onepiece,united1,ponyboy,keksa12,wayer,mypussy,andrej,mischa,mille,bruno123,garter,bigpun,talgat,familia,jazzy1,mustang8,newjob,
747400,bobber,blackbel,hatteras,ginge,asdfjkl;,camelot1,blue44,rebbyt34,ebony1,vegas123,myboys,aleksander,ijrjkflrf,lopata,pilsner,lotus123,m0nk3y,andreev,freiheit,balls1,drjynfrnt,mazda1,waterpolo,shibumi,
852963,
123bbb,cezer121,blondie1,volkova,rattler,kleenex,ben123,sanane,happydog,satellit,qazplm,qazwsxedcrfvtgb,meowmix,badguy,facefuck,spice1,blondy,major1,
25000,anna123,
654321a,sober1,deathrow,patterso,china1,naruto1,hawkeye1,waldo1,butchy,crayon,
5tgb6yhn,klopik,crocodil,mothra,imhorny,pookie1,splatter,slippy,lizard1,router,buratino,yahweh,
123698,dragon11,
123qwe456,peepers,trucker1,ganjaman,
1hxboqg2,cheyanne,storys,sebastie,zztop,maddison,
4rfv3edc,darthvader,jeffro,iloveit,victor1,hotty,delphin,lifeisgood,gooseman,shifty,insertions,dude123,abrupt,
123masha,boogaloo,chronos,stamford,pimpster,kthjxrf,getmein,amidala,flubber,fettish,grapeape,dantes,oralsex,jack1,foxcg33,winchest,francis1,getin,archon,cliffy,blueman,
1basebal,sport1,emmitt22,porn123,bignasty,morga,
123hfjdk147,ferrar,juanito,fabiol,caseydog,steveo,peternorth,paroll,kimchi,bootleg,gaijin,secre,acacia,eatme2,amarillo,monkey11,rfhfgep,tylers,a1a2a3a4a5,sweetass,blower,rodina,babushka,camilo,cimbom,tiffan,vfnbkmlf,ohbaby,gotigers,lindsey1,dragon13,romulus,qazxsw12,zxcvbn1,dropdead,hitman47,snuggle,eleven11,bloopers,
357mag,avangard,bmw320,ginscoot,dshade,masterkey,voodoo1,rootedit,caramba,leahcim,hannover,
8phrowz622,tim123,cassius,
000000a,angelito,zzzzz1,badkarma,star1,malaga,glenwood,footlove,golf1,summer12,helpme1,fastcars,titan1,police1,polinka,k.jdm,marusya,augusto,shiraz,pantyhose,donald1,blaise,arabella,brigada,c3por2d2,peter01,marco1,hellow,dillweed,uzumymw,geraldin,loveyou2,toyota1,
088011,gophers,indy500,slainte,
5hsu75kpot,teejay,renat,racoon,sabrin,angie1,shiznit,harpua,sexyred,latex,tucker1,alexandru,wahoo,teamwork,deepblue,goodison,rundmc,r2d2c3p0,puppys,samba,ayrton,boobed,
999777,topsecre,blowme1,
123321z,loudog,random1,pantie,drevil,mandolin,
121212q,hottub,brother1,failsafe,spade1,matvey,open1234,carmen1,priscill,schatzi,kajak,gooddog,trojans1,gordon1,kayak,calamity,argent,ufhvjybz,seviyi,penfold,assface,dildos,hawkwind,crowbar,yanks,ruffles,rastus,luv2epus,open123,aquafina,dawns,jared1,teufel,
12345c,vwgolf,pepsi123,amores,passwerd,
01478520,boliva,smutty,headshot,password3,davidd,zydfhm,gbgbcmrf,pornpass,insertion,ceckbr,test2,car123,checkit,dbnfkbq,niggas,nyyankee,muskrat,nbuhtyjr,gunner1,ocean1,fabienne,chrissy1,wendys,loveme89,batgirl,cerveza,igorek,steel1,ragman,boris123,novifarm,sexy12,qwerty777,mike01,giveitup,
123456abc,fuckall,crevice,hackerz,gspot,eight8,assassins,texass,swallows,
123458,baldur,moonshine,labatt,modem,sydney1,voland,dbnfkz,hotchick,jacker,princessa,dawgs1,holiday1,booper,reliant,miranda1,jamaica1,andre1,badnaamhere,barnaby,tiger7,david12,margaux,corsica,
085tzzqi,universi,thewall,nevermor,martin6,qwerty77,cipher,apples1,
0102030405,seraphim,black123,imzadi,gandon,ducati99,
1shadow,dkflbvbhjdyf,
44magnum,bigbad,feedme,samantha1,ultraman,redneck1,jackdog,usmc0311,fresh1,monique1,tigre,alphaman,cool1,greyhoun,indycar,crunchy,
55chevy,carefree,willow1,
063dyjuy,xrated,assclown,federica,hilfiger,trivia,bronco1,mamita,
100200300,simcity,lexingky,akatsuki,retsam,johndeere,abudfv,raster,elgato,businka,satanas,mattingl,redwing1,shamil,patate,mannn,moonstar,evil666,b123456,bowl300,tanechka,
34523452,carthage,babygir,santino,bondarenko,jesuss,chico1,numlock,shyguy,sound1,kirby1,needit,mostwanted,
427900,funky1,steve123,passions,anduril,kermit1,prospero,lusty,barakuda,dream1,broodwar,porky,christy1,mahal,yyyyyy1,allan1,
1sexy,flintsto,capri,cumeater,heretic,robert2,hippos,blindax,marykay,collecti,kasumi,
1qaz!qaz,
112233q,
123258,chemistr,coolboy,
0o9i8u,kabuki,righton,tigress,nessie,sergej,andrew12,yfafyz,ytrhjvfyn,angel7,victo,mobbdeep,lemming,transfor,
1725782,myhouse,aeynbr,muskie,leno4ka,westham1,cvbhyjd,daffodil,pussylicker,pamela1,stuffer,warehous,tinker1,
2w3e4r,pluton,louise1,polarbea,
253634,prime1,anatoliy,januar,wysiwyg,cobraya,ralphy,whaler,xterra,cableguy,
112233a,porn69,jamesd,aqualung,jimmy123,lumpy,luckyman,kingsize,golfing1,alpha7,leeds1,marigold,lol1234,teabag,alex11,
10sne1,saopaulo,shanny,roland1,basser,
3216732167,carol1,year2005,morozov,saturn1,joseluis,bushed,redrock,memnoch,lalaland,indiana1,lovegod,gulnaz,buffalos,loveyou1,anteater,pattaya,jaydee,redshift,bartek,summerti,coffee1,ricochet,incest,schastie,rakkaus,h2opolo,suikoden,perro,dance1,loveme1,whoopass,vladvlad,boober,flyers1,alessia,gfcgjhn,pipers,papaya,gunsling,coolone,blackie1,gonads,gfhjkzytn,foxhound,qwert12,gangrel,ghjvtntq,bluedevi,mywife,summer01,hangman,licorice,patter,vfr750,thorsten,
515253,ninguna,dakine,strange1,mexic,vergeten,
12345432,
8phrowz624,stampede,floyd1,sailfish,raziel,ananda,giacomo,freeme,crfprf,
74185296,allstars,master01,solrac,gfnhbjn,bayliner,bmw525,
3465xxx,catter,single1,michael3,pentium4,nitrox,mapet123456,halibut,killroy,xxxxx1,phillip1,poopsie,arsenalfc,buffys,kosova,all4me,
32165498,arslan,opensesame,brutis,charles2,pochta,nadegda,backspac,mustang0,invis,gogeta,
654321q,adam25,niceday,truckin,gfdkbr,biceps,sceptre,bigdave,lauras,user345,sandys,shabba,ratdog,cristiano,natha,march13,gumball,getsdown,wasdwasd,redhead1,dddddd1,longlegs,
13572468,starsky,ducksoup,bunnys,omsairam,whoami,fred123,danmark,flapper,swanky,lakings,yfhenj,asterios,rainier,searcher,dapper,ltdjxrf,horsey,seahawk,shroom,tkfkdgo,aquaman,tashkent,number9,messi10,
1asshole,milenium,illumina,vegita,jodeci,buster01,bareback,goldfinger,fire1,
33rjhjds,sabian,thinkpad,smooth1,sully,bonghits,sushi1,magnavox,colombi,voiture,limpone,oldone,aruba,rooster1,zhenya,nomar5,touchdow,limpbizkit,rhfcfdxbr,baphomet,afrodita,bball1,madiso,ladles,lovefeet,matthew2,theworld,thunderbird,dolly1,
123rrr,forklift,alfons,berkut,speedy1,saphire,oilman,creatine,pussylov,bastard1,
456258,wicked1,filimon,skyline1,fucing,yfnfkbz,hot123,abdulla,nippon,nolimits,billiard,booty1,buttplug,westlife,coolbean,aloha1,lopas,asasin,
1212121,october2,whodat,good4u,d12345,kostas,ilya1992,regal,pioneer1,volodya,focus1,bastos,nbvjif,fenix,anita1,vadimka,nickle,jesusc,
123321456,teste,christ1,essendon,evgenii,celticfc,adam1,forumwp,lovesme,
26exkp,chillout,burly,thelast1,marcus1,metalgear,test11,ronaldo7,socrate,world1,franki,mommie,vicecity,postov1000,charlie3,oldschool,
333221,legoland,antoshka,counterstrike,buggy,mustang3,
123454,qwertzui,toons,chesty,bigtoe,tigger12,limpopo,rerehepf,diddle,nokia3250,solidsnake,conan1,rockroll,
963369,titanic1,qwezxc,cloggy,prashant,katharin,maxfli,takashi,cumonme,michael9,mymother,pennstate,khalid,
48151623,fightclub,showboat,mateusz,elrond,teenie,arrow1,mammamia,dustydog,dominator,erasmus,zxcvb1,
1a2a3a,bones1,dennis1,galaxie,pleaseme,whatever1,junkyard,galadriel,charlies,
2wsxzaq1,crimson1,behemoth,teres,master11,fairway,shady1,pass99,
1batman,joshua12,baraban,apelsin,mousepad,melon,twodogs,
123321qwe,metalica,ryjgrf,pipiska,rerfhfxf,lugnut,cretin,iloveu2,powerade,aaaaaaa1,omanko,kovalenko,isabe,chobits,
151nxjmt,shadow11,zcxfcnkbdf,gy3yt2rgls,vfhbyrf,
159753123,bladerunner,goodone,wonton,doodie,
333666999,fuckyou123,kitty123,chisox,orlando1,skateboa,red12345,destroye,snoogans,satan1,juancarlo,goheels,jetson,scottt,fuckup,aleksa,gfhfljrc,passfind,oscar123,derrick1,hateme,viper123,pieman,audi100,tuffy,andover,shooter1,
10000,makarov,grant1,nighthaw,
13576479,browneye,batigol,nfvfhf,chocolate1,
7hrdnw23,petter,bantam,morlii,jediknight,brenden,argonaut,goodstuf,wisconsi,
315920,abigail1,dirtbag,splurge,k123456,lucky777,valdepen,gsxr600,
322223,ghjnjrjk,zaq1xsw2cde3,schwanz,walter1,letmein22,nomads,
124356,codeblue,nokian70,fucke,footbal1,agyvorc,aztecs,passw0r,smuggles,femmes,ballgag,krasnodar,tamuna,schule,sixtynine,empires,erfolg,dvader,ladygaga,elite1,venezuel,nitrous,kochamcie,olivia1,trustn01,arioch,sting1,
131415,tristar,
555000,maroon,
135799,marsik,
555556,fomoco,natalka,cwoui,tartan,davecole,nosferat,hotsauce,dmitry,horus,dimasik,skazka,boss302,bluebear,vesper,ultras,tarantul,asd123asd,azteca,theflash,
8ball,
1footbal,titlover,lucas123,number6,sampson1,
789852,party1,dragon99,adonai,carwash,metropol,psychnau,vthctltc,hounds,firework,blink18,
145632,wildcat1,satchel,rice80,ghtktcnm,sailor1,cubano,anderso,rocks1,mike11,famili,dfghjc,besiktas,roygbiv,nikko,bethan,minotaur,rakesh,orange12,hfleuf,jackel,myangel,favorite7,
1478520,asssss,agnieszka,haley1,raisin,htubyf,
1buster,cfiekz,derevo,
1a2a3a4a5a,baltika,raffles,scruffy1,clitlick,louis1,buddha1,fy.nrf,walker1,makoto,shadow2,redbeard,vfvfvskfhfve,mycock,sandydog,lineman,network1,favorite8,longdick,mustangg,mavericks,indica,
1killer,cisco1,angelofwar,blue69,brianna1,bubbaa,slayer666,level42,baldrick,brutus1,lowdown,haribo,lovesexy,
500000,thissuck,picker,stephy,
1fuckme,characte,telecast,
1bigdog,repytwjdf,thematrix,hammerhe,chucha,ganesha,gunsmoke,georgi,sheltie,
1harley,knulla,sallas,westie,dragon7,conker,crappie,margosha,lisboa,
3e2w1q,shrike,grifter,ghjcnjghjcnj,asdfg1,mnbvcxz1,myszka,posture,boggie,rocketman,flhtyfkby,twiztid,vostok,pi314159,force1,televizor,gtkmvtym,samhain,imcool,jadzia,dreamers,strannik,k2trix,steelhea,nikitin,commodor,brian123,chocobo,whopper,ibilljpf,megafon,ararat,thomas12,ghbrjkbcn,q1234567890,hibernia,kings1,jim123,redfive,
68camaro,iawgk2,xavier1,
1234567u,d123456,ndirish,airborn,halfmoon,fluffy1,ranchero,sneaker,soccer2,passion1,cowman,birthday1,johnn,razzle,glock17,wsxqaz,nubian,lucky2,jelly1,henderso,eric1,
123123e,boscoe01,fuck0ff,simpson1,sassie,rjyjgkz,nascar3,watashi,loredana,janus,wilso,conman,david2,mothe,iloveher,snikers,davidj,fkmnthyfnbdf,mettss,ratfink,
123456h,lostsoul,sweet16,brabus,wobble,petra1,fuckfest,otters,sable1,svetka,spartacu,bigstick,milashka,
1lover,pasport,champagn,papichul,hrvatska,hondacivic,kevins,tacit,moneybag,gohogs,rasta1,
246813579,ytyfdbcnm,gubber,darkmoon,vitaliy,
233223,playboys,tristan1,joyce1,oriflame,mugwump,access2,autocad,thematri,qweqwe123,lolwut,ibill01,multisyn,
1233211,pelikan,rob123,chacal,
1234432,griffon,pooch,dagestan,geisha,satriani,anjali,rocketma,gixxer,pendrago,vincen,hellokit,killyou,ruger,doodah,bumblebe,badlands,galactic,emachines,foghorn,jackso,jerem,avgust,frontera,
123369,daisymae,hornyboy,welcome123,tigger01,diabl,angel13,interex,iwantsex,rockydog,kukolka,sawdust,online1,
3234412,bigpapa,jewboy,
3263827,dave123,riches,
333222,tony1,toggle,farter,
124816,tities,balle,brasilia,southsid,micke,ghbdtn12,patit,ctdfcnjgjkm,olds442,zzzzzz1,nelso,gremlins,gypsy1,carter1,slut69,farcry,
7415963,michael8,birdie1,charl,
123456789abc,
100001,aztec,sinjin,bigpimpi,closeup,atlas1,nvidia,doggone,classic1,manana,malcolm1,rfkbyf,hotbabe,rajesh,dimebag,ganjubas,rodion,jagr68,seren,syrinx,funnyman,karapuz,
123456789n,bloomin,admin18533362,biggdogg,ocarina,poopy1,hellome,internet1,booties,blowjobs,matt1,donkey1,swede,
1jennife,evgeniya,lfhbyf,coach1,
444777,green12,patryk,pinewood,justin12,
271828,
89600506779,notredame,tuborg,lemond,sk8ter,million1,wowser,pablo1,st0n3,jeeves,funhouse,hiroshi,gobucs,angeleye,bereza,winter12,catalin,qazedc,andros,ramazan,vampyre,sweethea,imperium,murat,jamest,flossy,sandeep,morgen,salamandra,bigdogg,stroller,njdevils,nutsack,vittorio,%%passwo,playful,rjyatnrf,tookie,ubnfhf,michi,
777444,shadow13,devils1,radiance,toshiba1,beluga,amormi,dandfa,trust1,killemall,smallville,polgara,billyb,landscap,steves,exploite,zamboni,damage11,dzxtckfd,trader12,pokey1,kobe08,damager,egorov,dragon88,ckfdbr,lisa69,blade2,audis4,nelson1,nibbles,
23176djivanfros,mutabor,artofwar,matvei,metal666,hrfzlz,schwinn,poohbea,seven77,thinker,
123456789qwerty,sobriety,jakers,karamelka,vbkfyf,volodin,iddqd,dale03,roberto1,lizaveta,qqqqqq1,cathy1,
08154711,davidm,quixote,bluenote,tazdevil,katrina1,bigfoot1,bublik,marma,olechka,fatpussy,marduk,arina,nonrev67,qqqq1111,camill,wtpfhm,truffle,fairview,mashina,voltaire,qazxswedcvfr,dickface,grassy,lapdance,bosstone,crazy8,yackwin,mobil,danielit,mounta1n,player69,bluegill,mewtwo,reverb,cnthdf,pablito,a123321,elena1,warcraft1,orland,ilovemyself,rfntyjr,joyride,schoo,dthjxrf,thetachi,goodtimes,blacksun,humpty,chewbacca,guyute,
123xyz,lexicon,blue45,qwe789,galatasaray,centrino,hendrix1,deimos,saturn5,craig1,vlad1996,sarah123,tupelo,ljrnjh,hotwife,bingos,
1231231,nicholas1,flamer,pusher,
1233210,heart1,hun999,jiggy,giddyup,oktober,
123456zxc,budda,galahad,glamur,samwise,oneton,bugsbunny,dominic1,scooby2,freetime,internat,
159753852,sc00ter,wantit,mazinger,inflames,laracrof,greedo,
014789,godofwar,repytwjd,water123,fishnet,venus1,wallace1,tenpin,paula1,
1475963,mania,novikov,qwertyasdfgh,goldmine,homies,
777888999,
8balls,holeinon,paper1,samael,
013579,mansur,nikit,ak1234,blueline,polska1,hotcock,laredo,windstar,vbkbwbz,raider1,newworld,lfybkrf,catfish1,shorty1,piranha,treacle,royale,
2234562,smurfs,minion,cadence,flapjack,
123456p,sydne,
135531,robinhoo,nasdaq,decatur,cyberonline,newage,gemstone,jabba,touchme,hooch,pigdog,indahous,fonzie,zebra1,juggle,patrick2,nihongo,hitomi,oldnavy,qwerfdsa,ukraina,shakti,allure,kingrich,diane1,canad,piramide,hottie1,clarion,college1,
5641110,connect1,therion,clubber,velcro,dave1,astra1,
13579-,astroboy,skittle,isgreat,photoes,cvzefh1gkc,
001100,
2cool4u,
7555545,ginger12,
2wsxcde3,camaro69,invader,domenow,asd1234,colgate,qwertasdfg,jack123,pass01,maxman,bronte,whkzyc,peter123,bogie,yecgaa,abc321,
1qay2wsx,enfield,camaroz2,trashman,bonefish,system32,azsxdcfvgb,peterose,iwantyou,dick69,temp1234,blastoff,capa200,connie1,blazin,
12233445,sexybaby,
123456j,brentfor,pheasant,hommer,jerryg,thunders,august1,lager,kapusta,boobs1,nokia5300,rocco1,xytfu7,stars1,tugger,
123sas,blingbling,
1bubba,
0wnsyo0,
1george,baile,richard2,habana,
1diamond,sensatio,
1golfer,maverick1,
1chris,clinton1,michael7,dragons1,sunrise1,pissant,fatim,mopar1,levani,rostik,pizzapie,
987412365,oceans11,
748159263,cum4me,palmetto,
4r3e2w1q,paige1,muncher,arsehole,kratos,gaffer,banderas,billys,prakash,crabby,bungie,silver12,caddis,spawn1,xboxlive,sylvania,littlebi,
524645,futura,valdemar,isacs155,prettygirl,big123,
555444,slimer,chicke,newstyle,skypilot,sailormoon,fatluvr69,jetaime,sitruc,jesuschrist,sameer,bear12,hellion,yendor,country1,etnies,conejo,jedimast,darkknight,toobad,yxcvbn,snooks,porn4life,calvary,alfaromeo,ghostman,yannick,fnkfynblf,vatoloco,homebase,
5550666,barret,
1111111111zz,odysseus,edwardss,favre4,jerrys,crybaby,xsw21qaz,firestor,spanks,indians1,squish,kingair,babycakes,haters,sarahs,
212223,teddyb,xfactor,cumload,rhapsody,death123,three3,raccoon,thomas2,slayer66,
1q2q3q4q5q,thebes,mysterio,thirdeye,orkiox.,nodoubt,bugsy,schweiz,dima1996,angels1,darkwing,jeronimo,moonpie,ronaldo9,peaches2,mack10,manish,denise1,fellowes,carioca,taylor12,epaulson,makemoney,oc247ngucz,kochanie,
3edcvfr4,vulture,
1qw23e,
1234567z,munchie,picard1,xthtgfirf,sportste,psycho1,tahoe1,creativ,perils,slurred,hermit,scoob,diesel1,cards1,wipeout,weeble,integra1,out3xf,powerpc,chrism,kalle,ariadne,kailua,phatty,dexter1,fordman,bungalow,paul123,compa,train1,thejoker,jys6wz,pussyeater,eatmee,sludge,dominus,denisa,tagheuer,yxcvbnm,bill1,ghfdlf,
300zx,nikita123,carcass,semaj,ramone,muenchen,animal1,greeny,annemari,dbrf134,jeepcj7,mollys,garten,sashok,ironmaid,coyotes,astoria,george12,westcoast,primetim,
123456o,panchito,rafae,japan1,framer,auralo,tooshort,egorova,qwerty22,callme,medicina,warhawk,w1w2w3w4,cristia,merli,alex22,kawaii,chatte,wargames,utvols,muaddib,trinket,andreas1,jjjjj1,cleric,scooters,cuntlick,gggggg1,slipknot1,
235711,handcuff,stussy,guess1,leiceste,ppppp1,passe,lovegun,chevyman,hugecock,driver1,buttsex,psychnaut1,cyber1,black2,alpha12,melbourn,man123,metalman,yjdsqujl,blondi,bungee,freak1,stomper,caitlin1,nikitina,flyaway,prikol,begood,desperad,aurelius,john1234,whosyourdaddy,slimed123,bretagne,den123,hotwheel,king123,roodypoo,izzicam,save13tx,warpten,nokia3310,samolet,ready1,coopers,scott123,bonito,
1aaaaa,yomomma,dawg1,rache,itworks,asecret,fencer,
451236,polka,olivetti,sysadmin,zepplin,sanjuan,
479373,lickem,hondacrx,pulamea,future1,naked1,sexyguy,w4g8at,lollol1,declan,runner1,rumple,daddy123,
4snz9g,grandprix,calcio,whatthefuck,nagrom,asslick,pennst,negrit,squiggy,
1223334444,police22,giovann,toronto1,tweet,yardbird,seagate,truckers,
554455,scimitar,pescator,slydog,gaysex,dogfish,fuck777,
12332112,qazxswed,morkovka,daniela1,imback,horny69,
789123456,
123456789w,jimmy2,bagger,ilove69,nikolaus,atdhfkm,rebirth,
1111aaaa,pervasive,gjgeufq,dte4uw,gfhnbpfy,skeletor,whitney1,walkman,delorean,disco1,
555888,as1234,ishikawa,fuck12,reaper1,dmitrii,bigshot,morrisse,purgen,qwer4321,itachi,willys,
123123qwe,kisska,roma123,trafford,sk84life,
326159487,pedros,idiom,plover,bebop,
159875321,jailbird,arrowhea,qwaszx123,zaxscdvf,catlover,bakers,
13579246,bones69,vermont1,helloyou,simeon,chevyz71,funguy,stargaze,parolparol,steph1,bubby,apathy,poppet,laxman,kelly123,goodnews,
741236,boner1,gaetano,astonvilla,virtua,luckyboy,rocheste,hello2u,elohim,trigger1,cstrike,pepsicola,miroslav,
96385274,fistfuck,cheval,magyar,svetlanka,lbfyjxrf,mamedov,
123123123q,ronaldo1,scotty1,
1nicole,pittbull,fredd,bbbbb1,dagwood,gfhkfvtyn,ghblehrb,logan5,
1jordan,sexbomb,omega2,montauk,
258741,dtythf,gibbon,winamp,thebomb,millerli,
852654,gemin,baldy,halflife2,dragon22,mulberry,morrigan,hotel6,zorglub,surfin,
951159,excell,arhangel,emachine,moses1,
968574,reklama,bulldog2,cuties,barca,twingo,saber,elite11,redtruck,casablan,ashish,moneyy,pepper12,cnhtktw,rjcnbr,arschloch,phenix,cachorro,sunita,madoka,joselui,adams1,mymoney,hemicuda,fyutkjr,jake12,chicas,eeeee1,sonnyboy,smarties,birdy,kitten1,cnfcbr,island1,kurosaki,taekwond,konfetka,bennett1,omega3,jackson2,fresca,minako,octavian,kban667,feyenoord,muaythai,jakedog,fktrcfylhjdyf,
1357911q,phuket,sexslave,fktrcfylhjdbx,asdfjk,
89015173454,qwerty00,kindbud,eltoro,sex6969,nyknicks,
12344321q,caballo,evenflow,hoddle,love22,metro1,mahalko,lawdog,tightass,manitou,buckie,whiskey1,anton123,
335533,password4,primo,ramair,timbo,brayden,stewie,pedro1,yorkshir,ganster,hellothe,tippy1,direwolf,genesi,rodrig,enkeli,vaz21099,sorcerer,winky,oneshot,boggle,serebro,badger1,japanes,comicbook,kamehame,alcat,denis123,echo45,sexboy,gr8ful,hondo,voetbal,blue33,
2112rush,geneviev,danni1,moosey,polkmn,matthew7,ironhead,hot2trot,ashley12,sweeper,imogen,blue21,retep,stealth1,guitarra,bernard1,tatian,frankfur,vfnhbwf,slacking,haha123,
963741,asdasdas,katenok,airforce1,
123456789qaz,shotgun1,
12qwasz,reggie1,sharo,
976431,pacifica,dhip6a,neptun,kardon,spooky1,beaut,
555555a,toosweet,tiedup,
11121314,startac,lover69,rediska,pirata,vfhrbp,
1234qwerty,energize,hansolo1,playbo,larry123,oemdlg,cnjvfnjkju,a123123,alexan,gohawks,antonius,fcbayern,mambo,yummy1,kremlin,ellen1,tremere,vfiekz,bellevue,charlie9,izabella,malishka,fermat,rotterda,dawggy,becket,chasey,kramer1,
21125150,lolit,cabrio,schlong,arisha,verity,
3some,favorit,maricon,travelle,hotpants,red1234,garrett1,home123,knarf,seven777,figment,asdewq,canseco,good2go,warhol,thomas01,pionee,al9agd,panacea,chevy454,brazzers,oriole,azerty123,finalfan,patricio,northsta,rebelde,bulldo,stallone,boogie1,
7uftyx,cfhfnjd,compusa,cornholi,config,deere,hoopster,sepultura,grasshop,babygurl,lesbo,diceman,proverbs,reddragon,nurbek,tigerwoo,superdup,buzzsaw,kakaroto,golgo13,edwar,
123qaz123,butter1,sssss1,texas2,respekt,ou812ic,
123456qaz,
55555a,doctor1,mcgwire,maria123,aol999,cinders,aa1234,joness,ghbrjkmyj,makemone,sammyboy,
567765,
380zliki,theraven,testme,mylene,elvira26,indiglo,tiramisu,shannara,baby1,
123666,gfhreh,papercut,johnmish,orange8,bogey1,mustang7,bagpipes,dimarik,vsijyjr,
4637324,ravage,cogito,seven11,natashka,warzone,hr3ytm,
4free,bigdee,
000006,
243462536,bigboi,
123333,trouts,sandy123,szevasz,monica2,guderian,newlife1,ratchet,r12345,razorbac,
12345i,piazza31,oddjob,beauty1,fffff1,anklet,nodrog,pepit,olivi,puravida,robert12,transam1,portman,bubbadog,steelers1,wilson1,eightball,mexico1,superboy,
4rfv5tgb,mzepab,samurai1,fuckslut,colleen1,girdle,vfrcbvec,q1w2e3r4t,soldier1,
19844891,alyssa1,a12345a,fidelis,skelter,nolove,mickeymouse,frehley,password69,watermel,aliska,soccer15,
12345e,ladybug1,abulafia,adagio,tigerlil,takehana,hecate,bootneck,junfan,arigato,wonkette,bobby123,trustnoone,phantasm,
132465798,brianjo,w12345,t34vfrc1991,deadeye,
1robert,
1daddy,adida,check1,grimlock,muffi,airwalk,prizrak,onclick,longbeac,ernie1,eadgbe,moore1,geniu,shadow123,bugaga,jonathan1,cjrjkjdf,orlova,buldog,talon1,westport,aenima,
541233432442,barsuk,chicago2,kellys,hellbent,toughguy,iskander,skoal,whatisit,jake123,scooter2,fgjrfkbgcbc,ghandi,love13,adelphia,vjhrjdrf,adrenali,niunia,jemoeder,rainbo,all4u8,anime1,freedom7,seraph,
789321,tommys,antman,firetruc,neogeo,natas,bmwm3,froggy1,paul1,mamit,bayview,gateways,kusanagi,ihateu,frederi,rock1,centurion,grizli,biggin,fish1,stalker1,
3girls,ilovepor,klootzak,lollo,redsox04,kirill123,jake1,pampers,vasya,hammers1,teacup,towing,celtic1,ishtar,yingyang,
4904s677075,dahc1,patriot1,patrick9,redbirds,doremi,rebecc,yoohoo,makarova,epiphone,rfgbnfy,milesd,blister,chelseafc,katana1,blackrose,
1james,primrose,shock5,hard1,scooby12,c6h12o6,dustoff,boing,chisel,kamil,
1william,defiant1,tyvugq,mp8o6d,aaa340,nafets,sonnet,flyhigh,
242526,crewcom,love23,strike1,stairway,katusha,salamand,cupcake1,password0,
007james,sunnie,multisync,harley01,tequila1,fred12,driver8,q8zo8wzq,hunter01,mozzer,temporar,eatmeraw,mrbrownxx,kailey,sycamore,flogger,tincup,rahasia,ganymede,bandera,slinger,
1111122222,vander,woodys,
1cowboy,khaled,jamies,london12,babyboo,tzpvaw,diogenes,budice,mavrick,
135797531,cheeta,macros,squonk,blackber,topfuel,apache1,falcon16,darkjedi,cheeze,vfhvtkfl,sparco,change1,gfhfif,freestyl,kukuruza,loveme2,
12345f,kozlov,sherpa,marbella,
44445555,bocephus,
1winner,alvar,hollydog,gonefish,iwantin,barman,godislove,amanda18,rfpfynbg,eugen,abcdef1,redhawk,thelema,spoonman,baller1,harry123,
475869,tigerman,cdtnjxrf,marillio,scribble,elnino,carguy,hardhead,l2g7k3,troopers,selen,dragon76,antigua,ewtosi,ulysse,astana,paroli,cristo,carmex,marjan,bassfish,letitbe,kasparov,jay123,
19933991,blue13,eyecandy,scribe,mylord,ukflbjkec,ellie1,beaver1,destro,neuken,halfpint,ameli,lilly1,satanic,xngwoj,
12345trewq,asdf1,bulldogg,asakura,jesucrist,flipside,packers4,biggy,kadett,biteme69,bobdog,silverfo,saint1,bobbo,packman,knowledg,foolio,fussbal,
12345g,kozerog,westcoas,minidisc,nbvcxw,martini1,alastair,rasengan,superbee,memento,porker,lena123,florenc,kakadu,bmw123,getalife,bigsky,monkee,people1,schlampe,red321,memyself,
0147896325,
12345678900987654321,soccer14,realdeal,gfgjxrf,bella123,juggs,doritos,celtics1,peterbilt,ghbdtnbrb,gnusmas,xcountry,ghbdtn1,batman99,deusex,gtnhjdf,blablabl,juster,marimba,love2,rerjkrf,alhambra,micros,siemens1,assmaste,moonie,dashadasha,atybrc,eeeeee1,wildrose,blue55,davidl,xrp23q,skyblue,leo123,ggggg1,bestfriend,franny,
1234rmvb,fun123,rules1,sebastien,chester2,hakeem,winston2,fartripper,atlant,
07831505,iluvsex,q1a2z3,larrys,
009900,ghjkju,capitan,rider1,qazxsw21,belochka,andy123,hellya,chicca,maximal,juergen,password1234,howard1,quetzal,daniel123,qpwoeiruty,
123555,bharat,ferrari3,numbnuts,savant,ladydog,phipsi,lovepussy,etoile,power2,mitten,britneys,chilidog,
08522580,
2fchbg,kinky1,bluerose,loulo,ricardo1,doqvq3,kswbdu,
013cpfza,timoha,ghbdtnghbdtn,
3stooges,gearhead,browns1,g00ber,super7,greenbud,kitty2,pootie,toolshed,gamers,coffe,ibill123,freelove,anasazi,sister1,jigger,natash,stacy1,weronika,luzern,soccer7,hoopla,dmoney,valerie1,canes,razdvatri,washere,greenwoo,rfhjkbyf,anselm,pkxe62,maribe,daniel2,maxim1,faceoff,carbine,xtkjdtr,buddy12,stratos,jumpman,buttocks,aqswdefr,pepsis,sonechka,steeler1,lanman,nietzsch,ballz,biscuit1,wrxsti,goodfood,juventu,federic,mattman,vika123,strelec,jledfyxbr,sideshow,
4life,fredderf,bigwilly,
12347890,
12345671,sharik,bmw325i,fylhtqrf,dannon4,marky,mrhappy,drdoom,maddog1,pompier,cerbera,goobers,howler,jenny69,evely,letitrid,cthuttdyf,felip,shizzle,golf12,t123456,yamah,bluearmy,squishy,roxan,
10inches,dollface,babygirl1,blacksta,kaneda,lexingto,canadien,
222888,kukushka,sistema,
224422,shadow69,ppspankp,mellons,barbie1,free4all,alfa156,lostone,
2w3e4r5t,painkiller,robbie1,binger,
8dihc6,jaspe,rellik,quark,sogood,hoopstar,number2,snowy1,dad2ownu,cresta,qwe123asd,hjvfyjdf,gibsonsg,qbg26i,dockers,grunge,duckling,lfiekz,cuntsoup,kasia1,
1tigger,woaini,reksio,tmoney,firefighter,neuron,audia3,woogie,powerboo,powermac,fatcock,
12345666,upnfmc,lustful,porn1,gotlove,amylee,kbytqrf,
11924704,
25251325,sarasota,sexme,ozzie1,berliner,nigga1,guatemal,seagulls,iloveyou!,chicken2,qwerty21,
010203040506,
1pillow,libby1,vodoley,backlash,piglets,teiubesc,
019283,vonnegut,perico,thunde,buckey,gtxtymrf,manunite,iiiii1,lost4815162342,madonn,
270873_,britney1,kevlar,piano1,boondock,colt1911,salamat,doma77ns,anuradha,cnhjqrf,rottweil,newmoon,topgun1,mauser,fightclu,birthday21,reviewpa,herons,aassddff,lakers32,melissa2,vredina,jiujitsu,mgoblue,shakey,moss84,
12345zxcvb,funsex,benji1,garci,
113322,chipie,windex,nokia5310,pwxd5x,bluemax,cosita,chalupa,trotsky,new123,g3ujwg,newguy,canabis,gnaget,happydays,felixx,
1patrick,cumface,sparkie,kozlova,
123234,newports,broncos7,golf18,recycle,hahah,harrypot,cachondo,open4me,miria,guessit,pepsione,knocker,usmc1775,countach,playe,wiking,landrover,cracksevi,drumline,a7777777,smile123,manzana,panty,liberta,pimp69,dolfan,quality1,schnee,superson,elaine22,webhompass,mrbrownx,deepsea,
4wheel,mamasita,rockport,rollie,myhome,jordan12,kfvgjxrf,hockey12,seagrave,ford1,chelsea2,samsara,marissa1,lamesa,mobil1,piotrek,tommygun,yyyyy1,wesley1,billy123,homersim,julies,amanda12,shaka,maldini,suzenet,springst,iiiiii1,yakuza,
111111aa,westwind,helpdesk,annamari,bringit,hopefull,hhhhhhh1,saywhat,mazdarx8,bulova,jennife1,baikal,gfhjkmxbr,victoria1,gizmo123,alex99,defjam,
2girls,sandrock,positivo,shingo,syncmast,opensesa,silicone,fuckina,senna1,karlos,duffbeer,montagne,gehrig,thetick,pepino,hamburge,paramedic,scamp,smokeweed,fabregas,phantoms,venom121293,
2583458,badone,porno69,manwhore,vfvf123,notagain,vbktyf,rfnthbyrf,wildblue,kelly001,dragon66,camell,curtis1,frolova,
1212123,dothedew,tyler123,reddrago,planetx,promethe,gigolo,
1001001,thisone,eugeni,blackshe,cruzazul,incognito,puller,joonas,quick1,spirit1,gazza,zealot,gordito,hotrod1,mitch1,pollito,hellcat,mythos,duluth,
383pdjvl,easy123,hermos,binkie,its420,lovecraf,darien,romina,doraemon,
19877891,syclone,hadoken,transpor,ichiro,intell,gargamel,dragon2,wavpzt,
557744,rjw7x4,jennys,kickit,rjynfrn,likeit,
555111,corvus,nec3520,
133113,mookie1,bochum,samsung2,locoman0,
154ugeiu,vfvfbgfgf,
135792,[start],tenni,
20001,vestax,hufmqw,neveragain,wizkid,kjgfnf,nokia6303,tristen,saltanat,louie1,gandalf2,sinfonia,alpha3,tolstoy,ford150,f00bar,
1hello,alici,lol12,riker1,hellou,
333888,
1hunter,qw1234,vibrator,mets86,
43211234,gonzale,cookies1,sissy1,john11,bubber,blue01,cup2006,gtkmvtyb,nazareth,heybaby,suresh,teddie,mozilla,rodeo1,madhouse,gamera,
123123321,naresh,dominos,foxtrot1,taras,powerup,kipling,jasonb,fidget,galena,meatman,alpacino,bookmark,farting,humper,titsnass,gorgon,castaway,dianka,anutka,gecko1,fucklove,connery,wings1,erika1,peoria,moneymaker,ichabod,heaven1,paperboy,phaser,breakers,nurse1,westbrom,alex13,brendan1,
123asd123,almera,grubber,clarkie,thisisme,welkom01,
51051051051,crypto,freenet,pflybwf,black12,testme2,changeit,autobahn,attica,chaoss,denver1,tercel,gnasher23,master2,vasilii,sherman1,gomer,bigbuck,derek1,qwerzxcv,jumble,dragon23,art131313,numark,beasty,cxfcnmttcnm,updown,starion,glist,sxhq65,ranger99,monkey7,shifter,wolves1,
4r5t6y,phone1,favorite5,skytommy,abracada,
1martin,
102030405060,gatech,giulio,blacktop,cheer1,africa1,grizzly1,inkjet,shemales,durango1,booner,
11223344q,supergirl,vanyarespekt,dickless,srilanka,weaponx,
6string,nashvill,spicey,boxer1,fabien,
2sexy2ho,bowhunt,jerrylee,acrobat,tawnee,ulisse,nolimit8,l8g3bkde,pershing,gordo1,allover,gobrowns,
123432,
123444,
321456987,spoon1,hhhhh1,sailing1,gardenia,teache,sexmachine,tratata,pirate1,niceone,jimbos,
314159265,qsdfgh,bobbyy,ccccc1,carla1,vjkjltw,savana,biotech,frigid,
123456789g,dragon10,yesiam,alpha06,oakwood,tooter,winsto,radioman,vavilon,asnaeb,google123,nariman,kellyb,dthyjcnm,password6,parol1,golf72,skate1,lthtdj,
1234567890s,kennet,rossia,lindas,nataliya,perfecto,eminem1,kitana,aragorn1,rexona,arsenalf,planot,coope,testing123,timex,blackbox,bullhead,barbarian,dreamon,polaris1,cfvjktn,frdfhbev,gametime,slipknot666,nomad1,hfgcjlbz,happy69,fiddler,brazil1,joeboy,indianali,
113355,obelisk,telemark,ghostrid,preston1,anonim,wellcome,verizon1,sayangku,censor,timeport,dummies,adult1,nbnfybr,donger,thales,iamgay,sexy1234,deadlift,pidaras,doroga,
123qwe321,portuga,asdfgh12,happys,cadr14nu,pi3141,maksik,dribble,cortland,darken,stepanova,bommel,tropic,sochi2014,bluegras,shahid,merhaba,nacho,
2580456,orange44,kongen,
3cudjz,
78girl,my3kids,marcopol,deadmeat,gabbie,saruman,jeepman,freddie1,katie123,master99,ronal,ballbag,centauri,killer7,xqgann,pinecone,jdeere,geirby,aceshigh,
55832811,pepsimax,rayden,razor1,tallyho,ewelina,coldfire,florid,glotest,
999333,sevenup,bluefin,limaperu,apostol,bobbins,charmed1,michelin,sundin,centaur,alphaone,christof,trial1,lions1,
45645,just4you,starflee,vicki1,cougar1,green2,jellyfis,batman69,games1,hihje863,crazyzil,w0rm1,oklick,dogbite,yssup,sunstar,paprika,postov10,
124578963,x24ik3,kanada,buckster,iloveamy,bear123,smiler,nx74205,ohiostat,spacey,bigbill,doudo,nikolaeva,hcleeb,sex666,mindy1,buster11,deacons,boness,njkcnsq,candy2,cracker1,turkey1,qwertyu1,gogreen,tazzzz,edgewise,ranger01,qwerty6,blazer1,arian,letmeinnow,cigar1,jjjjjj1,grigio,frien,tenchu,f9lmwd,imissyou,filipp,heathers,coolie,salem1,woodduck,scubadiv,
123kat,raffaele,nikolaev,dapzu455,skooter,
9inches,lthgfhjkm,gr8one,ffffff1,zujlrf,amanda69,gldmeo,m5wkqf,rfrltkf,televisi,bonjou,paleale,stuff1,cumalot,fuckmenow,climb7,mark1234,t26gn4,oneeye,george2,utyyflbq,hunting1,tracy71,ready2go,hotguy,accessno,charger1,rudedog,kmfdm,goober1,sweetie1,wtpmjgda,dimensio,ollie1,pickles1,hellraiser,mustdie,
123zzz,
99887766,stepanov,verdun,tokenbad,anatol,bartende,cidkid86,onkelz,timmie,mooseman,patch1,
12345678c,marta1,dummy1,bethany1,myfamily,history1,
178500,lsutiger,phydeaux,moren,dbrnjhjdbx,gnbxrf,uniden,drummers,abpbrf,godboy,daisy123,hogan1,ratpack,irland,tangerine,greddy,flore,sqrunch,billyjoe,q55555,clemson1,
98745632,marios,ishot,angelin,access12,naruto12,lolly,scxakv,austin12,sallad,cool99,rockit,mongo1,mark22,ghbynth,ariadna,senha,docto,tyler2,mobius,hammarby,
192168,anna12,claire1,pxx3eftp,secreto,greeneye,stjabn,baguvix,satana666,rhbcnbyjxrf,dallastx,garfiel,michaelj,
1summer,montan,
1234ab,filbert,squids,fastback,lyudmila,chucho,eagleone,kimberle,ar3yuk3,jake01,nokids,soccer22,
1066ad,ballon,cheeto,review69,madeira,taylor2,sunny123,chubbs,lakeland,striker1,porche,qwertyu8,digiview,go1234,ferari,lovetits,aditya,minnow,green3,matman,cellphon,fortytwo,minni,pucara,
69a20a,roman123,fuente,
12e3e456,paul12,jacky,demian,littleman,jadakiss,vlad1997,franca,
282860,midian,nunzio,xaccess2,colibri,jessica0,revilo,
654456,harvey1,wolf1,macarena,corey1,husky1,arsen,milleniu,
852147,crowes,redcat,combat123654,hugger,psalms,quixtar,ilovemom,toyot,ballss,ilovekim,serdar,james23,avenger1,serendip,malamute,nalgas,teflon,shagger,letmein6,vyjujnjxbt,assa1234,student1,dixiedog,gznybwf13,fuckass,aq1sw2de3,robroy,hosehead,sosa21,
123345,ias100,teddy123,poppin,dgl70460,zanoza,farhan,quicksilver,
1701d,tajmahal,depechemode,paulchen,angler,tommy2,recoil,megamanx,scarecro,nicole2,
152535,rfvtgb,skunky,fatty1,saturno,wormwood,milwauke,udbwsk,sexlover,stefa,
7bgiqk,gfnhbr,omar10,bratan,lbyfvj,slyfox,forest1,jambo,william3,tempus,solitari,lucydog,murzilka,qweasdzxc1,vehpbkrf,
12312345,fixit,woobie,andre123,
123456789x,lifter,zinaida,soccer17,andone,foxbat,torsten,apple12,teleport,
123456i,leglover,bigcocks,vologda,dodger1,martyn,d6o8pm,naciona,eagleeye,maria6,rimshot,bentley1,octagon,barbos,masaki,gremio,siemen,s1107d,mujeres,bigtits1,cherr,saints1,mrpink,simran,ghzybr,ferrari2,secret12,tornado1,kocham,picolo,deneme,onelove1,rolan,fenster,
1fuckyou,cabbie,pegaso,nastyboy,password5,aidana,mine2306,mike13,wetone,tigger69,ytreza,bondage1,myass,golova,tolik,happyboy,poilkj,nimda2k,rammer,rubies,hardcore1,jetset,hoops1,jlaudio,misskitt,
1charlie,google12,theone1,phred,porsch,aalborg,luft4,charlie5,password7,gnosis,djgabbab,
1daniel,vinny,borris,cumulus,member1,trogdor,darthmau,andrew2,ktjybl,relisys,kriste,rasta220,chgobndg,weener,qwerty66,fritter,followme,freeman1,ballen,blood1,peache,mariso,trevor1,biotch,gtfullam,chamonix,friendste,alligato,misha1,
1soccer,
18821221,venkat,superd,molotov,bongos,mpower,acun3t1x,dfcmrf,h4x3d,rfhfufylf,tigran,booyaa,plastic1,monstr,rfnhby,lookatme,anabolic,tiesto,simon123,soulman,canes1,skyking,tomcat1,madona,bassline,dasha123,tarheel1,dutch1,xsw23edc,qwerty123456789,imperator,slaveboy,bateau,paypal,house123,pentax,wolf666,drgonzo,perros,digger1,juninho,hellomoto,bladerun,zzzzzzz1,keebler,take8422,fffffff1,ginuwine,israe,caesar1,crack1,precious1,garand,magda1,zigazaga,
321ewq,johnpaul,mama1234,iceman69,sanjeev,treeman,elric,rebell,
1thunder,cochon,deamon,zoltan,straycat,uhbyuj,luvfur,mugsy,primer,wonder1,teetime,candycan,pfchfytw,fromage,gitler,salvatio,piggy1,
23049307,zafira,chicky,sergeev,katze,bangers,andriy,jailbait,vaz2107,ghbhjlf,dbjktnnf,aqswde,zaratustra,asroma,
1pepper,alyss,kkkkk1,ryan1,radish,cozumel,waterpol,pentium1,rosebowl,farmall,steinway,dbrekz,baranov,jkmuf,another1,chinacat,qqqqqqq1,hadrian,devilmaycry4,ratbag,teddy2,love21,pullings,packrat,robyn1,boobo,qw12er34,tribe1,rosey,celestia,nikkie,fortune12,olga123,danthema,gameon,vfrfhjys,dilshod,henry14,jenova,redblue,chimaera,pennywise,sokrates,danimal,qqaazz,fuaqz4,killer2,
198200,tbone1,kolyan,wabbit,lewis1,maxtor,egoist,asdfas,spyglass,omegas,jack12,nikitka,esperanz,doozer,matematika,wwwww1,ssssss1,poiu0987,suchka,courtney1,gungho,alpha2,fktyjxrf,summer06,bud420,devildriver,heavyd,saracen,foucault,choclate,rjdfktyrj,goblue1,monaro,jmoney,dcpugh,efbcapa201,qqh92r,pepsicol,bbb747,ch5nmk,honeyb,beszoptad,tweeter,intheass,iseedeadpeople,
123dan,
89231243658s,farside1,findme,smiley1,
55556666,sartre,ytcnjh,kacper,costarica,
134679258,mikeys,nolimit9,vova123,withyou,
5rxypn,love143,freebie,rescue1,
203040,michael6,
12monkey,redgreen,steff,itstime,naveen,good12345,acidrain,
1dawg,miramar,playas,daddio,orion2,
852741,studmuff,kobe24,senha123,stephe,mehmet,allalone,scarface1,helloworld,smith123,blueyes,vitali,memphis1,mybitch,colin1,
159874,
1dick,podaria,d6wnro,brahms,f3gh65,dfcbkmtd,xxxman,corran,ugejvp,qcfmtz,marusia,totem,arachnid,matrix2,antonell,fgntrf,zemfira,christos,surfing1,naruto123,plato1,
56qhxs,madzia,vanille,
043aaa,asq321,mutton,ohiostate,golde,cdznjckfd,rhfcysq,green5,elephan,superdog,jacqueli,bollock,lolitas,nick12,
1orange,maplelea,july23,argento,waldorf,wolfer,pokemon12,zxcvbnmm,flicka,drexel,outlawz,harrie,atrain,juice2,falcons1,charlie6,
19391945,tower1,dragon21,hotdamn,dirtyboy,love4ever,
1ginger,thunder2,virgo1,alien1,bubblegu,
4wwvte,
123456789qqq,realtime,studio54,passss,vasilek,awsome,giorgia,bigbass,
2002tii,sunghile,mosdef,simbas,count0,uwrl7c,summer05,lhepmz,ranger21,sugarbea,principe,
5550123,tatanka,
9638v,cheerios,majere,nomercy,jamesbond007,bh90210,
7550055,jobber,karaganda,pongo,trickle,defamer,
6chid8,
1q2a3z,tuscan,nick123,.adgjm,loveyo,hobbes1,note1234,shootme,
171819,loveporn,
9788960,monty123,fabrice,macduff,monkey13,shadowfa,tweeker,hanna1,madball,telnet,loveu2,qwedcxzas,thatsit,vfhcbr,ptfe3xxp,gblfhfcs,ddddddd1,hakkinen,liverune,deathsta,misty123,suka123,recon1,inferno1,
232629,polecat,sanibel,grouch,hitech,hamradio,rkfdbfnehf,vandam,nadin,fastlane,shlong,iddqdidkfa,ledzeppelin,sexyfeet,
098123,stacey1,negras,roofing,lucifer1,ikarus,tgbyhn,melnik,barbaria,montego,twisted1,bigal1,jiggle,darkwolf,acerview,silvio,treetops,bishop1,iwanna,pornsite,happyme,gfccdjhl,
114411,veritech,batterse,casey123,yhntgb,mailto,milli,guster,q12345678,coronet,sleuth,fuckmeha,armadill,kroshka,geordie,lastochka,pynchon,killall,tommy123,sasha1996,godslove,hikaru,clticic,cornbrea,vfkmdbyf,passmaster,
123123123a,souris,nailer,diabolo,skipjack,martin12,hinata,mof6681,brookie,dogfight,johnso,karpov,
326598,rfvbrflpt,travesti,caballer,galaxy1,wotan,antoha,art123,xakep1234,ricflair,pervert1,p00kie,ambulanc,santosh,berserker,larry33,bitch123,a987654321,dogstar,angel22,cjcbcrf,redhouse,toodles,gold123,hotspot,kennedy1,glock21,chosen1,schneide,mainman,taffy1,
3ki42x,
4zqauf,ranger2,
4meonly,year2000,
121212a,kfylsi,netzwerk,diese,picasso1,rerecz,
225522,dastan,swimmer1,brooke1,blackbea,oneway,ruslana,dont4get,phidelt,chrisp,gjyxbr,xwing,kickme,shimmy,kimmy1,
4815162342lost,qwerty5,fcporto,jazzbo,mierd,
252627,basses,sr20det,
00133,florin,howdy1,kryten,goshen,koufax,cichlid,imhotep,andyman,wrest666,saveme,dutchy,anonymou,semprini,siempre,mocha1,forest11,wildroid,aspen1,sesam,kfgekz,cbhbec,a55555,sigmanu,slash1,giggs11,vatech,marias,candy123,jericho1,kingme,
123a123,drakula,cdjkjxm,mercur,oneman,hoseman,plumper,ilovehim,lancers,sergey1,takeshi,goodtogo,cranberr,ghjcnj123,harvick,qazxs,
1972chev,horsesho,freedom3,letmein7,saitek,anguss,vfvfgfgfz,
300000,elektro,toonporn,
999111999q,mamuka,q9umoz,edelweis,subwoofer,bayside,disturbe,volition,lucky3,
12345678z,
3mpz4r,march1,atlantida,strekoza,seagrams,
090909t,yy5rbfsc,jack1234,sammy12,sampras,mark12,eintrach,chaucer,lllll1,nochance,whitepower,
197000,lbvekz,passer,torana,
12345as,pallas,koolio,
12qw34,nokia8800,findout,
1thomas,mmmmm1,
654987,mihaela,chinaman,superduper,donnas,ringo1,jeroen,gfdkjdf,professo,cdtnrf,tranmere,tanstaaf,himera,ukflbfnjh,
667788,alex32,joschi,w123456,okidoki,flatline,papercli,super8,doris1,
2good4u,
4z34l0ts,pedigree,freeride,gsxr1100,wulfgar,benjie,ferdinan,king1,charlie7,djdxbr,fhntvbq,ripcurl,
2wsx1qaz,kingsx,desade,sn00py,loveboat,rottie,evgesha,
4money,dolittle,adgjmpt,buzzers,brett1,makita,
123123qweqwe,rusalka,sluts1,
123456e,jameson1,bigbaby,
1z2z3z,ckjybr,love4u,fucker69,erhfbyf,jeanluc,farhad,fishfood,merkin,giant1,golf69,rfnfcnhjaf,camera1,stromb,smoothy,
774411,nylon,juice1,rfn.irf,newyor,
123456789t,marmot,star11,jennyff,jester1,hisashi,kumquat,alex777,helicopt,merkur,dehpye,cummin,zsmj2v,kristjan,april12,englan,honeypot,badgirls,uzumaki,keines,p12345,guita,quake1,duncan1,juicer,milkbone,hurtme,
123456789b,qq123456789,schwein,p3wqaw,
54132442,qwertyytrewq,andreeva,ruffryde,punkie,abfkrf,kristinka,anna1987,ooooo1,
335533aa,umberto,amber123,
456123789,
456789123,beelch,manta,peeker,
1112131415,
3141592654,gipper,wrinkle5,katies,asd123456,james11,
78n3s5af,michael0,daboss,jimmyb,hotdog1,david69,
852123,blazed,sickan,eljefe,
2n6wvq,gobills,rfhfcm,squeaker,cabowabo,luebri,karups,test01,melkor,angel777,smallvil,modano,olorin,
4rkpkt,leslie1,koffie,shadows1,littleon,amiga1,topeka,summer20,asterix1,pitstop,aloysius,k12345,magazin,joker69,panocha,pass1word,
1233214,ironpony,
368ejhih,
88keys,pizza123,sonali,
57np39,quake2,
1234567890qw,
1020304,sword1,fynjif,abcde123,dfktyjr,rockys,grendel1,harley12,kokakola,super2,azathoth,lisa123,shelley1,girlss,ibragim,seven1,jeff24,
1bigdick,dragan,autobot,t4nvp7,omega123,
900000,hecnfv,
889988,nitro1,doggie1,fatjoe,
811pahc,tommyt,savage1,pallino,smitty1,jg3h4hfn,jamielee,
1qazwsx,zx123456,machine1,asdfgh123,guinnes,
789520,sharkman,jochen,legend1,sonic2,extreme1,dima12,photoman,
123459876,nokian95,
775533,vaz2109,april10,becks,repmvf,pooker,qwer12345,themaster,nabeel,monkey10,gogetit,hockey99,bbbbbbb1,zinedine,dolphin2,anelka,
1superma,winter01,muggsy,horny2,
669966,kuleshov,jesusis,calavera,bullet1,
87t5hdf,sleepers,winkie,vespa,lightsab,carine,magister,
1spider,shitbird,salavat,becca1,wc18c2,shirak,galactus,zaskar,barkley1,reshma,dogbreat,fullsail,asasa,boeder,
12345ta,zxcvbnm12,lepton,elfquest,tony123,vkaxcs,savatage,sevilia1,badkitty,munkey,pebbles1,diciembr,qapmoc,gabriel2,
1qa2ws3e,cbcmrb,welldone,nfyufh,kaizen,jack11,manisha,grommit,g12345,maverik,chessman,heythere,mixail,jjjjjjj1,sylvia1,fairmont,harve,skully,global1,youwish,pikachu1,badcat,zombie1,
49527843,ultra1,redrider,offsprin,lovebird,
153426,stymie,aq1sw2,sorrento,
0000001,r3ady41t,webster1,
95175,adam123,coonass,
159487,slut1,gerasim,monkey99,slutwife,
159963,
1pass1page,hobiecat,bigtymer,all4you,maggie2,olamide,comcast1,infinit,bailee,vasileva,.ktxrf,asdfghjkl1,
12345678912,setter,fuckyou7,nnagqx,lifesuck,draken,austi,feb2000,cable1,
1234qwerasdf,hax0red,zxcv12,vlad7788,nosaj,lenovo,underpar,huskies1,lovegirl,feynman,suerte,babaloo,alskdjfhg,oldsmobi,bomber1,redrover,pupuce,methodman,phenom,cutegirl,countyli,gretsch,godisgood,bysunsu,hardhat,mironova,
123qwe456rty,rusty123,salut,
187211,
555666777,
11111z,mahesh,rjntyjxtr,br00klyn,dunce1,timebomb,bovine,makelove,littlee,shaven,rizwan,patrick7,
42042042,bobbijo,rustem,buttmunc,dongle,tiger69,bluecat,blackhol,shirin,peaces,cherub,cubase,longwood,lotus7,gwju3g,bruin,pzaiu8,green11,uyxnyd,seventee,dragon5,tinkerbel,bluess,bomba,fedorova,joshua2,bodyshop,peluche,gbpacker,shelly1,d1i2m3a4,ghtpbltyn,talons,sergeevna,misato,chrisc,sexmeup,brend,olddog,davros,hazelnut,bridget1,hzze929b,readme,brethart,wild1,ghbdtnbr1,nortel,kinger,royal1,bucky1,allah1,drakkar,emyeuanh,gallaghe,hardtime,jocker,tanman,flavio,abcdef123,leviatha,squid1,skeet,sexse,
123456x,mom4u4mm,lilred,djljktq,ocean11,cadaver,baxter1,
808state,fighton,primavera,
1andrew,moogle,limabean,goddess1,vitalya,blue56,
258025,bullride,cicci,
1234567d,connor1,gsxr11,oliveoil,leonard1,legsex,gavrik,rjnjgtc,mexicano,
2bad4u,goodfellas,ornw6d,mancheste,hawkmoon,zlzfrh,schorsch,g9zns4,bashful,rossi46,stephie,rfhfntkm,sellout,
123fuck,stewar1,solnze,
00007,thor5200,compaq12,didit,bigdeal,hjlbyf,zebulon,wpf8eu,kamran,emanuele,
197500,carvin,ozlq6qwm,
3syqo15hil,pennys,epvjb6,asdfghjkl123,
198000,nfbcbz,jazzer,asfnhg66,zoloft,albundy,aeiou,getlaid,planet1,gjkbyjxrf,alex2000,brianb,moveon,maggie11,eieio,vcradq,shaggy1,novartis,cocoloco,dunamis,
554uzpad,sundrop,
1qwertyu,alfie,feliks,briand,
123www,red456,addams,fhntv1998,goodhead,theway,javaman,angel01,stratoca,lonsdale,
15987532,bigpimpin,skater1,issue43,muffie,yasmina,slowride,crm114,sanity729,himmel,carolcox,bustanut,parabola,masterlo,computador,crackhea,dynastar,rockbott,doggysty,wantsome,bigten,gaelle,juicy1,alaska1,etower,sixnine,suntan,froggies,nokia7610,hunter11,njnets,alicante,buttons1,diosesamo,elizabeth1,chiron,trustnoo,amatuers,tinytim,mechta,sammy2,cthulu,trs8f7,poonam,m6cjy69u35,cookie12,blue25,jordans,santa1,kalinka,mikey123,lebedeva,
12345689,kissss,queenbee,vjybnjh,ghostdog,cuckold,bearshare,rjcntyrj,alinochka,ghjcnjrdfibyj,aggie1,teens1,
3qvqod,dauren,tonino,hpk2qc,iqzzt580,bears85,nascar88,theboy,njqcw4,masyanya,pn5jvw,intranet,lollone,shadow99,
00096462,techie,cvtifhbrb,redeemed,gocanes,
62717315,topman,intj3a,cobrajet,antivirus,whyme,berserke,ikilz083,airedale,brandon2,hopkig,johanna1,danil8098,gojira,arthu,vision1,pendragon,milen,chrissie,vampiro,mudder,chris22,blowme69,omega7,surfers,goterps,italy1,baseba11,diego1,gnatsum,birdies,semenov,joker123,zenit2011,wojtek,cab4ma99,watchmen,damia,forgotte,fdm7ed,strummer,freelanc,cingular,orange77,mcdonalds,vjhjpjdf,kariya,tombston,starlet,hawaii1,dantheman,megabyte,nbvjirf,anjing,ybrjkftdbx,hotmom,kazbek,pacific1,sashimi,asd12,coorslig,yvtte545,kitte,elysium,klimenko,cobblers,kamehameha,only4me,redriver,triforce,sidorov,vittoria,fredi,dank420,m1234567,fallout2,
989244342a,crazy123,crapola,servus,volvos,
1scooter,griffin1,autopass,ownzyou,deviant,george01,
2kgwai,boeing74,simhrq,hermosa,hardcor,griffy,rolex1,hackme,cuddles1,master3,bujhtr,aaron123,popolo,blader,
1sexyred,gerry1,cronos,ffvdj474,yeehaw,bob1234,carlos2,mike77,buckwheat,ramesh,acls2h,monster2,montess,
11qq22ww,lazer,zx123456789,chimpy,masterch,sargon,lochness,archana,
1234qwert,hbxfhl,sarahb,altoid,zxcvbn12,dakot,caterham,dolomite,chazz,r29hqq,longone,pericles,grand1,sherbert,eagle3,pudge,irontree,synapse,boome,nogood,summer2,pooki,gangsta1,mahalkit,elenka,lbhtrnjh,dukedog,
19922991,hopkins1,evgenia,domino1,x123456,manny1,tabbycat,drake1,jerico,drahcir,kelly2,
708090a,facesit,
11c645df,mac123,boodog,kalani,hiphop1,critters,hellothere,tbirds,valerka,
551scasi,love777,paloalto,mrbrown,duke3d,killa1,arcturus,spider12,dizzy1,smudger,goddog,
75395,spammy,
1357997531,
78678,datalife,zxcvbn123,
1122112211,london22,
23dp4x,rxmtkp,biggirls,ownsu,lzbs2twz,sharps,geryfe,
237081a,golakers,nemesi,sasha1995,pretty1,mittens1,d1lakiss,speedrac,gfhjkmm,sabbat,hellrais,
159753258,qwertyuiop123,playgirl,crippler,salma,strat1,celest,hello5,omega5,cheese12,ndeyl5,edward12,soccer3,cheerio,davido,vfrcbr,gjhjctyjr,boscoe,inessa,shithole,ibill,qwepoi,
201jedlz,asdlkj,davidk,spawn2,ariel1,michael4,jamie123,romantik,micro1,pittsbur,canibus,katja,muhtar,thomas123,studboy,masahiro,rebrov,patrick8,hotboys,sarge1,
1hammer,nnnnn1,eistee,datalore,jackdani,sasha2010,mwq6qlzo,cmfnpu,klausi,cnhjbntkm,andrzej,ilovejen,lindaa,hunter123,vvvvv1,novembe,hamster1,x35v8l,lacey1,
1silver,iluvporn,valter,herson,alexsandr,cojones,backhoe,womens,
777angel,beatit,klingon1,ta8g4w,luisito,benedikt,maxwel,inspecto,zaq12ws,wladimir,bobbyd,peterj,asdfg12,hellspawn,bitch69,nick1234,golfer23,sony123,jello1,killie,chubby1,kodaira52,yanochka,buckfast,morris1,roaddogg,snakeeye,sex1234,mike22,mmouse,fucker11,dantist,brittan,vfrfhjdf,doc123,plokijuh,emerald1,batman01,serafim,elementa,soccer9,footlong,cthuttdbx,hapkido,eagle123,getsmart,getiton,batman2,masons,mastiff,
098890,cfvfhf,james7,azalea,sherif,saun24865709,
123red,cnhtrjpf,martina1,pupper,michael5,alan12,shakir,devin1,ha8fyp,palom,mamulya,trippy,deerhunter,happyone,monkey77,
3mta3,
123456789f,crownvic,teodor,natusik,
0137485,vovchik,strutter,triumph1,cvetok,moremone,sonnen,screwbal,akira1,sexnow,pernille,independ,poopies,samapi,kbcbxrf,master22,swetlana,urchin,viper2,magica,slurpee,postit,gilgames,kissarmy,clubpenguin,limpbizk,timber1,celin,lilkim,fuckhard,lonely1,mom123,goodwood,extasy,sdsadee23,foxglove,malibog,clark1,casey2,shell1,odense,balefire,dcunited,cubbie,pierr,solei,
161718,bowling1,areyukesc,batboy,r123456,
1pionee,marmelad,maynard1,cn42qj,cfvehfq,heathrow,qazxcvbn,connecti,secret123,newfie,xzsawq21,tubitzen,nikusha,enigma1,yfcnz123,
1austin,michaelc,splunge,wanger,phantom2,jason2,pain4me,primetime21,babes1,liberte,sugarray,undergro,zonker,labatts,djhjyf,watch1,eagle5,madison2,cntgfirf,sasha2,masterca,fiction7,slick50,bruins1,sagitari,
12481632,peniss,insuranc,
2b8riedt,
12346789,mrclean,ssptx452,tissot,q1w2e3r4t5y6u7,avatar1,comet1,spacer,vbrjkf,pass11,wanker1,
14vbqk9p,noshit,money4me,sayana,fish1234,seaways,pipper,romeo123,karens,wardog,ab123456,gorilla1,andrey123,lifesucks,jamesr,
4wcqjn,bearman,glock22,matt11,dflbvrf,barbi,maine1,dima1997,sunnyboy,
6bjvpe,bangkok1,
666666q,rafiki,letmein0,
0raziel0,dalla,london99,wildthin,patrycja,skydog,qcactw,tmjxn151,yqlgr667,jimmyd,stripclub,deadwood,
863abgsg,horses1,qn632o,scatman,sonia1,subrosa,woland,kolya,charlie4,moleman,j12345,summer11,angel11,blasen,sandal,mynewpas,retlaw,cambria,mustang4,nohack04,kimber45,fatdog,maiden1,bigload,necron,dupont24,ghost123,turbo2,.ktymrf,radagast,balzac,vsevolod,pankaj,argentum,
2bigtits,mamabear,bumblebee,mercury7,maddie1,chomper,jq24nc,snooky,pussylic,
1lovers,taltos,warchild,diablo66,jojo12,sumerki,aventura,gagger,annelies,drumset,cumshots,azimut,
123580,clambake,bmw540,birthday54,psswrd,paganini,wildwest,filibert,teaseme,
1test,scampi,thunder5,antosha,purple12,supersex,hhhhhh1,brujah,
111222333a,
13579a,bvgthfnjh,
4506802a,killians,choco,qqqwwweee,raygun,
1grand,koetsu13,sharp1,mimi92139,fastfood,idontcare,bluered,chochoz,
4z3al0ts,target1,sheffiel,labrat,stalingrad,
147123,cubfan,corvett1,holden1,snapper1,
4071505,amadeo,pollo,desperados,lovestory,marcopolo,mumbles,familyguy,kimchee,marcio,support1,tekila,shygirl1,trekkie,submissi,ilaria,salam,loveu,wildstar,master69,sales1,netware,homer2,arseniy,gerrity1,raspberr,atreyu,stick1,aldric,tennis12,matahari,alohomora,dicanio,michae1,michaeld,
666111,luvbug,boyscout,esmerald,mjordan,admiral1,steamboa,
616913,ybhdfyf,
557711,
555999,sunray,apokalipsis,theroc,bmw330,buzzy,chicos,lenusik,shadowma,eagles05,
444222,peartree,qqq123,sandmann,spring1,
430799,phatass,andi03,binky1,arsch,bamba,kenny123,fabolous,loser123,poop12,maman,phobos,tecate,myxworld4,metros,cocorico,nokia6120,johnny69,hater,spanked,
313233,markos,love2011,mozart1,viktoriy,reccos,
331234,hornyone,vitesse,
1um
83z,
55555q,proline,v12345,skaven,alizee,bimini,fenerbahce,
543216,zaqqaz,poi123,stabilo,brownie1,
1qwerty1,dinesh,baggins1,
1234567t,davidkin,friend1,lietuva,octopuss,spooks,
12345qq,myshit,buttface,paradoxx,pop123,golfin,sweet69,rfghbp,sambuca,kayak1,bogus1,girlz,dallas12,millers,
123456zx,operatio,pravda,eternal1,chase123,moroni,proust,blueduck,harris1,redbarch,
996699,
1010101,mouche,millenni,
1123456,score1,
1234565,
1234576,eae21157,dave12,pussyy,gfif1991,
1598741,hoppy,darrian,snoogins,fartface,ichbins,vfkbyrf,rusrap,
2741001,fyfrjylf,aprils,favre,thisis,bannana,serval,wiggum,satsuma,matt123,ivan123,gulmira,
123zxc123,oscar2,acces,annie2,dragon0,emiliano,allthat,pajaro,amandine,rawiswar,sinead,tassie,karma1,piggys,nokias,orions,origami,type40,mondo,ferrets,monker,biteme2,gauntlet,arkham,ascona,ingram01,klem1,quicksil,bingo123,blue66,plazma,onfire,shortie,spjfet,
123963,thered,fire777,lobito,vball,
1chicken,moosehea,elefante,babe23,jesus12,parallax,elfstone,number5,shrooms,freya,hacker1,roxette,snoops,number7,fellini,dtlmvf,chigger,mission1,mitsubis,kannan,whitedog,james01,ghjgecr,rfnfgekmnf,everythi,getnaked,prettybo,sylvan,chiller,carrera4,cowbo,biochem,azbuka,qwertyuiop1,midnight1,informat,audio1,alfred1,
0range,sucker1,scott2,russland,
1eagle,torben,djkrjlfd,rocky6,maddy1,bonobo,portos,chrissi,xjznq5,dexte,vdlxuc,teardrop,pktmxr,iamtheone,danijela,eyphed,suzuki1,etvww4,redtail,ranger11,mowerman,asshole2,coolkid,adriana1,bootcamp,longcut,evets,npyxr5,bighurt,bassman1,stryder,giblet,nastja,blackadd,topflite,wizar,cumnow,technolo,bassboat,bullitt,kugm7b,maksimus,wankers,mine12,sunfish,pimpin1,shearer9,user1,vjzgjxnf,tycobb,
80070633pc,stanly,vitaly,shirley1,cinzia,carolyn1,angeliqu,teamo,qdarcv,aa123321,ragdoll,bonit,ladyluck,wiggly,vitara,jetbalance,
12345600,ozzman,dima12345,mybuddy,shilo,satan66,erebus,warrio,
090808qwe,stupi,bigdan,paul1234,chiapet,brooks1,philly1,dually,gowest,farmer1,
1qa2ws3ed4rf,alberto1,beachboy,barne,aa12345,aliyah,radman,benson1,dfkthbq,highball,bonou2,i81u812,workit,darter,redhook,csfbr5yy,buttlove,episode1,ewyuza,porthos,lalal,abcd12,papero,toosexy,keeper1,silver7,jujitsu,corset,pilot123,simonsay,pinggolf,katerinka,kender,drunk1,fylhjvtlf,rashmi,nighthawk,maggy,juggernaut,larryb,cabibble,fyabcf,
247365,gangstar,jaybee,verycool,
123456789qw,forbidde,prufrock,
12345zxc,malaika,blackbur,docker,filipe,koshechka,gemma1,djamaal,dfcbkmtdf,gangst,
9988aa,ducks1,pthrfkj,puertorico,muppets,griffins,whippet,sauber,timofey,larinso,
123456789zxc,quicken,qsefth,liteon,headcase,bigdadd,zxc321,maniak,jamesc,bassmast,bigdogs,
1girls,
123xxx,trajan,lerochka,noggin,mtndew,
04975756,domin,wer123,fumanchu,lambada,thankgod,june22,kayaking,patchy,summer10,timepass,poiu1234,kondor,kakka,lament,zidane10,
686xqxfg,l8v53x,caveman1,nfvthkfy,holymoly,pepita,alex1996,mifune,fighter1,asslicker,jack22,abc123abc,zaxxon,midnigh,winni,psalm23,punky,monkey22,password13,mymusic,justyna,annushka,lucky5,briann,
495rus19,withlove,almaz,supergir,miata,bingbong,bradpitt,kamasutr,yfgjktjy,vanman,pegleg,amsterdam1,
123a321,letmein9,shivan,korona,bmw520,annette1,scotsman,gandal,welcome12,sc00by,qpwoei,fred69,m1sf1t,hamburg1,
1access,dfkmrbhbz,excalibe,boobies1,fuckhole,karamel,starfuck,star99,breakfas,georgiy,ywvxpz,smasher,fatcat1,allanon,
12345n,coondog,whacko,avalon1,scythe,saab93,timon,khorne,atlast,nemisis,brady12,blenheim,
52678677,mick7278,
9skw5g,fleetwoo,ruger1,kissass,pussy7,scruff,
12345l,bigfun,vpmfsz,yxkck878,evgeny,
55667788,lickher,foothill,alesis,poppies,
77777778,californi,mannie,bartjek,qhxbij,thehulk,xirt2k,angelo4ek,rfkmrekznjh,tinhorse,
1david,sparky12,night1,luojianhua,bobble,nederland,rosemari,travi,minou,ciscokid,beehive,
565hlgqo,alpine1,samsung123,trainman,xpress,logistic,vw198m2n,hanter,zaqwsx123,qwasz,mariachi,paska,kmg365,kaulitz,sasha12,north1,polarbear,mighty1,makeksa11,
123456781,one4all,gladston,notoriou,polniypizdec110211,gosia,grandad,xholes,timofei,invalidp,speaker1,zaharov,maggiema,loislane,gonoles,br5499,discgolf,kaskad,snooper,newman1,belial,demigod,vicky1,pridurok,alex1990,tardis1,cruzer,hornie,sacramen,babycat,burunduk,mark69,oakland1,me1234,gmctruck,extacy,sexdog,putang,poppen,billyd,
1qaz2w,loveable,gimlet,azwebitalia,ragtop,
198500,qweas,mirela,rock123,
11bravo,sprewell,tigrenok,jaredleto,vfhbif,blue2,rimjob,catwalk,sigsauer,loqse,doromich,jack01,lasombra,jonny5,newpassword,profesor,garcia1,
123as123,croucher,demeter,
4_life,rfhfvtkm,superman2,rogues,assword1,russia1,jeff1,mydream,z123456789,rascal1,darre,kimberl,pickle1,ztmfcq,ponchik,lovesporn,hikari,gsgba368,pornoman,chbjun,choppy,diggity,nightwolf,viktori,camar,vfhecmrf,alisa1,minstrel,wishmaster,mulder1,aleks,gogirl,gracelan,
8womys,highwind,solstice,dbrnjhjdyf,nightman,pimmel,beertje,ms6nud,wwfwcw,fx3tuo,poopface,asshat,dirtyd,jiminy,luv2fuck,ptybnxtvgbjy,dragnet,pornogra,
10inch,scarlet1,guido1,raintree,v123456,
1aaaaaaa,maxim1935,hotwater,gadzooks,playaz,harri,brando1,defcon1,ivanna,
123654a,arsenal2,candela,nt5d27,jaime1,duke1,burton1,allstar1,dragos,newpoint,albacore,
1236987z,verygoodbot,
1wildcat,fishy1,ptktysq,chris11,puschel,itdxtyrj,
7kbe9d,serpico,jazzie,
1zzzzz,kindbuds,wenef45313,
1compute,tatung,sardor,gfyfcjybr,test99,toucan,meteora,lysander,asscrack,jowgnx,hevnm4,suckthis,masha123,karinka,marit,oqglh565,dragon00,vvvbbb,cheburashka,vfrfrf,downlow,unforgiven,p3e85tr,kim123,sillyboy,gold1,golfvr6,quicksan,irochka,froglegs,shortsto,caleb1,tishka,bigtitts,smurfy,bosto,dropzone,nocode,jazzbass,digdug,green7,saltlake,therat,dmitriev,lunita,deaddog,summer0,
1212qq,bobbyg,mty3rh,isaac1,gusher,helloman,sugarbear,corvair,extrem,teatime,tujazopi,titanik,efyreg,jo9k2jw2,counchac,tivoli,utjvtnhbz,bebit,jacob6,clayton1,incubus1,flash123,squirter,dima2010,cock1,rawks,komatsu,forty2,
98741236,cajun1,madelein,mudhoney,magomed,q111111,qaswed,consense,
12345b,bakayaro,silencer,zoinks,bigdic,werwolf,pinkpuss,
96321478,alfie1,ali123,sarit,minette,musics,chato,iaapptfcor,cobaka,strumpf,datnigga,sonic123,yfnecbr,vjzctvmz,pasta1,tribbles,crasher,htlbcrf,
1tiger,shock123,bearshar,syphon,a654321,cubbies1,jlhanes,eyespy,fucktheworld,carrie1,bmw325is,suzuk,mander,dorina,mithril,hondo1,vfhnbyb,sachem,newton1,
12345x,
7777755102q,
230857z,xxxsex,scubapro,hayastan,spankit,delasoul,searock6,fallout3,nilrem,
24681357,pashka,voluntee,pharoh,willo,india1,badboy69,roflmao,gunslinger,lovergir,mama12,melange,
640xwfkv,chaton,darkknig,bigman1,aabbccdd,harleyd,birdhouse,giggsy,hiawatha,tiberium,joker7,hello1234,sloopy,tm371855,greendog,solar1,bignose,djohn11,espanol,oswego,iridium,kavitha,pavell,mirjam,cyjdsvujljv,alpha5,deluge,hamme,luntik,turismo,stasya,kjkbnf,caeser,schnecke,tweety1,tralfaz,lambrett,prodigy1,trstno1,pimpshit,werty1,karman,bigboob,pastel,blackmen,matthew8,moomin,q1w2e,gilly,primaver,jimmyg,house2,elviss,
15975321,
1jessica,monaliza,salt55,vfylfhbyrf,harley11,tickleme,murder1,nurgle,kickass1,theresa1,fordtruck,pargolf,managua,inkognito,sherry1,gotit,friedric,metro2033,slk230,freeport,cigarett,
492529,vfhctkm,thebeach,twocats,bakugan,yzerman1,charlieb,motoko,skiman,
1234567w,pussy3,love77,asenna,buffie,
260zntpc,kinkos,access20,mallard1,fuckyou69,monami,rrrrr1,bigdog69,mikola,
1boomer,godzila,ginger2,dima2000,skorpion39,dima1234,hawkdog79,warrior2,ltleirf,supra1,jerusale,monkey01,
333z333,
666888,kelsey1,w8gkz2x1,fdfnfh,msnxbi,qwe123rty,mach1,monkey3,
123456789qq,c123456,nezabudka,barclays,nisse,dasha1,
12345678987654321,dima1993,oldspice,frank2,rabbitt,prettyboy,ov3ajy,iamthema,kawasak,banjo1,gtivr6,collants,gondor,hibees,cowboys2,codfish,buster2,purzel,rubyred,kayaker,bikerboy,qguvyt,masher,sseexx,kenshiro,moonglow,semenova,rosari,eduard1,deltaforce,grouper,bongo1,tempgod,
1taylor,goldsink,qazxsw1,
1jesus,m69fg2w,maximili,marysia,husker1,kokanee,sideout,googl,south1,plumber1,trillian,
00001,
1357900,farkle,
1xxxxx,pascha,emanuela,bagheera,hound1,mylov,newjersey,swampfox,sakic19,torey,geforce,wu4etd,conrail,pigman,martin2,ber02,nascar2,angel69,barty,kitsune,cornet,yes90125,goomba,daking,anthea,sivart,weather1,ndaswf,scoubidou,masterchief,rectum,
3364068,oranges1,copter,
1samanth,eddies,mimoza,ahfywbz,celtic88,
86mets,applemac,amanda11,taliesin,
1angel,imhere,london11,bandit12,killer666,beer1,
06225930,psylocke,james69,schumach,
24pnz6kc,endymion,wookie1,poiu123,birdland,smoochie,lastone,rclaki,olive1,pirat,thunder7,chris69,rocko,
151617,djg4bb4b,lapper,ajcuivd289,colole57,shadow7,dallas21,ajtdmw,executiv,dickies,omegaman,jason12,newhaven,aaaaaas,pmdmscts,s456123789,beatri,applesauce,levelone,strapon,benladen,creaven,ttttt1,saab95,f123456,pitbul,
54321a,sex12345,robert3,atilla,mevefalkcakk,
1johnny,veedub,lilleke,nitsuj,
5t6y7u8i,teddys,bluefox,nascar20,vwjetta,buffy123,playstation3,loverr,qweasd12,lover2,telekom,benjamin1,alemania,neutrino,rockz,valjean,testicle,trinity3,realty,firestarter,
794613852,ardvark,guadalup,philmont,arnold1,holas,zw6syj,birthday299,dover1,sexxy1,gojets,
741236985,cance,blue77,xzibit,qwerty88,komarova,qweszxc,footer,rainger,silverst,ghjcnb,catmando,tatooine,
31217221027711,amalgam,
69dude,qwerty321,roscoe1,
74185,cubby,alfa147,perry1,darock,katmandu,darknight,knicks1,freestuff,
45454,kidman,
4tlved,axlrose,cutie1,quantum1,joseph10,ichigo,pentium3,rfhectkm,rowdy1,woodsink,justforfun,sveta123,pornografia,mrbean,bigpig,tujheirf,delta9,portsmou,hotbod,kartal,
10111213,fkbyf001,pavel1,pistons1,necromancer,verga,c7lrwu,doober,thegame1,hatesyou,sexisfun,
1melissa,tuczno18,bowhunte,gobama,scorch,campeon,bruce2,fudge1,herpderp,bacon1,redsky,blackeye,
19966991,
19992000,ripken8,masturba,
34524815,primax,paulina1,vp6y38,
427cobra,
4dwvjj,dracon,fkg7h4f3v6,longview,arakis,panama1,honda2,lkjhgfdsaz,razors,steels,fqkw5m,dionysus,mariajos,soroka,enriqu,nissa,barolo,king1234,hshfd4n279,holland1,flyer1,tbones,
343104ky,modems,tk421,ybrbnrf,pikapp,sureshot,wooddoor,florida2,mrbungle,vecmrf,catsdogs,axolotl,nowayout,francoi,chris21,toenail,hartland,asdjkl,nikkii,onlyyou,buckskin,fnord,flutie,holen1,rincewind,lefty1,ducky1,
199000,fvthbrf,redskin1,ryno23,lostlove,
19mtpgam19,abercrom,benhur,jordan11,roflcopter,ranma,phillesh,avondale,igromania,p4ssword,jenny123,tttttt1,spycams,cardigan,
2112yyz,sleepy1,paris123,mopars,lakers34,hustler1,james99,matrix3,popimp,
12pack,eggbert,medvedev,testit,performa,logitec,marija,sexybeast,supermanboy,iwantit,rjktcj,jeffer,svarog,halo123,whdbtp,nokia3230,heyjoe,marilyn1,speeder,ibxnsm,prostock,bennyboy,charmin,codydog,parol999,ford9402,jimmer,crayola,
159357258,alex77,joey1,cayuga,phish420,poligon,specops,tarasova,caramelo,draconis,dimon,cyzkhw,june29,getbent,
1guitar,jimjam,dictiona,shammy,flotsam,
0okm9ijn,crapper,technic,fwsadn,rhfdxtyrj,zaq11qaz,anfield1,
159753q,curious1,hip-hop,
1iiiii,gfhjkm2,cocteau,liveevil,friskie,crackhead,b1afra,elektrik,lancer1,b0ll0cks,jasond,z1234567,tempest1,alakazam,asdfasd,duffy1,oneday,dinkle,qazedctgb,kasimir,happy7,salama,hondaciv,nadezda,andretti,cannondale,sparticu,znbvjd,blueice,money01,finster,eldar,moosie,pappa,delta123,neruda,bmw330ci,jeanpaul,malibu1,alevtina,sobeit,travolta,fullmetal,enamorad,mausi,boston12,greggy,smurf1,ratrace,ichiban,ilovepus,davidg,wolf69,villa1,cocopuff,football12,starfury,zxc12345,forfree,fairfiel,dreams1,tayson,mike2,dogday,hej123,oldtimer,sanpedro,clicker,mollycat,roadstar,golfe,lvbnhbq1,topdevice,a1b2c,sevastopol,calli,milosc,fire911,pink123,team3x,nolimit5,snickers1,annies,
09877890,jewel1,steve69,justin11,autechre,killerbe,browncow,slava1,christer,fantomen,redcloud,elenberg,beautiful1,passw0rd1,nazira,advantag,cockring,chaka,rjpzdrf,
99941,az123456,biohazar,energie,bubble1,bmw323,tellme,printer1,glavine,
1starwar,coolbeans,april17,carly1,quagmire,admin2,djkujuhfl,pontoon,texmex,carlos12,thermo,vaz2106,nougat,bob666,
1hockey,
1john,cricke,qwerty10,twinz,totalwar,underwoo,tijger,lildevil,
123q321,germania,freddd,
1scott,beefy,
5t4r3e2w1q,fishbait,nobby,hogger,dnstuff,jimmyc,redknapp,flame1,tinfloor,balla,nfnfhby,yukon1,vixens,batata,danny123,
1zxcvbnm,gaetan,homewood,greats,tester1,green99,
1fucker,sc0tland,starss,glori,arnhem,goatman,
1234asd,supertra,bill123,elguapo,sexylegs,jackryan,usmc69,innow,roaddog,alukard,winter11,crawler,gogiants,rvd420,alessandr,homegrow,gobbler,esteba,valeriy,happy12,
1joshua,hawking,sicnarf,waynes,iamhappy,bayadera,august2,sashas,gotti,dragonfire,pencil1,halogen,borisov,bassingw,
15975346,zachar,sweetp,soccer99,sky123,flipyou,spots3,xakepy,cyclops1,dragon77,rattolo58,motorhea,piligrim,helloween,dmb2010,supermen,shad0w,eatcum,sandokan,pinga,ufkfrnbrf,roksana,amista,pusser,sony1234,azerty1,
1qasw2,ghbdt,q1w2e3r4t5y6u7i8,ktutylf,brehznev,zaebali,shitass,creosote,gjrtvjy,
14938685,naughtyboy,pedro123,
21crack,maurice1,joesakic,nicolas1,matthew9,lbyfhf,elocin,hfcgbplzq,pepper123,tiktak,mycroft,ryan11,firefly1,arriva,cyecvevhbr,loreal,peedee,jessica8,lisa01,anamari,pionex,ipanema,airbag,frfltvbz,
123456789aa,epwr49,casper12,sweethear,sanandreas,wuschel,cocodog,france1,
119911,redroses,erevan,xtvgbjy,bigfella,geneve,volvo850,evermore,amy123,moxie,celebs,geeman,underwor,haslo1,joy123,hallow,chelsea0,
12435687,abarth,
12332145,tazman1,roshan,yummie,genius1,chrisd,ilovelife,seventy7,qaz1wsx2,rocket88,gaurav,bobbyboy,tauchen,roberts1,locksmit,masterof,www111,d9ungl,volvos40,asdasd1,golfers,jillian1,
7xm5rq,arwpls4u,gbhcf2,elloco,football2,muerte,bob101,sabbath1,strider1,killer66,notyou,lawnboy,de7mdf,johnnyb,voodoo2,sashaa,homedepo,bravos,nihao123,braindea,weedhead,rajeev,artem1,camille1,rockss,bobbyb,aniston,frnhbcf,oakridge,biscayne,cxfcnm,dressage,jesus3,kellyann,king69,juillet,holliste,h00ters,ripoff,
123645,
1999ar,eric12,
123777,tommi,dick12,bilder,chris99,rulezz,getpaid,chicubs,ender1,byajhvfnbrf,milkshak,sk8board,freakshow,antonella,monolit,shelb,hannah01,masters1,pitbull1,
1matthew,luvpussy,agbdlcid,panther2,alphas,euskadi,
8318131,ronnie1,
7558795,sweetgirl,cookie59,sequoia,
5552555,ktyxbr,
4500455,money7,severus,shinobu,dbityrf,phisig,rogue2,fractal,redfred,sebastian1,nelli,b00mer,cyberman,zqjphsyf6ctifgu,oldsmobile,redeemer,pimpi,lovehurts,
1slayer,black13,rtynfdh,airmax,g00gle,
1panther,artemon,nopasswo,fuck1234,luke1,trinit,
666000,ziadma,oscardog,davex,hazel1,isgood,demond,james5,construc,
555551,january2,m1911a1,flameboy,merda,nathan12,nicklaus,dukester,hello99,scorpio7,leviathan,dfcbktr,pourquoi,vfrcbv123,shlomo,rfcgth,rocky3,ignatz,ajhneyf,roger123,squeek,
4815162342a,biskit,mossimo,soccer21,gridlock,lunker,popstar,ghhh47hj764,chutney,nitehawk,vortec,gamma1,codeman,dragula,kappasig,rainbow2,milehigh,blueballs,ou8124me,rulesyou,collingw,mystere,aster,astrovan,firetruck,fische,crawfish,hornydog,morebeer,tigerpaw,radost,
144000,
1chance,
1234567890qwe,gracie1,myopia,oxnard,seminoles,evgeni,edvard,partytim,domani,tuffy1,jaimatadi,blackmag,kzueirf,peternor,mathew1,maggie12,henrys,k1234567,fasted,pozitiv,cfdtkbq,jessica7,goleafs,bandito,girl78,sharingan,skyhigh,bigrob,zorros,poopers,oldschoo,pentium2,gripper,norcal,kimba,artiller,moneymak,
00197400,
272829,shadow1212,thebull,handbags,all4u2c,bigman2,civics,godisgoo,section8,bandaid,suzanne1,zorba,
159123,racecars,i62gbq,rambo123,ironroad,johnson2,knobby,twinboys,sausage1,kelly69,enter2,rhjirf,yessss,james12,anguilla,boutit,iggypop,vovochka,
06060,budwiser,romuald,meditate,good1,sandrin,herkules,lakers8,honeybea,
11111111a,miche,rangers9,lobster1,seiko,belova,midcon,mackdadd,bigdaddy1,daddie,sepultur,freddy12,damon1,stormy1,hockey2,bailey12,hedimaptfcor,dcowboys,sadiedog,thuggin,horny123,josie1,nikki2,beaver69,peewee1,mateus,viktorija,barrys,cubswin1,matt1234,timoxa,rileydog,sicilia,luckycat,candybar,julian1,abc456,pussylip,phase1,acadia,catty,
246800,evertonf,bojangle,qzwxec,nikolaj,fabrizi,kagome,noncapa0,marle,popol,hahaha1,cossie,carla10,diggers,spankey,sangeeta,cucciolo,breezer,starwar1,cornholio,rastafari,spring99,yyyyyyy1,webstar,
72d5tn,sasha1234,inhouse,gobuffs,civic1,redstone,
234523,minnie1,rivaldo,angel5,sti2000,xenocide,
11qq11,
1phoenix,herman1,holly123,tallguy,sharks1,madri,superbad,ronin,jalal123,hardbody,
1234567r,assman1,vivahate,buddylee,
38972091,bonds25,
40028922,qrhmis,wp2005,ceejay,pepper01,
51842543,redrum1,renton,varadero,tvxtjk7r,vetteman,djhvbrc,curly1,fruitcak,jessicas,maduro,popmart,acuari,dirkpitt,buick1,bergerac,golfcart,pdtpljxrf,hooch1,dudelove,d9ebk7,
123452000,afdjhbn,greener,
123455432,parachut,mookie12,
123456780,jeepcj5,potatoe,sanya,qwerty2010,waqw3p,gotika,freaky1,chihuahu,buccanee,ecstacy,crazyboy,slickric,blue88,fktdnbyf,
2004rj,delta4,
333222111,calient,ptbdhw,
1bailey,blitz1,sheila1,master23,hoagie,pyf8ah,orbita,daveyboy,prono1,delta2,heman,
1horny,tyrik123,ostrov,md2020,herve,rockfish,el546218,rfhbyjxrf,chessmaster,redmoon,lenny1,
215487,tomat,guppy,amekpass,amoeba,my3girls,nottingh,kavita,natalia1,puccini,fabiana,
8letters,romeos,netgear,casper2,taters,gowings,iforgot1,pokesmot,pollit,lawrun,petey1,rosebuds,
007jr,gthtcnhjqrf,k9dls02a,neener,azertyu,duke11,manyak,tiger01,petros,supermar,mangas,twisty,spotter,takagi,dlanod,qcmfd454,tusymo,zz123456,chach,navyblue,gilbert1,
2kash6zq,avemaria,
1hxboqg2s,viviane,lhbjkjubz2957704,nowwowtg,
1a2b3c4,m0rn3,kqigb7,superpuper,juehtw,gethigh,theclown,makeme,pradeep,sergik,deion21,nurik,devo2706,nbvibt,roman222,kalima,nevaeh,martin7,anathema,florian1,tamwsn3sja,dinmamma,
133159,
123654q,slicks,pnp0c08,yojimbo,skipp,kiran,pussyfuck,teengirl,apples12,myballs,angeli,
1234a,
125678,opelastra,blind1,armagedd,fish123,pitufo,chelseaf,thedevil,nugget1,cunt69,beetle1,carter15,apolon,collant,password00,fishboy,djkrjdf,deftone,celti,three11,cyrus1,lefthand,skoal1,ferndale,aries1,fred01,roberta1,chucks,cornbread,lloyd1,icecrea,cisco123,newjerse,vfhrbpf,passio,volcom1,rikimaru,yeah11,djembe,facile,a1l2e3x4,batman7,nurbol,lorenzo1,monica69,blowjob1,
998899,spank1,
233391,n123456,
1bear,bellsout,
999998,celtic67,sabre1,putas,y9enkj,alfabeta,heatwave,honey123,hard4u,insane1,xthysq,magnum1,lightsaber,
123qweqwe,fisher1,pixie1,precios,benfic,thegirls,bootsman,
4321rewq,nabokov,hightime,djghjc,
1chelsea,junglist,august16,t3fkvkmj,
1232123,lsdlsd12,chuckie1,pescado,granit,toogood,cathouse,natedawg,bmw530,
123kid,hajime,
198400,engine1,wessonnn,kingdom1,novembre,
1rocks,kingfisher,qwerty89,jordan22,zasranec,megat,sucess,installutil,fetish01,yanshi1982,
1313666,
1314520,clemence,wargod,time1,newzealand,snaker,
13324124,cfrehf,hepcat,mazahaka,bigjay,denisov,eastwest,
1yellow,mistydog,cheetos,
1596357,ginger11,mavrik,bubby1,bhbyf,pyramide,giusepp,luthien,honda250,andrewjackie,kentavr,lampoon,zaq123wsx,sonicx,davidh,
1ccccc,gorodok,windsong,programm,blunt420,vlad1995,zxcvfdsa,tarasov,mrskin,sachas,mercedes1,koteczek,rawdog,honeybear,stuart1,kaktys,richard7,
55555n,azalia,hockey10,scouter,francy,
1xxxxxx,julie456,tequilla,penis123,schmoe,tigerwoods,
1ferrari,popov,snowdrop,matthieu,smolensk,cornflak,jordan01,love2000,
23wesdxc,kswiss,anna2000,geniusnet,baby2000,
33ds5x,waverly,onlyone4,networkingpe,raven123,blesse,gocards,wow123,pjflkork,juicey,poorboy,freeee,billybo,shaheen,zxcvbnm.,berlit,truth1,gepard,ludovic,gunther1,bobby2,bob12345,sunmoon,septembr,bigmac1,bcnjhbz,seaking,all4u,
12qw34er56ty,bassie,nokia5228,
7355608,sylwia,charvel,billgate,davion,chablis,catsmeow,kjiflrf,amylynn,rfvbkkf,mizredhe,handjob,jasper12,erbol,solara,bagpipe,biffer,notime,erlan,
8543852,sugaree,oshkosh,fedora,bangbus,
5lyedn,longball,teresa1,bootyman,aleksand,qazwsxedc12,nujbhc,tifosi,zpxvwy,lights1,slowpoke,tiger12,kstate,password10,alex69,collins1,
9632147,doglover,baseball2,security1,grunts,orange2,godloves,
213qwe879,julieb,
1qazxsw23edcvfr4,noidea,
8uiazp,betsy1,junior2,parol123,
123456zz,piehonkii,kanker,bunky,hingis,reese1,qaz123456,sidewinder,tonedup,footsie,blackpoo,jalapeno,mummy1,always1,josh1,rockyboy,plucky,chicag,nadroj,blarney,blood123,wheaties,packer1,ravens1,mrjones,gfhjkm007,anna2010,awatar,guitar12,hashish,scale1,tomwaits,amrita,fantasma,rfpfym,pass2,tigris,bigair,slicker,sylvi,shilpa,cindylou,archie1,bitches1,poppys,ontime,horney1,camaroz28,alladin,bujhm,cq2kph,alina1,wvj5np,
1211123a,tetons,scorelan,concordi,morgan2,awacs,shanty,tomcat14,andrew123,bear69,vitae,fred99,chingy,octane,belgario,fatdaddy,rhodan,password23,sexxes,boomtown,joshua01,war3demo,my2kids,buck1,hot4you,monamour,
12345aa,yumiko,parool,carlton1,neverland,rose12,right1,sociald,grouse,brandon0,cat222,alex00,civicex,bintang,malkav,arschloc,dodgeviper,qwerty666,goduke,dante123,boss1,ontheroc,corpsman,love14,uiegu451,hardtail,irondoor,ghjrehfnehf,
36460341,konijn,h2slca,kondom25,
123456ss,cfytxrf,btnjey,nando,freemail,comander,natas666,siouxsie,hummer1,biomed,dimsum,yankees0,diablo666,lesbian1,pot420,jasonm,glock23,jennyb,itsmine,lena2010,whattheh,beandip,abaddon,kishore,signup,apogee,biteme12,suzieq,vgfun4,iseeyou,rifleman,qwerta,
4pussy,hawkman,guest1,june17,dicksuck,bootay,cash12,bassale,ktybyuhfl,leetch,nescafe,
7ovtgimc,clapton1,auror,boonie,tracker1,john69,bellas,cabinboy,yonkers,silky1,ladyffesta,drache,kamil1,davidp,bad123,snoopy12,sanche,werthvfy,achille,nefertiti,gerald1,slage33,warszawa,macsan26,mason123,kotopes,welcome8,nascar99,kiril,
77778888,hairy1,monito,comicsans,
81726354,killabee,arclight,yuo67,feelme,
86753099,nnssnn,monday12,
88351132,
88889999,websters,subito,asdf12345,vaz2108,zvbxrpl,
159753456852,rezeda,multimed,noaccess,henrique,tascam,captiva,zadrot,hateyou,sophie12,
123123456,snoop1,charlie8,birmingh,hardline,libert,azsxdcf,
89172735872,rjpthju,bondar,philips1,olegnaruto,myword,yakman,stardog,banana12,
1234567890w,farout,annick,duke01,rfj422,billard,glock19,shaolin1,master10,cinderel,deltaone,manning1,biggreen,sidney1,patty1,goforit1,
766rglqy,sevendus,aristotl,armagedo,blumen,gfhfyjz,kazakov,lekbyxxx,accord1,idiota,soccer16,texas123,victoire,ololo,chris01,bobbbb,
299792458,eeeeeee1,confiden,
07070,clarks,techno1,kayley,stang1,wwwwww1,uuuuu1,neverdie,jasonr,cavscout,
481516234,mylove1,shaitan,
1qazxcvb,barbaros,
123456782000,
123wer,thissucks,
7seven,
227722,faerie,hayduke,dbacks,snorkel,zmxncbv,tiger99,unknown1,melmac,polo1234,sssssss1,
1fire,
369147,bandung,bluejean,nivram,stanle,ctcnhf,soccer20,blingbli,dirtball,alex2112,
183461,skylin,boobman,geronto,brittany1,yyz2112,gizmo69,ktrcec,dakota12,chiken,sexy11,vg08k714,bernadet,
1bulldog,beachs,hollyb,maryjoy,margo1,danielle1,chakra,alexand,hullcity,matrix12,sarenna,pablos,antler,supercar,chomsky,german1,airjordan,
545ettvy,camaron,flight1,netvideo,tootall,valheru,
481516,
1234as,skimmer,redcross,inuyash,uthvfy,
1012nw,edoardo,bjhgfi,golf11,
9379992a,lagarto,socball,boopie,krazy,.adgjmptw,gaydar,kovalev,geddylee,firstone,turbodog,loveee,
135711,badbo,trapdoor,opopop11,danny2,max2000,
526452,kerry1,leapfrog,daisy2,
134kzbip,
1andrea,playa1,peekab00,heskey,pirrello,gsewfmck,dimon4ik,puppie,chelios,
554433,hypnodanny,fantik,yhwnqc,ghbdtngjrf,anchorag,buffett1,fanta,sappho,
024680,vialli,chiva,lucylu,hashem,exbntkm,thema,
23jordan,jake11,wildside,smartie,emerica,
2wj2k9oj,ventrue,timoth,lamers,baerchen,suspende,boobis,denman85,
1adam12,otello,king12,dzakuni,qsawbbs,isgay,porno123,jam123,daytona1,tazzie,bunny123,amaterasu,jeffre,crocus,mastercard,bitchedup,chicago7,aynrand,intel1,tamila,alianza,mulch,merlin12,rose123,alcapone,mircea,loveher,joseph12,chelsea6,dorothy1,wolfgar,unlimite,arturik,qwerty3,paddy1,piramid,linda123,cooool,millie1,warlock1,forgotit,tort02,ilikeyou,avensis,loveislife,dumbass1,clint1,
2110se,drlove,olesia,kalinina,sergey123,
123423,alicia1,markova,tri5a3,media1,willia1,xxxxxxx1,beercan,smk7366,jesusislord,motherfuck,smacker,birthday5,jbaby,harley2,hyper1,a9387670a,honey2,corvet,gjmptw,rjhjkmbien,apollon,madhuri,
3a5irt,cessna17,saluki,digweed,tamia1,yja3vo,cfvlehfr,
1111111q,martyna,stimpy1,anjana,yankeemp,jupiler,idkfa,
1blue,fromv,afric,
3xbobobo,liverp00l,nikon1,amadeus1,acer123,napoleo,david7,vbhjckfdf,mojo69,percy1,pirates1,grunt1,alenushka,finbar,zsxdcf,mandy123,
1fred,timewarp,
747bbb,druids,julia123,
123321qq,spacebar,dreads,fcbarcelona,angela12,anima,christopher1,stargazer,
123123s,hockey11,brewski,marlbor,blinker,motorhead,damngood,werthrf,letmein3,moremoney,killer99,anneke,eatit,pilatus,andrew01,fiona1,maitai,blucher,zxgdqn,e5pftu,nagual,panic1,andron,openwide,alphabeta,alison1,chelsea8,fende,mmm666,
1shot2,a19l1980,
123456@,
1black,m1chael,vagner,realgood,maxxx,vekmnbr,stifler,
2509mmh,tarkan,sherzod,
1234567b,gunners1,artem2010,shooby,sammie1,p123456,piggie,abcde12345,nokia6230,moldir,piter,
1qaz3edc,frequenc,acuransx,
1star,nikeair,alex21,dapimp,ranjan,ilovegirls,anastasiy,berbatov,manso,
21436587,leafs1,
106666,angelochek,ingodwetrust,
123456aaa,deano,korsar,pipetka,thunder9,minka,himura,installdevic,
1qqqqq,digitalprodu,suckmeoff,plonker,headers,vlasov,ktr1996,windsor1,mishanya,garfield1,korvin,littlebit,azaz09,vandamme,scripto,s4114d,passward,britt1,r1chard,ferrari5,running1,
7xswzaq,falcon2,pepper76,trademan,ea53g5,graham1,volvos80,reanimator,micasa,
1234554321q,kairat,escorpion,sanek94,karolina1,kolovrat,karen2,
1qaz@wsx,racing1,splooge,sarah2,deadman1,creed1,nooner,minicoop,oceane,room112,charme,
12345ab,summer00,wetcunt,drewman,nastyman,redfire,appels,merlin69,dolfin,bornfree,diskette,ohwell,
12345678qwe,jasont,madcap,cobra2,dolemit1,whatthehell,juanit,voldemar,rocke,bianc,elendil,vtufgjkbc,hotwheels,spanis,sukram,pokerface,k1ller,freakout,dontae,realmadri,drumss,gorams,
258789,snakey,jasonn,whitewolf,befree,johnny99,pooka,theghost,kennys,vfvektxrf,toby1,jumpman23,deadlock,barbwire,stellina,alexa1,dalamar,mustanggt,northwes,tesoro,chameleo,sigtau,satoshi,george11,hotcum,cornell1,golfer12,geek01d,trololo,kellym,megapolis,pepsi2,hea666,monkfish,blue52,sarajane,bowler1,skeets,ddgirls,hfccbz,bailey01,isabella1,dreday,moose123,baobab,crushme,
000009,veryhot,roadie,meanone,mike18,henriett,dohcvtec,moulin,gulnur,adastra,angel9,western1,natura,sweetpe,dtnfkm,marsbar,daisys,frogger1,virus1,redwood1,streetball,fridolin,d78unhxq,midas,michelob,cantik,sk2000,kikker,macanudo,rambone,fizzle,
20000,peanuts1,cowpie,stone32,astaroth,dakota01,redso,mustard1,sexylove,giantess,teaparty,bobbin,beerbong,monet1,charles3,anniedog,anna1988,cameleon,longbeach,tamere,qpful542,mesquite,waldemar,
12345zx,iamhere,lowboy,canard,granp,daisymay,love33,moosejaw,nivek,ninjaman,shrike01,aaa777,
88002000600,vodolei,bambush,falcor,harley69,alphaomega,severine,grappler,bosox,twogirls,gatorman,vettes,buttmunch,chyna,excelsio,crayfish,birillo,megumi,lsia9dnb9y,littlebo,stevek,hiroyuki,firehous,master5,briley2,gangste,chrisk,camaleon,bulle,troyboy,froinlaven,mybutt,sandhya,rapala,jagged,crazycat,lucky12,jetman,wavmanuk,
1heather,beegee,negril,mario123,funtime1,conehead,abigai,mhorgan,patagoni,travel1,backspace,frenchfr,mudcat,dashenka,baseball3,rustys,
741852kk,dickme,baller23,griffey1,suckmycock,fuhrfzgc,jenny2,spuds,berlin1,justfun,icewind,bumerang,pavlusha,minecraft123,shasta1,ranger12,
123400,twisters,buthead,miked,finance1,dignity7,hello9,lvjdp383,jgthfnjh,dalmatio,paparoach,miller31,
2bornot2b,fathe,monterre,theblues,satans,schaap,jasmine2,sibelius,manon,heslo,jcnhjd,shane123,natasha2,pierrot,bluecar,iloveass,harriso,red12,london20,job314,beholder,reddawg,fuckyou!,pussylick,bologna1,austintx,ole4ka,blotto,onering,jearly,balbes,lightbul,bighorn,crossfir,lee123,prapor,
1ashley,gfhjkm22,wwe123,
09090,sexsite,marina123,jagua,witch1,schmoo,parkview,dragon3,chilango,ultimo,abramova,nautique,
2bornot2,duende,
1arthur,nightwing,surfboar,quant4307,
15s9pu03,karina1,shitball,walleye1,wildman1,whytesha,
1morgan,my2girls,polic,baranova,berezuckiy,kkkkkk1,forzima,fornow,qwerty02,gokart,suckit69,davidlee,whatnow,edgard,tits1,bayshore,
36987412,ghbphfr,daddyy,explore1,zoidberg,
5qnzjx,morgane,danilov,blacksex,mickey12,balsam,
83y6pv,sarahc,slaye,all4u2,slayer69,nadia1,rlzwp503,
4cranker,kaylie,numberon,teremok,wolf12,deeppurple,goodbeer,aaa555,
66669999,whatif,harmony1,ue8fpw,
3tmnej,
254xtpss,dusty197,wcksdypk,zerkalo,dfnheirf,motorol,digita,whoareyou,darksoul,manics,rounders,killer11,d2000lb,cegthgfhjkm,catdog1,beograd,pepsico,julius1,
123654987,softbal,killer23,weasel1,lifeson,q123456q,
444555666,bunches,andy1,darby1,service01,bear11,jordan123,amega,duncan21,yensid,lerxst,rassvet,bronco2,fortis,pornlove,paiste,
198900,asdflkjh,
1236547890,futur,eugene1,winnipeg261,fk8bhydb,seanjohn,brimston,matthe1,bitchedu,crisco,
302731,roxydog,woodlawn,volgograd,ace1210,boy4u2ownnyc,laura123,pronger,parker12,z123456z,andrew13,longlife,sarang,drogba,gobruins,soccer4,holida,espace,almira,murmansk,green22,safina,wm00022,
1chevy,schlumpf,doroth,ulises,golf99,hellyes,detlef,mydog,erkina,bastardo,mashenka,sucram,wehttam,generic1,
195000,spaceboy,lopas123,scammer,skynyrd,daddy2,titani,ficker,cr250r,kbnthfnehf,takedown,sticky1,davidruiz,desant,nremtp,painter1,bogies,agamemno,kansas1,smallfry,archi,
2b4dnvsx,
1player,saddie,peapod,
6458zn7a,qvw6n2,gfxqx686,twice2,sh4d0w3d,mayfly,
375125,phitau,yqmbevgk,
89211375759,kumar1,pfhfpf,toyboy,way2go,
7pvn4t,pass69,chipster,spoony,buddycat,diamond3,rincewin,hobie,david01,billbo,hxp4life,matild,pokemon2,dimochka,clown1,
148888,jenmt3,cuxldv,cqnwhy,cde34rfv,simone1,verynice,toobig,pasha123,mike00,maria2,lolpop,firewire,dragon9,martesana,a1234567890,birthday3,providen,kiska,pitbulls,
556655,misawa,damned69,martin11,goldorak,gunship,glory1,winxclub,sixgun,splodge,agent1,splitter,dome69,ifghjb,eliza1,snaiper,wutang36,phoenix7,
666425,arshavin,paulaner,namron,m69fg1w,qwert1234,terrys,zesyrmvu,joeman,scoots,dwml9f,
625vrobg,sally123,gostoso,symow8,pelota,c43qpul5rz,majinbuu,lithium1,bigstuff,horndog1,kipelov,kringle,
1beavis,loshara,octobe,jmzacf,
12342000,qw12qw,runescape1,chargers1,krokus,piknik,jessy,
778811,gjvbljh,
474jdvff,pleaser,misskitty,breaker1,
7f4df451,dayan,twinky,yakumo,chippers,matia,tanith,len2ski1,manni,nichol1,f00b4r,nokia3110,standart,
123456789i,shami,steffie,larrywn,chucker,john99,chamois,jjjkkk,penmouse,ktnj2010,gooners,hemmelig,rodney1,merlin01,bearcat1,
1yyyyy,
159753z,
1fffff,
1ddddd,thomas11,gjkbyrf,ivanka,f1f2f3,petrovna,phunky,conair,brian2,creative1,klipsch,vbitymrf,freek,breitlin,cecili,westwing,gohabsgo,tippmann,
1steve,quattro6,fatbob,sp00ky,rastas,
1123581,redsea,rfnmrf,jerky1,
1aaaaaa,spk666,simba123,qwert54321,
123abcd,beavis69,fyfyfc,starr1,
1236547,peanutbutter,sintra,
12345abcde,
1357246,abcde1,climbon,
755dfx,mermaids,monte1,serkan,geilesau,
777win,jasonc,parkside,imagine1,rockhead,producti,playhard,principa,spammer,gagher,escada,tsv1860,dbyjuhfl,cruiser1,kennyg,montgome,
2481632,pompano,cum123,angel6,sooty,bear01,april6,bodyhamm,pugsly,getrich,mikes,pelusa,fosgate,jasonp,rostislav,kimberly1,
128mo,dallas11,gooner1,manuel1,cocacola1,imesh,
5782790,password8,daboys,
1jones,intheend,e3w2q1,whisper1,madone,pjcgujrat,
1p2o3i,jamesp,felicida,nemrac,phikap,firecat,jrcfyjxrf,matt12,bigfan,doedel,
005500,jasonx,
1234567k,badfish,goosey,utjuhfabz,wilco,artem123,igor123,spike123,jor23dan,dga9la,v2jmsz,morgan12,avery1,dogstyle,natasa,
221195ws,twopac,oktober7,karthik,poop1,mightymo,davidr,zermatt,jehova,aezakmi1,dimwit,monkey5,serega123,qwerty111,blabl,casey22,boy123,
1clutch,asdfjkl1,hariom,bruce10,jeep95,
1smith,sm9934,karishma,bazzzz,aristo,
669e53e1,nesterov,kill666,fihdfv,
1abc2,anna1,silver11,mojoman,telefono,goeagles,sd3lpgdr,rfhfynby,melinda1,llcoolj,idteul,bigchief,rocky13,timberwo,ballers,gatekeep,kashif,hardass,anastasija,max777,vfuyjkbz,riesling,agent99,kappas,dalglish,tincan,orange3,turtoise,abkbvjy,mike24,hugedick,alabala,geolog,aziza,devilboy,habanero,waheguru,funboy,freedom5,natwest,seashore,impaler,qwaszx1,pastas,bmw535,tecktonik,mika00,jobsearc,pinche,puntang,aw96b6,
1corvett,skorpio,foundati,zzr1100,gembird,vfnhjcrby,soccer18,vaz2110,peterp,archer1,cross1,samedi,dima1992,hunter99,lipper,hotbody,zhjckfdf,ducati1,trailer1,
04325956,cheryl1,benetton,kononenko,sloneczko,rfgtkmrf,nashua,balalaika,ampere,eliston,dorsai,digge,flyrod,oxymoron,minolta,ironmike,majortom,karimov,fortun,putaria,an83546921an13,blade123,franchis,mxaigtg5,dynxyu,devlt4,brasi,terces,wqmfuh,nqdgxz,dale88,minchia,seeyou,housepen,
1apple,
1buddy,mariusz,bighouse,tango2,flimflam,nicola1,qwertyasd,tomek1,shumaher,kartoshka,bassss,canaries,redman1,
123456789as,preciosa,allblacks,navidad,tommaso,beaudog,forrest1,green23,ryjgjxrf,go4it,ironman2,badnews,butterba,
1grizzly,isaeva,rembrand,toront,
1richard,bigjon,yfltymrf,
1kitty,
4ng62t,littlejo,wolfdog,ctvtyjd,spain1,megryan,tatertot,raven69,
4809594q,tapout,stuntman,a131313,lagers,hotstuf,lfdbl11,stanley2,advokat,boloto,
7894561,dooker,adxel187,cleodog,
4play,
0p9o8i,masterb,bimota,charlee,toystory,
6820055,
6666667,crevette,
6031769,corsa,bingoo,dima1990,tennis11,samuri,avocado,melissa6,unicor,habari,metart,needsex,cockman,hernan,
3891576,
3334444,amigo1,gobuffs2,mike21,allianz,
2835493,
179355,midgard,joey123,oneluv,ellis1,towncar,shonuff,scouse,tool69,thomas19,chorizo,jblaze,lisa1,dima1999,sophia1,anna1989,vfvekbxrf,krasavica,redlegs,jason25,tbontb,katrine,eumesmo,vfhufhbnrf,
1654321,asdfghj1,motdepas,booga,doogle,
1453145,byron1,
158272,kardinal,tanne,fallen1,abcd12345,ufyljy,n12345,kucing,burberry,bodger,
1234578,februar,
1234512,nekkid,prober,harrison1,idlewild,rfnz90,foiegras,pussy21,bigstud,denzel,tiffany2,bigwill,
1234567890zzz,hello69,compute1,viper9,hellspaw,trythis,gococks,dogballs,delfi,lupine,millenia,newdelhi,charlest,basspro,
1mike,joeblack,
975310,
1rosebud,batman11,misterio,fucknut,charlie0,august11,juancho,ilonka,jigei743ks,adam1234,
889900,goonie,alicat,ggggggg1,
1zzzzzzz,sexywife,northstar,chris23,
888111,containe,trojan1,jason5,graikos,
1ggggg,
1eeeee,tigers01,indigo1,hotmale,jacob123,mishima,richard3,cjxb2014,coco123,meagain,thaman,wallst,edgewood,bundas,
1power,matilda1,maradon,hookedup,jemima,r3vi3wpass,
2004-
10-,mudman,taz123,xswzaq,emerson1,anna21,warlord1,toering,pelle,tgwdvu,masterb8,wallstre,moppel,priora,ghjcnjrdfif,yoland,
12332100,
1j9e7f6f,jazzzz,yesman,brianm,
42qwerty42,
12345698,darkmanx,nirmal,john31,bb123456,neuspeed,billgates,moguls,fj1200,hbhlair,shaun1,ghbdfn,
305pwzlr,nbu3cd,susanb,pimpdad,mangust6403,joedog,dawidek,gigante,
708090,
703751,
700007,ikalcr,tbivbn,
697769,marvi,iyaayas,karen123,jimmyboy,dozer1,e6z8jh,bigtime1,getdown,kevin12,brookly,zjduc3,nolan1,cobber,yr8wdxcq,liebe,m1garand,blah123,
616879,action1,
600000,sumitomo,albcaz,asian1,
557799,dave69,
556699,sasa123,streaker,michel1,karate1,buddy7,daulet,koks888,roadtrip,wapiti,oldguy,illini1,
1234qq,mrspock,kwiatek,buterfly,august31,jibxhq,jackin,taxicab,tristram,talisker,
446655,
444666,chrisa,freespace,vfhbfyyf,chevell,
444333,notyours,
442244,christian1,seemore,sniper12,marlin1,joker666,multik,devilish,crf450,cdfoli,eastern1,asshead,duhast,voyager2,cyberia,
1wizard,cybernet,iloveme1,veterok,karandash,
392781,looksee,diddy,diabolic,foofight,missey,herbert1,bmw318i,premier1,zsfmpv,eric1234,dun6sm,fuck11,
345543,spudman,lurker,bitem,lizzy1,ironsink,minami,
339311,s7fhs127,sterne,
332233,plankton,galax,azuywe,changepa,august25,mouse123,sikici,killer69,xswqaz,quovadis,gnomik,
033028pw,
777777a,barrakuda,spawn666,goodgod,slurp,morbius,yelnats,cujo31,norman1,fastone,earwig,aureli,wordlife,bnfkbz,yasmi,austin123,timberla,missy2,legalize,netcom,liljon,takeit,georgin,
987654321z,warbird,vitalina,all4u3,mmmmmm1,bichon,ellobo,wahoos,fcazmj,aksarben,lodoss,satnam,vasili,
197800,maarten,sam138989,
0u812,ankita,walte,prince12,anvils,bestia,hoschi,
198300,univer,jack10,ktyecbr,gr00vy,hokie,wolfman1,fuckwit,geyser,emmanue,ybrjkftd,qwerty33,karat,dblock,avocat,bobbym,womersle,
1please,nostra,dayana,billyray,alternat,iloveu1,qwerty69,rammstein1,mystikal,winne,drawde,executor,craxxxs,ghjcnjnf,
999888777,welshman,access123,
963214785,
951753852,babe69,fvcnthlfv,****me,
666999666,testing2,
199200,nintendo64,oscarr,guido8,zhanna,gumshoe,jbird,
159357456,pasca,
123452345,satan6,mithrand,fhbirf,aa1111aa,viggen,ficktjuv,radial9,davids1,rainbow7,futuro,hipho,platin,poppy123,rhenjq,fulle,rosit,chicano,scrumpy,lumpy1,seifer,uvmrysez,autumn1,xenon,susie1,
7u8i
9o
0p,gamer1,sirene,muffy1,monkeys1,kalinin,olcrackmaster,hotmove,uconn,gshock,merson,lthtdyz,pizzaboy,peggy1,pistache,pinto1,fishka,ladydi,pandor,baileys,hungwell,redboy,rookie1,amanda01,passwrd,clean1,matty1,tarkus,jabba1,bobster,beer30,solomon1,moneymon,sesamo,fred11,sunnysid,jasmine5,thebears,putamadre,workhard,flashbac,counter1,liefde,magnat,corky1,green6,abramov,lordik,univers,shortys,david3,vip123,gnarly,
1234567s,billy2,honkey,deathstar,grimmy,govinda,direktor,
12345678s,linus1,shoppin,rekbrjdf,santeria,prett,berty75,mohican,daftpunk,uekmyfhf,chupa,strats,ironbird,giants56,salisbur,koldun,summer04,pondscum,jimmyj,miata1,george3,redshoes,weezie,bartman1,
0p9o8i7u,s1lver,dorkus,
125478,omega9,sexisgood,mancow,patric1,jetta1,
074401,ghjuhtcc,gfhjk,bibble,terry2,
123213,medicin,rebel2,hen3ry,
4freedom,aldrin,lovesyou,browny,renwod,winnie1,belladon,
1house,tyghbn,blessme,rfhfrfnbwf,haylee,deepdive,booya,phantasy,gansta,cock69,
4mnveh,gazza1,redapple,structur,anakin1,manolito,steve01,poolman,chloe123,vlad1998,qazwsxe,pushit,random123,ontherocks,o236nq,brain1,dimedrol,agape,rovnogod,
1balls,knigh,alliso,love01,wolf01,flintstone,beernuts,tuffguy,isengard,highfive,alex23,casper99,rubina,getreal,chinita,italian1,airsoft,qwerty23,muffdiver,willi1,grace123,orioles1,redbull1,chino1,ziggy123,breadman,estefan,ljcneg,gotoit,logan123,wideglid,mancity1,treess,qwe123456,kazumi,qweasdqwe,oddworld,naveed,protos,towson,a801016,godislov,at_asp,bambam1,soccer5,dark123,
67vette,carlos123,hoser1,scouser,wesdxc,pelus,dragon25,pflhjn,abdula,
1freedom,policema,tarkin,eduardo1,mackdad,gfhjkm11,lfplhfgthvf,adilet,zzzzxxxx,childre,samarkand,cegthgegth,shama,fresher,silvestr,greaser,allout,plmokn,sexdrive,nintendo1,fantasy7,oleander,fe126fd,crumpet,pingzing,dionis,hipster,yfcnz,requin,calliope,jerome1,housecat,abc123456789,doghot,snake123,augus,brillig,chronic1,gfhjkbot,expediti,noisette,master7,caliban,whitetai,favorite3,lisamari,educatio,ghjhjr,saber1,zcegth,
1958proman,vtkrbq,milkdud,imajica,thehip,bailey10,hockey19,dkflbdjcnjr,j123456,bernar,aeiouy,gamlet,deltachi,endzone,conni,bcgfybz,brandi1,auckland2010,
7653ajl1,mardigra,testuser,bunko18,camaro67,
36936,greenie,
454dfmcq,
6xe8j2z4,mrgreen,ranger5,headhunt,banshee1,moonunit,zyltrc,hello3,pussyboy,stoopid,tigger11,yellow12,drums1,blue02,kils123,junkman,banyan,jimmyjam,tbbucs,sportster,badass1,joshie,braves10,lajolla,
1amanda,antani,
78787,antero,
19216801,chich,rhett32,sarahm,beloit,sucker69,corkey,nicosnn,rccola,caracol,daffyduc,bunny2,mantas,monkies,hedonist,cacapipi,ashton1,sid123,
19899891,patche,greekgod,cbr1000,leader1,
19977991,ettore,chongo,
113311,picass,cfif123,rhtfnbd,frances1,andy12,minnette,bigboy12,green69,alices,babcia,partyboy,javabean,freehand,qawsed123,xxx111,harold1,passwo,jonny1,kappa1,w2dlww3v5p,
1merlin,
222999,tomjones,jakeman,franken,markhegarty,john01,carole1,daveman,caseys,apeman,mookey,moon123,claret,titans1,residentevil,campari,curitiba,dovetail,aerostar,jackdaniels,basenji,zaq12w,glencoe,biglove,goober12,ncc170,far7766,monkey21,eclipse9,
1234567v,vanechka,aristote,grumble,belgorod,abhishek,neworleans,pazzword,dummie,sashadog,diablo11,mst3000,koala1,maureen1,jake99,isaiah1,funkster,gillian1,ekaterina20,chibears,astra123,
4me2no,winte,skippe,necro,windows9,vinograd,demolay,vika2010,quiksilver,
19371ayj,dollar1,shecky,qzwxecrv,butterfly1,merrill1,scoreland,
1crazy,megastar,mandragora,track1,dedhed,jacob2,newhope,qawsedrftgyh,shack1,samvel,gatita,shyster,clara1,telstar,office1,crickett,truls,nirmala,joselito,chrisl,lesnik,aaaabbbb,austin01,leto2010,bubbie,aaa12345,widder,
234432,salinger,mrsmith,qazsedcft,newshoes,skunks,yt1300,bmw316,arbeit,smoove,
123321qweewq,
123qazwsx,
22221111,seesaw,
0987654321a,peach1,
1029384756q,sereda,gerrard8,shit123,batcave,energy1,peterb,mytruck,peter12,alesya,tomato1,spirou,laputaxx,magoo1,omgkremidia,knight12,norton1,vladislava,shaddy,austin11,jlbyjxrf,kbdthgekm,punheta,fetish69,exploiter,roger2,manstein,gtnhjd,
32615948worms,dogbreath,ujkjdjkjvrf,vodka1,ripcord,fatrat,kotek1,tiziana,larrybir,thunder3,nbvfnb,
9kyq6fge,remembe,likemike,gavin1,shinigam,yfcnfcmz,
13245678,jabbar,vampyr,ane4ka,lollipo,ashwin,scuderia,limpdick,deagle,
3247562,vishenka,fdhjhf,alex02,volvov70,mandys,bioshock,caraca,tombraider,matrix69,jeff123,
13579135,parazit,black3,noway1,diablos,hitmen,garden1,aminor,decembe,august12,b00ger,
006900,
452073t,schach,hitman1,mariner1,vbnmrf,paint1,
742617000027,bitchboy,pfqxjyjr,
5681392,marryher,sinnet,malik1,muffin12,aninha,piolin,lady12,traffic1,cbvjyf,
6345789,june21,ivan2010,ryan123,honda99,gunny,coorslight,asd321,hunter69,
7224763,sonofgod,dolphins1,
1dolphin,pavlenko,woodwind,lovelov,pinkpant,gblfhfcbyf,hotel1,justinbiebe,vinter,jeff1234,mydogs,
1pizza,boats1,parrothe,shawshan,brooklyn1,cbrown,
1rocky,hemi426,dragon64,redwings1,porsches,ghostly,hubbahub,buttnut,b929ezzh,sorokina,flashg,fritos,b7mguk,metatron,treehous,vorpal,
8902792,marcu,free123,labamba,chiefs1,zxc123zxc,keli_14,hotti,
1steeler,money4,rakker,foxwoods,free1,ahjkjd,sidorova,snowwhit,neptune1,mrlover,trader1,nudelamb,baloo,power7,deltasig,bills1,trevo,
7gorwell,nokia6630,nokia5320,madhatte,
1cowboys,manga1,namtab,sanjar,fanny1,birdman1,adv12775,carlo1,dude1998,babyhuey,nicole11,madmike,ubvyfpbz,qawsedr,lifetec,skyhook,stalker123,toolong,robertso,ripazha,zippy123,
1111111a,manol,dirtyman,analslut,jason3,dutches,minhasenha,cerise,fenrir,jayjay1,flatbush,franka,bhbyjxrf,
26429vadim,lawntrax,
198700,fritzy,nikhil,ripper1,harami,truckman,nemvxyheqdd5oqxyxyzi,gkfytnf,bugaboo,cableman,hairpie,xplorer,movado,hotsex69,mordred,ohyeah1,patrick3,frolov,katieh,
4311111q,mochaj,presari,bigdo,
753951852,freedom4,kapitan,tomas1,
135795,sweet123,pokers,shagme,tane4ka,sentinal,ufgyndmv,jonnyb,skate123,
123456798,
123456788,very1,gerrit,damocles,dollarbi,caroline1,lloyds,pizdets,flatland,
92702689,dave13,meoff,ajnjuhfabz,achmed,madison9,
744744z,amonte,avrillavigne,elaine1,norma1,asseater,everlong,buddy23,cmgang1,trash1,mitsu,flyman,ulugbek,june27,magistr,fittan,sebora64,dingos,sleipnir,caterpil,cindys,
212121qaz,partys,dialer,gjytltkmybr,qweqaz,janvier,rocawear,lostboy,aileron,sweety1,everest1,pornman,boombox,potter1,blackdic,
44448888,eric123,
112233aa,
2502557i,novass,nanotech,yourname,x12345,indian1,
15975300,
1234567l,carla51,chicago0,coleta,cxzdsaewq,qqwweerr,marwan,deltic,hollys,qwerasd,pon32029,rainmake,nathan0,matveeva,legioner,kevink,riven,tombraid,blitzen,a54321,jackyl,chinese1,shalimar,oleg1995,beaches1,tommylee,eknock,berli,monkey23,badbob,pugwash,likewhoa,jesus2,yujyd360,belmar,shadow22,utfp5e,angelo1,minimax,pooder,cocoa1,moresex,tortue,lesbia,panthe,snoopy2,drumnbass,alway,gmcz71,
6jhwmqku,leppard,dinsdale,blair1,boriqua,money111,virtuagirl,
267605,rattlesn,
1sunshin,monica12,veritas1,newmexic,millertime,turandot,rfvxfnrf,jaydog,kakawka,bowhunter,booboo12,deerpark,erreway,taylorma,rfkbybyf,wooglin,weegee,rexdog,iamhorny,cazzo1,vhou812,bacardi1,dctktyyfz,godpasi,peanut12,bertha1,fuckyoubitch,ghosty,altavista,jertoot,smokeit,ghjcnbvtyz,fhnehxbr,rolsen,qazxcdews,maddmaxx,redrocke,qazokm,spencer2,thekiller,asdf11,
123sex,tupac1,p1234567,dbrown,
1biteme,tgo4466,
316769,sunghi,shakespe,frosty1,gucci1,arcana,bandit01,lyubov,poochy,dartmout,magpies1,sunnyd,mouseman,summer07,chester7,shalini,danbury,pigboy,dave99,deniss,harryb,ashley11,pppppp1,
01081988m,balloon1,tkachenko,bucks1,master77,pussyca,tricky1,zzxxccvv,zoulou,doomer,mukesh,iluv69,supermax,todays,thefox,don123,dontask,diplom,piglett,shiney,fahbrf,qaz12wsx,temitope,reggin,project1,buffy2,inside1,lbpfqyth,vanilla1,lovecock,u4slpwra,fylh.irf,
123211,
7ertu3ds,necroman,chalky,artist1,simpso,
4x7wjr,chaos666,lazyacres,harley99,ch33s3,marusa,eagle7,dilligas,computadora,lucky69,denwer,nissan350z,unforgiv,oddball,schalke0,aztec1,borisova,branden1,parkave,marie123,germa,lafayett,
878kckxy,
405060,cheeseca,bigwave,fred22,andreea,poulet,mercutio,psycholo,andrew88,o4izdmxu,sanctuar,newhome,milion,suckmydi,rjvgm.nth,warior,goodgame,
1qwertyuiop,
6339cndh,scorpio2,macker,southbay,crabcake,toadie,paperclip,fatkid,maddo,cliff1,rastafar,maries,twins1,geujdrf,anjela,wc4fun,dolina,mpetroff,rollout,zydeco,shadow3,pumpki,steeda,volvo240,terras,blowjo,blue2000,incognit,badmojo,gambit1,zhukov,station1,aaronb,graci,duke123,clipper1,qazxsw2,ledzeppe,kukareku,sexkitte,cinco,
007008,lakers12,a1234b,acmilan1,afhfjy,starrr,slutty3,phoneman,kostyan,bonzo1,sintesi07,ersatz,cloud1,nephilim,nascar03,rey619,kairos,
123456789e,hardon1,boeing1,juliya,hfccdtn,vgfun8,polizei,
456838,keithb,minouche,ariston,savag,
213141,clarkken,microwav,london2,santacla,campeo,qr5mx7,
464811,mynuts,bombo,
1mickey,lucky8,danger1,ironside,carter12,wyatt1,borntorun,iloveyou123,jose1,pancake1,tadmichaels,monsta,jugger,hunnie,triste,heat7777,ilovejesus,queeny,luckycharm,lieben,gordolee85,jtkirk,forever21,jetlag,skylane,taucher,neworlea,holera,
000005,anhnhoem,melissa7,mumdad,massimiliano,dima1994,nigel1,madison3,slicky,shokolad,serenit,jmh1978,soccer123,chris3,drwho,rfpzdrf,
1qasw23ed,free4me,wonka,sasquatc,sanan,maytag,verochka,bankone,molly12,monopoli,xfqybr,lamborgini,gondolin,candycane,needsome,jb007,scottie1,brigit,
0147258369,kalamazo,lololyo123,bill1234,ilovejes,lol123123,popkorn,april13,
567rntvm,downunde,charle1,angelbab,guildwars,homeworld,qazxcvbnm,superma1,dupa123,kryptoni,happyy,artyom,stormie,cool11,calvin69,saphir,konovalov,jansport,october8,liebling,druuna,susans,megans,tujhjdf,wmegrfux,jumbo1,ljb4dt7n,
012345678910,kolesnik,speculum,at4gftlw,kurgan,
93pn75,cahek0980,dallas01,godswill,fhifdby,chelsea4,jump23,barsoom,catinhat,urlacher,angel99,vidadi1,
678910,lickme69,topaz1,westend,loveone,c12345,gold12,alex1959,mamon,barney12,
1maggie,alex12345,lp2568cskt,s1234567,gjikbdctyf,anthony0,browns99,chips1,sunking,widespre,lalala1,tdutif,fucklife,master00,alino4ka,stakan,blonde1,phoebus,tenore,bvgthbz,brunos,suzjv8,uvdwgt,revenant,
1banana,veroniqu,sexfun,sp1der,
4g3izhox,isakov,shiva1,scooba,bluefire,wizard12,dimitris,funbags,perseus,hoodoo,keving,malboro,
157953,a32tv8ls,latics,animate,mossad,yejntb,karting,qmpq39zr,busdrive,jtuac3my,jkne9y,sr20dett,
4gxrzemq,keylargo,
741147,rfktylfhm,toast1,skins1,xcalibur,gattone,seether,kameron,glock9mm,julio1,delenn,gameday,tommyd,str8edge,bulls123,
66699,carlsberg,woodbird,adnama,
45auto,codyman,truck2,
1w2w3w4w,pvjegu,method1,luetdi,
41d8cd98f00b,bankai,
5432112345,
94rwpe,reneee,chrisx,melvins,
775577,sam2000,scrappy1,rachid,grizzley,margare,morgan01,winstons,gevorg,gonzal,crawdad,gfhfdjp,babilon,noneya,pussy11,barbell,easyride,c00li0,
777771,
311music,karla1,golions,
19866891,peejay,leadfoot,hfvbkm,kr9z40sy,cobra123,isotwe,grizz,sallys,****you,aaa123a,dembel,foxs14,hillcres,webman,mudshark,alfredo1,weeded,lester1,hovepark,ratface,
000777fffa,huskie,wildthing,elbarto,waikiki,masami,call911,goose2,regin,dovajb,agricola,cjytxrj,andy11,penny123,family01,a121212,
1braves,upupa68,happy100,
824655,cjlove,firsttim,kalel,redhair,dfhtymt,sliders,bananna,loverbo,fifa2008,crouton,chevy350,panties2,kolya1,alyona,hagrid,spagetti,q2w3e4r,
867530,narkoman,nhfdvfnjkju123,
1ccccccc,napolean,
0072563,allay,w8sted,wigwam,jamesk,state1,parovoz,beach69,kevinb,rossella,logitech1,celula,gnocca,canucks1,loginova,marlboro1,aaaa1,kalleanka,mester,mishutka,milenko,alibek,jersey1,peterc,
1mouse,nedved,blackone,ghfplybr,
682regkh,beejay,newburgh,ruffian,clarets,noreaga,xenophon,hummerh2,tenshi,smeagol,soloyo,vfhnby,ereiamjh,ewq321,goomie,sportin,cellphone,sonnie,jetblack,saudan,gblfhfc,matheus,uhfvjnf,alicja,jayman1,devon1,hexagon,bailey2,vtufajy,yankees7,salty1,
908070,killemal,gammas,eurocard,sydney12,tuesday1,antietam,wayfarer,beast666,
19952009sa,aq12ws,eveli,hockey21,haloreach,dontcare,xxxx1,andrea11,karlmarx,jelszo,tylerb,protools,timberwolf,ruffneck,pololo,
1bbbbb,waleed,sasami,twinss,fairlady,illuminati,alex007,sucks1,homerjay,scooter7,tarbaby,barmaley,amistad,vanes,randers,tigers12,dreamer2,goleafsg,googie,bernie1,as12345,godeep,james3,phanto,gwbush,cumlover,
2196dc,studioworks,
995511,golf56,titova,kaleka,itali,socks1,kurwamac,daisuke,hevonen,woody123,daisie,wouter,henry123,gostosa,guppie,porpoise,iamsexy,
276115,paula123,
1020315,
38gjgeuftd,rjrfrjkf,knotty,idiot1,sasha12345,matrix13,securit,radical1,ag764ks,jsmith,coolguy1,secretar,juanas,sasha1988,itout,
00000001,tiger11,
1butthea,putain,cavalo,basia1,kobebryant,
1232323,
12345asdfg,sunsh1ne,cyfqgth,tomkat,dorota,dashit,pelmen,
5t6y7u,whipit,smokeone,helloall,bonjour1,snowshoe,nilknarf,x1x2x3,lammas,
1234599,lol123456,atombomb,ironchef,noclue,alekseev,gwbush1,silver2,
12345678m,yesican,fahjlbnf,chapstic,alex95,open1,tiger200,lisichka,pogiako,cbr929,searchin,tanya123,alex1973,phil413,alex1991,dominati,geckos,freddi,silenthill,egroeg,vorobey,antoxa,dark666,shkola,apple22,rebellio,shamanking,
7f8srt,cumsucker,partagas,bill99,
22223333,arnster55,fucknuts,proxima,silversi,goblues,parcells,vfrcbvjdf,piloto,avocet,emily2,
1597530,miniskir,himitsu,pepper2,juiceman,venom1,bogdana,jujube,quatro,botafogo,mama2010,junior12,derrickh,asdfrewq,miller2,chitarra,silverfox,napol,prestigio,devil123,mm111qm,ara123,max33484,sex2000,primo1,sephan,anyuta,alena2010,viborg,verysexy,hibiscus,terps,josefin,oxcart,spooker,speciali,raffaello,partyon,vfhvtkflrf,strela,a123456z,worksuck,glasss,lomonosov,dusty123,dukeblue,
1winter,sergeeva,lala123,john22,cmc09,sobolev,bettylou,dannyb,gjkrjdybr,hagakure,iecnhbr,awsedr,pmdmsctsk,costco,alekseeva,fktrcttd,bazuka,flyingv,garuda,buffy16,gutierre,beer12,stomatolog,ernies,palmeiras,golf123,love269,n.kmgfy,gjkysqgbpltw,youare,joeboo,baksik,lifeguar,
111a111,nascar8,mindgame,dude1,neopets,frdfkfyu,june24,phoenix8,penelopa,merlin99,mercenar,badluck,mishel,bookert,deadsexy,power9,chinchil,
1234567m,alex10,skunk1,rfhkcjy,sammycat,wright1,randy2,marakesh,temppassword,elmer251,mooki,patrick0,bonoedge,
1tits,chiar,kylie1,graffix,milkman1,cornel,mrkitty,nicole12,ticketmaster,beatles4,number20,ffff1,terps1,superfre,yfdbufnjh,jake1234,flblfc,
1111qq,zanuda,jmol01,wpoolejr,polopol,nicolett,omega13,cannonba,
123456789.,sandy69,ribeye,bo243ns,marilena,bogdan123,milla,redskins1,
19733791,alias1,movie1,ducat,marzena,shadowru,
56565,coolman1,pornlover,teepee,spiff,nafanya,gateway3,fuckyou0,hasher,
34778,booboo69,staticx,hang10,qq12345,garnier,bosco123,
1234567qw,carson1,samso,
1xrg4kcq,cbr929rr,allan123,motorbik,andrew22,pussy101,miroslava,cytujdbr,camp0017,cobweb,snusmumrik,salmon1,cindy2,aliya,serendipity,co437at,tincouch,timmy123,hunter22,st1100,vvvvvv1,blanka,krondor,sweeti,nenit,kuzmich,gustavo1,bmw320i,alex2010,trees1,kyliem,essayons,april26,kumari,sprin,fajita,appletre,fghbjhb,
1green,katieb,steven2,corrado1,satelite,
1michell,
123456789c,cfkfvfylhf,acurarsx,slut543,inhere,bob2000,pouncer,k123456789,fishie,aliso,audia8,bluetick,soccer69,jordan99,fromhell,mammoth1,fighting54,mike25,pepper11,extra1,worldwid,chaise,vfr800,sordfish,almat,nofate,listopad,hellgate,dctvghbdf,jeremia,qantas,lokiju,honker,sprint1,maral,triniti,compaq3,sixsix6,married1,loveman,juggalo1,repvtyrj,zxcasdqw,
123445,whore1,
123678,monkey6,west123,warcraf,pwnage,mystery1,creamyou,ant123,rehjgfnrf,corona1,coleman1,steve121,alderaan,barnaul,celeste1,junebug1,bombshel,gretzky9,tankist,targa,cachou,vaz2101,playgolf,boneyard,strateg,romawka,iforgotit,pullup,garbage1,irock,archmage,shaft1,oceano,sadies,alvin1,
135135ab,psalm69,lmfao,ranger02,zaharova,
33334444,perkman,realman,salguod,cmoney,astonmartin,glock1,greyfox,viper99,helpm,blackdick,
46775575,family5,shazbot,dewey1,qwertyas,shivani,black22,mailman1,greenday1,
57392632,red007,stanky,sanchez1,tysons,daruma,altosax,krayzie,
85852008,
1forever,
98798798,irock.,
123456654,
142536789,ford22,brick1,michela,preciou,crazy4u,
01telemike01,nolife,concac,safety1,annie123,brunswic,destini,
123456qwer,madison0,snowball1,
137946,
1133557799,jarule,scout2,songohan,thedead,
00009999,murphy01,spycam,hirsute,aurinko,associat,
1miller,baklan,hermes1,
2183rm,martie,kangoo,shweta,yvonne1,westsid,jackpot1,rotciv,maratik,fabrika,claude1,nursultan,noentry,ytnhjufnm,electra1,ghjcnjnfr1,puneet,smokey01,integrit,bugeye,trouble2,
14071789,paul01,omgwtf,dmh415,ekilpool,yourmom1,moimeme,sparky11,boludo,ruslan123,kissme1,demetrio,appelsin,asshole3,raiders2,bunns,fynjybj,billygoa,p030710p$e4o,macdonal,
248ujnfk,acorns,schmidt1,sparrow1,vinbylrj,weasle,jerom,ycwvrxxh,skywalk,gerlinde,solidus,postal1,poochie1,
1charles,rhianna,terorist,rehnrf,omgwtfbbq,assfucke,deadend,zidan,jimboy,vengence,maroon5,
7452tr,dalejr88,sombra,anatole,elodi,amazonas,
147789,q12345q,gawker1,juanma,kassidy,greek1,bruces,bilbob,mike44,
0o9i8u7y6t,kaligula,agentx,familie,anders1,pimpjuice,
0128um,birthday10,lawncare,hownow,grandorgue,juggerna,scarfac,kensai,swatteam,
123four,motorbike,repytxbr,other1,celicagt,pleomax,gen0303,godisgreat,icepick,lucifer666,heavy1,tea4two,forsure,
02020,shortdog,webhead,chris13,palenque,
3techsrl,knights1,orenburg,prong,nomarg,wutang1,
80637852730,laika,iamfree,
12345670,pillow1,
12343412,bigears,peterg,stunna,rocky5,
12123434,damir,feuerwehr,
7418529630,danone,yanina,valenci,andy69,
111222q,silvia1,
1jjjjj,loveforever,passwo1,stratocaster,
8928190a,motorolla,lateralu,ujujkm,chubba,ujkjdf,signon,
123456789zx,serdce,stevo,wifey200,ololo123,popeye1,
1pass,central1,melena,luxor,nemezida,poker123,ilovemusic,qaz1234,noodles1,lakeshow,amarill,ginseng,billiam,trento,
321cba,fatback,soccer33,master13,marie2,newcar,bigtop,dark1,camron,nosgoth,
155555,biglou,redbud,jordan7,
159789,diversio,actros,dazed,drizzit,hjcnjd,wiktoria,justic,gooses,luzifer,darren1,chynna,tanuki,
11335577,icculus,boobss,biggi,firstson,ceisi123,gatewa,hrothgar,jarhead1,happyjoy,felipe1,bebop1,medman,athena1,boneman,keiths,djljgfl,dicklick,russ120,mylady,zxcdsa,rock12,bluesea,kayaks,provista,luckies,smile4me,bootycal,enduro,
123123f,heartbre,ern3sto,apple13,bigpappa,fy.njxrf,bigtom,cool69,perrito,quiet1,puszek,cious,cruella,temp1,david26,alemap,aa123123,teddies,tricolor,smokey12,kikiriki,mickey01,robert01,super5,ranman,stevenso,deliciou,money777,degauss,mozar,susanne1,asdasd12,shitbag,mommy123,wrestle1,imfree,fuckyou12,barbaris,florent,ujhijr,f8yruxoj,tefjps,anemone,toltec,
2gether,left4dead2,ximen,gfkmvf,dunca,emilys,diana123,
16473a,mark01,bigbro,annarbor,nikita2000,
11aa11,tigres,llllll1,loser2,fbi11213,jupite,qwaszxqw,macabre,
123ert,rev2000,mooooo,klapaucius,bagel1,chiquit,iyaoyas,bear101,irocz28,vfktymrfz,smokey2,love99,rfhnbyf,dracul,keith123,slicko,peacock1,orgasmic,thesnake,solder,wetass,doofer,david5,rhfcyjlfh,swanny,tammys,turkiye,tubaman,estefani,firehose,funnyguy,servo,grace17,pippa1,arbiter,jimmy69,nfymrf,asdf67nm,rjcnzy,demon123,thicknes,sexysex,kristall,michail,encarta,banderos,minty,marchenko,de1987ma,mo5kva,aircav,naomi1,bonni,tatoo,cronaldo,
49ers1,mama1963,
1truck,telecaster,punksnotdead,erotik,
1eagles,
1fender,luv269,acdeehan,tanner1,freema,
1q3e5t7u,linksys,tiger6,megaman1,neophyte,australia1,mydaddy,
1jeffrey,fgdfgdfg,gfgekz,
1986irachka,keyman,m0b1l3,dfcz123,mikeyg,playstation2,abc125,slacker1,
110491g,lordsoth,bhavani,ssecca,dctvghbdtn,niblick,hondacar,baby01,worldcom,
4034407,
51094didi,
3657549,
3630000,
3578951,sweetpussy,majick,supercoo,robert11,abacabb,panda123,gfhjkm13,ford4x4,zippo1,lapin,
1726354,lovesong,dude11,moebius,paravoz,
1357642,matkhau,solnyshko,daniel4,multiplelog,starik,martusia,iamtheman,greentre,jetblue,motorrad,vfrcbvev,redoak,dogma1,gnorman,komlos,tonka1,
1010220,
666satan,losenord,lateralus,absinthe,command1,jigga1,iiiiiii1,pants1,jungfrau,
926337,ufhhbgjnnth,yamakasi,
888555,sunny7,gemini69,alone1,zxcvbnmz,cabezon,skyblues,zxc1234,
456123a,zero00,caseih,azzurra,legolas1,menudo,murcielago,
785612,
779977,benidorm,viperman,dima1985,piglet1,hemligt,hotfeet,
7elephants,hardup,gamess,a000000,
267ksyjf,kaitlynn,sharkie,sisyphus,yellow22,
667766,redvette,
666420,mets69,ac2zxdty,hxxrvwcy,cdavis,alan1,noddy,
579300,druss,eatshit1,
555123,appleseed,simpleplan,kazak,
526282,fynfyfyfhbde,birthday6,dragon6,
1pookie,bluedevils,omg123,hj8z6e,x5dxwp,
455445,batman23,termin,chrisbrown,animals1,lucky9,
443322,kzktxrf,takayuki,fermer,assembler,zomu9q,sissyboy,sergant,felina,nokia6230i,eminem12,croco,hunt4red,festina,darknigh,cptnz062,ndshnx4s,twizzler,wnmaz7sd,aamaax,gfhfcjkmrf,alabama123,barrynov,happy5,punt0it,durandal,
8xuuobe4,cmu9ggzh,bruno12,
316497,crazyfrog,vfvfktyf,apple3,kasey1,mackdaddy,anthon1,sunnys,angel3,cribbage,moon1,donal,bryce1,pandabear,mwss474,whitesta,freaker,
197100,bitche,p2ssw0rd,turnb,tiktonik,moonlite,ferret1,jackas,ferrum,bearclaw,liberty2,
1diablo,caribe,snakeeyes,janbam,azonic,rainmaker,vetalik,bigeasy,baby1234,sureno13,blink1,kluivert,calbears,lavanda,
198600,dhtlbyf,medvedeva,fox123,whirling,bonscott,freedom9,october3,manoman,segredo,cerulean,robinso,bsmith,flatus,dannon,password21,rrrrrr1,callista,romai,rainman1,trantor,mickeymo,bulldog7,g123456,pavlin,pass22,snowie,hookah,
7ofnine,bubba22,cabible,nicerack,moomoo1,summer98,yoyo123,milan1,lieve27,mustang69,jackster,exocet,nadege,qaz12,bahama,watson1,libras,eclipse2,bahram,bapezm,up9x8rww,ghjcnjz,themaste,deflep27,ghost16,gattaca,fotograf,junior123,gilber,gbjyth,
8vjzus,rosco1,begonia,aldebara,flower12,novastar,buzzman,manchild,lopez1,mama11,william7,yfcnz1,blackstar,spurs123,moom4242,
1amber,iownyou,tightend,
07931505,paquito,
1johnson,smokepot,pi31415,snowmass,ayacdc,jessicam,giuliana,
5tgbnhy6,harlee,giuli,bigwig,tentacle,scoubidou2,benelli,vasilina,nimda,
284655,jaihind,lero4ka,
1tommy,reggi,ididit,jlbyjxtcndj,mike26,qbert,wweraw,lukasz,loosee123,palantir,flint1,mapper,baldie,saturne,virgin1,meeeee,elkcit,iloveme2,blue15,themoon,radmir,number3,shyanne,missle,hannelor,jasmina,karin1,lewie622,ghjcnjqgfhjkm,blasters,oiseau,sheela,grinders,panget,rapido,positiv,twink,fltkbyf,kzsfj874,daniel01,enjoyit,nofags,doodad,rustler,squealer,fortunat,peace123,khushi,devils2,
7inches,candlebo,topdawg,armen,soundman,zxcqweasd,april7,gazeta,netman,hoppers,bear99,ghbjhbntn,mantle7,bigbo,harpo,jgordon,bullshi,vinny1,krishn,star22,thunderc,galinka,phish123,tintable,nightcrawler,tigerboy,rbhgbx,messi,basilisk,masha1998,nina123,yomamma,kayla123,geemoney,
0000000000d,motoman,a3jtni,ser123,owen10,italien,vintelok,
12345rewq,nightime,jeepin,ch1tt1ck,mxyzptlk,bandido,ohboy,doctorj,hussar,superted,parfilev,grundle,
1jack,livestrong,chrisj,matthew3,access22,moikka,fatone,miguelit,trivium,glenn1,smooches,heiko,dezember,spaghett,stason,molokai,bossdog,guitarma,waderh,boriska,photosho,path13,hfrtnf,audre,junior24,monkey24,silke,vaz21093,bigblue1,trident1,candide,arcanum,klinker,orange99,bengals1,rosebu,mjujuj,nallepuh,mtwapa1a,ranger69,level1,bissjop,leica,
1tiffany,rutabega,elvis77,kellie1,sameas,barada,karabas,frank12,queenb,toutoune,surfcity,samanth1,monitor1,littledo,kazakova,fodase,mistral1,april22,carlit,shakal,batman123,fuckoff2,alpha01,
5544332211,buddy3,towtruck,kenwood1,vfiekmrf,jkl123,pypsik,ranger75,sitges,toyman,bartek1,ladygirl,booman,boeing77,installsqlst,
222666,gosling,bigmack,
223311,bogos,kevin2,gomez1,xohzi3g4,kfnju842,klubnika,cubalibr,
123456789101,kenpo,
0147852369,raptor1,tallulah,boobys,jjones,
1q2s3c,moogie,vid2600,almas,wombat1,extra300,xfiles1,green77,sexsex1,heyjude,sammyy,missy123,maiyeuem,nccpl25282,thicluv,sissie,raven3,fldjrfn,buster22,broncos2,laurab,letmein4,harrydog,solovey,fishlips,asdf4321,ford123,superjet,norwegen,movieman,psw333333,intoit,postbank,deepwate,ola123,geolog323,murphys,eshort,a3eilm2s2y,kimota,belous,saurus,
123321qaz,i81b4u,aaa12,monkey20,buckwild,byabybnb,mapleleafs,yfcnzyfcnz,baby69,summer03,twista,
246890,
246824,ltcnhjth,z1z2z3,monika1,sad123,uto29321,bathory,villan,funkey,poptarts,spam967888,
705499fh,sebast,porn1234,earn381,
1porsche,whatthef,
123456789y,polo12,brillo,soreilly,waters1,eudora,allochka,is_a_bot,winter00,bassplay,
531879fiz,onemore,bjarne,red911,kot123,artur1,qazxdr,c0rvette,diamond7,matematica,klesko,beaver12,
2enter,seashell,panam,chaching,edward2,browni,xenogear,cornfed,aniram,chicco22,darwin1,ancella2,sophie2,vika1998,anneli,shawn41,babie,resolute,pandora2,william8,twoone,coors1,jesusis1,teh012,cheerlea,renfield,tessa1,anna1986,madness1,bkmlfh,
19719870,liebherr,ck6znp42,gary123,
123654z,alsscan,eyedoc,matrix7,metalgea,chinito,
4iter,falcon11,
7jokx7b9du,bigfeet,tassadar,retnuh,muscle1,klimova,darion,batistuta,bigsur,
1herbier,noonie,ghjrehjh,karimova,faustus,snowwhite,
1manager,dasboot,michael12,analfuck,inbed,dwdrums,jaysoncj,maranell,bsheep75,
164379,rolodex,
166666,rrrrrrr1,almaz666,
167943,russel1,negrito,alianz,goodpussy,veronik,
1w2q3r4e,efremov,emb377,sdpass,william6,alanfahy,nastya1995,panther5,automag,
123qwe12,vfvf2011,fishe,
1peanut,speedie,qazwsx1234,pass999,
171204j,ketamine,sheena1,energizer,usethis1,
123abc123,buster21,thechamp,flvbhfk,frank69,chane,hopeful1,claybird,pander,anusha,bigmaxxx,faktor,housebed,dimidrol,bigball,shashi,derby1,fredy,dervish,bootycall,
80988218126,killerb,cheese2,pariss,mymail,dell123,catbert,christa1,chevytru,gjgjdf,
00998877,overdriv,ratten,golf01,nyyanks,dinamite,bloembol,gismo,magnus1,march2,twinkles,ryan22,duckey,
118a105b,kitcat,brielle,poussin,lanzarot,youngone,ssvegeta,hero63,battle1,kiler,fktrcfylh1,newera,vika1996,dynomite,oooppp,beer4me,foodie,ljhjuf,sonshine,godess,doug1,constanc,thinkbig,steve2,damnyou,autogod,www333,kyle1,ranger7,roller1,harry2,dustin1,hopalong,tkachuk,b00bies,bill2,deep111,stuffit,fire69,redfish1,andrei123,graphix,
1fishing,kimbo1,mlesp31,ifufkbyf,gurkan,
44556,emily123,busman,and123,
8546404,paladine,
1world,bulgakov,
4294967296,bball23,
1wwwww,mycats,elain,delta6,
36363,emilyb,color1,
6060842,cdtnkfyrf,hedonism,gfgfrfhkj,
5551298,scubad,gostate,sillyme,hdbiker,beardown,fishers,sektor,
00000007,newbaby,rapid1,braves95,gator2,nigge,anthony3,sammmy,oou812,heffer,phishin,roxanne1,yourass,hornet1,albator,
2521659,underwat,tanusha,dianas,
3f3fpht7op,dragon20,bilbobag,cheroke,radiatio,dwarf1,majik,
33st33,dochka,garibald,robinh,sham69,temp01,wakeboar,violet1,
1w2w3w,registr,tonite,maranello,
1593570,parolamea,galatasara,loranthos,
1472583,asmodean,
1362840,scylla,doneit,jokerr,porkypig,kungen,mercator,koolhaas,come2me,debbie69,calbear,liverpoolfc,yankees4,
12344321a,kennyb,madma,
85200258,dustin23,thomas13,tooling,mikasa,mistic,crfnbyf,
112233445,sofia1,heinz57,colts1,price1,snowey,joakim,mark11,
963147,cnhfcnm,kzinti,
1bbbbbbb,rubberdu,donthate,rupert1,sasha1992,regis1,nbuhbwf,fanboy,sundial,sooner1,wayout,vjnjhjkf,deskpro,arkangel,willie12,mikeyb,celtic1888,luis1,buddy01,duane1,grandma1,aolcom,weeman,
172839456,basshead,hornball,magnu,pagedown,molly2,
131517,rfvtgbyhn,astonmar,mistery,madalina,cash1,
1happy,shenlong,matrix01,nazarova,
369874125,
800500,webguy,rse2540,ashley2,briank,
789551,
786110,chunli,j0nathan,greshnik,courtne,suckmyco,mjollnir,
789632147,asdfg1234,
754321,odelay,ranma12,zebedee,artem777,bmw318is,butt1,rambler1,yankees9,alabam,
5w76rnqp,rosies,mafioso,studio1,babyruth,tranzit,magical123,gfhjkm135,
12345$,soboleva,
709394,ubique,drizzt1,elmers,teamster,pokemons,
1472583690,
1597532486,shockers,merckx,melanie2,ttocs,clarisse,earth1,dennys,slobber,flagman,farfalla,troika,
4fa82hyx,hakan,x4ww5qdr,cumsuck,leather1,forum1,july20,barbel,zodiak,samuel12,ford01,rushfan,bugsy1,invest1,tumadre,screwme,a666666,money5,henry8,tiddles,sailaway,starburs,
100years,killer01,comando,hiromi,ranetka,thordog,blackhole,palmeira,verboten,solidsna,q1w1e1,humme,kevinc,gbrfxe,gevaudan,hannah11,peter2,vangar,sharky7,talktome,jesse123,chuchi,pammy,!qazxsw2,siesta,twenty1,wetwilly,
477041,natural1,sun123,daniel3,intersta,shithead1,hellyea,bonethugs,solitair,bubbles2,father1,nick01,
444000,adidas12,dripik,cameron2,
442200,a7nz8546,respublika,fkojn6gb,
428054,snoppy,rulez1,haslo,rachael1,purple01,zldej102,ab12cd34,cytuehjxrf,madhu,astroman,preteen,handsoff,mrblonde,biggio,testin,vfdhif,twolves,unclesam,asmara,kpydskcw,lg2wmgvr,grolsch,biarritz,feather1,williamm,s62i93,bone1,penske,
337733,
336633,taurus1,
334433,billet,diamondd,
333000,nukem,fishhook,godogs,thehun,lena1982,blue00,smelly1,unb4g9ty,
65pjv22,applegat,mikehunt,giancarlo,krillin,felix123,december1,soapy,
46doris,nicole23,bigsexy1,justin10,pingu,bambou,falcon12,dgthtl,
1surfer,qwerty01,estrellit,nfqcjy,easygo,konica,qazqwe,
1234567890m,stingers,nonrev,
3e4r5t,champio,bbbbbb99,
196400,allen123,seppel,simba2,rockme,zebra3,tekken3,endgame,sandy2,
197300,fitte,monkey00,eldritch,littleone,rfyfgkz,
1member,
66chevy,oohrah,cormac,hpmrbm41,
197600,grayfox,elvis69,celebrit,maxwell7,rodders,krist,
1camaro,broken1,kendall1,silkcut,katenka,angrick,maruni,
17071994a,tktyf,kruemel,snuffles,iro4ka,baby12,alexis01,marryme,vlad1994,forward1,culero,badaboom,malvin,hardtoon,hatelove,molley,knopo4ka,duchess1,mensuck,cba321,kickbutt,zastava,wayner,fuckyou6,eddie123,cjkysir,john33,dragonfi,cody1,jabell,cjhjrf,badseed,sweden1,marihuana,brownlov,elland,nike1234,kwiettie,jonnyboy,togepi,billyk,robert123,bb334,florenci,ssgoku,
198910,bristol1,bob007,allister,yjdujhjl,gauloise,
198920,bellaboo,
9lives,aguilas,wltfg4ta,foxyroxy,rocket69,fifty50,babalu,master21,malinois,kaluga,gogosox,obsessio,yeahrigh,panthers1,capstan,liza2000,leigh1,paintball1,blueskie,cbr600f3,bagdad,jose98,mandreki,shark01,wonderbo,muledeer,xsvnd4b2,hangten,
200001,grenden,anaell,apa195,model1,
245lufpq,zip100,ghjcgtrn,wert1234,misty2,charro,juanjose,fkbcrf,frostbit,badminto,buddyy,
1doctor,vanya,archibal,parviz,spunky1,footboy,dm6tzsgp,legola,samadhi,poopee,ytdxz2ca,hallowboy,dposton,gautie,theworm,guilherme,dopehead,iluvtits,bobbob1,ranger6,worldwar,lowkey,chewbaca,oooooo99,ducttape,dedalus,celular,
8i9o0p,borisenko,taylor01,
111111z,arlingto,p3nnywiz,rdgpl3ds,boobless,kcmfwesg,blacksab,mother2,markus1,leachim,secret2,s123456789,
1derful,espero,russell2,tazzer,marykate,freakme,mollyb,lindros8,james00,gofaster,stokrotka,kilbosik,aquamann,pawel1,shedevil,mousie,slot2009,october6,
146969,mm259up,brewcrew,choucho,uliana,sexfiend,fktirf,pantss,vladimi,starz,sheeps,
12341234q,bigun,tiggers,crjhjcnm,libtech,pudge1,home12,zircon,klaus1,jerry2,pink1,lingus,monkey66,dumass,polopolo09,feuerweh,rjyatnf,chessy,beefer,shamen,poohbear1,
4jjcho,bennevis,fatgirls,ujnbrf,cdexswzaq,
9noize9,rich123,nomoney,racecar1,hacke,clahay,acuario,getsum,hondacrv,william0,cheyenn,techdeck,atljhjdf,wtcacq,suger,fallenangel,bammer,tranquil,carla123,relayer,lespaul1,portvale,idontno,bycnbnen,trooper2,gennadiy,pompon,billbob,amazonka,akitas,chinatow,atkbrc,busters,fitness1,cateye,selfok2013,
1murphy,fullhous,mucker,bajskorv,nectarin,littlebitch,love24,feyenoor,bigal37,lambo1,pussybitch,icecube1,biged,kyocera,ltybcjdf,boodle,theking1,gotrice,sunset1,abm1224,fromme,sexsells,inheat,kenya1,swinger1,aphrodit,kurtcobain,rhind101,poidog,poiulkjh,kuzmina,beantown,tony88,stuttgar,drumer,joaqui,messenge,motorman,amber2,nicegirl,rachel69,andreia,faith123,studmuffin,jaiden,red111,vtkmybr,gamecocks,gumper,bosshogg,
4me2know,tokyo1,kleaner,roadhog,fuckmeno,phoenix3,seeme,buttnutt,boner69,andreyka,myheart,katerin,rugburn,jvtuepip,dc3ubn,chile1,ashley69,happy99,swissair,balls2,fylhttdf,jimboo,
55555d,mickey11,voronin,m7hsqstm,stufff,merete,weihnachte,dowjones,baloo1,freeones,bears34,auburn1,beverl,timberland,
1elvis,guinness1,bombadil,flatron1,logging7,telefoon,merl1n,masha1,andrei1,cowabung,yousuck1,
1matrix,peopl,asd123qwe,sweett,mirror1,torrente,joker12,diamond6,jackaroo,
00000a,millerlite,ironhorse,
2twins,stryke,gggg1,zzzxxxccc,roosevel,
8363eddy,angel21,depeche1,d0ct0r,blue14,areyou,veloce,grendal,frederiksberg,cbcntvf,cb207sl,sasha2000,was.here,fritzz,rosedale,spinoza,cokeisit,gandalf3,skidmark,ashley01,
12345j,
1234567890qaz,sexxxxxx,beagles,lennart,
12345789,pass10,politic,max007,gcheckou,
12345611,tiffy,lightman,mushin,velosiped,brucewayne,gauthie,elena123,greenegg,h2oski,clocker,nitemare,
123321s,megiddo,cassidy1,david13,boywonde,flori,peggy12,pgszt6md,batterie,redlands,scooter6,bckhere,trueno,bailey11,maxwell2,bandana,timoth1,startnow,ducati74,tiern,maxine1,blackmetal,suzyq,balla007,phatfarm,kirsten1,titmouse,benhogan,culito,forbin,chess1,warren1,panman,mickey7,
24lover,dascha,speed2,redlion,andrew10,johnwayn,nike23,chacha1,bendog,bullyboy,goldtree,spookie,tigger99,
1cookie,poutine,cyclone1,woodpony,camaleun,bluesky1,dfadan,eagles20,lovergirl,peepshow,mine1,dima1989,rjdfkmxer,
11111aaaaa,machina,august17,
1hhhhh,
0773417k,
1monster,freaksho,jazzmin,davidw,kurupt,chumly,huggies,sashenka,ccccccc1,bridge1,giggalo,cincinna,pistol1,hello22,david77,lightfoo,lucky6,jimmy12,
261397,lisa12,tabaluga,mysite,belo4ka,greenn,eagle99,punkrawk,salvado,slick123,wichsen,knight99,dummys,fefolico,contrera,kalle1,anna1984,delray,robert99,garena,pretende,racefan,alons,serenada,ludmilla,cnhtkjr,l0swf9gx,hankster,dfktynbyrf,sheep1,john23,cv141ab,kalyani,
944turbo,crystal2,blackfly,zrjdktdf,eus1sue1,mario5,riverplate,harddriv,melissa3,elliott1,sexybitc,cnhfyybr,jimdavis,bollix,beta1,amberlee,skywalk1,natala,
1blood,brattax,shitty1,gb15kv99,ronjon,rothmans,thedoc,joey21,hotboi,firedawg,bimbo38,jibber,aftermat,nomar,
01478963,phishing,domodo,anna13,materia,martha1,budman1,gunblade,exclusiv,sasha1997,anastas,rebecca2,fackyou,kallisti,fuckmyass,norseman,ipswich1,
151500,
1edward,intelinside,darcy1,bcrich,yjdjcnbf,failte,buzzzz,cream1,tatiana1,
7eleven,green8,
153351,
1a2s3d4f5g6h,
154263,milano1,bambi1,bruins77,rugby2,jamal1,bolita,sundaypunch,bubba12,realmadr,vfyxtcnth,iwojima,notlob,black666,valkiria,nexus1,millerti,birthday100,swiss1,appollo,gefest,greeneyes,celebrat,tigerr,slava123,izumrud,bubbabub,legoman,joesmith,katya123,sweetdream,john44,wwwwwww1,oooooo1,socal,lovespor,s5r8ed67s,
258147,heidis,cowboy22,wachovia,michaelb,qwe1234567,i12345,
255225,goldie1,alfa155,
45colt,safeu851,antonova,longtong,
1sparky,gfvznm,busen,hjlbjy,whateva,rocky4,cokeman,joshua3,kekskek1,sirocco,jagman,
123456qwert,phinupi,thomas10,loller,sakur,vika2011,fullred,mariska,azucar,ncstate,glenn74,halima,aleshka,ilovemylife,verlaat,baggie,scoubidou6,phatboy,jbruton,scoop1,barney11,blindman,def456,maximus2,master55,nestea,
11223355,diego123,sexpistols,sniffy,philip1,f12345,prisonbreak,nokia2700,ajnjuhfa,yankees3,colfax,ak470000,mtnman,bdfyeirf,fotball,ichbin,trebla,ilusha,riobravo,beaner1,thoradin,polkaudi,kurosawa,honda123,ladybu,valerik,poltava,saviola,fuckyouguys,
754740g0,anallove,microlab1,juris01,ncc1864,garfild,shania1,qagsud,makarenko,cindy69,lebedev,andrew11,johnnybo,groovy1,booster1,sanders1,tommyb,johnson4,kd189nlcih,hondaman,vlasova,chick1,sokada,sevisgur,bear2327,chacho,sexmania,roma1993,hjcnbckfd,valley1,howdie,tuppence,jimandanne,strike3,y4kuz4,nhfnfnf,tsubasa,
19955991,scabby,quincunx,dima1998,uuuuuu1,logica,skinner1,pinguino,lisa1234,xpressmusic,getfucked,qqqq1,bbbb1,matulino,ulyana,upsman,johnsmith,
123579,co2000,spanner1,todiefor,mangoes,isabel1,
123852,negra,snowdon,nikki123,bronx1,booom,ram2500,chuck123,fireboy,creek1,batman13,princesse,az12345,maksat,
1knight,
28infern,
241455,r7112s,muselman,mets1986,katydid,vlad777,playme,kmfdm1,asssex,
1prince,iop890,bigbroth,mollymoo,waitron,lizottes,
125412,juggler,quinta,
0sister0,zanardi,nata123,heckfyxbr,
22q04w90e,engine2,nikita95,zamira,hammer22,lutscher,carolina1,zz6319,sanman,vfuflfy,buster99,rossco,kourniko,aggarwal,tattoo1,janice1,finger1,
125521,
19911992,shdwlnds,rudenko,vfvfgfgf123,galatea,monkeybu,juhani,premiumcash,classact,devilmay,helpme2,knuddel,hardpack,ramil,perrit,basil1,zombie13,stockcar,tos8217,honeypie,nowayman,alphadog,melon1,talula,
125689,tiribon12,tornike,haribol,telefone,tiger22,sucka,lfytxrf,chicken123,muggins,a23456,b1234567,lytdybr,otter1,pippa,vasilisk,cooking1,helter,
78978,bestboy,viper7,ahmed1,whitewol,mommys,apple5,shazam1,chelsea7,kumiko,masterma,rallye,bushmast,jkz123,entrar,andrew6,nathan01,alaric,tavasz,heimdall,gravy1,jimmy99,cthlwt,powerr,gthtrhtcnjr,canesfan,sasha11,ybrbnf_25,august9,brucie,artichok,arnie1,superdude,tarelka,mickey22,dooper,luners,holeshot,good123,gettysbu,bicho,hammer99,divine5,
1zxcvbn,stronzo,q22222,disne,bmw750il,godhead,hallodu,aerith,nastik,differen,cestmoi,amber69,
5string,pornosta,dirtygirl,ginger123,formel1,scott12,honda200,hotspurs,johnatha,firstone123,lexmark1,msconfig,karlmasc,l123456,
123qweasdzx,baldman,sungod,furka,retsub,
9811020,ryder1,tcglyued,astron,lbvfcbr,minddoc,dirt49,baseball12,tbear,simpl,schuey,artimus,bikman,plat1num,quantex,gotyou,hailey1,justin01,ellada,
8481068,
000002,manimal,dthjybxrf,buck123,dick123,
6969696,nospam,strong1,kodeord,bama12,
123321w,superman123,gladiolus,nintend,
5792076,dreamgirl,spankme1,gautam,arianna1,titti,tetas,cool1234,belladog,importan,
4206969,
87e5nclizry,teufelo7,doller,yfl.irf,quaresma,
3440172,melis,bradle,nnmaster,fast1,iverso,blargh,lucas12,chrisg,iamsam,
123321az,tomjerry,kawika,
2597174,standrew,billyg,muskan,gizmodo2,rz93qpmq,
870621345,sathya,qmezrxg4,januari,marthe,moom4261,cum2me,hkger286,lou1988,suckit1,croaker,klaudia1,
753951456,aidan1,fsunoles,romanenko,abbydog,isthebes,akshay,corgi,fuck666,walkman555,ranger98,scorpian,hardwareid,bluedragon,fastman,
2305822q,iddqdiddqd,
1597532,gopokes,zvfrfcb,w1234567,sputnik1,tr1993,pa$$w0rd,
2i5fdruv,havvoc,
1357913,
1313131,bnm123,cowd00d,flexscan,thesims2,boogiema,bigsexxy,powerstr,ngc4565,joshman,babyboy1,
123jlb,funfunfu,qwe456,honor1,puttana,bobbyj,daniel21,pussy12,shmuck,
1232580,
123578951,maxthedo,hithere1,bond0007,gehenna,nomames,blueone,r1234567,bwana,gatinho,
1011111,torrents,cinta,
123451234,tiger25,money69,edibey,pointman,mmcm19,wales1,caffreys,phaedra,bloodlus,
321ret32,rufuss,tarbit,joanna1,
102030405,stickboy,lotrfotr34,jamshid,mclarenf1,ataman,
99ford,yarrak,logan2,ironlung,pushistik,dragoon1,unclebob,tigereye,pinokio,tylerj,mermaid1,stevie1,jaylen,
888777,ramana,roman777,brandon7,
17711771s,thiago,luigi1,edgar1,brucey,videogam,classi,birder,faramir,twiddle,cubalibre,grizzy,fucky,jjvwd4,august15,idinahui,ranita,nikita1998,
123342,w1w2w3,
78621323,
4cancel,
789963,(null,vassago,jaydog472,
123452,timt42,canada99,
123589,rebenok,htyfnf,
785001,osipov,maks123,neverwinter,love2010,
777222,
67390436,eleanor1,bykemo,aquemini,frogg,roboto,thorny,shipmate,logcabin,
66005918,nokian,gonzos,louisian,
1abcdefg,triathlo,ilovemar,couger,letmeino,supera,runvs,fibonacci,muttly,
58565254,
5thgbqi,vfnehsv,electr,jose12,artemis1,newlove,thd1shr,hawkey,grigoryan,saisha,tosca,redder,lifesux,temple1,bunnyman,thekids,sabbeth,tarzan1,
182838,
158uefas,dell50,
1super,
666222,
47ds8x,jackhamm,mineonly,rfnfhbyf,
048ro,
665259,kristina1,bombero,
52545856,secure1,bigloser,peterk,alex2,
51525354,anarchy1,superx,teenslut,money23,sigmapi,sanfrancisco,acme34,private5,eclips,qwerttrewq,axelle,kokain,hardguy,peter69,jesuschr,dyanna,dude69,sarah69,toyota91,amberr,
45645645,bugmenot,bigted,
44556677,
556644,wwr8x9pu,alphaome,harley13,kolia123,wejrpfpu,revelati,nairda,sodoff,cityboy,pinkpussy,dkalis,miami305,wow12345,triplet,tannenbau,asdfasdf1,darkhors,
527952,retired1,soxfan,nfyz123,
37583867,goddes,
515069,gxlmxbewym,
1warrior,
36925814,dmb2011,topten,karpova,
89876065093rax,naturals,gateway9,cepseoun,turbot,
493949,cock22,italia1,sasafras,gopnik,stalke,
1qazxdr5,wm2006,ace1062,alieva,blue28,aracel,sandia,motoguzz,terri1,emmajane,conej,recoba,alex1995,jerkyboy,cowboy12,arenrone,precisio,
31415927,scsa316,panzer1,studly1,powerhou,bensam,mashoutq,billee,eeyore1,reape,thebeatl,rul3z,montesa,doodle1,cvzefh1gk,
424365,a159753,zimmerma,gumdrop,ashaman,grimreap,icandoit,borodina,branca,dima2009,keywest1,vaders,bubluk,diavolo,assss,goleta,eatass,napster1,
382436,
369741,
5411pimo,lenchik,pikach,gilgamesh,kalimera,singer1,gordon2,rjycnbnewbz,maulwurf,joker13,
2much4u,bond00,alice123,robotec,fuckgirl,zgjybz,redhorse,margaret1,brady1,pumpkin2,chinky,fourplay,
1booger,roisin,
1brandon,sandan,blackheart,cheez,blackfin,cntgfyjdf,mymoney1,
09080706,goodboss,sebring1,rose1,kensingt,bigboner,marcus12,ym3cautj,struppi,thestone,lovebugs,stater,silver99,forest99,qazwsx12345,vasile,longboar,mkonji,huligan,rhfcbdfz,airmail,porn11,
1ooooo,sofun,snake2,msouthwa,dougla,
1iceman,shahrukh,sharona,dragon666,france98,
196800,
196820,ps253535,zjses9evpa,sniper01,design1,konfeta,jack99,drum66,good4you,station2,brucew,regedit,school12,mvtnr765,pub113,fantas,tiburon1,king99,ghjcnjgbpltw,checkito,
308win,
1ladybug,corneliu,svetasveta,
197430,icicle,imaccess,ou81269,jjjdsl,brandon6,bimbo1,smokee,piccolo1,
3611jcmg,children2,cookie2,conor1,darth1,margera,aoi856,paully,ou812345,sklave,eklhigcz,
30624700,amazing1,wahooo,seau55,
1beer,apples2,chulo,dolphin9,heather6,
198206,
198207,hergood,miracle1,njhyflj,
4real,milka,silverfi,fabfive,spring12,ermine,mammy,jumpjet,adilbek,toscana,caustic,hotlove,sammy69,lolita1,byoung,whipme,barney01,mistys,tree1,buster3,kaylin,gfccgjhn,
132333,aishiteru,pangaea,fathead1,smurph,
198701,ryslan,gasto,xexeylhf,anisimov,chevyss,saskatoo,brandy12,tweaker,irish123,music2,denny1,palpatin,outlaw1,lovesuck,woman1,mrpibb,diadora,hfnfneq,poulette,harlock,mclaren1,cooper12,newpass3,bobby12,rfgecnfcerf,alskdjfh,mini14,dukers,raffael,
199103,cleo123,
1234567qwertyu,mossberg,scoopy,dctulf,starline,hjvjxrf,misfits1,rangers2,bilbos,blackhea,pappnase,atwork,purple2,daywalker,summoner,
1jjjjjjj,swansong,chris10,laluna,
12345qqq,charly1,lionsden,money99,silver33,hoghead,bdaddy,
199430,saisg002,nosaints,tirpitz,
1gggggg,jason13,kingss,ernest1,
0cdh0v99ue,pkunzip,arowana,spiri,deskjet1,armine,lances,magic2,thetaxi,
14159265,cacique,
14142135,orange10,richard0,backdraf,
255ooo,humtum,kohsamui,c43dae874d,wrestling1,cbhtym,sorento,megha,pepsiman,qweqwe12,bliss7,mario64,korolev,balls123,schlange,gordit,optiquest,fatdick,fish99,richy,nottoday,dianne1,armyof1,
1234qwerasdfzxcv,bbonds,aekara,lidiya,baddog1,yellow5,funkie,ryan01,greentree,gcheckout,marshal1,liliput,
000000z,rfhbyrf,gtogto43,rumpole,tarado,marcelit,aqwzsxedc,kenshin1,sassydog,system12,belly1,zilla,kissfan,tools1,desember,donsdad,nick11,scorpio6,poopoo1,toto99,steph123,dogfuck,rocket21,thx113,dude12,sanek,sommar,smacky,pimpsta,letmego,k1200rs,lytghjgtnhjdcr,abigale,buddog,deles,baseball9,roofus,carlsbad,hamzah,hereiam,genial,schoolgirlie,yfz450,breads,piesek,washear,chimay,apocalyp,nicole18,gfgf1234,gobulls,dnevnik,wonderwall,beer1234,
1moose,beer69,maryann1,adpass,mike34,birdcage,hottuna,gigant,penquin,praveen,donna123,
123lol
123,thesame,fregat,adidas11,selrahc,pandoras,test3,chasmo,
111222333000,pecos,daniel11,ingersol,shana1,mama12345,cessna15,myhero,
1simpson,nazarenko,cognit,seattle2,irina1,azfpc310,rfycthdf,hardy1,jazmyn,sl1200,hotlanta,jason22,kumar123,sujatha,fsd9shtyu,highjump,changer,entertai,kolding,mrbig,sayuri,eagle21,qwertzu,jorge1,
0101dd,bigdong,ou812a,sinatra1,htcnjhfy,oleg123,videoman,pbyfblf,tv612se,bigbird1,kenaidog,gunite,silverma,ardmore,
123123qq,hotbot,cascada,cbr600f4,harakiri,chico123,boscos,aaron12,glasgow1,kmn5hc,lanfear,
1light,liveoak,fizika,ybrjkftdyf,surfside,intermilan,multipas,redcard,
72chevy,balata,coolio1,schroede,kanat,testerer,camion,kierra,hejmeddig,antonio2,tornados,isidor,pinkey,n8skfswa,ginny1,houndog,
1bill,chris25,hastur,
1marine,greatdan,french1,hatman,
123qqq,z1z2z3z4,kicker1,katiedog,usopen,smith22,mrmagoo,
1234512i,assa123,
7seven7,monster7,june12,bpvtyf,
149521,guenter,alex1985,voronina,mbkugegs,zaqwsxcderfv,rusty5,mystic1,master0,abcdef12,jndfkb,r4zpm3,cheesey,skripka,blackwhite,sharon69,dro8smwq,lektor,techman,boognish,deidara,heckfyf,quietkey,authcode,monkey4,jayboy,pinkerto,merengue,chulita,bushwick,turambar,kittykit,joseph2,dad123,kristo,pepote,scheiss,hambone1,bigballa,restaura,tequil,
111luzer,euro2000,motox,denhaag,chelsi,flaco1,preeti,lillo,
1001sin,passw,august24,beatoff,
555555d,willis1,kissthis,qwertyz,rvgmw2gl,iloveboobies,timati,kimbo,msinfo,dewdrop,sdbaker,fcc5nky2,messiah1,catboy,small1,chode,beastie1,star77,hvidovre,short1,xavie,dagobah,alex1987,papageno,dakota2,toonami,fuerte,jesus33,lawina,souppp,dirtybir,chrish,naturist,channel1,peyote,flibble,gutentag,lactate,killem,zucchero,robinho,ditka,grumpy1,avr7000,boxxer,topcop,berry1,mypass1,beverly1,deuce1,
9638527410,cthuttdf,kzkmrf,lovethem,band1t,cantona1,purple11,apples123,wonderwo,
123a456,fuzzie,lucky99,dancer2,hoddling,rockcity,winner12,spooty,mansfiel,aimee1,
287hf71h,rudiger,culebra,god123,agent86,daniel0,bunky1,notmine,
9ball,goofus,puffy1,xyh28af4,kulikov,bankshot,vurdf5i2,kevinm,ercole,sexygirls,razvan,october7,goater,lollie,raissa,thefrog,mdmaiwa3,mascha,jesussaves,union1,anthony9,crossroa,brother2,areyuke,rodman91,toonsex,dopeman,gericom,vaz2115,cockgobbler,
12356789,
12345699,signatur,alexandra1,coolwhip,erwin1,awdrgyjilp,pens66,ghjrjgtyrj,linkinpark,emergenc,psych0,blood666,bootmort,wetworks,piroca,johnd,iamthe1,supermario,homer69,flameon,image1,bebert,fylhtq1,annapoli,apple11,hockey22,
10048,indahouse,mykiss,
1penguin,markp,misha123,foghat,march11,hank1,santorin,defcon4,tampico,vbnhjafy,robert22,bunkie,athlon64,sex777,nextdoor,koskesh,lolnoob,seemnemaailm,black23,march15,yeehaa,chiqui,teagan,siegheil,monday2,cornhusk,mamusia,chilis,sthgrtst,feldspar,scottm,pugdog,rfghjy,micmac,gtnhjdyf,terminato,
1jackson,kakosja,bogomol,
123321aa,rkbvtyrj,tresor,tigertig,fuckitall,vbkkbjy,caramon,zxc12,balin,dildo1,soccer09,avata,abby123,cheetah1,marquise,jennyc,hondavfr,tinti,anna1985,dennis2,jorel,mayflowe,icema,hal2000,nikkis,bigmouth,greenery,nurjan,leonov,liberty7,fafnir,larionov,sat321321,byteme1,nausicaa,hjvfynbrf,everto,zebra123,sergio1,titone,wisdom1,kahala,
104328q,marcin1,salima,pcitra,
1nnnnn,nalini,galvesto,neeraj,rick1,squeeky,agnes1,jitterbu,agshar,maria12,
0112358,traxxas,stivone,prophet1,bananza,sommer1,canoneos,hotfun,redsox11,
1bigmac,dctdjkjl,legion1,everclea,valenok,black9,danny001,roxie1,
1theman,mudslide,july16,lechef,chula,glamis,emilka,canbeef,ioanna,cactus1,rockshox,im2cool,ninja9,thvfrjdf,june28,milo17,missyou,micky1,nbibyf,nokiaa,goldi,mattias,fuckthem,asdzxc123,ironfist,junior01,nesta,crazzy,killswit,hygge,zantac,kazama,melvin1,allston,maandag,hiccup,prototyp,specboot,dwl610,hello6,
159456,baldhead,redwhite,calpoly,whitetail,agile1,cousteau,matt01,aust1n,malcolmx,gjlfhjr,semperf1,ferarri,a1b2c3d,vangelis,mkvdari,bettis36,andzia,comand,tazzman,morgaine,pepluv,anna1990,inandout,anetka,anna1997,wallpape,moonrake,huntress,hogtie,cameron7,sammy7,singe11,clownboy,newzeala,wilmar,safrane,rebeld,poopi,granat,hammertime,nermin,
11251422,xyzzy1,bogeys,jkmxbr,fktrcfyl,
11223311,nfyrbcn,
11223300,powerpla,zoedog,ybrbnbyf,zaphod42,tarawa,jxfhjdfirf,dude1234,g5wks9,goobe,czekolada,blackros,amaranth,medical1,thereds,julija,nhecsyfujkjdt,promopas,buddy4,marmalad,weihnachten,tronic,letici,passthief,
67mustan,ds7zamnw,morri,w8woord,cheops,pinarell,sonofsam,av473dv,sf161pn,
5c92v5h6,purple13,tango123,plant1,
1baby,xufrgemw,fitta,
1rangers,spawns,kenned,taratata,
19944991,
11111118,coronas,
4ebouux8,roadrash,corvette1,dfyjdf846,marley12,qwaszxerdfcv,
68stang,
67stang,racin,ellehcim,sofiko,nicetry,seabass1,jazzman1,zaqwsx1,laz2937,uuuuuuu1,vlad123,rafale,j1234567,
223366,nnnnnn1,
226622,junkfood,asilas,cer980,daddymac,persepho,neelam,
00700,shithappens,
255555,qwertyy,xbox36,
19755791,qweasd1,bearcub,jerryb,a1b1c1,polkaudio,basketball1,
456rty,
1loveyou,marcus2,mama1961,palace1,transcend,shuriken,sudhakar,teenlove,anabelle,matrix99,pogoda,notme,bartend,jordana,nihaoma,ataris,littlegi,ferraris,redarmy,giallo,fastdraw,accountbloc,peludo,pornostar,pinoyako,cindee,glassjaw,dameon,johnnyd,finnland,saudade,losbravo,slonko,toplay,smalltit,nicksfun,stockhol,penpal,caraj,divedeep,cannibus,poppydog,pass88,viktory,walhalla,arisia,lucozade,goldenbo,tigers11,caball,ownage123,tonna,handy1,johny,capital5,faith2,stillher,brandan,pooky1,antananarivu,hotdick,
1justin,lacrimos,goathead,bobrik,cgtwbfkbcn,maywood,kamilek,gbplf123,gulnar,beanhead,vfvjyn,shash,viper69,ttttttt1,hondacr,kanako,muffer,dukies,justin123,agapov58,mushka,bad11bad,muleman,jojo123,andreika,makeit,vanill,boomers,bigals,merlin11,quacker,aurelien,spartak1922,ligeti,diana2,lawnmowe,fortune1,awesom,rockyy,anna1994,oinker,love88,eastbay,ab55484,poker0,ozzy666,papasmurf,antihero,photogra,ktm250,painkill,jegr2d2,p3orion,canman,dextur,qwest123,samboy,yomismo,sierra01,herber,vfrcbvvfrcbv,gloria1,llama1,pie123,bobbyjoe,buzzkill,skidrow,grabber,phili,javier1,
9379992q,geroin,oleg1994,sovereig,rollover,zaq12qaz,battery1,killer13,alina123,groucho1,mario12,peter22,butterbean,elise1,lucycat,neo123,ferdi,golfer01,randie,gfhfyjbr,ventura1,chelsea3,pinoy,mtgox,yrrim7,shoeman,mirko,ffggyyo,
65mustan,ufdibyjd,john55,suckfuck,greatgoo,fvfnjhb,mmmnnn,love20,
1bullshi,sucesso,easy1234,robin123,rockets1,diamondb,wolfee,nothing0,joker777,glasnost,richar1,guille,sayan,koresh,goshawk,alexx,batman21,a123456b,hball,
243122,rockandr,coolfool,isaia,mary1,yjdbrjdf,lolopc,cleocat,cimbo,lovehina,
8vfhnf,passking,bonapart,diamond2,bigboys,kreator,ctvtyjdf,sassy123,shellac,table54781,nedkelly,philbert,sux2bu,nomis,sparky99,python1,littlebear,numpty,silmaril,sweeet,jamesw,cbufhtnf,peggysue,wodahs,luvsex,wizardry,venom123,love4you,bama1,samat,reviewpass,ned467,cjkjdtq,mamula,gijoe,amersham,devochka,redhill,gisel,preggo,polock,cando,rewster,greenlantern,panasonik,dave1234,mikeee,
1carlos,miledi,darkness1,p0o9i8u7y6,kathryn1,happyguy,dcp500,assmaster,sambuka,sailormo,antonio3,logans,
18254288,nokiax2,qwertzuiop,zavilov,totti,xenon1,edward11,targa1,something1,tony_t,q1w2e3r4t5y6u7i8o9p0,
02551670,vladimir1,monkeybutt,greenda,neel21,craiger,saveliy,dei008,honda450,fylhtq95,spike2,fjnq8915,passwordstandard,vova12345,talonesi,richi,gigemags,pierre1,westin,trevoga,dorothee,bastogne,
25563o,brandon3,truegrit,krimml,iamgreat,servis,a112233,paulinka,azimuth,corperfmonsy,
358hkyp,homerun1,dogbert1,eatmyass,cottage1,savina,baseball7,bigtex,gimmesum,asdcxz,lennon1,a159357,
1bastard,
413276191q,pngfilt,pchealth,netsnip,bodiroga,
1matt,webtvs,ravers,adapters,siddis,mashamasha,coffee2,myhoney,anna1982,marcia1,fairchil,maniek,iloveluc,batmonh,wildon,bowie1,netnwlnk,fancy1,tom204,olga1976,vfif123,queens1,ajax01,lovess,mockba,icam4usb,triada,odinthor,rstlne,exciter,sundog,anchorat,girls69,nfnmzyrf,soloma,gti16v,shadowman,ottom,rataros,tonchin,vishal,chicken0,pornlo,christiaan,volante,likesit,mariupol,runfast,gbpltw123,missys,villevalo,kbpjxrf,ghibli,calla,cessna172,kinglear,dell11,swift1,walera,
1cricket,pussy5,turbo911,tucke,maprchem56458,rosehill,thekiwi1,ygfxbkgt,mandarinka,
98xa29,magnit,cjfrf,paswoord,grandam1,shenmue,leedsuni,hatrick,zagadka,angeldog,michaell,dance123,koichi,bballs,
29palms,xanth,
228822,ppppppp1,
1kkkkk,
1lllll,mynewbots,spurss,madmax1,
224455,city1,mmmmmmm1,nnnnnnn1,biedronka,thebeatles,elessar,f14tomcat,jordan18,bobo123,ayi000,tedbear,
86chevyx,user123,bobolink,maktub,elmer1,flyfishi,franco1,gandalf0,traxdata,david21,enlighte,dmitrij,beckys,
1giants,flippe,
12345678w,jossie,rugbyman,snowcat,rapeme,peanut11,gemeni,udders,techn9ne,armani1,chappie,war123,vakantie,maddawg,sewanee,jake5253,tautt1,anthony5,letterma,jimbo2,kmdtyjr,hextall,jessica6,amiga500,hotcunt,phoenix9,veronda,saqartvelo,scubas,sixer3,williamj,nightfal,shihan,melnikova,kosssss,handily,killer77,jhrl0821,march17,rushman,
6gcf636i,metoyou,irina123,mine11,primus1,formatters,matthew5,infotech,gangster1,jordan45,moose69,kompas,motoxxx,greatwhi,cobra12,kirpich,weezer1,hello23,montse,tracy123,connecte,cjymrf,hemingwa,azreal,gundam00,mobila,boxman,slayers1,ravshan,june26,fktrcfylhjd,bermuda1,tylerd,maersk,qazwsx11,eybdthcbntn,ash123,camelo,kat123,backd00r,cheyenne1,
1king,jerkin,tnt123,trabant,warhammer40k,rambos,punto,home77,pedrito,
1frank,brille,guitarman,george13,rakas,tgbxtcrbq,flute1,bananas1,lovezp1314,thespot,postie,buster69,sexytime,twistys,zacharia,sportage,toccata,denver7,terry123,bogdanova,devil69,higgins1,whatluck,pele10,kkk666,jeffery1,
1qayxsw2,riptide1,chevy11,munchy,lazer1,hooker1,ghfgjh,vergesse,playgrou,
4077mash,gusev,humpin,oneputt,hydepark,monster9,tiger8,tangsoo,guy123,hesoyam1,uhtqneyu,thanku,lomond,ortezza,kronik,geetha,rabbit66,killas,qazxswe,alabaste,
1234567890qwerty,capone1,andrea12,geral,beatbox,slutfuck,booyaka,jasmine7,ostsee,maestro1,beatme,tracey1,buster123,donaldduck,ironfish,happy6,konnichi,gintonic,momoney1,dugan1,today2,enkidu,destiny2,trim7gun,katuha,fractals,morganstanley,polkadot,gotime,prince11,
204060,fifa2010,bobbyt,seemee,amanda10,airbrush,bigtitty,heidie,layla1,cotton1,
5speed,fyfnjkmtdyf,flynavy,joxury8f,meeko,akuma,dudley1,flyboy1,moondog1,trotters,mariami,signin,chinna,legs11,pussy4,
1s1h1e1f1,felici,optimus1,iluvu,marlins1,gavaec,balance1,glock40,london01,kokot,southwes,comfort1,sammy11,rockbottom,brianc,litebeer,homero,chopsuey,greenlan,charit,freecell,hampster,smalldog,viper12,blofeld,
1234567890987654321,realsex,romann,cartman2,cjdthitycndj,nelly1,bmw528,zwezda,masterba,jeep99,turtl,america2,sunburst,sanyco,auntjudy,
125wm,blue10,qwsazx,cartma,toby12,robbob,red222,ilovecock,losfix16,
1explore,helge,vaz2114,whynotme,baba123,mugen,
1qazwsxedc,albertjr,
0101198,sextime,supras,nicolas2,wantsex,pussy6,checkm8,winam,
24gordon,misterme,curlew,gbljhfcs,medtech,franzi,butthea,voivod,blackhat,egoiste,pjkeirf,maddog69,pakalolo,hockey4,igor1234,rouges,snowhite,homefree,sexfreak,acer12,dsmith,blessyou,
199410,vfrcbvjd,falco02,belinda1,yaglasph,april21,groundho,jasmin1,nevergiveup,elvir,gborv526,c00kie,emma01,awesome2,larina,mike12345,maximu,anupam,bltynbabrfwbz,tanushka,sukkel,raptor22,josh12,schalke04,cosmodog,fuckyou8,busybee,
198800,bijoux,frame1,blackmor,giveit,issmall,bear13,
123-
123,bladez,littlegirl,ultra123,fletch1,flashnet,loploprock,rkelly,
12step,lukas1,littlewhore,cuntfinger,stinkyfinger,laurenc,
198020,n7td4bjl,jackie69,camel123,ben1234,
1gateway,adelheid,fatmike,thuglove,zzaaqq,chivas1,
4815162342q,mamadou,nadano,james22,benwin,andrea99,rjirf,michou,abkbgg,d50gnn,aaazzz,a123654,blankman,booboo11,medicus,bigbone,
197200,justine1,bendix,morphius,njhvjp,
44mag,zsecyus56,goodbye1,nokiadermo,a333444,waratsea,
4rzp8ab7,fevral,brillian,kirbys,minim,erathia,grazia,zxcvb1234,dukey,snaggle,poppi,hymen,
1video,dune2000,jpthjdf,cvbn123,zcxfcnkbdfz,astonv,ginnie,
316271,engine3,pr1ncess,
64chevy,glass1,laotzu,hollyy,comicbooks,assasins,nuaddn9561,scottsda,hfcnfvfy,accobra,
7777777z,werty123,metalhead,romanson,redsand,
365214,shalo,arsenii,
1989cc,sissi,duramax,
382563,petera,
414243,mamapap,jollymon,field1,fatgirl,janets,trompete,matchbox20,rambo2,nepenthe,
441232,qwertyuiop10,bozo123,phezc419hv,romantika,lifestyl,pengui,decembre,demon6,panther6,
444888,scanman,ghjcnjabkz,pachanga,buzzword,indianer,spiderman3,tony12,startre,frog1,fyutk,
483422,tupacshakur,albert12,
1drummer,bmw328i,green17,aerdna,invisibl,summer13,calimer,mustaine,lgnu9d,morefun,hesoyam123,escort1,scrapland,stargat,barabbas,dead13,
545645,mexicali,sierr,gfhfpbn,gonchar,moonstafa,searock,counte,foster1,jayhawk1,floren,maremma,nastya2010,softball1,adaptec,halloo,barrabas,zxcasd123,hunny,mariana1,kafedra,freedom0,green420,vlad1234,method7,
665566,tooting,hallo12,davinchi,conducto,medias,
666444,invernes,madhatter,
456asd,
12345678i,
687887,le33px,spring00,help123,bellybut,billy5,vitalik1,river123,gorila,bendis,power666,
747200,footslav,acehigh,qazxswedc123,q1a1z1,richard9,peterburg,tabletop,gavrilov,
123qwe1,kolosov,fredrau,run4fun,
789056,jkbvgbflf,chitra,
87654321q,steve22,wideopen,access88,surfe,tdfyutkbjy,impossib,kevin69,
880888,cantina,
887766,wxcvb,dontforg,qwer1209,asslicke,mamma123,indig,arkasha,scrapp,morelia,vehxbr,jones2,scratch1,cody11,cassie12,gerbera,dontgotm,underhil,maks2010,hollywood1,hanibal,elena2010,jason11,
1010321,stewar,elaman,fireplug,goodby,sacrific,babyphat,bobcat12,bruce123,
1233215,tony45,tiburo,love15,bmw750,wallstreet,
2h0t4me,
1346795,lamerz,munkee,
134679q,granvill,
1512198,armastus,aiden1,pipeutvj,g1234567,angeleyes,usmc1,
102030q,putangina,brandnew,shadowfax,eagles12,
1falcon,brianw,lokomoti,
2022958,scooper,pegas,jabroni1,
2121212,buffal,siffredi,wewiz,twotone,rosebudd,nightwis,carpet1,mickey2,
2525252,sleddog,red333,jamesm,
2797349,jeff12,onizuka,felixxxx,rf6666,fine1,ohlala,forplay,chicago5,muncho,scooby11,ptichka,johnnn,
19851985p,dogphil3650,totenkopf,monitor2,macross7,
3816778,dudder,semaj1,bounder,racerx1,
5556633,
7085506,ofclr278,brody1,
7506751,nantucke,hedj2n4q,drew1,aessedai,trekbike,pussykat,samatron,imani,
9124852,wiley1,dukenukem,iampurehaha2,
9556035,obvious1,mccool24,apache64,kravchenko,justforf,basura,jamese,s0ccer,safado,darksta,surfer69,damian1,gjpbnbd,gunny1,wolley,sananton,zxcvbn123456,odt4p6sv8,sergei1,modem1,mansikka,zzzz1,rifraf,dima777,mary69,looking4,donttell,red100,ninjutsu,uaeuaeman,bigbri,brasco,queenas8151,demetri,angel007,bubbl,kolort,conny,antonia1,avtoritet,kaka22,kailayu,sassy2,wrongway,chevy3,
1nascar,patriots1,chrisrey,mike99,sexy22,chkdsk,sd3utre7,padawan,a6pihd,doming,mesohorny,tamada,donatello,emma22,eather,susan69,pinky123,stud69,fatbitch,pilsbury,thc420,lovepuss,
1creativ,golf1234,hurryup,
1honda,huskerdu,marino1,gowron,girl1,fucktoy,gtnhjpfdjlcr,dkjfghdk,pinkfl,loreli,
7777777s,donkeykong,rockytop,staples1,sone4ka,xxxjay,flywheel,toppdogg,bigbubba,aaa123456,
2letmein,shavkat,paule,dlanor,adamas,
0147852,aassaa,dixon1,bmw328,mother12,ilikepussy,holly2,tsmith,excaliber,fhutynbyf,nicole3,tulipan,emanue,flyvholm,currahee,godsgift,antonioj,torito,dinky1,sanna,yfcnzvjz,june14,anime123,
123321456654,hanswurst,bandman,hello101,xxxyyy,chevy69,technica,tagada,arnol,v00d00,lilone,filles,drumandbass,dinamit,a1234a,eatmeat,elway07,inout,james6,dawid1,thewolf,diapason,yodaddy,qscwdv,fuckit1,liljoe,sloeber,simbacat,sascha1,qwe1234,
1badger,prisca,angel17,gravedig,jakeyboy,longboard,truskawka,golfer11,pyramid7,highspee,pistola,theriver,hammer69,
1packers,dannyd,alfonse,qwertgfdsa,
11119999,basket1,ghjtrn,saralee,
12inches,paolo1,zse4xdr5,taproot,sophieh6,grizzlie,hockey69,danang,biggums,hotbitch,
5alive,beloved1,bluewave,dimon95,koketka,multiscan,littleb,leghorn,poker2,delite,skyfir,bigjake,persona1,amberdog,hannah12,derren,ziffle,
1sarah,
1assword,sparky01,seymur,tomtom1,
123321qw,goskins,soccer19,luvbekki,bumhole,
2balls,
1muffin,borodin,monkey9,yfeiybrb,
1alex,betmen,freder,nigger123,azizbek,gjkzrjdf,lilmike,
1bigdadd,
1rock,taganrog,snappy1,andrey1,kolonka,bunyan,gomango,vivia,clarkkent,satur,gaudeamus,mantaray,
1month,whitehea,fargus,andrew99,ray123,redhawks,liza2009,qw12345,den12345,vfhnsyjdf,
147258369a,mazepa,newyorke,
1arsenal,hondas2000,demona,fordgt,steve12,birthday2,
12457896,dickster,edcwsxqaz,sahalin,pantyman,skinny1,hubertus,cumshot1,chiro,kappaman,mark3434,canada12,lichking,bonkers1,ivan1985,sybase,valmet,doors1,deedlit,kyjelly,bdfysx,ford11,throatfuck,backwood,fylhsq,lalit,boss429,kotova,bricky,steveh,joshua19,kissa,imladris,star1234,lubimka,partyman,crazyd,tobias1,ilike69,imhome,whome,fourstar,scanner1,ujhjl312,anatoli,
85bears,jimbo69,
5678ytr,potapova,nokia7070,sunday1,kalleank,
1996gta,refinnej,july1,molodec,nothanks,enigm,
12play,sugardog,nhfkbdfkb,larousse,cannon1,
144444,qazxcdew,stimorol,jhereg,spawn7,
143000,fearme,hambur,merlin21,dobie,is3yeusc,partner1,dekal,varsha,
478jfszk,flavi,hippo1,
9hmlpyjd,july21,
7imjfstw,lexxus,truelov,nokia5200,carlos6,anais,mudbone,anahit,taylorc,tashas,larkspur,animal2000,nibiru,jan123,miyvarxar,deflep,dolore,communit,ifoptfcor,laura2,anadrol,mamaliga,mitzi1,blue92,april15,matveev,kajlas,wowlook1,
1flowers,shadow14,alucard1,
1golf,bantha,scotlan,singapur,mark13,manchester1,telus01,superdav,jackoff1,madnes,bullnuts,world123,clitty,palmer1,david10,spider10,sargsyan,rattlers,david4,windows2,sony12,visigoth,qqqaaa,penfloor,cabledog,camilla1,natasha123,eagleman,softcore,bobrov,dietmar,divad,sss123,d1234567,tlbyjhju,
1q1q1q1,paraiso,dav123,lfiekmrf,drachen,lzhan16889,tplate,gfghbrf,casio1,
123boots1,
123test,sys64738,heavymetal,andiamo,meduza,soarer,coco12,negrita,amigas,heavymet,bespin,
1asdfghj,wharfrat,wetsex,tight1,janus1,sword123,ladeda,dragon98,austin2,atep1,jungle1,
12345abcd,lexus300,pheonix1,alex1974,
123qw123,
137955,bigtim,shadow88,igor1994,goodjob,arzen,champ123,
121ebay,changeme1,brooksie,frogman1,buldozer,morrowin,achim,trish1,lasse,festiva,bubbaman,scottb,kramit,august22,tyson123,passsword,oompah,al123456,fucking1,green45,noodle1,looking1,ashlynn,al1716,stang50,coco11,greese,bob111,brennan1,jasonj,
1cherry,
1q2345,
1xxxxxxx,fifa2011,brondby,zachar1,satyam,easy1,magic7,
1rainbow,cheezit,
1eeeeeee,ashley123,assass1,amanda123,jerbear,
1bbbbbb,azerty12,
15975391,
654321z,twinturb,onlyone1,denis1988,
6846kg3r,jumbos,pennydog,dandelion,haileris,epervier,snoopy69,afrodite,oldpussy,green55,poopypan,verymuch,katyusha,recon7,mine69,tangos,contro,blowme2,jade1,skydive1,fiveiron,dimo4ka,bokser,stargirl,fordfocus,tigers2,platina,baseball11,raque,pimper,jawbreak,buster88,walter34,chucko,penchair,horizon1,thecure1,scc1975,adrianna1,kareta,duke12,krille,dumbfuck,cunt1,aldebaran,laverda,harumi,knopfler,pongo1,pfhbyf,dogman1,rossigno,
1hardon,scarlets,nuggets1,ibelieve,akinfeev,xfhkbr,athene,falcon69,happie,billly,nitsua,fiocco,qwerty09,gizmo2,slava2,
125690,doggy123,craigs,vader123,silkeborg,
124365,peterm,
123978,krakatoa,
123699,
123592,kgvebmqy,pensacol,d1d2d3,snowstor,goldenboy,gfg65h7,ev700,church1,orange11,g0dz1ll4,chester3,acheron,cynthi,hotshot1,jesuschris,motdepass,zymurgy,one2one,fietsbel,harryp,wisper,pookster,nn527hp,dolla,milkmaid,rustyboy,terrell1,epsilon1,lillian1,dale3,crhbgrf,maxsim,selecta,mamada,fatman1,ufkjxrf,shinchan,fuckuall,women1,
000008,bossss,greta1,rbhjxrf,mamasboy,purple69,felicidade,sexy21,cathay,hunglow,splatt,kahless,shopping1,
1gandalf,themis,delta7,moon69,blue24,parliame,mamma1,miyuki,
2500hd,jackmeof,razer,rocker1,juvis123,noremac,boing747,
9z5ve9rrcz,icewater,titania,alley1,moparman,christo1,oliver2,vinicius,tigerfan,chevyy,joshua99,doda99,matrixx,ekbnrf,jackfrost,viper01,kasia,cnfhsq,triton1,ssbt8ae2,rugby8,ramman,
1lucky,barabash,ghtlfntkm,junaid,apeshit,enfant,kenpo1,shit12,
007000,marge1,shadow10,qwerty789,richard8,vbitkm,lostboys,jesus4me,richard4,hifive,kolawole,damilola,prisma,paranoya,prince2,lisaann,happyness,cardss,methodma,supercop,a8kd47v5,gamgee,polly123,irene1,number8,hoyasaxa,
1digital,matthew0,dclxvi,lisica,roy123,
2468013579,sparda,queball,vaffanculo,pass1wor,repmvbx,
999666333,freedom8,botanik,
777555333,marcos1,lubimaya,flash2,einstei,
08080,
123456789j,
159951159,
159357123,carrot1,alina1995,sanjos,dilara,mustang67,wisteria,jhnjgtl12,
98766789,darksun,arxangel,
87062134,creativ1,malyshka,fuckthemall,barsic,rocksta,
2big4u,
5nizza,genesis2,romance1,ofcourse,
1horse,latenite,cubana,sactown,
789456123a,milliona,
61808861,
57699434,imperia,bubba11,yellow3,change12,
55495746,flappy,jimbo123,
19372846,
19380018,cutlass1,craig123,klepto,beagle1,solus,
51502112,pasha1,
19822891,
46466452,
19855891,petshop,nikolaevna,
119966,nokia6131,evenpar,hoosier1,contrasena,jawa350,gonzo123,mouse2,
115511,eetfuk,gfhfvgfvgfv,
1crystal,sofaking,coyote1,kwiatuszek,fhrflbq,valeria1,anthro,
0123654789,alltheway,zoltar,maasikas,wildchil,fredonia,earlgrey,gtnhjczy,matrix123,solid1,slavko,
12monkeys,fjdksl,inter1,nokia6500,
59382113kevinp,spuddy,cachero,coorslit,password!,kiba1z,karizma,vova1994,chicony,english1,bondra12,
1rocket,hunden,jimbob1,zpflhjn1,th0mas,deuce22,meatwad,fatfree,congas,sambora,cooper2,janne,clancy1,stonie,busta,kamaz,speedy2,jasmine3,fahayek,arsenal0,beerss,trixie1,boobs69,luansantana,toadman,control2,ewing33,maxcat,mama1964,diamond4,tabaco,joshua0,piper2,music101,guybrush,reynald,pincher,katiebug,starrs,pimphard,frontosa,alex97,cootie,clockwor,belluno,skyeseth,booty69,chaparra,boochie,green4,bobcat1,havok,saraann,pipeman,aekdb,jumpshot,wintermu,chaika,
1chester,rjnjatq,emokid,reset1,regal1,j0shua,
134679a,asmodey,sarahh,zapidoo,ciccione,sosexy,beckham23,hornets1,alex1971,delerium,manageme,connor11,
1rabbit,sane4ek,caseyboy,cbljhjdf,redsox20,tttttt99,haustool,ander,pantera6,passwd1,journey1,
9988776655,blue135,writerspace,xiaoyua123,justice2,niagra,cassis,scorpius,bpgjldsgjldthnf,gamemaster,bloody1,retrac,stabbin,toybox,fight1,ytpyf.,glasha,va2001,taylor11,shameles,ladylove,
10078,karmann,rodeos,eintritt,lanesra,tobasco,jnrhjqcz,navyman,pablit,leshka,jessica3,
123vika,alena1,platinu,ilford,storm7,undernet,sasha777,
1legend,anna2002,kanmax1994,porkpie,thunder0,gundog,pallina,easypass,duck1,supermom,roach1,twincam,
14028,tiziano,qwerty32,
123654789a,evropa,shampoo1,yfxfkmybr,cubby1,tsunami1,fktrcttdf,yasacrac,
17098,happyhap,bullrun,rodder,oaktown,holde,isbest,taylor9,reeper,hammer11,julias,rolltide1,compaq123,fourx4,subzero1,hockey9,
7mary3,busines,ybrbnjcbr,wagoneer,danniash,portishead,digitex,alex1981,david11,infidel,
1snoopy,free30,jaden,tonto1,redcar27,footie,moskwa,thomas21,hammer12,burzum,cosmo123,
50000,burltree,
54343,
54354,vwpassat,jack5225,cougars1,burlpony,blackhorse,alegna,petert,katemoss,ram123,nels0n,ferrina,angel77,cstock,
1christi,dave55,abc123a,alex1975,av626ss,flipoff,folgore,max1998,science1,si711ne,yams7,wifey1,sveiks,cabin1,volodia,ox3ford,cartagen,platini,picture1,sparkle1,tiedomi,service321,wooody,christi1,gnasher,brunob,hammie,iraffert,bot2010,dtcyeirf,
1234567890p,cooper11,alcoholi,savchenko,adam01,chelsea5,niewiem,icebear,lllooottt,ilovedick,sweetpus,money8,cookie13,rfnthbyf1988,booboo2,angus123,blockbus,david9,chica1,nazaret,samsung9,smile4u,daystar,skinnass,john10,thegirl,sexybeas,wasdwasd1,sigge1,
1qa2ws3ed4rf5tg,czarny,ripley1,chris5,ashley19,anitha,pokerman,prevert,trfnthby,tony69,georgia2,stoppedb,qwertyuiop12345,miniclip,franky1,durdom,cabbages,
1234567890o,delta5,liudmila,nhfycajhvths,court1,josiew,abcd1,doghead,diman,masiania,songline,boogle,triston,deepika,sexy4me,grapple,spacebal,ebonee,winter0,smokewee,nargiza,dragonla,sassys,andy2000,menards,yoshio,massive1,suckmy1k,passat99,sexybo,nastya1996,isdead,stratcat,hokuto,infix,pidoras,daffyduck,cumhard,baldeagl,kerberos,yardman,shibainu,guitare,cqub6553,tommyy,bk.irf,bigfoo,hecto,july27,james4,biggus,esbjerg,isgod,
1irish,phenmarr,jamaic,roma1990,diamond0,yjdbrjd,girls4me,tampa1,kabuto,vaduz,hanse,spieng,dianochka,csm101,lorna1,ogoshi,plhy6hql,
2wsx4rfv,cameron0,adebayo,oleg1996,sharipov,bouboule,hollister1,frogss,yeababy,kablam,adelante,memem,howies,thering,cecilia1,onetwo12,ojp123456,jordan9,msorcloledbr,neveraga,evh5150,redwin,
1august,canno,
1mercede,moody1,mudbug,chessmas,tiikeri,stickdaddy77,alex15,kvartira,
7654321a,lollol123,qwaszxedc,algore,solana,vfhbyfvfhbyf,blue72,misha1111,smoke20,junior13,mogli,threee,shannon2,fuckmylife,kevinh,saransk,karenw,isolde,sekirarr,orion123,thomas0,debra1,laketaho,alondra,curiva,jazz1234,
1tigers,jambos,lickme2,suomi,gandalf7,
028526,zygote,brett123,br1ttany,supafly,
159000,kingrat,luton1,cool-ca,bocman,thomasd,skiller,katter,mama777,chanc,tomass,
1rachel,oldno7,rfpfyjdf,bigkev,yelrah,primas,osito,kipper1,msvcr71,bigboy11,thesun,noskcaj,chicc,sonja1,lozinka,mobile1,
1vader,ummagumma,waves1,punter12,tubgtn,server1,irina1991,magic69,dak001,pandemonium,dead1,berlingo,cherrypi,
1montana,lohotron,chicklet,asdfgh123456,stepside,ikmvw103,icebaby,trillium,
1sucks,ukrnet,glock9,ab12345,thepower,robert8,thugstools,hockey13,buffon,livefree,sexpics,dessar,ja0000,rosenrot,james10,
1fish,svoloch,mykitty,muffin11,evbukb,shwing,artem1992,andrey1992,sheldon1,passpage,nikita99,fubar123,vannasx,eight888,marial,max2010,express2,violentj,
2ykn5ccf,spartan11,brenda69,jackiech,abagail,robin2,grass1,andy76,bell1,taison,superme,vika1995,xtr451,fred20,
89032073168,denis1984,
2000jeep,weetabix,
199020,daxter,tevion,panther8,h9iymxmc,bigrig,kalambur,tsalagi,
12213443,racecar02,jeffrey4,nataxa,bigsam,purgator,acuracl,troutbum,potsmoke,jimmyz,manutd1,nytimes,pureevil,bearss,cool22,dragonage,nodnarb,dbrbyu,
4seasons,freude,elric1,werule,hockey14,
12758698,corkie,yeahright,blademan,tafkap,clave,liziko,hofner,jeffhardy,nurich,runne,stanisla,lucy1,monk3y,forzaroma,eric99,bonaire,blackwoo,fengshui,
1qaz0okm,newmoney,pimpin69,
07078,anonymer,laptop1,cherry12,ace111,salsa1,wilbur1,doom12,diablo23,jgtxzbhr,under1,honda01,breadfan,megan2,juancarlos,stratus1,ackbar,love5683,happytim,lambert1,cbljhtyrj,komarov,spam69,nfhtkrf,brownn,sarmat,ifiksr,spike69,hoangen,angelz,economia,tanzen,avogadro,
1vampire,spanners,mazdarx,queequeg,oriana,hershil,sulaco,joseph11,
8seconds,aquariu,cumberla,heather9,anthony8,burton12,crystal0,maria3,qazwsxc,snow123,notgood,
198520,raindog,heehaw,consulta,dasein,miller01,cthulhu1,dukenuke,iubire,baytown,hatebree,
198505,sistem,lena12,welcome01,maraca,middleto,sindhu,mitsou,phoenix5,vovan,donaldo,dylandog,domovoy,lauren12,byrjuybnj,
123llll,stillers,sanchin,tulpan,smallvill,
1mmmmm,patti1,folgers,mike31,colts18,
123456rrr,njkmrjz,phoenix0,biene,ironcity,kasperok,password22,fitnes,matthew6,spotligh,bujhm123,tommycat,hazel5,guitar11,
145678,vfcmrf,compass1,willee,
1barney,jack2000,littleminge,shemp,derrek,xxx12345,littlefuck,spuds1,karolinka,camneely,qwertyu123,
142500,brandon00,munson15,falcon3,passssap,z3cn2erv,goahead,baggio10,
141592,denali1,
37kazoo,copernic,
123456789asd,orange88,bravada,rush211,
197700,pablo123,uptheass,samsam1,demoman,mattylad10,heydude,mister2,werken,
13467985,marantz,a22222,f1f2f3f4,fm12mn12,gerasimova,burrito1,sony1,glenny,baldeagle,rmfidd,fenomen,verbati,forgetme,
5element,wer138,chanel1,ooicu812,
10293847qp,minicooper,chispa,myturn,deisel,vthrehbq,boredboi4u,filatova,anabe,poiuyt1,barmalei,yyyy1,fourkids,naumenko,bangbros,pornclub,okaykk,euclid90,warrior3,kornet,palevo,patatina,gocart,antanta,jed1054,clock1,
111111w,dewars,mankind1,peugeot406,liten,tahira,howlin,naumov,rmracing,corone,cunthole,passit,rock69,jaguarxj,bumsen,
197101,sweet2,
197010,whitecat,sawadee,money100,yfhrjnbrb,andyboy,
9085603566,trace1,fagget,robot1,angel20,
6yhn7ujm,specialinsta,kareena,newblood,chingada,boobies2,bugger1,squad51,
133andre,call06,ashes1,ilovelucy,success2,kotton,cavalla,philou,deebee,theband,nine09,artefact,
196100,kkkkkkk1,nikolay9,onelov,basia,emilyann,sadman,fkrjujkbr,teamomuch,david777,padrino,money21,firdaus,orion3,chevy01,albatro,erdfcv,
2legit,sarah7,torock,kevinn,holio,soloy,enron714,starfleet,qwer11,neverman,doctorwh,lucy11,dino12,trinity7,seatleon,o123456,pimpman,
1asdfgh,snakebit,chancho,prorok,bleacher,ramire,darkseed,warhorse,michael123,
1spanky,
1hotdog,
34erdfcv,n0th1ng,dimanche,repmvbyf,michaeljackson,login1,icequeen,toshiro,sperme,racer2,veget,birthday26,daniel9,lbvekmrf,charlus,bryan123,wspanic,schreibe,
1andonly,dgoins,kewell,apollo12,egypt1,fernie,tiger21,aa123456789,blowj,spandau,bisquit,
12345678d,deadmau5,fredie,
311420,happyface,samant,gruppa,filmstar,andrew17,bakesale,sexy01,justlook,cbarkley,paul11,bloodred,rideme,birdbath,nfkbcvfy,jaxson,sirius1,kristof,virgos,nimrod1,hardc0re,killerbee,
1abcdef,pitcher1,justonce,vlada,dakota99,vespucci,wpass,outside1,puertori,rfvbkf,teamlosi,vgfun2,porol777,empire11,
20091989q,jasong,webuivalidat,escrima,lakers08,trigger2,addpass,
342500,mongini,dfhtybr,horndogg,palermo1,
136900,babyblu,alla98,dasha2010,jkelly,kernow,yfnecz,rockhopper,toeman,tlaloc,silver77,dave01,kevinr,
1234567887654321,
135642,me2you,
8096468644q,remmus,spider7,jamesa,jilly,samba1,drongo,
770129ji,supercat,juntas,tema1234,esthe,
1234567892000,drew11,qazqaz123,beegees,blome,rattrace,howhigh,tallboy,rufus2,sunny2,sou812,miller12,indiana7,irnbru,patch123,letmeon,welcome5,nabisco,
9hotpoin,hpvteb,lovinit,stormin,assmonke,trill,atlanti,money1234,cubsfan,mello1,stars2,ueptkm,agate,dannym88,lover123,wordz,worldnet,julemand,chaser1,s12345678,pissword,cinemax,woodchuc,point1,hotchkis,packers2,bananana,kalender,
420666,penguin8,awo8rx3wa8t,hoppie,metlife,ilovemyfamily,weihnachtsbau,pudding1,luckystr,scully1,fatboy1,amizade,dedham,jahbless,blaat,surrende,****er,
1panties,bigasses,ghjuhfvbcn,asshole123,dfktyrb,likeme,nickers,plastik,hektor,deeman,muchacha,cerebro,santana5,testdrive,dracula1,canalc,l1750sq,savannah1,murena,
1inside,pokemon00,
1iiiiiii,jordan20,sexual1,mailliw,calipso,
014702580369,
1zzzzzz,
1jjjjjj,break1,
15253545,yomama1,katinka,kevin11,
1ffffff,martijn,sslazio,daniel5,porno2,nosmas,leolion,jscript,
15975312,pundai,kelli1,kkkddd,obafgkm,marmaris,lilmama,london123,rfhfnt,elgordo,talk87,daniel7,thesims3,
444111,bishkek,afrika2002,toby22,
1speedy,daishi,
2children,afroman,qqqqwwww,oldskool,hawai,v55555,syndicat,pukimak,fanatik,tiger5,parker01,bri5kev6,timexx,wartburg,love55,ecosse,yelena03,madinina,highway1,uhfdbwfgf,karuna,buhjvfybz,wallie,
46and2,khalif,europ,qaz123wsx456,bobbybob,wolfone,falloutboy,manning18,scuba10,schnuff,ihateyou1,lindam,sara123,popcor,fallengun,divine1,montblanc,qwerty8,rooney10,roadrage,bertie1,latinus,lexusis,rhfvfnjhcr,opelgt,hitme,agatka,
1yamaha,dmfxhkju,imaloser,michell1,sb211st,silver22,lockedup,andrew9,monica01,sassycat,dsobwick,tinroof,ctrhtnyj,bultaco,rhfcyjzhcr,aaaassss,
14ss88,joanne1,momanddad,ahjkjdf,yelhsa,zipdrive,telescop,
500600,
1sexsex,facial1,motaro,
511647,stoner1,temujin,elephant1,greatman,honey69,kociak,ukqmwhj6,altezza,cumquat,zippos,kontiki,
123max,altec1,bibigon,tontos,qazsew,nopasaran,militar,supratt,oglala,kobayash,agathe,yawetag,dogs1,cfiekmrf,megan123,jamesdea,porosenok,tiger23,berger1,hello11,seemann,stunner1,walker2,imissu,jabari,minfd,lollol12,hjvfy,
1-oct,stjohns,
2278124q,
123456789qwer,alex1983,glowworm,chicho,mallards,bluedevil,explorer1,
543211,casita,
1time,lachesis,alex1982,airborn1,dubesor,changa,lizzie1,captaink,socool,bidule,march23,
1861brr,k.ljxrf,watchout,fotze,
1brian,keksa2,aaaa1122,matrim,providian,privado,dreame,merry1,aregdone,davidt,nounour,twenty2,play2win,artcast2,zontik,
552255,shit1,sluggy,
552861,dr8350,brooze,alpha69,thunder6,kamelia2011,caleb123,mmxxmm,jamesh,lfybkjd,
125267,
125000,
124536,bliss1,dddsss,indonesi,bob69,
123888,tgkbxfgy,gerar,themack,hijodeputa,good4now,ddd123,clk430,kalash,tolkien1,
132forever,blackb,whatis,s1s2s3s4,lolkin09,yamahar,
48n25rcc,djtiesto,
111222333444555,bigbull,blade55,coolbree,kelse,ichwill,yamaha12,sakic,bebeto,katoom,donke,sahar,wahine,
645202,god666,berni,starwood,june15,sonoio,time123,llbean,deadsoul,lazarev,cdtnf,ksyusha,madarchod,technik,jamesy,
4speed,tenorsax,legshow,yoshi1,chrisbl,
44e3ebda,trafalga,heather7,serafima,favorite4,havefun1,wolve,
55555r,james13,nosredna,bodean,jlettier,borracho,mickael,marinus,brutu,sweet666,kiborg,rollrock,jackson6,macross1,ousooner,
9085084232,takeme,
123qwaszx,firedept,vfrfhjd,jackfros,
123456789000,briane,cookie11,baby22,bobby18,gromova,systemofadown,martin01,silver01,pimaou,darthmaul,hijinx,commo,chech,skyman,sunse,
2vrd6,vladimirovna,uthvfybz,nicole01,kreker,bobo1,v123456789,erxtgb,meetoo,drakcap,vfvf12,misiek1,butane,network2,flyers99,riogrand,jennyk,e12345,spinne,avalon11,lovejone,studen,maint,porsche2,qwerty100,chamberl,bluedog1,sungam,just4u,andrew23,summer22,ludic,musiclover,aguil,beardog1,libertin,pippo1,joselit,patito,bigberth,digler,sydnee,jockstra,poopo,jas4an,nastya123,profil,fuesse,default1,titan2,mendoz,kpcofgs,anamika,brillo021,bomberman,guitar69,latching,
69pussy,blues2,phelge,ninja123,m7n56xo,qwertasd,alex1976,cunningh,estrela,gladbach,marillion,mike2000,
258046,bypop,muffinman,kd5396b,zeratul,djkxbwf,john77,sigma2,
1linda,selur,reppep,quartz1,teen1,freeclus,spook1,kudos4ever,clitring,sexiness,blumpkin,macbook,tileman,centra,escaflowne,pentable,shant,grappa,zverev,
1albert,lommerse,coffee11,
777123,polkilo,muppet1,alex74,lkjhgfdsazx,olesica,april14,ba25547,souths,jasmi,arashi,smile2,
2401pedro,mybabe,alex111,quintain,pimp1,tdeir8b2,makenna,
122333444455555,%e2%
82%ac,tootsie1,pass111,zaqxsw123,gkfdfybt,cnfnbcnbrf,usermane,iloveyou12,hard69,osasuna,firegod,arvind,babochka,kiss123,cookie123,julie123,kamakazi,dylan2,
223355,tanguy,nbhtqa,tigger13,tubby1,makavel,asdflkj,sambo1,mononoke,mickeys,gayguy,win123,green33,wcrfxtvgbjy,bigsmall,
1newlife,clove,babyfac,bigwaves,mama1970,shockwav,
1friday,bassey,yarddog,codered1,victory7,bigrick,kracker,gulfstre,chris200,sunbanna,bertuzzi,begemotik,kuolema,pondus,destinee,
123456789zz,abiodun,flopsy,amadeusptfcor,geronim,yggdrasi,contex,daniel6,suck1,adonis1,moorea,el345612,f22raptor,moviebuf,raunchy,
6043dkf,zxcvbnm123456789,eric11,deadmoin,ratiug,nosliw,fannies,danno,
888889,blank1,mikey2,gullit,thor99,mamiya,ollieb,thoth,dagger1,websolutionssu,bonker,prive,
1346798520,
03038,q1234q,mommy2,contax,zhipo,gwendoli,gothic1,
1234562000,lovedick,gibso,digital2,space199,b26354,
987654123,golive,serious1,pivkoo,better1,
824358553,
794613258,nata1980,logout,fishpond,buttss,squidly,good4me,redsox19,jhonny,zse45rdx,matrixxx,honey12,ramina,
213546879,motzart,fall99,newspape,killit,gimpy,photowiz,olesja,thebus,marco123,
147852963,bedbug,
147369258,hellbound,gjgjxrf,
123987456,lovehurt,five55,hammer01,
1234554321a,alina2011,peppino,ang238,questor,
112358132,alina1994,alina1998,money77,bobjones,aigerim,cressida,madalena,
420smoke,tinchair,raven13,mooser,mauric,lovebu,adidas69,krypton1,
1111112,loveline,divin,voshod,michaelm,cocotte,gbkbuhbv,
76689295,kellyj,rhonda1,sweetu70,steamforums,geeque,nothere,
124c41,quixotic,steam181,
1169900,rfcgthcrbq,rfvbkm,sexstuff,
1231230,djctvm,rockstar1,fulhamfc,bhecbr,rfntyf,quiksilv,
56836803,jedimaster,pangit,gfhjkm777,tocool,
1237654,stella12,
55378008,
19216811,potte,fender12,mortalkombat,ball1,nudegirl,palace22,rattrap,debeers,lickpussy,jimmy6,not4u2c,wert12,bigjuggs,sadomaso,
1357924,
312mas,laser123,arminia,branford,coastie,mrmojo,
19801982,scott11,banaan123,ingres,
300zxtt,hooters6,sweeties,
19821983,
19831985,
19833891,sinnfein,welcome4,winner69,killerman,tachyon,tigre1,nymets1,kangol,martinet,sooty1,
19921993,
789qwe,harsingh,
1597535,thecount,phantom3,
36985214,lukas123,
117711,pakistan1,madmax11,willow01,
19932916,fucker12,flhrci,opelagila,theword,ashley24,tigger3,crazyj,rapide,deadfish,allana,
31359092,sasha1993,sanders2,discman,zaq!
2wsx,boilerma,mickey69,jamesg,babybo,jackson9,orion7,alina2010,indien,breeze1,atease,warspite,bazongaz,
1celtic,asguard,mygal,fitzgera,
1secret,duke33,cyklone,dipascuc,potapov,
1escobar2,c0l0rad0,kki177hk,
1little,macondo,victoriya,peter7,red666,winston6,kl?benhavn,muneca,jackme,jennan,happylife,am4h39d8nh,bodybuil,
201980,dutchie,biggame,lapo4ka,rauchen,black10,flaquit,water12,
31021364,command2,lainth88,mazdamx5,typhon,colin123,rcfhlfc,qwaszx11,g0away,ramir,diesirae,hacked1,cessna1,woodfish,enigma2,pqnr67w5,odgez8j3,grisou,hiheels,
5gtgiaxm,
2580258,ohotnik,transits,quackers,serjik,makenzie,mdmgatew,bryana,superman12,melly,lokit,thegod,slickone,fun4all,netpass,penhorse,
1cooper,nsync,asdasd22,otherside,honeydog,herbie1,chiphi,proghouse,l0nd0n,shagg,select1,frost1996,casper123,countr,magichat,greatzyo,jyothi,
3bears,thefly,nikkita,fgjcnjk,nitros,hornys,san123,lightspe,maslova,kimber1,newyork2,spammm,mikejone,pumpk1n,bruiser1,bacons,prelude9,boodie,dragon4,kenneth2,love98,power5,yodude,pumba,thinline,blue30,sexxybj,
2dumb2live,matt21,forsale,
1carolin,innova,ilikeporn,rbgtkjd,a1s2d3f,wu9942,ruffus,blackboo,qwerty999,draco1,marcelin,hideki,gendalf,trevon,saraha,cartmen,yjhbkmcr,time2go,fanclub,ladder1,chinni,
6942987,united99,lindac,quadra,paolit,mainstre,beano002,lincoln7,bellend,anomie,
8520456,bangalor,goodstuff,chernov,stepashka,gulla,mike007,frasse,harley03,omnislash,
8538622,maryjan,sasha2011,gineok,
8807031,hornier,gopinath,princesit,bdr529,godown,bosslady,hakaone,
1qwe2,madman1,joshua11,lovegame,bayamon,jedi01,stupid12,sport123,aaa666,tony44,collect1,charliem,chimaira,cx18ka,trrim777,chuckd,thedream,redsox99,goodmorning,delta88,iloveyou11,newlife2,figvam,chicago3,jasonk,
12qwer,
9875321,lestat1,satcom,conditio,capri50,sayaka,
9933162,trunks1,chinga,snooch,alexand1,findus,poekie,cfdbyf,kevind,mike1969,fire13,leftie,bigtuna,chinnu,silence1,celos1,blackdra,alex24,gfgfif,
2boobs,happy8,enolagay,sataniv1993,turner1,dylans,peugeo,sasha1994,hoppel,conno,moonshot,santa234,meister1,
008800,hanako,tree123,qweras,gfitymrf,reggie31,august29,supert,joshua10,akademia,gbljhfc,zorro123,nathalia,redsox12,hfpdjl,mishmash,nokiae51,nyyankees,tu190022,strongbo,none1,not4u2no,katie2,popart,harlequi,santan,michal1,
1therock,screwu,csyekmrf,olemiss1,tyrese,hoople,sunshin1,cucina,starbase,topshelf,fostex,california1,castle1,symantec,pippolo,babare,turntabl,
1angela,moo123,ipvteb,gogolf,alex88,cycle1,maxie1,phase2,selhurst,furnitur,samfox,fromvermine,shaq34,gators96,captain2,delonge,tomatoe,bisous,zxcvbnma,glacius,pineapple1,cannelle,ganibal,mko09ijn,paraklast1974,hobbes12,petty43,artema,junior8,mylover,
1234567890d,fatal1ty,prostreet,peruan,
10020,nadya,caution1,marocas,chanel5,summer08,metal123,
111lox,scrapy,thatguy,eddie666,washingto,yannis,minnesota_hp,lucky4,playboy6,naumova,azzurro,patat,dale33,pa55wd,speedster,zemanova,saraht,newto,tony22,qscesz,arkady,
1oliver,death6,vkfwx046,antiflag,stangs,jzf7qf2e,brianp,fozzy,cody123,startrek1,yoda123,murciela,trabajo,lvbnhbtdf,canario,fliper,adroit,henry5,goducks,papirus,alskdj,soccer6,
88mike,gogetter,tanelorn,donking,marky1,leedsu,badmofo,al1916,wetdog,akmaral,pallet,april24,killer00,nesterova,rugby123,coffee12,browseui,ralliart,paigow,calgary1,armyman,vtldtltd,frodo2,frxtgb,iambigal,benno,jaytee,
2hot4you,askar,bigtee,brentwoo,palladin,eddie2,al1916w,horosho,entrada,ilovetits,venture1,dragon19,jayde,chuvak,jamesl,fzr600,brandon8,vjqvbh,snowbal,snatch1,bg6njokf,pudder,karolin,candoo,pfuflrf,satchel1,manteca,khongbiet,critter1,partridg,skyclad,bigdon,ginger69,brave1,anthony4,spinnake,chinadol,passout,cochino,nipples1,
15058,lopesk,sixflags,lloo999,parkhead,breakdance,cia123,fidodido,yuitre12,fooey,artem1995,gayathri,medin,nondriversig,l12345,bravo7,happy13,kazuya,camster,alex1998,luckyy,zipcode,dizzle,boating1,opusone,newpassw,movies23,kamikazi,zapato,bart316,cowboys0,corsair1,kingshit,hotdog12,rolyat,h200svrm,qwerty4,boofer,rhtyltkm,chris999,vaz21074,simferopol,pitboss,love3,britania,tanyshka,brause,
123qwerty123,abeille,moscow1,ilkaev,manut,process1,inetcfg,dragon05,fortknox,castill,rynner,mrmike,koalas,jeebus,stockpor,longman,juanpabl,caiman,roleplay,jeremi,
26058,prodojo,
002200,magical1,black5,bvlgari,doogie1,cbhtqa,mahina,a1s2d3f4g5h6,jblpro,usmc01,bismilah,guitar01,april9,santana1,
1234aa,monkey14,sorokin,evan1,doohan,animalsex,pfqxtyjr,dimitry,catchme,chello,silverch,glock45,dogleg,litespee,nirvana9,peyton18,alydar,warhamer,iluvme,sig229,minotavr,lobzik,jack23,bushwack,onlin,football123,joshua5,federov,winter2,bigmax,fufnfrhbcnb,hfpldfnhb,
1dakota,f56307,chipmonk,
4nick8,praline,vbhjh123,king11,
22tango,gemini12,street1,
77879,doodlebu,homyak,
165432,chuluthu,trixi,karlito,salom,reisen,cdtnkzxjr,pookie11,tremendo,shazaam,welcome0,
00000ty,peewee51,pizzle,gilead,bydand,sarvar,upskirt,legends1,freeway1,teenfuck,ranger9,darkfire,dfymrf,hunt0802,justme1,buffy1ma,
1harry,
671fsa75yt,burrfoot,budster,pa437tu,jimmyp,alina2006,malacon,charlize,elway1,free12,summer02,gadina,manara,gomer1,
1cassie,sanja,kisulya,money3,pujols,ford50,midiland,turga,orange6,demetriu,freakboy,orosie1,radio123,open12,vfufpby,mustek,chris33,animes,meiling,nthtvjr,jasmine9,gfdkjd,oligarh,marimar,chicago9,.kzirf,bugssgub,samuraix,jackie01,pimpjuic,macdad,cagiva,vernost,willyboy,fynjyjdf,tabby1,privet123,torres9,retype,blueroom,raven11,q12we3,alex1989,bringiton,ridered,kareltje,ow8jtcs8t,ciccia,goniners,countryb,
24688642,covingto,
24861793,beyblade,vikin,badboyz,wlafiga,walstib,mirand,needajob,chloes,balaton,kbpfdtnf,freyja,bond9007,gabriel12,stormbri,hollage,love4eve,fenomeno,darknite,dragstar,kyle123,milfhunter,ma123123123,samia,ghislain,enrique1,ferien12,xjy6721,natalie2,reglisse,wilson2,wesker,rosebud7,amazon1,robertr,roykeane,xtcnth,mamatata,crazyc,mikie,savanah,blowjob69,jackie2,forty1,
1coffee,fhbyjxrf,bubbah,goteam,hackedit,risky1,logoff,h397pnvr,buck13,robert23,bronc,st123st,godflesh,pornog,iamking,cisco69,septiembr,dale38,zhongguo,tibbar,panther9,buffa1,bigjohn1,mypuppy,vehvfycr,april16,shippo,fire1234,green15,q123123,gungadin,steveg,olivier1,chinaski,magnoli,faithy,storm12,toadfrog,paul99,
78791,august20,automati,squirtle,cheezy,positano,burbon,nunya,llebpmac,kimmi,turtle2,alan123,prokuror,violin1,durex,pussygal,visionar,trick1,chicken6,
29024,plowboy,rfybreks,imbue,sasha13,wagner1,vitalogy,cfymrf,thepro,
26028,gorbunov,dvdcom,letmein5,duder,fastfun,pronin,libra1,conner1,harley20,stinker1,
20068,
20038,amitech,syoung,dugway,
18068,welcome7,jimmypag,anastaci,kafka1,pfhfnecnhf,catsss,campus100,shamal,nacho1,fire12,vikings2,brasil1,rangerover,mohamma,peresvet,
14058,cocomo,aliona,
14038,qwaser,vikes,cbkmdf,skyblue1,ou81234,goodlove,dfkmltvfh,
108888,roamer,pinky2,static1,zxcv4321,barmen,rock22,shelby2,morgans,
1junior,pasword1,logjam,fifty5,nhfrnjhbcn,chaddy,philli,nemesis2,ingenier,djkrjd,ranger3,aikman8,knothead,daddy69,love007,vsythb,ford350,tiger00,renrut,owen11,energy12,march14,alena123,robert19,carisma,orange22,murphy11,podarok,prozak,kfgeirf,wolf13,lydia1,shazza,parasha,akimov,tobbie,pilote,heather4,baster,leones,gznfxjr,megama,
987654321g,bullgod,boxster1,minkey,wombats,vergil,colegiata,lincol,smoothe,pride1,carwash1,latrell,bowling3,fylhtq123,pickwick,eider,bubblebox,bunnies1,loquit,slipper1,nutsac,purina,xtutdfhf,plokiju,
1qazxs,uhjpysq,zxcvbasdfg,enjoy1,
1pumpkin,phantom7,mama22,swordsma,wonderbr,dogdays,milker,u23456,silvan,dfkthbr,slagelse,yeahman,twothree,boston11,wolf100,dannyg,troll1,fynjy123,ghbcnfd,bftest,ballsdeep,bobbyorr,alphasig,cccdemo,fire123,norwest,claire2,august10,lth1108,problemas,sapito,alex06,
1rusty,maccom,goirish1,ohyes,bxdumb,nabila,boobear1,rabbit69,princip,alexsander,travail,chantal1,dogggy,greenpea,diablo69,alex2009,bergen09,petticoa,classe,ceilidh,vlad2011,kamakiri,lucidity,qaz321,chileno,cexfhf,
99ranger,mcitra,estoppel,volvos60,carter80,webpass,temp12,touareg,fcgbhby,bubba8,sunitha,
200190ru,bitch2,shadow23,iluvit,nicole0,ruben1,nikki69,butttt,shocker1,souschef,lopotok01,kantot,corsano,cfnfyf,riverat,makalu,swapna,all4u9,cdtnkfy,ntktgepbr,ronaldo99,thomasj,bmw540i,chrisw,boomba,open321,z1x2c3v4b5n6m7,gaviota,iceman44,frosya,chris100,chris24,cosette,clearwat,micael,boogyman,pussy9,camus1,chumpy,heccrbq,konoplya,chester8,scooter5,ghjgfufylf,giotto,koolkat,zero000,bonita1,ckflrbq,j1964,mandog,
18n28n24a,renob,head1,shergar,ringo123,tanita,sex4free,johnny12,halberd,reddevils,biolog,dillinge,fatb0y,c00per,hyperlit,wallace2,spears1,vitamine,buheirf,sloboda,alkash,mooman,marion1,arsenal7,sunder,nokia5610,edifier,pippone,fyfnjkmtdbx,fujimo,pepsi12,kulikova,bolat,duetto,daimon,maddog01,timoshka,ezmoney,desdemon,chesters,aiden,hugues,patrick5,aikman08,robert4,roenick,nyranger,writer1,
36169544,foxmulder,
118801,kutter,shashank,jamjar,
118811,
119955,aspirina,dinkus,
1sailor,nalgene,
19891959,snarf,allie1,cracky,resipsa,
45678912,kemerovo,
19841989,netware1,alhimik,
19801984,nicole123,
19761977,
51501984,malaka1,montella,peachfuz,jethro1,cypress1,henkie,holdon,esmith,
55443322,
1friend,quique,bandicoot,statistika,great123,death13,ucht36,master4,
67899876,bobsmith,nikko1,jr1234,hillary1,
78978978,rsturbo,lzlzdfcz,bloodlust,shadow00,skagen,bambina,yummies,
88887777,
91328378,matthew4,itdoes,
98256518,
102938475,alina2002,
123123789,fubared,dannys,
123456321,nikifor,suck69,newmexico,scubaman,rhbcnb,fifnfy,puffdadd,
159357852,dtheyxbr,theman22,
212009164,prohor,shirle,nji90okm,newmedia,goose5,roma1995,letssee,iceman11,aksana,wirenut,pimpdady,
1212312121,tamplier,pelican1,domodedovo,
1928374655,fiction6,duckpond,ybrecz,thwack,onetwo34,gunsmith,murphydo,fallout1,spectre1,jabberwo,jgjesq,turbo6,bobo12,redryder,blackpus,elena1971,danilova,antoin,bobo1234,bobob,bobbobbo,dean1,
222222a,jesusgod,matt23,musical1,darkmage,loppol,werrew,josepha,rebel12,toshka,gadfly,hawkwood,alina12,dnomyar,sexaddict,dangit,cool23,yocrack,archimed,farouk,nhfkzkz,lindalou,
111zzzzz,ghjatccjh,wethepeople,m123456789,wowsers,kbkbxrf,bulldog5,m_roesel,sissinit,yamoon6,
123ewqasd,dangel,miruvor79,kaytee,falcon7,bandit11,dotnet,dannii,arsenal9,miatamx5,
1trouble,strip4me,dogpile,sexyred1,rjdfktdf,google10,shortman,crystal7,awesome123,cowdog,haruka,birthday28,jitter,diabolik,boomer12,dknight,bluewate,hockey123,crm0624,blueboys,willy123,jumpup,google2,cobra777,llabesab,vicelord,hopper1,gerryber,remmah,j10e5d4,qqqqqqw,agusti,fre_ak8yj,nahlik,redrobin,scott3,epson1,dumpy,bundao,aniolek,hola123,jergens,itsasecret,maxsam,bluelight,mountai1,bongwater,
1london,pepper14,freeuse,dereks,qweqw,fordgt40,rfhfdfy,raider12,hunnybun,compac,splicer,megamon,tuffgong,gymnast1,butter11,modaddy,wapbbs_1,dandelio,soccer77,ghjnbdjcnjzybt,
123xyi2,fishead,x002tp00,whodaman,
555aaa,oussama,brunodog,technici,pmtgjnbl,qcxdw8ry,schweden,redsox3,throbber,collecto,japan10,dbm123dm,hellhoun,tech1,deadzone,kahlan,wolf123,dethklok,xzsawq,bigguy1,cybrthc,chandle,buck01,qq123123,secreta,williams1,c32649135,delta12,flash33,
123joker,spacejam,polopo,holycrap,daman1,tummybed,financia,nusrat,euroline,magicone,jimkirk,ameritec,daniel26,sevenn,topazz,kingpins,dima1991,macdog,spencer5,oi812,geoffre,music11,baffle,
123569,usagi,cassiope,polla,lilcrowe,thecakeisalie,vbhjndjhtw,vthokies,oldmans,sophie01,ghoster,penny2,
129834,locutus1,meesha,magik,jerry69,daddysgirl,irondesk,andrey12,jasmine123,vepsrfyn,likesdick,
1accord,jetboat,grafix,tomuch,showit,protozoa,mosias98,taburetka,blaze420,esenin,anal69,zhv84kv,puissant,charles0,aishwarya,babylon6,bitter1,lenina,raleigh1,lechat,access01,kamilka,fynjy,sparkplu,daisy3112,choppe,zootsuit,
1234567j,rubyrose,gorilla9,nightshade,alternativa,cghfdjxybr,snuggles1,
10121v,vova1992,leonardo1,dave2,matthewd,vfhfnbr,
1986mets,nobull,bacall,mexican1,juanjo,mafia1,boomer22,soylent,edwards1,jordan10,blackwid,alex86,gemini13,lunar2,dctvcjcfnm,malaki,plugger,eagles11,snafu2,
1shelly,cintaku,hannah22,tbird1,maks5843,irish88,homer22,amarok,fktrcfylhjdf,lincoln2,acess,gre69kik,need4speed,hightech,core2duo,blunt1,ublhjgjybrf,dragon33,
1autopas,autopas1,wwww1,
15935746,daniel20,
2500aa,massim,
1ggggggg,
96ford,hardcor1,cobra5,blackdragon,vovan_lt,orochimaru,hjlbntkb,qwertyuiop12,tallen,paradoks,frozenfish,ghjuhfvvbcn,gerri1,nuggett,camilit,doright,trans1,serena1,catch2,bkmyeh,fireston,afhvfwtdn,purple3,figure8,fuckya,scamp1,laranja,ontheoutside,louis123,yellow7,moonwalk,mercury2,tolkein,raide,amenra,a13579,dranreb,
5150vh,harish,tracksta,sexking,ozzmosis,katiee,alomar,matrix19,headroom,jahlove,ringding,apollo8,
132546,
132613,
12345672000,saretta,
135798,
136666,thomas7,
136913,onetwothree,hockey33,calida,nefertit,bitwise,tailhook,boop4,kfgecbr,bujhmbujhm,metal69,thedark,meteoro,felicia1,house12,tinuviel,istina,vaz2105,pimp13,toolfan,nina1,tuesday2,maxmotives,lgkp500,locksley,treech,darling1,kurama,aminka,ramin,redhed,dazzler,jager1,stpiliot,cardman,rfvtym,cheeser,
14314314,paramoun,samcat,plumpy,stiffie,vsajyjr,panatha,qqq777,car12345,
098poi,asdzx,keegan1,furelise,kalifornia,vbhjckfd,beast123,zcfvfzkexifz,harry5,
1birdie,
96328i,escola,extra330,henry12,gfhfyjqz,
14u2nv,max1234,templar1,
1dave,
02588520,catrin,pangolin,marhaba,latin1,amorcito,dave22,escape1,advance1,yasuhiro,grepw,meetme,orange01,ernes,erdna,zsergn,nautica1,justinb,soundwav,miasma,greg78,nadine1,sexmad,lovebaby,promo1,excel1,babys,dragonma,camry1,sonnenschein,farooq,wazzkaprivet,magal,katinas,elvis99,redsox24,rooney1,chiefy,peggys,aliev,pilsung,mudhen,dontdoit,dennis12,supercal,energia,ballsout,funone,claudiu,brown2,amoco,dabl1125,philos,gjdtkbntkm,servette,
13571113,whizzer,nollie,
13467982,upiter,
12string,bluejay1,silkie,william4,kosta1,
143333,connor12,sustanon,
06068,corporat,ssnake,laurita,king10,tahoes,arsenal123,sapato,charless,jeanmarc,levent,algerie,marine21,jettas,winsome,dctvgbplf,
1701ab,xxxp455w0rd5,lllllll1,ooooooo1,monalis,koufax32,anastasya,debugger,sarita2,jason69,ufkxjyjr,gjlcnfdf,
1jerry,daniel10,balinor,sexkitten,death2,qwertasdfgzxcvb,s9te949f,vegeta1,sysman,maxxam,dimabilan,mooose,ilovetit,june23,illest,doesit,mamou,abby12,longjump,transalp,moderato,littleguy,magritte,dilnoza,hawaiiguy,winbig,nemiroff,kokaine,admira,myemail,dream2,browneyes,destiny7,dragonss,suckme1,asa123,andranik,suckem,fleshbot,dandie,timmys,scitra,timdog,hasbeen,guesss,smellyfe,arachne,deutschl,harley88,birthday27,nobody1,papasmur,home1,jonass,bunia3,epatb1,embalm,vfvekmrf,apacer,
12345656,estreet,weihnachtsbaum,mrwhite,admin12,kristie1,kelebek,yoda69,socken,tima123,bayern1,fktrcfylth,tamiya,
99strenght,andy01,denis2011,
19delta,stokecit,aotearoa,stalker2,nicnac,conrad1,popey,agusta,bowl36,
1bigfish,mossyoak,
1stunner,getinnow,jessejames,gkfnjy,drako,
1nissan,egor123,hotness,
1hawaii,zxc123456,cantstop,
1peaches,madlen,west1234,jeter1,markis,judit,attack1,artemi,silver69,
153246,crazy2,green9,yoshimi,
1vette,chief123,jasper2,
1sierra,twentyon,drstrang,aspirant,yannic,jenna123,bongtoke,slurpy,
1sugar,civic97,rusty21,shineon,james19,anna12345,wonderwoman,
1kevin,karol1,kanabis,wert21,fktif6115,evil1,kakaha,
54gv768,
826248s,tyrone1,
1winston,sugar2,falcon01,adelya,mopar440,zasxcd,leecher,kinkysex,mercede1,travka,
11234567,rebon,geekboy".split(","),
45637 english_wikipedia:"the,of,and,in,was,is,for,as,on,with,by,he,at,from,his,an,were,are,which,doc,https,also,or,has,had,first,one,their,its,after,new,who,they,two,her,she,been,other,when,time,during,there,into,school,more,may,years,over,only,year,most,would,world,city,some,where,between,later,three,state,such,then,national,used,made,known,under,many,university,united,while,part,season,team,these,american,than,film,second,born,south,became,states,war,through,being,including,both,before,north,high,however,people,family,early,history,album,area,them,series,against,until,since,district,county,name,work,life,group,music,following,number,company,several,four,called,played,released,career,league,game,government,house,each,based,day,same,won,use,station,club,international,town,located,population,general,college,east,found,age,march,end,september,began,home,public,church,line,june,river,member,system,place,century,band,july,york,january,october,song,august,best,former,british,party,named,held,village,show,local,november,took,service,december,built,another,major,within,along,members,five,single,due,although,small,old,left,final,large,include,building,served,president,received,games,death,february,main,third,set,children,own,order,species,park,law,air,published,road,died,book,men,women,army,often,according,education,central,country,division,english,top,included,development,french,community,among,water,play,side,list,times,near,late,form,original,different,center,power,led,students,german,moved,court,six,land,council,island,u.s.,record,million,research,art,established,award,street,military,television,given,region,support,western,production,non,political,point,cup,period,business,title,started,various,election,using,england,role,produced,become,program,works,field,total,office,class,written,association,radio,union,level,championship,director,few,force,created,department,founded,services,married,though,per,n't,site,open,act,short,society,version,royal,present,northern,worked,professional,full,returned,joined,story,france,european,currently,language,social,california,india,days,design,st.,further,round,australia,wrote,san,project,control,southern,railway,board,popular,continued,free,battle,considered,video,common,position,living,half,playing,recorded,red,post,described,average,records,special,modern,appeared,announced,areas,rock,release,elected,others,example,term,opened,similar,formed,route,census,current,schools,originally,lake,developed,race,himself,forces,addition,information,upon,province,match,event,songs,result,events,win,eastern,track,lead,teams,science,human,construction,minister,germany,awards,available,throughout,training,style,body,museum,australian,health,seven,signed,chief,eventually,appointed,sea,centre,debut,tour,points,media,light,range,character,across,features,families,largest,indian,network,less,performance,players,refer,europe,sold,festival,usually,taken,despite,designed,committee,process,return,official,episode,institute,stage,followed,performed,japanese,personal,thus,arts,space,low,months,includes,china,study,middle,magazine,leading,japan,groups,aircraft,featured,federal,civil,rights,model,coach,canadian,books,remained,eight,type,independent,completed,capital,academy,instead,kingdom,organization,countries,studies,competition,sports,size,above,section,finished,gold,involved,reported,management,systems,industry,directed,market,fourth,movement,technology,bank,ground,campaign,base,lower,sent,rather,added,provided,coast,grand,historic,valley,conference,bridge,winning,approximately,films,chinese,awarded,degree,russian,shows,native,female,replaced,municipality,square,studio,medical,data,african,successful,mid,bay,attack,previous,operations,spanish,theatre,student,republic,beginning,provide,ship,primary,owned,writing,tournament,culture,introduced,texas,related,natural,parts,governor,reached,ireland,units,senior,decided,italian,whose,higher,africa,standard,income,professor,placed,regional,los,buildings,championships,active,novel,energy,generally,interest,via,economic,previously,stated,itself,channel,below,operation,leader,traditional,trade,structure,limited,runs,prior,regular,famous,saint,navy,foreign,listed,artist,catholic,airport,results,parliament,collection,unit,officer,goal,attended,command,staff,commission,lived,location,plays,commercial,places,foundation,significant,older,medal,self,scored,companies,highway,activities,programs,wide,musical,notable,library,numerous,paris,towards,individual,allowed,plant,property,annual,contract,whom,highest,initially,required,earlier,assembly,artists,rural,seat,practice,defeated,ended,soviet,length,spent,manager,press,associated,author,issues,additional,characters,lord,zealand,policy,engine,township,noted,historical,complete,financial,religious,mission,contains,nine,recent,represented,pennsylvania,administration,opening,secretary,lines,report,executive,youth,closed,theory,writer,italy,angeles,appearance,feature,queen,launched,legal,terms,entered,issue,edition,singer,greek,majority,background,source,anti,cultural,complex,changes,recording,stadium,islands,operated,particularly,basketball,month,uses,port,castle,mostly,names,fort,selected,increased,status,earth,subsequently,pacific,cover,variety,certain,goals,remains,upper,congress,becoming,studied,irish,nature,particular,loss,caused,chart,dr.,forced,create,era,retired,material,review,rate,singles,referred,larger,individuals,shown,provides,products,speed,democratic,poland,parish,olympics,cities,themselves,temple,wing,genus,households,serving,cost,wales,stations,passed,supported,view,cases,forms,actor,male,matches,males,stars,tracks,females,administrative,median,effect,biography,train,engineering,camp,offered,chairman,houses,mainly,
19th,surface,therefore,nearly,score,ancient,subject,prime,seasons,claimed,experience,specific,jewish,failed,overall,believed,plot,troops,greater,spain,consists,broadcast,heavy,increase,raised,separate,campus,
1980s,appears,presented,lies,composed,recently,influence,fifth,nations,creek,references,elections,britain,double,cast,meaning,earned,carried,producer,latter,housing,brothers,attempt,article,response,border,remaining,nearby,direct,ships,value,workers,politician,academic,label,
1970s,commander,rule,fellow,residents,authority,editor,transport,dutch,projects,responsible,covered,territory,flight,races,defense,tower,emperor,albums,facilities,daily,stories,assistant,managed,primarily,quality,function,proposed,distribution,conditions,prize,journal,code,vice,newspaper,corps,highly,constructed,mayor,critical,secondary,corporation,rugby,regiment,ohio,appearances,serve,allow,nation,multiple,discovered,directly,scene,levels,growth,elements,acquired,
1990s,officers,physical,
20th,latin,host,jersey,graduated,arrived,issued,literature,metal,estate,vote,immediately,quickly,asian,competed,extended,produce,urban,
1960s,promoted,contemporary,global,formerly,appear,industrial,types,opera,ministry,soldiers,commonly,mass,formation,smaller,typically,drama,shortly,density,senate,effects,iran,polish,prominent,naval,settlement,divided,basis,republican,languages,distance,treatment,continue,product,mile,sources,footballer,format,clubs,leadership,initial,offers,operating,avenue,officially,columbia,grade,squadron,fleet,percent,farm,leaders,agreement,likely,equipment,website,mount,grew,method,transferred,intended,renamed,iron,asia,reserve,capacity,politics,widely,activity,advanced,relations,scottish,dedicated,crew,founder,episodes,lack,amount,build,efforts,concept,follows,ordered,leaves,positive,economy,entertainment,affairs,memorial,ability,illinois,communities,color,text,railroad,scientific,focus,comedy,serves,exchange,environment,cars,direction,organized,firm,description,agency,analysis,purpose,destroyed,reception,planned,revealed,infantry,architecture,growing,featuring,household,candidate,removed,situated,models,knowledge,solo,technical,organizations,assigned,conducted,participated,largely,purchased,register,gained,combined,headquarters,adopted,potential,protection,scale,approach,spread,independence,mountains,titled,geography,applied,safety,mixed,accepted,continues,captured,rail,defeat,principal,recognized,lieutenant,mentioned,semi,owner,joint,liberal,actress,traffic,creation,basic,notes,unique,supreme,declared,simply,plants,sales,massachusetts,designated,parties,jazz,compared,becomes,resources,titles,concert,learning,remain,teaching,versions,content,alongside,revolution,sons,block,premier,impact,champions,districts,generation,estimated,volume,image,sites,account,roles,sport,quarter,providing,zone,yard,scoring,classes,presence,performances,representatives,hosted,split,taught,origin,olympic,claims,critics,facility,occurred,suffered,municipal,damage,defined,resulted,respectively,expanded,platform,draft,opposition,expected,educational,ontario,climate,reports,atlantic,surrounding,performing,reduced,ranked,allows,birth,nominated,younger,newly,kong,positions,theater,philadelphia,heritage,finals,disease,sixth,laws,reviews,constitution,tradition,swedish,theme,fiction,rome,medicine,trains,resulting,existing,deputy,environmental,labour,classical,develop,fans,granted,receive,alternative,begins,nuclear,fame,buried,connected,identified,palace,falls,letters,combat,sciences,effort,villages,inspired,regions,towns,conservative,chosen,animals,labor,attacks,materials,yards,steel,representative,orchestra,peak,entitled,officials,returning,reference,northwest,imperial,convention,examples,ocean,publication,painting,subsequent,frequently,religion,brigade,fully,sides,acts,cemetery,relatively,oldest,suggested,succeeded,achieved,application,programme,cells,votes,promotion,graduate,armed,supply,flying,communist,figures,literary,netherlands,korea,worldwide,citizens,
1950s,faculty,draw,stock,seats,occupied,methods,unknown,articles,claim,holds,authorities,audience,sweden,interview,obtained,covers,settled,transfer,marked,allowing,funding,challenge,southeast,unlike,crown,rise,portion,transportation,sector,phase,properties,edge,tropical,standards,institutions,philosophy,legislative,hills,brand,fund,conflict,unable,founding,refused,attempts,metres,permanent,starring,applications,creating,effective,aired,extensive,employed,enemy,expansion,billboard,rank,battalion,multi,vehicle,fought,alliance,category,perform,federation,poetry,bronze,bands,entry,vehicles,bureau,maximum,billion,trees,intelligence,greatest,screen,refers,commissioned,gallery,injury,confirmed,setting,treaty,adult,americans,broadcasting,supporting,pilot,mobile,writers,programming,existence,squad,minnesota,copies,korean,provincial,sets,defence,offices,agricultural,internal,core,northeast,retirement,factory,actions,prevent,communications,ending,weekly,containing,functions,attempted,interior,weight,bowl,recognition,incorporated,increasing,ultimately,documentary,derived,attacked,lyrics,mexican,external,churches,centuries,metropolitan,selling,opposed,personnel,mill,visited,presidential,roads,pieces,norwegian,controlled,
18th,rear,influenced,wrestling,weapons,launch,composer,locations,developing,circuit,specifically,studios,shared,canal,wisconsin,publishing,approved,domestic,consisted,determined,comic,establishment,exhibition,southwest,fuel,electronic,cape,converted,educated,melbourne,hits,wins,producing,norway,slightly,occur,surname,identity,represent,constituency,funds,proved,links,structures,athletic,birds,contest,users,poet,institution,display,receiving,rare,contained,guns,motion,piano,temperature,publications,passenger,contributed,toward,cathedral,inhabitants,architect,exist,athletics,muslim,courses,abandoned,signal,successfully,disambiguation,tennessee,dynasty,heavily,maryland,jews,representing,budget,weather,missouri,introduction,faced,pair,chapel,reform,height,vietnam,occurs,motor,cambridge,lands,focused,sought,patients,shape,invasion,chemical,importance,communication,selection,regarding,homes,voivodeship,maintained,borough,failure,aged,passing,agriculture,oregon,teachers,flow,philippines,trail,seventh,portuguese,resistance,reaching,negative,fashion,scheduled,downtown,universities,trained,skills,scenes,views,notably,typical,incident,candidates,engines,decades,composition,commune,chain,inc.,austria,sale,values,employees,chamber,regarded,winners,registered,task,investment,colonial,swiss,user,entirely,flag,stores,closely,entrance,laid,journalist,coal,equal,causes,turkish,quebec,techniques,promote,junction,easily,dates,kentucky,singapore,residence,violence,advance,survey,humans,expressed,passes,streets,distinguished,qualified,folk,establish,egypt,artillery,visual,improved,actual,finishing,medium,protein,switzerland,productions,operate,poverty,neighborhood,organisation,consisting,consecutive,sections,partnership,extension,reaction,factor,costs,bodies,device,ethnic,racial,flat,objects,chapter,improve,musicians,courts,controversy,membership,merged,wars,expedition,interests,arab,comics,gain,describes,mining,bachelor,crisis,joining,decade,
1930s,distributed,habitat,routes,arena,cycle,divisions,briefly,vocals,directors,degrees,object,recordings,installed,adjacent,demand,voted,causing,businesses,ruled,grounds,starred,drawn,opposite,stands,formal,operates,persons,counties,compete,wave,israeli,ncaa,resigned,brief,greece,combination,demographics,historian,contain,commonwealth,musician,collected,argued,louisiana,session,cabinet,parliamentary,electoral,loan,profit,regularly,conservation,islamic,purchase,
17th,charts,residential,earliest,designs,paintings,survived,moth,items,goods,grey,anniversary,criticism,images,discovery,observed,underground,progress,additionally,participate,thousands,reduce,elementary,owners,stating,iraq,resolution,capture,tank,rooms,hollywood,finance,queensland,reign,maintain,iowa,landing,broad,outstanding,circle,path,manufacturing,assistance,sequence,gmina,crossing,leads,universal,shaped,kings,attached,medieval,ages,metro,colony,affected,scholars,oklahoma,coastal,soundtrack,painted,attend,definition,meanwhile,purposes,trophy,require,marketing,popularity,cable,mathematics,mississippi,represents,scheme,appeal,distinct,factors,acid,subjects,roughly,terminal,economics,senator,diocese,prix,contrast,argentina,czech,wings,relief,stages,duties,
16th,novels,accused,whilst,equivalent,charged,measure,documents,couples,request,danish,defensive,guide,devices,statistics,credited,tries,passengers,allied,frame,puerto,peninsula,concluded,instruments,wounded,differences,associate,forests,afterwards,replace,requirements,aviation,solution,offensive,ownership,inner,legislation,hungarian,contributions,actors,translated,denmark,steam,depending,aspects,assumed,injured,severe,admitted,determine,shore,technique,arrival,measures,translation,debuted,delivered,returns,rejected,separated,visitors,damaged,storage,accompanied,markets,industries,losses,gulf,charter,strategy,corporate,socialist,somewhat,significantly,physics,mounted,satellite,experienced,constant,relative,pattern,restored,belgium,connecticut,partners,harvard,retained,networks,protected,mode,artistic,parallel,collaboration,debate,involving,journey,linked,salt,authors,components,context,occupation,requires,occasionally,policies,tamil,ottoman,revolutionary,hungary,poem,versus,gardens,amongst,audio,makeup,frequency,meters,orthodox,continuing,suggests,legislature,coalition,guitarist,eighth,classification,practices,soil,tokyo,instance,limit,coverage,considerable,ranking,colleges,cavalry,centers,daughters,twin,equipped,broadway,narrow,hosts,rates,domain,boundary,arranged,
12th,whereas,brazilian,forming,rating,strategic,competitions,trading,covering,baltimore,commissioner,infrastructure,origins,replacement,praised,disc,collections,expression,ukraine,driven,edited,austrian,solar,ensure,premiered,successor,wooden,operational,hispanic,concerns,rapid,prisoners,childhood,meets,influential,tunnel,employment,tribe,qualifying,adapted,temporary,celebrated,appearing,increasingly,depression,adults,cinema,entering,laboratory,script,flows,romania,accounts,fictional,pittsburgh,achieve,monastery,franchise,formally,tools,newspapers,revival,sponsored,processes,vienna,springs,missions,classified,
13th,annually,branches,lakes,gender,manner,advertising,normally,maintenance,adding,characteristics,integrated,decline,modified,strongly,critic,victims,malaysia,arkansas,nazi,restoration,powered,monument,hundreds,depth,
15th,controversial,admiral,criticized,brick,honorary,initiative,output,visiting,birmingham,progressive,existed,carbon,
1920s,credits,colour,rising,hence,defeating,superior,filmed,listing,column,surrounded,orleans,principles,territories,struck,participation,indonesia,movements,index,commerce,conduct,constitutional,spiritual,ambassador,vocal,completion,edinburgh,residing,tourism,finland,bears,medals,resident,themes,visible,indigenous,involvement,basin,electrical,ukrainian,concerts,boats,styles,processing,rival,drawing,vessels,experimental,declined,touring,supporters,compilation,coaching,cited,dated,roots,string,explained,transit,traditionally,poems,minimum,representation,
14th,releases,effectively,architectural,triple,indicated,greatly,elevation,clinical,printed,
10th,proposal,peaked,producers,romanized,rapidly,stream,innings,meetings,counter,householder,honour,lasted,agencies,document,exists,surviving,experiences,honors,landscape,hurricane,harbor,panel,competing,profile,vessel,farmers,lists,revenue,exception,customers,
11th,participants,wildlife,utah,bible,gradually,preserved,replacing,symphony,begun,longest,siege,provinces,mechanical,genre,transmission,agents,executed,videos,benefits,funded,rated,instrumental,ninth,similarly,dominated,destruction,passage,technologies,thereafter,outer,facing,affiliated,opportunities,instrument,governments,scholar,evolution,channels,shares,sessions,widespread,occasions,engineers,scientists,signing,battery,competitive,alleged,eliminated,supplies,judges,hampshire,regime,portrayed,penalty,taiwan,denied,submarine,scholarship,substantial,transition,victorian,http,nevertheless,filed,supports,continental,tribes,ratio,doubles,useful,honours,blocks,principle,retail,departure,ranks,patrol,yorkshire,vancouver,inter,extent,afghanistan,strip,railways,component,organ,symbol,categories,encouraged,abroad,civilian,periods,traveled,writes,struggle,immediate,recommended,adaptation,egyptian,graduating,assault,drums,nomination,historically,voting,allies,detailed,achievement,percentage,arabic,assist,frequent,toured,apply,and/or,intersection,maine,touchdown,throne,produces,contribution,emerged,obtain,archbishop,seek,researchers,remainder,populations,clan,finnish,overseas,fifa,licensed,chemistry,festivals,mediterranean,injuries,animated,seeking,publisher,volumes,limits,venue,jerusalem,generated,trials,islam,youngest,ruling,glasgow,germans,songwriter,persian,municipalities,donated,viewed,belgian,cooperation,posted,tech,dual,volunteer,settlers,commanded,claiming,approval,delhi,usage,terminus,partly,electricity,locally,editions,premiere,absence,belief,traditions,statue,indicate,manor,stable,attributed,possession,managing,viewers,chile,overview,seed,regulations,essential,minority,cargo,segment,endemic,forum,deaths,monthly,playoffs,erected,practical,machines,suburb,relation,mrs.,descent,indoor,continuous,characterized,solutions,caribbean,rebuilt,serbian,summary,contested,psychology,pitch,attending,muhammad,tenure,drivers,diameter,assets,venture,punk,airlines,concentration,athletes,volunteers,pages,mines,influences,sculpture,protest,ferry,behalf,drafted,apparent,furthermore,ranging,romanian,democracy,lanka,significance,linear,d.c.,certified,voters,recovered,tours,demolished,boundaries,assisted,identify,grades,elsewhere,mechanism,
1940s,reportedly,aimed,conversion,suspended,photography,departments,beijing,locomotives,publicly,dispute,magazines,resort,conventional,platforms,internationally,capita,settlements,dramatic,derby,establishing,involves,statistical,implementation,immigrants,exposed,diverse,layer,vast,ceased,connections,belonged,interstate,uefa,organised,abuse,deployed,cattle,partially,filming,mainstream,reduction,automatic,rarely,subsidiary,decides,merger,comprehensive,displayed,amendment,guinea,exclusively,manhattan,concerning,commons,radical,serbia,baptist,buses,initiated,portrait,harbour,choir,citizen,sole,unsuccessful,manufactured,enforcement,connecting,increases,patterns,sacred,muslims,clothing,hindu,unincorporated,sentenced,advisory,tanks,campaigns,fled,repeated,remote,rebellion,implemented,texts,fitted,tribute,writings,sufficient,ministers,
21st,devoted,jurisdiction,coaches,interpretation,pole,businessman,peru,sporting,prices,cuba,relocated,opponent,arrangement,elite,manufacturer,responded,suitable,distinction,calendar,dominant,tourist,earning,prefecture,ties,preparation,anglo,pursue,worship,archaeological,chancellor,bangladesh,scores,traded,lowest,horror,outdoor,biology,commented,specialized,loop,arriving,farming,housed,historians,'the,patent,pupils,christianity,opponents,athens,northwestern,maps,promoting,reveals,flights,exclusive,lions,norfolk,hebrew,extensively,eldest,shops,acquisition,virtual,renowned,margin,ongoing,essentially,iranian,alternate,sailed,reporting,conclusion,originated,temperatures,exposure,secured,landed,rifle,framework,identical,martial,focuses,topics,ballet,fighters,belonging,wealthy,negotiations,evolved,bases,oriented,acres,democrat,heights,restricted,vary,graduation,aftermath,chess,illness,participating,vertical,collective,immigration,demonstrated,leaf,completing,organic,missile,leeds,eligible,grammar,confederate,improvement,congressional,wealth,cincinnati,spaces,indicates,corresponding,reaches,repair,isolated,taxes,congregation,ratings,leagues,diplomatic,submitted,winds,awareness,photographs,maritime,nigeria,accessible,animation,restaurants,philippine,inaugural,dismissed,armenian,illustrated,reservoir,speakers,programmes,resource,genetic,interviews,camps,regulation,computers,preferred,travelled,comparison,distinctive,recreation,requested,southeastern,dependent,brisbane,breeding,playoff,expand,bonus,gauge,departed,qualification,inspiration,shipping,slaves,variations,shield,theories,munich,recognised,emphasis,favour,variable,seeds,undergraduate,territorial,intellectual,qualify,mini,banned,pointed,democrats,assessment,judicial,examination,attempting,objective,partial,characteristic,hardware,pradesh,execution,ottawa,metre,drum,exhibitions,withdrew,attendance,phrase,journalism,logo,measured,error,christians,trio,protestant,theology,respective,atmosphere,buddhist,substitute,curriculum,fundamental,outbreak,rabbi,intermediate,designation,globe,liberation,simultaneously,diseases,experiments,locomotive,difficulties,mainland,nepal,relegated,contributing,database,developments,veteran,carries,ranges,instruction,lodge,protests,obama,newcastle,experiment,physician,describing,challenges,corruption,delaware,adventures,ensemble,succession,renaissance,tenth,altitude,receives,approached,crosses,syria,croatia,warsaw,professionals,improvements,worn,airline,compound,permitted,preservation,reducing,printing,scientist,activist,comprises,sized,societies,enters,ruler,gospel,earthquake,extend,autonomous,croatian,serial,decorated,relevant,ideal,grows,grass,tier,towers,wider,welfare,columns,alumni,descendants,interface,reserves,banking,colonies,manufacturers,magnetic,closure,pitched,vocalist,preserve,enrolled,cancelled,equation,
2000s,nickname,bulgaria,heroes,exile,mathematical,demands,input,structural,tube,stem,approaches,argentine,axis,manuscript,inherited,depicted,targets,visits,veterans,regard,removal,efficiency,organisations,concepts,lebanon,manga,petersburg,rally,supplied,amounts,yale,tournaments,broadcasts,signals,pilots,azerbaijan,architects,enzyme,literacy,declaration,placing,batting,incumbent,bulgarian,consistent,poll,defended,landmark,southwestern,raid,resignation,travels,casualties,prestigious,namely,aims,recipient,warfare,readers,collapse,coached,controls,volleyball,coup,lesser,verse,pairs,exhibited,proteins,molecular,abilities,integration,consist,aspect,advocate,administered,governing,hospitals,commenced,coins,lords,variation,resumed,canton,artificial,elevated,palm,difficulty,civic,efficient,northeastern,inducted,radiation,affiliate,boards,stakes,byzantine,consumption,freight,interaction,oblast,numbered,seminary,contracts,extinct,predecessor,bearing,cultures,functional,neighboring,revised,cylinder,grants,narrative,reforms,athlete,tales,reflect,presidency,compositions,specialist,cricketer,founders,sequel,widow,disbanded,associations,backed,thereby,pitcher,commanding,boulevard,singers,crops,militia,reviewed,centres,waves,consequently,fortress,tributary,portions,bombing,excellence,nest,payment,mars,plaza,unity,victories,scotia,farms,nominations,variant,attacking,suspension,installation,graphics,estates,comments,acoustic,destination,venues,surrender,retreat,libraries,quarterback,customs,berkeley,collaborated,gathered,syndrome,dialogue,recruited,shanghai,neighbouring,psychological,saudi,moderate,exhibit,innovation,depot,binding,brunswick,situations,certificate,actively,shakespeare,editorial,presentation,ports,relay,nationalist,methodist,archives,experts,maintains,collegiate,bishops,maintaining,temporarily,embassy,essex,wellington,connects,reformed,bengal,recalled,inches,doctrine,deemed,legendary,reconstruction,statements,palestinian,meter,achievements,riders,interchange,spots,auto,accurate,chorus,dissolved,missionary,thai,operators,e.g.,generations,failing,delayed,cork,nashville,perceived,venezuela,cult,emerging,tomb,abolished,documented,gaining,canyon,episcopal,stored,assists,compiled,kerala,kilometers,mosque,grammy,theorem,unions,segments,glacier,arrives,theatrical,circulation,conferences,chapters,displays,circular,authored,conductor,fewer,dimensional,nationwide,liga,yugoslavia,peer,vietnamese,fellowship,armies,regardless,relating,dynamic,politicians,mixture,serie,somerset,imprisoned,posts,beliefs,beta,layout,independently,electronics,provisions,fastest,logic,headquartered,creates,challenged,beaten,appeals,plains,protocol,graphic,accommodate,iraqi,midfielder,span,commentary,freestyle,reflected,palestine,lighting,burial,virtually,backing,prague,tribal,heir,identification,prototype,criteria,dame,arch,tissue,footage,extending,procedures,predominantly,updated,rhythm,preliminary,cafe,disorder,prevented,suburbs,discontinued,retiring,oral,followers,extends,massacre,journalists,conquest,larvae,pronounced,behaviour,diversity,sustained,addressed,geographic,restrictions,voiced,milwaukee,dialect,quoted,grid,nationally,nearest,roster,twentieth,separation,indies,manages,citing,intervention,guidance,severely,migration,artwork,focusing,rivals,trustees,varied,enabled,committees,centered,skating,slavery,cardinals,forcing,tasks,auckland,youtube,argues,colored,advisor,mumbai,requiring,theological,registration,refugees,nineteenth,survivors,runners,colleagues,priests,contribute,variants,workshop,concentrated,creator,lectures,temples,exploration,requirement,interactive,navigation,companion,perth,allegedly,releasing,citizenship,observation,stationed,ph.d.,sheep,breed,discovers,encourage,kilometres,journals,performers,isle,saskatchewan,hybrid,hotels,lancashire,dubbed,airfield,anchor,suburban,theoretical,sussex,anglican,stockholm,permanently,upcoming,privately,receiver,optical,highways,congo,colours,aggregate,authorized,repeatedly,varies,fluid,innovative,transformed,praise,convoy,demanded,discography,attraction,export,audiences,ordained,enlisted,occasional,westminster,syrian,heavyweight,bosnia,consultant,eventual,improving,aires,wickets,epic,reactions,scandal,i.e.,discrimination,buenos,patron,investors,conjunction,testament,construct,encountered,celebrity,expanding,georgian,brands,retain,underwent,algorithm,foods,provision,orbit,transformation,associates,tactical,compact,varieties,stability,refuge,gathering,moreover,manila,configuration,gameplay,discipline,entity,comprising,composers,skill,monitoring,ruins,museums,sustainable,aerial,altered,codes,voyage,friedrich,conflicts,storyline,travelling,conducting,merit,indicating,referendum,currency,encounter,particles,automobile,workshops,acclaimed,inhabited,doctorate,cuban,phenomenon,dome,enrollment,tobacco,governance,trend,equally,manufacture,hydrogen,grande,compensation,download,pianist,grain,shifted,neutral,evaluation,define,cycling,seized,array,relatives,motors,firms,varying,automatically,restore,nicknamed,findings,governed,investigate,manitoba,administrator,vital,integral,indonesian,confusion,publishers,enable,geographical,inland,naming,civilians,reconnaissance,indianapolis,lecturer,deer,tourists,exterior,rhode,bassist,symbols,scope,ammunition,yuan,poets,punjab,nursing,cent,developers,estimates,presbyterian,nasa,holdings,generate,renewed,computing,cyprus,arabia,duration,compounds,gastropod,permit,valid,touchdowns,facade,interactions,mineral,practiced,allegations,consequence,goalkeeper,baronet,copyright,uprising,carved,targeted,competitors,mentions,sanctuary,fees,pursued,tampa,chronicle,capabilities,specified,specimens,toll,accounting,limestone,staged,upgraded,philosophical,streams,guild,revolt,rainfall,supporter,princeton,terrain,hometown,probability,assembled,paulo,surrey,voltage,developer,destroyer,floors,lineup,curve,prevention,potentially,onwards,trips,imposed,hosting,striking,strict,admission,apartments,solely,utility,proceeded,observations,euro,incidents,vinyl,profession,haven,distant,expelled,rivalry,runway,torpedo,zones,shrine,dimensions,investigations,lithuania,idaho,pursuit,copenhagen,considerably,locality,wireless,decrease,genes,thermal,deposits,hindi,habitats,withdrawn,biblical,monuments,casting,plateau,thesis,managers,flooding,assassination,acknowledged,interim,inscription,guided,pastor,finale,insects,transported,activists,marshal,intensity,airing,cardiff,proposals,lifestyle,prey,herald,capitol,aboriginal,measuring,lasting,interpreted,occurring,desired,drawings,healthcare,panels,elimination,oslo,ghana,blog,sabha,intent,superintendent,governors,bankruptcy,p.m.,equity,disk,layers,slovenia,prussia,quartet,mechanics,graduates,politically,monks,screenplay,nato,absorbed,topped,petition,bold,morocco,exhibits,canterbury,publish,rankings,crater,dominican,enhanced,planes,lutheran,governmental,joins,collecting,brussels,unified,streak,strategies,flagship,surfaces,oval,archive,etymology,imprisonment,instructor,noting,remix,opposing,servant,rotation,width,trans,maker,synthesis,excess,tactics,snail,ltd.,lighthouse,sequences,cornwall,plantation,mythology,performs,foundations,populated,horizontal,speedway,activated,performer,diving,conceived,edmonton,subtropical,environments,prompted,semifinals,caps,bulk,treasury,recreational,telegraph,continent,portraits,relegation,catholics,graph,velocity,rulers,endangered,secular,observer,learns,inquiry,idol,dictionary,certification,estimate,cluster,armenia,observatory,revived,nadu,consumers,hypothesis,manuscripts,contents,arguments,editing,trails,arctic,essays,belfast,acquire,promotional,undertaken,corridor,proceedings,antarctic,millennium,labels,delegates,vegetation,acclaim,directing,substance,outcome,diploma,philosopher,malta,albanian,vicinity,degc,legends,regiments,consent,terrorist,scattered,presidents,gravity,orientation,deployment,duchy,refuses,estonia,crowned,separately,renovation,rises,wilderness,objectives,agreements,empress,slopes,inclusion,equality,decree,ballot,criticised,rochester,recurring,struggled,disabled,henri,poles,prussian,convert,bacteria,poorly,sudan,geological,wyoming,consistently,minimal,withdrawal,interviewed,proximity,repairs,initiatives,pakistani,republicans,propaganda,viii,abstract,commercially,availability,mechanisms,naples,discussions,underlying,lens,proclaimed,advised,spelling,auxiliary,attract,lithuanian,editors,o'brien,accordance,measurement,novelist,ussr,formats,councils,contestants,indie,facebook,parishes,barrier,battalions,sponsor,consulting,terrorism,implement,uganda,crucial,unclear,notion,distinguish,collector,attractions,filipino,ecology,investments,capability,renovated,iceland,albania,accredited,scouts,armor,sculptor,cognitive,errors,gaming,condemned,successive,consolidated,baroque,entries,regulatory,reserved,treasurer,variables,arose,technological,rounded,provider,rhine,agrees,accuracy,genera,decreased,frankfurt,ecuador,edges,particle,rendered,calculated,careers,faction,rifles,americas,gaelic,portsmouth,resides,merchants,fiscal,premises,coin,draws,presenter,acceptance,ceremonies,pollution,consensus,membrane,brigadier,nonetheless,genres,supervision,predicted,magnitude,finite,differ,ancestry,vale,delegation,removing,proceeds,placement,emigrated,siblings,molecules,payments,considers,demonstration,proportion,newer,valve,achieving,confederation,continuously,luxury,notre,introducing,coordinates,charitable,squadrons,disorders,geometry,winnipeg,ulster,loans,longtime,receptor,preceding,belgrade,mandate,wrestler,neighbourhood,factories,buddhism,imported,sectors,protagonist,steep,elaborate,prohibited,artifacts,prizes,pupil,cooperative,sovereign,subspecies,carriers,allmusic,nationals,settings,autobiography,neighborhoods,analog,facilitate,voluntary,jointly,newfoundland,organizing,raids,exercises,nobel,machinery,baltic,crop,granite,dense,websites,mandatory,seeks,surrendered,anthology,comedian,bombs,slot,synopsis,critically,arcade,marking,equations,halls,indo,inaugurated,embarked,speeds,clause,invention,premiership,likewise,presenting,demonstrate,designers,organize,examined,km/h,bavaria,troop,referee,detection,zurich,prairie,rapper,wingspan,eurovision,luxembourg,slovakia,inception,disputed,mammals,entrepreneur,makers,evangelical,yield,clergy,trademark,defunct,allocated,depicting,volcanic,batted,conquered,sculptures,providers,reflects,armoured,locals,walt,herzegovina,contracted,entities,sponsorship,prominence,flowing,ethiopia,marketed,corporations,withdraw,carnegie,induced,investigated,portfolio,flowering,opinions,viewing,classroom,donations,bounded,perception,leicester,fruits,charleston,academics,statute,complaints,smallest,deceased,petroleum,resolved,commanders,algebra,southampton,modes,cultivation,transmitter,spelled,obtaining,sizes,acre,pageant,bats,abbreviated,correspondence,barracks,feast,tackles,raja,derives,geology,disputes,translations,counted,constantinople,seating,macedonia,preventing,accommodation,homeland,explored,invaded,provisional,transform,sphere,unsuccessfully,missionaries,conservatives,highlights,traces,organisms,openly,dancers,fossils,absent,monarchy,combining,lanes,stint,dynamics,chains,missiles,screening,module,tribune,generating,miners,nottingham,seoul,unofficial,owing,linking,rehabilitation,citation,louisville,mollusk,depicts,differential,zimbabwe,kosovo,recommendations,responses,pottery,scorer,aided,exceptions,dialects,telecommunications,defines,elderly,lunar,coupled,flown,
25th,espn,formula_1,bordered,fragments,guidelines,gymnasium,valued,complexity,papal,presumably,maternal,challenging,reunited,advancing,comprised,uncertain,favorable,twelfth,correspondent,nobility,livestock,expressway,chilean,tide,researcher,emissions,profits,lengths,accompanying,witnessed,itunes,drainage,slope,reinforced,feminist,sanskrit,develops,physicians,outlets,isbn,coordinator,averaged,termed,occupy,diagnosed,yearly,humanitarian,prospect,spacecraft,stems,enacted,linux,ancestors,karnataka,constitute,immigrant,thriller,ecclesiastical,generals,celebrations,enhance,heating,advocated,evident,advances,bombardment,watershed,shuttle,wicket,twitter,adds,branded,teaches,schemes,pension,advocacy,conservatory,cairo,varsity,freshwater,providence,seemingly,shells,cuisine,specially,peaks,intensive,publishes,trilogy,skilled,nacional,unemployment,destinations,parameters,verses,trafficking,determination,infinite,savings,alignment,linguistic,countryside,dissolution,measurements,advantages,licence,subfamily,highlands,modest,regent,algeria,crest,teachings,knockout,brewery,combine,conventions,descended,chassis,primitive,fiji,explicitly,cumberland,uruguay,laboratories,bypass,elect,informal,preceded,holocaust,tackle,minneapolis,quantity,securities,console,doctoral,religions,commissioners,expertise,unveiled,precise,diplomat,standings,infant,disciplines,sicily,endorsed,systematic,charted,armored,mild,lateral,townships,hurling,prolific,invested,wartime,compatible,galleries,moist,battlefield,decoration,convent,tubes,terrestrial,nominee,requests,delegate,leased,dubai,polar,applying,addresses,munster,sings,commercials,teamed,dances,eleventh,midland,cedar,flee,sandstone,snails,inspection,divide,asset,themed,comparable,paramount,dairy,archaeology,intact,institutes,rectangular,instances,phases,reflecting,substantially,applies,vacant,lacked,copa,coloured,encounters,sponsors,encoded,possess,revenues,ucla,chaired,a.m.,enabling,playwright,stoke,sociology,tibetan,frames,motto,financing,illustrations,gibraltar,chateau,bolivia,transmitted,enclosed,persuaded,urged,folded,suffolk,regulated,bros.,submarines,myth,oriental,malaysian,effectiveness,narrowly,acute,sunk,replied,utilized,tasmania,consortium,quantities,gains,parkway,enlarged,sided,employers,adequate,accordingly,assumption,ballad,mascot,distances,peaking,saxony,projected,affiliation,limitations,metals,guatemala,scots,theaters,kindergarten,verb,employer,differs,discharge,controller,seasonal,marching,guru,campuses,avoided,vatican,maori,excessive,chartered,modifications,caves,monetary,sacramento,mixing,institutional,celebrities,irrigation,shapes,broadcaster,anthem,attributes,demolition,offshore,specification,surveys,yugoslav,contributor,auditorium,lebanese,capturing,airports,classrooms,chennai,paths,tendency,determining,lacking,upgrade,sailors,detected,kingdoms,sovereignty,freely,decorative,momentum,scholarly,georges,gandhi,speculation,transactions,undertook,interact,similarities,cove,teammate,constituted,painters,tends,madagascar,partnerships,afghan,personalities,attained,rebounds,masses,synagogue,reopened,asylum,embedded,imaging,catalogue,defenders,taxonomy,fiber,afterward,appealed,communists,lisbon,rica,judaism,adviser,batsman,ecological,commands,lgbt,cooling,accessed,wards,shiva,employs,thirds,scenic,worcester,tallest,contestant,humanities,economist,textile,constituencies,motorway,tram,percussion,cloth,leisure,
1880s,baden,flags,resemble,riots,coined,sitcom,composite,implies,daytime,tanzania,penalties,optional,competitor,excluded,steering,reversed,autonomy,reviewer,breakthrough,professionally,damages,pomeranian,deputies,valleys,ventures,highlighted,electorate,mapping,shortened,executives,tertiary,specimen,launching,bibliography,sank,pursuing,binary,descendant,marched,natives,ideology,turks,adolf,archdiocese,tribunal,exceptional,nigerian,preference,fails,loading,comeback,vacuum,favored,alter,remnants,consecrated,spectators,trends,patriarch,feedback,paved,sentences,councillor,astronomy,advocates,broader,commentator,commissions,identifying,revealing,theatres,incomplete,enables,constituent,reformation,tract,haiti,atmospheric,screened,explosive,czechoslovakia,acids,symbolic,subdivision,liberals,incorporate,challenger,erie,filmmaker,laps,kazakhstan,organizational,evolutionary,chemicals,dedication,riverside,fauna,moths,maharashtra,annexed,gen.,resembles,underwater,garnered,timeline,remake,suited,educator,hectares,automotive,feared,latvia,finalist,narrator,portable,airways,plaque,designing,villagers,licensing,flank,statues,struggles,deutsche,migrated,cellular,jacksonville,wimbledon,defining,highlight,preparatory,planets,cologne,employ,frequencies,detachment,readily,libya,resign,halt,helicopters,reef,landmarks,collaborative,irregular,retaining,helsinki,folklore,weakened,viscount,interred,professors,memorable,mega,repertoire,rowing,dorsal,albeit,progressed,operative,coronation,liner,telugu,domains,philharmonic,detect,bengali,synthetic,tensions,atlas,dramatically,paralympics,xbox,shire,kiev,lengthy,sued,notorious,seas,screenwriter,transfers,aquatic,pioneers,unesco,radius,abundant,tunnels,syndicated,inventor,accreditation,janeiro,exeter,ceremonial,omaha,cadet,predators,resided,prose,slavic,precision,abbot,deity,engaging,cambodia,estonian,compliance,demonstrations,protesters,reactor,commodore,successes,chronicles,mare,extant,listings,minerals,tonnes,parody,cultivated,traders,pioneering,supplement,slovak,preparations,collision,partnered,vocational,atoms,malayalam,welcomed,documentation,curved,functioning,presently,formations,incorporates,nazis,botanical,nucleus,ethical,greeks,metric,automated,whereby,stance,europeans,duet,disability,purchasing,email,telescope,displaced,sodium,comparative,processor,inning,precipitation,aesthetic,import,coordination,feud,alternatively,mobility,tibet,regained,succeeding,hierarchy,apostolic,catalog,reproduction,inscriptions,vicar,clusters,posthumously,rican,loosely,additions,photographic,nowadays,selective,derivative,keyboards,guides,collectively,affecting,combines,operas,networking,decisive,terminated,continuity,finishes,ancestor,consul,heated,simulation,leipzig,incorporating,georgetown,formula_2,circa,forestry,portrayal,councillors,advancement,complained,forewings,confined,transaction,definitions,reduces,televised,
1890s,rapids,phenomena,belarus,alps,landscapes,quarterly,specifications,commemorate,continuation,isolation,antenna,downstream,patents,ensuing,tended,saga,lifelong,columnist,labeled,gymnastics,papua,anticipated,demise,encompasses,madras,antarctica,interval,icon,rams,midlands,ingredients,priory,strengthen,rouge,explicit,gaza,aging,securing,anthropology,listeners,adaptations,underway,vista,malay,fortified,lightweight,violations,concerto,financed,jesuit,observers,trustee,descriptions,nordic,resistant,opted,accepts,prohibition,andhra,inflation,negro,wholly,imagery,spur,instructed,gloucester,cycles,middlesex,destroyers,statewide,evacuated,hyderabad,peasants,mice,shipyard,coordinate,pitching,colombian,exploring,numbering,compression,countess,hiatus,exceed,raced,archipelago,traits,soils,o'connor,vowel,android,facto,angola,amino,holders,logistics,circuits,emergence,kuwait,partition,emeritus,outcomes,submission,promotes,barack,negotiated,loaned,stripped,
50th,excavations,treatments,fierce,participant,exports,decommissioned,cameo,remarked,residences,fuselage,mound,undergo,quarry,node,midwest,specializing,occupies,etc.,showcase,molecule,offs,modules,salon,exposition,revision,peers,positioned,hunters,competes,algorithms,reside,zagreb,calcium,uranium,silicon,airs,counterpart,outlet,collectors,sufficiently,canberra,inmates,anatomy,ensuring,curves,aviv,firearms,basque,volcano,thrust,sheikh,extensions,installations,aluminum,darker,sacked,emphasized,aligned,asserted,pseudonym,spanning,decorations,eighteenth,orbital,spatial,subdivided,notation,decay,macedonian,amended,declining,cyclist,feat,unusually,commuter,birthplace,latitude,activation,overhead,
30th,finalists,whites,encyclopedia,tenor,qatar,survives,complement,concentrations,uncommon,astronomical,bangalore,pius,genome,memoir,recruit,prosecutor,modification,paired,container,basilica,arlington,displacement,germanic,mongolia,proportional,debates,matched,calcutta,rows,tehran,aerospace,prevalent,arise,lowland,
24th,spokesman,supervised,advertisements,clash,tunes,revelation,wanderers,quarterfinals,fisheries,steadily,memoirs,pastoral,renewable,confluence,acquiring,strips,slogan,upstream,scouting,analyst,practitioners,turbine,strengthened,heavier,prehistoric,plural,excluding,isles,persecution,turin,rotating,villain,hemisphere,unaware,arabs,corpus,relied,singular,unanimous,schooling,passive,angles,dominance,instituted,aria,outskirts,balanced,beginnings,financially,structured,parachute,viewer,attitudes,subjected,escapes,derbyshire,erosion,addressing,styled,declaring,originating,colts,adjusted,stained,occurrence,fortifications,baghdad,nitrogen,localities,yemen,galway,debris,lodz,victorious,pharmaceutical,substances,unnamed,dwelling,atop,developmental,activism,voter,refugee,forested,relates,overlooking,genocide,kannada,insufficient,oversaw,partisan,dioxide,recipients,factions,mortality,capped,expeditions,receptors,reorganized,prominently,atom,flooded,flute,orchestral,scripts,mathematician,airplay,detached,rebuilding,dwarf,brotherhood,salvation,expressions,arabian,cameroon,poetic,recruiting,bundesliga,inserted,scrapped,disabilities,evacuation,pasha,undefeated,crafts,rituals,aluminium,norm,pools,submerged,occupying,pathway,exams,prosperity,wrestlers,promotions,basal,permits,nationalism,trim,merge,gazette,tributaries,transcription,caste,porto,emerge,modeled,adjoining,counterparts,paraguay,redevelopment,renewal,unreleased,equilibrium,similarity,minorities,soviets,comprise,nodes,tasked,unrelated,expired,johan,precursor,examinations,electrons,socialism,exiled,admiralty,floods,wigan,nonprofit,lacks,brigades,screens,repaired,hanover,fascist,labs,osaka,delays,judged,statutory,colt,col.,offspring,solving,bred,assisting,retains,somalia,grouped,corresponds,tunisia,chaplain,eminent,chord,
22nd,spans,viral,innovations,possessions,mikhail,kolkata,icelandic,implications,introduces,racism,workforce,alto,compulsory,admits,censorship,onset,reluctant,inferior,iconic,progression,liability,turnout,satellites,behavioral,coordinated,exploitation,posterior,averaging,fringe,krakow,mountainous,greenwich,para,plantations,reinforcements,offerings,famed,intervals,constraints,individually,nutrition,
1870s,taxation,threshold,tomatoes,fungi,contractor,ethiopian,apprentice,diabetes,wool,gujarat,honduras,norse,bucharest,
23rd,arguably,accompany,prone,teammates,perennial,vacancy,polytechnic,deficit,okinawa,functionality,reminiscent,tolerance,transferring,myanmar,concludes,neighbours,hydraulic,economically,slower,plots,charities,synod,investor,catholicism,identifies,bronx,interpretations,adverse,judiciary,hereditary,nominal,sensor,symmetry,cubic,triangular,tenants,divisional,outreach,representations,passages,undergoing,cartridge,testified,exceeded,impacts,limiting,railroads,defeats,regain,rendering,humid,retreated,reliability,governorate,antwerp,infamous,implied,packaging,lahore,trades,billed,extinction,ecole,rejoined,recognizes,projection,qualifications,stripes,forts,socially,lexington,accurately,sexuality,westward,wikipedia,pilgrimage,abolition,choral,stuttgart,nests,expressing,strikeouts,assessed,monasteries,reconstructed,humorous,marxist,fertile,consort,urdu,patronage,peruvian,devised,lyric,baba,nassau,communism,extraction,popularly,markings,inability,litigation,accounted,processed,emirates,tempo,cadets,eponymous,contests,broadly,oxide,courtyard,frigate,directory,apex,outline,regency,chiefly,patrols,secretariat,cliffs,residency,privy,armament,australians,dorset,geometric,genetics,scholarships,fundraising,flats,demographic,multimedia,captained,documentaries,updates,canvas,blockade,guerrilla,songwriting,administrators,intake,drought,implementing,fraction,cannes,refusal,inscribed,meditation,announcing,exported,ballots,formula_3,curator,basel,arches,flour,subordinate,confrontation,gravel,simplified,berkshire,patriotic,tuition,employing,servers,castile,posting,combinations,discharged,miniature,mutations,constellation,incarnation,ideals,necessity,granting,ancestral,crowds,pioneered,mormon,methodology,rama,indirect,complexes,bavarian,patrons,uttar,skeleton,bollywood,flemish,viable,bloc,breeds,triggered,sustainability,tailed,referenced,comply,takeover,latvian,homestead,platoon,communal,nationality,excavated,targeting,sundays,posed,physicist,turret,endowment,marginal,dispatched,commentators,renovations,attachment,collaborations,ridges,barriers,obligations,shareholders,prof.,defenses,presided,rite,backgrounds,arbitrary,affordable,gloucestershire,thirteenth,inlet,miniseries,possesses,detained,pressures,subscription,realism,solidarity,proto,postgraduate,noun,burmese,abundance,homage,reasoning,anterior,robust,fencing,shifting,vowels,garde,profitable,loch,anchored,coastline,samoa,terminology,prostitution,magistrate,venezuelan,speculated,regulate,fixture,colonists,digit,induction,manned,expeditionary,computational,centennial,principally,vein,preserving,engineered,numerical,cancellation,conferred,continually,borne,seeded,advertisement,unanimously,treaties,infections,ions,sensors,lowered,amphibious,lava,fourteenth,bahrain,niagara,nicaragua,squares,congregations,
26th,periodic,proprietary,
1860s,contributors,seller,overs,emission,procession,presumed,illustrator,zinc,gases,tens,applicable,stretches,reproductive,sixteenth,apparatus,accomplishments,canoe,guam,oppose,recruitment,accumulated,limerick,namibia,staging,remixes,ordnance,uncertainty,pedestrian,temperate,treason,deposited,registry,cerambycidae,attracting,lankan,reprinted,shipbuilding,homosexuality,neurons,eliminating,
1900s,resume,ministries,beneficial,blackpool,surplus,northampton,licenses,constructing,announcer,standardized,alternatives,taipei,inadequate,failures,yields,medalist,titular,obsolete,torah,burlington,predecessors,lublin,retailers,castles,depiction,issuing,gubernatorial,propulsion,tiles,damascus,discs,alternating,pomerania,peasant,tavern,redesignated,
27th,illustration,focal,mans,codex,specialists,productivity,antiquity,controversies,promoter,pits,companions,behaviors,lyrical,prestige,creativity,swansea,dramas,approximate,feudal,tissues,crude,campaigned,unprecedented,chancel,amendments,surroundings,allegiance,exchanges,align,firmly,optimal,commenting,reigning,landings,obscure,
1850s,contemporaries,paternal,devi,endurance,communes,incorporation,denominations,exchanged,routing,resorts,amnesty,slender,explores,suppression,heats,pronunciation,centred,coupe,stirling,freelance,treatise,linguistics,laos,informs,discovering,pillars,encourages,halted,robots,definitive,maturity,tuberculosis,venetian,silesian,unchanged,originates,mali,lincolnshire,quotes,seniors,premise,contingent,distribute,danube,gorge,logging,dams,curling,seventeenth,specializes,wetlands,deities,assess,thickness,rigid,culminated,utilities,substrate,insignia,nile,assam,shri,currents,suffrage,canadians,mortar,asteroid,bosnian,discoveries,enzymes,sanctioned,replica,hymn,investigators,tidal,dominate,derivatives,converting,leinster,verbs,honoured,criticisms,dismissal,discrete,masculine,reorganization,unlimited,wurttemberg,sacks,allocation,bahn,jurisdictions,participates,lagoon,famine,communion,culminating,surveyed,shortage,cables,intersects,cassette,foremost,adopting,solicitor,outright,bihar,reissued,farmland,dissertation,turnpike,baton,photographed,christchurch,kyoto,finances,rails,histories,linebacker,kilkenny,accelerated,dispersed,handicap,absorption,rancho,ceramic,captivity,cites,font,weighed,mater,utilize,bravery,extract,validity,slovenian,seminars,discourse,ranged,duel,ironically,warships,sega,temporal,surpassed,prolonged,recruits,northumberland,greenland,contributes,patented,eligibility,unification,discusses,reply,translates,beirut,relies,torque,northward,reviewers,monastic,accession,neural,tramway,heirs,sikh,subscribers,amenities,taliban,audit,rotterdam,wagons,kurdish,favoured,combustion,meanings,persia,browser,diagnostic,niger,formula_4,denomination,dividing,parameter,branding,badminton,leningrad,sparked,hurricanes,beetles,propeller,mozambique,refined,diagram,exhaust,vacated,readings,markers,reconciliation,determines,concurrent,imprint,primera,organism,demonstrating,filmmakers,vanderbilt,affiliates,traction,evaluated,defendants,megachile,investigative,zambia,assassinated,rewarded,probable,staffordshire,foreigners,directorate,nominees,consolidation,commandant,reddish,differing,unrest,drilling,bohemia,resembling,instrumentation,considerations,haute,promptly,variously,dwellings,clans,tablet,enforced,cockpit,semifinal,hussein,prisons,ceylon,emblem,monumental,phrases,correspond,crossover,outlined,characterised,acceleration,caucus,crusade,protested,composing,rajasthan,habsburg,rhythmic,interception,inherent,cooled,ponds,spokesperson,gradual,consultation,kuala,globally,suppressed,builders,avengers,suffix,integer,enforce,fibers,unionist,proclamation,uncovered,infrared,adapt,eisenhower,utilizing,captains,stretched,observing,assumes,prevents,analyses,saxophone,caucasus,notices,villains,dartmouth,mongol,hostilities,stretching,veterinary,lenses,texture,prompting,overthrow,excavation,islanders,masovian,battleship,biographer,replay,degradation,departing,luftwaffe,fleeing,oversight,immigrated,serbs,fishermen,strengthening,respiratory,italians,denotes,radial,escorted,motif,wiltshire,expresses,accessories,reverted,establishments,inequality,protocols,charting,famously,satirical,entirety,trench,friction,atletico,sampling,subset,weekday,upheld,sharply,correlation,incorrect,mughal,travelers,hasan,earnings,offset,evaluate,specialised,recognizing,flexibility,nagar,postseason,algebraic,capitalism,crystals,melodies,polynomial,racecourse,defences,austro,wembley,attracts,anarchist,resurrection,reviewing,decreasing,prefix,ratified,mutation,displaying,separating,restoring,assemblies,ordinance,priesthood,cruisers,appoint,moldova,imports,directive,epidemic,militant,senegal,signaling,restriction,critique,retrospective,nationalists,undertake,sioux,canals,algerian,redesigned,philanthropist,depict,conceptual,turbines,intellectuals,eastward,applicants,contractors,vendors,undergone,namesake,ensured,tones,substituted,hindwings,arrests,tombs,transitional,principality,reelection,taiwanese,cavity,manifesto,broadcasters,spawned,thoroughbred,identities,generators,proposes,hydroelectric,johannesburg,cortex,scandinavian,killings,aggression,boycott,catalyst,physiology,fifteenth,waterfront,chromosome,organist,costly,calculation,cemeteries,flourished,recognise,juniors,merging,disciples,ashore,workplace,enlightenment,diminished,debated,hailed,podium,educate,mandated,distributor,litre,electromagnetic,flotilla,estuary,peterborough,staircase,selections,melodic,confronts,wholesale,integrate,intercepted,catalonia,unite,immense,palatinate,switches,earthquakes,occupational,successors,praising,concluding,faculties,firstly,overhaul,empirical,metacritic,inauguration,evergreen,laden,winged,philosophers,amalgamated,geoff,centimeters,napoleonic,upright,planting,brewing,fined,sensory,migrants,wherein,inactive,headmaster,warwickshire,siberia,terminals,denounced,academia,divinity,bilateral,clive,omitted,peerage,relics,apartheid,syndicate,fearing,fixtures,desirable,dismantled,ethnicity,valves,biodiversity,aquarium,ideological,visibility,creators,analyzed,tenant,balkan,postwar,supplier,smithsonian,risen,morphology,digits,bohemian,wilmington,vishnu,demonstrates,aforementioned,biographical,mapped,khorasan,phosphate,presentations,ecosystem,processors,calculations,mosaic,clashes,penned,recalls,coding,angular,lattice,macau,accountability,extracted,pollen,therapeutic,overlap,violinist,deposed,candidacy,infants,covenant,bacterial,restructuring,dungeons,ordination,conducts,builds,invasive,customary,concurrently,relocation,cello,statutes,borneo,entrepreneurs,sanctions,packet,rockefeller,piedmont,comparisons,waterfall,receptions,glacial,surge,signatures,alterations,advertised,enduring,somali,botanist,
100th,canonical,motifs,longitude,circulated,alloy,indirectly,margins,preserves,internally,besieged,shale,peripheral,drained,baseman,reassigned,tobago,soloist,socio,grazing,contexts,roofs,portraying,ottomans,shrewsbury,noteworthy,lamps,supplying,beams,qualifier,portray,greenhouse,stronghold,hitter,rites,cretaceous,urging,derive,nautical,aiming,fortunes,verde,donors,reliance,exceeding,exclusion,exercised,simultaneous,continents,guiding,pillar,gradient,poznan,eruption,clinics,moroccan,indicator,trams,piers,parallels,fragment,teatro,potassium,satire,compressed,businessmen,influx,seine,perspectives,shelters,decreases,mounting,formula_5,confederacy,equestrian,expulsion,mayors,liberia,resisted,affinity,shrub,unexpectedly,stimulus,amtrak,deported,perpendicular,statesman,wharf,storylines,romanesque,weights,surfaced,interceptions,dhaka,crambidae,orchestras,rwanda,conclude,constitutes,subsidiaries,admissions,prospective,shear,bilingual,campaigning,presiding,domination,commemorative,trailing,confiscated,petrol,acquisitions,polymer,onlyinclude,chloride,elevations,resolutions,hurdles,pledged,likelihood,objected,erect,encoding,databases,aristotle,hindus,marshes,bowled,ministerial,grange,acronym,annexation,squads,ambient,pilgrims,botany,sofla,astronomer,planetary,descending,bestowed,ceramics,diplomacy,metabolism,colonization,potomac,africans,engraved,recycling,commitments,resonance,disciplinary,jamaican,narrated,spectral,tipperary,waterford,stationary,arbitration,transparency,threatens,crossroads,slalom,oversee,centenary,incidence,economies,livery,moisture,newsletter,autobiographical,bhutan,propelled,dependence,moderately,adobe,barrels,subdivisions,outlook,labelled,stratford,arising,diaspora,barony,automobiles,ornamental,slated,norms,primetime,generalized,analysts,vectors,libyan,yielded,certificates,rooted,vernacular,belarusian,marketplace,prediction,fairfax,malawi,viruses,wooded,demos,mauritius,prosperous,coincided,liberties,huddersfield,ascent,warnings,hinduism,glucose,pulitzer,unused,filters,illegitimate,acquitted,protestants,canopy,staple,psychedelic,winding,abbas,pathways,cheltenham,lagos,niche,invaders,proponents,barred,conversely,doncaster,recession,embraced,rematch,concession,emigration,upgrades,bowls,tablets,remixed,loops,kensington,shootout,monarchs,organizers,harmful,punjabi,broadband,exempt,neolithic,profiles,portrays,parma,cyrillic,quasi,attested,regimental,revive,torpedoes,heidelberg,rhythms,spherical,denote,hymns,icons,theologian,qaeda,exceptionally,reinstated,comune,playhouse,lobbying,grossing,viceroy,delivers,visually,armistice,utrecht,syllable,vertices,analogous,annex,refurbished,entrants,knighted,disciple,rhetoric,detailing,inactivated,ballads,algae,intensified,favourable,sanitation,receivers,pornography,commemorated,cannons,entrusted,manifold,photographers,pueblo,textiles,steamer,myths,marquess,onward,liturgical,romney,uzbekistan,consistency,denoted,hertfordshire,convex,hearings,sulfur,universidad,podcast,selecting,emperors,arises,justices,
1840s,mongolian,exploited,termination,digitally,infectious,sedan,symmetric,penal,illustrate,formulation,attribute,problematic,modular,inverse,berth,searches,rutgers,leicestershire,enthusiasts,lockheed,upwards,transverse,accolades,backward,archaeologists,crusaders,nuremberg,defects,ferries,vogue,containers,openings,transporting,separates,lumpur,purchases,attain,wichita,topology,woodlands,deleted,periodically,syntax,overturned,musicals,corp.,strasbourg,instability,nationale,prevailing,cache,marathi,versailles,unmarried,grains,straits,antagonist,segregation,assistants,d'etat,contention,dictatorship,unpopular,motorcycles,criterion,analytical,salzburg,militants,hanged,worcestershire,emphasize,paralympic,erupted,convinces,offences,oxidation,nouns,populace,atari,spanned,hazardous,educators,playable,births,baha'i,preseason,generates,invites,meteorological,handbook,foothills,enclosure,diffusion,mirza,convergence,geelong,coefficient,connector,formula_6,cylindrical,disasters,pleaded,knoxville,contamination,compose,libertarian,arrondissement,franciscan,intercontinental,susceptible,initiation,malaria,unbeaten,consonants,waived,saloon,popularized,estadio,pseudo,interdisciplinary,transports,transformers,carriages,bombings,revolves,ceded,collaborator,celestial,exemption,colchester,maltese,oceanic,ligue,crete,shareholder,routed,depictions,ridden,advisors,calculate,lending,guangzhou,simplicity,newscast,scheduling,snout,eliot,undertaking,armenians,nottinghamshire,whitish,consulted,deficiency,salle,cinemas,superseded,rigorous,kerman,convened,landowners,modernization,evenings,pitches,conditional,scandinavia,differed,formulated,cyclists,swami,guyana,dunes,electrified,appalachian,abdomen,scenarios,prototypes,sindh,consonant,adaptive,boroughs,wolverhampton,modelling,cylinders,amounted,minimize,ambassadors,lenin,settler,coincide,approximation,grouping,murals,bullying,registers,rumours,engagements,energetic,vertex,annals,bordering,geologic,yellowish,runoff,converts,allegheny,facilitated,saturdays,colliery,monitored,rainforest,interfaces,geographically,impaired,prevalence,joachim,paperback,slowed,shankar,distinguishing,seminal,categorized,authorised,auspices,bandwidth,asserts,rebranded,balkans,supplemented,seldom,weaving,capsule,apostles,populous,monmouth,payload,symphonic,densely,shoreline,managerial,masonry,antioch,averages,textbooks,royalist,coliseum,tandem,brewers,diocesan,posthumous,walled,incorrectly,distributions,ensued,reasonably,graffiti,propagation,automation,harmonic,augmented,middleweight,limbs,elongated,landfall,comparatively,literal,grossed,koppen,wavelength,
1830s,cerebral,boasts,congestion,physiological,practitioner,coasts,cartoonist,undisclosed,frontal,launches,burgundy,qualifiers,imposing,stade,flanked,assyrian,raided,multiplayer,montane,chesapeake,pathology,drains,vineyards,intercollegiate,semiconductor,grassland,convey,citations,predominant,rejects,benefited,yahoo,graphs,busiest,encompassing,hamlets,explorers,suppress,minors,graphical,calculus,sediment,intends,diverted,mainline,unopposed,cottages,initiate,alumnus,towed,autism,forums,darlington,modernist,oxfordshire,lectured,capitalist,suppliers,panchayat,actresses,foundry,southbound,commodity,wesleyan,divides,palestinians,luton,caretaker,nobleman,mutiny,organizer,preferences,nomenclature,splits,unwilling,offenders,timor,relying,halftime,semitic,arithmetic,milestone,jesuits,arctiidae,retrieved,consuming,contender,edged,plagued,inclusive,transforming,khmer,federally,insurgents,distributing,amherst,rendition,prosecutors,viaduct,disqualified,kabul,liturgy,prevailed,reelected,instructors,swimmers,aperture,churchyard,interventions,totals,darts,metropolis,fuels,fluent,northbound,correctional,inflicted,barrister,realms,culturally,aristocratic,collaborating,emphasizes,choreographer,inputs,ensembles,humboldt,practised,endowed,strains,infringement,archaeologist,congregational,magna,relativity,efficiently,proliferation,mixtape,abruptly,regeneration,commissioning,yukon,archaic,reluctantly,retailer,northamptonshire,universally,crossings,boilers,nickelodeon,revue,abbreviation,retaliation,scripture,routinely,medicinal,benedictine,kenyan,retention,deteriorated,glaciers,apprenticeship,coupling,researched,topography,entrances,anaheim,pivotal,compensate,arched,modify,reinforce,dusseldorf,journeys,motorsport,conceded,sumatra,spaniards,quantitative,loire,cinematography,discarded,botswana,morale,engined,zionist,philanthropy,sainte,fatalities,cypriot,motorsports,indicators,pricing,institut,bethlehem,implicated,gravitational,differentiation,rotor,thriving,precedent,ambiguous,concessions,forecast,conserved,fremantle,asphalt,landslide,middlesbrough,formula_7,humidity,overseeing,chronological,diaries,multinational,crimean,turnover,improvised,youths,declares,tasmanian,canadiens,fumble,refinery,weekdays,unconstitutional,upward,guardians,brownish,imminent,hamas,endorsement,naturalist,martyrs,caledonia,chords,yeshiva,reptiles,severity,mitsubishi,fairs,installment,substitution,repertory,keyboardist,interpreter,silesia,noticeable,rhineland,transmit,inconsistent,booklet,academies,epithet,pertaining,progressively,aquatics,scrutiny,prefect,toxicity,rugged,consume,o'donnell,evolve,uniquely,cabaret,mediated,landowner,transgender,palazzo,compilations,albuquerque,induce,sinai,remastered,efficacy,underside,analogue,specify,possessing,advocating,compatibility,liberated,greenville,mecklenburg,header,memorials,sewage,rhodesia,
1800s,salaries,atoll,coordinating,partisans,repealed,amidst,subjective,optimization,nectar,evolving,exploits,madhya,styling,accumulation,raion,postage,responds,buccaneers,frontman,brunei,choreography,coated,kinetic,sampled,inflammatory,complementary,eclectic,norte,vijay,a.k.a,mainz,casualty,connectivity,laureate,franchises,yiddish,reputed,unpublished,economical,periodicals,vertically,bicycles,brethren,capacities,unitary,archeological,tehsil,domesday,wehrmacht,justification,angered,mysore,fielded,abuses,nutrients,ambitions,taluk,battleships,symbolism,superiority,neglect,attendees,commentaries,collaborators,predictions,yorker,breeders,investing,libretto,informally,coefficients,memorandum,pounder,collingwood,tightly,envisioned,arbor,mistakenly,captures,nesting,conflicting,enhancing,streetcar,manufactures,buckinghamshire,rewards,commemorating,stony,expenditure,tornadoes,semantic,relocate,weimar,iberian,sighted,intending,ensign,beverages,expectation,differentiate,centro,utilizes,saxophonist,catchment,transylvania,ecosystems,shortest,sediments,socialists,ineffective,kapoor,formidable,heroine,guantanamo,prepares,scattering,pamphlet,verified,elector,barons,totaling,shrubs,pyrenees,amalgamation,mutually,longitudinal,comte,negatively,masonic,envoy,sexes,akbar,mythical,tonga,bishopric,assessments,malaya,warns,interiors,reefs,reflections,neutrality,musically,nomadic,waterways,provence,collaborate,scaled,adulthood,emerges,euros,optics,incentives,overland,periodical,liege,awarding,realization,slang,affirmed,schooner,hokkaido,czechoslovak,protectorate,undrafted,disagreed,commencement,electors,spruce,swindon,fueled,equatorial,inventions,suites,slovene,backdrop,adjunct,energies,remnant,inhabit,alliances,simulcast,reactors,mosques,travellers,outfielder,plumage,migratory,benin,experimented,fibre,projecting,drafting,laude,evidenced,northernmost,indicted,directional,replication,croydon,comedies,jailed,organizes,devotees,reservoirs,turrets,originate,economists,songwriters,junta,trenches,mounds,proportions,comedic,apostle,azerbaijani,farmhouse,resembled,disrupted,playback,mixes,diagonal,relevance,govern,programmer,gdansk,maize,soundtracks,tendencies,mastered,impacted,believers,kilometre,intervene,chairperson,aerodrome,sails,subsidies,ensures,aesthetics,congresses,ratios,sardinia,southernmost,functioned,controllers,downward,randomly,distortion,regents,palatine,disruption,spirituality,vidhan,tracts,compiler,ventilation,anchorage,symposium,assert,pistols,excelled,avenues,convoys,moniker,constructions,proponent,phased,spines,organising,schleswig,policing,campeonato,mined,hourly,croix,lucrative,authenticity,haitian,stimulation,burkina,espionage,midfield,manually,staffed,awakening,metabolic,biographies,entrepreneurship,conspicuous,guangdong,preface,subgroup,mythological,adjutant,feminism,vilnius,oversees,honourable,tripoli,stylized,kinase,societe,notoriety,altitudes,configurations,outward,transmissions,announces,auditor,ethanol,clube,nanjing,mecca,haifa,blogs,postmaster,paramilitary,depart,positioning,potent,recognizable,spire,brackets,remembrance,overlapping,turkic,articulated,scientology,operatic,deploy,readiness,biotechnology,restrict,cinematographer,inverted,synonymous,administratively,westphalia,commodities,replaces,downloads,centralized,munitions,preached,sichuan,fashionable,implementations,matrices,hiv/aids,loyalist,luzon,celebrates,hazards,heiress,mercenaries,synonym,creole,ljubljana,technician,auditioned,technicians,viewpoint,wetland,mongols,princely,sharif,coating,dynasties,southward,doubling,formula_8,mayoral,harvesting,conjecture,goaltender,oceania,spokane,welterweight,bracket,gatherings,weighted,newscasts,mussolini,affiliations,disadvantage,vibrant,spheres,sultanate,distributors,disliked,establishes,marches,drastically,yielding,jewellery,yokohama,vascular,airlift,canons,subcommittee,repression,strengths,graded,outspoken,fused,pembroke,filmography,redundant,fatigue,repeal,threads,reissue,pennant,edible,vapor,corrections,stimuli,commemoration,dictator,anand,secession,amassed,orchards,pontifical,experimentation,greeted,bangor,forwards,decomposition,quran,trolley,chesterfield,traverse,sermons,burials,skier,climbs,consultants,petitioned,reproduce,parted,illuminated,kurdistan,reigned,occupants,packaged,geometridae,woven,regulating,protagonists,crafted,affluent,clergyman,consoles,migrant,supremacy,attackers,caliph,defect,convection,rallies,huron,resin,segunda,quota,warship,overseen,criticizing,shrines,glamorgan,lowering,beaux,hampered,invasions,conductors,collects,bluegrass,surrounds,substrates,perpetual,chronology,pulmonary,executions,crimea,compiling,noctuidae,battled,tumors,minsk,novgorod,serviced,yeast,computation,swamps,theodor,baronetcy,salford,uruguayan,shortages,odisha,siberian,novelty,cinematic,invitational,decks,dowager,oppression,bandits,appellate,state-of-the-art,clade,palaces,signalling,galaxies,industrialist,tensor,learnt,incurred,magistrates,binds,orbits,ciudad,willingness,peninsular,basins,biomedical,shafts,marlborough,bournemouth,withstand,fitzroy,dunedin,variance,steamship,integrating,muscular,fines,akron,bulbophyllum,malmo,disclosed,cornerstone,runways,medicines,twenty20,gettysburg,progresses,frigates,bodied,transformations,transforms,helens,modelled,versatile,regulator,pursuits,legitimacy,amplifier,scriptures,voyages,examines,presenters,octagonal,poultry,formula_9,anatolia,computed,migrate,directorial,hybrids,localized,preferring,guggenheim,persisted,grassroots,inflammation,fishery,otago,vigorous,professions,instructional,inexpensive,insurgency,legislators,sequels,surnames,agrarian,stainless,nairobi,minas,forerunner,aristocracy,transitions,sicilian,showcased,doses,hiroshima,summarized,gearbox,emancipation,limitation,nuclei,seismic,abandonment,dominating,appropriations,occupations,electrification,hilly,contracting,exaggerated,entertainer,kazan,oricon,cartridges,characterization,parcel,maharaja,exceeds,aspiring,obituary,flattened,contrasted,narration,replies,oblique,outpost,fronts,arranger,talmud,keynes,doctrines,endured,confesses,fortification,supervisors,kilometer,academie,jammu,bathurst,piracy,prostitutes,navarre,cumulative,cruises,lifeboat,twinned,radicals,interacting,expenditures,wexford,libre,futsal,curated,clockwise,colloquially,procurement,immaculate,lyricist,enhancement,porcelain,alzheimer,highlighting,judah,disagreements,storytelling,sheltered,wroclaw,vaudeville,contrasts,neoclassical,compares,contrasting,deciduous,francaise,descriptive,cyclic,reactive,antiquities,meiji,repeats,creditors,forcibly,newmarket,picturesque,impending,uneven,bison,raceway,solvent,ecumenical,optic,professorship,harvested,waterway,banjo,pharaoh,geologist,scanning,dissent,recycled,unmanned,retreating,gospels,aqueduct,branched,tallinn,groundbreaking,syllables,hangar,designations,procedural,craters,cabins,encryption,anthropologist,montevideo,outgoing,inverness,chattanooga,fascism,calais,chapels,groundwater,downfall,misleading,robotic,tortricidae,pixel,handel,prohibit,crewe,renaming,reprised,kickoff,leftist,spaced,integers,causeway,pines,authorship,organise,ptolemy,accessibility,virtues,lesions,iroquois,qur'an,atheist,synthesized,biennial,confederates,dietary,skaters,stresses,tariff,koreans,intercity,republics,quintet,baroness,naive,amplitude,insistence,tbilisi,residues,grammatical,diversified,egyptians,accompaniment,vibration,repository,mandal,topological,distinctions,coherent,invariant,batters,nuevo,internationals,implements,follower,bahia,widened,independents,cantonese,totaled,guadalajara,wolverines,befriended,muzzle,surveying,hungarians,medici,deportation,rayon,approx,recounts,attends,clerical,hellenic,furnished,alleging,soluble,systemic,gallantry,bolshevik,intervened,hostel,gunpowder,specialising,stimulate,leiden,removes,thematic,floral,bafta,printers,conglomerate,eroded,analytic,successively,lehigh,thessaloniki,kilda,clauses,ascended,nehru,scripted,tokugawa,competence,diplomats,exclude,consecration,freedoms,assaults,revisions,blacksmith,textual,sparse,concacaf,slain,uploaded,enraged,whaling,guise,stadiums,debuting,dormitory,cardiovascular,yunnan,dioceses,consultancy,notions,lordship,archdeacon,collided,medial,airfields,garment,wrestled,adriatic,reversal,refueling,verification,jakob,horseshoe,intricate,veracruz,sarawak,syndication,synthesizer,anthologies,stature,feasibility,guillaume,narratives,publicized,antrim,intermittent,constituents,grimsby,filmmaking,doping,unlawful,nominally,transmitting,documenting,seater,internationale,ejected,steamboat,alsace,boise,ineligible,geared,vassal,mustered,ville,inline,pairing,eurasian,kyrgyzstan,barnsley,reprise,stereotypes,rushes,conform,firefighters,deportivo,revolutionaries,rabbis,concurrency,charters,sustaining,aspirations,algiers,chichester,falkland,morphological,systematically,volcanoes,designate,artworks,reclaimed,jurist,anglia,resurrected,chaotic,feasible,circulating,simulated,environmentally,confinement,adventist,harrisburg,laborers,ostensibly,universiade,pensions,influenza,bratislava,octave,refurbishment,gothenburg,putin,barangay,annapolis,breaststroke,illustrates,distorted,choreographed,promo,emphasizing,stakeholders,descends,exhibiting,intrinsic,invertebrates,evenly,roundabout,salts,formula_10,strata,inhibition,branching,stylistic,rumored,realises,mitochondrial,commuted,adherents,logos,bloomberg,telenovela,guineas,charcoal,engages,winery,reflective,siena,cambridgeshire,ventral,flashback,installing,engraving,grasses,traveller,rotated,proprietor,nationalities,precedence,sourced,trainers,cambodian,reductions,depleted,saharan,classifications,biochemistry,plaintiffs,arboretum,humanist,fictitious,aleppo,climates,bazaar,his/her,homogeneous,multiplication,moines,indexed,linguist,skeletal,foliage,societal,differentiated,informing,mammal,infancy,archival,cafes,malls,graeme,musee,schizophrenia,fargo,pronouns,derivation,descend,ascending,terminating,deviation,recaptured,confessions,weakening,tajikistan,bahadur,pasture,b/hip,donegal,supervising,sikhs,thinkers,euclidean,reinforcement,friars,portage,fuscous,lucknow,synchronized,assertion,choirs,privatization,corrosion,multitude,skyscraper,royalties,ligament,usable,spores,directs,clashed,stockport,fronted,dependency,contiguous,biologist,backstroke,powerhouse,frescoes,phylogenetic,welding,kildare,gabon,conveyed,augsburg,severn,continuum,sahib,lille,injuring,passeriformesfamily,succeeds,translating,unitarian,startup,turbulent,outlying,philanthropic,stanislaw,idols,claremont,conical,haryana,armagh,blended,implicit,conditioned,modulation,rochdale,labourers,coinage,shortstop,potsdam,gears,obesity,bestseller,advisers,bouts,comedians,jozef,lausanne,taxonomic,correlated,columbian,marne,indications,psychologists,libel,edict,beaufort,disadvantages,renal,finalized,racehorse,unconventional,disturbances,falsely,zoology,adorned,redesign,executing,narrower,commended,appliances,stalls,resurgence,saskatoon,miscellaneous,permitting,epoch,formula_11,cumbria,forefront,vedic,eastenders,disposed,supermarkets,rower,inhibitor,magnesium,colourful,yusuf,harrow,formulas,centrally,balancing,ionic,nocturnal,consolidate,ornate,raiding,charismatic,accelerate,nominate,residual,dhabi,commemorates,attribution,uninhabited,mindanao,atrocities,genealogical,romani,applicant,enactment,abstraction,trough,pulpit,minuscule,misconduct,grenades,timely,supplements,messaging,curvature,ceasefire,telangana,susquehanna,braking,redistribution,shreveport,neighbourhoods,gregorian,widowed,khuzestan,empowerment,scholastic,evangelist,peptide,topical,theorist,historia,thence,sudanese,museo,jurisprudence,masurian,frankish,headlined,recounted,netball,petitions,tolerant,hectare,truncated,southend,methane,captives,reigns,massif,subunit,acidic,weightlifting,footballers,sabah,britannia,tunisian,segregated,sawmill,withdrawing,unpaid,weaponry,somme,perceptions,unicode,alcoholism,durban,wrought,waterfalls,jihad,auschwitz,upland,eastbound,adjective,anhalt,evaluating,regimes,guildford,reproduced,pamphlets,hierarchical,maneuvers,hanoi,fabricated,repetition,enriched,arterial,replacements,tides,globalization,adequately,westbound,satisfactory,fleets,phosphorus,lastly,neuroscience,anchors,xinjiang,membranes,improvisation,shipments,orthodoxy,submissions,bolivian,mahmud,ramps,leyte,pastures,outlines,flees,transmitters,fares,sequential,stimulated,novice,alternately,symmetrical,breakaway,layered,baronets,lizards,blackish,edouard,horsepower,penang,principals,mercantile,maldives,overwhelmingly,hawke,rallied,prostate,conscription,juveniles,maccabi,carvings,strikers,sudbury,spurred,improves,lombardy,macquarie,parisian,elastic,distillery,shetland,humane,brentford,wrexham,warehouses,routines,encompassed,introductory,isfahan,instituto,palais,revolutions,sporadic,impoverished,portico,fellowships,speculative,enroll,dormant,adhere,fundamentally,sculpted,meritorious,template,upgrading,reformer,rectory,uncredited,indicative,creeks,galveston,radically,hezbollah,firearm,educating,prohibits,trondheim,locus,refit,headwaters,screenings,lowlands,wasps,coarse,attaining,sedimentary,perished,pitchfork,interned,cerro,stagecoach,aeronautical,liter,transitioned,haydn,inaccurate,legislatures,bromwich,knesset,spectroscopy,butte,asiatic,degraded,concordia,catastrophic,lobes,wellness,pensacola,periphery,hapoel,theta,horizontally,freiburg,liberalism,pleas,durable,warmian,offenses,mesopotamia,shandong,unsuitable,hospitalized,appropriately,phonetic,encompass,conversions,observes,illnesses,breakout,assigns,crowns,inhibitors,nightly,manifestation,fountains,maximize,alphabetical,sloop,expands,newtown,widening,gaddafi,commencing,camouflage,footprint,tyrol,barangays,universite,highlanders,budgets,query,lobbied,westchester,equator,stipulated,pointe,distinguishes,allotted,embankment,advises,storing,loyalists,fourier,rehearsals,starvation,gland,rihanna,tubular,expressive,baccalaureate,intersections,revered,carbonate,eritrea,craftsmen,cosmopolitan,sequencing,corridors,shortlisted,bangladeshi,persians,mimic,parades,repetitive,recommends,flanks,promoters,incompatible,teaming,ammonia,greyhound,solos,improper,legislator,newsweek,recurrent,vitro,cavendish,eireann,crises,prophets,mandir,strategically,guerrillas,formula_12,ghent,contenders,equivalence,drone,sociological,hamid,castes,statehood,aland,clinched,relaunched,tariffs,simulations,williamsburg,rotate,mediation,smallpox,harmonica,lodges,lavish,restrictive,o'sullivan,detainees,polynomials,echoes,intersecting,learners,elects,charlemagne,defiance,epsom,liszt,facilitating,absorbing,revelations,padua,pieter,pious,penultimate,mammalian,montenegrin,supplementary,widows,aromatic,croats,roanoke,trieste,legions,subdistrict,babylonian,grasslands,volga,violently,sparsely,oldies,telecommunication,respondents,quarries,downloadable,commandos,taxpayer,catalytic,malabar,afforded,copying,declines,nawab,junctions,assessing,filtering,classed,disused,compliant,christoph,gottingen,civilizations,hermitage,caledonian,whereupon,ethnically,springsteen,mobilization,terraces,indus,excel,zoological,enrichment,simulate,guitarists,registrar,cappella,invoked,reused,manchu,configured,uppsala,genealogy,mergers,casts,curricular,rebelled,subcontinent,horticultural,parramatta,orchestrated,dockyard,claudius,decca,prohibiting,turkmenistan,brahmin,clandestine,obligatory,elaborated,parasitic,helix,constraint,spearheaded,rotherham,eviction,adapting,albans,rescues,sociologist,guiana,convicts,occurrences,kamen,antennas,asturias,wheeled,sanitary,deterioration,trier,theorists,baseline,announcements,valea,planners,factual,serialized,serials,bilbao,demoted,fission,jamestown,cholera,alleviate,alteration,indefinite,sulfate,paced,climatic,valuation,artisans,proficiency,aegean,regulators,fledgling,sealing,influencing,servicemen,frequented,cancers,tambon,narayan,bankers,clarified,embodied,engraver,reorganisation,dissatisfied,dictated,supplemental,temperance,ratification,puget,nutrient,pretoria,papyrus,uniting,ascribed,cores,coptic,schoolhouse,barrio,
1910s,armory,defected,transatlantic,regulates,ported,artefacts,specifies,boasted,scorers,mollusks,emitted,navigable,quakers,projective,dialogues,reunification,exponential,vastly,banners,unsigned,dissipated,halves,coincidentally,leasing,purported,escorting,estimation,foxes,lifespan,inflorescence,assimilation,showdown,staunch,prologue,ligand,superliga,telescopes,northwards,keynote,heaviest,taunton,redeveloped,vocalists,podlaskie,soyuz,rodents,azores,moravian,outset,parentheses,apparel,domestically,authoritative,polymers,monterrey,inhibit,launcher,jordanian,folds,taxis,mandates,singled,liechtenstein,subsistence,marxism,ousted,governorship,servicing,offseason,modernism,prism,devout,translators,islamist,chromosomes,pitted,bedfordshire,fabrication,authoritarian,javanese,leaflets,transient,substantive,predatory,sigismund,assassinate,diagrams,arrays,rediscovered,reclamation,spawning,fjord,peacekeeping,strands,fabrics,highs,regulars,tirana,ultraviolet,athenian,filly,barnet,naacp,nueva,favourites,terminates,showcases,clones,inherently,interpreting,bjorn,finely,lauded,unspecified,chola,pleistocene,insulation,antilles,donetsk,funnel,nutritional,biennale,reactivated,southport,primate,cavaliers,austrians,interspersed,restarted,suriname,amplifiers,wladyslaw,blockbuster,sportsman,minogue,brightness,benches,bridgeport,initiating,israelis,orbiting,newcomers,externally,scaling,transcribed,impairment,luxurious,longevity,impetus,temperament,ceilings,tchaikovsky,spreads,pantheon,bureaucracy,
1820s,heraldic,villas,formula_13,galician,meath,avoidance,corresponded,headlining,connacht,seekers,rappers,solids,monograph,scoreless,opole,isotopes,himalayas,parodies,garments,microscopic,republished,havilland,orkney,demonstrators,pathogen,saturated,hellenistic,facilitates,aerodynamic,relocating,indochina,laval,astronomers,bequeathed,administrations,extracts,nagoya,torquay,demography,medicare,ambiguity,renumbered,pursuant,concave,syriac,electrode,dispersal,henan,bialystok,walsall,crystalline,puebla,janata,illumination,tianjin,enslaved,coloration,championed,defamation,grille,johor,rejoin,caspian,fatally,planck,workings,appointing,institutionalized,wessex,modernized,exemplified,regatta,jacobite,parochial,programmers,blending,eruptions,insurrection,regression,indices,sited,dentistry,mobilized,furnishings,levant,primaries,ardent,nagasaki,conqueror,dorchester,opined,heartland,amman,mortally,wellesley,bowlers,outputs,coveted,orthography,immersion,disrepair,disadvantaged,curate,childless,condensed,codice_1,remodeled,resultant,bolsheviks,superfamily,saxons,
2010s,contractual,rivalries,malacca,oaxaca,magnate,vertebrae,quezon,olympiad,yucatan,tyres,macro,specialization,commendation,caliphate,gunnery,exiles,excerpts,fraudulent,adjustable,aramaic,interceptor,drumming,standardization,reciprocal,adolescents,federalist,aeronautics,favorably,enforcing,reintroduced,zhejiang,refining,biplane,banknotes,accordion,intersect,illustrating,summits,classmate,militias,biomass,massacres,epidemiology,reworked,wrestlemania,nantes,auditory,taxon,elliptical,chemotherapy,asserting,avoids,proficient,airmen,yellowstone,multicultural,alloys,utilization,seniority,kuyavian,huntsville,orthogonal,bloomington,cultivars,casimir,internment,repulsed,impedance,revolving,fermentation,parana,shutout,partnering,empowered,islamabad,polled,classify,amphibians,greyish,obedience,
4x100,projectile,khyber,halfback,relational,d'ivoire,synonyms,endeavour,padma,customized,mastery,defenceman,berber,purge,interestingly,covent,promulgated,restricting,condemnation,hillsborough,walkers,privateer,intra,captaincy,naturalized,huffington,detecting,hinted,migrating,bayou,counterattack,anatomical,foraging,unsafe,swiftly,outdated,paraguayan,attire,masjid,endeavors,jerseys,triassic,quechua,growers,axial,accumulate,wastewater,cognition,fungal,animator,pagoda,kochi,uniformly,antibody,yerevan,hypotheses,combatants,italianate,draining,fragmentation,snowfall,formative,inversion,kitchener,identifier,additive,lucha,selects,ashland,cambrian,racetrack,trapping,congenital,primates,wavelengths,expansions,yeomanry,harcourt,wealthiest,awaited,punta,intervening,aggressively,vichy,piloted,midtown,tailored,heyday,metadata,guadalcanal,inorganic,hadith,pulses,francais,tangent,scandals,erroneously,tractors,pigment,constabulary,jiangsu,landfill,merton,basalt,astor,forbade,debuts,collisions,exchequer,stadion,roofed,flavour,sculptors,conservancy,dissemination,electrically,undeveloped,existent,surpassing,pentecostal,manifested,amend,formula_14,superhuman,barges,tunis,analytics,argyll,liquids,mechanized,domes,mansions,himalayan,indexing,reuters,nonlinear,purification,exiting,timbers,triangles,decommissioning,departmental,causal,fonts,americana,sept.,seasonally,incomes,razavi,sheds,memorabilia,rotational,terre,sutra,protege,yarmouth,grandmaster,annum,looted,imperialism,variability,liquidation,baptised,isotope,showcasing,milling,rationale,hammersmith,austen,streamlined,acknowledging,contentious,qaleh,breadth,turing,referees,feral,toulon,unofficially,identifiable,standout,labeling,dissatisfaction,jurgen,angrily,featherweight,cantons,constrained,dominates,standalone,relinquished,theologians,markedly,italics,downed,nitrate,likened,gules,craftsman,singaporean,pixels,mandela,moray,parity,departement,antigen,academically,burgh,brahma,arranges,wounding,triathlon,nouveau,vanuatu,banded,acknowledges,unearthed,stemming,authentication,byzantines,converge,nepali,commonplace,deteriorating,recalling,palette,mathematicians,greenish,pictorial,ahmedabad,rouen,validation,u.s.a.,'best,malvern,archers,converter,undergoes,fluorescent,logistical,notification,transvaal,illicit,symphonies,stabilization,worsened,fukuoka,decrees,enthusiast,seychelles,blogger,louvre,dignitaries,burundi,wreckage,signage,pinyin,bursts,federer,polarization,urbana,lazio,schism,nietzsche,venerable,administers,seton,kilograms,invariably,kathmandu,farmed,disqualification,earldom,appropriated,fluctuations,kermanshah,deployments,deformation,wheelbase,maratha,psalm,bytes,methyl,engravings,skirmish,fayette,vaccines,ideally,astrology,breweries,botanic,opposes,harmonies,irregularities,contended,gaulle,prowess,constants,aground,filipinos,fresco,ochreous,jaipur,willamette,quercus,eastwards,mortars,champaign,braille,reforming,horned,hunan,spacious,agitation,draught,specialties,flourishing,greensboro,necessitated,swedes,elemental,whorls,hugely,structurally,plurality,synthesizers,embassies,assad,contradictory,inference,discontent,recreated,inspectors,unicef,commuters,embryo,modifying,stints,numerals,communicated,boosted,trumpeter,brightly,adherence,remade,leases,restrained,eucalyptus,dwellers,planar,grooves,gainesville,daimler,anzac,szczecin,cornerback,prized,peking,mauritania,khalifa,motorized,lodging,instrumentalist,fortresses,cervical,formula_15,passerine,sectarian,researches,apprenticed,reliefs,disclose,gliding,repairing,queue,kyushu,literate,canoeing,sacrament,separatist,calabria,parkland,flowed,investigates,statistically,visionary,commits,dragoons,scrolls,premieres,revisited,subdued,censored,patterned,elective,outlawed,orphaned,leyland,richly,fujian,miniatures,heresy,plaques,countered,nonfiction,exponent,moravia,dispersion,marylebone,midwestern,enclave,ithaca,federated,electronically,handheld,microscopy,tolls,arrivals,climbers,continual,cossacks,moselle,deserts,ubiquitous,gables,forecasts,deforestation,vertebrates,flanking,drilled,superstructure,inspected,consultative,bypassed,ballast,subsidy,socioeconomic,relic,grenada,journalistic,administering,accommodated,collapses,appropriation,reclassified,foreword,porte,assimilated,observance,fragmented,arundel,thuringia,gonzaga,shenzhen,shipyards,sectional,ayrshire,sloping,dependencies,promenade,ecuadorian,mangrove,constructs,goalscorer,heroism,iteration,transistor,omnibus,hampstead,cochin,overshadowed,chieftain,scalar,finishers,ghanaian,abnormalities,monoplane,encyclopaedia,characterize,travancore,baronetage,bearers,biking,distributes,paving,christened,inspections,banco,humber,corinth,quadratic,albanians,lineages,majored,roadside,inaccessible,inclination,darmstadt,fianna,epilepsy,propellers,papacy,montagu,bhutto,sugarcane,optimized,pilasters,contend,batsmen,brabant,housemates,sligo,ascot,aquinas,supervisory,accorded,gerais,echoed,nunavut,conservatoire,carniola,quartermaster,gminas,impeachment,aquitaine,reformers,quarterfinal,karlsruhe,accelerator,coeducational,archduke,gelechiidae,seaplane,dissident,frenchman,palau,depots,hardcover,aachen,darreh,denominational,groningen,parcels,reluctance,drafts,elliptic,counters,decreed,airship,devotional,contradiction,formula_16,undergraduates,qualitative,guatemalan,slavs,southland,blackhawks,detrimental,abolish,chechen,manifestations,arthritis,perch,fated,hebei,peshawar,palin,immensely,havre,totalling,rampant,ferns,concourse,triples,elites,olympian,larva,herds,lipid,karabakh,distal,monotypic,vojvodina,batavia,multiplied,spacing,spellings,pedestrians,parchment,glossy,industrialization,dehydrogenase,patriotism,abolitionist,mentoring,elizabethan,figurative,dysfunction,abyss,constantin,middletown,stigma,mondays,gambia,gaius,israelites,renounced,nepalese,overcoming,buren,sulphur,divergence,predation,looting,iberia,futuristic,shelved,anthropological,innsbruck,escalated,clermont,entrepreneurial,benchmark,mechanically,detachments,populist,apocalyptic,exited,embryonic,stanza,readership,chiba,landlords,expansive,boniface,therapies,perpetrators,whitehall,kassel,masts,carriageway,clinch,pathogens,mazandaran,undesirable,teutonic,miocene,nagpur,juris,cantata,compile,diffuse,dynastic,reopening,comptroller,o'neal,flourish,electing,scientifically,departs,welded,modal,cosmology,fukushima,libertadores,chang'an,asean,generalization,localization,afrikaans,cricketers,accompanies,emigrants,esoteric,southwards,shutdown,prequel,fittings,innate,wrongly,equitable,dictionaries,senatorial,bipolar,flashbacks,semitism,walkway,lyrically,legality,sorbonne,vigorously,durga,samoan,karel,interchanges,patna,decider,registering,electrodes,anarchists,excursion,overthrown,gilan,recited,michelangelo,advertiser,kinship,taboo,cessation,formula_17,premiers,traversed,madurai,poorest,torneo,exerted,replicate,spelt,sporadically,horde,landscaping,razed,hindered,esperanto,manchuria,propellant,jalan,baha'is,sikkim,linguists,pandit,racially,ligands,dowry,francophone,escarpment,behest,magdeburg,mainstay,villiers,yangtze,grupo,conspirators,martyrdom,noticeably,lexical,kazakh,unrestricted,utilised,sired,inhabits,proofs,joseon,pliny,minted,buddhists,cultivate,interconnected,reuse,viability,australasian,derelict,resolving,overlooks,menon,stewardship,playwrights,thwarted,filmfare,disarmament,protections,bundles,sidelined,hypothesized,singer/songwriter,forage,netted,chancery,townshend,restructured,quotation,hyperbolic,succumbed,parliaments,shenandoah,apical,kibbutz,storeys,pastors,lettering,ukrainians,hardships,chihuahua,avail,aisles,taluka,antisemitism,assent,ventured,banksia,seamen,hospice,faroe,fearful,woreda,outfield,chlorine,transformer,tatar,panoramic,pendulum,haarlem,styria,cornice,importing,catalyzes,subunits,enamel,bakersfield,realignment,sorties,subordinates,deanery,townland,gunmen,tutelage,evaluations,allahabad,thrace,veneto,mennonite,sharia,subgenus,satisfies,puritan,unequal,gastrointestinal,ordinances,bacterium,horticulture,argonauts,adjectives,arable,duets,visualization,woolwich,revamped,euroleague,thorax,completes,originality,vasco,freighter,sardar,oratory,sects,extremes,signatories,exporting,arisen,exacerbated,departures,saipan,furlongs,d'italia,goring,dakar,conquests,docked,offshoot,okrug,referencing,disperse,netting,summed,rewritten,articulation,humanoid,spindle,competitiveness,preventive,facades,westinghouse,wycombe,synthase,emulate,fostering,abdel,hexagonal,myriad,caters,arjun,dismay,axiom,psychotherapy,colloquial,complemented,martinique,fractures,culmination,erstwhile,atrium,electronica,anarchism,nadal,montpellier,algebras,submitting,adopts,stemmed,overcame,internacional,asymmetric,gallipoli,gliders,flushing,extermination,hartlepool,tesla,interwar,patriarchal,hitherto,ganges,combatant,marred,philology,glastonbury,reversible,isthmus,undermined,southwark,gateshead,andalusia,remedies,hastily,optimum,smartphone,evade,patrolled,beheaded,dopamine,waivers,ugandan,gujarati,densities,predicting,intestinal,tentative,interstellar,kolonia,soloists,penetrated,rebellions,qeshlaq,prospered,colegio,deficits,konigsberg,deficient,accessing,relays,kurds,politburo,codified,incarnations,occupancy,cossack,metaphysical,deprivation,chopra,piccadilly,formula_18,makeshift,protestantism,alaskan,frontiers,faiths,tendon,dunkirk,durability,autobots,bonuses,coinciding,emails,gunboat,stucco,magma,neutrons,vizier,subscriptions,visuals,envisaged,carpets,smoky,schema,parliamentarian,immersed,domesticated,parishioners,flinders,diminutive,mahabharata,ballarat,falmouth,vacancies,gilded,twigs,mastering,clerics,dalmatia,islington,slogans,compressor,iconography,congolese,sanction,blends,bulgarians,moderator,outflow,textures,safeguard,trafalgar,tramways,skopje,colonialism,chimneys,jazeera,organisers,denoting,motivations,ganga,longstanding,deficiencies,gwynedd,palladium,holistic,fascia,preachers,embargo,sidings,busan,ignited,artificially,clearwater,cemented,northerly,salim,equivalents,crustaceans,oberliga,quadrangle,historiography,romanians,vaults,fiercely,incidental,peacetime,tonal,bhopal,oskar,radha,pesticides,timeslot,westerly,cathedrals,roadways,aldershot,connectors,brahmins,paler,aqueous,gustave,chromatic,linkage,lothian,specialises,aggregation,tributes,insurgent,enact,hampden,ghulam,federations,instigated,lyceum,fredrik,chairmanship,floated,consequent,antagonists,intimidation,patriarchate,warbler,heraldry,entrenched,expectancy,habitation,partitions,widest,launchers,nascent,ethos,wurzburg,lycee,chittagong,mahatma,merseyside,asteroids,yokosuka,cooperatives,quorum,redistricting,bureaucratic,yachts,deploying,rustic,phonology,chorale,cellist,stochastic,crucifixion,surmounted,confucian,portfolios,geothermal,crested,calibre,tropics,deferred,nasir,iqbal,persistence,essayist,chengdu,aborigines,fayetteville,bastion,interchangeable,burlesque,kilmarnock,specificity,tankers,colonels,fijian,quotations,enquiry,quito,palmerston,delle,multidisciplinary,polynesian,iodine,antennae,emphasised,manganese,baptists,galilee,jutland,latent,excursions,skepticism,tectonic,precursors,negligible,musique,misuse,vitoria,expressly,veneration,sulawesi,footed,mubarak,chongqing,chemically,midday,ravaged,facets,varma,yeovil,ethnographic,discounted,physicists,attache,disbanding,essen,shogunate,cooperated,waikato,realising,motherwell,pharmacology,sulfide,inward,expatriate,devoid,cultivar,monde,andean,groupings,goran,unaffected,moldovan,postdoctoral,coleophora,delegated,pronoun,conductivity,coleridge,disapproval,reappeared,microbial,campground,olsztyn,fostered,vaccination,rabbinical,champlain,milestones,viewership,caterpillar,effected,eupithecia,financier,inferred,uzbek,bundled,bandar,balochistan,mysticism,biosphere,holotype,symbolizes,lovecraft,photons,abkhazia,swaziland,subgroups,measurable,falkirk,valparaiso,ashok,discriminatory,rarity,tabernacle,flyweight,jalisco,westernmost,antiquarian,extracellular,margrave,colspan=
9,midsummer,digestive,reversing,burgeoning,substitutes,medallist,khrushchev,guerre,folio,detonated,partido,plentiful,aggregator,medallion,infiltration,shaded,santander,fared,auctioned,permian,ramakrishna,andorra,mentors,diffraction,bukit,potentials,translucent,feminists,tiers,protracted,coburg,wreath,guelph,adventurer,he/she,vertebrate,pipelines,celsius,outbreaks,australasia,deccan,garibaldi,unionists,buildup,biochemical,reconstruct,boulders,stringent,barbed,wording,furnaces,pests,befriends,organises,popes,rizal,tentacles,cadre,tallahassee,punishments,occidental,formatted,mitigation,rulings,rubens,cascades,inducing,choctaw,volta,synagogues,movable,altarpiece,mitigate,practise,intermittently,encountering,memberships,earns,signify,retractable,amounting,pragmatic,wilfrid,dissenting,divergent,kanji,reconstituted,devonian,constitutions,levied,hendrik,starch,costal,honduran,ditches,polygon,eindhoven,superstars,salient,argus,punitive,purana,alluvial,flaps,inefficient,retracted,advantageous,quang,andersson,danville,binghamton,symbolize,conclave,shaanxi,silica,interpersonal,adept,frans,pavilions,lubbock,equip,sunken,limburg,activates,prosecutions,corinthian,venerated,shootings,retreats,parapet,orissa,riviere,animations,parodied,offline,metaphysics,bluffs,plume,piety,fruition,subsidized,steeplechase,shanxi,eurasia,angled,forecasting,suffragan,ashram,larval,labyrinth,chronicler,summaries,trailed,merges,thunderstorms,filtered,formula_19,advertisers,alpes,informatics,parti,constituting,undisputed,certifications,javascript,molten,sclerosis,rumoured,boulogne,hmong,lewes,breslau,notts,bantu,ducal,messengers,radars,nightclubs,bantamweight,carnatic,kaunas,fraternal,triggering,controversially,londonderry,visas,scarcity,offaly,uprisings,repelled,corinthians,pretext,kuomintang,kielce,empties,matriculated,pneumatic,expos,agile,treatises,midpoint,prehistory,oncology,subsets,hydra,hypertension,axioms,wabash,reiterated,swapped,achieves,premio,ageing,overture,curricula,challengers,subic,selangor,liners,frontline,shutter,validated,normalized,entertainers,molluscs,maharaj,allegation,youngstown,synth,thoroughfare,regionally,pillai,transcontinental,pedagogical,riemann,colonia,easternmost,tentatively,profiled,herefordshire,nativity,meuse,nucleotide,inhibits,huntingdon,throughput,recorders,conceding,domed,homeowners,centric,gabled,canoes,fringes,breeder,subtitled,fluoride,haplogroup,zionism,izmir,phylogeny,kharkiv,romanticism,adhesion,usaaf,delegations,lorestan,whalers,biathlon,vaulted,mathematically,pesos,skirmishes,heisman,kalamazoo,gesellschaft,launceston,interacts,quadruple,kowloon,psychoanalysis,toothed,ideologies,navigational,valence,induces,lesotho,frieze,rigging,undercarriage,explorations,spoof,eucharist,profitability,virtuoso,recitals,subterranean,sizeable,herodotus,subscriber,huxley,pivot,forewing,warring,boleslaw,bharatiya,suffixes,trois,percussionist,downturn,garrisons,philosophies,chants,mersin,mentored,dramatist,guilds,frameworks,thermodynamic,venomous,mehmed,assembling,rabbinic,hegemony,replicas,enlargement,claimant,retitled,utica,dumfries,metis,deter,assortment,tubing,afflicted,weavers,rupture,ornamentation,transept,salvaged,upkeep,callsign,rajput,stevenage,trimmed,intracellular,synchronization,consular,unfavorable,royalists,goldwyn,fasting,hussars,doppler,obscurity,currencies,amiens,acorn,tagore,townsville,gaussian,migrations,porta,anjou,graphite,seaport,monographs,gladiators,metrics,calligraphy,sculptural,swietokrzyskie,tolombeh,eredivisie,shoals,queries,carts,exempted,fiberglass,mirrored,bazar,progeny,formalized,mukherjee,professed,amazon.com,cathode,moreton,removable,mountaineers,nagano,transplantation,augustinian,steeply,epilogue,adapter,decisively,accelerating,mediaeval,substituting,tasman,devonshire,litres,enhancements,himmler,nephews,bypassing,imperfect,argentinian,reims,integrates,sochi,ascii,licences,niches,surgeries,fables,versatility,indra,footpath,afonso,crore,evaporation,encodes,shelling,conformity,simplify,updating,quotient,overt,firmware,umpires,architectures,eocene,conservatism,secretion,embroidery,f.c..,tuvalu,mosaics,shipwreck,prefectural,cohort,grievances,garnering,centerpiece,apoptosis,djibouti,bethesda,formula_20,shonen,richland,justinian,dormitories,meteorite,reliably,obtains,pedagogy,hardness,cupola,manifolds,amplification,steamers,familial,dumbarton,jerzy,genital,maidstone,salinity,grumman,signifies,presbytery,meteorology,procured,aegis,streamed,deletion,nuestra,mountaineering,accords,neuronal,khanate,grenoble,axles,dispatches,tokens,turku,auctions,propositions,planters,proclaiming,recommissioned,stravinsky,obverse,bombarded,waged,saviour,massacred,reformist,purportedly,resettlement,ravenna,embroiled,minden,revitalization,hikers,bridging,torpedoed,depletion,nizam,affectionately,latitudes,lubeck,spore,polymerase,aarhus,nazism,
101st,buyout,galerie,diets,overflow,motivational,renown,brevet,deriving,melee,goddesses,demolish,amplified,tamworth,retake,brokerage,beneficiaries,henceforth,reorganised,silhouette,browsers,pollutants,peron,lichfield,encircled,defends,bulge,dubbing,flamenco,coimbatore,refinement,enshrined,grizzlies,capacitor,usefulness,evansville,interscholastic,rhodesian,bulletins,diamondbacks,rockers,platted,medalists,formosa,transporter,slabs,guadeloupe,disparate,concertos,violins,regaining,mandible,untitled,agnostic,issuance,hamiltonian,brampton,srpska,homology,downgraded,florentine,epitaph,kanye,rallying,analysed,grandstand,infinitely,antitrust,plundered,modernity,colspan=
3|total,amphitheatre,doric,motorists,yemeni,carnivorous,probabilities,prelate,struts,scrapping,bydgoszcz,pancreatic,signings,predicts,compendium,ombudsman,apertura,appoints,rebbe,stereotypical,valladolid,clustered,touted,plywood,inertial,kettering,curving,d'honneur,housewives,grenadier,vandals,barbarossa,necked,waltham,reputedly,jharkhand,cistercian,pursues,viscosity,organiser,cloister,islet,stardom,moorish,himachal,strives,scripps,staggered,blasts,westwards,millimeters,angolan,hubei,agility,admirals,mordellistena,coincides,platte,vehicular,cordillera,riffs,schoolteacher,canaan,acoustics,tinged,reinforcing,concentrates,daleks,monza,selectively,musik,polynesia,exporter,reviving,macclesfield,bunkers,ballets,manors,caudal,microbiology,primes,unbroken,outcry,flocks,pakhtunkhwa,abelian,toowoomba,luminous,mould,appraisal,leuven,experimentally,interoperability,hideout,perak,specifying,knighthood,vasily,excerpt,computerized,niels,networked,byzantium,reaffirmed,geographer,obscured,fraternities,mixtures,allusion,accra,lengthened,inquest,panhandle,pigments,revolts,bluetooth,conjugate,overtaken,foray,coils,breech,streaks,impressionist,mendelssohn,intermediary,panned,suggestive,nevis,upazila,rotunda,mersey,linnaeus,anecdotes,gorbachev,viennese,exhaustive,moldavia,arcades,irrespective,orator,diminishing,predictive,cohesion,polarized,montage,avian,alienation,conus,jaffna,urbanization,seawater,extremity,editorials,scrolling,dreyfus,traverses,topographic,gunboats,extratropical,normans,correspondents,recognises,millennia,filtration,ammonium,voicing,complied,prefixes,diplomas,figurines,weakly,gated,oscillator,lucerne,embroidered,outpatient,airframe,fractional,disobedience,quarterbacks,formula_21,shinto,chiapas,epistle,leakage,pacifist,avignon,penrith,renders,mantua,screenplays,gustaf,tesco,alphabetically,rations,discharges,headland,tapestry,manipur,boolean,mediator,ebenezer,subchannel,fable,bestselling,ateneo,trademarks,recurrence,dwarfs,britannica,signifying,vikram,mediate,condensation,censuses,verbandsgemeinde,cartesian,sprang,surat,britons,chelmsford,courtenay,statistic,retina,abortions,liabilities,closures,mississauga,skyscrapers,saginaw,compounded,aristocrat,msnbc,stavanger,septa,interpretive,hinder,visibly,seeding,shutouts,irregularly,quebecois,footbridge,hydroxide,implicitly,lieutenants,simplex,persuades,midshipman,heterogeneous,officiated,crackdown,lends,tartu,altars,fractions,dissidents,tapered,modernisation,scripting,blazon,aquaculture,thermodynamics,sistan,hasidic,bellator,pavia,propagated,theorized,bedouin,transnational,mekong,chronicled,declarations,kickstarter,quotas,runtime,duquesne,broadened,clarendon,brownsville,saturation,tatars,electorates,malayan,replicated,observable,amphitheater,endorsements,referral,allentown,mormons,pantomime,eliminates,typeface,allegorical,varna,conduction,evoke,interviewer,subordinated,uyghur,landscaped,conventionally,ascend,edifice,postulated,hanja,whitewater,embarking,musicologist,tagalog,frontage,paratroopers,hydrocarbons,transliterated,nicolae,viewpoints,surrealist,asheville,falklands,hacienda,glide,opting,zimbabwean,discal,mortgages,nicaraguan,yadav,ghosh,abstracted,castilian,compositional,cartilage,intergovernmental,forfeited,importation,rapping,artes,republika,narayana,condominium,frisian,bradman,duality,marche,extremist,phosphorylation,genomes,allusions,valencian,habeas,ironworks,multiplex,harpsichord,emigrate,alternated,breda,waffen,smartphones,familiarity,regionalliga,herbaceous,piping,dilapidated,carboniferous,xviii,critiques,carcinoma,sagar,chippewa,postmodern,neapolitan,excludes,notoriously,distillation,tungsten,richness,installments,monoxide,chand,privatisation,molded,maths,projectiles,luoyang,epirus,lemma,concentric,incline,erroneous,sideline,gazetted,leopards,fibres,renovate,corrugated,unilateral,repatriation,orchestration,saeed,rockingham,loughborough,formula_22,bandleader,appellation,openness,nanotechnology,massively,tonnage,dunfermline,exposes,moored,ridership,motte,eurobasket,majoring,feats,silla,laterally,playlist,downwards,methodologies,eastbourne,daimyo,cellulose,leyton,norwalk,oblong,hibernian,opaque,insular,allegory,camogie,inactivation,favoring,masterpieces,rinpoche,serotonin,portrayals,waverley,airliner,longford,minimalist,outsourcing,excise,meyrick,qasim,organisational,synaptic,farmington,gorges,scunthorpe,zoned,tohoku,librarians,davao,decor,theatrically,brentwood,pomona,acquires,planter,capacitors,synchronous,skateboarding,coatings,turbocharged,ephraim,capitulation,scoreboard,hebrides,ensues,cereals,ailing,counterpoint,duplication,antisemitic,clique,aichi,oppressive,transcendental,incursions,rename,renumbering,powys,vestry,bitterly,neurology,supplanted,affine,susceptibility,orbiter,activating,overlaps,ecoregion,raman,canoer,darfur,microorganisms,precipitated,protruding,torun,anthropologists,rennes,kangaroos,parliamentarians,edits,littoral,archived,begum,rensselaer,microphones,ypres,empower,etruscan,wisden,montfort,calibration,isomorphic,rioting,kingship,verbally,smyrna,cohesive,canyons,fredericksburg,rahul,relativistic,micropolitan,maroons,industrialized,henchmen,uplift,earthworks,mahdi,disparity,cultured,transliteration,spiny,fragmentary,extinguished,atypical,inventors,biosynthesis,heralded,curacao,anomalies,aeroplane,surya,mangalore,maastricht,ashkenazi,fusiliers,hangzhou,emitting,monmouthshire,schwarzenegger,ramayana,peptides,thiruvananthapuram,alkali,coimbra,budding,reasoned,epithelial,harbors,rudimentary,classically,parque,ealing,crusades,rotations,riparian,pygmy,inertia,revolted,microprocessor,calendars,solvents,kriegsmarine,accademia,cheshmeh,yoruba,ardabil,mitra,genomic,notables,propagate,narrates,univision,outposts,polio,birkenhead,urinary,crocodiles,pectoral,barrymore,deadliest,rupees,chaim,protons,comical,astrophysics,unifying,formula_23,vassals,cortical,audubon,pedals,tenders,resorted,geophysical,lenders,recognising,tackling,lanarkshire,doctrinal,annan,combating,guangxi,estimating,selectors,tribunals,chambered,inhabiting,exemptions,curtailed,abbasid,kandahar,boron,bissau,
150th,codenamed,wearer,whorl,adhered,subversive,famer,smelting,inserting,mogadishu,zoologist,mosul,stumps,almanac,olympiacos,stamens,participatory,cults,honeycomb,geologists,dividend,recursive,skiers,reprint,pandemic,liber,percentages,adversely,stoppage,chieftains,tubingen,southerly,overcrowding,unorganized,hangars,fulfil,hails,cantilever,woodbridge,pinus,wiesbaden,fertilization,fluorescence,enhances,plenary,troublesome,episodic,thrissur,kickboxing,allele,staffing,garda,televisions,philatelic,spacetime,bullpen,oxides,leninist,enrolling,inventive,truro,compatriot,ruskin,normative,assay,gotha,murad,illawarra,gendarmerie,strasse,mazraeh,rebounded,fanfare,liaoning,rembrandt,iranians,emirate,governs,latency,waterfowl,chairmen,katowice,aristocrats,eclipsed,sentient,sonatas,interplay,sacking,decepticons,dynamical,arbitrarily,resonant,petar,velocities,alludes,wastes,prefectures,belleville,sensibility,salvadoran,consolidating,medicaid,trainees,vivekananda,molar,porous,upload,youngster,infused,doctorates,wuhan,annihilation,enthusiastically,gamespot,kanpur,accumulating,monorail,operetta,tiling,sapporo,finns,calvinist,hydrocarbon,sparrows,orienteering,cornelis,minster,vuelta,plebiscite,embraces,panchayats,focussed,remediation,brahman,olfactory,reestablished,uniqueness,northumbria,rwandan,predominately,abode,ghats,balances,californian,uptake,bruges,inert,westerns,reprints,cairn,yarra,resurfaced,audible,rossini,regensburg,italiana,fleshy,irrigated,alerts,yahya,varanasi,marginalized,expatriates,cantonment,normandie,sahitya,directives,rounder,hulls,fictionalized,constables,inserts,hipped,potosi,navies,biologists,canteen,husbandry,augment,fortnight,assamese,kampala,o'keefe,paleolithic,bluish,promontory,consecutively,striving,niall,reuniting,dipole,friendlies,disapproved,thrived,netflix,liberian,dielectric,medway,strategist,sankt,pickups,hitters,encode,rerouted,claimants,anglesey,partitioned,cavan,flutes,reared,repainted,armaments,bowed,thoracic,balliol,piero,chaplains,dehestan,sender,junkers,sindhi,sickle,dividends,metallurgy,honorific,berths,namco,springboard,resettled,gansu,copyrighted,criticizes,utopian,bendigo,ovarian,binomial,spaceflight,oratorio,proprietors,supergroup,duplicated,foreground,strongholds,revolved,optimize,layouts,westland,hurler,anthropomorphic,excelsior,merchandising,reeds,vetoed,cryptography,hollyoaks,monash,flooring,ionian,resilience,johnstown,resolves,lawmakers,alegre,wildcards,intolerance,subculture,selector,slums,formulate,bayonet,istvan,restitution,interchangeably,awakens,rostock,serpentine,oscillation,reichstag,phenotype,recessed,piotr,annotated,preparedness,consultations,clausura,preferential,euthanasia,genoese,outcrops,freemasonry,geometrical,genesee,islets,prometheus,panamanian,thunderbolt,terraced,stara,shipwrecks,futebol,faroese,sharqi,aldermen,zeitung,unify,formula_24,humanism,syntactic,earthen,blyth,taxed,rescinded,suleiman,cymru,dwindled,vitality,superieure,resupply,adolphe,ardennes,rajiv,profiling,olympique,gestation,interfaith,milosevic,tagline,funerary,druze,silvery,plough,shrubland,relaunch,disband,nunatak,minimizing,excessively,waned,attaching,luminosity,bugle,encampment,electrostatic,minesweeper,dubrovnik,rufous,greenock,hochschule,assyrians,extracting,malnutrition,priya,attainment,anhui,connotations,predicate,seabirds,deduced,pseudonyms,gopal,plovdiv,refineries,imitated,kwazulu,terracotta,tenets,discourses,brandeis,whigs,dominions,pulmonate,landslides,tutors,determinant,richelieu,farmstead,tubercles,technicolor,hegel,redundancy,greenpeace,shortening,mules,distilled,xxiii,fundamentalist,acrylic,outbuildings,lighted,corals,signaled,transistors,cavite,austerity,
76ers,exposures,dionysius,outlining,commutative,permissible,knowledgeable,howrah,assemblage,inhibited,crewmen,mbit/s,pyramidal,aberdeenshire,bering,rotates,atheism,howitzer,saone,lancet,fermented,contradicted,materiel,ofsted,numeric,uniformity,josephus,nazarene,kuwaiti,noblemen,pediment,emergent,campaigner,akademi,murcia,perugia,gallen,allsvenskan,finned,cavities,matriculation,rosters,twickenham,signatory,propel,readable,contends,artisan,flamboyant,reggio,italo,fumbles,widescreen,rectangle,centimetres,collaborates,envoys,rijeka,phonological,thinly,refractive,civilisation,reductase,cognate,dalhousie,monticello,lighthouses,jitsu,luneburg,socialite,fermi,collectible,optioned,marquee,jokingly,architecturally,kabir,concubine,nationalisation,watercolor,wicklow,acharya,pooja,leibniz,rajendra,nationalized,stalemate,bloggers,glutamate,uplands,shivaji,carolingian,bucuresti,dasht,reappears,muscat,functionally,formulations,hinged,hainan,catechism,autosomal,incremental,asahi,coeur,diversification,multilateral,fewest,recombination,finisher,harrogate,hangul,feasts,photovoltaic,paget,liquidity,alluded,incubation,applauded,choruses,malagasy,hispanics,bequest,underparts,cassava,kazimierz,gastric,eradication,mowtowr,tyrosine,archbishopric,e9e9e9,unproductive,uxbridge,hydrolysis,harbours,officio,deterministic,devonport,kanagawa,breaches,freetown,rhinoceros,chandigarh,janos,sanatorium,liberator,inequalities,agonist,hydrophobic,constructors,nagorno,snowboarding,welcomes,subscribed,iloilo,resuming,catalysts,stallions,jawaharlal,harriers,definitively,roughriders,hertford,inhibiting,elgar,randomized,incumbents,episcopate,rainforests,yangon,improperly,kemal,interpreters,diverged,uttarakhand,umayyad,phnom,panathinaikos,shabbat,diode,jiangxi,forbidding,nozzle,artistry,licensee,processions,staffs,decimated,expressionism,shingle,palsy,ontology,mahayana,maribor,sunil,hostels,edwardian,jetty,freehold,overthrew,eukaryotic,schuylkill,rawalpindi,sheath,recessive,ferenc,mandibles,berlusconi,confessor,convergent,ababa,slugging,rentals,sephardic,equivalently,collagen,markov,dynamically,hailing,depressions,sprawling,fairgrounds,indistinguishable,plutarch,pressurized,banff,coldest,braunschweig,mackintosh,sociedad,wittgenstein,tromso,airbase,lecturers,subtitle,attaches,purified,contemplated,dreamworks,telephony,prophetic,rockland,aylesbury,biscay,coherence,aleksandar,judoka,pageants,theses,homelessness,luthor,sitcoms,hinterland,fifths,derwent,privateers,enigmatic,nationalistic,instructs,superimposed,conformation,tricycle,dusan,attributable,unbeknownst,laptops,etching,archbishops,ayatollah,cranial,gharbi,interprets,lackawanna,abingdon,saltwater,tories,lender,minaj,ancillary,ranching,pembrokeshire,topographical,plagiarism,murong,marque,chameleon,assertions,infiltrated,guildhall,reverence,schenectady,formula_25,kollam,notary,mexicana,initiates,abdication,basra,theorems,ionization,dismantling,eared,censors,budgetary,numeral,verlag,excommunicated,distinguishable,quarried,cagliari,hindustan,symbolizing,watertown,descartes,relayed,enclosures,militarily,sault,devolved,dalian,djokovic,filaments,staunton,tumour,curia,villainous,decentralized,galapagos,moncton,quartets,onscreen,necropolis,brasileiro,multipurpose,alamos,comarca,jorgen,concise,mercia,saitama,billiards,entomologist,montserrat,lindbergh,commuting,lethbridge,phoenician,deviations,anaerobic,denouncing,redoubt,fachhochschule,principalities,negros,announcers,seconded,parrots,konami,revivals,approving,devotee,riyadh,overtook,morecambe,lichen,expressionist,waterline,silverstone,geffen,sternites,aspiration,behavioural,grenville,tripura,mediums,genders,pyotr,charlottesville,sacraments,programmable,ps100,shackleton,garonne,sumerian,surpass,authorizing,interlocking,lagoons,voiceless,advert,steeple,boycotted,alouettes,yosef,oxidative,sassanid,benefiting,sayyid,nauru,predetermined,idealism,maxillary,polymerization,semesters,munchen,conor,outfitted,clapham,progenitor,gheorghe,observational,recognitions,numerically,colonized,hazrat,indore,contaminants,fatality,eradicate,assyria,convocation,cameos,skillful,skoda,corfu,confucius,overtly,ramadan,wollongong,placements,d.c..,permutation,contemporaneous,voltages,elegans,universitat,samar,plunder,dwindling,neuter,antonin,sinhala,campania,solidified,stanzas,fibrous,marburg,modernize,sorcery,deutscher,florets,thakur,disruptive,infielder,disintegration,internazionale,vicariate,effigy,tripartite,corrective,klamath,environs,leavenworth,sandhurst,workmen,compagnie,hoseynabad,strabo,palisades,ordovician,sigurd,grandsons,defection,viacom,sinhalese,innovator,uncontrolled,slavonic,indexes,refrigeration,aircrew,superbike,resumption,neustadt,confrontations,arras,hindenburg,ripon,embedding,isomorphism,dwarves,matchup,unison,lofty,argos,louth,constitutionally,transitive,newington,facelift,degeneration,perceptual,aviators,enclosing,igneous,symbolically,academician,constitutionality,iso/iec,sacrificial,maturation,apprentices,enzymology,naturalistic,hajji,arthropods,abbess,vistula,scuttled,gradients,pentathlon,etudes,freedmen,melaleuca,thrice,conductive,sackville,franciscans,stricter,golds,kites,worshiped,monsignor,trios,orally,tiered,primacy,bodywork,castleford,epidemics,alveolar,chapelle,chemists,hillsboro,soulful,warlords,ngati,huguenot,diurnal,remarking,luger,motorways,gauss,jahan,cutoff,proximal,bandai,catchphrase,jonubi,ossetia,codename,codice_2,throated,itinerant,chechnya,riverfront,leela,evoked,entailed,zamboanga,rejoining,circuitry,haymarket,khartoum,feuds,braced,miyazaki,mirren,lubusz,caricature,buttresses,attrition,characterizes,widnes,evanston,materialism,contradictions,marist,midrash,gainsborough,ulithi,turkmen,vidya,escuela,patrician,inspirations,reagent,premierships,humanistic,euphrates,transitioning,belfry,zedong,adaption,kaliningrad,lobos,epics,waiver,coniferous,polydor,inductee,refitted,moraine,unsatisfactory,worsening,polygamy,rajya,nested,subgenre,broadside,stampeders,lingua,incheon,pretender,peloton,persuading,excitation,multan,predates,tonne,brackish,autoimmune,insulated,podcasts,iraqis,bodybuilding,condominiums,midlothian,delft,debtor,asymmetrical,lycaenidae,forcefully,pathogenic,tamaulipas,andaman,intravenous,advancements,senegalese,chronologically,realigned,inquirer,eusebius,dekalb,additives,shortlist,goldwater,hindustani,auditing,caterpillars,pesticide,nakhon,ingestion,lansdowne,traditionalist,northland,thunderbirds,josip,nominating,locale,ventricular,animators,verandah,epistles,surveyors,anthems,dredd,upheaval,passaic,anatolian,svalbard,associative,floodplain,taranaki,estuaries,irreducible,beginners,hammerstein,allocate,coursework,secreted,counteract,handwritten,foundational,passover,discoverer,decoding,wares,bourgeoisie,playgrounds,nazionale,abbreviations,seanad,golan,mishra,godavari,rebranding,attendances,backstory,interrupts,lettered,hasbro,ultralight,hormozgan,armee,moderne,subdue,disuse,improvisational,enrolment,persists,moderated,carinthia,hatchback,inhibitory,capitalized,anatoly,abstracts,albemarle,bergamo,insolvency,sentai,cellars,walloon,joked,kashmiri,dirac,materialized,renomination,homologous,gusts,eighteens,centrifugal,storied,baluchestan,formula_26,poincare,vettel,infuriated,gauges,streetcars,vedanta,stately,liquidated,goguryeo,swifts,accountancy,levee,acadian,hydropower,eustace,comintern,allotment,designating,torsion,molding,irritation,aerobic,halen,concerted,plantings,garrisoned,gramophone,cytoplasm,onslaught,requisitioned,relieving,genitive,centrist,jeong,espanola,dissolving,chatterjee,sparking,connaught,varese,arjuna,carpathian,empowering,meteorologist,decathlon,opioid,hohenzollern,fenced,ibiza,avionics,footscray,scrum,discounts,filament,directories,a.f.c,stiffness,quaternary,adventurers,transmits,harmonious,taizong,radiating,germantown,ejection,projectors,gaseous,nahuatl,vidyalaya,nightlife,redefined,refuted,destitute,arista,potters,disseminated,distanced,jamboree,kaohsiung,tilted,lakeshore,grained,inflicting,kreis,novelists,descendents,mezzanine,recast,fatah,deregulation,ac/dc,australis,kohgiluyeh,boreal,goths,authoring,intoxicated,nonpartisan,theodosius,pyongyang,shree,boyhood,sanfl,plenipotentiary,photosynthesis,presidium,sinaloa,honshu,texan,avenida,transmembrane,malays,acropolis,catalunya,vases,inconsistencies,methodists,quell,suisse,banat,simcoe,cercle,zealanders,discredited,equine,sages,parthian,fascists,interpolation,classifying,spinoff,yehuda,cruised,gypsum,foaled,wallachia,saraswati,imperialist,seabed,footnotes,nakajima,locales,schoolmaster,drosophila,bridgehead,immanuel,courtier,bookseller,niccolo,stylistically,portmanteau,superleague,konkani,millimetres,arboreal,thanjavur,emulation,sounders,decompression,commoners,infusion,methodological,osage,rococo,anchoring,bayreuth,formula_27,abstracting,symbolized,bayonne,electrolyte,rowed,corvettes,traversing,editorship,sampler,presidio,curzon,adirondack,swahili,rearing,bladed,lemur,pashtun,behaviours,bottling,zaire,recognisable,systematics,leeward,formulae,subdistricts,smithfield,vijaya,buoyancy,boosting,cantonal,rishi,airflow,kamakura,adana,emblems,aquifer,clustering,husayn,woolly,wineries,montessori,turntable,exponentially,caverns,espoused,pianists,vorpommern,vicenza,latterly,o'rourke,williamstown,generale,kosice,duisburg,poirot,marshy,mismanagement,mandalay,dagenham,universes,chiral,radiated,stewards,vegan,crankshaft,kyrgyz,amphibian,cymbals,infrequently,offenbach,environmentalist,repatriated,permutations,midshipmen,loudoun,refereed,bamberg,ornamented,nitric,selim,translational,dorsum,annunciation,gippsland,reflector,informational,regia,reactionary,ahmet,weathering,erlewine,legalized,berne,occupant,divas,manifests,analyzes,disproportionate,mitochondria,totalitarian,paulista,interscope,anarcho,correlate,brookfield,elongate,brunel,ordinal,precincts,volatility,equaliser,hittite,somaliland,ticketing,monochrome,ubuntu,chhattisgarh,titleholder,ranches,referendums,blooms,accommodates,merthyr,religiously,ryukyu,tumultuous,checkpoints,anode,mi'kmaq,cannonball,punctuation,remodelled,assassinations,criminology,alternates,yonge,pixar,namibian,piraeus,trondelag,hautes,lifeboats,shoal,atelier,vehemently,sadat,postcode,jainism,lycoming,undisturbed,lutherans,genomics,popmatters,tabriz,isthmian,notched,autistic,horsham,mites,conseil,bloomsbury,seung,cybertron,idris,overhauled,disbandment,idealized,goldfields,worshippers,lobbyist,ailments,paganism,herbarium,athenians,messerschmitt,faraday,entangled,'olya,untreated,criticising,howitzers,parvati,lobed,debussy,atonement,tadeusz,permeability,mueang,sepals,degli,optionally,fuelled,follies,asterisk,pristina,lewiston,congested,overpass,affixed,pleads,telecasts,stanislaus,cryptographic,friesland,hamstring,selkirk,antisubmarine,inundated,overlay,aggregates,fleur,trolleybus,sagan,ibsen,inductees,beltway,tiled,ladders,cadbury,laplace,ascetic,micronesia,conveying,bellingham,cleft,batches,usaid,conjugation,macedon,assisi,reappointed,brine,jinnah,prairies,screenwriting,oxidized,despatches,linearly,fertilizers,brazilians,absorbs,wagga,modernised,scorsese,ashraf,charlestown,esque,habitable,nizhny,lettres,tuscaloosa,esplanade,coalitions,carbohydrates,legate,vermilion,standardised,galleria,psychoanalytic,rearrangement,substation,competency,nationalised,reshuffle,reconstructions,mehdi,bougainville,receivership,contraception,enlistment,conducive,aberystwyth,solicitors,dismisses,fibrosis,montclair,homeowner,surrealism,s.h.i.e.l.d,peregrine,compilers,
1790s,parentage,palmas,rzeszow,worldview,eased,svenska,housemate,bundestag,originator,enlisting,outwards,reciprocity,formula_28,carbohydrate,democratically,firefighting,romagna,acknowledgement,khomeini,carbide,quests,vedas,characteristically,guwahati,brixton,unintended,brothels,parietal,namur,sherbrooke,moldavian,baruch,milieu,undulating,laurier,entre,dijon,ethylene,abilene,heracles,paralleling,ceres,dundalk,falun,auspicious,chisinau,polarity,foreclosure,templates,ojibwe,punic,eriksson,biden,bachchan,glaciation,spitfires,norsk,nonviolent,heidegger,algonquin,capacitance,cassettes,balconies,alleles,airdate,conveys,replays,classifies,infrequent,amine,cuttings,rarer,woking,olomouc,amritsar,rockabilly,illyrian,maoist,poignant,tempore,stalinist,segmented,bandmate,mollusc,muhammed,totalled,byrds,tendered,endogenous,kottayam,aisne,oxidase,overhears,illustrators,verve,commercialization,purplish,directv,moulded,lyttelton,baptismal,captors,saracens,georgios,shorten,polity,grids,fitzwilliam,sculls,impurities,confederations,akhtar,intangible,oscillations,parabolic,harlequin,maulana,ovate,tanzanian,singularity,confiscation,qazvin,speyer,phonemes,overgrown,vicarage,gurion,undocumented,niigata,thrones,preamble,stave,interment,liiga,ataturk,aphrodite,groupe,indentured,habsburgs,caption,utilitarian,ozark,slovenes,reproductions,plasticity,serbo,dulwich,castel,barbuda,salons,feuding,lenape,wikileaks,swamy,breuning,shedding,afield,superficially,operationally,lamented,okanagan,hamadan,accolade,furthering,adolphus,fyodor,abridged,cartoonists,pinkish,suharto,cytochrome,methylation,debit,colspan=
9|,refine,taoist,signalled,herding,leaved,bayan,fatherland,rampart,sequenced,negation,storyteller,occupiers,barnabas,pelicans,nadir,conscripted,railcars,prerequisite,furthered,columba,carolinas,markup,gwalior,franche,chaco,eglinton,ramparts,rangoon,metabolites,pollination,croat,televisa,holyoke,testimonial,setlist,safavid,sendai,georgians,shakespearean,galleys,regenerative,krzysztof,overtones,estado,barbary,cherbourg,obispo,sayings,composites,sainsbury,deliberation,cosmological,mahalleh,embellished,ascap,biala,pancras,calumet,grands,canvases,antigens,marianas,defenseman,approximated,seedlings,soren,stele,nuncio,immunology,testimonies,glossary,recollections,suitability,tampere,venous,cohomology,methanol,echoing,ivanovich,warmly,sterilization,imran,multiplying,whitechapel,undersea,xuanzong,tacitus,bayesian,roundhouse,correlations,rioters,molds,fiorentina,bandmates,mezzo,thani,guerilla,
200th,premiums,tamils,deepwater,chimpanzees,tribesmen,selwyn,globo,turnovers,punctuated,erode,nouvelle,banbury,exponents,abolishing,helical,maimonides,endothelial,goteborg,infield,encroachment,cottonwood,mazowiecki,parable,saarbrucken,reliever,epistemology,artistes,enrich,rationing,formula_29,palmyra,subfamilies,kauai,zoran,fieldwork,arousal,creditor,friuli,celts,comoros,equated,escalation,negev,tallied,inductive,anion,netanyahu,mesoamerican,lepidoptera,aspirated,remit,westmorland,italic,crosse,vaclav,fuego,owain,balmain,venetians,ethnicities,deflected,ticino,apulia,austere,flycatcher,reprising,repressive,hauptbahnhof,subtype,ophthalmology,summarizes,eniwetok,colonisation,subspace,nymphalidae,earmarked,tempe,burnet,crests,abbots,norwegians,enlarge,ashoka,frankfort,livorno,malware,renters,singly,iliad,moresby,rookies,gustavus,affirming,alleges,legume,chekhov,studded,abdicated,suzhou,isidore,townsite,repayment,quintus,yankovic,amorphous,constructor,narrowing,industrialists,tanganyika,capitalization,connective,mughals,rarities,aerodynamics,worthing,antalya,diagnostics,shaftesbury,thracian,obstetrics,benghazi,multiplier,orbitals,livonia,roscommon,intensify,ravel,oaths,overseer,locomotion,necessities,chickasaw,strathclyde,treviso,erfurt,aortic,contemplation,accrington,markazi,predeceased,hippocampus,whitecaps,assemblyman,incursion,ethnography,extraliga,reproducing,directorship,benzene,byway,stupa,taxable,scottsdale,onondaga,favourably,countermeasures,lithuanians,thatched,deflection,tarsus,consuls,annuity,paralleled,contextual,anglian,klang,hoisted,multilingual,enacting,samaj,taoiseach,carthaginian,apologised,hydrology,entrant,seamless,inflorescences,mugabe,westerners,seminaries,wintering,penzance,mitre,sergeants,unoccupied,delimitation,discriminate,upriver,abortive,nihon,bessarabia,calcareous,buffaloes,patil,daegu,streamline,berks,chaparral,laity,conceptions,typified,kiribati,threaded,mattel,eccentricity,signified,patagonia,slavonia,certifying,adnan,astley,sedition,minimally,enumerated,nikos,goalless,walid,narendra,causa,missoula,coolant,dalek,outcrop,hybridization,schoolchildren,peasantry,afghans,confucianism,shahr,gallic,tajik,kierkegaard,sauvignon,commissar,patriarchs,tuskegee,prussians,laois,ricans,talmudic,officiating,aesthetically,baloch,antiochus,separatists,suzerainty,arafat,shading,u.s.c,chancellors,inc..,toolkit,nepenthes,erebidae,solicited,pratap,kabbalah,alchemist,caltech,darjeeling,biopic,spillway,kaiserslautern,nijmegen,bolstered,neath,pahlavi,eugenics,bureaus,retook,northfield,instantaneous,deerfield,humankind,selectivity,putative,boarders,cornhuskers,marathas,raikkonen,aliabad,mangroves,garages,gulch,karzai,poitiers,chernobyl,thane,alexios,belgrano,scion,solubility,urbanized,executable,guizhou,nucleic,tripled,equalled,harare,houseguests,potency,ghazi,repeater,overarching,regrouped,broward,ragtime,d'art,nandi,regalia,campsites,mamluk,plating,wirral,presumption,zenit,archivist,emmerdale,decepticon,carabidae,kagoshima,franconia,guarani,formalism,diagonally,submarginal,denys,walkways,punts,metrolink,hydrographic,droplets,upperside,martyred,hummingbird,antebellum,curiously,mufti,friary,chabad,czechs,shaykh,reactivity,berklee,turbonilla,tongan,sultans,woodville,unlicensed,enmity,dominicans,operculum,quarrying,watercolour,catalyzed,gatwick,'what,mesozoic,auditors,shizuoka,footballing,haldane,telemundo,appended,deducted,disseminate,o'shea,pskov,abrasive,entente,gauteng,calicut,lemurs,elasticity,suffused,scopula,staining,upholding,excesses,shostakovich,loanwords,naidu,championnat,chromatography,boasting,goaltenders,engulfed,salah,kilogram,morristown,shingles,shi'a,labourer,renditions,frantisek,jekyll,zonal,nanda,sheriffs,eigenvalues,divisione,endorsing,ushered,auvergne,cadres,repentance,freemasons,utilising,laureates,diocletian,semiconductors,o'grady,vladivostok,sarkozy,trackage,masculinity,hydroxyl,mervyn,muskets,speculations,gridiron,opportunistic,mascots,aleutian,fillies,sewerage,excommunication,borrowers,capillary,trending,sydenham,synthpop,rajah,cagayan,deportes,kedah,faure,extremism,michoacan,levski,culminates,occitan,bioinformatics,unknowingly,inciting,emulated,footpaths,piacenza,dreadnought,viceroyalty,oceanographic,scouted,combinatorial,ornithologist,cannibalism,mujahideen,independiente,cilicia,hindwing,minimized,odeon,gyorgy,rubles,purchaser,collieries,kickers,interurban,coiled,lynchburg,respondent,plzen,detractors,etchings,centering,intensification,tomography,ranjit,warblers,retelling,reinstatement,cauchy,modulus,redirected,evaluates,beginner,kalateh,perforated,manoeuvre,scrimmage,internships,megawatts,mottled,haakon,tunbridge,kalyan,summarised,sukarno,quetta,canonized,henryk,agglomeration,coahuila,diluted,chiropractic,yogyakarta,talladega,sheik,cation,halting,reprisals,sulfuric,musharraf,sympathizers,publicised,arles,lectionary,fracturing,startups,sangha,latrobe,rideau,ligaments,blockading,cremona,lichens,fabaceae,modulated,evocative,embodies,battersea,indistinct,altai,subsystem,acidity,somatic,formula_30,tariq,rationality,sortie,ashlar,pokal,cytoplasmic,valour,bangla,displacing,hijacking,spectrometry,westmeath,weill,charing,goias,revolvers,individualized,tenured,nawaz,piquet,chanted,discard,bernd,phalanx,reworking,unilaterally,subclass,yitzhak,piloting,circumvent,disregarded,semicircular,viscous,tibetans,endeavours,retaliated,cretan,vienne,workhouse,sufficiency,aurangzeb,legalization,lipids,expanse,eintracht,sanjak,megas,
125th,bahraini,yakima,eukaryotes,thwart,affirmation,peloponnese,retailing,carbonyl,chairwoman,macedonians,dentate,rockaway,correctness,wealthier,metamorphic,aragonese,fermanagh,pituitary,schrodinger,evokes,spoiler,chariots,akita,genitalia,combe,confectionery,desegregation,experiential,commodores,persepolis,viejo,restorations,virtualization,hispania,printmaking,stipend,yisrael,theravada,expended,radium,tweeted,polygonal,lippe,charente,leveraged,cutaneous,fallacy,fragrant,bypasses,elaborately,rigidity,majid,majorca,kongo,plasmodium,skits,audiovisual,eerste,staircases,prompts,coulthard,northwestward,riverdale,beatrix,copyrights,prudential,communicates,mated,obscenity,asynchronous,analyse,hansa,searchlight,farnborough,patras,asquith,qarah,contours,fumbled,pasteur,redistributed,almeria,sanctuaries,jewry,israelite,clinicians,koblenz,bookshop,affective,goulburn,panelist,sikorsky,cobham,mimics,ringed,portraiture,probabilistic,girolamo,intelligible,andalusian,jalal,athenaeum,eritrean,auxiliaries,pittsburg,devolution,sangam,isolating,anglers,cronulla,annihilated,kidderminster,synthesize,popularised,theophilus,bandstand,innumerable,chagrin,retroactively,weser,multiples,birdlife,goryeo,pawnee,grosser,grappling,tactile,ahmadinejad,turboprop,erdogan,matchday,proletarian,adhering,complements,austronesian,adverts,luminaries,archeology,impressionism,conifer,sodomy,interracial,platoons,lessen,postings,pejorative,registrations,cookery,persecutions,microbes,audits,idiosyncratic,subsp,suspensions,restricts,colouring,ratify,instrumentals,nucleotides,sulla,posits,bibliotheque,diameters,oceanography,instigation,subsumed,submachine,acceptor,legation,borrows,sedge,discriminated,loaves,insurers,highgate,detectable,abandons,kilns,sportscaster,harwich,iterations,preakness,arduous,tensile,prabhu,shortwave,philologist,shareholding,vegetative,complexities,councilors,distinctively,revitalize,automaton,amassing,montreux,khanh,surabaya,nurnberg,pernambuco,cuisines,charterhouse,firsts,tercera,inhabitant,homophobia,naturalism,einar,powerplant,coruna,entertainments,whedon,rajputs,raton,democracies,arunachal,oeuvre,wallonia,jeddah,trolleybuses,evangelism,vosges,kiowa,minimise,encirclement,undertakes,emigrant,beacons,deepened,grammars,publius,preeminent,seyyed,repechage,crafting,headingley,osteopathic,lithography,hotly,bligh,inshore,betrothed,olympians,formula_31,dissociation,trivandrum,arran,petrovic,stettin,disembarked,simplification,bronzes,philo,acrobatic,jonsson,conjectured,supercharged,kanto,detects,cheeses,correlates,harmonics,lifecycle,sudamericana,reservists,decayed,elitserien,parametric,
113th,dusky,hogarth,modulo,symbiotic,monopolies,discontinuation,converges,southerners,tucuman,eclipses,enclaves,emits,famicom,caricatures,artistically,levelled,mussels,erecting,mouthparts,cunard,octaves,crucible,guardia,unusable,lagrangian,droughts,ephemeral,pashto,canis,tapering,sasebo,silurian,metallurgical,outscored,evolves,reissues,sedentary,homotopy,greyhawk,reagents,inheriting,onshore,tilting,rebuffed,reusable,naturalists,basingstoke,insofar,offensives,dravidian,curators,planks,rajan,isoforms,flagstaff,preside,globular,egalitarian,linkages,biographers,goalscorers,molybdenum,centralised,nordland,jurists,ellesmere,rosberg,hideyoshi,restructure,biases,borrower,scathing,redress,tunnelling,workflow,magnates,mahendra,dissenters,plethora,transcriptions,handicrafts,keyword,xi'an,petrograd,unser,prokofiev,
90deg,madan,bataan,maronite,kearny,carmarthen,termini,consulates,disallowed,rockville,bowery,fanzine,docklands,bests,prohibitions,yeltsin,selassie,naturalization,realisation,dispensary,tribeca,abdulaziz,pocahontas,stagnation,pamplona,cuneiform,propagating,subsurface,christgau,epithelium,schwerin,lynching,routledge,hanseatic,upanishad,glebe,yugoslavian,complicity,endowments,girona,mynetworktv,entomology,plinth,ba'ath,supercup,torus,akkadian,salted,englewood,commandery,belgaum,prefixed,colorless,dartford,enthroned,caesarea,nominative,sandown,safeguards,hulled,formula_32,leamington,dieppe,spearhead,generalizations,demarcation,llanelli,masque,brickwork,recounting,sufism,strikingly,petrochemical,onslow,monologues,emigrating,anderlecht,sturt,hossein,sakhalin,subduction,novices,deptford,zanjan,airstrikes,coalfield,reintroduction,timbaland,hornby,messianic,stinging,universalist,situational,radiocarbon,strongman,rowling,saloons,traffickers,overran,fribourg,cambrai,gravesend,discretionary,finitely,archetype,assessor,pilipinas,exhumed,invocation,interacted,digitized,timisoara,smelter,teton,sexism,precepts,srinagar,pilsudski,carmelite,hanau,scoreline,hernando,trekking,blogging,fanbase,wielded,vesicles,nationalization,banja,rafts,motoring,luang,takeda,girder,stimulates,histone,sunda,nanoparticles,attains,jumpers,catalogued,alluding,pontus,ancients,examiners,shinkansen,ribbentrop,reimbursement,pharmacological,ramat,stringed,imposes,cheaply,transplanted,taiping,mizoram,looms,wallabies,sideman,kootenay,encased,sportsnet,revolutionized,tangier,benthic,runic,pakistanis,heatseekers,shyam,mishnah,presbyterians,stadt,sutras,straddles,zoroastrian,infer,fueling,gymnasts,ofcom,gunfight,journeyman,tracklist,oshawa,ps500,pa'in,mackinac,xiongnu,mississippian,breckinridge,freemason,bight,autoroute,liberalization,distantly,thrillers,solomons,presumptive,romanization,anecdotal,bohemians,unpaved,milder,concurred,spinners,alphabets,strenuous,rivieres,kerrang,mistreatment,dismounted,intensively,carlist,dancehall,shunting,pluralism,trafficked,brokered,bonaventure,bromide,neckar,designates,malian,reverses,sotheby,sorghum,serine,environmentalists,languedoc,consulship,metering,bankstown,handlers,militiamen,conforming,regularity,pondicherry,armin,capsized,consejo,capitalists,drogheda,granular,purged,acadians,endocrine,intramural,elicit,terns,orientations,miklos,omitting,apocryphal,slapstick,brecon,pliocene,affords,typography,emigre,tsarist,tomasz,beset,nishi,necessitating,encyclical,roleplaying,journeyed,inflow,sprints,progressives,novosibirsk,cameroonian,ephesus,speckled,kinshasa,freiherr,burnaby,dalmatian,torrential,rigor,renegades,bhakti,nurburgring,cosimo,convincingly,reverting,visayas,lewisham,charlottetown,charadriiformesfamily,transferable,jodhpur,converters,deepening,camshaft,underdeveloped,protease,polonia,uterine,quantify,tobruk,dealerships,narasimha,fortran,inactivity,
1780s,victors,categorised,naxos,workstation,skink,sardinian,chalice,precede,dammed,sondheim,phineas,tutored,sourcing,uncompromising,placer,tyneside,courtiers,proclaims,pharmacies,hyogo,booksellers,sengoku,kursk,spectrometer,countywide,wielkopolski,bobsleigh,shetty,llywelyn,consistory,heretics,guinean,cliches,individualism,monolithic,imams,usability,bursa,deliberations,railings,torchwood,inconsistency,balearic,stabilizer,demonstrator,facet,radioactivity,outboard,educates,d'oyly,heretical,handover,jurisdictional,shockwave,hispaniola,conceptually,routers,unaffiliated,trentino,formula_33,cypriots,intervenes,neuchatel,formulating,maggiore,delisted,alcohols,thessaly,potable,estimator,suborder,fluency,mimicry,clergymen,infrastructures,rivals.com,baroda,subplot,majlis,plano,clinching,connotation,carinae,savile,intercultural,transcriptional,sandstones,ailerons,annotations,impresario,heinkel,scriptural,intermodal,astrological,ribbed,northeastward,posited,boers,utilise,kalmar,phylum,breakwater,skype,textured,guideline,azeri,rimini,massed,subsidence,anomalous,wolfsburg,polyphonic,accrediting,vodacom,kirov,captaining,kelantan,logie,fervent,eamon,taper,bundeswehr,disproportionately,divination,slobodan,pundits,hispano,kinetics,reunites,makati,ceasing,statistician,amending,chiltern,eparchy,riverine,melanoma,narragansett,pagans,raged,toppled,breaching,zadar,holby,dacian,ochre,velodrome,disparities,amphoe,sedans,webpage,williamsport,lachlan,groton,baring,swastika,heliport,unwillingness,razorbacks,exhibitors,foodstuffs,impacting,tithe,appendages,dermot,subtypes,nurseries,balinese,simulating,stary,remakes,mundi,chautauqua,geologically,stockade,hakka,dilute,kalimantan,pahang,overlapped,fredericton,baha'u'llah,jahangir,damping,benefactors,shomali,triumphal,cieszyn,paradigms,shielded,reggaeton,maharishi,zambian,shearing,golestan,mirroring,partitioning,flyover,songbook,incandescent,merrimack,huguenots,sangeet,vulnerabilities,trademarked,drydock,tantric,honoris,queenstown,labelling,iterative,enlists,statesmen,anglicans,herge,qinghai,burgundian,islami,delineated,zhuge,aggregated,banknote,qatari,suitably,tapestries,asymptotic,charleroi,majorities,pyramidellidae,leanings,climactic,tahir,ramsar,suppressor,revisionist,trawler,ernakulam,penicillium,categorization,slits,entitlement,collegium,earths,benefice,pinochet,puritans,loudspeaker,stockhausen,eurocup,roskilde,alois,jaroslav,rhondda,boutiques,vigor,neurotransmitter,ansar,malden,ferdinando,sported,relented,intercession,camberwell,wettest,thunderbolts,positional,oriel,cloverleaf,penalized,shoshone,rajkumar,completeness,sharjah,chromosomal,belgians,woolen,ultrasonic,sequentially,boleyn,mordella,microsystems,initiator,elachista,mineralogy,rhododendron,integrals,compostela,hamza,sawmills,stadio,berlioz,maidens,stonework,yachting,tappeh,myocardial,laborer,workstations,costumed,nicaea,lanark,roundtable,mashhad,nablus,algonquian,stuyvesant,sarkar,heroines,diwan,laments,intonation,intrigues,almaty,feuded,grandes,algarve,rehabilitate,macrophages,cruciate,dismayed,heuristic,eliezer,kozhikode,covalent,finalised,dimorphism,yaroslavl,overtaking,leverkusen,middlebury,feeders,brookings,speculates,insoluble,lodgings,jozsef,cysteine,shenyang,habilitation,spurious,brainchild,mtdna,comique,albedo,recife,partick,broadening,shahi,orientated,himalaya,swabia,palme,mennonites,spokeswoman,conscripts,sepulchre,chartres,eurozone,scaffold,invertebrate,parishad,bagan,heian,watercolors,basse,supercomputer,commences,tarragona,plainfield,arthurian,functor,identically,murex,chronicling,pressings,burrowing,histoire,guayaquil,goalkeeping,differentiable,warburg,machining,aeneas,kanawha,holocene,ramesses,reprisal,qingdao,avatars,turkestan,cantatas,besieging,repudiated,teamsters,equipping,hydride,ahmadiyya,euston,bottleneck,computations,terengganu,kalinga,stela,rediscovery,'this,azhar,stylised,karelia,polyethylene,kansai,motorised,lounges,normalization,calculators,
1700s,goalkeepers,unfolded,commissary,cubism,vignettes,multiverse,heaters,briton,sparingly,childcare,thorium,plock,riksdag,eunuchs,catalysis,limassol,perce,uncensored,whitlam,ulmus,unites,mesopotamian,refraction,biodiesel,forza,fulda,unseated,mountbatten,shahrak,selenium,osijek,mimicking,antimicrobial,axons,simulcasting,donizetti,swabian,sportsmen,hafiz,neared,heraclius,locates,evaded,subcarpathian,bhubaneswar,negeri,jagannath,thaksin,aydin,oromo,lateran,goldsmiths,multiculturalism,cilia,mihai,evangelists,lorient,qajar,polygons,vinod,mechanised,anglophone,prefabricated,mosses,supervillain,airliners,biofuels,iodide,innovators,valais,wilberforce,logarithm,intelligentsia,dissipation,sanctioning,duchies,aymara,porches,simulators,mostar,telepathic,coaxial,caithness,burghs,fourths,stratification,joaquim,scribes,meteorites,monarchist,germination,vries,desiring,replenishment,istria,winemaking,tammany,troupes,hetman,lanceolate,pelagic,triptych,primeira,scant,outbound,hyphae,denser,bentham,basie,normale,executes,ladislaus,kontinental,herat,cruiserweight,activision,customization,manoeuvres,inglewood,northwood,waveform,investiture,inpatient,alignments,kiryat,rabat,archimedes,ustad,monsanto,archetypal,kirkby,sikhism,correspondingly,catskill,overlaid,petrels,widowers,unicameral,federalists,metalcore,gamerankings,mussel,formula_34,lymphocytes,cystic,southgate,vestiges,immortals,kalam,strove,amazons,pocono,sociologists,sopwith,adheres,laurens,caregivers,inspecting,transylvanian,rebroadcast,rhenish,miserables,pyrams,blois,newtonian,carapace,redshirt,gotland,nazir,unilever,distortions,linebackers,federalism,mombasa,lumen,bernoulli,favouring,aligarh,denounce,steamboats,dnieper,stratigraphic,synths,bernese,umass,icebreaker,guanajuato,heisenberg,boldly,diodes,ladakh,dogmatic,scriptwriter,maritimes,battlestar,symposia,adaptable,toluca,bhavan,nanking,ieyasu,picardy,soybean,adalbert,brompton,deutsches,brezhnev,glandular,laotian,hispanicized,ibadan,personification,dalit,yamuna,regio,dispensed,yamagata,zweibrucken,revising,fandom,stances,participle,flavours,khitan,vertebral,crores,mayaguez,dispensation,guntur,undefined,harpercollins,unionism,meena,leveling,philippa,refractory,telstra,judea,attenuation,pylons,elaboration,elegy,edging,gracillariidae,residencies,absentia,reflexive,deportations,dichotomy,stoves,sanremo,shimon,menachem,corneal,conifers,mordellidae,facsimile,diagnoses,cowper,citta,viticulture,divisive,riverview,foals,mystics,polyhedron,plazas,airspeed,redgrave,motherland,impede,multiplicity,barrichello,airships,pharmacists,harvester,clays,payloads,differentiating,popularize,caesars,tunneling,stagnant,circadian,indemnity,sensibilities,musicology,prefects,serfs,metra,lillehammer,carmarthenshire,kiosks,welland,barbican,alkyl,tillandsia,gatherers,asociacion,showings,bharati,brandywine,subversion,scalable,pfizer,dawla,barium,dardanelles,nsdap,konig,ayutthaya,hodgkin,sedimentation,completions,purchasers,sponsorships,maximizing,banked,taoism,minot,enrolls,fructose,aspired,capuchin,outages,artois,carrollton,totality,osceola,pawtucket,fontainebleau,converged,queretaro,competencies,botha,allotments,sheaf,shastri,obliquely,banding,catharines,outwardly,monchengladbach,driest,contemplative,cassini,ranga,pundit,kenilworth,tiananmen,disulfide,formula_35,townlands,codice_3,looping,caravans,rachmaninoff,segmentation,fluorine,anglicised,gnostic,dessau,discern,reconfigured,altrincham,rebounding,battlecruiser,ramblers,
1770s,convective,triomphe,miyagi,mourners,instagram,aloft,breastfeeding,courtyards,folkestone,changsha,kumamoto,saarland,grayish,provisionally,appomattox,uncial,classicism,mahindra,elapsed,supremes,monophyletic,cautioned,formula_36,noblewoman,kernels,sucre,swaps,bengaluru,grenfell,epicenter,rockhampton,worshipful,licentiate,metaphorical,malankara,amputated,wattle,palawan,tankobon,nobunaga,polyhedra,transduction,jilin,syrians,affinities,fluently,emanating,anglicized,sportscar,botanists,altona,dravida,chorley,allocations,kunming,luanda,premiering,outlived,mesoamerica,lingual,dissipating,impairments,attenborough,balustrade,emulator,bakhsh,cladding,increments,ascents,workington,qal'eh,winless,categorical,petrel,emphasise,dormer,toros,hijackers,telescopic,solidly,jankovic,cession,gurus,madoff,newry,subsystems,northside,talib,englishmen,farnese,holographic,electives,argonne,scrivener,predated,brugge,nauvoo,catalyses,soared,siddeley,graphically,powerlifting,funicular,sungai,coercive,fusing,uncertainties,locos,acetic,diverge,wedgwood,dressings,tiebreaker,didactic,vyacheslav,acreage,interplanetary,battlecruisers,sunbury,alkaloids,hairpin,automata,wielkie,interdiction,plugins,monkees,nudibranch,esporte,approximations,disabling,powering,characterisation,ecologically,martinsville,termen,perpetuated,lufthansa,ascendancy,motherboard,bolshoi,athanasius,prunus,dilution,invests,nonzero,mendocino,charan,banque,shaheed,counterculture,unita,voivode,hospitalization,vapour,supermarine,resistor,steppes,osnabruck,intermediates,benzodiazepines,sunnyside,privatized,geopolitical,ponta,beersheba,kievan,embody,theoretic,sangh,cartographer,blige,rotors,thruway,battlefields,discernible,demobilized,broodmare,colouration,sagas,policymakers,serialization,augmentation,hoare,frankfurter,transnistria,kinases,detachable,generational,converging,antiaircraft,khaki,bimonthly,coadjutor,arkhangelsk,kannur,buffers,livonian,northwich,enveloped,cysts,yokozuna,herne,beeching,enron,virginian,woollen,excepting,competitively,outtakes,recombinant,hillcrest,clearances,pathe,cumbersome,brasov,u.s.a,likud,christiania,cruciform,hierarchies,wandsworth,lupin,resins,voiceover,sitar,electrochemical,mediacorp,typhus,grenadiers,hepatic,pompeii,weightlifter,bosniak,oxidoreductase,undersecretary,rescuers,ranji,seleucid,analysing,exegesis,tenancy,toure,kristiansand,
110th,carillon,minesweepers,poitou,acceded,palladian,redevelop,naismith,rifled,proletariat,shojo,hackensack,harvests,endpoint,kuban,rosenborg,stonehenge,authorisation,jacobean,revocation,compatriots,colliding,undetermined,okayama,acknowledgment,angelou,fresnel,chahar,ethereal,mg/kg,emmet,mobilised,unfavourable,cultura,characterizing,parsonage,skeptics,expressways,rabaul,medea,guardsmen,visakhapatnam,caddo,homophobic,elmwood,encircling,coexistence,contending,seljuk,mycologist,infertility,moliere,insolvent,covenants,underpass,holme,landesliga,workplaces,delinquency,methamphetamine,contrived,tableau,tithes,overlying,usurped,contingents,spares,oligocene,molde,beatification,mordechai,balloting,pampanga,navigators,flowered,debutant,codec,orogeny,newsletters,solon,ambivalent,ubisoft,archdeaconry,harpers,kirkus,jabal,castings,kazhagam,sylhet,yuwen,barnstaple,amidships,causative,isuzu,watchtower,granules,canaveral,remuneration,insurer,payout,horizonte,integrative,attributing,kiwis,skanderbeg,asymmetry,gannett,urbanism,disassembled,unaltered,precluded,melodifestivalen,ascends,plugin,gurkha,bisons,stakeholder,industrialisation,abbotsford,sextet,bustling,uptempo,slavia,choreographers,midwives,haram,javed,gazetteer,subsection,natively,weighting,lysine,meera,redbridge,muchmusic,abruzzo,adjoins,unsustainable,foresters,kbit/s,cosmopterigidae,secularism,poetics,causality,phonograph,estudiantes,ceausescu,universitario,adjoint,applicability,gastropods,nagaland,kentish,mechelen,atalanta,woodpeckers,lombards,gatineau,romansh,avraham,acetylcholine,perturbation,galois,wenceslaus,fuzhou,meandering,dendritic,sacristy,accented,katha,therapeutics,perceives,unskilled,greenhouses,analogues,chaldean,timbre,sloped,volodymyr,sadiq,maghreb,monogram,rearguard,caucuses,mures,metabolite,uyezd,determinism,theosophical,corbet,gaels,disruptions,bicameral,ribosomal,wolseley,clarksville,watersheds,tarsi,radon,milanese,discontinuous,aristotelian,whistleblower,representational,hashim,modestly,localised,atrial,hazara,ravana,troyes,appointees,rubus,morningside,amity,aberdare,ganglia,wests,zbigniew,aerobatic,depopulated,corsican,introspective,twinning,hardtop,shallower,cataract,mesolithic,emblematic,graced,lubrication,republicanism,voronezh,bastions,meissen,irkutsk,oboes,hokkien,sprites,tenet,individualist,capitulated,oakville,dysentery,orientalist,hillsides,keywords,elicited,incised,lagging,apoel,lengthening,attractiveness,marauders,sportswriter,decentralization,boltzmann,contradicts,draftsman,precipitate,solihull,norske,consorts,hauptmann,riflemen,adventists,syndromes,demolishing,customize,continuo,peripherals,seamlessly,linguistically,bhushan,orphanages,paraul,lessened,devanagari,quarto,responders,patronymic,riemannian,altoona,canonization,honouring,geodetic,exemplifies,republica,enzymatic,porters,fairmount,pampa,sufferers,kamchatka,conjugated,coachella,uthman,repositories,copious,headteacher,awami,phoneme,homomorphism,franconian,moorland,davos,quantified,kamloops,quarks,mayoralty,weald,peacekeepers,valerian,particulate,insiders,perthshire,caches,guimaraes,piped,grenadines,kosciuszko,trombonist,artemisia,covariance,intertidal,soybeans,beatified,ellipse,fruiting,deafness,dnipropetrovsk,accrued,zealous,mandala,causation,junius,kilowatt,bakeries,montpelier,airdrie,rectified,bungalows,toleration,debian,pylon,trotskyist,posteriorly,two-and-a-half,herbivorous,islamists,poetical,donne,wodehouse,frome,allium,assimilate,phonemic,minaret,unprofitable,darpa,untenable,leaflet,bitcoin,zahir,thresholds,argentino,jacopo,bespoke,stratified,wellbeing,shiite,basaltic,timberwolves,secrete,taunts,marathons,isomers,carre,consecrators,penobscot,pitcairn,sakha,crosstown,inclusions,impassable,fenders,indre,uscgc,jordi,retinue,logarithmic,pilgrimages,railcar,cashel,blackrock,macroscopic,aligning,tabla,trestle,certify,ronson,palps,dissolves,thickened,silicate,taman,walsingham,hausa,lowestoft,rondo,oleksandr,cuyahoga,retardation,countering,cricketing,holborn,identifiers,hells,geophysics,infighting,sculpting,balaji,webbed,irradiation,runestone,trusses,oriya,sojourn,forfeiture,colonize,exclaimed,eucharistic,lackluster,glazing,northridge,gutenberg,stipulates,macroeconomic,priori,outermost,annular,udinese,insulating,headliner,godel,polytope,megalithic,salix,sharapova,derided,muskegon,braintree,plateaus,confers,autocratic,isomer,interstitial,stamping,omits,kirtland,hatchery,evidences,intifada,
111th,podgorica,capua,motivating,nuneaton,jakub,korsakov,amitabh,mundial,monrovia,gluten,predictor,marshalling,d'orleans,levers,touchscreen,brantford,fricative,banishment,descendent,antagonism,ludovico,loudspeakers,formula_37,livelihoods,manassas,steamships,dewsbury,uppermost,humayun,lures,pinnacles,dependents,lecce,clumps,observatories,paleozoic,dedicating,samiti,draughtsman,gauls,incite,infringing,nepean,pythagorean,convents,triumvirate,seigneur,gaiman,vagrant,fossa,byproduct,serrated,renfrewshire,sheltering,achaemenid,dukedom,catchers,sampdoria,platelet,bielefeld,fluctuating,phenomenology,strikeout,ethnology,prospectors,woodworking,tatra,wildfires,meditations,agrippa,fortescue,qureshi,wojciech,methyltransferase,accusative,saatchi,amerindian,volcanism,zeeland,toyama,vladimirovich,allege,polygram,redox,budgeted,advisories,nematode,chipset,starscream,tonbridge,hardening,shales,accompanist,paraded,phonographic,whitefish,sportive,audiobook,kalisz,hibernation,latif,duels,ps200,coxeter,nayak,safeguarding,cantabria,minesweeping,zeiss,dunams,catholicos,sawtooth,ontological,nicobar,bridgend,unclassified,intrinsically,hanoverian,rabbitohs,kenseth,alcalde,northumbrian,raritan,septuagint,presse,sevres,origen,dandenong,peachtree,intersected,impeded,usages,hippodrome,novara,trajectories,customarily,yardage,inflected,yanow,kalan,taverns,liguria,librettist,intermarriage,
1760s,courant,gambier,infanta,ptolemaic,ukulele,haganah,sceptical,manchukuo,plexus,implantation,hilal,intersex,efficiencies,arbroath,hagerstown,adelphi,diario,marais,matti,lifes,coining,modalities,divya,bletchley,conserving,ivorian,mithridates,generative,strikeforce,laymen,toponymy,pogrom,satya,meticulously,agios,dufferin,yaakov,fortnightly,cargoes,deterrence,prefrontal,przemysl,mitterrand,commemorations,chatsworth,gurdwara,abuja,chakraborty,badajoz,geometries,artiste,diatonic,ganglion,presides,marymount,nanak,cytokines,feudalism,storks,rowers,widens,politico,evangelicals,assailants,pittsfield,allowable,bijapur,telenovelas,dichomeris,glenelg,herbivores,keita,inked,radom,fundraisers,constantius,boheme,portability,komnenos,crystallography,derrida,moderates,tavistock,fateh,spacex,disjoint,bristles,commercialized,interwoven,empirically,regius,bulacan,newsday,showa,radicalism,yarrow,pleura,sayed,structuring,cotes,reminiscences,acetyl,edicts,escalators,aomori,encapsulated,legacies,bunbury,placings,fearsome,postscript,powerfully,keighley,hildesheim,amicus,crevices,deserters,benelux,aurangabad,freeware,ioannis,carpathians,chirac,seceded,prepaid,landlocked,naturalised,yanukovych,soundscan,blotch,phenotypic,determinants,twente,dictatorial,giessen,composes,recherche,pathophysiology,inventories,ayurveda,elevating,gravestone,degeneres,vilayet,popularizing,spartanburg,bloemfontein,previewed,renunciation,genotype,ogilvy,tracery,blacklisted,emissaries,diploid,disclosures,tupolev,shinjuku,antecedents,pennine,braganza,bhattacharya,countable,spectroscopic,ingolstadt,theseus,corroborated,compounding,thrombosis,extremadura,medallions,hasanabad,lambton,perpetuity,glycol,besancon,palaiologos,pandey,caicos,antecedent,stratum,laserdisc,novitiate,crowdfunding,palatal,sorceress,dassault,toughness,celle,cezanne,vientiane,tioga,hander,crossbar,gisborne,cursor,inspectorate,serif,praia,sphingidae,nameplate,psalter,ivanovic,sitka,equalised,mutineers,sergius,outgrowth,creationism,haredi,rhizomes,predominate,undertakings,vulgate,hydrothermal,abbeville,geodesic,kampung,physiotherapy,unauthorised,asteraceae,conservationist,minoan,supersport,mohammadabad,cranbrook,mentorship,legitimately,marshland,datuk,louvain,potawatomi,carnivores,levies,lyell,hymnal,regionals,tinto,shikoku,conformal,wanganui,beira,lleida,standstill,deloitte,formula_40,corbusier,chancellery,mixtapes,airtime,muhlenberg,formula_39,bracts,thrashers,prodigious,gironde,chickamauga,uyghurs,substitutions,pescara,batangas,gregarious,gijon,paleo,mathura,pumas,proportionally,hawkesbury,yucca,kristiania,funimation,fluted,eloquence,mohun,aftermarket,chroniclers,futurist,nonconformist,branko,mannerisms,lesnar,opengl,altos,retainers,ashfield,shelbourne,sulaiman,divisie,gwent,locarno,lieder,minkowski,bivalve,redeployed,cartography,seaway,bookings,decays,ostend,antiquaries,pathogenesis,formula_38,chrysalis,esperance,valli,motogp,homelands,bridged,bloor,ghazal,vulgaris,baekje,prospector,calculates,debtors,hesperiidae,titian,returner,landgrave,frontenac,kelowna,pregame,castelo,caius,canoeist,watercolours,winterthur,superintendents,dissonance,dubstep,adorn,matic,salih,hillel,swordsman,flavoured,emitter,assays,monongahela,deeded,brazzaville,sufferings,babylonia,fecal,umbria,astrologer,gentrification,frescos,phasing,zielona,ecozone,candido,manoj,quadrilateral,gyula,falsetto,prewar,puntland,infinitive,contraceptive,bakhtiari,ohrid,socialization,tailplane,evoking,havelock,macapagal,plundering,
104th,keynesian,templars,phrasing,morphologically,czestochowa,humorously,catawba,burgas,chiswick,ellipsoid,kodansha,inwards,gautama,katanga,orthopaedic,heilongjiang,sieges,outsourced,subterminal,vijayawada,hares,oration,leitrim,ravines,manawatu,cryogenic,tracklisting,about.com,ambedkar,degenerated,hastened,venturing,lobbyists,shekhar,typefaces,northcote,rugen,'good,ornithology,asexual,hemispheres,unsupported,glyphs,spoleto,epigenetic,musicianship,donington,diogo,kangxi,bisected,polymorphism,megawatt,salta,embossed,cheetahs,cruzeiro,unhcr,aristide,rayleigh,maturing,indonesians,noire,llano,ffffff,camus,purges,annales,convair,apostasy,algol,phage,apaches,marketers,aldehyde,pompidou,kharkov,forgeries,praetorian,divested,retrospectively,gornji,scutellum,bitumen,pausanias,magnification,imitations,nyasaland,geographers,floodlights,athlone,hippolyte,expositions,clarinetist,razak,neutrinos,rotax,sheykh,plush,interconnect,andalus,cladogram,rudyard,resonator,granby,blackfriars,placido,windscreen,sahel,minamoto,haida,cations,emden,blackheath,thematically,blacklist,pawel,disseminating,academical,undamaged,raytheon,harsher,powhatan,ramachandran,saddles,paderborn,capping,zahra,prospecting,glycine,chromatin,profane,banska,helmand,okinawan,dislocation,oscillators,insectivorous,foyle,gilgit,autonomic,tuareg,sluice,pollinated,multiplexed,granary,narcissus,ranchi,staines,nitra,goalscoring,midwifery,pensioners,algorithmic,meetinghouse,biblioteca,besar,narva,angkor,predate,lohan,cyclical,detainee,occipital,eventing,faisalabad,dartmoor,kublai,courtly,resigns,radii,megachilidae,cartels,shortfall,xhosa,unregistered,benchmarks,dystopian,bulkhead,ponsonby,jovanovic,accumulates,papuan,bhutanese,intuitively,gotaland,headliners,recursion,dejan,novellas,diphthongs,imbued,withstood,analgesic,amplify,powertrain,programing,maidan,alstom,affirms,eradicated,summerslam,videogame,molla,severing,foundered,gallium,atmospheres,desalination,shmuel,howmeh,catolica,bossier,reconstructing,isolates,lyase,tweets,unconnected,tidewater,divisible,cohorts,orebro,presov,furnishing,folklorist,simplifying,centrale,notations,factorization,monarchies,deepen,macomb,facilitation,hennepin,declassified,redrawn,microprocessors,preliminaries,enlarging,timeframe,deutschen,shipbuilders,patiala,ferrous,aquariums,genealogies,vieux,unrecognized,bridgwater,tetrahedral,thule,resignations,gondwana,registries,agder,dataset,felled,parva,analyzer,worsen,coleraine,columella,blockaded,polytechnique,reassembled,reentry,narvik,greys,nigra,knockouts,bofors,gniezno,slotted,hamasaki,ferrers,conferring,thirdly,domestication,photojournalist,universality,preclude,ponting,halved,thereupon,photosynthetic,ostrava,mismatch,pangasinan,intermediaries,abolitionists,transited,headings,ustase,radiological,interconnection,dabrowa,invariants,honorius,preferentially,chantilly,marysville,dialectical,antioquia,abstained,gogol,dirichlet,muricidae,symmetries,reproduces,brazos,fatwa,bacillus,ketone,paribas,chowk,multiplicative,dermatitis,mamluks,devotes,adenosine,newbery,meditative,minefields,inflection,oxfam,conwy,bystrica,imprints,pandavas,infinitesimal,conurbation,amphetamine,reestablish,furth,edessa,injustices,frankston,serjeant,
4x200,khazar,sihanouk,longchamp,stags,pogroms,coups,upperparts,endpoints,infringed,nuanced,summing,humorist,pacification,ciaran,jamaat,anteriorly,roddick,springboks,faceted,hypoxia,rigorously,cleves,fatimid,ayurvedic,tabled,ratna,senhora,maricopa,seibu,gauguin,holomorphic,campgrounds,amboy,coordinators,ponderosa,casemates,ouachita,nanaimo,mindoro,zealander,rimsky,cluny,tomaszow,meghalaya,caetano,tilak,roussillon,landtag,gravitation,dystrophy,cephalopods,trombones,glens,killarney,denominated,anthropogenic,pssas,roubaix,carcasses,montmorency,neotropical,communicative,rabindranath,ordinated,separable,overriding,surged,sagebrush,conciliation,codice_4,durrani,phosphatase,qadir,votive,revitalized,taiyuan,tyrannosaurus,graze,slovaks,nematodes,environmentalism,blockhouse,illiteracy,schengen,ecotourism,alternation,conic,wields,hounslow,blackfoot,kwame,ambulatory,volhynia,hordaland,croton,piedras,rohit,drava,conceptualized,birla,illustrative,gurgaon,barisal,tutsi,dezong,nasional,polje,chanson,clarinets,krasnoyarsk,aleksandrovich,cosmonaut,d'este,palliative,midseason,silencing,wardens,durer,girders,salamanders,torrington,supersonics,lauda,farid,circumnavigation,embankments,funnels,bajnoksag,lorries,cappadocia,jains,warringah,retirees,burgesses,equalization,cusco,ganesan,algal,amazonian,lineups,allocating,conquerors,usurper,mnemonic,predating,brahmaputra,ahmadabad,maidenhead,numismatic,subregion,encamped,reciprocating,freebsd,irgun,tortoises,governorates,zionists,airfoil,collated,ajmer,fiennes,etymological,polemic,chadian,clerestory,nordiques,fluctuated,calvados,oxidizing,trailhead,massena,quarrels,dordogne,tirunelveli,pyruvate,pulsed,athabasca,sylar,appointee,serer,japonica,andronikos,conferencing,nicolaus,chemin,ascertained,incited,woodbine,helices,hospitalised,emplacements,to/from,orchestre,tyrannical,pannonia,methodism,pop/rock,shibuya,berbers,despot,seaward,westpac,separator,perpignan,alamein,judeo,publicize,quantization,ethniki,gracilis,menlo,offside,oscillating,unregulated,succumbing,finnmark,metrical,suleyman,raith,sovereigns,bundesstrasse,kartli,fiduciary,darshan,foramen,curler,concubines,calvinism,larouche,bukhara,sophomores,mohanlal,lutheranism,monomer,eamonn,'black,uncontested,immersive,tutorials,beachhead,bindings,permeable,postulates,comite,transformative,indiscriminate,hofstra,associacao,amarna,dermatology,lapland,aosta,babur,unambiguous,formatting,schoolboys,gwangju,superconducting,replayed,adherent,aureus,compressors,forcible,spitsbergen,boulevards,budgeting,nossa,annandale,perumal,interregnum,sassoon,kwajalein,greenbrier,caldas,triangulation,flavius,increment,shakhtar,nullified,pinfall,nomen,microfinance,depreciation,cubist,steeper,splendour,gruppe,everyman,chasers,campaigners,bridle,modality,percussive,darkly,capes,velar,picton,triennial,factional,padang,toponym,betterment,norepinephrine,
112th,estuarine,diemen,warehousing,morphism,ideologically,pairings,immunization,crassus,exporters,sefer,flocked,bulbous,deseret,booms,calcite,bohol,elven,groot,pulau,citigroup,wyeth,modernizing,layering,pastiche,complies,printmaker,condenser,theropod,cassino,oxyrhynchus,akademie,trainings,lowercase,coxae,parte,chetniks,pentagonal,keselowski,monocoque,morsi,reticulum,meiosis,clapboard,recoveries,tinge,an/fps,revista,sidon,livre,epidermis,conglomerates,kampong,congruent,harlequins,tergum,simplifies,epidemiological,underwriting,tcp/ip,exclusivity,multidimensional,mysql,columbine,ecologist,hayat,sicilies,levees,handset,aesop,usenet,pacquiao,archiving,alexandrian,compensatory,broadsheet,annotation,bahamian,d'affaires,interludes,phraya,shamans,marmara,customizable,immortalized,ambushes,chlorophyll,diesels,emulsion,rheumatoid,voluminous,screenwriters,tailoring,sedis,runcorn,democratization,bushehr,anacostia,constanta,antiquary,sixtus,radiate,advaita,antimony,acumen,barristers,reichsbahn,ronstadt,symbolist,pasig,cursive,secessionist,afrikaner,munnetra,inversely,adsorption,syllabic,moltke,idioms,midline,olimpico,diphosphate,cautions,radziwill,mobilisation,copelatus,trawlers,unicron,bhaskar,financiers,minimalism,derailment,marxists,oireachtas,abdicate,eigenvalue,zafar,vytautas,ganguly,chelyabinsk,telluride,subordination,ferried,dived,vendee,pictish,dimitrov,expiry,carnation,cayley,magnitudes,lismore,gretna,sandwiched,unmasked,sandomierz,swarthmore,tetra,nanyang,pevsner,dehradun,mormonism,rashi,complying,seaplanes,ningbo,cooperates,strathcona,mornington,mestizo,yulia,edgbaston,palisade,ethno,polytopes,espirito,tymoshenko,pronunciations,paradoxical,taichung,chipmunks,erhard,maximise,accretion,kanda,`abdu'l,narrowest,umpiring,mycenaean,divisor,geneticist,ceredigion,barque,hobbyists,equates,auxerre,spinose,cheil,sweetwater,guano,carboxylic,archiv,tannery,cormorant,agonists,fundacion,anbar,tunku,hindrance,meerut,concordat,secunderabad,kachin,achievable,murfreesboro,comprehensively,forges,broadest,synchronised,speciation,scapa,aliyev,conmebol,tirelessly,subjugated,pillaged,udaipur,defensively,lakhs,stateless,haasan,headlamps,patterning,podiums,polyphony,mcmurdo,mujer,vocally,storeyed,mucosa,multivariate,scopus,minimizes,formalised,certiorari,bourges,populate,overhanging,gaiety,unreserved,borromeo,woolworths,isotopic,bashar,purify,vertebra,medan,juxtaposition,earthwork,elongation,chaudhary,schematic,piast,steeped,nanotubes,fouls,achaea,legionnaires,abdur,qmjhl,embraer,hardback,centerville,ilocos,slovan,whitehorse,mauritian,moulding,mapuche,donned,provisioning,gazprom,jonesboro,audley,lightest,calyx,coldwater,trigonometric,petroglyphs,psychoanalyst,congregate,zambezi,fissure,supervises,bexley,etobicoke,wairarapa,tectonics,emphasises,formula_41,debugging,linfield,spatially,ionizing,ungulates,orinoco,clades,erlangen,news/talk,vols.,ceara,yakovlev,finsbury,entanglement,fieldhouse,graphene,intensifying,grigory,keyong,zacatecas,ninian,allgemeine,keswick,societa,snorri,femininity,najib,monoclonal,guyanese,postulate,huntly,abbeys,machinist,yunus,emphasising,ishaq,urmia,bremerton,pretenders,lumiere,thoroughfares,chikara,dramatized,metathorax,taiko,transcendence,wycliffe,retrieves,umpired,steuben,racehorses,taylors,kuznetsov,montezuma,precambrian,canopies,gaozong,propodeum,disestablished,retroactive,shoreham,rhizome,doubleheader,clinician,diwali,quartzite,shabaab,agassiz,despatched,stormwater,luxemburg,callao,universidade,courland,skane,glyph,dormers,witwatersrand,curacy,qualcomm,nansen,entablature,lauper,hausdorff,lusaka,ruthenian,
360deg,cityscape,douai,vaishnava,spars,vaulting,rationalist,gygax,sequestration,typology,pollinates,accelerators,leben,colonials,cenotaph,imparted,carthaginians,equaled,rostrum,gobind,bodhisattva,oberst,bicycling,arabi,sangre,biophysics,hainaut,vernal,lunenburg,apportioned,finches,lajos,nenad,repackaged,zayed,nikephoros,r.e.m,swaminarayan,gestalt,unplaced,crags,grohl,sialkot,unsaturated,gwinnett,linemen,forays,palakkad,writs,instrumentalists,aircrews,badged,terrapins,
180deg,oneness,commissariat,changi,pupation,circumscribed,contador,isotropic,administrated,fiefs,nimes,intrusions,minoru,geschichte,nadph,tainan,changchun,carbondale,frisia,swapo,evesham,hawai'i,encyclopedic,transporters,dysplasia,formula_42,onsite,jindal,guetta,judgements,narbonne,permissions,paleogene,rationalism,vilna,isometric,subtracted,chattahoochee,lamina,missa,greville,pervez,lattices,persistently,crystallization,timbered,hawaiians,fouling,interrelated,masood,ripening,stasi,gamal,visigothic,warlike,cybernetics,tanjung,forfar,cybernetic,karelian,brooklands,belfort,greifswald,campeche,inexplicably,refereeing,understory,uninterested,prius,collegiately,sefid,sarsfield,categorize,biannual,elsevier,eisteddfod,declension,autonoma,procuring,misrepresentation,novelization,bibliographic,shamanism,vestments,potash,eastleigh,ionized,turan,lavishly,scilly,balanchine,importers,parlance,'that,kanyakumari,synods,mieszko,crossovers,serfdom,conformational,legislated,exclave,heathland,sadar,differentiates,propositional,konstantinos,photoshop,manche,vellore,appalachia,orestes,taiga,exchanger,grozny,invalidated,baffin,spezia,staunchly,eisenach,robustness,virtuosity,ciphers,inlets,bolagh,understandings,bosniaks,parser,typhoons,sinan,luzerne,webcomic,subtraction,jhelum,businessweek,ceske,refrained,firebox,mitigated,helmholtz,dilip,eslamabad,metalwork,lucan,apportionment,provident,gdynia,schooners,casement,danse,hajjiabad,benazir,buttress,anthracite,newsreel,wollaston,dispatching,cadastral,riverboat,provincetown,nantwich,missal,irreverent,juxtaposed,darya,ennobled,electropop,stereoscopic,maneuverability,laban,luhansk,udine,collectibles,haulage,holyrood,materially,supercharger,gorizia,shkoder,townhouses,pilate,layoffs,folkloric,dialectic,exuberant,matures,malla,ceuta,citizenry,crewed,couplet,stopover,transposition,tradesmen,antioxidant,amines,utterance,grahame,landless,isere,diction,appellant,satirist,urbino,intertoto,subiaco,antonescu,nehemiah,ubiquitin,emcee,stourbridge,fencers,
103rd,wranglers,monteverdi,watertight,expounded,xiamen,manmohan,pirie,threefold,antidepressant,sheboygan,grieg,cancerous,diverging,bernini,polychrome,fundamentalism,bihari,critiqued,cholas,villers,tendulkar,dafydd,vastra,fringed,evangelization,episcopalian,maliki,sana'a,ashburton,trianon,allegany,heptathlon,insufficiently,panelists,pharrell,hexham,amharic,fertilized,plumes,cistern,stratigraphy,akershus,catalans,karoo,rupee,minuteman,quantification,wigmore,leutnant,metanotum,weeknights,iridescent,extrasolar,brechin,deuterium,kuching,lyricism,astrakhan,brookhaven,euphorbia,hradec,bhagat,vardar,aylmer,positron,amygdala,speculators,unaccompanied,debrecen,slurry,windhoek,disaffected,rapporteur,mellitus,blockers,fronds,yatra,sportsperson,precession,physiologist,weeknight,pidgin,pharma,condemns,standardize,zetian,tibor,glycoprotein,emporia,cormorants,amalie,accesses,leonhard,denbighshire,roald,
116th,will.i.am,symbiosis,privatised,meanders,chemnitz,jabalpur,shing,secede,ludvig,krajina,homegrown,snippets,sasanian,euripides,peder,cimarron,streaked,graubunden,kilimanjaro,mbeki,middleware,flensburg,bukovina,lindwall,marsalis,profited,abkhaz,polis,camouflaged,amyloid,morgantown,ovoid,bodleian,morte,quashed,gamelan,juventud,natchitoches,storyboard,freeview,enumeration,cielo,preludes,bulawayo,
1600s,olympiads,multicast,faunal,asura,reinforces,puranas,ziegfeld,handicraft,seamount,kheil,noche,hallmarks,dermal,colorectal,encircle,hessen,umbilicus,sunnis,leste,unwin,disclosing,superfund,montmartre,refuelling,subprime,kolhapur,etiology,bismuth,laissez,vibrational,mazar,alcoa,rumsfeld,recurve,ticonderoga,lionsgate,onlookers,homesteads,filesystem,barometric,kingswood,biofuel,belleza,moshav,occidentalis,asymptomatic,northeasterly,leveson,huygens,numan,kingsway,primogeniture,toyotomi,yazoo,limpets,greenbelt,booed,concurrence,dihedral,ventrites,raipur,sibiu,plotters,kitab,
109th,trackbed,skilful,berthed,effendi,fairing,sephardi,mikhailovich,lockyer,wadham,invertible,paperbacks,alphabetic,deuteronomy,constitutive,leathery,greyhounds,estoril,beechcraft,poblacion,cossidae,excreted,flamingos,singha,olmec,neurotransmitters,ascoli,nkrumah,forerunners,dualism,disenchanted,benefitted,centrum,undesignated,noida,o'donoghue,collages,egrets,egmont,wuppertal,cleave,montgomerie,pseudomonas,srinivasa,lymphatic,stadia,resold,minima,evacuees,consumerism,ronde,biochemist,automorphism,hollows,smuts,improvisations,vespasian,bream,pimlico,eglin,colne,melancholic,berhad,ousting,saale,notaulices,ouest,hunslet,tiberias,abdomina,ramsgate,stanislas,donbass,pontefract,sucrose,halts,drammen,chelm,l'arc,taming,trolleys,konin,incertae,licensees,scythian,giorgos,dative,tanglewood,farmlands,o'keeffe,caesium,romsdal,amstrad,corte,oglethorpe,huntingdonshire,magnetization,adapts,zamosc,shooto,cuttack,centrepiece,storehouse,winehouse,morbidity,woodcuts,ryazan,buddleja,buoyant,bodmin,estero,austral,verifiable,periyar,christendom,curtail,shura,kaifeng,cotswold,invariance,seafaring,gorica,androgen,usman,seabird,forecourt,pekka,juridical,audacious,yasser,cacti,qianlong,polemical,d'amore,espanyol,distrito,cartographers,pacifism,serpents,backa,nucleophilic,overturning,duplicates,marksman,oriente,vuitton,oberleutnant,gielgud,gesta,swinburne,transfiguration,
1750s,retaken,celje,fredrikstad,asuka,cropping,mansard,donates,blacksmiths,vijayanagara,anuradhapura,germinate,betis,foreshore,jalandhar,bayonets,devaluation,frazione,ablaze,abidjan,approvals,homeostasis,corollary,auden,superfast,redcliffe,luxembourgish,datum,geraldton,printings,ludhiana,honoree,synchrotron,invercargill,hurriedly,
108th,three-and-a-half,colonist,bexar,limousin,bessemer,ossetian,nunataks,buddhas,rebuked,thais,tilburg,verdicts,interleukin,unproven,dordrecht,solent,acclamation,muammar,dahomey,operettas,
4x400,arrears,negotiators,whitehaven,apparitions,armoury,psychoactive,worshipers,sculptured,elphinstone,airshow,kjell,o'callaghan,shrank,professorships,predominance,subhash,coulomb,sekolah,retrofitted,samos,overthrowing,vibrato,resistors,palearctic,datasets,doordarshan,subcutaneous,compiles,immorality,patchwork,trinidadian,glycogen,pronged,zohar,visigoths,freres,akram,justo,agora,intakes,craiova,playwriting,bukhari,militarism,iwate,petitioners,harun,wisla,inefficiency,vendome,ledges,schopenhauer,kashi,entombed,assesses,tenn.,noumea,baguio,carex,o'donovan,filings,hillsdale,conjectures,blotches,annuals,lindisfarne,negated,vivek,angouleme,trincomalee,cofactor,verkhovna,backfield,twofold,automaker,rudra,freighters,darul,gharana,busway,formula_43,plattsburgh,portuguesa,showrunner,roadmap,valenciennes,erdos,biafra,spiritualism,transactional,modifies,carne,
107th,cocos,gcses,tiverton,radiotherapy,meadowlands,gunma,srebrenica,foxtel,authenticated,enslavement,classicist,klaipeda,minstrels,searchable,infantrymen,incitement,shiga,nadp+,urals,guilders,banquets,exteriors,counterattacks,visualized,diacritics,patrimony,svensson,transepts,prizren,telegraphy,najaf,emblazoned,coupes,effluent,ragam,omani,greensburg,taino,flintshire,cd/dvd,lobbies,narrating,cacao,seafarers,bicolor,collaboratively,suraj,floodlit,sacral,puppetry,tlingit,malwa,login,motionless,thien,overseers,vihar,golem,specializations,bathhouse,priming,overdubs,winningest,archetypes,uniao,acland,creamery,slovakian,lithographs,maryborough,confidently,excavating,stillborn,ramallah,audiencia,alava,ternary,hermits,rostam,bauxite,gawain,lothair,captions,gulfstream,timelines,receded,mediating,petain,bastia,rudbar,bidders,disclaimer,shrews,tailings,trilobites,yuriy,jamil,demotion,gynecology,rajinikanth,madrigals,ghazni,flycatchers,vitebsk,bizet,computationally,kashgar,refinements,frankford,heralds,europe/africa,levante,disordered,sandringham,queues,ransacked,trebizond,verdes,comedie,primitives,figurine,organists,culminate,gosport,coagulation,ferrying,hoyas,polyurethane,prohibitive,midfielders,ligase,progesterone,defectors,sweetened,backcountry,diodorus,waterside,nieuport,khwaja,jurong,decried,gorkha,ismaili,
300th,octahedral,kindergartens,paseo,codification,notifications,disregarding,risque,reconquista,shortland,atolls,texarkana,perceval,d'etudes,kanal,herbicides,tikva,nuova,gatherer,dissented,soweto,dexterity,enver,bacharach,placekicker,carnivals,automate,maynooth,symplectic,chetnik,militaire,upanishads,distributive,strafing,championing,moiety,miliband,blackadder,enforceable,maung,dimer,stadtbahn,diverges,obstructions,coleophoridae,disposals,shamrocks,aural,banca,bahru,coxed,grierson,vanadium,watermill,radiative,ecoregions,berets,hariri,bicarbonate,evacuations,mallee,nairn,rushden,loggia,slupsk,satisfactorily,milliseconds,cariboo,reine,cyclo,pigmentation,postmodernism,aqueducts,vasari,bourgogne,dilemmas,liquefied,fluminense,alloa,ibaraki,tenements,kumasi,humerus,raghu,labours,putsch,soundcloud,bodybuilder,rakyat,domitian,pesaro,translocation,sembilan,homeric,enforcers,tombstones,lectureship,rotorua,salamis,nikolaos,inferences,superfortress,lithgow,surmised,undercard,tarnow,barisan,stingrays,federacion,coldstream,haverford,ornithological,heerenveen,eleazar,jyoti,murali,bamako,riverbed,subsidised,theban,conspicuously,vistas,conservatorium,madrasa,kingfishers,arnulf,credential,syndicalist,sheathed,discontinuity,prisms,tsushima,coastlines,escapees,vitis,optimizing,megapixel,overground,embattled,halide,sprinters,buoys,mpumalanga,peculiarities,
106th,roamed,menezes,macao,prelates,papyri,freemen,dissertations,irishmen,pooled,sverre,reconquest,conveyance,subjectivity,asturian,circassian,formula_45,comdr,thickets,unstressed,monro,passively,harmonium,moveable,dinar,carlsson,elysees,chairing,b'nai,confusingly,kaoru,convolution,godolphin,facilitator,saxophones,eelam,jebel,copulation,anions,livres,licensure,pontypridd,arakan,controllable,alessandria,propelling,stellenbosch,tiber,wolka,liberators,yarns,d'azur,tsinghua,semnan,amhara,ablation,melies,tonality,historique,beeston,kahne,intricately,sonoran,robespierre,gyrus,boycotts,defaulted,infill,maranhao,emigres,framingham,paraiba,wilhelmshaven,tritium,skyway,labial,supplementation,possessor,underserved,motets,maldivian,marrakech,quays,wikimedia,turbojet,demobilization,petrarch,encroaching,sloops,masted,karbala,corvallis,agribusiness,seaford,stenosis,hieronymus,irani,superdraft,baronies,cortisol,notability,veena,pontic,cyclin,archeologists,newham,culled,concurring,aeolian,manorial,shouldered,fords,philanthropists,
105th,siddharth,gotthard,halim,rajshahi,jurchen,detritus,practicable,earthenware,discarding,travelogue,neuromuscular,elkhart,raeder,zygmunt,metastasis,internees,
102nd,vigour,upmarket,summarizing,subjunctive,offsets,elizabethtown,udupi,pardubice,repeaters,instituting,archaea,substandard,technische,linga,anatomist,flourishes,velika,tenochtitlan,evangelistic,fitchburg,springbok,cascading,hydrostatic,avars,occasioned,filipina,perceiving,shimbun,africanus,consternation,tsing,optically,beitar,
45deg,abutments,roseville,monomers,huelva,lotteries,hypothalamus,internationalist,electromechanical,hummingbirds,fibreglass,salaried,dramatists,uncovers,invokes,earners,excretion,gelding,ancien,aeronautica,haverhill,stour,ittihad,abramoff,yakov,ayodhya,accelerates,industrially,aeroplanes,deleterious,dwelt,belvoir,harpalus,atpase,maluku,alasdair,proportionality,taran,epistemological,interferometer,polypeptide,adjudged,villager,metastatic,marshalls,madhavan,archduchess,weizmann,kalgoorlie,balan,predefined,sessile,sagaing,brevity,insecticide,psychosocial,africana,steelworks,aether,aquifers,belem,mineiro,almagro,radiators,cenozoic,solute,turbocharger,invicta,guested,buccaneer,idolatry,unmatched,paducah,sinestro,dispossessed,conforms,responsiveness,cyanobacteria,flautist,procurator,complementing,semifinalist,rechargeable,permafrost,cytokine,refuges,boomed,gelderland,franchised,jinan,burnie,doubtless,randomness,colspan=
12,angra,ginebra,famers,nuestro,declarative,roughness,lauenburg,motile,rekha,issuer,piney,interceptors,napoca,gipsy,formulaic,formula_44,viswanathan,ebrahim,thessalonica,galeria,muskogee,unsold,html5,taito,mobutu,icann,carnarvon,fairtrade,morphisms,upsilon,nozzles,fabius,meander,murugan,strontium,episcopacy,sandinista,parasol,attenuated,bhima,primeval,panay,ordinator,negara,osteoporosis,glossop,ebook,paradoxically,grevillea,modoc,equating,phonetically,legumes,covariant,dorje,quatre,bruxelles,pyroclastic,shipbuilder,zhaozong,obscuring,sveriges,tremolo,extensible,barrack,multnomah,hakon,chaharmahal,parsing,volumetric,astrophysical,glottal,combinatorics,freestanding,encoder,paralysed,cavalrymen,taboos,heilbronn,orientalis,lockport,marvels,ozawa,dispositions,waders,incurring,saltire,modulate,papilio,phenol,intermedia,rappahannock,plasmid,fortify,phenotypes,transiting,correspondences,leaguer,larnaca,incompatibility,mcenroe,deeming,endeavoured,aboriginals,helmed,salar,arginine,werke,ferrand,expropriated,delimited,couplets,phoenicians,petioles,ouster,anschluss,protectionist,plessis,urchins,orquesta,castleton,juniata,bittorrent,fulani,donji,mykola,rosemont,chandos,scepticism,signer,chalukya,wicketkeeper,coquitlam,programmatic,o'brian,carteret,urology,steelhead,paleocene,konkan,bettered,venkatesh,surfacing,longitudinally,centurions,popularization,yazid,douro,widths,premios,leonards,gristmill,fallujah,arezzo,leftists,ecliptic,glycerol,inaction,disenfranchised,acrimonious,depositing,parashah,cockatoo,marechal,bolzano,chios,cablevision,impartiality,pouches,thickly,equities,bentinck,emotive,boson,ashdown,conquistadors,parsi,conservationists,reductive,newlands,centerline,ornithologists,waveguide,nicene,philological,hemel,setanta,masala,aphids,convening,casco,matrilineal,chalcedon,orthographic,hythe,replete,damming,bolivarian,admixture,embarks,borderlands,conformed,nagarjuna,blenny,chaitanya,suwon,shigeru,tatarstan,lingayen,rejoins,grodno,merovingian,hardwicke,puducherry,prototyping,laxmi,upheavals,headquarter,pollinators,bromine,transom,plantagenet,arbuthnot,chidambaram,woburn,osamu,panelling,coauthored,zhongshu,hyaline,omissions,aspergillus,offensively,electrolytic,woodcut,sodom,intensities,clydebank,piotrkow,supplementing,quipped,focke,harbinger,positivism,parklands,wolfenbuttel,cauca,tryptophan,taunus,curragh,tsonga,remand,obscura,ashikaga,eltham,forelimbs,analogs,trnava,observances,kailash,antithesis,ayumi,abyssinia,dorsally,tralee,pursuers,misadventures,padova,perot,mahadev,tarim,granth,licenced,compania,patuxent,baronial,korda,cochabamba,codices,karna,memorialized,semaphore,playlists,mandibular,halal,sivaji,scherzinger,stralsund,foundries,ribosome,mindfulness,nikolayevich,paraphyletic,newsreader,catalyze,ioannina,thalamus,gbit/s,paymaster,sarab,
500th,replenished,gamepro,cracow,formula_46,gascony,reburied,lessing,easement,transposed,meurthe,satires,proviso,balthasar,unbound,cuckoos,durbar,louisbourg,cowes,wholesalers,manet,narita,xiaoping,mohamad,illusory,cathal,reuptake,alkaloid,tahrir,mmorpg,underlies,anglicanism,repton,aharon,exogenous,buchenwald,indigent,odostomia,milled,santorum,toungoo,nevsky,steyr,urbanisation,darkseid,subsonic,canaanite,akiva,eglise,dentition,mediators,cirencester,peloponnesian,malmesbury,durres,oerlikon,tabulated,saens,canaria,ischemic,esterhazy,ringling,centralization,walthamstow,nalanda,lignite,takht,leninism,expiring,circe,phytoplankton,promulgation,integrable,breeches,aalto,menominee,borgo,scythians,skrull,galleon,reinvestment,raglan,reachable,liberec,airframes,electrolysis,geospatial,rubiaceae,interdependence,symmetrically,simulcasts,keenly,mauna,adipose,zaidi,fairport,vestibular,actuators,monochromatic,literatures,congestive,sacramental,atholl,skytrain,tycho,tunings,jamia,catharina,modifier,methuen,tapings,infiltrating,colima,grafting,tauranga,halides,pontificate,phonetics,koper,hafez,grooved,kintetsu,extrajudicial,linkoping,cyberpunk,repetitions,laurentian,parnu,bretton,darko,sverdlovsk,foreshadowed,akhenaten,rehnquist,gosford,coverts,pragmatism,broadleaf,ethiopians,instated,mediates,sodra,opulent,descriptor,enugu,shimla,leesburg,officership,giffard,refectory,lusitania,cybermen,fiume,corus,tydfil,lawrenceville,ocala,leviticus,burghers,ataxia,richthofen,amicably,acoustical,watling,inquired,tiempo,multiracial,parallelism,trenchard,tokyopop,germanium,usisl,philharmonia,shapur,jacobites,latinized,sophocles,remittances,o'farrell,adder,dimitrios,peshwa,dimitar,orlov,outstretched,musume,satish,dimensionless,serialised,baptisms,pagasa,antiviral,
1740s,quine,arapaho,bombardments,stratosphere,ophthalmic,injunctions,carbonated,nonviolence,asante,creoles,sybra,boilermakers,abington,bipartite,permissive,cardinality,anheuser,carcinogenic,hohenlohe,surinam,szeged,infanticide,generically,floorball,'white,automakers,cerebellar,homozygous,remoteness,effortlessly,allude,'great,headmasters,minting,manchurian,kinabalu,wemyss,seditious,widgets,marbled,almshouses,bards,subgenres,tetsuya,faulting,kickboxer,gaulish,hoseyn,malton,fluvial,questionnaires,mondale,downplayed,traditionalists,vercelli,sumatran,landfills,gamesradar,exerts,franciszek,unlawfully,huesca,diderot,libertarians,professorial,laane,piecemeal,conidae,taiji,curatorial,perturbations,abstractions,szlachta,watercraft,mullah,zoroastrianism,segmental,khabarovsk,rectors,affordability,scuola,diffused,stena,cyclonic,workpiece,romford,'little,jhansi,stalag,zhongshan,skipton,maracaibo,bernadotte,thanet,groening,waterville,encloses,sahrawi,nuffield,moorings,chantry,annenberg,islay,marchers,tenses,wahid,siegen,furstenberg,basques,resuscitation,seminarians,tympanum,gentiles,vegetarianism,tufted,venkata,fantastical,pterophoridae,machined,superposition,glabrous,kaveri,chicane,executors,phyllonorycter,bidirectional,jasta,undertones,touristic,majapahit,navratilova,unpopularity,barbadian,tinian,webcast,hurdler,rigidly,jarrah,staphylococcus,igniting,irrawaddy,stabilised,airstrike,ragas,wakayama,energetically,ekstraklasa,minibus,largemouth,cultivators,leveraging,waitangi,carnaval,weaves,turntables,heydrich,sextus,excavate,govind,ignaz,pedagogue,uriah,borrowings,gemstones,infractions,mycobacterium,batavian,massing,praetor,subalpine,massoud,passers,geostationary,jalil,trainsets,barbus,impair,budejovice,denbigh,pertain,historicity,fortaleza,nederlandse,lamenting,masterchef,doubs,gemara,conductance,ploiesti,cetaceans,courthouses,bhagavad,mihailovic,occlusion,bremerhaven,bulwark,morava,kaine,drapery,maputo,conquistador,kaduna,famagusta,first-past-the-post,erudite,galton,undated,tangential,filho,dismembered,dashes,criterium,darwen,metabolized,blurring,everard,randwick,mohave,impurity,acuity,ansbach,chievo,surcharge,plantain,algoma,porosity,zirconium,selva,sevenoaks,venizelos,gwynne,golgi,imparting,separatism,courtesan,idiopathic,gravestones,hydroelectricity,babar,orford,purposeful,acutely,shard,ridgewood,viterbo,manohar,expropriation,placenames,brevis,cosine,unranked,richfield,newnham,recoverable,flightless,dispersing,clearfield,abu'l,stranraer,kempe,streamlining,goswami,epidermal,pieta,conciliatory,distilleries,electrophoresis,bonne,tiago,curiosities,candidature,picnicking,perihelion,lintel,povoa,gullies,configure,excision,facies,signers,
1730s,insufficiency,semiotics,streatham,deactivation,entomological,skippers,albacete,parodying,escherichia,honorees,singaporeans,counterterrorism,tiruchirappalli,omnivorous,metropole,globalisation,athol,unbounded,codice_5,landforms,classifier,farmhouses,reaffirming,reparation,yomiuri,technologists,mitte,medica,viewable,steampunk,konya,kshatriya,repelling,edgewater,lamiinae,devas,potteries,llandaff,engendered,submits,virulence,uplifted,educationist,metropolitans,frontrunner,dunstable,forecastle,frets,methodius,exmouth,linnean,bouchet,repulsion,computable,equalling,liceo,tephritidae,agave,hydrological,azarenka,fairground,l'homme,enforces,xinhua,cinematographers,cooperstown,sa'id,paiute,christianization,tempos,chippenham,insulator,kotor,stereotyped,dello,cours,hisham,d'souza,eliminations,supercars,passau,rebrand,natures,coote,persephone,rededicated,cleaved,plenum,blistering,indiscriminately,cleese,safed,recursively,compacted,revues,hydration,shillong,echelons,garhwal,pedimented,grower,zwolle,wildflower,annexing,methionine,petah,valens,famitsu,petiole,specialities,nestorian,shahin,tokaido,shearwater,barberini,kinsmen,experimenter,alumnae,cloisters,alumina,pritzker,hardiness,soundgarden,julich,ps300,watercourse,cementing,wordplay,olivet,demesne,chasseurs,amide,zapotec,gaozu,porphyry,absorbers,indium,analogies,devotions,engravers,limestones,catapulted,surry,brickworks,gotra,rodham,landline,paleontologists,shankara,islip,raucous,trollope,arpad,embarkation,morphemes,recites,picardie,nakhchivan,tolerances,formula_47,khorramabad,nichiren,adrianople,kirkuk,assemblages,collider,bikaner,bushfires,roofline,coverings,reredos,bibliotheca,mantras,accentuated,commedia,rashtriya,fluctuation,serhiy,referential,fittipaldi,vesicle,geeta,iraklis,immediacy,chulalongkorn,hunsruck,bingen,dreadnoughts,stonemason,meenakshi,lebesgue,undergrowth,baltistan,paradoxes,parlement,articled,tiflis,dixieland,meriden,tejano,underdogs,barnstable,exemplify,venter,tropes,wielka,kankakee,iskandar,zilina,pharyngeal,spotify,materialised,picts,atlantique,theodoric,prepositions,paramilitaries,pinellas,attlee,actuated,piedmontese,grayling,thucydides,multifaceted,unedited,autonomously,universelle,utricularia,mooted,preto,incubated,underlie,brasenose,nootka,bushland,sensu,benzodiazepine,esteghlal,seagoing,amenhotep,azusa,sappers,culpeper,smokeless,thoroughbreds,dargah,gorda,alumna,mankato,zdroj,deleting,culvert,formula_49,punting,wushu,hindering,immunoglobulin,standardisation,birger,oilfield,quadrangular,ulama,recruiters,netanya,
1630s,communaute,istituto,maciej,pathan,meher,vikas,characterizations,playmaker,interagency,intercepts,assembles,horthy,introspection,narada,matra,testes,radnicki,estonians,csiro,instar,mitford,adrenergic,crewmembers,haaretz,wasatch,lisburn,rangefinder,ordre,condensate,reforestation,corregidor,spvgg,modulator,mannerist,faulted,aspires,maktoum,squarepants,aethelred,piezoelectric,mulatto,dacre,progressions,jagiellonian,norge,samaria,sukhoi,effingham,coxless,hermetic,humanists,centrality,litters,stirlingshire,beaconsfield,sundanese,geometrically,caretakers,habitually,bandra,pashtuns,bradenton,arequipa,laminar,brickyard,hitchin,sustains,shipboard,ploughing,trechus,wheelers,bracketed,ilyushin,subotica,d'hondt,reappearance,bridgestone,intermarried,fulfilment,aphasia,birkbeck,transformational,strathmore,hornbill,millstone,lacan,voids,solothurn,gymnasiums,laconia,viaducts,peduncle,teachta,edgware,shinty,supernovae,wilfried,exclaim,parthia,mithun,flashpoint,moksha,cumbia,metternich,avalanches,militancy,motorist,rivadavia,chancellorsville,federals,gendered,bounding,footy,gauri,caliphs,lingam,watchmaker,unrecorded,riverina,unmodified,seafloor,droit,pfalz,chrysostom,gigabit,overlordship,besiege,espn2,oswestry,anachronistic,ballymena,reactivation,duchovny,ghani,abacetus,duller,legio,watercourses,nord-pas-de-calais,leiber,optometry,swarms,installer,sancti,adverbs,iheartmedia,meiningen,zeljko,kakheti,notional,circuses,patrilineal,acrobatics,infrastructural,sheva,oregonian,adjudication,aamir,wloclawek,overfishing,obstructive,subtracting,aurobindo,archeologist,newgate,'cause,secularization,tehsils,abscess,fingal,janacek,elkhorn,trims,kraftwerk,mandating,irregulars,faintly,congregationalist,sveti,kasai,mishaps,kennebec,provincially,durkheim,scotties,aicte,rapperswil,imphal,surrenders,morphs,nineveh,hoxha,cotabato,thuringian,metalworking,retold,shogakukan,anthers,proteasome,tippeligaen,disengagement,mockumentary,palatial,erupts,flume,corrientes,masthead,jaroslaw,rereleased,bharti,labors,distilling,tusks,varzim,refounded,enniskillen,melkite,semifinalists,vadodara,bermudian,capstone,grasse,origination,populus,alesi,arrondissements,semigroup,verein,opossum,messrs.,portadown,bulbul,tirupati,mulhouse,tetrahedron,roethlisberger,nonverbal,connexion,warangal,deprecated,gneiss,octet,vukovar,hesketh,chambre,despatch,claes,kargil,hideo,gravelly,tyndale,aquileia,tuners,defensible,tutte,theotokos,constructivist,ouvrage,dukla,polisario,monasticism,proscribed,commutation,testers,nipissing,codon,mesto,olivine,concomitant,exoskeleton,purports,coromandel,eyalet,dissension,hippocrates,purebred,yaounde,composting,oecophoridae,procopius,o'day,angiogenesis,sheerness,intelligencer,articular,felixstowe,aegon,endocrinology,trabzon,licinius,pagodas,zooplankton,hooghly,satie,drifters,sarthe,mercian,neuilly,tumours,canal+,scheldt,inclinations,counteroffensive,roadrunners,tuzla,shoreditch,surigao,predicates,carnot,algeciras,militaries,generalize,bulkheads,gawler,pollutant,celta,rundgren,microrna,gewog,olimpija,placental,lubelski,roxburgh,discerned,verano,kikuchi,musicale,l'enfant,ferocity,dimorphic,antigonus,erzurum,prebendary,recitative,discworld,cyrenaica,stigmella,totnes,sutta,pachuca,ulsan,downton,landshut,castellan,pleural,siedlce,siecle,catamaran,cottbus,utilises,trophic,freeholders,holyhead,u.s.s,chansons,responder,waziristan,suzuka,birding,shogi,asker,acetone,beautification,cytotoxic,dixit,hunterdon,cobblestone,formula_48,kossuth,devizes,sokoto,interlaced,shuttered,kilowatts,assiniboine,isaak,salto,alderney,sugarloaf,franchising,aggressiveness,toponyms,plaintext,antimatter,henin,equidistant,salivary,bilingualism,mountings,obligate,extirpated,irenaeus,misused,pastoralists,aftab,immigrating,warping,tyrolean,seaforth,teesside,soundwave,oligarchy,stelae,pairwise,iupac,tezuka,posht,orchestrations,landmass,ironstone,gallia,hjalmar,carmelites,strafford,elmhurst,palladio,fragility,teleplay,gruffudd,karoly,yerba,potok,espoo,inductance,macaque,nonprofits,pareto,rock'n'roll,spiritualist,shadowed,skateboarder,utterances,generality,congruence,prostrate,deterred,yellowknife,albarn,maldon,battlements,mohsen,insecticides,khulna,avellino,menstruation,glutathione,springdale,parlophone,confraternity,korps,countrywide,bosphorus,preexisting,damodar,astride,alexandrovich,sprinting,crystallized,botev,leaching,interstates,veers,angevin,undaunted,yevgeni,nishapur,northerners,alkmaar,bethnal,grocers,sepia,tornus,exemplar,trobe,charcot,gyeonggi,larne,tournai,lorain,voided,genji,enactments,maxilla,adiabatic,eifel,nazim,transducer,thelonious,pyrite,deportiva,dialectal,bengt,rosettes,labem,sergeyevich,synoptic,conservator,statuette,biweekly,adhesives,bifurcation,rajapaksa,mammootty,republique,yusef,waseda,marshfield,yekaterinburg,minnelli,fundy,fenian,matchups,dungannon,supremacist,panelled,drenthe,iyengar,fibula,narmada,homeport,oceanside,precept,antibacterial,altarpieces,swath,ospreys,lillooet,legnica,lossless,formula_50,galvatron,iorga,stormont,rsfsr,loggers,kutno,phenomenological,medallists,cuatro,soissons,homeopathy,bituminous,injures,syndicates,typesetting,displacements,dethroned,makassar,lucchese,abergavenny,targu,alborz,akb48,boldface,gastronomy,sacra,amenity,accumulator,myrtaceae,cornices,mourinho,denunciation,oxbow,diddley,aargau,arbitrage,bedchamber,gruffydd,zamindar,klagenfurt,caernarfon,slowdown,stansted,abrasion,tamaki,suetonius,dukakis,individualistic,ventrally,hotham,perestroika,ketones,fertilisation,sobriquet,couplings,renderings,misidentified,rundfunk,sarcastically,braniff,concours,dismissals,elegantly,modifiers,crediting,combos,crucially,seafront,lieut,ischemia,manchus,derivations,proteases,aristophanes,adenauer,porting,hezekiah,sante,trulli,hornblower,foreshadowing,ypsilanti,dharwad,khani,hohenstaufen,distillers,cosmodrome,intracranial,turki,salesian,gorzow,jihlava,yushchenko,leichhardt,venables,cassia,eurogamer,airtel,curative,bestsellers,timeform,sortied,grandview,massillon,ceding,pilbara,chillicothe,heredity,elblag,rogaland,ronne,millennial,batley,overuse,bharata,fille,campbelltown,abeyance,counterclockwise,
250cc,neurodegenerative,consigned,electromagnetism,sunnah,saheb,exons,coxswain,gleaned,bassoons,worksop,prismatic,immigrate,pickets,takeo,bobsledder,stosur,fujimori,merchantmen,stiftung,forli,endorses,taskforce,thermally,atman,gurps,floodplains,enthalpy,extrinsic,setubal,kennesaw,grandis,scalability,durations,showrooms,prithvi,outro,overruns,andalucia,amanita,abitur,hipper,mozambican,sustainment,arsene,chesham,palaeolithic,reportage,criminality,knowsley,haploid,atacama,shueisha,ridgefield,astern,getafe,lineal,timorese,restyled,hollies,agincourt,unter,justly,tannins,mataram,industrialised,tarnovo,mumtaz,mustapha,stretton,synthetase,condita,allround,putra,stjepan,troughs,aechmea,specialisation,wearable,kadokawa,uralic,aeros,messiaen,existentialism,jeweller,effigies,gametes,fjordane,cochlear,interdependent,demonstrative,unstructured,emplacement,famines,spindles,amplitudes,actuator,tantalum,psilocybe,apnea,monogatari,expulsions,seleucus,tsuen,hospitaller,kronstadt,eclipsing,olympiakos,clann,canadensis,inverter,helio,egyptologist,squamous,resonate,munir,histology,torbay,khans,jcpenney,veterinarians,aintree,microscopes,colonised,reflectors,phosphorylated,pristimantis,tulare,corvinus,multiplexing,midweek,demosthenes,transjordan,ecija,tengku,vlachs,anamorphic,counterweight,radnor,trinitarian,armidale,maugham,njsiaa,futurism,stairways,avicenna,montebello,bridgetown,wenatchee,lyonnais,amass,surinamese,streptococcus,m*a*s*h,hydrogenation,frazioni,proscenium,kalat,pennsylvanian,huracan,tallying,kralove,nucleolar,phrygian,seaports,hyacinthe,ignace,donning,instalment,regnal,fonds,prawn,carell,folktales,goaltending,bracknell,vmware,patriarchy,mitsui,kragujevac,pythagoras,soult,thapa,disproved,suwalki,secures,somoza,l'ecole,divizia,chroma,herders,technologist,deduces,maasai,rampur,paraphrase,raimi,imaged,magsaysay,ivano,turmeric,formula_51,subcommittees,axillary,ionosphere,organically,indented,refurbishing,pequot,violinists,bearn,colle,contralto,silverton,mechanization,etruscans,wittelsbach,pasir,redshirted,marrakesh,scarp,plein,wafers,qareh,teotihuacan,frobenius,sinensis,rehoboth,bundaberg,newbridge,hydrodynamic,traore,abubakar,adjusts,storytellers,dynamos,verbandsliga,concertmaster,exxonmobil,appreciable,sieradz,marchioness,chaplaincy,rechristened,cunxu,overpopulation,apolitical,sequencer,beaked,nemanja,binaries,intendant,absorber,filamentous,indebtedness,nusra,nashik,reprises,psychedelia,abwehr,ligurian,isoform,resistive,pillaging,mahathir,reformatory,lusatia,allerton,ajaccio,tepals,maturin,njcaa,abyssinian,objector,fissures,sinuous,ecclesiastic,dalits,caching,deckers,phosphates,wurlitzer,navigated,trofeo,berea,purefoods,solway,unlockable,grammys,kostroma,vocalizations,basilan,rebuke,abbasi,douala,helsingborg,ambon,bakar,runestones,cenel,tomislav,pigmented,northgate,excised,seconda,kirke,determinations,dedicates,vilas,pueblos,reversion,unexploded,overprinted,ekiti,deauville,masato,anaesthesia,endoplasmic,transponders,aguascalientes,hindley,celluloid,affording,bayeux,piaget,rickshaws,eishockey,camarines,zamalek,undersides,hardwoods,hermitian,mutinied,monotone,blackmails,affixes,jpmorgan,habermas,mitrovica,paleontological,polystyrene,thana,manas,conformist,turbofan,decomposes,logano,castration,metamorphoses,patroness,herbicide,mikolaj,rapprochement,macroeconomics,barranquilla,matsudaira,lintels,femina,hijab,spotsylvania,morpheme,bitola,baluchistan,kurukshetra,otway,extrusion,waukesha,menswear,helder,trung,bingley,protester,boars,overhang,differentials,exarchate,hejaz,kumara,unjustified,timings,sharpness,nuovo,taisho,sundar,etc..,jehan,unquestionably,muscovy,daltrey,canute,paneled,amedeo,metroplex,elaborates,telus,tetrapods,dragonflies,epithets,saffir,parthenon,lucrezia,refitting,pentateuch,hanshin,montparnasse,lumberjacks,sanhedrin,erectile,odors,greenstone,resurgent,leszek,amory,substituents,prototypical,viewfinder,monck,universiteit,joffre,revives,chatillon,seedling,scherzo,manukau,ashdod,gympie,homolog,stalwarts,ruinous,weibo,tochigi,wallenberg,gayatri,munda,satyagraha,storefronts,heterogeneity,tollway,sportswriters,binocular,gendarmes,ladysmith,tikal,ortsgemeinde,ja'far,osmotic,linlithgow,bramley,telecoms,pugin,repose,rupaul,sieur,meniscus,garmisch,reintroduce,
400th,shoten,poniatowski,drome,kazakhstani,changeover,astronautics,husserl,herzl,hypertext,katakana,polybius,antananarivo,seong,breguet,reliquary,utada,aggregating,liangshan,sivan,tonawanda,audiobooks,shankill,coulee,phenolic,brockton,bookmakers,handsets,boaters,wylde,commonality,mappings,silhouettes,pennines,maurya,pratchett,singularities,eschewed,pretensions,vitreous,ibero,totalitarianism,poulenc,lingered,directx,seasoning,deputation,interdict,illyria,feedstock,counterbalance,muzik,buganda,parachuted,violist,homogeneity,comix,fjords,corsairs,punted,verandahs,equilateral,laoghaire,magyars,
117th,alesund,televoting,mayotte,eateries,refurbish,nswrl,yukio,caragiale,zetas,dispel,codecs,inoperable,outperformed,rejuvenation,elstree,modernise,contributory,pictou,tewkesbury,chechens,ashina,psionic,refutation,medico,overdubbed,nebulae,sandefjord,personages,eccellenza,businessperson,placename,abenaki,perryville,threshing,reshaped,arecibo,burslem,colspan=
3|turnout,rebadged,lumia,erinsborough,interactivity,bitmap,indefatigable,theosophy,excitatory,gleizes,edsel,bermondsey,korce,saarinen,wazir,diyarbakir,cofounder,liberalisation,onsen,nighthawks,siting,retirements,semyon,d'histoire,
114th,redditch,venetia,praha,'round,valdosta,hieroglyphic,postmedial,edirne,miscellany,savona,cockpits,minimization,coupler,jacksonian,appeasement,argentines,saurashtra,arkwright,hesiod,folios,fitzalan,publica,rivaled,civitas,beermen,constructivism,ribeira,zeitschrift,solanum,todos,deformities,chilliwack,verdean,meagre,bishoprics,gujrat,yangzhou,reentered,inboard,mythologies,virtus,unsurprisingly,rusticated,museu,symbolise,proportionate,thesaban,symbian,aeneid,mitotic,veliki,compressive,cisterns,abies,winemaker,massenet,bertolt,ahmednagar,triplemania,armorial,administracion,tenures,smokehouse,hashtag,fuerza,regattas,gennady,kanazawa,mahmudabad,crustal,asaph,valentinian,ilaiyaraaja,honeyeater,trapezoidal,cooperatively,unambiguously,mastodon,inhospitable,harnesses,riverton,renewables,djurgardens,haitians,airings,humanoids,boatswain,shijiazhuang,faints,veera,punjabis,steepest,narain,karlovy,serre,sulcus,collectives,
1500m,arion,subarctic,liberally,apollonius,ostia,droplet,headstones,norra,robusta,maquis,veronese,imola,primers,luminance,escadrille,mizuki,irreconcilable,stalybridge,temur,paraffin,stuccoed,parthians,counsels,fundamentalists,vivendi,polymath,sugababes,mikko,yonne,fermions,vestfold,pastoralist,kigali,unseeded,glarus,cusps,amasya,northwesterly,minorca,astragalus,verney,trevelyan,antipathy,wollstonecraft,bivalves,boulez,royle,divisao,quranic,bareilly,coronal,deviates,lulea,erectus,petronas,chandan,proxies,aeroflot,postsynaptic,memoriam,moyne,gounod,kuznetsova,pallava,ordinating,reigate,'first,lewisburg,exploitative,danby,academica,bailiwick,brahe,injective,stipulations,aeschylus,computes,gulden,hydroxylase,liveries,somalis,underpinnings,muscovite,kongsberg,domus,overlain,shareware,variegated,jalalabad,agence,ciphertext,insectivores,dengeki,menuhin,cladistic,baerum,betrothal,tokushima,wavelet,expansionist,pottsville,siyuan,prerequisites,carpi,nemzeti,nazar,trialled,eliminator,irrorated,homeward,redwoods,undeterred,strayed,lutyens,multicellular,aurelian,notated,lordships,alsatian,idents,foggia,garros,chalukyas,lillestrom,podlaski,pessimism,hsien,demilitarized,whitewashed,willesden,kirkcaldy,sanctorum,lamia,relaying,escondido,paediatric,contemplates,demarcated,bluestone,betula,penarol,capitalise,kreuznach,kenora,
115th,hold'em,reichswehr,vaucluse,m.i.a,windings,boys/girls,cajon,hisar,predictably,flemington,ysgol,mimicked,clivina,grahamstown,ionia,glyndebourne,patrese,aquaria,sleaford,dayal,sportscenter,malappuram,m.b.a.,manoa,carbines,solvable,designator,ramanujan,linearity,academicians,sayid,lancastrian,factorial,strindberg,vashem,delos,comyn,condensing,superdome,merited,kabaddi,intransitive,bideford,neuroimaging,duopoly,scorecards,ziggler,heriot,boyars,virology,marblehead,microtubules,westphalian,anticipates,hingham,searchers,harpist,rapides,morricone,convalescent,mises,nitride,metrorail,matterhorn,bicol,drivetrain,marketer,snippet,winemakers,muban,scavengers,halberstadt,herkimer,peten,laborious,stora,montgomeryshire,booklist,shamir,herault,eurostar,anhydrous,spacewalk,ecclesia,calliostoma,highschool,d'oro,suffusion,imparts,overlords,tagus,rectifier,counterinsurgency,ministered,eilean,milecastle,contre,micromollusk,okhotsk,bartoli,matroid,hasidim,thirunal,terme,tarlac,lashkar,presque,thameslink,flyby,troopship,renouncing,fatih,messrs,vexillum,bagration,magnetite,bornholm,androgynous,vehement,tourette,philosophic,gianfranco,tuileries,codice_6,radially,flexion,hants,reprocessing,setae,burne,palaeographically,infantryman,shorebirds,tamarind,moderna,threading,militaristic,crohn,norrkoping,
125cc,stadtholder,troms,klezmer,alphanumeric,brome,emmanuelle,tiwari,alchemical,formula_52,onassis,bleriot,bipedal,colourless,hermeneutics,hosni,precipitating,turnstiles,hallucinogenic,panhellenic,wyandotte,elucidated,chita,ehime,generalised,hydrophilic,biota,niobium,rnzaf,gandhara,longueuil,logics,sheeting,bielsko,cuvier,kagyu,trefoil,docent,pancrase,stalinism,postures,encephalopathy,monckton,imbalances,epochs,leaguers,anzio,diminishes,pataki,nitrite,amuro,nabil,maybach,l'aquila,babbler,bacolod,thutmose,evora,gaudi,breakage,recur,preservative,
60deg,mendip,functionaries,columnar,maccabiah,chert,verden,bromsgrove,clijsters,dengue,pastorate,phuoc,principia,viareggio,kharagpur,scharnhorst,anyang,bosons,l'art,criticises,ennio,semarang,brownian,mirabilis,asperger,calibers,typographical,cartooning,minos,disembark,supranational,undescribed,etymologically,alappuzha,vilhelm,lanao,pakenham,bhagavata,rakoczi,clearings,astrologers,manitowoc,bunuel,acetylene,scheduler,defamatory,trabzonspor,leaded,scioto,pentathlete,abrahamic,minigames,aldehydes,peerages,legionary,
1640s,masterworks,loudness,bryansk,likeable,genocidal,vegetated,towpath,declination,pyrrhus,divinely,vocations,rosebery,associazione,loaders,biswas,oeste,tilings,xianzong,bhojpuri,annuities,relatedness,idolator,psers,constriction,chuvash,choristers,hanafi,fielders,grammarian,orpheum,asylums,millbrook,gyatso,geldof,stabilise,tableaux,diarist,kalahari,panini,cowdenbeath,melanin,
4x100m,resonances,pinar,atherosclerosis,sheringham,castlereagh,aoyama,larks,pantograph,protrude,natak,gustafsson,moribund,cerevisiae,cleanly,polymeric,holkar,cosmonauts,underpinning,lithosphere,firuzabad,languished,mingled,citrate,spadina,lavas,daejeon,fibrillation,porgy,pineville,ps1000,cobbled,emamzadeh,mukhtar,dampers,indelible,salonika,nanoscale,treblinka,eilat,purporting,fluctuate,mesic,hagiography,cutscenes,fondation,barrens,comically,accrue,ibrox,makerere,defections,'there,hollandia,skene,grosseto,reddit,objectors,inoculation,rowdies,playfair,calligrapher,namor,sibenik,abbottabad,propellants,hydraulically,chloroplasts,tablelands,tecnico,schist,klasse,shirvan,bashkortostan,bullfighting,north/south,polski,hanns,woodblock,kilmore,ejecta,ignacy,nanchang,danubian,commendations,snohomish,samaritans,argumentation,vasconcelos,hedgehogs,vajrayana,barents,kulkarni,kumbakonam,identifications,hillingdon,weirs,nayanar,beauvoir,messe,divisors,atlantiques,broods,affluence,tegucigalpa,unsuited,autodesk,akash,princeps,culprits,kingstown,unassuming,goole,visayan,asceticism,blagojevich,irises,paphos,unsound,maurier,pontchartrain,desertification,sinfonietta,latins,especial,limpet,valerenga,glial,brainstem,mitral,parables,sauropod,judean,iskcon,sarcoma,venlo,justifications,zhuhai,blavatsky,alleviated,usafe,steppenwolf,inversions,janko,chagall,secretory,basildon,saguenay,pergamon,hemispherical,harmonized,reloading,franjo,domaine,extravagance,relativism,metamorphosed,labuan,baloncesto,gmail,byproducts,calvinists,counterattacked,vitus,bubonic,
120th,strachey,ritually,brookwood,selectable,savinja,incontinence,meltwater,jinja,
1720s,brahmi,morgenthau,sheaves,sleeved,stratovolcano,wielki,utilisation,avoca,fluxus,panzergrenadier,philately,deflation,podlaska,prerogatives,kuroda,theophile,zhongzong,gascoyne,magus,takao,arundell,fylde,merdeka,prithviraj,venkateswara,liepaja,daigo,dreamland,reflux,sunnyvale,coalfields,seacrest,soldering,flexor,structuralism,alnwick,outweighed,unaired,mangeshkar,batons,glaad,banshees,irradiated,organelles,biathlete,cabling,chairlift,lollapalooza,newsnight,capacitive,succumbs,flatly,miramichi,burwood,comedienne,charteris,biotic,workspace,aficionados,sokolka,chatelet,o'shaughnessy,prosthesis,neoliberal,refloated,oppland,hatchlings,econometrics,loess,thieu,androids,appalachians,jenin,pterostichinae,downsized,foils,chipsets,stencil,danza,narrate,maginot,yemenite,bisects,crustacean,prescriptive,melodious,alleviation,empowers,hansson,autodromo,obasanjo,osmosis,daugava,rheumatism,moraes,leucine,etymologies,chepstow,delaunay,bramall,bajaj,flavoring,approximates,marsupials,incisive,microcomputer,tactically,waals,wilno,fisichella,ursus,hindmarsh,mazarin,lomza,xenophobia,lawlessness,annecy,wingers,gornja,gnaeus,superieur,tlaxcala,clasps,symbolises,slats,rightist,effector,blighted,permanence,divan,progenitors,kunsthalle,anointing,excelling,coenzyme,indoctrination,dnipro,landholdings,adriaan,liturgies,cartan,ethmia,attributions,sanctus,trichy,chronicon,tancred,affinis,kampuchea,gantry,pontypool,membered,distrusted,fissile,dairies,hyposmocoma,craigie,adarsh,martinsburg,taxiway,
30deg,geraint,vellum,bencher,khatami,formula_53,zemun,teruel,endeavored,palmares,pavements,u.s..,internationalization,satirized,carers,attainable,wraparound,muang,parkersburg,extinctions,birkenfeld,wildstorm,payers,cohabitation,unitas,culloden,capitalizing,clwyd,daoist,campinas,emmylou,orchidaceae,halakha,orientales,fealty,domnall,chiefdom,nigerians,ladislav,dniester,avowed,ergonomics,newsmagazine,kitsch,cantilevered,benchmarking,remarriage,alekhine,coldfield,taupo,almirante,substations,apprenticeships,seljuq,levelling,eponym,symbolising,salyut,opioids,underscore,ethnologue,mohegan,marikina,libro,bassano,parse,semantically,disjointed,dugdale,padraig,tulsi,modulating,xfinity,headlands,mstislav,earthworms,bourchier,lgbtq,embellishments,pennants,rowntree,betel,motet,mulla,catenary,washoe,mordaunt,dorking,colmar,girardeau,glentoran,grammatically,samad,recreations,technion,staccato,mikoyan,spoilers,lyndhurst,victimization,chertsey,belafonte,tondo,tonsberg,narrators,subcultures,malformations,edina,augmenting,attests,euphemia,cabriolet,disguising,
1650s,navarrese,demoralized,cardiomyopathy,welwyn,wallachian,smoothness,planktonic,voles,issuers,sardasht,survivability,cuauhtemoc,thetis,extruded,signet,raghavan,lombok,eliyahu,crankcase,dissonant,stolberg,trencin,desktops,bursary,collectivization,charlottenburg,triathlete,curvilinear,involuntarily,mired,wausau,invades,sundaram,deletions,bootstrap,abellio,axiomatic,noguchi,setups,malawian,visalia,materialist,kartuzy,wenzong,plotline,yeshivas,parganas,tunica,citric,conspecific,idlib,superlative,reoccupied,blagoevgrad,masterton,immunological,hatta,courbet,vortices,swallowtail,delves,haridwar,diptera,boneh,bahawalpur,angering,mardin,equipments,deployable,guanine,normality,rimmed,artisanal,boxset,chandrasekhar,jools,chenar,tanakh,carcassonne,belatedly,millville,anorthosis,reintegration,velde,surfactant,kanaan,busoni,glyphipterix,personas,fullness,rheims,tisza,stabilizers,bharathi,joost,spinola,mouldings,perching,esztergom,afzal,apostate,lustre,s.league,motorboat,monotheistic,armature,barat,asistencia,bloomsburg,hippocampal,fictionalised,defaults,broch,hexadecimal,lusignan,ryanair,boccaccio,breisgau,southbank,bskyb,adjoined,neurobiology,aforesaid,sadhu,langue,headship,wozniacki,hangings,regulus,prioritized,dynamism,allier,hannity,shimin,antoninus,gymnopilus,caledon,preponderance,melayu,electrodynamics,syncopated,ibises,krosno,mechanistic,morpeth,harbored,albini,monotheism,'real,hyperactivity,haveli,writer/director,minato,nimoy,caerphilly,chitral,amirabad,fanshawe,l'oreal,lorde,mukti,authoritarianism,valuing,spyware,hanbury,restarting,stato,embed,suiza,empiricism,stabilisation,stari,castlemaine,orbis,manufactory,mauritanian,shoji,taoyuan,prokaryotes,oromia,ambiguities,embodying,slims,frente,innovate,ojibwa,powdery,gaeltacht,argentinos,quatermass,detergents,fijians,adaptor,tokai,chileans,bulgars,oxidoreductases,bezirksliga,conceicao,myosin,nellore,
500cc,supercomputers,approximating,glyndwr,polypropylene,haugesund,cockerell,tudman,ashbourne,hindemith,bloodlines,rigveda,etruria,romanos,steyn,oradea,deceleration,manhunter,laryngeal,fraudulently,janez,wendover,haplotype,janaki,naoki,belizean,mellencamp,cartographic,sadhana,tricolour,pseudoscience,satara,bytow,s.p.a.,jagdgeschwader,arcot,omagh,sverdrup,masterplan,surtees,apocrypha,ahvaz,d'amato,socratic,leumit,unnumbered,nandini,witold,marsupial,coalesced,interpolated,gimnasia,karadzic,keratin,mamoru,aldeburgh,speculator,escapement,irfan,kashyap,satyajit,haddington,solver,rothko,ashkelon,kickapoo,yeomen,superbly,bloodiest,greenlandic,lithic,autofocus,yardbirds,poona,keble,javan,sufis,expandable,tumblr,ursuline,swimwear,winwood,counsellors,aberrations,marginalised,befriending,workouts,predestination,varietal,siddhartha,dunkeld,judaic,esquimalt,shabab,ajith,telefonica,stargard,hoysala,radhakrishnan,sinusoidal,strada,hiragana,cebuano,monoid,independencia,floodwaters,mildura,mudflats,ottokar,translit,radix,wigner,philosophically,tephritid,synthesizing,castletown,installs,stirner,resettle,bushfire,choirmaster,kabbalistic,shirazi,lightship,rebus,colonizers,centrifuge,leonean,kristofferson,thymus,clackamas,ratnam,rothesay,municipally,centralia,thurrock,gulfport,bilinear,desirability,merite,psoriasis,macaw,erigeron,consignment,mudstone,distorting,karlheinz,ramen,tailwheel,vitor,reinsurance,edifices,superannuation,dormancy,contagion,cobden,rendezvoused,prokaryotic,deliberative,patricians,feigned,degrades,starlings,sopot,viticultural,beaverton,overflowed,convener,garlands,michiel,ternopil,naturelle,biplanes,bagot,gamespy,ventspils,disembodied,flattening,profesional,londoners,arusha,scapular,forestall,pyridine,ulema,eurodance,aruna,callus,periodontal,coetzee,immobilized,o'meara,maharani,katipunan,reactants,zainab,microgravity,saintes,britpop,carrefour,constrain,adversarial,firebirds,brahmo,kashima,simca,surety,surpluses,superconductivity,gipuzkoa,cumans,tocantins,obtainable,humberside,roosting,'king,formula_54,minelayer,bessel,sulayman,cycled,biomarkers,annealing,shusha,barda,cassation,djing,polemics,tuple,directorates,indomitable,obsolescence,wilhelmine,pembina,bojan,tambo,dioecious,pensioner,magnificat,
1660s,estrellas,southeasterly,immunodeficiency,railhead,surreptitiously,codeine,encores,religiosity,tempera,camberley,efendi,boardings,malleable,hagia,input/output,lucasfilm,ujjain,polymorphisms,creationist,berners,mickiewicz,irvington,linkedin,endures,kinect,munition,apologetics,fairlie,predicated,reprinting,ethnographer,variances,levantine,mariinsky,jadid,jarrow,asia/oceania,trinamool,waveforms,bisexuality,preselection,pupae,buckethead,hieroglyph,lyricists,marionette,dunbartonshire,restorer,monarchical,pazar,kickoffs,cabildo,savannas,gliese,dench,spoonbills,novelette,diliman,hypersensitivity,authorising,montefiore,mladen,qu'appelle,theistic,maruti,laterite,conestoga,saare,californica,proboscis,carrickfergus,imprecise,hadassah,baghdadi,jolgeh,deshmukh,amusements,heliopolis,berle,adaptability,partenkirchen,separations,baikonur,cardamom,southeastward,southfield,muzaffar,adequacy,metropolitana,rajkot,kiyoshi,metrobus,evictions,reconciles,librarianship,upsurge,knightley,badakhshan,proliferated,spirituals,burghley,electroacoustic,professing,featurette,reformists,skylab,descriptors,oddity,greyfriars,injects,salmond,lanzhou,dauntless,subgenera,underpowered,transpose,mahinda,gatos,aerobatics,seaworld,blocs,waratahs,joris,giggs,perfusion,koszalin,mieczyslaw,ayyubid,ecologists,modernists,sant'angelo,quicktime,him/her,staves,sanyo,melaka,acrocercops,qigong,iterated,generalizes,recuperation,vihara,circassians,psychical,chavo,memoires,infiltrates,notaries,pelecaniformesfamily,strident,chivalric,pierrepont,alleviating,broadsides,centipede,b.tech,reinterpreted,sudetenland,hussite,covenanters,radhika,ironclads,gainsbourg,testis,penarth,plantar,azadegan,beano,espn.com,leominster,autobiographies,nbcuniversal,eliade,khamenei,montferrat,undistinguished,ethnological,wenlock,fricatives,polymorphic,biome,joule,sheaths,astrophysicist,salve,neoclassicism,lovat,downwind,belisarius,forma,usurpation,freie,depopulation,backbench,ascenso,'high,aagpbl,gdanski,zalman,mouvement,encapsulation,bolshevism,statny,voyageurs,hywel,vizcaya,mazra'eh,narthex,azerbaijanis,cerebrospinal,mauretania,fantail,clearinghouse,bolingbroke,pequeno,ansett,remixing,microtubule,wrens,jawahar,palembang,gambian,hillsong,fingerboard,repurposed,sundry,incipient,veolia,theologically,ulaanbaatar,atsushi,foundling,resistivity,myeloma,factbook,mazowiecka,diacritic,urumqi,clontarf,provokes,intelsat,professes,materialise,portobello,benedictines,panionios,introverted,reacquired,bridport,mammary,kripke,oratorios,vlore,stoning,woredas,unreported,antti,togolese,fanzines,heuristics,conservatories,carburetors,clitheroe,cofounded,formula_57,erupting,quinnipiac,bootle,ghostface,sittings,aspinall,sealift,transferase,boldklub,siskiyou,predominated,francophonie,ferruginous,castrum,neogene,sakya,madama,precipitous,'love,posix,bithynia,uttara,avestan,thrushes,seiji,memorably,septimius,libri,cibernetico,hyperinflation,dissuaded,cuddalore,peculiarity,vaslui,grojec,albumin,thurles,casks,fasteners,fluidity,buble,casals,terek,gnosticism,cognates,ulnar,radwanska,babylonians,majuro,oxidizer,excavators,rhythmically,liffey,gorakhpur,eurydice,underscored,arborea,lumumba,tuber,catholique,grama,galilei,scrope,centreville,jacobin,bequests,ardeche,polygamous,montauban,terai,weatherboard,readability,attainder,acraea,transversely,rivets,winterbottom,reassures,bacteriology,vriesea,chera,andesite,dedications,homogenous,reconquered,bandon,forrestal,ukiyo,gurdjieff,tethys,sparc,muscogee,grebes,belchatow,mansa,blantyre,palliser,sokolow,fibroblasts,exmoor,misaki,soundscapes,housatonic,middelburg,convenor,leyla,antipope,histidine,okeechobee,alkenes,sombre,alkene,rubik,macaques,calabar,trophee,pinchot,'free,frusciante,chemins,falaise,vasteras,gripped,schwarzenberg,cumann,kanchipuram,acoustically,silverbacks,fangio,inset,plympton,kuril,vaccinations,recep,theropods,axils,stavropol,encroached,apoptotic,papandreou,wailers,moonstone,assizes,micrometers,hornchurch,truncation,annapurna,egyptologists,rheumatic,promiscuity,satiric,fleche,caloptilia,anisotropy,quaternions,gruppo,viscounts,awardees,aftershocks,sigint,concordance,oblasts,gaumont,stent,commissars,kesteven,hydroxy,vijayanagar,belorussian,fabricius,watermark,tearfully,mamet,leukaemia,sorkh,milepost,tattooing,vosta,abbasids,uncompleted,hedong,woodwinds,extinguishing,malus,multiplexes,francoist,pathet,responsa,bassists,'most,postsecondary,ossory,grampian,saakashvili,alito,strasberg,impressionistic,volador,gelatinous,vignette,underwing,campanian,abbasabad,albertville,hopefuls,nieuwe,taxiways,reconvened,recumbent,pathologists,unionized,faversham,asymptotically,romulo,culling,donja,constricted,annesley,duomo,enschede,lovech,sharpshooter,lansky,dhamma,papillae,alanine,mowat,delius,wrest,mcluhan,podkarpackie,imitators,bilaspur,stunting,pommel,casemate,handicaps,nagas,testaments,hemings,necessitate,rearward,locative,cilla,klitschko,lindau,merion,consequential,antic,soong,copula,berthing,chevrons,rostral,sympathizer,budokan,ranulf,beria,stilt,replying,conflated,alcibiades,painstaking,yamanashi,calif.,arvid,ctesiphon,xizong,rajas,caxton,downbeat,resurfacing,rudders,miscegenation,deathmatch,foregoing,arthropod,attestation,karts,reapportionment,harnessing,eastlake,schola,dosing,postcolonial,imtiaz,formula_55,insulators,gunung,accumulations,pampas,llewelyn,bahnhof,cytosol,grosjean,teaneck,briarcliff,arsenio,canara,elaborating,passchendaele,searchlights,holywell,mohandas,preventable,gehry,mestizos,ustinov,cliched,'national,heidfeld,tertullian,jihadist,tourer,miletus,semicircle,outclassed,bouillon,cardinalate,clarifies,dakshina,bilayer,pandyan,unrwa,chandragupta,formula_56,portola,sukumaran,lactation,islamia,heikki,couplers,misappropriation,catshark,montt,ploughs,carib,stator,leaderboard,kenrick,dendrites,scape,tillamook,molesworth,mussorgsky,melanesia,restated,troon,glycoside,truckee,headwater,mashup,sectoral,gangwon,docudrama,skirting,psychopathology,dramatised,ostroleka,infestations,thabo,depolarization,wideroe,eisenbahn,thomond,kumaon,upendra,foreland,acronyms,yaqui,retaking,raphaelite,specie,dupage,villars,lucasarts,chloroplast,werribee,balsa,ascribe,havant,flava,khawaja,tyumen,subtract,interrogators,reshaping,buzzcocks,eesti,campanile,potemkin,apertures,snowboarder,registrars,handbooks,boyar,contaminant,depositors,proximate,jeunesse,zagora,pronouncements,mists,nihilism,deified,margraviate,pietersen,moderators,amalfi,adjectival,copepods,magnetosphere,pallets,clemenceau,castra,perforation,granitic,troilus,grzegorz,luthier,dockyards,antofagasta,ffestiniog,subroutine,afterword,waterwheel,druce,nitin,undifferentiated,emacs,readmitted,barneveld,tapers,hittites,infomercials,infirm,braathens,heligoland,carpark,geomagnetic,musculoskeletal,nigerien,machinima,harmonize,repealing,indecency,muskoka,verite,steubenville,suffixed,cytoskeleton,surpasses,harmonia,imereti,ventricles,heterozygous,envisions,otsego,ecoles,warrnambool,burgenland,seria,rawat,capistrano,welby,kirin,enrollments,caricom,dragonlance,schaffhausen,expanses,photojournalism,brienne,etude,referent,jamtland,schemas,xianbei,cleburne,bicester,maritima,shorelines,diagonals,bjelke,nonpublic,aliasing,m.f.a,ovals,maitreya,skirmishing,grothendieck,sukhothai,angiotensin,bridlington,durgapur,contras,gakuen,skagit,rabbinate,tsunamis,haphazard,tyldesley,microcontroller,discourages,hialeah,compressing,septimus,larvik,condoleezza,psilocybin,protectionism,songbirds,clandestinely,selectmen,wargame,cinemascope,khazars,agronomy,melzer,latifah,cherokees,recesses,assemblymen,basescu,banaras,bioavailability,subchannels,adenine,o'kelly,prabhakar,leonese,dimethyl,testimonials,geoffroy,oxidant,universiti,gheorghiu,bohdan,reversals,zamorin,herbivore,jarre,sebastiao,infanterie,dolmen,teddington,radomsko,spaceships,cuzco,recapitulation,mahoning,bainimarama,myelin,aykroyd,decals,tokelau,nalgonda,rajasthani,
121st,quelled,tambov,illyrians,homilies,illuminations,hypertrophy,grodzisk,inundation,incapacity,equilibria,combats,elihu,steinitz,berengar,gowda,canwest,khosrau,maculata,houten,kandinsky,onside,leatherhead,heritable,belvidere,federative,chukchi,serling,eruptive,patan,entitlements,suffragette,evolutions,migrates,demobilisation,athleticism,trope,sarpsborg,kensal,translink,squamish,concertgebouw,energon,timestamp,competences,zalgiris,serviceman,codice_7,spoofing,assange,mahadevan,skien,suceava,augustan,revisionism,unconvincing,hollande,drina,gottlob,lippi,broglie,darkening,tilapia,eagerness,nacht,kolmogorov,photometric,leeuwarden,jrotc,haemorrhage,almanack,cavalli,repudiation,galactose,zwickau,cetinje,houbraken,heavyweights,gabonese,ordinals,noticias,museveni,steric,charaxes,amjad,resection,joinville,leczyca,anastasius,purbeck,subtribe,dalles,leadoff,monoamine,jettisoned,kaori,anthologized,alfreton,indic,bayezid,tottori,colonizing,assassinating,unchanging,eusebian,d'estaing,tsingtao,toshio,transferases,peronist,metrology,equus,mirpur,libertarianism,kovil,indole,'green,abstention,quantitatively,icebreakers,tribals,mainstays,dryandra,eyewear,nilgiri,chrysanthemum,inositol,frenetic,merchantman,hesar,physiotherapist,transceiver,dancefloor,rankine,neisse,marginalization,lengthen,unaided,rework,pageantry,savio,striated,funen,witton,illuminates,frass,hydrolases,akali,bistrita,copywriter,firings,handballer,tachinidae,dmytro,coalesce,neretva,menem,moraines,coatbridge,crossrail,spoofed,drosera,ripen,protour,kikuyu,boleslav,edwardes,troubadours,haplogroups,wrasse,educationalist,sroda,khaneh,dagbladet,apennines,neuroscientist,deplored,terje,maccabees,daventry,spaceport,lessening,ducats,singer/guitarist,chambersburg,yeong,configurable,ceremonially,unrelenting,caffe,graaf,denizens,kingsport,ingush,panhard,synthesised,tumulus,homeschooled,bozorg,idiomatic,thanhouser,queensway,radek,hippolytus,inking,banovina,peacocks,piaui,handsworth,pantomimes,abalone,thera,kurzweil,bandura,augustinians,bocelli,ferrol,jiroft,quadrature,contravention,saussure,rectification,agrippina,angelis,matanzas,nidaros,palestrina,latium,coriolis,clostridium,ordain,uttering,lanchester,proteolytic,ayacucho,merseburg,holbein,sambalpur,algebraically,inchon,ostfold,savoia,calatrava,lahiri,judgeship,ammonite,masaryk,meyerbeer,hemorrhagic,superspeedway,ningxia,panicles,encircles,khmelnytsky,profusion,esher,babol,inflationary,anhydride,gaspe,mossy,periodicity,nacion,meteorologists,mahjong,interventional,sarin,moult,enderby,modell,palgrave,warners,montcalm,siddha,functionalism,rilke,politicized,broadmoor,kunste,orden,brasileira,araneta,eroticism,colquhoun,mamba,blacktown,tubercle,seagrass,manoel,camphor,neoregelia,llandudno,annexe,enplanements,kamien,plovers,statisticians,iturbide,madrasah,nontrivial,publican,landholders,manama,uninhabitable,revivalist,trunkline,friendliness,gurudwara,rocketry,unido,tripos,besant,braque,evolutionarily,abkhazian,staffel,ratzinger,brockville,bohemond,intercut,djurgarden,utilitarianism,deploys,sastri,absolutism,subhas,asghar,fictions,sepinwall,proportionately,titleholders,thereon,foursquare,machinegun,knightsbridge,siauliai,aqaba,gearboxes,castaways,weakens,phallic,strzelce,buoyed,ruthenia,pharynx,intractable,neptunes,koine,leakey,netherlandish,preempted,vinay,terracing,instigating,alluvium,prosthetics,vorarlberg,politiques,joinery,reduplication,nebuchadnezzar,lenticular,banka,seaborne,pattinson,helpline,aleph,beckenham,californians,namgyal,franziska,aphid,branagh,transcribe,appropriateness,surakarta,takings,propagates,juraj,b0d3fb,brera,arrayed,tailback,falsehood,hazleton,prosody,egyptology,pinnate,tableware,ratan,camperdown,ethnologist,tabari,classifiers,biogas,
126th,kabila,arbitron,apuestas,membranous,kincardine,oceana,glories,natick,populism,synonymy,ghalib,mobiles,motherboards,stationers,germinal,patronised,formula_58,gaborone,torts,jeezy,interleague,novaya,batticaloa,offshoots,wilbraham,filename,nswrfl,'well,trilobite,pythons,optimally,scientologists,rhesus,pilsen,backdrops,batang,unionville,hermanos,shrikes,fareham,outlawing,discontinuing,boisterous,shamokin,scanty,southwestward,exchangers,unexpired,mewar,h.m.s,saldanha,pawan,condorcet,turbidity,donau,indulgences,coincident,cliques,weeklies,bardhaman,violators,kenai,caspase,xperia,kunal,fistula,epistemic,cammell,nephi,disestablishment,rotator,germaniawerft,pyaar,chequered,jigme,perlis,anisotropic,popstars,kapil,appendices,berat,defecting,shacks,wrangel,panchayath,gorna,suckling,aerosols,sponheim,talal,borehole,encodings,enlai,subduing,agong,nadar,kitsap,syrmia,majumdar,pichilemu,charleville,embryology,booting,literati,abutting,basalts,jussi,repubblica,hertogenbosch,digitization,relents,hillfort,wiesenthal,kirche,bhagwan,bactrian,oases,phyla,neutralizing,helsing,ebooks,spearheading,margarine,'golden,phosphor,picea,stimulants,outliers,timescale,gynaecology,integrator,skyrocketed,bridgnorth,senecio,ramachandra,suffragist,arrowheads,aswan,inadvertent,microelectronics,
118th,sofer,kubica,melanesian,tuanku,balkh,vyborg,crystallographic,initiators,metamorphism,ginzburg,looters,unimproved,finistere,newburyport,norges,immunities,franchisees,asterism,kortrijk,camorra,komsomol,fleurs,draughts,patagonian,voracious,artin,collaborationist,revolucion,revitalizing,xaver,purifying,antipsychotic,disjunct,pompeius,dreamwave,juvenal,beinn,adiyaman,antitank,allama,boletus,melanogaster,dumitru,caproni,aligns,athabaskan,stobart,phallus,veikkausliiga,hornsey,buffering,bourbons,dobruja,marga,borax,electrics,gangnam,motorcyclist,whidbey,draconian,lodger,galilean,sanctification,imitates,boldness,underboss,wheatland,cantabrian,terceira,maumee,redefining,uppercase,ostroda,characterise,universalism,equalized,syndicalism,haringey,masovia,deleuze,funkadelic,conceals,thuan,minsky,pluralistic,ludendorff,beekeeping,bonfires,endoscopic,abuts,prebend,jonkoping,amami,tribunes,yup'ik,awadh,gasification,pforzheim,reforma,antiwar,vaishnavism,maryville,inextricably,margrethe,empresa,neutrophils,sanctified,ponca,elachistidae,curiae,quartier,mannar,hyperplasia,wimax,busing,neologism,florins,underrepresented,digitised,nieuw,cooch,howards,frege,hughie,plied,swale,kapellmeister,vajpayee,quadrupled,aeronautique,dushanbe,custos,saltillo,kisan,tigray,manaus,epigrams,shamanic,peppered,frosts,promotion/relegation,concedes,zwingli,charentes,whangarei,hyung,spring/summer,sobre,eretz,initialization,sawai,ephemera,grandfathered,arnaldo,customised,permeated,parapets,growths,visegrad,estudios,altamont,provincia,apologises,stoppard,carburettor,rifts,kinematic,zhengzhou,eschatology,prakrit,folate,yvelines,scapula,stupas,rishon,reconfiguration,flutist,
1680s,apostolate,proudhon,lakshman,articulating,stortford,faithfull,bitterns,upwelling,qur'anic,lidar,interferometry,waterlogged,koirala,ditton,wavefunction,fazal,babbage,antioxidants,lemberg,deadlocked,tolled,ramapo,mathematica,leiria,topologies,khali,photonic,balti,
1080p,corrects,recommenced,polyglot,friezes,tiebreak,copacabana,cholmondeley,armband,abolishment,sheamus,buttes,glycolysis,cataloged,warrenton,sassari,kishan,foodservice,cryptanalysis,holmenkollen,cosplay,machi,yousuf,mangal,allying,fertiliser,otomi,charlevoix,metallurg,parisians,bottlenose,oakleigh,debug,cidade,accede,ligation,madhava,pillboxes,gatefold,aveyron,sorin,thirsk,immemorial,menelik,mehra,domingos,underpinned,fleshed,harshness,diphthong,crestwood,miskolc,dupri,pyrausta,muskingum,tuoba,prodi,incidences,waynesboro,marquesas,heydar,artesian,calinescu,nucleation,funders,covalently,compaction,derbies,seaters,sodor,tabular,amadou,peckinpah,o'halloran,zechariah,libyans,kartik,daihatsu,chandran,erzhu,heresies,superheated,yarder,dorde,tanjore,abusers,xuanwu,juniperus,moesia,trusteeship,birdwatching,beatz,moorcock,harbhajan,sanga,choreographic,photonics,boylston,amalgamate,prawns,electrifying,sarath,inaccurately,exclaims,powerpoint,chaining,cpusa,adulterous,saccharomyces,glogow,vfl/afl,syncretic,simla,persisting,functors,allosteric,euphorbiaceae,juryo,mlada,moana,gabala,thornycroft,kumanovo,ostrovsky,sitio,tutankhamun,sauropods,kardzhali,reinterpretation,sulpice,rosyth,originators,halesowen,delineation,asesoria,abatement,gardai,elytra,taillights,overlays,monsoons,sandpipers,ingmar,henrico,inaccuracy,irwell,arenabowl,elche,pressburg,signalman,interviewees,sinkhole,pendle,ecommerce,cellos,nebria,organometallic,surrealistic,propagandist,interlaken,canandaigua,aerials,coutinho,pascagoula,tonopah,letterkenny,gropius,carbons,hammocks,childe,polities,hosiery,donitz,suppresses,diaghilev,stroudsburg,bagram,pistoia,regenerating,unitarians,takeaway,offstage,vidin,glorification,bakunin,yavapai,lutzow,sabercats,witney,abrogated,gorlitz,validating,dodecahedron,stubbornly,telenor,glaxosmithkline,solapur,undesired,jellicoe,dramatization,four-and-a-half,seawall,waterpark,artaxerxes,vocalization,typographic,byung,sachsenhausen,shepparton,kissimmee,konnan,belsen,dhawan,khurd,mutagenesis,vejle,perrot,estradiol,formula_60,saros,chiloe,misiones,lamprey,terrains,speke,miasto,eigenvectors,haydock,reservist,corticosteroids,savitri,shinawatra,developmentally,yehudi,berates,janissaries,recapturing,rancheria,subplots,gresley,nikkatsu,oryol,cosmas,boavista,formula_59,playfully,subsections,commentated,kathakali,dorid,vilaine,seepage,hylidae,keiji,kazakhs,triphosphate,
1620s,supersede,monarchists,falla,miyako,notching,bhumibol,polarizing,secularized,shingled,bronislaw,lockerbie,soleyman,bundesbahn,latakia,redoubts,boult,inwardly,invents,ondrej,minangkabau,newquay,permanente,alhaji,madhav,malini,ellice,bookmaker,mankiewicz,etihad,o'dea,interrogative,mikawa,wallsend,canisius,bluesy,vitruvius,noord,ratifying,mixtec,gujranwala,subprefecture,keelung,goiania,nyssa,shi'ite,semitone,ch'uan,computerised,pertuan,catapults,nepomuk,shruti,millstones,buskerud,acolytes,tredegar,sarum,armia,dell'arte,devises,custodians,upturned,gallaudet,disembarking,thrashed,sagrada,myeon,undeclared,qumran,gaiden,tepco,janesville,showground,condense,chalon,unstaffed,pasay,undemocratic,hauts,viridis,uninjured,escutcheon,gymkhana,petaling,hammam,dislocations,tallaght,rerum,shias,indios,guaranty,simplicial,benares,benediction,tajiri,prolifically,huawei,onerous,grantee,ferencvaros,otranto,carbonates,conceit,digipak,qadri,masterclasses,swamiji,cradock,plunket,helmsman,
119th,salutes,tippecanoe,murshidabad,intelligibility,mittal,diversifying,bidar,asansol,crowdsourcing,rovere,karakoram,grindcore,skylights,tulagi,furrows,ligne,stuka,sumer,subgraph,amata,regionalist,bulkeley,teletext,glorify,readied,lexicographer,sabadell,predictability,quilmes,phenylalanine,bandaranaike,pyrmont,marksmen,quisling,viscountess,sociopolitical,afoul,pediments,swazi,martyrology,nullify,panagiotis,superconductors,veldenz,jujuy,l'isle,hematopoietic,shafi,subsea,hattiesburg,jyvaskyla,kebir,myeloid,landmine,derecho,amerindians,birkenau,scriabin,milhaud,mucosal,nikaya,freikorps,theoretician,proconsul,o'hanlon,clerked,bactria,houma,macular,topologically,shrubby,aryeh,ghazali,afferent,magalhaes,moduli,ashtabula,vidarbha,securitate,ludwigsburg,adoor,varun,shuja,khatun,chengde,bushels,lascelles,professionnelle,elfman,rangpur,unpowered,citytv,chojnice,quaternion,stokowski,aschaffenburg,commutes,subramaniam,methylene,satrap,gharb,namesakes,rathore,helier,gestational,heraklion,colliers,giannis,pastureland,evocation,krefeld,mahadeva,churchmen,egret,yilmaz,galeazzo,pudukkottai,artigas,generalitat,mudslides,frescoed,enfeoffed,aphorisms,melilla,montaigne,gauliga,parkdale,mauboy,linings,prema,sapir,xylophone,kushan,rockne,sequoyah,vasyl,rectilinear,vidyasagar,microcosm,san'a,carcinogen,thicknesses,aleut,farcical,moderating,detested,hegemonic,instalments,vauban,verwaltungsgemeinschaft,picayune,razorback,magellanic,moluccas,pankhurst,exportation,waldegrave,sufferer,bayswater,
1up.com,rearmament,orangutans,varazdin,b.o.b,elucidate,harlingen,erudition,brankovic,lapis,slipway,urraca,shinde,unwell,elwes,euboea,colwyn,srivijaya,grandstands,hortons,generalleutnant,fluxes,peterhead,gandhian,reals,alauddin,maximized,fairhaven,endow,ciechanow,perforations,darters,panellist,manmade,litigants,exhibitor,tirol,caracalla,conformance,hotelier,stabaek,hearths,borac,frisians,ident,veliko,emulators,schoharie,uzbeks,samarra,prestwick,wadia,universita,tanah,bucculatrix,predominates,genotypes,denounces,roadsides,ganassi,keokuk,philatelist,tomic,ingots,conduits,samplers,abdus,johar,allegories,timaru,wolfpacks,secunda,smeaton,sportivo,inverting,contraindications,whisperer,moradabad,calamities,bakufu,soundscape,smallholders,nadeem,crossroad,xenophobic,zakir,nationalliga,glazes,retroflex,schwyz,moroder,rubra,quraysh,theodoros,endemol,infidels,km/hr,repositioned,portraitist,lluis,answerable,arges,mindedness,coarser,eyewall,teleported,scolds,uppland,vibraphone,ricoh,isenburg,bricklayer,cuttlefish,abstentions,communicable,cephalopod,stockyards,balto,kinston,armbar,bandini,elphaba,maxims,bedouins,sachsen,friedkin,tractate,pamir,ivanovo,mohini,kovalainen,nambiar,melvyn,orthonormal,matsuyama,cuernavaca,veloso,overstated,streamer,dravid,informers,analyte,sympathized,streetscape,gosta,thomasville,grigore,futuna,depleting,whelks,kiedis,armadale,earner,wynyard,dothan,animating,tridentine,sabri,immovable,rivoli,ariege,parley,clinker,circulates,junagadh,fraunhofer,congregants,
180th,buducnost,formula_62,olmert,dedekind,karnak,bayernliga,mazes,sandpiper,ecclestone,yuvan,smallmouth,decolonization,lemmy,adjudicated,retiro,legia,benue,posit,acidification,wahab,taconic,floatplane,perchlorate,atria,wisbech,divestment,dallara,phrygia,palustris,cybersecurity,rebates,facie,mineralogical,substituent,proteges,fowey,mayenne,smoothbore,cherwell,schwarzschild,junin,murrumbidgee,smalltalk,d'orsay,emirati,calaveras,titusville,theremin,vikramaditya,wampanoag,burra,plaines,onegin,emboldened,whampoa,langa,soderbergh,arnaz,sowerby,arendal,godunov,pathanamthitta,damselfly,bestowing,eurosport,iconoclasm,outfitters,acquiesced,badawi,hypotension,ebbsfleet,annulus,sohrab,thenceforth,chagatai,necessitates,aulus,oddities,toynbee,uniontown,innervation,populaire,indivisible,rossellini,minuet,cyrene,gyeongju,chania,cichlids,harrods,
1690s,plunges,abdullahi,gurkhas,homebuilt,sortable,bangui,rediff,incrementally,demetrios,medaille,sportif,svend,guttenberg,tubules,carthusian,pleiades,torii,hoppus,phenyl,hanno,conyngham,teschen,cronenberg,wordless,melatonin,distinctiveness,autos,freising,xuanzang,dunwich,satanism,sweyn,predrag,contractually,pavlovic,malaysians,micrometres,expertly,pannonian,abstaining,capensis,southwesterly,catchphrases,commercialize,frankivsk,normanton,hibernate,verso,deportees,dubliners,codice_8,condors,zagros,glosses,leadville,conscript,morrisons,usury,ossian,oulton,vaccinium,civet,ayman,codrington,hadron,nanometers,geochemistry,extractor,grigori,tyrrhenian,neocollyris,drooping,falsification,werft,courtauld,brigantine,orhan,chapultepec,supercopa,federalized,praga,havering,encampments,infallibility,sardis,pawar,undirected,reconstructionist,ardrossan,varuna,pastimes,archdiocesan,fledging,shenhua,molise,secondarily,stagnated,replicates,ciencias,duryodhana,marauding,ruislip,ilyich,intermixed,ravenswood,shimazu,mycorrhizal,icosahedral,consents,dunblane,follicular,pekin,suffield,muromachi,kinsale,gauche,businesspeople,thereto,watauga,exaltation,chelmno,gorse,proliferate,drainages,burdwan,kangra,transducers,inductor,duvalier,maguindanao,moslem,uncaf,givenchy,plantarum,liturgics,telegraphs,lukashenko,chenango,andante,novae,ironwood,faubourg,torme,chinensis,ambala,pietermaritzburg,virginians,landform,bottlenecks,o'driscoll,darbhanga,baptistery,ameer,needlework,naperville,auditoriums,mullingar,starrer,animatronic,topsoil,madura,cannock,vernet,santurce,catocala,ozeki,pontevedra,multichannel,sundsvall,strategists,medio,
135th,halil,afridi,trelawny,caloric,ghraib,allendale,hameed,ludwigshafen,spurned,pavlo,palmar,strafed,catamarca,aveiro,harmonization,surah,predictors,solvay,mande,omnipresent,parenthesis,echolocation,equaling,experimenters,acyclic,lithographic,sepoys,katarzyna,sridevi,impoundment,khosrow,caesarean,nacogdoches,rockdale,lawmaker,caucasians,bahman,miyan,rubric,exuberance,bombastic,ductile,snowdonia,inlays,pinyon,anemones,hurries,hospitallers,tayyip,pulleys,treme,photovoltaics,testbed,polonium,ryszard,osgoode,profiting,ironwork,unsurpassed,nepticulidae,makai,lumbini,preclassic,clarksburg,egremont,videography,rehabilitating,ponty,sardonic,geotechnical,khurasan,solzhenitsyn,henna,phoenicia,rhyolite,chateaux,retorted,tomar,deflections,repressions,harborough,renan,brumbies,vandross,storia,vodou,clerkenwell,decking,universo,salon.com,imprisoning,sudwest,ghaziabad,subscribing,pisgah,sukhumi,econometric,clearest,pindar,yildirim,iulia,atlases,cements,remaster,dugouts,collapsible,resurrecting,batik,unreliability,thiers,conjunctions,colophon,marcher,placeholder,flagella,wolds,kibaki,viviparous,twelver,screenshots,aroostook,khadr,iconographic,itasca,jaume,basti,propounded,varro,be'er,jeevan,exacted,shrublands,creditable,brocade,boras,bittern,oneonta,attentional,herzliya,comprehensible,lakeville,discards,caxias,frankland,camerata,satoru,matlab,commutator,interprovincial,yorkville,benefices,nizami,edwardsville,amigaos,cannabinoid,indianola,amateurliga,pernicious,ubiquity,anarchic,novelties,precondition,zardari,symington,sargodha,headphone,thermopylae,mashonaland,zindagi,thalberg,loewe,surfactants,dobro,crocodilians,samhita,diatoms,haileybury,berwickshire,supercritical,sofie,snorna,slatina,intramolecular,agung,osteoarthritis,obstetric,teochew,vakhtang,connemara,deformations,diadem,ferruccio,mainichi,qualitatively,refrigerant,rerecorded,methylated,karmapa,krasinski,restatement,rouvas,cubitt,seacoast,schwarzkopf,homonymous,shipowner,thiamine,approachable,xiahou,
160th,ecumenism,polistes,internazionali,fouad,berar,biogeography,texting,inadequately,'when,
4kids,hymenoptera,emplaced,cognomen,bellefonte,supplant,michaelmas,uriel,tafsir,morazan,schweinfurt,chorister,ps400,nscaa,petipa,resolutely,ouagadougou,mascarene,supercell,konstanz,bagrat,harmonix,bergson,shrimps,resonators,veneta,camas,mynydd,rumford,generalmajor,khayyam,web.com,pappus,halfdan,tanana,suomen,yutaka,bibliographical,traian,silat,noailles,contrapuntal,agaricus,'special,minibuses,
1670s,obadiah,deepa,rorschach,malolos,lymington,valuations,imperials,caballeros,ambroise,judicature,elegiac,sedaka,shewa,checksum,gosforth,legionaries,corneille,microregion,friedrichshafen,antonis,surnamed,mycelium,cantus,educations,topmost,outfitting,ivica,nankai,gouda,anthemic,iosif,supercontinent,antifungal,belarusians,mudaliar,mohawks,caversham,glaciated,basemen,stevan,clonmel,loughton,deventer,positivist,manipuri,tensors,panipat,changeup,impermeable,dubbo,elfsborg,maritimo,regimens,bikram,bromeliad,substratum,norodom,gaultier,queanbeyan,pompeo,redacted,eurocopter,mothballed,centaurs,borno,copra,bemidji,'home,sopron,neuquen,passo,cineplex,alexandrov,wysokie,mammoths,yossi,sarcophagi,congreve,petkovic,extraneous,waterbirds,slurs,indias,phaeton,discontented,prefaced,abhay,prescot,interoperable,nordisk,bicyclists,validly,sejong,litovsk,zanesville,kapitanleutnant,kerch,changeable,mcclatchy,celebi,attesting,maccoll,sepahan,wayans,veined,gaudens,markt,dansk,soane,quantized,petersham,forebears,nayarit,frenzied,queuing,bygone,viggo,ludwik,tanka,hanssen,brythonic,cornhill,primorsky,stockpiles,conceptualization,lampeter,hinsdale,mesoderm,bielsk,rosenheim,ultron,joffrey,stanwyck,khagan,tiraspol,pavelic,ascendant,empoli,metatarsal,descentralizado,masada,ligier,huseyin,ramadi,waratah,tampines,ruthenium,statoil,mladost,liger,grecian,multiparty,digraph,maglev,reconsideration,radiography,cartilaginous,taizu,wintered,anabaptist,peterhouse,shoghi,assessors,numerator,paulet,painstakingly,halakhic,rocroi,motorcycling,gimel,kryptonian,emmeline,cheeked,drawdown,lelouch,dacians,brahmana,reminiscence,disinfection,optimizations,golders,extensor,tsugaru,tolling,liman,gulzar,unconvinced,crataegus,oppositional,dvina,pyrolysis,mandan,alexius,prion,stressors,loomed,moated,dhivehi,recyclable,relict,nestlings,sarandon,kosovar,solvers,czeslaw,kenta,maneuverable,middens,berkhamsted,comilla,folkways,loxton,beziers,batumi,petrochemicals,optimised,sirjan,rabindra,musicality,rationalisation,drillers,subspaces,'live,bbwaa,outfielders,tsung,danske,vandalised,norristown,striae,kanata,gastroenterology,steadfastly,equalising,bootlegging,mannerheim,notodontidae,lagoa,commentating,peninsulas,chishti,seismology,modigliani,preceptor,canonically,awardee,boyaca,hsinchu,stiffened,nacelle,bogor,dryness,unobstructed,yaqub,scindia,peeters,irritant,ammonites,ferromagnetic,speechwriter,oxygenated,walesa,millais,canarian,faience,calvinistic,discriminant,rasht,inker,annexes,howth,allocates,conditionally,roused,regionalism,regionalbahn,functionary,nitrates,bicentenary,recreates,saboteurs,koshi,plasmids,thinned,
124th,plainview,kardashian,neuville,victorians,radiates,
127th,vieques,schoolmates,petru,tokusatsu,keying,sunaina,flamethrower,'bout,demersal,hosokawa,corelli,omniscient,o'doherty,niksic,reflectivity,transdev,cavour,metronome,temporally,gabba,nsaids,geert,mayport,hematite,boeotia,vaudreuil,torshavn,sailplane,mineralogist,eskisehir,practises,gallifrey,takumi,unease,slipstream,hedmark,paulinus,ailsa,wielkopolska,filmworks,adamantly,vinaya,facelifted,franchisee,augustana,toppling,velvety,crispa,stonington,histological,genealogist,tactician,tebow,betjeman,nyingma,overwinter,oberoi,rampal,overwinters,petaluma,lactarius,stanmore,balikpapan,vasant,inclines,laminate,munshi,sociedade,rabbah,septal,boyband,ingrained,faltering,inhumans,nhtsa,affix,l'ordre,kazuki,rossendale,mysims,latvians,slaveholders,basilicata,neuburg,assize,manzanillo,scrobipalpa,formula_61,belgique,pterosaurs,privateering,vaasa,veria,northport,pressurised,hobbyist,austerlitz,sahih,bhadra,siliguri,bistrica,bursaries,wynton,corot,lepidus,lully,libor,libera,olusegun,choline,mannerism,lymphocyte,chagos,duxbury,parasitism,ecowas,morotai,cancion,coniston,aggrieved,sputnikmusic,parle,ammonian,civilisations,malformation,cattaraugus,skyhawks,d'arc,demerara,bronfman,midwinter,piscataway,jogaila,threonine,matins,kohlberg,hubli,pentatonic,camillus,nigam,potro,unchained,chauvel,orangeville,cistercians,redeployment,xanthi,manju,carabinieri,pakeha,nikolaevich,kantakouzenos,sesquicentennial,gunships,symbolised,teramo,ballo,crusading,l'oeil,bharatpur,lazier,gabrovo,hysteresis,rothbard,chaumont,roundel,ma'mun,sudhir,queried,newts,shimane,presynaptic,playfield,taxonomists,sensitivities,freleng,burkinabe,orfeo,autovia,proselytizing,bhangra,pasok,jujutsu,heung,pivoting,hominid,commending,formula_64,epworth,christianized,oresund,hantuchova,rajputana,hilversum,masoretic,dayak,bakri,assen,magog,macromolecules,waheed,qaida,spassky,rumped,protrudes,preminger,misogyny,glencairn,salafi,lacunae,grilles,racemes,areva,alighieri,inari,epitomized,photoshoot,one-of-a-kind,tring,muralist,tincture,backwaters,weaned,yeasts,analytically,smaland,caltrans,vysocina,jamuna,mauthausen,
175th,nouvelles,censoring,reggina,christology,gilad,amplifying,mehmood,johnsons,redirects,eastgate,sacrum,meteoric,riverbanks,guidebooks,ascribes,scoparia,iconoclastic,telegraphic,chine,merah,mistico,lectern,sheung,aethelstan,capablanca,anant,uspto,albatrosses,mymensingh,antiretroviral,clonal,coorg,vaillant,liquidator,gigas,yokai,eradicating,motorcyclists,waitakere,tandon,nears,montenegrins,
250th,tatsuya,yassin,atheistic,syncretism,nahum,berisha,transcended,owensboro,lakshmana,abteilung,unadorned,nyack,overflows,harrisonburg,complainant,uematsu,frictional,worsens,sangguniang,abutment,bulwer,sarma,apollinaire,shippers,lycia,alentejo,porpoises,optus,trawling,augustow,blackwall,workbench,westmount,leaped,sikandar,conveniences,stornoway,culverts,zoroastrians,hristo,ansgar,assistive,reassert,fanned,compasses,delgada,maisons,arima,plonsk,verlaine,starstruck,rakhine,befell,spirally,wyclef,expend,colloquium,formula_63,albertus,bellarmine,handedness,holon,introns,movimiento,profitably,lohengrin,discoverers,awash,erste,pharisees,dwarka,oghuz,hashing,heterodox,uloom,vladikavkaz,linesman,rehired,nucleophile,germanicus,gulshan,songz,bayerische,paralympian,crumlin,enjoined,khanum,prahran,penitent,amersfoort,saranac,semisimple,vagrants,compositing,tualatin,oxalate,lavra,ironi,ilkeston,umpqua,calum,stretford,zakat,guelders,hydrazine,birkin,spurring,modularity,aspartate,sodermanland,hopital,bellary,legazpi,clasico,cadfael,hypersonic,volleys,pharmacokinetics,carotene,orientale,pausini,bataille,lunga,retailed,m.phil,mazowieckie,vijayan,rawal,sublimation,promissory,estimators,ploughed,conflagration,penda,segregationist,otley,amputee,coauthor,sopra,pellew,wreckers,tollywood,circumscription,permittivity,strabane,landward,articulates,beaverbrook,rutherglen,coterminous,whistleblowers,colloidal,surbiton,atlante,oswiecim,bhasa,lampooned,chanter,saarc,landkreis,tribulation,tolerates,daiichi,hatun,cowries,dyschirius,abercromby,attock,aldwych,inflows,absolutist,l'histoire,committeeman,vanbrugh,headstock,westbourne,appenzell,hoxton,oculus,westfalen,roundabouts,nickelback,trovatore,quenching,summarises,conservators,transmutation,talleyrand,barzani,unwillingly,axonal,'blue,opining,enveloping,fidesz,rafah,colborne,flickr,lozenge,dulcimer,ndebele,swaraj,oxidize,gonville,resonated,gilani,superiore,endeared,janakpur,shepperton,solidifying,memoranda,sochaux,kurnool,rewari,emirs,kooning,bruford,unavailability,kayseri,judicious,negating,pterosaur,cytosolic,chernihiv,variational,sabretooth,seawolves,devalued,nanded,adverb,volunteerism,sealers,nemours,smederevo,kashubian,bartin,animax,vicomte,polotsk,polder,archiepiscopal,acceptability,quidditch,tussock,seminaire,immolation,belge,coves,wellingborough,khaganate,mckellen,nayaka,brega,kabhi,pontoons,bascule,newsreels,injectors,cobol,weblog,diplo,biggar,wheatbelt,erythrocytes,pedra,showgrounds,bogdanovich,eclecticism,toluene,elegies,formalize,andromedae,airworthiness,springville,mainframes,overexpression,magadha,bijelo,emlyn,glutamine,accenture,uhuru,metairie,arabidopsis,patanjali,peruvians,berezovsky,accion,astrolabe,jayanti,earnestly,sausalito,recurved,
1500s,ramla,incineration,galleons,laplacian,shiki,smethwick,isomerase,dordevic,janow,jeffersonville,internationalism,penciled,styrene,ashur,nucleoside,peristome,horsemanship,sedges,bachata,medes,kristallnacht,schneerson,reflectance,invalided,strutt,draupadi,destino,partridges,tejas,quadrennial,aurel,halych,ethnomusicology,autonomist,radyo,rifting,shi'ar,crvena,telefilm,zawahiri,plana,sultanates,theodorus,subcontractors,pavle,seneschal,teleports,chernivtsi,buccal,brattleboro,stankovic,safar,dunhuang,electrocution,chastised,ergonomic,midsomer,
130th,zomba,nongovernmental,escapist,localize,xuzhou,kyrie,carinthian,karlovac,nisan,kramnik,pilipino,digitisation,khasi,andronicus,highwayman,maior,misspelling,sebastopol,socon,rhaetian,archimandrite,partway,positivity,otaku,dingoes,tarski,geopolitics,disciplinarian,zulfikar,kenzo,globose,electrophilic,modele,storekeeper,pohang,wheldon,washers,interconnecting,digraphs,intrastate,campy,helvetic,frontispiece,ferrocarril,anambra,petraeus,midrib,endometrial,dwarfism,mauryan,endocytosis,brigs,percussionists,furtherance,synergistic,apocynaceae,krona,berthier,circumvented,casal,siltstone,precast,ethnikos,realists,geodesy,zarzuela,greenback,tripathi,persevered,interments,neutralization,olbermann,departements,supercomputing,demobilised,cassavetes,dunder,ministering,veszprem,barbarism,'world,pieve,apologist,frentzen,sulfides,firewalls,pronotum,staatsoper,hachette,makhachkala,oberland,phonon,yoshihiro,instars,purnima,winslet,mutsu,ergative,sajid,nizamuddin,paraphrased,ardeidae,kodagu,monooxygenase,skirmishers,sportiva,o'byrne,mykolaiv,ophir,prieta,gyllenhaal,kantian,leche,copan,herero,ps250,gelsenkirchen,shalit,sammarinese,chetwynd,wftda,travertine,warta,sigmaringen,concerti,namespace,ostergotland,biomarker,universals,collegio,embarcadero,wimborne,fiddlers,likening,ransomed,stifled,unabated,kalakaua,khanty,gongs,goodrem,countermeasure,publicizing,geomorphology,swedenborg,undefended,catastrophes,diverts,storyboards,amesbury,contactless,placentia,festivity,authorise,terrane,thallium,stradivarius,antonine,consortia,estimations,consecrate,supergiant,belichick,pendants,butyl,groza,univac,afire,kavala,studi,teletoon,paucity,gonbad,koninklijke,
128th,stoichiometric,multimodal,facundo,anatomic,melamine,creuse,altan,brigands,mcguinty,blomfield,tsvangirai,protrusion,lurgan,warminster,tenzin,russellville,discursive,definable,scotrail,lignin,reincorporated,o'dell,outperform,redland,multicolored,evaporates,dimitrie,limbic,patapsco,interlingua,surrogacy,cutty,potrero,masud,cahiers,jintao,ardashir,centaurus,plagiarized,minehead,musings,statuettes,logarithms,seaview,prohibitively,downforce,rivington,tomorrowland,microbiologist,ferric,morag,capsid,kucinich,clairvaux,demotic,seamanship,cicada,painterly,cromarty,carbonic,tupou,oconee,tehuantepec,typecast,anstruther,internalized,underwriters,tetrahedra,flagrant,quakes,pathologies,ulrik,nahal,tarquini,dongguan,parnassus,ryoko,senussi,seleucia,airasia,einer,sashes,d'amico,matriculating,arabesque,honved,biophysical,hardinge,kherson,mommsen,diels,icbms,reshape,brasiliensis,palmach,netaji,oblate,functionalities,grigor,blacksburg,recoilless,melanchthon,reales,astrodome,handcrafted,memes,theorizes,isma'il,aarti,pirin,maatschappij,stabilizes,honiara,ashbury,copts,rootes,defensed,queiroz,mantegna,galesburg,coraciiformesfamily,cabrillo,tokio,antipsychotics,kanon,
173rd,apollonia,finial,lydian,hadamard,rangi,dowlatabad,monolingual,platformer,subclasses,chiranjeevi,mirabeau,newsgroup,idmanyurdu,kambojas,walkover,zamoyski,generalist,khedive,flanges,knowle,bande,
157th,alleyn,reaffirm,pininfarina,zuckerberg,hakodate,
131st,aditi,bellinzona,vaulter,planking,boscombe,colombians,lysis,toppers,metered,nahyan,queensryche,minho,nagercoil,firebrand,foundress,bycatch,mendota,freeform,antena,capitalisation,martinus,overijssel,purists,interventionist,zgierz,burgundians,hippolyta,trompe,umatilla,moroccans,dictionnaire,hydrography,changers,chota,rimouski,aniline,bylaw,grandnephew,neamt,lemnos,connoisseurs,tractive,rearrangements,fetishism,finnic,apalachicola,landowning,calligraphic,circumpolar,mansfeld,legible,orientalism,tannhauser,blamey,maximization,noinclude,blackbirds,angara,ostersund,pancreatitis,glabra,acleris,juried,jungian,triumphantly,singlet,plasmas,synesthesia,yellowhead,unleashes,choiseul,quanzhong,brookville,kaskaskia,igcse,skatepark,jatin,jewellers,scaritinae,techcrunch,tellurium,lachaise,azuma,codeshare,dimensionality,unidirectional,scolaire,macdill,camshafts,unassisted,verband,kahlo,eliya,prelature,chiefdoms,saddleback,sockers,iommi,coloratura,llangollen,biosciences,harshest,maithili,k'iche,plical,multifunctional,andreu,tuskers,confounding,sambre,quarterdeck,ascetics,berdych,transversal,tuolumne,sagami,petrobras,brecker,menxia,instilling,stipulating,korra,oscillate,deadpan,v/line,pyrotechnic,stoneware,prelims,intracoastal,retraining,ilija,berwyn,encrypt,achievers,zulfiqar,glycoproteins,khatib,farmsteads,occultist,saman,fionn,derulo,khilji,obrenovic,argosy,toowong,dementieva,sociocultural,iconostasis,craigslist,festschrift,taifa,intercalated,tanjong,penticton,sharad,marxian,extrapolation,guises,wettin,prabang,exclaiming,kosta,famas,conakry,wanderings,'aliabad,macleay,exoplanet,bancorp,besiegers,surmounting,checkerboard,rajab,vliet,tarek,operable,wargaming,haldimand,fukuyama,uesugi,aggregations,erbil,brachiopods,tokyu,anglais,unfavorably,ujpest,escorial,armagnac,nagara,funafuti,ridgeline,cocking,o'gorman,compactness,retardant,krajowa,barua,coking,bestows,thampi,chicagoland,variably,o'loughlin,minnows,schwa,shaukat,polycarbonate,chlorinated,godalming,gramercy,delved,banqueting,enlil,sarada,prasanna,domhnall,decadal,regressive,lipoprotein,collectable,surendra,zaporizhia,cycliste,suchet,offsetting,formula_65,pudong,d'arte,blyton,quonset,osmania,tientsin,manorama,proteomics,bille,jalpaiguri,pertwee,barnegat,inventiveness,gollancz,euthanized,henricus,shortfalls,wuxia,chlorides,cerrado,polyvinyl,folktale,straddled,bioengineering,eschewing,greendale,recharged,olave,ceylonese,autocephalous,peacebuilding,wrights,guyed,rosamund,abitibi,bannockburn,gerontology,scutari,souness,seagram,codice_9,'open,xhtml,taguig,purposed,darbar,orthopedics,unpopulated,kisumu,tarrytown,feodor,polyhedral,monadnock,gottorp,priam,redesigning,gasworks,elfin,urquiza,homologation,filipovic,bohun,manningham,gornik,soundness,shorea,lanus,gelder,darke,sandgate,criticality,paranaense,
153rd,vieja,lithograph,trapezoid,tiebreakers,convalescence,yan'an,actuaries,balad,altimeter,thermoelectric,trailblazer,previn,tenryu,ancaster,endoscopy,nicolet,discloses,fracking,plaine,salado,americanism,placards,absurdist,propylene,breccia,jirga,documenta,ismailis,
161st,brentano,dallas/fort,embellishment,calipers,subscribes,mahavidyalaya,wednesbury,barnstormers,miwok,schembechler,minigame,unterberger,dopaminergic,inacio,nizamabad,overridden,monotype,cavernous,stichting,sassafras,sotho,argentinean,myrrh,rapidity,flatts,gowrie,dejected,kasaragod,cyprinidae,interlinked,arcseconds,degeneracy,infamously,incubate,substructure,trigeminal,sectarianism,marshlands,hooliganism,hurlers,isolationist,urania,burrard,switchover,lecco,wilts,interrogator,strived,ballooning,volterra,raciborz,relegating,gilding,cybele,dolomites,parachutist,lochaber,orators,raeburn,backend,benaud,rallycross,facings,banga,nuclides,defencemen,futurity,emitters,yadkin,eudonia,zambales,manasseh,sirte,meshes,peculiarly,mcminnville,roundly,boban,decrypt,icelanders,sanam,chelan,jovian,grudgingly,penalised,subscript,gambrinus,poaceae,infringements,maleficent,runciman,
148th,supersymmetry,granites,liskeard,eliciting,involution,hallstatt,kitzbuhel,shankly,sandhills,inefficiencies,yishuv,psychotropic,nightjars,wavell,sangamon,vaikundar,choshu,retrospectives,pitesti,gigantea,hashemi,bosna,gakuin,siochana,arrangers,baronetcies,narayani,temecula,creston,koscierzyna,autochthonous,wyandot,anniston,igreja,mobilise,buzau,dunster,musselburgh,wenzhou,khattak,detoxification,decarboxylase,manlius,campbells,coleoptera,copyist,sympathisers,suisun,eminescu,defensor,transshipment,thurgau,somerton,fluctuates,ambika,weierstrass,lukow,giambattista,volcanics,romanticized,innovated,matabeleland,scotiabank,garwolin,purine,d'auvergne,borderland,maozhen,pricewaterhousecoopers,testator,pallium,scout.com,mv/pi,nazca,curacies,upjohn,sarasvati,monegasque,ketrzyn,malory,spikelets,biomechanics,haciendas,rapped,dwarfed,stews,nijinsky,subjection,matsu,perceptible,schwarzburg,midsection,entertains,circuitous,epiphytic,wonsan,alpini,bluefield,sloths,transportable,braunfels,dictum,szczecinek,jukka,wielun,wejherowo,hucknall,grameen,duodenum,ribose,deshpande,shahar,nexstar,injurious,dereham,lithographer,dhoni,structuralist,progreso,deschutes,christus,pulteney,quoins,yitzchak,gyeongsang,breviary,makkah,chiyoda,jutting,vineland,angiosperms,necrotic,novelisation,redistribute,tirumala,
140th,featureless,mafic,rivaling,toyline,
2/
1st,martius,saalfeld,monthan,texian,kathak,melodramas,mithila,regierungsbezirk,
509th,fermenting,schoolmate,virtuosic,briain,kokoda,heliocentric,handpicked,kilwinning,sonically,dinars,kasim,parkways,bogdanov,luxembourgian,halland,avesta,bardic,daugavpils,excavator,qwest,frustrate,physiographic,majoris,'ndrangheta,unrestrained,firmness,montalban,abundances,preservationists,adare,executioners,guardsman,bonnaroo,neglects,nazrul,pro12,hoorn,abercorn,refuting,kabud,cationic,parapsychology,troposphere,venezuelans,malignancy,khoja,unhindered,accordionist,medak,visby,ejercito,laparoscopic,dinas,umayyads,valmiki,o'dowd,saplings,stranding,incisions,illusionist,avocets,buccleuch,amazonia,fourfold,turboprops,roosts,priscus,turnstile,areal,certifies,pocklington,spoofs,viseu,commonalities,dabrowka,annam,homesteaders,daredevils,mondrian,negotiates,fiestas,perennials,maximizes,lubavitch,ravindra,scrapers,finials,kintyre,violas,snoqualmie,wilders,openbsd,mlawa,peritoneal,devarajan,congke,leszno,mercurial,fakir,joannes,bognor,overloading,unbuilt,gurung,scuttle,temperaments,bautzen,jardim,tradesman,visitations,barbet,sagamore,graaff,forecasters,wilsons,assis,l'air,shariah,sochaczew,russa,dirge,biliary,neuve,heartbreakers,strathearn,jacobian,overgrazing,edrich,anticline,parathyroid,petula,lepanto,decius,channelled,parvathi,puppeteers,communicators,francorchamps,kahane,longus,panjang,intron,traite,xxvii,matsuri,amrit,katyn,disheartened,cacak,omonia,alexandrine,partaking,wrangling,adjuvant,haskovo,tendrils,greensand,lammermoor,otherworld,volusia,stabling,one-and-a-half,bresson,zapatista,eotvos,ps150,webisodes,stepchildren,microarray,braganca,quanta,dolne,superoxide,bellona,delineate,ratha,lindenwood,bruhl,cingulate,tallies,bickerton,helgi,bevin,takoma,tsukuba,statuses,changeling,alister,bytom,dibrugarh,magnesia,duplicating,outlier,abated,goncalo,strelitz,shikai,mardan,musculature,ascomycota,springhill,tumuli,gabaa,odenwald,reformatted,autocracy,theresienstadt,suplex,chattopadhyay,mencken,congratulatory,weatherfield,systema,solemnity,projekt,quanzhou,kreuzberg,postbellum,nobuo,mediaworks,finisterre,matchplay,bangladeshis,kothen,oocyte,hovered,aromas,afshar,browed,teases,chorlton,arshad,cesaro,backbencher,iquique,vulcans,padmini,unabridged,cyclase,despotic,kirilenko,achaean,queensberry,debre,octahedron,iphigenia,curbing,karimnagar,sagarmatha,smelters,surrealists,sanada,shrestha,turridae,leasehold,jiedushi,eurythmics,appropriating,correze,thimphu,amery,musicomh,cyborgs,sandwell,pushcart,retorts,ameliorate,deteriorates,stojanovic,spline,entrenchments,bourse,chancellorship,pasolini,lendl,personage,reformulated,pubescens,loiret,metalurh,reinvention,nonhuman,eilema,tarsal,complutense,magne,broadview,metrodome,outtake,stouffville,seinen,bataillon,phosphoric,ostensible,opatow,aristides,beefheart,glorifying,banten,romsey,seamounts,fushimi,prophylaxis,sibylla,ranjith,goslar,balustrades,georgiev,caird,lafitte,peano,canso,bankura,halfpenny,segregate,caisson,bizerte,jamshedpur,euromaidan,philosophie,ridged,cheerfully,reclassification,aemilius,visionaries,samoans,wokingham,chemung,wolof,unbranched,cinerea,bhosle,ourense,immortalised,cornerstones,sourcebook,khufu,archimedean,universitatea,intermolecular,fiscally,suffices,metacomet,adjudicator,stablemate,specks,glace,inowroclaw,patristic,muharram,agitating,ashot,neurologic,didcot,gamla,ilves,putouts,siraj,laski,coaling,diarmuid,ratnagiri,rotulorum,liquefaction,morbihan,harel,aftershock,gruiformesfamily,bonnier,falconiformesfamily,adorns,wikis,maastrichtian,stauffenberg,bishopsgate,fakhr,sevenfold,ponders,quantifying,castiel,opacity,depredations,lenten,gravitated,o'mahony,modulates,inuktitut,paston,kayfabe,vagus,legalised,balked,arianism,tendering,sivas,birthdate,awlaki,khvajeh,shahab,samtgemeinde,bridgeton,amalgamations,biogenesis,recharging,tsukasa,mythbusters,chamfered,enthronement,freelancers,maharana,constantia,sutil,messines,monkton,okanogan,reinvigorated,apoplexy,tanahashi,neues,valiants,harappan,russes,carding,volkoff,funchal,statehouse,imitative,intrepidity,mellotron,samaras,turkana,besting,longitudes,exarch,diarrhoea,transcending,zvonareva,darna,ramblin,disconnection,
137th,refocused,diarmait,agricole,ba'athist,turenne,contrabass,communis,daviess,fatimids,frosinone,fittingly,polyphyletic,qanat,theocratic,preclinical,abacha,toorak,marketplaces,conidia,seiya,contraindicated,retford,bundesautobahn,rebuilds,climatology,seaworthy,starfighter,qamar,categoria,malai,hellinsia,newstead,airworthy,catenin,avonmouth,arrhythmias,ayyavazhi,downgrade,ashburnham,ejector,kinematics,petworth,rspca,filmation,accipitridae,chhatrapati,g/mol,bacau,agama,ringtone,yudhoyono,orchestrator,arbitrators,
138th,powerplants,cumbernauld,alderley,misamis,hawai`i,cuando,meistriliiga,jermyn,alans,pedigrees,ottavio,approbation,omnium,purulia,prioress,rheinland,lymphoid,lutsk,oscilloscope,ballina,iliac,motorbikes,modernising,uffizi,phylloxera,kalevala,bengalis,amravati,syntheses,interviewers,inflectional,outflank,maryhill,unhurt,profiler,nacelles,heseltine,personalised,guarda,herpetologist,airpark,pigot,margaretha,dinos,peleliu,breakbeat,kastamonu,shaivism,delamere,kingsville,epigram,khlong,phospholipids,journeying,lietuvos,congregated,deviance,celebes,subsoil,stroma,kvitova,lubricating,layoff,alagoas,olafur,doron,interuniversity,raycom,agonopterix,uzice,nanna,springvale,raimundo,wrested,pupal,talat,skinheads,vestige,unpainted,handan,odawara,ammar,attendee,lapped,myotis,gusty,ciconiiformesfamily,traversal,subfield,vitaphone,prensa,hasidism,inwood,carstairs,kropotkin,turgenev,dobra,remittance,purim,tannin,adige,tabulation,lethality,pacha,micronesian,dhruva,defensemen,tibeto,siculus,radioisotope,sodertalje,phitsanulok,euphonium,oxytocin,overhangs,skinks,fabrica,reinterred,emulates,bioscience,paragliding,raekwon,perigee,plausibility,frolunda,erroll,aznar,vyasa,albinus,trevally,confederacion,terse,sixtieth,
1530s,kendriya,skateboarders,frontieres,muawiyah,easements,shehu,conservatively,keystones,kasem,brutalist,peekskill,cowry,orcas,syllabary,paltz,elisabetta,denticles,hampering,dolni,eidos,aarau,lermontov,yankton,shahbaz,barrages,kongsvinger,reestablishment,acetyltransferase,zulia,mrnas,slingsby,eucalypt,efficacious,weybridge,gradation,cinematheque,malthus,bampton,coexisted,cisse,hamdi,cupertino,saumarez,chionodes,libertine,formers,sakharov,pseudonymous,vol
.1,mcduck,gopalakrishnan,amberley,jorhat,grandmasters,rudiments,dwindle,param,bukidnon,menander,americanus,multipliers,pulawy,homoerotic,pillbox,cd+dvd,epigraph,aleksandrow,extrapolated,horseshoes,contemporain,angiography,hasselt,shawinigan,memorization,legitimized,cyclades,outsold,rodolphe,kelis,powerball,dijkstra,analyzers,incompressible,sambar,orangeburg,osten,reauthorization,adamawa,sphagnum,hypermarket,millipedes,zoroaster,madea,ossuary,murrayfield,pronominal,gautham,resellers,ethers,quarrelled,dolna,stragglers,asami,tangut,passos,educacion,sharaf,texel,berio,bethpage,bezalel,marfa,noronha,
36ers,genteel,avram,shilton,compensates,sweetener,reinstalled,disables,noether,
1590s,balakrishnan,kotaro,northallerton,cataclysm,gholam,cancellara,schiphol,commends,longinus,albinism,gemayel,hamamatsu,volos,islamism,sidereal,pecuniary,diggings,townsquare,neosho,lushan,chittoor,akhil,disputation,desiccation,cambodians,thwarting,deliberated,ellipsis,bahini,susumu,separators,kohneh,plebeians,kultur,ogaden,pissarro,trypeta,latur,liaodong,vetting,datong,sohail,alchemists,lengthwise,unevenly,masterly,microcontrollers,occupier,deviating,farringdon,baccalaureat,theocracy,chebyshev,archivists,jayaram,ineffectiveness,scandinavians,jacobins,encomienda,nambu,g/cm3,catesby,paavo,heeded,rhodium,idealised,
10deg,infective,mecyclothorax,halevy,sheared,minbari,audax,lusatian,rebuffs,hitfix,fastener,subjugate,tarun,binet,compuserve,synthesiser,keisuke,amalric,ligatures,tadashi,ignazio,abramovich,groundnut,otomo,maeve,mortlake,ostrogoths,antillean,todor,recto,millimetre,espousing,inaugurate,paracetamol,galvanic,harpalinae,jedrzejow,reassessment,langlands,civita,mikan,stikine,bijar,imamate,istana,kaiserliche,erastus,federale,cytosine,expansionism,hommes,norrland,smriti,snapdragon,gulab,taleb,lossy,khattab,urbanised,sesto,rekord,diffuser,desam,morganatic,silting,pacts,extender,beauharnais,purley,bouches,halfpipe,discontinuities,houthi,farmville,animism,horni,saadi,interpretative,blockades,symeon,biogeographic,transcaucasian,jetties,landrieu,astrocytes,conjunto,stumpings,weevils,geysers,redux,arching,romanus,tazeh,marcellinus,casein,opava,misrata,anare,sattar,declarer,dreux,oporto,venta,vallis,icosahedron,cortona,lachine,mohammedan,sandnes,zynga,clarin,diomedes,tsuyoshi,pribram,gulbarga,chartist,superettan,boscawen,altus,subang,gating,epistolary,vizianagaram,ogdensburg,panna,thyssen,tarkovsky,dzogchen,biograph,seremban,unscientific,nightjar,legco,deism,n.w.a,sudha,siskel,sassou,flintlock,jovial,montbeliard,pallida,formula_66,tranquillity,nisei,adornment,'people,yamhill,hockeyallsvenskan,adopters,appian,lowicz,haplotypes,succinctly,starogard,presidencies,kheyrabad,sobibor,kinesiology,cowichan,militum,cromwellian,leiningen,ps1.5,concourses,dalarna,goldfield,brzeg,faeces,aquarii,matchless,harvesters,
181st,numismatics,korfball,sectioned,transpires,facultative,brandishing,kieron,forages,menai,glutinous,debarge,heathfield,
1580s,malang,photoelectric,froome,semiotic,alwar,grammophon,chiaroscuro,mentalist,maramures,flacco,liquors,aleutians,marvell,sutlej,patnaik,qassam,flintoff,bayfield,haeckel,sueno,avicii,exoplanets,hoshi,annibale,vojislav,honeycombs,celebrant,rendsburg,veblen,quails,
141st,carronades,savar,narrations,jeeva,ontologies,hedonistic,marinette,godot,munna,bessarabian,outrigger,thame,gravels,hoshino,falsifying,stereochemistry,nacionalista,medially,radula,ejecting,conservatorio,odile,ceiba,jaina,essonne,isometry,allophones,recidivism,iveco,ganda,grammarians,jagan,signposted,uncompressed,facilitators,constancy,ditko,propulsive,impaling,interbank,botolph,amlaib,intergroup,sorbus,cheka,debye,praca,adorning,presbyteries,dormition,strategos,qarase,pentecostals,beehives,hashemite,goldust,euronext,egress,arpanet,soames,jurchens,slovenska,copse,kazim,appraisals,marischal,mineola,sharada,caricaturist,sturluson,galba,faizabad,overwintering,grete,uyezds,didsbury,libreville,ablett,microstructure,anadolu,belenenses,elocution,cloaks,timeslots,halden,rashidun,displaces,sympatric,germanus,tuples,ceska,equalize,disassembly,krautrock,babangida,memel,deild,gopala,hematology,underclass,sangli,wawrinka,assur,toshack,refrains,nicotinic,bhagalpur,badami,racetracks,pocatello,walgreens,nazarbayev,occultation,spinnaker,geneon,josias,hydrolyzed,dzong,corregimiento,waistcoat,thermoplastic,soldered,anticancer,lactobacillus,shafi'i,carabus,adjournment,schlumberger,triceratops,despotate,mendicant,krishnamurti,bahasa,earthworm,lavoisier,noetherian,kalki,fervently,bhawan,saanich,coquille,gannet,motagua,kennels,mineralization,fitzherbert,svein,bifurcated,hairdressing,felis,abounded,dimers,fervour,hebdo,bluffton,aetna,corydon,clevedon,carneiro,subjectively,deutz,gastropoda,overshot,concatenation,varman,carolla,maharshi,mujib,inelastic,riverhead,initialized,safavids,rohini,caguas,bulges,fotbollforbund,hefei,spithead,westville,maronites,lytham,americo,gediminas,stephanus,chalcolithic,hijra,gnu/linux,predilection,rulership,sterility,haidar,scarlatti,saprissa,sviatoslav,pointedly,sunroof,guarantor,thevar,airstrips,pultusk,sture,
129th,divinities,daizong,dolichoderus,cobourg,maoists,swordsmanship,uprated,bohme,tashi,largs,chandi,bluebeard,householders,richardsonian,drepanidae,antigonish,elbasan,occultism,marca,hypergeometric,oirat,stiglitz,ignites,dzungar,miquelon,pritam,d'automne,ulidiid,niamey,vallecano,fondo,billiton,incumbencies,raceme,chambery,cadell,barenaked,kagame,summerside,haussmann,hatshepsut,apothecaries,criollo,feint,nasals,timurid,feltham,plotinus,oxygenation,marginata,officinalis,salat,participations,ising,downe,izumo,unguided,pretence,coursed,haruna,viscountcy,mainstage,justicia,powiat,takara,capitoline,implacable,farben,stopford,cosmopterix,tuberous,kronecker,galatians,kweli,dogmas,exhorted,trebinje,skanda,newlyn,ablative,basidia,bhiwani,encroachments,stranglers,regrouping,tubal,shoestring,wawel,anionic,mesenchymal,creationists,pyrophosphate,moshi,despotism,powerbook,fatehpur,rupiah,segre,ternate,jessore,b.i.g,shevardnadze,abounds,gliwice,densest,memoria,suborbital,vietcong,ratepayers,karunanidhi,toolbar,descents,rhymney,exhortation,zahedan,carcinomas,hyperbaric,botvinnik,billets,neuropsychological,tigranes,hoards,chater,biennially,thistles,scotus,wataru,flotillas,hungama,monopolistic,payouts,vetch,generalissimo,caries,naumburg,piran,blizzards,escalates,reactant,shinya,theorize,rizzoli,transitway,ecclesiae,streptomyces,cantal,nisibis,superconductor,unworkable,thallus,roehampton,scheckter,viceroys,makuuchi,ilkley,superseding,takuya,klodzko,borbon,raspberries,operand,w.a.k.o,sarabande,factionalism,egalitarianism,temasek,torbat,unscripted,jorma,westerner,perfective,vrije,underlain,goldfrapp,blaenau,jomon,barthes,drivetime,bassa,bannock,umaga,fengxiang,zulus,sreenivasan,farces,codice_10,freeholder,poddebice,imperialists,deregulated,wingtip,o'hagan,pillared,overtone,hofstadter,
149th,kitano,saybrook,standardizing,aldgate,staveley,o'flaherty,hundredths,steerable,soltan,empted,cruyff,intramuros,taluks,cotonou,marae,karur,figueres,barwon,lucullus,niobe,zemlya,lathes,homeported,chaux,amyotrophic,opines,exemplars,bhamo,homomorphisms,gauleiter,ladin,mafiosi,airdrieonians,b/soul,decal,transcaucasia,solti,defecation,deaconess,numidia,sampradaya,normalised,wingless,schwaben,alnus,cinerama,yakutsk,ketchikan,orvieto,unearned,monferrato,rotem,aacsb,loong,decoders,skerries,cardiothoracic,repositioning,pimpernel,yohannan,tenebrionoidea,nargis,nouvel,costliest,interdenominational,noize,redirecting,zither,morcha,radiometric,frequenting,irtysh,gbagbo,chakri,litvinenko,infotainment,ravensbruck,harith,corbels,maegashira,jousting,natan,novus,falcao,minis,railed,decile,rauma,ramaswamy,cavitation,paranaque,berchtesgaden,reanimated,schomberg,polysaccharides,exclusionary,cleon,anurag,ravaging,dhanush,mitchells,granule,contemptuous,keisei,rolleston,atlantean,yorkist,daraa,wapping,micrometer,keeneland,comparably,baranja,oranje,schlafli,yogic,dinajpur,unimpressive,masashi,recreativo,alemannic,petersfield,naoko,vasudeva,autosport,rajat,marella,busko,wethersfield,ssris,soulcalibur,kobani,wildland,rookery,hoffenheim,kauri,aliphatic,balaclava,ferrite,publicise,victorias,theism,quimper,chapbook,functionalist,roadbed,ulyanovsk,cupen,purpurea,calthorpe,teofilo,mousavi,cochlea,linotype,detmold,ellerslie,gakkai,telkom,southsea,subcontractor,inguinal,philatelists,zeebrugge,piave,trochidae,dempo,spoilt,saharanpur,mihrab,parasympathetic,barbarous,chartering,antiqua,katsina,bugis,categorizes,altstadt,kandyan,pambansa,overpasses,miters,assimilating,finlandia,uneconomic,am/fm,harpsichordist,dresdner,luminescence,authentically,overpowers,magmatic,cliftonville,oilfields,skirted,berthe,cuman,oakham,frelimo,glockenspiel,confection,saxophonists,piaseczno,multilevel,antipater,levying,maltreatment,velho,opoczno,harburg,pedophilia,unfunded,palettes,plasterwork,breve,dharmendra,auchinleck,nonesuch,blackmun,libretti,rabbani,
145th,hasselbeck,kinnock,malate,vanden,cloverdale,ashgabat,nares,radians,steelworkers,sabor,possums,catterick,hemispheric,ostra,outpaced,dungeness,almshouse,penryn,texians,
1000m,franchitti,incumbency,texcoco,newar,tramcars,toroidal,meitetsu,spellbound,agronomist,vinifera,riata,bunko,pinas,ba'al,github,vasilyevich,obsolescent,geodesics,ancestries,tujue,capitalised,unassigned,throng,unpaired,psychometric,skegness,exothermic,buffered,kristiansund,tongued,berenger,basho,alitalia,prolongation,archaeologically,fractionation,cyprinid,echinoderms,agriculturally,justiciar,sonam,ilium,baits,danceable,grazer,ardahan,grassed,preemption,glassworks,hasina,ugric,umbra,wahhabi,vannes,tinnitus,capitaine,tikrit,lisieux,scree,hormuz,despenser,jagiellon,maisonneuve,gandaki,santarem,basilicas,lancing,landskrona,weilburg,fireside,elysian,isleworth,krishnamurthy,filton,cynon,tecmo,subcostal,scalars,triglycerides,hyperplane,farmingdale,unione,meydan,pilings,mercosur,reactivate,akiba,fecundity,jatra,natsume,zarqawi,preta,masao,presbyter,oakenfold,rhodri,ferran,ruizong,cloyne,nelvana,epiphanius,borde,scutes,strictures,troughton,whitestone,sholom,toyah,shingon,kutuzov,abelard,passant,lipno,cafeterias,residuals,anabaptists,paratransit,criollos,pleven,radiata,destabilizing,hadiths,bazaars,mannose,taiyo,crookes,welbeck,baoding,archelaus,nguesso,alberni,wingtips,herts,viasat,lankans,evreux,wigram,fassbinder,ryuichi,storting,reducible,olesnica,znojmo,hyannis,theophanes,flatiron,mustering,rajahmundry,kadir,wayang,prome,lethargy,zubin,illegality,conall,dramedy,beerbohm,hipparchus,ziarat,ryuji,shugo,glenorchy,microarchitecture,morne,lewinsky,cauvery,battenberg,hyksos,wayanad,hamilcar,buhari,brazo,bratianu,solms,aksaray,elamite,chilcotin,bloodstock,sagara,dolny,reunified,umlaut,proteaceae,camborne,calabrian,dhanbad,vaxjo,cookware,potez,rediffusion,semitones,lamentations,allgau,guernica,suntory,pleated,stationing,urgell,gannets,bertelsmann,entryway,raphitomidae,acetaldehyde,nephrology,categorizing,beiyang,permeate,tourney,geosciences,khana,masayuki,crucis,universitaria,slaskie,khaimah,finno,advani,astonishingly,tubulin,vampiric,jeolla,sociale,cleethorpes,badri,muridae,suzong,debater,decimation,kenyans,mutualism,pontifex,middlemen,insee,halevi,lamentation,psychopathy,brassey,wenders,kavya,parabellum,prolactin,inescapable,apses,malignancies,rinzai,stigmatized,menahem,comox,ateliers,welshpool,setif,centimetre,truthfulness,downfield,drusus,woden,glycosylation,emanated,agulhas,dalkeith,jazira,nucky,unifil,jobim,operon,oryzomys,heroically,seances,supernumerary,backhouse,hashanah,tatler,imago,invert,hayato,clockmaker,kingsmill,swiecie,analogously,golconda,poste,tacitly,decentralised,ge'ez,diplomatically,fossiliferous,linseed,mahavira,pedestals,archpriest,byelection,domiciled,jeffersonian,bombus,winegrowing,waukegan,uncultivated,haverfordwest,saumur,communally,disbursed,cleeve,zeljeznicar,speciosa,vacationers,sigur,vaishali,zlatko,iftikhar,cropland,transkei,incompleteness,bohra,subantarctic,slieve,physiologic,similis,klerk,replanted,'right,chafee,reproducible,bayburt,regicide,muzaffarpur,plurals,hanyu,orthologs,diouf,assailed,kamui,tarik,dodecanese,gorne,on/off,
179th,shimoga,granaries,carlists,valar,tripolitania,sherds,simmern,dissociated,isambard,polytechnical,yuvraj,brabazon,antisense,pubmed,glans,minutely,masaaki,raghavendra,savoury,podcasting,tachi,bienville,gongsun,ridgely,deform,yuichi,binders,canna,carcetti,llobregat,implored,berri,njegos,intermingled,offload,athenry,motherhouse,corpora,kakinada,dannebrog,imperio,prefaces,musicologists,aerospatiale,shirai,nagapattinam,servius,cristoforo,pomfret,reviled,entebbe,stane,east/west,thermometers,matriarchal,siglo,bodil,legionnaire,ze'ev,theorizing,sangeetha,horticulturist,uncountable,lookalike,anoxic,ionospheric,genealogists,chicopee,imprinting,popish,crematoria,diamondback,cyathea,hanzhong,cameramen,halogaland,naklo,waclaw,storehouses,flexed,comuni,frits,glauca,nilgiris,compresses,nainital,continuations,albay,hypoxic,samajwadi,dunkerque,nanticoke,sarwar,interchanged,jubal,corba,jalgaon,derleth,deathstroke,magny,vinnytsia,hyphenated,rimfire,sawan,boehner,disrepute,normalize,aromanian,dualistic,approximant,chama,karimabad,barnacles,sanok,stipends,dyfed,rijksmuseum,reverberation,suncorp,fungicides,reverie,spectrograph,stereophonic,niazi,ordos,alcan,karaite,lautrec,tableland,lamellar,rieti,langmuir,russula,webern,tweaks,hawick,southerner,morphy,naturalisation,enantiomer,michinoku,barbettes,relieves,carburettors,redruth,oblates,vocabularies,mogilev,bagmati,galium,reasserted,extolled,symon,eurosceptic,inflections,tirtha,recompense,oruro,roping,gouverneur,pared,yayoi,watermills,retooled,leukocytes,jubilant,mazhar,nicolau,manheim,touraine,bedser,hambledon,kohat,powerhouses,tlemcen,reuven,sympathetically,afrikaners,interes,handcrafts,etcher,baddeley,wodonga,amaury,
155th,vulgarity,pompadour,automorphisms,
1540s,oppositions,prekmurje,deryni,fortifying,arcuate,mahila,bocage,uther,nozze,slashes,atlantica,hadid,rhizomatous,azeris,'with,osmena,lewisville,innervated,bandmaster,outcropping,parallelogram,dominicana,twang,ingushetia,extensional,ladino,sastry,zinoviev,relatable,nobilis,cbeebies,hitless,eulima,sporangia,synge,longlisted,criminalized,penitential,weyden,tubule,volyn,priestesses,glenbrook,kibbutzim,windshaft,canadair,falange,zsolt,bonheur,meine,archangels,safeguarded,jamaicans,malarial,teasers,badging,merseyrail,operands,pulsars,gauchos,biotin,bambara,necaxa,egmond,tillage,coppi,anxiolytic,preah,mausoleums,plautus,feroz,debunked,
187th,belediyespor,mujibur,wantage,carboxyl,chettiar,murnau,vagueness,racemic,backstretch,courtland,municipio,palpatine,dezful,hyperbola,sreekumar,chalons,altay,arapahoe,tudors,sapieha,quilon,burdensome,kanya,xxviii,recension,generis,siphuncle,repressor,bitrate,mandals,midhurst,dioxin,democratique,upholds,rodez,cinematographic,epoque,jinping,rabelais,zhytomyr,glenview,rebooted,khalidi,reticulata,
122nd,monnaie,passersby,ghazals,europaea,lippmann,earthbound,tadic,andorran,artvin,angelicum,banksy,epicentre,resemblances,shuttled,rathaus,bernt,stonemasons,balochi,siang,tynemouth,cygni,biosynthetic,precipitates,sharecroppers,d'annunzio,softbank,shiji,apeldoorn,polycyclic,wenceslas,wuchang,samnites,tamarack,silmarillion,madinah,palaeontology,kirchberg,sculpin,rohtak,aquabats,oviparous,thynne,caney,blimps,minimalistic,whatcom,palatalization,bardstown,direct3d,paramagnetic,kamboja,khash,globemaster,lengua,matej,chernigov,swanage,arsenals,cascadia,cundinamarca,tusculum,leavers,organics,warplanes,'three,exertions,arminius,gandharva,inquires,comercio,kuopio,chabahar,plotlines,mersenne,anquetil,paralytic,buckminster,ambit,acrolophus,quantifiers,clacton,ciliary,ansaldo,fergana,egoism,thracians,chicoutimi,northbrook,analgesia,brotherhoods,hunza,adriaen,fluoridation,snowfalls,soundboard,fangoria,cannibalistic,orthogonius,chukotka,dindigul,manzoni,chainz,macromedia,beltline,muruga,schistura,provable,litex,initio,pneumoniae,infosys,cerium,boonton,cannonballs,d'une,solvency,mandurah,houthis,dolmens,apologists,radioisotopes,blaxploitation,poroshenko,stawell,coosa,maximilien,tempelhof,espouse,declaratory,hambro,xalapa,outmoded,mihiel,benefitting,desirous,archeparchy,repopulated,telescoping,captor,mackaye,disparaged,ramanathan,crowne,tumbled,technetium,silted,chedi,nievre,hyeon,cartoonish,interlock,infocom,rediff.com,dioramas,timekeeping,concertina,kutaisi,cesky,lubomirski,unapologetic,epigraphic,stalactites,sneha,biofilm,falconry,miraflores,catena,'outstanding,prospekt,apotheosis,o'odham,pacemakers,arabica,gandhinagar,reminisces,iroquoian,ornette,tilling,neoliberalism,chameleons,pandava,prefontaine,haiyan,gneisenau,utama,bando,reconstitution,azaria,canola,paratroops,ayckbourn,manistee,stourton,manifestos,lympne,denouement,tractatus,rakim,bellflower,nanometer,sassanids,turlough,presbyterianism,varmland,
20deg,phool,nyerere,almohad,manipal,vlaanderen,quickness,removals,makow,circumflex,eatery,morane,fondazione,alkylation,unenforceable,galliano,silkworm,junior/senior,abducts,phlox,konskie,lofoten,buuren,glyphosate,faired,naturae,cobbles,taher,skrulls,dostoevsky,walkout,wagnerian,orbited,methodically,denzil,sarat,extraterritorial,kohima,d'armor,brinsley,rostropovich,fengtian,comitatus,aravind,moche,wrangell,giscard,vantaa,viljandi,hakoah,seabees,muscatine,ballade,camanachd,sothern,mullioned,durad,margraves,maven,arete,chandni,garifuna,
142nd,reading/literature,thickest,intensifies,trygve,khaldun,perinatal,asana,powerline,acetylation,nureyev,omiya,montesquieu,riverwalk,marly,correlating,intermountain,bulgar,hammerheads,underscores,wiretapping,quatrain,ruisseau,newsagent,tuticorin,polygyny,hemsworth,partisanship,banna,istrian,evaporator".split(","),
45638 female_names:"mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,athena,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lettie,samatha,oralia,matilde,larissa,vesta,renita,delois,shanda,phillis,lorri,erlinda,cathrine,barb,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kesha,jeana,danelle,charline,chanel,valorie,dortha,cristal,sunny,leone,leilani,gerri,debi,andra,keshia,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,lyndsey,janina,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,yetta,verona,thomasina,sibyl,shannan,mechelle,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,chun,arcelia,zenobia,sharen,sharee,lavinia,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nakisha,maira,loreen,kizzy,fallon,christene,bobbye,ying,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,risa,rikki,particia,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yolande,vivien,vernetta,trudi,pearle,patrina,ossie,nicolle,loyce,letty,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,elodia,dorine,brunilda,brigid,ashli,ardella,twana,tarah,shavon,serina,rayna,ramonita,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jeni,gracia,glady,farah,enola,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,vivan,terresa,tanna,sudie,signe,salena,ronni,rebbecca,myrtie,malika,maida,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,ling,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,waneta,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,alita,yulanda,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,deedee,conception,clora,cherilyn,calandra,armandina,anisa,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kimi,keila,katelynn,jone,joane,jayna,janella,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,ming,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,eufemia,emely,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,xuan,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yajaira,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,xiao,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,shan,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","),surnames:"smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,black,daniels,palmer,mills,nichols,grant,knight,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,harvey,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,wolf,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,wiggins,mathews,mcclain,fischer,wall,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,duke,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,beach,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,villa,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,ivey,locke,haines,snell,hoskins,byrne,arias,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,waddell,ramey,cates,pollock,cummins,messer,heller,funk,cornett,palacios,galindo,cano,hathaway,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,gleason,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,dodge,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,tilley,schaffer,knutson,fenton,doran,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,huang,fagan,ezell,edmondson,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,stockton,stearns,lofton,coats,cavazos,beavers,barrios,tang,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,hudgins,gaskins,duckworth,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,kang,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cheng,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,bales,stepp,holm,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,bobo,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,stuckey,stine,porterfield,pauley,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,ricci,plunkett,pannell,ness,leger,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,conover,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,zhang,valerio,tellez,steffen,shumate,sauls,ripley,kemper,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,petrie,nowlin,navarrete,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tong,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,pape,null,mulkey,lightner,langer,hillard,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,danforth,cushing,cress,creed,cazares,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,pagano,mink,luker,leathers,joslin,hartzell,gambrell,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,boardman,alcaraz,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,mahler,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,caton,brunelle,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,eady,desmarais,decosta,dansby,cisco,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,valverde,valdivia,troupe,thrower,swindell,suttles,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,fick,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,wert,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pilgrim,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,rimmer,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,parmer,parke,pare,papa,palmieri,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,valente,turnbow,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,litchfield,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,silvas,shults,schexnayder,saez,rodas,rager,pulver,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,pepe,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hazard,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hatter,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,witmer,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,noles,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lollar,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,bobb,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,albino,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,boman,bohannan,beem,barre,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,amburgey,yeary,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,hunsicker,hornbuckle,holtzclaw,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,artrip,andujar,alkire,alder,zukowski,zuckerman,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,lirette,lesperance,lefkowitz,ledger,lauzon,lachapelle,klassen,keough,kempton,kaelin,jeffords,hsieh,hoyer,horwitz,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,bauder,barreras,aubuchon,anzalone,adamo,zerbe,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,nowakowski,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,licata,leonhardt,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hiebert,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mossman,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,kanter,houchin,hosley,hosler,hollon,holleman,heitman,haggins,gwaltney,goulding,gorden,geraci,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,monteith,milstead,milliner,mellen,mccardle,liptak,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,fuson,feldmann,everly,dyess,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,lamphere,laforge,jourdan,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,ehrhardt,eggen,dusek,durrant,dubay,dones,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,bodie,blosser,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wiebe,waguespack,vasser,upham,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,styron,stahlman,staab,skiba,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,kunze,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,grondin,grissett,greenawalt,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,birkholz,berardi,benda,behnke,barter,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,rogge,rettig,renwick,reidy,reider,redfield,premo,parente,paolucci,palmquist,ohler,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,letson,lechuga,lazenby,lauria,larimore,krupp,krupa,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,restrepo,ralls,ragusa,quiroga,papenfuss,oropeza,okane,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,linehan,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,kennett,kellett,kangas,janzen,hutter,huling,hofmeister,hewes,harjo,habib,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,orona,oberle,nocera,navas,nault,mullings,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leaks,lamarre,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hessler,hermanson,hepworth,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,berthiaume,beahm,batres,basnight,backes,axtell,atterberry,alvares,alegria,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,simkins,shuey,shaul,servin,serio,serafin,salguero,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,mcveigh,mcgrady,mcgaughey,mccurley,marchan,manske,lusby,linde,likens,licon,leroux,lemaire,legette,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,goodner,ginsburg,gerth,gerner,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,craine,chesnut,casady,carstens,carrick,carino,carignan,canchola,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabatini,ronan,rodiguez,riggleman,richins,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chivers,caudillo,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette".split(","),
45639 us_tv_and_film:"you,i,to,that,it,me,what,this,know,i'm,no,have,my,don't,just,not,do,be,your,we,it's,so,but,all,well,oh,about,right,you're,get,here,out,going,like,yeah,if,can,up,want,think,that's,now,go,him,how,got,did,why,see,come,good,really,look,will,okay,back,can't,mean,tell,i'll,hey,he's,could,didn't,yes,something,because,say,take,way,little,make,need,gonna,never,we're,too,she's,i've,sure,our,sorry,what's,let,thing,maybe,down,man,very,there's,should,anything,said,much,any,even,off,please,doing,thank,give,thought,help,talk,god,still,wait,find,nothing,again,things,let's,doesn't,call,told,great,better,ever,night,away,believe,feel,everything,you've,fine,last,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,talking,guess,care,bad,mom,remember,getting,we'll,together,dad,leave,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,course,might,mind,every,enough,try,hell,came,someone,you'll,whole,yourself,idea,ask,must,coming,looking,woman,room,knew,tonight,real,son,hope,went,hmm,happy,pretty,saw,girl,sir,friend,already,saying,next,job,problem,minute,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,probably,happen,we've,hurt,boy,dead,gotta,alone,excuse,start,kill,hard,you'd,today,car,ready,without,wants,hold,wanna,yet,seen,deal,once,gone,morning,supposed,friends,head,stuff,worry,live,truth,face,forget,true,cause,soon,knows,telling,wife,who's,chance,run,move,anyone,person,bye,somebody,heart,miss,making,meet,anyway,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,anymore,least,aren't,working,makes,taking,means,brother,hate,ago,says,beautiful,gave,fact,crazy,sit,afraid,important,rest,fun,kid,word,watch,glad,everyone,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,break,promise,door,close,hand,easy,question,tried,far,walk,needs,mine,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,waiting,dinner,funny,husband,almost,pay,answer,cool,eyes,news,child,shouldn't,yours,moment,sleep,read,where's,sounds,sonny,pick,sometimes,bed,date,plan,hours,lose,hands,serious,shit,behind,inside,ahead,week,wonderful,fight,past,cut,quite,he'll,sick,it'll,eat,nobody,goes,save,seems,finally,lives,worried,upset,carly,met,brought,seem,sort,safe,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,parents,drink,absolutely,how's,daddy,sweet,alive,sense,meant,happens,bet,blood,ain't,kidding,lie,meeting,dear,seeing,sound,fault,ten,buy,hour,speak,lady,jen,thinks,christmas,outside,hang,possible,worse,mistake,ooh,handle,spend,totally,giving,here's,marriage,realize,unless,sex,send,needed,scared,picture,talked,ass,hundred,changed,completely,explain,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,marry,drop,cannot,dream,protect,twenty,surprise,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,hasn't,worth,sheridan,amazing,expect,swear,piece,busy,happening,movie,we'd,catch,perhaps,step,fall,watching,kept,darling,dog,honor,moving,till,admit,problems,murder,he'd,evil,definitely,feels,honest,eye,broke,missed,longer,dollars,tired,evening,starting,entire,trip,niles,suppose,calm,imagine,fair,caught,blame,sitting,favor,apartment,terrible,clean,learn,frasier,relax,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,mouth,pregnant,ring,careful,shall,dude,ride,figured,wear,shoot,stick,follow,angry,write,stopped,ran,standing,forgive,jail,wearing,ladies,kinda,lunch,cristian,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,count,boyfriend,proud,agree,birthday,they've,share,offer,hurry,feet,wondering,decision,ones,finish,voice,herself,would've,mess,deserve,evidence,cute,dress,interesting,hotel,enjoy,quiet,concerned,staying,beat,sweetie,mention,clothes,fell,neither,mmm,fix,respect,prison,attention,holding,calls,surprised,bar,keeping,gift,hadn't,putting,dark,owe,ice,helping,normal,aunt,lawyer,apart,plans,jax,girlfriend,floor,whether,everything's,box,judge,upstairs,sake,mommy,possibly,worst,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,difference,store,she'd,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,join,card,crime,gentlemen,willing,window,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,bother,seriously,cell,knowing,broken,advice,somehow,paid,losing,push,helped,killing,boss,liked,innocent,rules,learned,thirty,risk,letting,speaking,ridiculous,afternoon,apologize,nervous,charge,patient,boat,how'd,hide,detective,planning,huge,breakfast,horrible,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,visit,could've,c'mon,letter,decide,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,hearing,kitchen,ma'am,should've,realized,kick,grab,discuss,fifty,reading,idiot,suddenly,agent,destroy,bucks,shoes,peace,arms,demon,livvie,consider,papers,incredible,witch,drunk,attorney,tells,knock,ways,gives,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,outta,weekend,matters,gosh,opportunity,impossible,waste,pretend,jump,eating,proof,slept,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,divorce,begin,ourselves,closer,ruin,smile,laugh,treat,fear,what'd,otherwise,excited,mail,hiding,stole,pacey,noticed,fired,excellent,bringing,bottom,note,sudden,bathroom,honestly,sing,foot,remind,charges,witness,finding,tree,dare,hardly,that'll,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,reach,dirty,choose,emergency,dropped,butt,credit,obvious,locked,loving,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,crap,crying,belong,partner,trick,pressure,dressed,taste,neck,nurse,raise,lots,carry,whoever,drinking,they'd,breaking,file,lock,wine,spot,paying,assume,asleep,turning,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,freak,movies,folks,cream,wild,truly,desk,convince,client,threw,hurts,spending,answers,shirt,chair,rough,doin,sees,ought,empty,wind,aware,dealing,pack,tight,hurting,guest,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,bottle,beyond,whenever,pool,opinion,starts,jerk,secrets,falling,necessary,barely,dancing,tests,copy,cousin,ahem,twelve,tess,skin,fifteen,speech,orders,complicated,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,someplace,screw,everywhere,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,whoo,hole,memories,o'clock,teeth,ruined,bite,stenbeck,liar,showing,cards,desperate,search,pathetic,spoke,scare,marah,afford,settle,stayed,checking,hired,heads,concern,blew,alcazar,champagne,connection,tickets,happiness,saving,kissing,hated,personally,suggest,prepared,onto,downstairs,ticket,it'd,loose,holy,duty,convinced,throwing,kissed,legs,loud,saturday,babies,where'd,warning,miracle,carrying,blind,ugly,shopping,hates,sight,bride,coat,clearly,celebrate,brilliant,wanting,forrester,lips,custody,screwed,buying,toast,thoughts,reality,lexie,attitude,advantage,grandfather,sami,grandma,someday,roof,marrying,powerful,grown,grandmother,fake,must've,ideas,exciting,familiar,bomb,bout,harmony,schedule,capable,practically,correct,clue,forgotten,appointment,deserves,threat,bloody,lonely,shame,jacket,hook,scary,investigation,invite,shooting,lesson,criminal,victim,funeral,considering,burning,strength,harder,sisters,pushed,shock,pushing,heat,chocolate,miserable,corinthos,nightmare,brings,zander,crash,chances,sending,recognize,healthy,boring,feed,engaged,headed,treated,knife,drag,badly,hire,paint,pardon,behavior,closet,warn,gorgeous,milk,survive,ends,dump,rent,remembered,thanksgiving,rain,revenge,prefer,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,stood,affair,ours,depends,protecting,jury,brave,fingers,murdered,explanation,picking,blah,stronger,handsome,unbelievable,anytime,shake,oakdale,wherever,pulling,facts,waited,lousy,circumstances,disappointed,weak,trusted,license,nothin,trash,understanding,slip,sounded,awake,friendship,stomach,weapon,threatened,mystery,vegas,understood,basically,switch,frankly,cheap,lifetime,deny,clock,garbage,why'd,tear,ears,indeed,changing,singing,tiny,decent,avoid,messed,filled,touched,disappear,exact,pills,kicked,harm,fortune,pretending,insurance,fancy,drove,cared,belongs,nights,lorelai,lift,timing,guarantee,chest,woke,burned,watched,heading,selfish,drinks,doll,committed,elevator,freeze,noise,wasting,ceremony,uncomfortable,staring,files,bike,stress,permission,thrown,possibility,borrow,fabulous,doors,screaming,bone,xander,what're,meal,apology,anger,honeymoon,bail,parking,fixed,wash,stolen,sensitive,stealing,photo,chose,lets,comfort,worrying,pocket,mateo,bleeding,shoulder,ignore,talent,tied,garage,dies,demons,dumped,witches,rude,crack,bothering,radar,soft,meantime,gimme,kinds,fate,concentrate,throat,prom,messages,intend,ashamed,somethin,manage,guilt,interrupt,guts,tongue,shoe,basement,sentence,purse,glasses,cabin,universe,repeat,mirror,wound,travers,tall,engagement,therapy,emotional,jeez,decisions,soup,thrilled,stake,chef,moves,extremely,moments,expensive,counting,shots,kidnapped,cleaning,shift,plate,impressed,smells,trapped,aidan,knocked,charming,attractive,argue,puts,whip,embarrassed,package,hitting,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,terribly,friendly,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,disaster,bars,crossed,trap,talks,eggs,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,reputation,presents,chat,suffer,argument,talkin,crowd,homework,coincidence,cancel,pride,solve,hopefully,pounds,pine,mate,illegal,generous,outfit,maid,bath,punch,freaked,begging,recall,enjoying,prepare,wheel,defend,signs,painful,yourselves,maris,that'd,suspicious,cooking,button,warned,sixty,pity,yelling,awhile,confidence,offering,pleased,panic,hers,gettin,refuse,grandpa,testify,choices,cruel,mental,gentleman,coma,cutting,proteus,guests,expert,benefit,faces,jumped,toilet,sneak,halloween,privacy,smoking,reminds,twins,swing,solid,options,commitment,crush,ambulance,wallet,gang,eleven,option,laundry,assure,stays,skip,fail,discussion,clinic,betrayed,sticking,bored,mansion,soda,sheriff,suite,handled,busted,load,happier,studying,romance,procedure,commit,assignment,suicide,minds,swim,yell,llanview,chasing,proper,believes,humor,hopes,lawyers,giant,latest,escaped,parent,tricks,insist,dropping,cheer,medication,flesh,routine,sandwich,handed,false,beating,warrant,awfully,odds,treating,thin,suggesting,fever,sweat,silent,clever,sweater,mall,sharing,assuming,judgment,goodnight,divorced,surely,steps,confess,math,listened,comin,answered,vulnerable,bless,dreaming,chip,zero,pissed,nate,kills,tears,knees,chill,brains,unusual,packed,dreamed,cure,lookin,grave,cheating,breaks,locker,gifts,awkward,thursday,joking,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,delicious,closing,vampires,wore,tail,secure,salad,murderer,spit,offense,dust,conscience,bread,answering,lame,invitation,grief,smiling,pregnancy,prisoner,delivery,guards,virus,shrink,freezing,wreck,massimo,wire,technically,blown,anxious,cave,holidays,cleared,wishes,caring,candles,bound,charm,pulse,jumping,jokes,boom,occasion,silence,nonsense,frightened,slipped,dimera,blowing,relationships,kidnapping,spin,tool,roxy,packing,blaming,wrap,obsessed,fruit,torture,personality,there'll,fairy,necessarily,seventy,print,motel,underwear,grams,exhausted,believing,freaking,carefully,trace,touching,messing,recovery,intention,consequences,belt,sacrifice,courage,enjoyed,attracted,remove,testimony,intense,heal,defending,unfair,relieved,loyal,slowly,buzz,alcohol,surprises,psychiatrist,plain,attic,who'd,uniform,terrified,cleaned,zach,threaten,fella,enemies,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,badge,naturally,frozen,sakes,appropriate,trunk,dunno,costume,sixteen,impressive,kicking,junk,grabbed,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,surveillance,admire,questioning,dragged,barn,deeply,wrapped,wasted,tense,hoped,fellas,roommate,mortal,fascinating,stops,arrangements,agenda,literally,propose,honesty,underneath,sauce,promises,lecture,eighty,torn,shocked,backup,differently,ninety,deck,biological,pheebs,ease,creep,waitress,telephone,ripped,raising,scratch,rings,prints,thee,arguing,ephram,asks,oops,diner,annoying,taggert,sergeant,blast,towel,clown,habit,creature,bermuda,snap,react,paranoid,handling,eaten,therapist,comment,sink,reporter,nurses,beats,priority,interrupting,warehouse,loyalty,inspector,pleasant,excuses,threats,guessing,tend,praying,motive,unconscious,mysterious,unhappy,tone,switched,rappaport,sookie,neighbor,loaded,swore,piss,balance,toss,misery,thief,squeeze,lobby,goa'uld,geez,exercise,forth,booked,sandburg,poker,eighteen,d'you,bury,everyday,digging,creepy,wondered,liver,hmmm,magical,fits,discussed,moral,helpful,searching,flew,depressed,aisle,cris,amen,vows,neighbors,darn,cents,arrange,annulment,useless,adventure,resist,fourteen,celebrating,inch,debt,violent,sand,teal'c,celebration,reminded,phones,paperwork,emotions,stubborn,pound,tension,stroke,steady,overnight,chips,beef,suits,boxes,cassadine,collect,tragedy,spoil,realm,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,perspective,climb,punishment,finest,springfield,hint,furniture,blanket,twist,proceed,fries,worries,niece,gloves,soap,signature,disappoint,crawl,convicted,flip,counsel,doubts,crimes,accusing,shaking,remembering,hallway,halfway,bothered,madam,gather,cameras,blackmail,symptoms,rope,ordinary,imagined,cigarette,supportive,explosion,trauma,ouch,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,drawer,phony,interfere,catching,bargain,tragic,respond,punish,penthouse,thou,rach,ohhh,insult,bugs,beside,begged,absolute,strictly,socks,senses,sneaking,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,bitter,adorable,y'all,tested,suggestion,jewelry,alike,jacks,distracted,shelter,lessons,constable,circus,audition,tune,shoulders,mask,helpless,feeding,explains,sucked,robbery,objection,behave,valuable,shadows,courtroom,confusing,talented,smarter,mistaken,customer,bizarre,scaring,motherfucker,alert,vecchio,reverend,foolish,compliment,bastards,worker,wheelchair,protective,gentle,reverse,picnic,knee,cage,wives,wednesday,voices,toes,stink,scares,pour,cheated,slide,ruining,filling,exit,cottage,upside,proves,parked,diary,complaining,confessed,pipe,merely,massage,chop,spill,prayer,betray,waiter,scam,rats,fraud,brush,tables,sympathy,pill,filthy,seventeen,employee,bracelet,pays,fairly,deeper,arrive,tracking,spite,shed,recommend,oughta,nanny,menu,diet,corn,roses,patch,dime,devastated,subtle,bullets,beans,pile,confirm,strings,parade,borrowed,toys,straighten,steak,premonition,planted,honored,exam,convenient,traveling,laying,insisted,dish,aitoro,kindly,grandson,donor,temper,teenager,proven,mothers,denial,backwards,tent,swell,noon,happiest,drives,thinkin,spirits,potion,holes,fence,whatsoever,rehearsal,overheard,lemme,hostage,bench,tryin,taxi,shove,moron,impress,needle,intelligent,instant,disagree,stinks,rianna,recover,groom,gesture,constantly,bartender,suspects,sealed,legally,hears,dresses,sheet,psychic,teenage,knocking,judging,accidentally,waking,rumor,manners,homeless,hollow,desperately,tapes,referring,item,genoa,gear,majesty,cried,tons,spells,instinct,quote,motorcycle,convincing,fashioned,aids,accomplished,grip,bump,upsetting,needing,invisible,forgiveness,feds,compare,bothers,tooth,inviting,earn,compromise,cocktail,tramp,jabot,intimate,dignity,dealt,souls,informed,gods,dressing,cigarettes,alistair,leak,fond,corky,seduce,liquor,fingerprints,enchantment,butters,stuffed,stavros,emotionally,transplant,tips,oxygen,nicely,lunatic,drill,complain,announcement,unfortunate,slap,prayers,plug,opens,oath,o'neill,mutual,yacht,remembers,fried,extraordinary,bait,warton,sworn,stare,safely,reunion,burst,might've,dive,aboard,expose,buddies,trusting,booze,sweep,sore,scudder,properly,parole,ditch,canceled,speaks,glow,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,pancakes,harsh,flattered,ahhh,troubles,fights,favourite,eats,rage,undercover,spoiled,sloane,shine,destroying,deliberately,conspiracy,thoughtful,sandwiches,plates,nails,miracles,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,forgiven,bent,maciver,involve,dragging,cooked,pointing,foul,dull,beneath,heels,faking,deaf,stunt,jealousy,hopeless,fears,cuts,scenario,necklace,crashed,accuse,restraining,homicide,helicopter,firing,safer,auction,videotape,tore,reservations,pops,appetite,wounds,vanquish,ironic,fathers,excitement,anyhow,tearing,sends,rape,laughed,belly,dealer,cooperate,accomplish,wakes,spotted,sorts,reservation,ashes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,investigating,inappropriate,lipstick,lawn,compassion,cafeteria,scarf,precisely,obsession,loses,lighten,infection,granddaughter,explode,balcony,this'll,spying,publicity,depend,cracked,conscious,ally,absurd,vicious,invented,forbid,directions,defendant,bare,announce,screwing,salesman,robbed,leap,lakeview,insanity,reveal,possibilities,kidnap,gown,chairs,wishing,setup,punished,criminals,regrets,raped,quarters,lamp,dentist,anyways,anonymous,semester,risks,owes,lungs,explaining,delicate,tricked,eager,doomed,adoption,stab,sickness,scum,floating,envelope,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,stabbed,remarkable,brat,privilege,passionate,nerves,lawsuit,kidney,disturbed,cozy,tire,shirts,oven,ordering,delay,risky,monsters,honorable,grounded,closest,breakdown,bald,abandon,scar,collar,worthless,sucking,enormous,disturbing,disturb,distract,deals,conclusions,vodka,dishes,crawling,briefcase,wiped,whistle,sits,roast,rented,pigs,flirting,deposit,bottles,topic,riot,overreacting,logical,hostile,embarrass,casual,beacon,amusing,altar,claus,survival,skirt,shave,porch,ghosts,favors,drops,dizzy,chili,advise,strikes,rehab,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,cigar,weakness,ranch,practicing,examine,cranes,bribe,sail,prescription,hush,fragile,forensics,expense,drugged,cows,bells,visitor,suitcase,sorta,scan,manticore,insecure,imagining,hardest,clerk,wrist,what'll,starters,silk,pump,pale,nicer,haul,flies,boot,thumb,there'd,how're,elders,quietly,pulls,idiots,erase,denying,ankle,amnesia,accepting,heartbeat,devane,confront,minus,legitimate,fixing,arrogant,tuna,supper,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,snack,rational,minded,guessed,weddings,tumor,humiliated,aspirin,spray,picks,eyed,drowning,contacts,ritual,perfume,hiring,hating,docks,creatures,visions,thanking,thankful,sock,nineteen,fork,throws,teenagers,stressed,slice,rolls,plead,ladder,kicks,detectives,assured,tellin,shallow,responsibilities,repay,howdy,girlfriends,deadly,comforting,ceiling,verdict,insensitive,spilled,respected,messy,interrupted,halliwell,blond,bleed,wardrobe,takin,murders,backs,underestimate,justify,harmless,frustrated,fold,enzo,communicate,bugging,arson,whack,salary,rumors,obligation,liking,dearest,congratulate,vengeance,rack,puzzle,fires,courtesy,caller,blamed,tops,quiz,prep,curiosity,circles,barbecue,sunnydale,spinning,psychotic,cough,accusations,resent,laughs,freshman,envy,drown,bartlet,asses,sofa,poster,highness,dock,apologies,theirs,stat,stall,realizes,psych,mmmm,fools,understandable,treats,succeed,stir,relaxed,makin,gratitude,faithful,accent,witter,wandering,locate,inevitable,gretel,deed,crushed,controlling,smelled,robe,gossip,gambling,cosmetics,accidents,surprising,stiff,sincere,rushed,refrigerator,preparing,nightmares,mijo,ignoring,hunch,fireworks,drowned,brass,whispering,sophisticated,luggage,hike,explore,emotion,crashing,contacted,complications,shining,rolled,righteous,reconsider,goody,geek,frightening,ethics,creeps,courthouse,camping,affection,smythe,haircut,essay,baked,apologized,vibe,respects,receipt,mami,hats,destructive,adore,adopt,tracked,shorts,reminding,dough,creations,cabot,barrel,snuck,slight,reporters,pressing,magnificent,madame,lazy,glorious,fiancee,bits,visitation,sane,kindness,shoulda,rescued,mattress,lounge,lifted,importantly,glove,enterprises,disappointment,condo,beings,admitting,yelled,waving,spoon,screech,satisfaction,reads,nailed,worm,tick,resting,marvelous,fuss,cortlandt,chased,pockets,luckily,lilith,filing,conversations,consideration,consciousness,worlds,innocence,forehead,aggressive,trailer,slam,quitting,inform,delighted,daylight,danced,confidential,aunts,washing,tossed,spectra,marrow,lined,implying,hatred,grill,corpse,clues,sober,offended,morgue,infected,humanity,distraction,cart,wired,violation,promising,harassment,glue,d'angelo,cursed,brutal,warlocks,wagon,unpleasant,proving,priorities,mustn't,lease,flame,disappearance,depressing,thrill,sitter,ribs,flush,earrings,deadline,corporal,collapsed,update,snapped,smack,melt,figuring,delusional,coulda,burnt,tender,sperm,realise,pork,popped,interrogation,esteem,choosing,undo,pres,prayed,plague,manipulate,insulting,detention,delightful,coffeehouse,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,monsieur,faint,bake,distress,correctly,complaint,blocked,tortured,risking,pointless,handing,dumping,cups,alibi,struggling,shiny,risked,mummy,mint,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,rode,puppet,modeling,memo,irresponsible,humiliation,hiya,freakin,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,pledge,panicked,nursery,louder,jeans,investigator,homecoming,frustrating,buys,busting,buff,sleeve,irony,dope,declare,autopsy,workin,torch,prick,limb,hysterical,goddamnit,fetch,dimension,crowded,clip,climbing,bonding,woah,trusts,negotiate,lethal,iced,fantasies,deeds,bore,babysitter,questioned,outrageous,kiriakis,insulted,grudge,driveway,deserted,definite,beep,wires,suggestions,searched,owed,lend,drunken,demanding,costanza,conviction,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,meals,invitations,haunted,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,manny,fist,spectacular,hostages,heroin,havin,habits,encouraging,consult,burgers,boyfriends,bailed,baggage,watches,troubled,torturing,teasing,sweetest,qualities,postpone,overwhelmed,malkovich,impulse,classy,charging,amazed,policeman,hypocrite,humiliate,hideous,d'ya,costumes,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shrimp,shouting,pressed,nooo,grieving,gladly,fling,eliminate,cereal,aaah,sonofabitch,paralyzed,lotta,locks,guaranteed,dummy,despise,dental,briefing,bluff,batteries,whatta,sounding,servants,presume,handwriting,fainted,dried,allright,acknowledge,whacked,toxic,reliable,quicker,overwhelming,lining,harassing,fatal,endless,dolls,convict,whatcha,unlikely,shutting,positively,overcome,goddam,essence,dose,diagnosis,cured,bully,ahold,yearbook,tempting,shelf,prosecution,pouring,possessed,greedy,wonders,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,evidently,contempt,compromised,cans,weekends,urge,theft,suing,shipment,scissors,responding,proposition,noises,matching,hormones,hail,grandchildren,gently,smashed,sexually,sentimental,nicest,manipulated,intern,handcuffs,framed,errands,entertaining,crib,carriage,barge,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,headaches,float,embrace,corners,whining,sweating,skipped,mountie,motives,listens,cristobel,cleaner,cheerleader,balsom,unnecessary,stunning,scent,quartermaines,pose,montega,loosen,info,hottest,haunt,gracious,forgiving,errand,cakes,blames,abortion,sketch,shifts,plotting,perimeter,pals,mere,mattered,lonigan,interference,eyewitness,enthusiasm,diapers,strongest,shaken,punched,portal,catches,backyard,terrorists,sabotage,organs,needy,cuff,civilization,woof,who'll,prank,obnoxious,mates,hereby,gabby,faked,cellar,whitelighter,void,strangle,sour,muffins,interfering,demonic,clearing,boutique,barrington,terrace,smoked,righty,quack,petey,pact,knot,ketchup,disappearing,cordy,uptight,ticking,terrifying,tease,swamp,secretly,rejection,reflection,realizing,rays,mentally,marone,doubted,deception,congressman,cheesy,toto,stalling,scoop,ribbon,immune,expects,destined,bets,bathing,appreciation,accomplice,wander,shoved,sewer,scroll,retire,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,whoops,volunteered,talents,stinking,remotely,garlic,decency,cord,beds,altogether,uniforms,tremendous,popping,outa,observe,lung,hangs,feelin,dudes,donation,disguise,curb,bites,antique,toothbrush,realistic,predict,landlord,hourglass,hesitate,consolation,babbling,tipped,stranded,smartest,repeating,puke,psst,paycheck,overreacted,macho,juvenile,grocery,freshen,disposal,cuffs,caffeine,vanished,unfinished,ripping,pinch,flattering,expenses,dinners,colleague,ciao,belthazor,attorneys,woulda,whereabouts,waitin,truce,tripped,tasted,steer,poisoning,manipulative,immature,husbands,heel,granddad,delivering,condoms,addict,trashed,raining,pasta,needles,leaning,detector,coolest,batch,appointments,almighty,vegetables,spark,perfection,pains,momma,mole,meow,hairs,getaway,cracking,compliments,behold,verge,tougher,timer,tapped,taped,specialty,snooping,shoots,rendezvous,pentagon,leverage,jeopardize,janitor,grandparents,forbidden,clueless,bidding,ungrateful,unacceptable,tutor,serum,scuse,pajamas,mouths,lure,irrational,doom,cries,beautifully,arresting,approaching,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,jumps,inventory,darlin,committing,banging,asap,worms,violated,vent,traumatic,traced,sweaty,shaft,overboard,insight,healed,grasp,experiencing,crappy,crab,chunk,awww,stain,shack,reacted,pronounce,poured,moms,marriages,jabez,handful,flipped,fireplace,embarrassment,disappears,concussion,bruises,brakes,twisting,swept,summon,splitting,sloppy,settling,reschedule,notch,hooray,grabbing,exquisite,disrespect,thornhart,straw,slapped,shipped,shattered,ruthless,refill,payroll,numb,mourning,manly,hunk,entertain,drift,dreadful,doorstep,confirmation,chops,appreciates,vague,tires,stressful,stashed,stash,sensed,preoccupied,predictable,noticing,madly,gunshot,dozens,dork,confuse,cleaners,charade,chalk,cappuccino,bouquet,amulet,addiction,who've,warming,unlock,satisfy,sacrificed,relaxing,lone,blocking,blend,blankets,addicted,yuck,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,caution,backpack,agreeing,whale,taller,supervisor,sacrifices,phew,ounce,irrelevant,gran,felon,favorites,farther,fade,erased,easiest,convenience,compassionate,cane,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,immunity,hassle,goddamned,frighten,dearly,cease,ambition,wage,unstable,salvage,richer,refusing,raging,pumping,pressuring,mortals,lowlife,intimidated,intentionally,inspire,forgave,devotion,despicable,deciding,dash,comfy,breach,bark,aaaah,switching,swallowed,stove,screamed,scars,russians,pounding,poof,pipes,pawn,legit,invest,farewell,curtains,civilized,caviar,boost,token,superstition,supernatural,sadness,recorder,psyched,motivated,microwave,hallelujah,fraternity,dryer,cocoa,chewing,acceptable,unbelievably,smiled,smelling,simpler,respectable,remarks,khasinau,indication,gutter,grabs,fulfill,flashlight,ellenor,blooded,blink,blessings,beware,uhhh,turf,swings,slips,shovel,shocking,puff,mirrors,locking,heartless,fras,childish,cardiac,utterly,tuscany,ticked,stunned,statesville,sadly,purely,kiddin,jerks,hitch,flirt,fare,equals,dismiss,christening,casket,c'mere,breakup,biting,antibiotics,accusation,abducted,witchcraft,thread,runnin,punching,paramedics,newest,murdering,masks,lawndale,initials,grampa,choking,charms,careless,bushes,buns,bummed,shred,saves,saddle,rethink,regards,precinct,persuade,meds,manipulating,llanfair,leash,hearted,guarantees,fucks,disgrace,deposition,bookstore,boil,vitals,veil,trespassing,sidewalk,sensible,punishing,overtime,optimistic,obsessing,notify,mornin,jeopardy,jaffa,injection,hilarious,desires,confide,cautious,yada,where're,vindictive,vial,teeny,stroll,sittin,scrub,rebuild,posters,ordeal,nuns,intimacy,inheritance,exploded,donate,distracting,despair,crackers,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,platter,napkin,misplaced,merchandise,loony,jinx,heroic,frankenstein,ambitious,syrup,solitary,resemblance,reacting,premature,lavery,flashes,cheque,awright,acquainted,wrapping,untie,salute,realised,priceless,partying,lightly,lifting,kasnoff,insisting,glowing,generator,explosives,cutie,confronted,buts,blouse,ballistic,antidote,analyze,allowance,adjourned,unto,understatement,tucked,touchy,subconscious,screws,sarge,roommates,rambaldi,offend,nerd,knives,irresistible,incapable,hostility,goddammit,fuse,frat,curfew,blackmailed,walkin,starve,sleigh,sarcastic,recess,rebound,pinned,parlor,outfits,livin,heartache,haired,fundraiser,doorman,discreet,dilucca,cracks,considerate,climbed,catering,apophis,zoey,urine,strung,stitches,sordid,sark,protector,phoned,pets,hostess,flaw,flavor,deveraux,consumed,confidentiality,bourbon,straightened,specials,spaghetti,prettier,powerless,playin,playground,paranoia,instantly,havoc,exaggerating,eavesdropping,doughnuts,diversion,deepest,cutest,comb,bela,behaving,anyplace,accessory,workout,translate,stuffing,speeding,slime,royalty,polls,marital,lurking,lottery,imaginary,greetings,fairwinds,elegant,elbow,credibility,credentials,claws,chopped,bridal,bedside,babysitting,witty,unforgivable,underworld,tempt,tabs,sophomore,selfless,secrecy,restless,okey,movin,metaphor,messes,meltdown,lecter,incoming,gasoline,diefenbaker,buckle,admired,adjustment,warmth,throats,seduced,queer,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,wedded,verbal,unpredictable,tuned,stoop,slides,sinking,rigged,plumbing,lingerie,hankey,greed,everwood,elope,dresser,chauffeur,bulletin,bugged,bouncing,temptation,strangest,slammed,sarcasm,pending,packages,orderly,obsessive,murderers,meteor,inconvenience,glimpse,froze,execute,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,testifying,syringe,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,nutty,mentioning,mend,inspiring,impulsive,housekeeper,foam,fingernails,conditioning,baking,whine,thug,starved,sniffing,sedative,programmed,picket,paged,hound,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,choo,assignments,ants,vile,unreasonable,tossing,thanked,steals,souvenir,scratched,psychopath,outs,obstruction,obey,lump,insists,harass,gloat,filth,edgy,didn,coroner,confessing,bruise,betraying,bailing,appealing,adebisi,wrath,wandered,waist,vain,traps,stepfather,poking,obligated,heavenly,dilemma,crazed,contagious,coaster,cheering,bundle,vomit,thingy,speeches,robbing,raft,pumped,pillows,peep,packs,neglected,m'kay,loneliness,intrude,helluva,gardener,forresters,drooling,betcha,vase,supermarket,squat,spitting,rhyme,relieve,receipts,racket,pictured,pause,overdue,motivation,morgendorffer,kidnapper,insect,horns,feminine,eyeballs,dumps,disappointing,crock,convertible,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,suspense,summoned,spiders,reiber,raving,pushy,postponed,ohhhh,noooo,mold,laughter,incompetent,hugging,groceries,drip,communicating,auntie,adios,wraps,wiser,willingly,weirdest,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,prophecy,ledge,justified,insults,hateful,handles,doorway,chatting,buyer,buckaroo,bedrooms,askin,ammo,tutoring,subpoena,scratching,privileges,pager,mart,intriguing,idiotic,grape,enlighten,corrupt,brunch,bridesmaid,barking,applause,acquaintance,wretched,superficial,soak,smoothly,sensing,restraint,posing,pleading,payoff,oprah,nemo,morals,loaf,jumpy,ignorant,herbal,hangin,germs,generosity,flashing,doughnut,clumsy,chocolates,captive,behaved,apologise,vanity,stumbled,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,knots,interviewing,humour,grind,greasy,goons,drastic,coop,comparing,cocky,clearer,bruised,brag,bind,worthwhile,whoop,vanquishing,tabloids,sprung,spotlight,sentencing,racist,provoke,pining,overly,locket,imply,impatient,hovering,hotter,fest,endure,dots,doren,debts,crawled,chained,brit,breaths,weirdo,warmed,wand,troubling,tok'ra,strapped,soaked,skipping,scrambled,rattle,profound,musta,mocking,misunderstand,limousine,kacl,hustle,forensic,enthusiastic,duct,drawers,devastating,conquer,clarify,chores,cheerleaders,cheaper,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,teller,strangled,scheming,ropes,rescuing,rave,postcard,o'reily,morphine,lotion,lads,kidneys,judgement,itch,indefinitely,grenade,glamorous,genetically,freud,discretion,delusions,crate,competent,bakery,argh,ahhhh,wedge,wager,unfit,tripping,torment,superhero,stirring,spinal,sorority,seminar,scenery,rabble,pneumonia,perks,override,ooooh,mija,manslaughter,mailed,lime,lettuce,intimidate,guarded,grieve,grad,frustration,doorbell,chinatown,authentic,arraignment,annulled,allergies,wanta,verify,vegetarian,tighter,telegram,stalk,spared,shoo,satisfying,saddam,requesting,pens,overprotective,obstacles,notified,nasedo,grandchild,genuinely,flushed,fluids,floss,escaping,ditched,cramp,corny,bunk,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,sniff,shakes,salsa,retrieve,reassuring,pumps,neurotic,negotiating,needn't,monitors,millionaire,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,doubting,decaf,biopsy,whiz,voluntarily,ventilator,unpack,unload,toad,spooked,snitch,schillinger,reassure,persuasive,mystical,mysteries,matrimony,mails,jock,headline,explanations,dispatch,curly,cupid,condolences,comrade,cassadines,bulb,bragging,awaits,assaulted,ambush,adolescent,abort,yank,whit,vaguely,undermine,tying,swamped,stabbing,slippers,slash,sincerely,sigh,setback,secondly,rotting,precaution,pcpd,melting,liaison,hots,hooking,headlines,haha,ganz,fury,felicity,fangs,encouragement,earring,dreidel,dory,donut,dictate,decorating,cocktails,bumps,blueberry,believable,backfired,backfire,apron,adjusting,vous,vouch,vitamins,ummm,tattoos,slimy,sibling,shhhh,renting,peculiar,parasite,paddington,marries,mailbox,magically,lovebirds,knocks,informant,exits,drazen,distractions,disconnected,dinosaurs,dashwood,crooked,conveniently,wink,warped,underestimated,tacky,shoving,seizure,reset,pushes,opener,mornings,mash,invent,indulge,horribly,hallucinating,festive,eyebrows,enjoys,desperation,dealers,darkest,daph,boragora,belts,bagel,authorization,auditions,agitated,wishful,wimp,vanish,unbearable,tonic,suffice,suction,slaying,safest,rocking,relive,puttin,prettiest,noisy,newlyweds,nauseous,misguided,mildly,midst,liable,judgmental,indy,hunted,givin,fascinated,elephants,dislike,deluded,decorate,crummy,contractions,carve,bottled,bonded,bahamas,unavailable,twenties,trustworthy,surgeons,stupidity,skies,remorse,preferably,pies,nausea,napkins,mule,mourn,melted,mashed,inherit,greatness,golly,excused,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,chooses,checkup,boredom,bandages,alarms,windshield,who're,whaddya,transparent,surprisingly,sunglasses,slit,roar,reade,prognosis,probe,pitiful,persistent,peas,nosy,nagging,morons,masterpiece,martinis,limbo,liars,irritating,inclined,hump,hoynes,fiasco,eatin,cubans,concentrating,colorful,clam,cider,brochure,barto,bargaining,wiggle,welcoming,weighing,vanquished,stains,sooo,snacks,smear,sire,resentment,psychologist,pint,overhear,morality,landingham,kisser,hoot,holling,handshake,grilled,formality,elevators,depths,confirms,boathouse,accidental,westbridge,wacko,ulterior,thugs,thighs,tangled,stirred,snag,sling,sleaze,rumour,ripe,remarried,puddle,pins,perceptive,miraculous,longing,lockup,librarian,impressions,immoral,hypothetically,guarding,gourmet,gabe,faxed,extortion,downright,digest,cranberry,bygones,buzzing,burying,bikes,weary,taping,takeout,sweeping,stepmother,stale,senor,seaborn,pros,pepperoni,newborn,ludicrous,injected,geeks,forged,faults,drue,dire,dief,desi,deceiving,caterer,calmed,budge,ankles,vending,typing,tribbiani,there're,squared,snowing,shades,sexist,rewrite,regretted,raises,picky,orphan,mural,misjudged,miscarriage,memorize,leaking,jitters,invade,interruption,illegally,handicapped,glitch,gittes,finer,distraught,dispose,dishonest,digs,dads,cruelty,circling,canceling,butterflies,belongings,barbrady,amusement,alias,zombies,where've,unborn,swearing,stables,squeezed,sensational,resisting,radioactive,questionable,privileged,portofino,owning,overlook,orson,oddly,interrogate,imperative,impeccable,hurtful,hors,heap,graders,glance,disgust,devious,destruct,crazier,countdown,chump,cheeseburger,burglar,berries,ballroom,assumptions,annoyed,allergy,admirer,admirable,activate,underpants,twit,tack,strokes,stool,sham,scrap,retarded,resourceful,remarkably,refresh,pressured,precautions,pointy,nightclub,mustache,maui,lace,hunh,hubby,flare,dont,dokey,dangerously,crushing,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,amazingly,alas,what've,toilets,tacos,stairwell,spirited,sewing,rubbed,punches,protects,nuisance,motherfuckers,mingle,kynaston,knack,kinkle,impose,gullible,godmother,funniest,friggin,folding,fashions,eater,dysfunctional,drool,dripping,ditto,cruising,criticize,conceive,clone,cedars,caliber,brighter,blinded,birthdays,banquet,anticipate,annoy,whim,whichever,volatile,veto,vested,shroud,rests,reindeer,quarantine,pleases,painless,orphans,orphanage,offence,obliged,negotiation,narcotics,mistletoe,meddling,manifest,lookit,lilah,intrigued,injustice,homicidal,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,cheerful,buyers,brownies,beverage,basics,arvin,weighs,upsets,unethical,swollen,sweaters,stupidest,sensation,scalpel,props,prescribed,pompous,objections,mushrooms,mulwray,manipulation,lured,internship,insignificant,inmate,incentive,fulfilled,disagreement,crypt,cornered,copied,brightest,beethoven,attendant,amaze,yogurt,wyndemere,vocabulary,tulsa,tactic,stuffy,respirator,pretends,polygraph,pennies,ordinarily,olives,necks,morally,martyr,leftovers,joints,hopping,homey,hints,heartbroken,forge,florist,firsthand,fiend,dandy,crippled,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,wiring,wench,weaknesses,volunteering,violating,unlocked,tummy,surrogate,subid,stray,startle,specifics,slowing,scoot,robbers,rightful,richest,qfxmjrie,puffs,pierced,pencils,paralysis,makeover,luncheon,linksynergy,jerky,jacuzzi,hitched,hangover,fracture,flock,firemen,disgusted,darned,clams,borrowing,banged,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,retro,quits,pegged,painfully,paging,omelet,memorized,lawfully,jackets,intercept,ingredient,grownup,glued,fulfilling,enchanted,delusion,daring,compelling,carton,bridesmaids,bribed,boiling,bathrooms,bandage,awaiting,assign,arrogance,antiques,ainsley,turkeys,trashing,stockings,stalked,stabilized,skates,sedated,robes,respecting,psyche,presumptuous,prejudice,paragraph,mocha,mints,mating,mantan,lorne,loads,listener,itinerary,hepatitis,heave,guesses,fading,examining,dumbest,dishwasher,deceive,cunning,cripple,convictions,confided,compulsive,compromising,burglary,bumpy,brainwashed,benes,arnie,affirmative,adrenaline,adamant,watchin,waitresses,transgenic,toughest,tainted,surround,stormed,spree,spilling,spectacle,soaking,shreds,sewers,severed,scarce,scamming,scalp,rewind,rehearsing,pretentious,potions,overrated,obstacle,nerds,meems,mcmurphy,maternity,maneuver,loathe,fertility,eloping,ecstatic,ecstasy,divorcing,dignan,costing,clubhouse,clocks,candid,bursting,breather,braces,bending,arsonist,adored,absorb,valiant,uphold,unarmed,topolsky,thrilling,thigh,terminate,sustain,spaceship,snore,sneeze,smuggling,salty,quaint,patronize,patio,morbid,mamma,kettle,joyous,invincible,interpret,insecurities,impulses,illusions,holed,exploit,drivin,defenseless,dedicate,cradle,coupon,countless,conjure,cardboard,booking,backseat,accomplishment,wordsworth,wisely,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,scumbag,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,prospects,pronto,posse,polling,pedestal,palms,muddy,morty,microscope,merci,lecturing,inject,incriminate,hygiene,grapefruit,gazebo,funnier,cuter,bossy,booby,aides,zende,winthrop,warrants,valentines,undressed,underage,truthfully,tampered,suffers,speechless,sparkling,sidelines,shrek,railing,puberty,pesky,outrage,outdoors,motions,moods,lunches,litter,kidnappers,itching,intuition,imitation,humility,hassling,gallons,drugstore,dosage,disrupt,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,circumstantial,chimney,blinking,biscuits,admiring,weeping,triad,trashy,soothing,slumber,slayers,skirts,siren,shindig,sentiment,rosco,riddance,quaid,purity,proceeding,pretzels,panicking,mckechnie,lovin,leaked,intruding,impersonating,ignorance,hamburgers,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,deceived,creeping,craziest,corpses,conned,coincidences,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,zillion,watergate,wallpaper,telesave,sympathize,sweeter,startin,spades,sodas,snowed,sleepover,signor,seein,retainer,restroom,rested,repercussions,reliving,reconcile,prevail,preaching,overreact,o'neil,noose,moustache,manicure,maids,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,exhausting,everytime,disregard,cling,chevron,chaperone,blinding,bitty,beads,battling,badgering,anticipation,upstanding,unprofessional,unhealthy,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,shooters,senseless,rewarding,propane,preposterous,pigeons,pastry,overhearing,obscene,negotiable,loner,jogging,itchy,insinuating,insides,hospitality,hormone,hearst,forthcoming,fists,fifties,etiquette,endings,destroys,despises,deprived,cuddy,crust,cloak,circumstance,chewed,casserole,bidder,bearer,artoo,applaud,appalling,vowed,virgins,vigilante,undone,throttle,testosterone,tailor,symptom,swoop,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,refund,reclaim,raoul,puzzles,purposely,punks,prosecuted,plaid,picturing,pickin,parasites,mysteriously,multiply,mascara,jukebox,interruptions,gunfire,furnace,elbows,duplicate,drapes,deliberate,decoy,cryptic,coupla,condemn,complicate,colossal,clerks,clarity,brushed,banished,argon,alarmed,worships,versa,uncanny,technicality,sundae,stumble,stripping,shuts,schmuck,satin,saliva,robber,relentless,reconnect,recipes,rearrange,rainy,psychiatrists,policemen,plunge,plugged,patched,overload,o'malley,mindless,menus,lullaby,lotte,leavin,killin,karinsky,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,dread,degrassi,dealings,dangers,cushion,bowel,barged,abide,abandoning,wonderfully,wait'll,violate,suicidal,stayin,sorted,slamming,sketchy,shoplifting,raiser,quizmaster,prefers,needless,motherhood,momentarily,migraine,lifts,leukemia,leftover,keepin,hinks,hellhole,gowns,goodies,gallon,futures,entertained,eighties,conspiring,cheery,benign,apiece,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unidentified,trivial,transcripts,textbook,supervise,superstitious,stricken,stimulating,spielberg,slices,shelves,scratches,sabotaged,retrieval,repressed,rejecting,quickie,ponies,peeking,outraged,o'connell,moping,moaning,mausoleum,licked,kovich,klutz,interrogating,interfered,insulin,infested,incompetence,hyper,horrified,handedly,gekko,fraid,fractured,examiner,eloped,disoriented,dashing,crashdown,courier,cockroach,chipped,brushing,bombed,bolts,baths,baptized,astronaut,assurance,anemia,abuela,abiding,withholding,weave,wearin,weaker,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,scram,roasted,roaming,riviera,respectfully,repulsive,psychiatry,provoked,penitentiary,painkillers,ninotchka,mitzvah,milligrams,midge,marshmallows,looky,lapse,kubelik,intellect,improvise,implant,goa'ulds,giddy,geniuses,fruitcake,footing,fightin,drinkin,doork,detour,cuddle,crashes,combo,colonnade,cheats,cetera,bailiff,auditioning,assed,amused,alienate,aiding,aching,unwanted,topless,tongues,tiniest,superiors,soften,sheldrake,rawley,raisins,presses,plaster,nessa,narrowed,minions,merciful,lawsuits,intimidating,infirmary,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foolproof,folder,flattery,fingertips,exterminator,explodes,eccentric,dodging,disguised,crave,constructive,concealed,compartment,chute,chinpokomon,bodily,astronauts,alimony,accustomed,abdominal,wrinkle,wallow,valium,untrue,uncover,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,talker,succubus,smarts,sliding,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ratted,rationally,provenance,phonse,perky,pedal,overdose,nasal,nanites,mushy,movers,missus,midterm,merits,melodramatic,manure,knitting,invading,interpol,incapacitated,hotline,hauling,gunpoint,grail,ganza,framing,flannel,faded,eavesdrop,desserts,calories,breathtaking,bleak,blacked,batter,aggravated,yanked,wigand,whoah,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stared,slapping,sincerity,siding,shenanigans,shacking,sappy,samaritan,poorer,politely,paste,oysters,overruled,nightcap,mosquito,millimeter,merrier,manhood,lucked,kilos,ignition,hauled,harmed,goodwill,freshmen,fenmore,fasten,farce,exploding,erratic,drunks,ditching,d'artagnan,cramped,contacting,closets,clientele,chimp,bargained,arranging,anesthesia,amuse,altering,afternoons,accountable,abetting,wolek,waved,uneasy,toddy,tattooed,spauldings,sliced,sirens,schibetta,scatter,rinse,remedy,redemption,pleasures,optimism,oblige,mmmmm,masked,malicious,mailing,kosher,kiddies,judas,isolate,insecurity,incidentally,heals,headlights,growl,grilling,glazed,flunk,floats,fiery,fairness,exercising,excellency,disclosure,cupboard,counterfeit,condescending,conclusive,clicked,cleans,cholesterol,cashed,broccoli,brats,blueprints,blindfold,billing,attach,appalled,alrighty,wynant,unsolved,unreliable,toots,tighten,sweatshirt,steinbrenner,steamy,spouse,sonogram,slots,sleepless,shines,retaliate,rephrase,redeem,rambling,quilt,quarrel,prying,proverbial,priced,prescribe,prepped,pranks,possessive,plaintiff,pediatrics,overlooked,outcast,nightgown,mumbo,mediocre,mademoiselle,lunchtime,lifesaver,leaned,lambs,interns,hounding,hellmouth,hahaha,goner,ghoul,gardening,frenzy,foyer,extras,exaggerate,everlasting,enlightened,dialed,devote,deceitful,d'oeuvres,cosmetic,contaminated,conspired,conning,cavern,carving,butting,boiled,blurry,babysit,ascension,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,vacations,upfront,unresolved,tampering,stockholders,snaps,sleepwalking,shrunk,sermon,seduction,scams,revolve,phenomenal,patrolling,paranormal,ounces,omigod,nightfall,lashing,innocents,infierno,incision,humming,haunts,gloss,gloating,frannie,fetal,feeny,entrapment,discomfort,detonator,dependable,concede,complication,commotion,commence,chulak,caucasian,casually,brainer,bolie,ballpark,anwar,analyzing,accommodations,youse,wring,wallowing,transgenics,thrive,tedious,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,shattering,shabby,seams,scrawny,revoked,residue,reeks,recite,ranting,quoting,predicament,plugs,pinpoint,petrified,pathological,passports,oughtta,nighter,navigate,kippie,intrigue,intentional,insufferable,hunky,how've,horrifying,hearty,hamptons,grazie,funerals,forks,fetched,excruciating,enjoyable,endanger,dumber,drying,diabolical,crossword,corry,comprehend,clipped,classmates,candlelight,brutally,brutality,boarded,bathrobe,authorize,assemble,aerobics,wholesome,whiff,vermin,trophies,trait,tragically,toying,testy,tasteful,stocked,spinach,sipping,sidetracked,scrubbing,scraping,sanctity,robberies,ridin,retribution,refrain,realities,radiant,protesting,projector,plutonium,payin,parting,o'reilly,nooooo,motherfucking,measly,manic,lalita,juggling,jerking,intro,inevitably,hypnosis,huddle,horrendous,hobbies,heartfelt,harlin,hairdresser,gonorrhea,fussing,furtwangler,fleeting,flawless,flashed,fetus,eulogy,distinctly,disrespectful,denies,crossbow,cregg,crabs,cowardly,contraction,contingency,confirming,condone,coffins,cleansing,cheesecake,certainty,cages,c'est,briefed,bravest,bosom,boils,binoculars,bachelorette,appetizer,ambushed,alerted,woozy,withhold,vulgar,utmost,unleashed,unholy,unhappiness,unconditional,typewriter,typed,twists,supermodel,subpoenaed,stringing,skeptical,schoolgirl,romantically,rocked,revoir,reopen,puncture,preach,polished,planetarium,penicillin,peacefully,nurturing,more'n,mmhmm,midgets,marklar,lodged,lifeline,jellyfish,infiltrate,hutch,horseback,heist,gents,frickin,freezes,forfeit,flakes,flair,fathered,eternally,epiphany,disgruntled,discouraged,delinquent,decipher,danvers,cubes,credible,coping,chills,cherished,catastrophe,bombshell,birthright,billionaire,ample,affections,admiration,abbotts,whatnot,watering,vinegar,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,timeless,thump,thermometer,theoretically,tapping,tagged,swung,stares,spiked,solves,smuggle,scarier,saucer,quitter,prudent,powdered,poked,pointers,peril,penetrate,penance,opium,nudge,nostrils,neurological,mockery,mobster,medically,loudly,insights,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,gloom,freshly,francs,flunked,flawed,emptiness,drugging,dozer,derevko,deprive,deodorant,cryin,crocodile,coloring,colder,cognac,clocked,clippings,charades,chanting,certifiable,caterers,brute,brochures,botched,blinders,bitchin,banter,woken,ulcer,tread,thankfully,swine,swimsuit,swans,stressing,steaming,stamped,stabilize,squirm,snooze,shuffle,shredded,seafood,scratchy,savor,sadistic,rhetorical,revlon,realist,prosecuting,prophecies,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,muster,meningitis,matron,lockers,letterman,legged,indictment,hypnotized,housekeeping,hopelessly,hallucinations,grader,goldilocks,girly,flask,envelopes,downside,doves,dissolve,discourage,disapprove,diabetic,deliveries,decorator,crossfire,criminally,containment,comrades,complimentary,chatter,catchy,cashier,cartel,caribou,cardiologist,brawl,booted,barbershop,aryan,angst,administer,zellie,wreak,whistles,vandalism,vamps,uterus,upstate,unstoppable,understudy,tristin,transcript,tranquilizer,toxins,tonsils,stempel,spotting,spectator,spatula,softer,snotty,slinging,showered,sexiest,sensual,sadder,rimbaud,restrain,resilient,remission,reinstate,rehash,recollection,rabies,popsicle,plausible,pediatric,patronizing,ostrich,ortolani,oooooh,omelette,mistrial,marseilles,loophole,laughin,kevvy,irritated,infidelity,hypothermia,horrific,groupie,grinding,graceful,goodspeed,gestures,frantic,extradition,echelon,disks,dawnie,dared,damsel,curled,collateral,collage,chant,calculating,bumping,bribes,boardwalk,blinds,blindly,bleeds,bickering,beasts,backside,avenge,apprehended,anguish,abusing,youthful,yells,yanking,whomever,when'd,vomiting,vengeful,unpacking,unfamiliar,undying,tumble,trolls,treacherous,tipping,tantrum,tanked,summons,straps,stomped,stinkin,stings,staked,squirrels,sprinkles,speculate,sorting,skinned,sicko,sicker,shootin,shatter,seeya,schnapps,s'posed,ronee,respectful,regroup,regretting,reeling,reckoned,ramifications,puddy,projections,preschool,plissken,platonic,permalash,outdone,outburst,mutants,mugging,misfortune,miserably,miraculously,medications,margaritas,manpower,lovemaking,logically,leeches,latrine,kneel,inflict,impostor,hypocrisy,hippies,heterosexual,heightened,hecuba,healer,gunned,grooming,groin,gooey,gloomy,frying,friendships,fredo,firepower,fathom,exhaustion,evils,endeavor,eggnog,dreaded,d'arcy,crotch,coughing,coronary,cookin,consummate,congrats,companionship,caved,caspar,bulletproof,brilliance,breakin,brash,blasting,aloud,airtight,advising,advertise,adultery,aches,wronged,upbeat,trillion,thingies,tending,tarts,surreal,specs,specialize,spade,shrew,shaping,selves,schoolwork,roomie,recuperating,rabid,quart,provocative,proudly,pretenses,prenatal,pharmaceuticals,pacing,overworked,originals,nicotine,murderous,mileage,mayonnaise,massages,losin,interrogated,injunction,impartial,homing,heartbreaker,hacks,glands,giver,fraizh,flips,flaunt,englishman,electrocuted,dusting,ducking,drifted,donating,cylon,crutches,crates,cowards,comfortably,chummy,chitchat,childbirth,businesswoman,brood,blatant,bethy,barring,bagged,awakened,asbestos,airplanes,worshipped,winnings,why're,visualize,unprotected,unleash,trays,thicker,therapists,takeoff,streisand,storeroom,stethoscope,stacked,spiteful,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,ruptured,roaring,receptionist,recap,raditch,radiator,pushover,plastered,pharmacist,perverse,perpetrator,ornament,ointment,nineties,napping,nannies,mousse,moors,momentary,misunderstandings,manipulator,malfunction,laced,kivar,kickin,infuriating,impressionable,holdup,hires,hesitated,headphones,hammering,groundwork,grotesque,graces,gauze,gangsters,frivolous,freeing,fours,forwarding,ferrars,faulty,fantasizing,extracurricular,empathy,divorces,detonate,depraved,demeaning,deadlines,dalai,cursing,cufflink,crows,coupons,comforted,claustrophobic,casinos,camped,busboy,bluth,bennetts,baskets,attacker,aplastic,angrier,affectionate,zapped,wormhole,weaken,unrealistic,unravel,unimportant,unforgettable,twain,suspend,superbowl,stutter,stewardess,stepson,standin,spandex,souvenirs,sociopath,skeletons,shivering,sexier,selfishness,scrapbook,ritalin,ribbons,reunite,remarry,relaxation,rattling,rapist,psychosis,prepping,poses,pleasing,pisses,piling,persecuted,padded,operatives,negotiator,natty,menopause,mennihan,martimmys,loyalties,laynie,lando,justifies,intimately,inexperienced,impotent,immortality,horrors,hooky,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,ferragamo,feeble,eyesight,explosions,experimenting,enchanting,doubtful,dizziness,dismantle,detectors,deserving,defective,dangling,dancin,crumble,creamed,cramping,conceal,clockwork,chrissakes,chrissake,chopping,cabinets,brooding,bonfire,blurt,bloated,blackmailer,beforehand,bathed,bathe,barcode,banish,badges,babble,await,attentive,aroused,antibodies,animosity,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vigilant,upbringing,unselfish,uncles,trendy,trajectory,striped,stamina,stalled,staking,stacks,spoils,snuff,snooty,snide,shrinking,senora,secretaries,scoundrel,saline,salads,rundown,riddles,relapse,recommending,raspberry,plight,pecan,pantry,overslept,ornaments,niner,negligent,negligence,nailing,mucho,mouthed,monstrous,malpractice,lowly,loitering,logged,lingering,lettin,lattes,kamal,juror,jillefsky,jacked,irritate,intrusion,insatiable,infect,impromptu,icing,hmmmm,hefty,gasket,frightens,flapping,firstborn,faucet,estranged,envious,dopey,doesn,disposition,disposable,disappointments,dipped,dignified,deceit,dealership,deadbeat,curses,coven,counselors,concierge,clutches,casbah,callous,cahoots,brotherly,britches,brides,bethie,beige,autographed,attendants,attaboy,astonishing,appreciative,antibiotic,aneurysm,afterlife,affidavit,zoning,whats,whaddaya,vasectomy,unsuspecting,toula,topanga,tonio,toasted,tiring,terrorized,tenderness,tailing,sweats,suffocated,sucky,subconsciously,starvin,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,seventies,sedate,scented,sandals,rollers,retraction,resigning,recuperate,receptive,racketeering,queasy,provoking,priors,prerogative,premed,pinched,pendant,outsiders,orbing,opportunist,olanov,neurologist,nanobot,mommies,molested,misread,mannered,laundromat,intercom,inspect,insanely,infatuation,indulgent,indiscretion,inconsiderate,hurrah,howling,herpes,hasta,harassed,hanukkah,groveling,groosalug,gander,galactica,futile,fridays,flier,fixes,exploiting,exorcism,evasive,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,disobeyed,disneyland,disable,dehydrated,contemplating,coconuts,cockroaches,clogged,chilling,chaperon,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bluepoint,appetizers,appendix,antics,anointed,analogy,almonds,yammering,winch,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,travesty,transfusion,trainee,towelie,tiresome,straightening,staggering,sonar,socializing,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,ridiculously,ridicule,rents,reconciled,radios,publicist,pubes,prune,prude,precrime,postponing,pluck,perish,peppermint,peeled,overdo,nutshell,nostalgic,mulan,mouthing,mistook,meddle,maybourne,martimmy,lobotomy,livelihood,lippman,likeness,kindest,kaffee,jocks,jerked,jeopardizing,jazzed,insured,inquisition,inhale,ingenious,holier,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,goofing,godson,glare,finesse,figuratively,ferrie,endangerment,dreading,dozed,dorky,dmitri,divert,discredit,dialing,cufflinks,crutch,craps,corrupted,cocoon,cleavage,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,ballistics,astute,arroway,adventurous,adoptive,addicts,addictive,yadda,whitelighters,wematanye,weeds,wedlock,wallets,vulnerability,vroom,vents,upped,unsettling,unharmed,trippin,trifle,tracing,tormenting,thats,syphilis,subtext,stickin,spices,sores,smacked,slumming,sinks,signore,shitting,shameful,shacked,septic,seedy,righteousness,relish,rectify,ravishing,quickest,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,outnumbered,oregano,offender,nukes,nosed,nighty,nifty,mounties,motivate,moons,misinterpreted,mercenary,mentality,marsellus,lupus,lumbar,lovesick,lobsters,leaky,laundering,latch,jafar,instinctively,inspires,indoors,incarcerated,hundredth,handkerchief,gynecologist,guittierez,groundhog,grinning,goodbyes,geese,fullest,eyelashes,eyelash,enquirer,endlessly,elusive,disarm,detest,deluding,dangle,cotillion,corsage,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,cheeseburgers,chardonnay,celery,campfire,calming,burritos,brundle,broflovski,brighten,borderline,blinked,bling,beauties,bauers,battered,articulate,alienated,ahhhhh,agamemnon,accountants,y'see,wrongful,wrapper,workaholic,winnebago,whispered,warts,vacate,unworthy,unanswered,tonane,tolerated,throwin,throbbing,thrills,thorns,thereof,there've,tarot,sunscreen,stretcher,stereotype,soggy,sobbing,sizable,sightings,shucks,shrapnel,sever,senile,seaboard,scorned,saver,rebellious,rained,putty,prenup,pores,pinching,pertinent,peeping,paints,ovulating,opposites,occult,nutcracker,nutcase,newsstand,newfound,mocked,midterms,marshmallow,marbury,maclaren,leans,krudski,knowingly,keycard,junkies,juilliard,jolinar,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,incubator,illustrious,hunsecker,houseguest,homosexuals,homeroom,hernia,harming,handgun,hallways,hallucination,gunshots,groupies,groggy,goiter,gingerbread,giggling,frigging,fledged,fedex,fairies,exchanging,exaggeration,esteemed,enlist,drags,dispense,disloyal,disconnect,desks,dentists,delacroix,degenerate,daydreaming,cushions,cuddly,corroborate,complexion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,benefactor,ballgame,baiting,backstabbing,artifact,airspace,adversary,actin,accuses,accelerant,abundantly,abstinence,zissou,zandt,yapping,witchy,willows,whadaya,vilandra,veiled,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,toasting,tingling,tents,tempered,sulking,stunk,sponges,spills,softly,snipers,scourge,rooftop,riana,revolting,revisit,refreshments,redecorating,recapture,raysy,pretense,prejudiced,precogs,pouting,poofs,pimple,piles,pediatrician,padre,packets,paces,orvelle,oblivious,objectivity,nighttime,nervosa,mexicans,meurice,melts,matchmaker,maeby,lugosi,lipnik,leprechaun,kissy,kafka,introductions,intestines,inspirational,insightful,inseparable,injections,inadvertently,hussy,huckabees,hittin,hemorrhaging,headin,haystack,hallowed,grudges,granilith,grandkids,grading,gracefully,godsend,gobbles,fragrance,fliers,finchley,farts,eyewitnesses,expendable,existential,dorms,delaying,degrading,deduction,darlings,danes,cylons,counsellor,contraire,consciously,conjuring,congratulating,cokes,buffay,brooch,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,aptitude,amish,amazes,abomination,worldly,whispers,whadda,wayward,wailing,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,trite,transvestite,toupee,timid,timers,terrorizing,swana,stumped,strolling,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,spits,spins,soaps,sentiments,scramble,scone,rooftops,retract,reflexes,rawdon,ragged,quirky,quantico,psychologically,prodigal,pounce,potty,pleasantries,pints,petting,perceive,onstage,notwithstanding,nibble,newmans,neutralize,mutilated,millionaires,mayflower,masquerade,mangy,macreedy,lunatics,lovable,locating,limping,lasagna,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,incantation,hysteria,hypnotize,humping,happenin,griet,grasping,glorified,ganging,g'night,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fainting,eyebrow,exonerated,ether,electrician,egotistical,earthly,dusted,dignify,detonation,debrief,dazzling,dan'l,damnedest,daisies,crushes,crucify,contraband,confronting,collapsing,cocked,clicks,cliche,circled,chandelier,carburetor,callers,broads,breathes,bloodshed,blindsided,blabbing,bialystock,bashing,ballerina,aviva,arteries,anomaly,airstrip,agonizing,adjourn,aaaaa,yearning,wrecker,witnessing,whence,warhead,unsure,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,toddler,tiptoe,threesome,thirties,thermostat,swipe,surgically,subtlety,stung,stumbling,stubs,stride,strangling,sprayed,socket,smuggled,showering,shhhhh,sabotaging,rumson,rounding,risotto,repairman,rehearsed,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,prowl,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,peeked,peddle,panting,overweight,overrun,outing,outgrown,obsess,nursed,nodding,negativity,negatives,musketeers,mugger,motorcade,merrily,matured,masquerading,marvellous,maniacs,lovey,louse,linger,lilies,lawful,kudos,knuckle,juices,judgments,itches,intolerable,intermission,inept,incarceration,implication,imaginative,huckleberry,holster,heartburn,gunna,groomed,graciously,fulfillment,fugitives,forsaking,forgives,foreseeable,flavors,flares,fixation,fickle,fantasize,famished,fades,expiration,exclamation,erasing,eiffel,eerie,earful,duped,dulles,dissing,dissect,dispenser,dilated,detergent,desdemona,debriefing,damper,curing,crispina,crackpot,courting,cordial,conflicted,comprehension,commie,cleanup,chiropractor,charmer,chariot,cauldron,catatonic,bullied,buckets,brilliantly,breathed,booths,boardroom,blowout,blindness,blazing,biologically,bibles,biased,beseech,barbaric,balraj,audacity,anticipating,alcoholics,airhead,agendas,admittedly,absolution,youre,yippee,wittlesey,withheld,willful,whammy,weakest,washes,virtuous,videotapes,vials,unplugged,unpacked,unfairly,turbulence,tumbling,tricking,tremendously,traitors,torches,tinga,thyroid,teased,tawdry,taker,sympathies,swiped,sundaes,suave,strut,stepdad,spewing,spasm,socialize,slither,simulator,shutters,shrewd,shocks,semantics,schizophrenic,scans,savages,rya'c,runny,ruckus,royally,roadblocks,rewriting,revoke,repent,redecorate,recovers,recourse,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,problemo,praises,pouch,postcards,pooped,poised,piled,phoney,phobia,patching,parenthood,pardner,oozing,ohhhhh,numbing,nostril,nosey,neatly,nappa,nameless,mortuary,moronic,modesty,midwife,mcclane,matuka,maitre,lumps,lucid,loosened,loins,lawnmower,lamotta,kroehner,jinxy,jessep,jamming,jailhouse,jacking,intruders,inhuman,infatuated,indigestion,implore,implanted,hormonal,hoboken,hillbilly,heartwarming,headway,hatched,hartmans,harping,grapevine,gnome,forties,flyin,flirted,fingernail,exhilarating,enjoyment,embark,dumper,dubious,drell,docking,disillusioned,dishonor,disbarred,dicey,custodial,counterproductive,corned,cords,contemplate,concur,conceivable,cobblepot,chickened,checkout,carpe,cap'n,campers,buyin,bullies,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,beeped,bearable,autographs,alarming,wretch,wimps,widower,whirlwind,whirl,warms,vandelay,unveiling,undoing,unbecoming,turnaround,touche,togetherness,tickles,ticker,teensy,taunt,sweethearts,stitched,standpoint,staffers,spotless,soothe,smothered,sickening,shouted,shepherds,shawl,seriousness,schooled,schoolboy,s'mores,roped,reminders,raggedy,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,ohmigod,nosing,nicked,neanderthal,mosquitoes,mortified,milky,messin,mecha,markinson,marivellas,mannequin,manderley,madder,macready,lookie,locusts,lifetimes,lanna,lakhi,kholi,impersonate,hyperdrive,horrid,hopin,hogging,hearsay,harpy,harboring,hairdo,hafta,grasshopper,gobble,gatehouse,foosball,floozy,fished,firewood,finalize,felons,euphemism,entourage,elitist,elegance,drokken,drier,dredge,dossier,diseased,diarrhea,diagnose,despised,defuse,d'amour,contesting,conserve,conscientious,conjured,collars,clogs,chenille,chatty,chamomile,casing,calculator,brittle,breached,blurted,birthing,bikinis,astounding,assaulting,aroma,appliance,antsy,amnio,alienating,aliases,adolescence,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,unwelcome,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,ticks,tangible,tagging,swallowing,superheroes,studs,strep,stowed,stomping,steffy,sprain,spouting,sponsoring,sneezing,smeared,slink,shakin,sewed,seatbelt,scariest,scammed,sanctimonious,roasting,rightly,retinal,rethinking,resented,reruns,remover,racks,purest,progressing,presidente,preeclampsia,postponement,portals,poppa,pliers,pinning,pelvic,pampered,padding,overjoyed,ooooo,one'll,octavius,nonono,nicknames,neurosurgeon,narrows,misled,mislead,mishap,milltown,milking,meticulous,mediocrity,meatballs,machete,lurch,layin,knockin,khruschev,jurors,jumpin,jugular,jeweler,intellectually,inquiries,indulging,indestructible,indebted,imitate,ignores,hyperventilating,hyenas,hurrying,hermano,hellish,heheh,harshly,handout,grunemann,glances,giveaway,getup,gerome,furthest,frosting,frail,forwarded,forceful,flavored,flammable,flaky,fingered,fatherly,ethic,embezzlement,duffel,dotted,distressed,disobey,disappearances,dinky,diminish,diaphragm,deuces,creme,courteous,comforts,coerced,clots,clarification,chunks,chickie,chases,chaperoning,cartons,caper,calves,caged,bustin,bulging,bringin,boomhauer,blowin,blindfolded,biscotti,ballplayer,bagging,auster,assurances,aschen,arraigned,anonymity,alters,albatross,agreeable,adoring,abduct,wolfi,weirded,watchers,washroom,warheads,vincennes,urgency,understandably,uncomplicated,uhhhh,twitching,treadmill,thermos,tenorman,tangle,talkative,swarm,surrendering,summoning,strive,stilts,stickers,squashed,spraying,sparring,soaring,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,sharper,shamed,sadist,rydell,rusik,roulette,resumes,respiration,recount,reacts,purgatory,princesses,presentable,ponytail,plotted,pinot,pigtails,phillippe,peddling,paroled,orbed,offends,o'hara,moonlit,minefield,metaphors,malignant,mainframe,magicks,maggots,maclaine,loathing,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jakov,invoke,infantile,inadmissible,horoscope,hinting,hideaway,hesitating,heddy,heckles,hairline,gripe,gratifying,governess,goebbels,freddo,foresee,fascination,exemplary,executioner,etcetera,escorts,endearing,eaters,earplugs,draped,disrupting,disagrees,dimes,devastate,detain,depositions,delicacy,darklighter,cynicism,cyanide,cutters,cronus,continuance,conquering,confiding,compartments,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,buttle,burdened,bruenell,broomstick,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,bellboy,beaucoup,barkeep,awaken,astray,assailant,appease,aphrodisiac,alleys,yesss,wrecks,woodpecker,wondrous,wimpy,willpower,wheeling,weepy,waxing,waive,videotaped,veritable,untouched,unlisted,unfounded,unforeseen,twinge,triggers,traipsing,toxin,tombstone,thumping,therein,testicles,telephones,tarmac,talby,tackled,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,snipe,snagged,skimming,siddown,showroom,shovels,shotguns,shoelaces,shitload,shellfish,sharpest,shadowy,seizing,scrounge,scapegoat,sayonara,saddled,rummaging,roomful,renounce,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,practising,pours,poolhouse,poltergeist,pocketbook,plainly,picnics,pesto,pawing,passageway,partied,oneself,numero,nostalgia,nitwit,neuro,mixer,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,ingested,indignation,inconceivable,imposition,impersonal,imbecile,huddled,housewarming,horizons,homicides,hiccups,hearse,hardened,gushing,gushie,greased,goddamit,freelancer,forging,fondue,flustered,flung,flinch,flicker,fixin,festivus,fertilizer,farted,faggots,exonerate,evict,enormously,encrypted,emdash,embracing,duress,dupres,dowser,doormat,disfigured,disciplined,dibbs,depository,deathbed,dazzled,cuttin,cures,crowding,crepe,crammed,copycat,contradict,confidant,condemning,conceited,commute,comatose,clapping,circumference,chuppah,chore,choksondik,chestnuts,briault,bottomless,bonnet,blokes,berluti,beret,beggars,bankroll,bania,athos,arsenic,apperantly,ahhhhhh,afloat,accents,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,wisest,wipes,wield,whyn't,weirdos,wednesdays,vicksburg,upchuck,untraceable,unsupervised,unpleasantness,unhook,unconscionable,uncalled,trappings,tragedies,townie,thurgood,things'll,thine,tetanus,terrorize,temptations,tanning,tampons,swarming,straitjacket,steroid,startling,starry,squander,speculating,sollozzo,sneaked,slugs,skedaddle,sinker,silky,shortcomings,sellin,seasoned,scrubbed,screwup,scrapes,scarves,sandbox,salesmen,rooming,romances,revere,reproach,reprieve,rearranging,ravine,rationalize,raffle,punchy,psychobabble,provocation,profoundly,prescriptions,preferable,polishing,poached,pledges,pirelli,perverts,oversized,overdressed,outdid,nuptials,nefarious,mouthpiece,motels,mopping,mongrel,missin,metaphorically,mertin,memos,melodrama,melancholy,measles,meaner,mantel,maneuvering,mailroom,luring,listenin,lifeless,licks,levon,legwork,kneecaps,kippur,kiddie,kaput,justifiable,insistent,insidious,innuendo,innit,indecent,imaginable,horseshit,hemorrhoid,hella,healthiest,haywire,hamsters,hairbrush,grouchy,grisly,gratuitous,glutton,glimmer,gibberish,ghastly,gentler,generously,geeky,fuhrer,fronting,foolin,faxes,faceless,extinguisher,expel,etched,endangering,ducked,dodgeball,dives,dislocated,discrepancy,devour,derail,dementia,daycare,cynic,crumbling,cowardice,covet,cornwallis,corkscrew,cookbook,commandments,coincidental,cobwebs,clouded,clogging,clicking,clasp,chopsticks,chefs,chaps,cashing,carat,calmer,brazen,brainwashing,bradys,bowing,boned,bloodsucking,bleachers,bleached,bedpan,bearded,barrenger,bachelors,awwww,assures,assigning,asparagus,apprehend,anecdote,amoral,aggravation,afoot,acquaintances,accommodating,yakking,worshipping,wladek,willya,willies,wigged,whoosh,whisked,watered,warpath,volts,violates,valuables,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,tubby,trolling,toxicology,tormented,toothache,tingly,timmiihh,thursdays,thoreau,terrifies,temperamental,telegrams,talkie,takers,symbiote,swirl,suffocate,stupider,strapping,steckler,springing,someway,sleepyhead,sledgehammer,slant,slams,showgirl,shoveling,shmoopy,sharkbait,shan't,scrambling,schematics,sandeman,sabbatical,rummy,reykjavik,revert,responsive,rescheduled,requisition,relinquish,rejoice,reckoning,recant,rebadow,reassurance,rattlesnake,ramble,primed,pricey,prance,pothole,pocus,persist,perpetrated,pekar,peeling,pastime,parmesan,pacemaker,overdrive,ominous,observant,nothings,noooooo,nonexistent,nodded,nieces,neglecting,nauseating,mutated,musket,mumbling,mowing,mouthful,mooseport,monologue,mistrust,meetin,masseuse,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,liberating,lhasa,leniency,leering,laughable,lashes,lasagne,laceration,korben,katan,kalen,jittery,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,impolite,humbly,heroics,heigh,guillotine,guesthouse,grounding,grips,gossiping,goatee,gnomes,gellar,frutt,frobisher,freudian,foolishness,flagged,femme,fatso,fatherhood,fantasized,fairest,faintest,eyelids,extravagant,extraterrestrial,extraordinarily,escalator,elevate,drivel,dissed,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,convene,congresswoman,concocted,compromises,comprende,comma,coleslaw,clothed,clinically,chickenshit,checkin,cesspool,caskets,calzone,brothel,boomerang,bodega,blasphemy,bitsy,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,arrhythmia,arousing,arbitrator,antagonize,angling,anesthetic,altercation,aggressor,adversity,acathla,aaahhh,wreaking,workup,wonderin,wither,wielding,what'm,what'cha,waxed,vibrating,veterinarian,venting,vasey,valor,validate,upholstery,untied,unscathed,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,treatable,treasured,tranquility,townspeople,torso,tomei,tipsy,tinsel,tidings,thirtieth,tantrums,tamper,talky,swayed,swapping,suitor,stylist,stirs,standoff,sprinklers,sparkly,snobby,snatcher,smoother,sleepin,shrug,shoebox,sheesh,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,roadblock,riverbank,ridiculed,resentful,repellent,recreate,reconvene,rebuttal,realmedia,quizzes,questionnaire,punctured,pucker,prolong,professionalism,pleasantly,pigsty,penniless,paychecks,patiently,parading,overactive,ovaries,orderlies,oracles,oiled,offending,nudie,neonatal,neighborly,moops,moonlighting,mobilize,mmmmmm,milkshake,menial,meats,mayan,maxed,mangled,magua,lunacy,luckier,liters,lansbury,kooky,knowin,jeopardized,inkling,inhalation,inflated,infecting,incense,inbound,impractical,impenetrable,idealistic,i'mma,hypocrites,hurtin,humbled,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,genitals,gazillion,gammy,gamesphere,fugue,footwear,folly,flashlights,fives,filet,extenuating,estrogen,entails,embezzled,eloquent,egomaniac,ducts,drowsy,drones,doree,donovon,disguises,diggin,deserting,depriving,defying,deductible,decorum,decked,daylights,daybreak,dashboard,damnation,cuddling,crunching,crickets,crazies,councilman,coughed,conundrum,complimented,cohaagen,clutching,clued,clader,cheques,checkpoint,chats,channeling,ceases,carasco,capisce,cantaloupe,cancelling,campsite,burglars,breakfasts,bra'tac,blueprint,bleedin,blabbed,beneficiary,basing,avert,atone,arlyn,approves,apothecary,antiseptic,aleikuum,advisement,zadir,wobbly,withnail,whattaya,whacking,wedged,wanders,vaginal,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,treading,tranquilizers,toontown,thunk,suture,suppressing,strays,stonewall,stogie,stepdaughter,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sombrero,solemnly,softened,snobs,snippy,snare,smoothing,slump,slimeball,slaving,silently,shiller,shakedown,sensations,scrying,scrumptious,screamin,saucy,santoses,roundup,roughed,rosary,robechaux,retrospect,rescind,reprehensible,repel,remodeling,reconsidering,reciprocate,railroaded,psychics,promos,prob'ly,pristine,printout,priestess,prenuptial,precedes,pouty,phoning,peppy,pariah,parched,panes,overloaded,overdoing,nymphs,nother,notebooks,nearing,nearer,monstrosity,milady,mieke,mephesto,medicated,marshals,manilow,mammogram,m'lady,lotsa,loopy,lesion,lenient,learner,laszlo,kross,kinks,jinxed,involuntary,insubordination,ingrate,inflatable,incarnate,inane,hypoglycemia,huntin,humongous,hoodlum,honking,hemorrhage,helpin,hathor,hatching,grotto,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,flutter,flagpole,fetching,fatter,faithfully,exert,evasion,escalate,enticing,enchantress,elopement,drills,downtime,downloading,dorks,doorways,divulge,dissociative,disgraceful,disconcerting,deteriorate,destinies,depressive,dented,denim,decruz,decidedly,deactivate,daydreams,curls,culprit,cruelest,crippling,cranberries,corvis,copped,commend,coastguard,cloning,cirque,churning,chock,chivalry,catalogues,cartwheels,carols,canister,buttered,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,bores,badmouthing,autopilot,ascertain,aorta,ampata,allenby,accosted,absolve,aborted,aaagh,aaaaaah,yonder,yellin,wyndham,wrongdoing,woodsboro,wigging,wasteland,warranty,waltzed,walnuts,vividly,veggie,unnecessarily,unloaded,unicorns,understated,unclean,umbrellas,twirling,turpentine,tupperware,triage,treehouse,tidbit,tickled,threes,thousandth,thingie,terminally,teething,tassel,talkies,swoon,switchboard,swerved,suspiciously,subsequentlyne,subscribe,strudel,stroking,strictest,stensland,starin,stannart,squirming,squealing,sorely,softie,snookums,sniveling,smidge,sloth,skulking,simian,sightseeing,siamese,shudder,shoppers,sharpen,shannen,semtex,secondhand,seance,scowl,scorn,safekeeping,russe,rummage,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,rerun,reputations,rekall,refreshment,reenactment,recluse,ravioli,raves,raking,purses,punishable,punchline,puked,prosky,previews,poughkeepsie,poppins,polluted,placenta,pissy,petulant,perseverance,pears,pawns,pastries,partake,panky,palate,overzealous,orchids,obstructing,objectively,obituaries,obedient,nothingness,musty,motherly,mooning,momentous,mistaking,minutemen,milos,microchip,meself,merciless,menelaus,mazel,masturbate,mahogany,lysistrata,lillienfield,likable,liberate,leveled,letdown,larynx,lardass,lainey,lagged,klorel,kidnappings,keyed,karmic,jeebies,irate,invulnerable,intrusive,insemination,inquire,injecting,informative,informants,impure,impasse,imbalance,illiterate,hurled,hunts,hematoma,headstrong,handmade,handiwork,growling,gorky,getcha,gesundheit,gazing,galley,foolishly,fondness,floris,ferocious,feathered,fateful,fancies,fakes,faker,expire,ever'body,essentials,eskimos,enlightening,enchilada,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,doable,dislikes,dishonesty,disengage,discouraging,derailed,deformed,deflect,defer,deactivated,crips,constellations,congressmen,complimenting,clubbing,clawing,chromium,chimes,chews,cheatin,chaste,cellblock,caving,catered,catacombs,calamari,bucking,brulee,brits,brisk,breezes,bounces,boudoir,binks,better'n,bellied,behrani,behaves,bedding,balmy,badmouth,backers,avenging,aromatherapy,armpit,armoire,anythin,anonymously,anniversaries,aftershave,affliction,adrift,admissible,adieu,acquittal,yucky,yearn,whitter,whirlpool,wendigo,watchdog,wannabes,wakey,vomited,voicemail,valedictorian,uttered,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,turnoff,trampled,tramell,toads,timbuktu,throwback,thimble,tasteless,tarantula,tamale,takeovers,swish,supposing,streaking,stargher,stanzi,stabs,squeamish,splattered,spiritually,spilt,speciality,smacking,skywire,skips,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,shamelessly,serafine,sentimentality,seasick,schemer,scandalous,sainted,riedenschneider,rhyming,revel,retractor,retards,resurrect,remiss,reminiscing,remanded,reiben,regains,refuel,refresher,redoing,redheaded,reassured,rearranged,rapport,qumar,prowling,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,phlegm,perfected,pancreas,paley,ovary,outbursts,oppressed,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,millionth,migraines,midler,manicurist,mandelbaum,manageable,malfunctioned,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,komako,klute,kennel,justifying,irreversible,inventing,intergalactic,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,hyena,humperdinck,hubba,housework,hoffa,hither,hissy,hippy,hijacked,heparin,hellooo,hearth,hassles,hairstyle,hahahaha,hadda,guys'll,gutted,gulls,gritty,grievous,graft,gossamer,gooder,gambled,gadgets,fundamentals,frustrations,frolicking,frock,frilly,foreseen,footloose,fondly,flirtation,flinched,flatten,farthest,exposer,evading,escrow,empathize,embryos,embodiment,ellsberg,ebola,dulcinea,dreamin,drawbacks,doting,doose,doofy,disturbs,disorderly,disgusts,detox,denominator,demeanor,deliriously,decode,debauchery,croissant,cravings,cranked,coworkers,councilor,confuses,confiscate,confines,conduit,compress,combed,clouding,clamps,cinch,chinnery,celebratory,catalogs,carpenters,carnal,canin,bundys,bulldozer,buggers,bueller,brainy,booming,bookstores,bloodbath,bittersweet,bellhop,beeping,beanstalk,beady,baudelaire,bartenders,bargains,averted,armadillo,appreciating,appraised,antlers,aloof,allowances,alleyway,affleck,abject,zilch,youore,xanax,wrenching,wouldn,witted,wicca,whorehouse,whooo,whips,vouchers,victimized,vicodin,untested,unsolicited,unfocused,unfettered,unfeeling,unexplainable,understaffed,underbelly,tutorial,tryst,trampoline,towering,tirade,thieving,thang,swimmin,swayzak,suspecting,superstitions,stubbornness,streamers,strattman,stonewalling,stiffs,stacking,spout,splice,sonrisa,smarmy,slows,slicing,sisterly,shrill,shined,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,salieri,rustling,roxbury,rewire,revved,retriever,reputable,remodel,reins,reincarnation,rance,rafters,rackets,quail,pumbaa,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,pleasurable,pizzeria,pimps,penmanship,penchant,pelvis,overturn,overstepped,overcoat,ovens,outsmart,outed,ooohh,oncologist,omission,offhand,odour,nyazian,notarized,nobody'll,nightie,navel,nabbed,mystique,mover,mortician,morose,moratorium,mockingbird,mobsters,mingling,methinks,messengered,merde,masochist,martouf,martians,marinara,manray,majorly,magnifying,mackerel,lurid,lugging,lonnegan,loathsome,llantano,liberace,leprosy,latinos,lanterns,lamest,laferette,kraut,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,inconvenienced,inanimate,improbable,implode,hydrant,hustling,hustled,huevos,how'm,hooey,hoods,honcho,hinge,hijack,heimlich,hamunaptra,haladki,haiku,haggle,gutsy,grunting,grueling,gribbs,greevy,grandstanding,godparents,glows,glistening,gimmick,gaping,fraiser,formalities,foreigner,folders,foggy,fitty,fiends,fe'nos,favours,eyeing,extort,expedite,escalating,epinephrine,entitles,entice,eminence,eights,earthlings,eagerly,dunville,dugout,doublemeat,doling,dispensing,dispatcher,discoloration,diners,diddly,dictates,diazepam,derogatory,delights,defies,decoder,dealio,danson,cutthroat,crumbles,croissants,crematorium,craftsmanship,could'a,cordless,cools,conked,confine,concealing,complicates,communique,cockamamie,coasters,clobbered,clipping,clipboard,clemenza,cleanser,circumcision,chanukah,certainaly,cellmate,cancels,cadmium,buzzed,bumstead,bucko,browsing,broth,braver,boggling,bobbing,blurred,birkhead,benet,belvedere,bellies,begrudge,beckworth,banky,baldness,baggy,babysitters,aversion,astonished,assorted,appetites,angina,amiss,ambulances,alibis,airway,admires,adhesive,yoyou,xxxxxx,wreaked,wracking,woooo,wooing,wised,wilshire,wedgie,waging,violets,vincey,uplifting,untrustworthy,unmitigated,uneventful,undressing,underprivileged,unburden,umbilical,tweaking,turquoise,treachery,tosses,torching,toothpick,toasts,thickens,tereza,tenacious,teldar,taint,swill,sweatin,subtly,subdural,streep,stopwatch,stockholder,stillwater,stalkers,squished,squeegee,splinters,spliced,splat,spied,spackle,sophistication,snapshots,smite,sluggish,slithered,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,settin,sentinels,selfishly,scarcely,sangria,sanctum,sahjhan,rustle,roving,rousing,rosomorf,riddled,responsibly,renoir,remoray,remedial,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramelle,quivering,pyjamas,psychos,provocations,prouder,protestors,prodded,proctologist,primordial,pricks,prickly,precedents,pentangeli,pathetically,parka,parakeet,panicky,overthruster,outsmarted,orthopedic,oncoming,offing,nutritious,nuthouse,nourishment,nibbling,newlywed,narcissist,mutilation,mundane,mummies,mumble,mowed,morvern,mortem,mopes,molasses,misplace,miscommunication,miney,midlife,menacing,memorizing,massaging,masking,magnets,luxuries,lounging,lothario,liposuction,lidocaine,libbets,levitate,leeway,launcelot,larek,lackeys,kumbaya,kryptonite,knapsack,keyhole,katarangura,juiced,jakey,ironclad,invoice,intertwined,interlude,interferes,injure,infernal,indeedy,incur,incorrigible,incantations,impediment,igloo,hysterectomy,hounded,hollering,hindsight,heebie,havesham,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,firecrackers,figger,fetuses,fates,eyeliner,extremities,extradited,expires,exceedingly,evaporate,erupt,epileptic,entrails,emporium,egregious,eggshells,easing,duwayne,droll,dreyfuss,dovey,doubly,doozy,donkeys,donde,distrust,distressing,disintegrate,discreetly,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cushy,cupcakes,cuffed,croupier,croak,crapped,coursing,coolers,contaminate,consummated,construed,condos,concoction,compulsion,commish,coercion,clemency,clairvoyant,circulate,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,burdon,bullshitting,brewed,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleep,bleeder,blackouts,bisque,billboards,beatings,bayberry,bashed,bamboozled,balding,baklava,baffled,backfires,babak,awkwardness,attest,attachments,apologizes,anyhoo,antiquated,alcante,advisable,aahhh,aaahh,zatarc,yearbooks,wuddya,wringing,womanhood,witless,winging,whatsa,wetting,waterproof,wastin,vogelman,vocation,vindicated,vigilance,vicariously,venza,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,tweaked,turnips,trinkets,toughen,toting,topside,terrors,terrify,technologically,tarnish,tagliati,szpilman,surly,supple,summation,suckin,stepmom,squeaking,splashmore,souffle,solitaire,solicitation,solarium,smokers,slugged,slobbering,skylight,skimpy,sinuses,silenced,sideburns,shrinkage,shoddy,shhhhhh,shelled,shareef,shangri,seuss,serenade,scuffle,scoff,scanners,sauerkraut,sardines,sarcophagus,salvy,rusted,russells,rowboat,rolfsky,ringside,respectability,reparations,renegotiate,reminisce,reimburse,regimen,raincoat,quibble,puzzled,purposefully,pubic,proofing,prescribing,prelim,poisons,poaching,personalized,personable,peroxide,pentonville,payphone,payoffs,paleontology,overflowing,oompa,oddest,objecting,o'hare,o'daniel,notches,nobody'd,nightstand,neutralized,nervousness,nerdy,needlessly,naquadah,nappy,nantucket,nambla,mountaineer,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minivan,milligram,milkshakes,metamorphosis,medics,mattresses,mathesar,matchbook,matata,marys,malucci,magilla,lymphoma,lowers,lordy,linens,lindenmeyer,limelight,leapt,laxative,lather,lapel,lamppost,laguardia,kindling,kegger,kawalsky,juries,jokin,jesminder,interning,innermost,injun,infallible,industrious,indulgence,incinerator,impossibility,impart,illuminate,iguanas,hypnotic,hyped,hospitable,hoses,homemaker,hirschmuller,helpers,headset,guardianship,guapo,grubby,granola,granddaddy,goren,goblet,gluttony,globes,giorno,getter,geritol,gassed,gaggle,foxhole,fouled,foretold,floorboards,flippers,flaked,fireflies,feedings,fashionably,farragut,fallback,facials,exterminate,excites,everything'll,evenin,ethically,ensue,enema,empath,eluded,eloquently,eject,edema,dumpling,droppings,dolled,distasteful,disputing,displeasure,disdain,deterrent,dehydration,defied,decomposing,dawned,dailies,custodian,crusts,crucifix,crowning,crier,crept,craze,crawls,couldn,correcting,corkmaster,copperfield,cooties,contraption,consumes,conspire,consenting,consented,conquers,congeniality,complains,communicator,commendable,collide,coladas,colada,clout,clooney,classifieds,clammy,civility,cirrhosis,chink,catskills,carvers,carpool,carelessness,cardio,carbs,capades,butabi,busmalis,burping,burdens,bunks,buncha,bulldozers,browse,brockovich,breakthroughs,bravado,boogety,blossoms,blooming,bloodsucker,blight,betterton,betrayer,belittle,beeps,bawling,barts,bartending,bankbooks,babish,atropine,assertive,armbrust,anyanka,annoyance,anemic,anago,airwaves,aimlessly,aaargh,aaand,yoghurt,writhing,workable,winking,winded,widen,whooping,whiter,whatya,wazoo,voila,virile,vests,vestibule,versed,vanishes,urkel,uproot,unwarranted,unscheduled,unparalleled,undergrad,tweedle,turtleneck,turban,trickery,transponder,toyed,townhouse,thyself,thunderstorm,thinning,thawed,tether,technicalities,tau'ri,tarnished,taffeta,tacked,systolic,swerve,sweepstakes,swabs,suspenders,superwoman,sunsets,succulent,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,spicoli,sparing,soulless,sonnets,sockets,snatching,smothering,slush,sloman,slashing,sitters,simpleton,sighs,sidra,sickens,shunned,shrunken,showbiz,shopped,shimmering,shagging,semblance,segue,sedation,scuzzlebutt,scumbags,screwin,scoundrels,scarsdale,scabs,saucers,saintly,saddened,runaways,runaround,rheya,resenting,rehashing,rehabilitated,regrettable,refreshed,redial,reconnecting,ravenous,raping,rafting,quandary,pylea,putrid,puffing,psychopathic,prunes,probate,prayin,pomegranate,plummeting,planing,plagues,pinata,pithy,perversion,personals,perched,peeps,peckish,pavarotti,pajama,packin,pacifier,overstepping,okama,obstetrician,nutso,nuance,normalcy,nonnegotiable,nomak,ninny,nines,nicey,newsflash,neutered,nether,negligee,necrosis,navigating,narcissistic,mylie,muses,momento,moisturizer,moderation,misinformed,misconception,minnifield,mikkos,methodical,mebbe,meager,maybes,matchmaking,masry,markovic,malakai,luzhin,lusting,lumberjack,loopholes,loaning,lightening,leotard,launder,lamaze,kubla,kneeling,kibosh,jumpsuit,joliet,jogger,janover,jakovasaurs,irreparable,innocently,inigo,infomercial,inexplicable,indispensable,impregnated,impossibly,imitating,hunches,hummus,houmfort,hothead,hostiles,hooves,hooligans,homos,homie,hisself,heyyy,hesitant,hangout,handsomest,handouts,hairless,gwennie,guzzling,guinevere,grungy,goading,glaring,gavel,gardino,gangrene,fruitful,friendlier,freckle,freakish,forthright,forearm,footnote,flops,fixer,firecracker,finito,figgered,fezzik,fastened,farfetched,fanciful,familiarize,faire,fahrenheit,extravaganza,exploratory,explanatory,everglades,eunuch,estas,escapade,erasers,emptying,embarassing,dweeb,dutiful,dumplings,dries,drafty,dollhouse,dismissing,disgraced,discrepancies,disbelief,disagreeing,digestion,didnt,deviled,deviated,demerol,delectable,decaying,decadent,dears,dateless,d'algout,cultivating,cryto,crumpled,crumbled,cronies,crease,craves,cozying,corduroy,congratulated,confidante,compressions,complicating,compadre,coerce,classier,chums,chumash,chivalrous,chinpoko,charred,chafing,celibacy,carted,carryin,carpeting,carotid,cannibals,candor,butterscotch,busts,busier,bullcrap,buggin,brookside,brodski,brassiere,brainwash,brainiac,botrelle,bonbon,boatload,blimey,blaring,blackness,bipartisan,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,bedpans,bassinet,basking,barzini,barnyard,barfed,backups,audited,asinine,asalaam,arouse,applejack,annoys,anchovies,ampule,alameida,aggravate,adage,accomplices,yokel,y'ever,wringer,witwer,withdrawals,windward,willfully,whorfin,whimsical,whimpering,weddin,weathered,warmest,wanton,volant,visceral,vindication,veggies,urinate,uproar,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,turnin,tuatha,tropez,trellis,toppings,tootin,toodle,tinkering,thrives,thespis,theatrics,thatherton,tempers,tavington,tartar,tampon,swelled,sutures,sustenance,sunflowers,sublet,stubbins,strutting,strewn,stowaway,stoic,sternin,stabilizing,spiraling,spinster,speedometer,speakeasy,soooo,soiled,sneakin,smithereens,smelt,smacks,slaughterhouse,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,shouts,shorted,shoelace,sheeit,shards,shackled,sequestered,selmak,seduces,seclusion,seamstress,seabeas,scoops,scooped,scavenger,satch,s'more,rudeness,romancing,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,repaid,renewing,relaxes,rekindle,regrettably,regenerate,reels,reciting,reappear,readin,ratting,rapes,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,procrastinating,proactive,priss,postmortem,pompoms,poise,pickings,perfectionist,peretti,people'll,pecking,patrolman,paralegal,paragraphs,paparazzi,pankot,pampering,overstep,overpower,outweigh,omnipotent,odious,nuwanda,nurtured,newsroom,neeson,needlepoint,necklaces,neato,muggers,muffler,mousy,mourned,mosey,mopey,mongolians,moldy,misinterpret,minibar,microfilm,mendola,mended,melissande,masturbating,masbath,manipulates,maimed,mailboxes,magnetism,m'lord,m'honey,lymph,lunge,lovelier,lefferts,leezak,ledgers,larraby,laloosh,kundun,kozinski,knockoff,kissin,kiosk,kennedys,kellman,karlo,kaleidoscope,jeffy,jaywalking,instructing,infraction,informer,infarction,impulsively,impressing,impersonated,impeach,idiocy,hyperbole,hurray,humped,huhuh,hsing,hordes,hoodlums,honky,hitchhiker,hideously,heaving,heathcliff,headgear,headboard,hazing,harem,handprint,hairspray,gutiurrez,goosebumps,gondola,glitches,gasping,frolic,freeways,frayed,fortitude,forgetful,forefathers,fonder,foiled,foaming,flossing,flailing,fitzgeralds,firehouse,finders,fiftieth,fellah,fawning,farquaad,faraway,fancied,extremists,exorcist,exhale,ethros,entrust,ennui,energized,encephalitis,embezzling,elster,elixir,electrolytes,duplex,dryers,drexl,dredging,drawback,don'ts,dobisch,divorcee,disrespected,disprove,disobeying,disinfectant,dingy,digress,dieting,dictating,devoured,devise,detonators,desist,deserter,derriere,deron,deceptive,debilitating,deathwok,daffodils,curtsy,cursory,cuppa,cumin,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,contentment,consensual,compost,cluett,cleverly,cleansed,cleanliness,chopec,chomp,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,catchin,caress,camcorder,calorie,cackling,bystanders,buttoned,buttering,butted,buries,burgel,buffoon,brogna,bragged,boutros,bogeyman,blurting,blurb,blowup,bloodhound,blissful,birthmark,bigot,bestest,belted,belligerent,beggin,befall,beeswax,beatnik,beaming,barricade,baggoli,badness,awoke,artsy,artful,aroun,armpits,arming,annihilate,anise,angiogram,anaesthetic,amorous,ambiance,alligators,adoration,admittance,adama,abydos,zonked,zhivago,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,whoopie,wholeheartedly,whimper,which'll,wheelchairs,what'ya,warranted,wallop,wading,wacked,virginal,vermouth,vermeil,verger,ventriss,veneer,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unlocks,ungodly,undue,uncooperative,uncontrollably,unbeatable,twitchy,tumbler,truest,triumphs,triplicate,tribbey,tortures,tongaree,tightening,thorazine,theres,testifies,teenaged,tearful,taxing,taldor,syllabus,swoops,swingin,suspending,sunburn,stuttering,stupor,strides,strategize,strangulation,stooped,stipulation,stingy,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,spasms,spaniard,softener,sodding,soapbox,smoldering,smithbauer,skittish,sifting,sickest,sicilians,shuffling,shrivel,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schenkman,sawing,savin,satine,sapiens,salvaging,salmonella,sacrilege,rumpus,ruffle,roughing,rotted,rondall,ridding,rickshaw,rialto,rhinestone,restrooms,reroute,requisite,repress,rednecks,redeeming,rayed,ravell,raked,raincheck,raffi,racked,pushin,profess,prodding,procure,presuming,preppy,prednisone,potted,posttraumatic,poorhouse,podiatrist,plowed,pledging,playroom,plait,placate,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,pellets,peeved,peerless,payable,pauses,pathologist,pagliacci,overwrought,overreaction,overqualified,overheated,outcasts,otherworldly,opinionated,oodles,oftentimes,occured,obstinate,nutritionist,numbness,nubile,nooooooo,nobodies,nepotism,neanderthals,mushu,mucus,mothering,mothballs,monogrammed,molesting,misspoke,misspelled,misconstrued,miscalculated,minimums,mince,mildew,mighta,middleman,mementos,mellowed,mayol,mauled,massaged,marmalade,mardi,makings,lundegaard,lovingly,loudest,lotto,loosing,loompa,looming,longs,loathes,littlest,littering,lifelike,legalities,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,karras,jungles,jockeys,iranoff,invoices,invigorating,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infestation,individuality,indeterminate,incomprehensible,inadequacy,impropriety,importer,imaginations,illuminating,ignite,hysterics,hypodermic,hyperventilate,hyperactive,humoring,honeymooning,honed,hoist,hoarding,hitching,hiker,hightail,hemoglobin,hell'd,heinie,growin,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabbing,futon,fulla,frightful,freshener,fortuitous,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,feverish,favell,fattest,fattening,fallow,extraordinaire,evacuating,errant,envied,enchant,enamored,egocentric,dussander,dunwitty,dullest,dropout,dredged,dorsia,doornail,donot,dongs,dogged,dodgy,ditty,dishonorable,discriminating,discontinue,dings,dilly,dictation,dialysis,delly,delightfully,daryll,dandruff,cruddy,croquet,cringe,crimp,credo,crackling,courtside,counteroffer,counterfeiting,corrupting,copping,conveyor,contusions,contusion,conspirator,consoling,connoisseur,confetti,composure,compel,colic,coddle,cocksuckers,coattails,cloned,claustrophobia,clamoring,churn,chugga,chirping,chasin,chapped,chalkboard,centimeter,caymans,catheter,casings,caprica,capelli,cannolis,cannoli,camogli,camembert,butchers,butchered,busboys,bureaucrats,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,biocyte,betrays,bested,beryllium,beheading,beggar,begbie,beamed,bastille,barstool,barricades,barbecues,barbecued,bandwagon,backfiring,bacarra,avenged,autopsies,aunties,associating,artichoke,arrowhead,appendage,apostrophe,antacid,ansel,annul,amuses,amped,amicable,amberg,alluring,adversaries,admirers,adlai,acupuncture,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,wrinkly,wracked,withered,winks,windmills,whopping,wendle,weigart,waterworks,waterbed,watchful,wantin,wagging,waaah,vying,ventricle,varnish,vacuumed,unreachable,unprovoked,unmistakable,unfriendly,unfolding,underpaid,uncuff,unappealing,unabomber,typhoid,tuxedos,tushie,turds,tumnus,troubadour,trinium,treaters,treads,transpired,transgression,tought,thready,thins,thinners,techs,teary,tattaglia,tassels,tarzana,tanking,tablecloths,synchronize,symptomatic,sycophant,swimmingly,sweatshop,surfboard,superpowers,sunroom,sunblock,sugarplum,stupidly,strumpet,strapless,stooping,stools,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spectacularly,sorbet,socked,sociable,snubbed,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,slouch,slingshot,slaved,skimmed,sisterhood,silliest,sidarthur,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scagnetti,sawchuk,saugus,sasquatch,sandbag,saltines,s'pose,roston,rostle,riveting,ristle,rifling,revulsion,reverently,retrograde,restful,resents,reptilian,reorganize,renovating,reiterate,reinvent,reinmar,reibers,reechard,recuse,reconciling,recognizance,reclaiming,recitation,recieved,rebate,reacquainted,rascals,railly,quintuplets,quahog,pygmies,puzzling,punctuality,prosthetic,proms,probie,preys,preserver,preppie,poachers,plummet,plumbers,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,physique,pessimistic,persecute,perjure,percentile,pentothal,pensky,penises,peini,pazzi,pastels,parlour,paperweight,pamper,pained,overwhelm,overalls,outrank,outpouring,outhouse,outage,ouija,obstructed,obsessions,obeying,obese,o'riley,o'higgins,nosebleeds,norad,noooooooo,nononono,nonchalant,nippy,neurosis,nekhorvich,necronomicon,naquada,n'est,mystik,mystified,mumps,muddle,mothership,moped,monumentally,monogamous,mondesi,misogynistic,misinterpreting,mindlock,mending,megaphone,meeny,medicating,meanie,masseur,markstrom,marklars,margueritas,manifesting,maharajah,lukewarm,loveliest,loran,lizardo,liquored,lipped,lingers,limey,lemkin,leisurely,lathe,latched,lapping,ladle,krevlorneswath,kosygin,khakis,kenaru,keats,kaitlan,julliard,jollies,jaundice,jargon,jackals,invisibility,insipid,inflamed,inferiority,inexperience,incinerated,incinerate,incendiary,incan,inbred,implicating,impersonator,hunks,horsing,hooded,hippopotamus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,headstone,hayloft,harbucks,handguns,hallucinate,haldol,haggling,gynaecologist,gulag,guilder,guaranteeing,groundskeeper,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,gentlemanly,gelatin,gawking,ganged,fukes,fromby,frenchmen,foursome,forsley,forbids,footwork,foothold,floater,flinging,flicking,fittest,fistfight,fireballs,fillings,fiddling,fennyman,felonious,felonies,feces,favoritism,fatten,fanatics,faceman,excusing,excepted,entwined,entree,ensconced,eladio,ehrlichman,easterland,dueling,dribbling,drape,downtrodden,doused,dosed,dorleen,dokie,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,diperna,dined,diligent,dicaprio,depress,decoded,debatable,dealey,darsh,damsels,damning,dad'll,d'oeuvre,curlers,curie,cubed,crikey,crepes,countrymen,cornfield,coppers,copilot,copier,cooing,conspiracies,consigliere,condoning,commoner,commies,combust,comas,colds,clawed,clamped,choosy,chomping,chimps,chigorin,chianti,cheep,checkups,cheaters,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,candlesticks,canasta,cain't,burro,burnin,bunking,bumming,bullwinkle,brummel,brooms,brews,breathin,braslow,bracing,botulism,boorish,bloodless,blayne,blatantly,blankie,bedbugs,becuase,barmaid,bared,baracus,banal,bakes,backpacks,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,arnon,apprehension,applauding,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,alerting,afterthought,affront,affirm,actuality,abysmal,absentee,yeller,yakushova,wuzzy,wriggle,worrier,woogyman,womanizer,windpipe,windbag,willin,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,waaay,vouched,viznick,ventriloquist,vendettas,veils,vayhue,vamanos,vadimus,upstage,uppity,unsaid,unlocking,unintentionally,undetected,undecided,uncaring,unbearably,tween,tryout,trotting,trini,trimmings,trickier,treatin,treadstone,trashcan,transcendent,tramps,townsfolk,torturous,torrid,toothpicks,tolerable,tireless,tiptoeing,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,these'll,thatos,testicular,teriyaki,tenors,tenacity,tellers,telemetry,tarragon,switchblade,swicker,swells,sweatshirts,swatches,surging,supremely,sump'n,succumb,subsidize,stumbles,stuffs,stoppin,stipulate,stenographer,steamroll,stasis,stagger,squandered,splint,splendidly,splashy,splashing,specter,sorcerers,somewheres,somber,snuggled,snowmobile,sniffed,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,siree,siphoning,singed,sincerest,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,sheetrock,shawshank,shamu,sha're,servitude,sequins,seascape,scrapings,scoured,scorching,sandpaper,saluting,salud,ruffled,roughnecks,rougher,rosslyn,rosses,roost,roomy,romping,revolutionize,reprimanded,refute,refrigerated,reeled,redundancies,rectal,recklessly,receding,reassignment,reapers,readout,ration,raring,ramblings,raccoons,quarantined,purging,punters,psychically,premarital,pregnancies,predisposed,precautionary,pollute,podunk,plums,plaything,pixilated,pitting,piranhas,pieced,piddles,pickled,photogenic,phosphorous,pffft,pestilence,pessimist,perspiration,perps,penticoff,passageways,pardons,panics,pancamo,paleontologist,overwhelms,overstating,overpaid,overdid,outlive,orthodontist,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,nymph,novocaine,noooooooooo,nipping,nilly,nightstick,negate,neatness,natured,narcotic,narcissism,namun,nakatomi,murky,muchacho,mouthwash,motzah,morsel,morph,morlocks,mooch,moloch,molest,mohra,modus,modicum,mockolate,misdemeanors,miscalculation,middies,meringue,mercilessly,meditating,mayakovsky,maximillian,marlee,markovski,maniacal,maneuvered,magnificence,maddening,lutze,lunged,lovelies,lorry,loosening,lookee,littered,lilac,lightened,laces,kurzon,kurtzweil,kind've,kimono,kenji,kembu,keanu,kazuo,jonesing,jilted,jiggling,jewelers,jewbilee,jacqnoud,jacksons,ivories,insurmountable,innocuous,innkeeper,infantery,indulged,indescribable,incoherent,impervious,impertinent,imperfections,hunnert,huffy,horsies,horseradish,hollowed,hogwash,hockley,hissing,hiromitsu,hidin,hereafter,helpmann,hehehe,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,grossly,grope,grocer,grits,gripping,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,gairwyn,futterman,futility,fumigated,fruitless,friendless,freon,foregone,forego,floored,flighty,flapjacks,fizzled,ficus,festering,farbman,fabricate,eyghon,extricate,exalted,eventful,esophagus,enterprising,entail,endor,emphatically,embarrasses,electroshock,easel,duffle,drumsticks,dissection,dissected,disposing,disparaging,disorientation,disintegrated,disarming,devoting,dessaline,deprecating,deplorable,delve,degenerative,deduct,decomposed,deathly,dearie,daunting,dankova,cyclotron,cyberspace,cutbacks,culpable,cuddled,crumpets,cruelly,crouching,cranium,cramming,cowering,couric,cordesh,conversational,conclusively,clung,clotting,cleanest,chipping,chimpanzee,chests,cheapen,chainsaws,censure,catapult,caravaggio,carats,captivating,calrissian,butlers,busybody,bussing,bunion,bulimic,budging,brung,browbeat,brokenhearted,brecher,breakdowns,bracebridge,boning,blowhard,blisters,blackboard,bigotry,bialy,bhamra,bended,begat,battering,baste,basquiat,barricaded,barometer,balled,baited,badenweiler,backhand,ascenscion,argumentative,appendicitis,apparition,anxiously,antagonistic,angora,anacott,amniotic,ambience,alonna,aleck,akashic,ageless,abouts,aawwww,aaaaarrrrrrggghhh,aaaaaa,zendi,yuppies,yodel,y'hear,wrangle,wombosi,wittle,withstanding,wisecracks,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weakling,warfarin,waponis,wampum,wadn't,vorash,vizzini,virtucon,viridiana,veracity,ventilated,varicose,varcon,vandalized,vamos,vamoose,vaccinated,vacationing,usted,urinal,uppers,unwittingly,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unbreakable,unadvisedly,udall,tynacorp,tuxes,tussle,turati,tunic,tsavo,trussed,troublemakers,trollop,tremors,transsexual,transfusions,toothbrushes,toned,toddlers,tinted,tightened,thundering,thorpey,this'd,thespian,thaddius,tenuous,tenths,tenement,telethon,teleprompter,teaspoon,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,talcum,tacks,swivel,swaying,superpower,summarize,sumbitch,sultry,suburbia,styrofoam,stylings,strolls,strobe,stockpile,stewardesses,sterilized,sterilize,stealin,stakeouts,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,sparklers,spareribs,sowing,sororities,sonovabitch,solicit,softy,softness,softening,snuggling,snatchers,snarling,snarky,snacking,smears,slumped,slowest,slithering,sleazebag,slayed,slaughtering,skidded,skated,sivapathasundaram,sissies,silliness,silences,sidecar,sicced,shylock,shtick,shrugged,shriek,shoves,should'a,shortcake,shockingly,shirking,shaves,shatner,sharpener,shapely,shafted,sexless,septum,selflessness,seabea,scuff,screwball,scoping,scooch,scolding,schnitzel,schemed,scalper,santy,sankara,sanest,salesperson,sakulos,safehouse,sabers,runes,rumblings,rumbling,ruijven,ringers,righto,rhinestones,retrieving,reneging,remodelling,relentlessly,regurgitate,refills,reeking,reclusive,recklessness,recanted,ranchers,rafer,quaking,quacks,prophesied,propensity,profusely,problema,prided,prays,postmark,popsicles,poodles,pollyanna,polaroids,pokes,poconos,pocketful,plunging,plugging,pleeease,platters,pitied,pinetti,piercings,phooey,phonies,pestering,periscope,pentagram,pelts,patronized,paramour,paralyze,parachutes,pales,paella,paducci,owatta,overdone,overcrowded,overcompensating,ostracized,ordinate,optometrist,operandi,omens,okayed,oedipal,nuttier,nuptial,nunheim,noxious,nourish,notepad,nitroglycerin,nibblet,neuroses,nanosecond,nabbit,mythic,munchkins,multimillion,mulroney,mucous,muchas,mountaintop,morlin,mongorians,moneybags,mom'll,molto,mixup,misgivings,mindset,michalchuk,mesmerized,merman,mensa,meaty,mbwun,materialize,materialistic,masterminded,marginally,mapuhe,malfunctioning,magnify,macnamara,macinerney,machinations,macadamia,lysol,lurks,lovelorn,lopsided,locator,litback,litany,linea,limousines,limes,lighters,liebkind,levity,levelheaded,letterhead,lesabre,leron,lepers,lefts,leftenant,laziness,layaway,laughlan,lascivious,laryngitis,lapsed,landok,laminated,kurten,kobol,knucklehead,knowed,knotted,kirkeby,kinsa,karnovsky,jolla,jimson,jettison,jeric,jawed,jankis,janitors,jango,jalopy,jailbreak,jackers,jackasses,invalidate,intercepting,intercede,insinuations,infertile,impetuous,impaled,immerse,immaterial,imbeciles,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hurtling,hurried,hunchback,hullo,horsting,hoooo,homeboys,hollandaise,hoity,hijinks,hesitates,herrero,herndorff,helplessly,heeyy,heathen,hearin,headband,harrassment,harpies,halstrom,hahahahaha,hacer,grumbling,grimlocks,grift,greets,grandmothers,grander,grafts,gordievsky,gondorff,godorsky,glscripts,gaudy,gardeners,gainful,fuses,fukienese,frizzy,freshness,freshening,fraught,frantically,foxbooks,fortieth,forked,foibles,flunkies,fleece,flatbed,fisted,firefight,fingerpaint,filibuster,fhloston,fenceline,femur,fatigues,fanucci,fantastically,familiars,falafel,fabulously,eyesore,expedient,ewwww,eviscerated,erogenous,epidural,enchante,embarassed,embarass,embalming,elude,elspeth,electrocute,eigth,eggshell,echinacea,eases,earpiece,earlobe,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,dorma,doily,divvy,diverting,dissuade,disrespecting,displace,disorganized,disgustingly,discord,disapproving,diligence,didja,diced,devouring,detach,destructing,desolate,demerits,delude,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cussing,cryss,cripes,cretins,crackerjack,cower,coveting,couriers,countermission,cotswolds,convertibles,conversationalist,consorting,consoled,consarn,confides,confidentially,commited,commiserate,comme,comforter,comeuppance,combative,comanches,colosseum,colling,coexist,coaxing,cliffside,chutes,chucked,chokes,childlike,childhoods,chickening,chenowith,charmingly,changin,catsup,captioning,capsize,cappucino,capiche,candlewell,cakewalk,cagey,caddie,buxley,bumbling,bulky,buggered,brussel,brunettes,brumby,brotha,bronck,brisket,bridegroom,braided,bovary,bookkeeper,bluster,bloodline,blissfully,blase,billionaires,bicker,berrisford,bereft,berating,berate,bendy,belive,belated,beikoku,beens,bedspread,bawdy,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,awkwardly,auras,attuned,atheists,astaire,assuredly,arrivederci,appetit,appendectomy,apologetic,antihistamine,anesthesiologist,amulets,albie,alarmist,aiight,adstream,admirably,acquaint,abound,abominable,aaaaaaah,zekes,zatunica,wussy,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whisker,whims,whatiya,whadya,weirdly,weenies,waunt,washout,wanto,waning,victimless,verdad,veranda,vandaley,vancomycin,valise,vaguest,upshot,unzip,unwashed,untrained,unstuck,unprincipled,unmentionables,unjustly,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,tyndareus,turncoat,turlock,tulle,tryouts,trouper,triplette,trepkos,tremor,treeger,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,thumbprint,thankless,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tarred,tambourine,talentless,swooped,switcheroo,swirly,sweatpants,sunstroke,suitors,sugarcoat,subways,subterfuge,subservient,subletting,stunningly,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stifle,stealer,squeezes,squatter,squarely,sprouted,spool,spindly,speedos,soups,soundly,soulmates,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,skulk,skivvies,skewered,skewer,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,sharpened,shapeshifter,shadowing,shadoe,selectman,sefelt,seared,scrounging,scribbling,scooping,scintillating,schmoozing,scallops,sapphires,sanitarium,sanded,safes,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rewrote,revamp,retaliatory,reprimand,replicators,replaceable,remedied,relinquishing,rejoicing,reincarnated,reimbursed,reevaluate,redid,redefine,recreating,reconnected,rebelling,reassign,rearview,rayne,ravings,ratso,rambunctious,radiologist,quiver,quiero,queef,qualms,pyrotechnics,pulsating,psychosomatic,proverb,promiscuous,profanity,prioritize,preying,predisposition,precocious,precludes,prattling,prankster,povich,potting,postpartum,porridge,polluting,plowing,pistachio,pissin,pickpocket,physicals,peruse,pertains,personified,personalize,perjured,perfecting,pepys,pepperdine,pembry,peering,peels,pedophile,patties,passkey,paratrooper,paraphernalia,paralyzing,pandering,paltry,palpable,pagers,pachyderm,overstay,overestimated,overbite,outwit,outgrow,outbid,ooops,oomph,oohhh,oldie,obliterate,objectionable,nygma,notting,noches,nitty,nighters,newsstands,newborns,neurosurgery,nauseated,nastiest,narcolepsy,mutilate,muscled,murmur,mulva,mulling,mukada,muffled,morgues,moonbeams,monogamy,molester,molestation,molars,moans,misprint,mismatched,mirth,mindful,mimosas,millander,mescaline,menstrual,menage,mellowing,medevac,meddlesome,matey,manicures,malevolent,madmen,macaroons,lydell,lycra,lunchroom,lunching,lozenges,looped,litigious,liquidate,linoleum,lingk,limitless,limber,lilacs,ligature,liftoff,lemmiwinks,leggo,learnin,lazarre,lawyered,lactose,knelt,kenosha,kemosabe,jussy,junky,jordy,jimmies,jeriko,jakovasaur,issacs,isabela,irresponsibility,ironed,intoxication,insinuated,inherits,ingest,ingenue,inflexible,inflame,inevitability,inedible,inducement,indignant,indictments,indefensible,incomparable,incommunicado,improvising,impounded,illogical,ignoramus,hydrochloric,hydrate,hungover,humorless,humiliations,hugest,hoverdrone,hovel,hmmph,hitchhike,hibernating,henchman,helloooo,heirlooms,heartsick,headdress,hatches,harebrained,hapless,hanen,handsomer,hallows,habitual,guten,gummy,guiltier,guidebook,gstaad,gruff,griss,grieved,grata,gorignak,goosed,goofed,glowed,glitz,glimpses,glancing,gilmores,gianelli,geraniums,garroway,gangbusters,gamblers,galls,fuddy,frumpy,frowning,frothy,fro'tak,frere,fragrances,forgettin,follicles,flowery,flophouse,floatin,flirts,flings,flatfoot,fingerprinting,fingerprinted,fingering,finald,fillet,fianc,femoral,federales,fawkes,fascinates,farfel,fambly,falsified,fabricating,exterminators,expectant,excusez,excrement,excercises,evian,etins,esophageal,equivalency,equate,equalizer,entrees,enquire,endearment,empathetic,emailed,eggroll,earmuffs,dyslexic,duper,duesouth,drunker,druggie,dreadfully,dramatics,dragline,downplay,downers,dominatrix,doers,docket,docile,diversify,distracts,disloyalty,disinterested,discharging,disagreeable,dirtier,dinghy,dimwitted,dimoxinil,dimmy,diatribe,devising,deviate,detriment,desertion,depressants,depravity,deniability,delinquents,defiled,deepcore,deductive,decimate,deadbolt,dauthuille,dastardly,daiquiris,daggers,dachau,curiouser,curdled,cucamonga,cruller,cruces,crosswalk,crinkle,crescendo,cremate,counseled,couches,cornea,corday,copernicus,contrition,contemptible,constipated,conjoined,confounded,condescend,concoct,conch,compensating,committment,commandeered,comely,coddled,cockfight,cluttered,clunky,clownfish,cloaked,clenched,cleanin,civilised,circumcised,cimmeria,cilantro,chutzpah,chucking,chiseled,chicka,chattering,cervix,carrey,carpal,carnations,cappuccinos,candied,calluses,calisthenics,bushy,burners,budington,buchanans,brimming,braids,boycotting,bouncers,botticelli,botherin,bookkeeping,bogyman,bogged,bloodthirsty,blintzes,blanky,binturong,billable,bigboote,bewildered,betas,bequeath,behoove,befriend,bedpost,bedded,baudelaires,barreled,barboni,barbeque,bangin,baltus,bailout,backstabber,baccarat,awning,augie,arguillo,archway,apricots,apologising,annyong,anchorman,amenable,amazement,allspice,alannis,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,adrenal,acidosis,achoo,accessorizing,accentuate,abrasions,abductor,aaaahhh,aaaaaaaa,aaaaaaa,zeroing,zelner,zeldy,yevgeny,yeska,yellows,yeesh,yeahh,yamuri,wouldn't've,workmanship,woodsman,winnin,winked,wildness,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,westerburg,weeding,watermelons,washboard,waltzes,wafting,voulez,voluptuous,vitone,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,vasculitis,valets,upholstered,unwavering,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unglued,unequivocal,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,tugging,triads,trespasses,treehorn,traviata,trappers,transplants,trannie,tramping,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,thruster,thoughtfulness,thornwood,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surges,supermodels,superhighway,sunup,sun'll,sulfa,sugarless,sufficed,subside,strolled,stringy,strengthens,straightest,straightens,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stepladder,stepbrother,steers,steelheads,steakhouse,stathis,stankylecartmankennymr,standoffish,stalwart,squirted,spritz,sprig,sprawl,spousal,sphincter,spenders,spearmint,spatter,spangled,southey,soured,sonuvabitch,somethng,snuffed,sniffs,smokescreen,smilin,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skanks,sixed,siphoned,siphon,simpering,sigfried,sidearm,siddons,sickie,shuteye,shuffleboard,shrubberies,shrouded,showmanship,shouldn't've,shoplift,shiatsu,sentries,sentance,sensuality,seething,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schoolers,schmucks,scepters,scaly,scalps,scaffolding,sauces,sartorius,santen,salivating,sainthood,saget,saddens,rygalski,rusting,ruination,rueland,rudabaga,rottweiler,roofies,romantics,rollerblading,roldy,roadshow,rickets,rible,rheza,revisiting,retentive,resurface,restores,respite,resounding,resorting,resists,repulse,repressing,repaying,reneged,refunds,rediscover,redecorated,reconstructive,recommitted,recollect,receptacle,reassess,reanimation,realtors,razinin,rationalization,ratatouille,rashum,rasczak,rancheros,rampler,quizzing,quips,quartered,purring,pummeling,puede,proximo,prospectus,pronouncing,prolonging,procreation,proclamations,principled,prides,preoccupation,prego,precog,prattle,pounced,potshots,potpourri,porque,pomegranates,polenta,plying,pluie,plesac,playmates,plantains,pillowcase,piddle,pickers,photocopied,philistine,perpetuate,perpetually,perilous,pawned,pausing,pauper,parter,parlez,parlay,pally,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,outweighs,outings,ottos,orrin,orifice,orangutan,oopsy,ooooooooh,oooooo,ooohhhh,ocular,obstruct,obscenely,o'dwyer,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,nestled,nearsighted,ne'er,nastier,narco,nakedness,muted,mummified,mudda,mozzarella,moxica,motivator,motility,mothafucka,mortmain,mortgaged,mores,mongers,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mineshaft,millaney,microwaves,metzenbaum,mccovey,masterful,masochistic,marliston,marijawana,manya,mantumbi,malarkey,magnifique,madrona,madox,machida,m'hidi,lullabies,loveliness,lotions,looka,lompoc,litterbug,litigator,lithe,liquorice,linds,limericks,lightbulb,lewises,letch,lemec,layover,lavatory,laurels,lateness,laparotomy,laboring,kuato,kroff,krispy,krauts,knuckleheads,kitschy,kippers,kimbrow,keypad,keepsake,kebab,karloff,junket,judgemental,jointed,jezzie,jetting,jeeze,jeeter,jeesus,jeebs,janeane,jails,jackhammer,ixnay,irritates,irritability,irrevocable,irrefutable,irked,invoking,intricacies,interferon,intents,insubordinate,instructive,instinctive,inquisitive,inlay,injuns,inebriated,indignity,indecisive,incisors,incacha,inalienable,impresses,impregnate,impregnable,implosion,idolizes,hypothyroidism,hypoglycemic,huseni,humvee,huddling,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hikita,hikes,hightailed,hieroglyphics,heretofore,herbalist,hehey,hedriks,heartstrings,headmistress,headlight,hardheaded,happend,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,groan,greenbacks,gravedigger,grating,grasshoppers,grandiose,grandest,grafted,gooood,goood,gooks,godsakes,goaded,glamorama,giveth,gingham,ghostbusters,germane,georgy,gazzo,gazelles,gargle,garbled,galgenstein,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frighteningly,freebies,freakishly,forewarned,foreclose,forearms,fordson,fonics,flushes,flitting,flemmer,flabby,fishbowl,fidgeting,fevers,feigning,faxing,fatigued,fathoms,fatherless,fancier,fanatical,factored,eyelid,eyeglasses,expresso,expletive,expectin,excruciatingly,evidentiary,ever'thing,eurotrash,eubie,estrangement,erlich,epitome,entrap,enclose,emphysema,embers,emasculating,eighths,eardrum,dyslexia,duplicitous,dumpty,dumbledore,dufus,duddy,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,douggie,douchebag,dostoyevsky,doodling,don'tcha,domineering,doings,dogcatcher,doctoring,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,disavowed,dippy,diorama,dimmed,dilate,digitalis,diggory,dicing,diagnosing,devola,desolation,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,decrepit,deciphered,dawdle,dauphine,daresay,dangles,dampen,damndest,cucumbers,cucaracha,cryogenically,croaks,croaked,criticise,crisper,creepiest,creams,crackle,crackin,covertly,counterintelligence,corrosive,cordially,cops'll,convulsions,convoluted,conversing,conga,confrontational,confab,condolence,condiments,complicit,compiegne,commodus,comings,cometh,collusion,collared,cockeyed,clobber,clemonds,clarithromycin,cienega,christmasy,christmassy,chloroform,chippie,chested,cheeco,checklist,chauvinist,chandlers,chambermaid,chakras,cellophane,caveat,cataloguing,cartmanland,carples,carny,carded,caramels,cappy,caped,canvassing,callback,calibrated,calamine,buttermilk,butterfingers,bunsen,bulimia,bukatari,buildin,budged,brobich,bringer,brendell,brawling,bratty,braised,boyish,boundless,botch,boosh,bookies,bonbons,bodes,bobunk,bluntly,blossoming,bloomers,bloodstains,bloodhounds,blech,biter,biometric,bioethics,bijan,bigoted,bicep,bereaved,bellowing,belching,beholden,beached,batmobile,barcodes,barch,barbecuing,bandanna,backwater,backtrack,backdraft,augustino,atrophy,atrocity,atley,atchoo,asthmatic,assoc,armchair,arachnids,aptly,appetizing,antisocial,antagonizing,anorexia,anini,andersons,anagram,amputation,alleluia,airlock,aimless,agonized,agitate,aggravating,aerosol,acing,accomplishing,accidently,abuser,abstain,abnormally,aberration,aaaaahh,zlotys,zesty,zerzura,zapruder,zantopia,yelburton,yeess,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolchek,wishin,wiseguys,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,wherefore,wharvey,welts,wellstone,wedges,wavered,watchit,wastebasket,wango,waken,waitressed,wacquiem,vrykolaka,voula,vitally,visualizing,viciousness,vespers,vertes,verily,vegetarians,vater,vaporize,vannacutt,vallens,ussher,urinating,upping,unwitting,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undeserving,undermines,undergarments,unconcerned,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tribulations,tremont,tremoille,transcends,trafficker,touchin,tomfoolery,tinkered,tinfoil,tightrope,thousan,thoracotomy,thesaurus,thawing,thatta,tessio,temps,taxidermist,tator,tachycardia,t'akaya,swelco,sweetbreads,swatting,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,streetwalker,strategizing,straining,straightaway,stoli,stiffer,stickup,stens,steamroller,steadwell,steadfast,stateroom,stans,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spirals,speedboat,spectacles,speakerphone,southglen,souse,soundproof,soothsayer,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,snifter,sniffin,snickering,sneer,snarl,smila,slinking,slanted,slanderous,slammin,skimp,skilosh,siteid,sirloin,singe,sighing,sidekicks,sicken,showstopper,shoplifter,shimokawa,sherborne,shavadai,sharpshooters,sharking,shagged,shaddup,senorita,sesterces,sensuous,seahaven,scullery,scorcher,schotzie,schnoz,schmooze,schlep,schizo,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandstorm,sandalwood,salutations,sagman,s'okay,rsvp'd,rousted,rootin,romper,romanovs,rollercoaster,rolfie,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revoking,reverts,retrofit,retort,retinas,respirations,reprobate,replaying,repaint,renquist,renege,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,recriminations,rechecked,reassemble,rears,reamed,reacquaint,rayanne,ravish,rathole,raspail,rarest,rapists,rants,racketeer,quittin,quitters,quintessential,queremos,quellek,quelle,quasimodo,pyromaniac,puttanesca,puritanical,purer,puree,pungent,pummel,puedo,psychotherapist,prosecutorial,prosciutto,propositioning,procrastination,probationary,primping,preventative,prevails,preservatives,preachy,praetorians,practicality,powders,potus,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plummeted,plucking,plimpton,playthings,plastique,plainclothes,pinpointed,pinkus,pinks,pigskin,piffle,pictionary,piccata,photocopy,phobias,perignon,perfumes,pecks,pecked,patently,passable,parasailing,paramus,papier,paintbrush,pacer,paaiint,overtures,overthink,overstayed,overrule,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,orchestrate,oppress,opposable,oooohh,oomupwah,okeydokey,okaaay,ohashi,of'em,obscenities,oakie,o'gar,nurection,nostradamus,norther,norcom,nooch,nonsensical,nipped,nimbala,nervously,neckline,nebbleman,narwhal,nametag,n'n't,mycenae,muzak,muumuu,mumbled,mulvehill,muggings,muffet,mouthy,motivates,motaba,moocher,mongi,moley,moisturize,mohair,mocky,mmkay,mistuh,missis,misdeeds,mincemeat,miggs,miffed,methadone,messieur,menopausal,menagerie,mcgillicuddy,mayflowers,matrimonial,matick,masai,marzipan,maplewood,manzelle,mannequins,manhole,manhandle,malfunctions,madwoman,machiavelli,lynley,lynched,lurconis,lujack,lubricant,looove,loons,loofah,lonelyhearts,lollipops,lineswoman,lifers,lexter,lepner,lemony,leggy,leafy,leadeth,lazerus,lazare,lawford,languishing,lagoda,ladman,kundera,krinkle,krendler,kreigel,kowolski,knockdown,knifed,kneed,kneecap,kids'll,kennie,kenmore,keeled,kazootie,katzenmoyer,kasdan,karak,kapowski,kakistos,julyan,jockstrap,jobless,jiggly,jaunt,jarring,jabbering,irrigate,irrevocably,irrationally,ironies,invitro,intimated,intently,intentioned,intelligently,instill,instigator,instep,inopportune,innuendoes,inflate,infects,infamy,indiscretions,indiscreet,indio,indignities,indict,indecision,inconspicuous,inappropriately,impunity,impudent,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,idealist,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hunched,huffed,hubris,hubbub,hovercraft,houngan,hosed,horoscopes,hopelessness,hoodwinked,honorably,honeysuckle,homegirl,holiest,hippity,hildie,hieroglyphs,hexton,herein,heckle,heaping,healthilizer,headfirst,hatsue,harlot,hardwired,halothane,hairstyles,haagen,haaaaa,gutting,gummi,groundless,groaning,gristle,grills,graynamore,grabbin,goodes,goggle,glittering,glint,gleaming,glassy,girth,gimbal,giblets,gellers,geezers,geeze,garshaw,gargantuan,garfunkel,gangway,gandarium,gamut,galoshes,gallivanting,gainfully,gachnar,fusionlips,fusilli,furiously,frugal,fricking,frederika,freckling,frauds,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,fondling,fondled,fondle,folksy,fluttering,fluffing,floundering,flirtatious,flexing,flatterer,flaring,fixating,finchy,figurehead,fiendish,fertilize,ferment,fending,fellahs,feelers,fascinate,fantabulous,falsify,fallopian,faithless,fairer,fainter,failings,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,expelling,exorbitant,exhilarated,exertion,exerting,excercise,everbody,evaporated,escargot,escapee,erases,epizootics,epithelials,ephrum,entanglements,enslave,engrossed,emphatic,emeralds,ember,emancipated,elevates,ejaculate,effeminate,eccentricities,easygoing,earshot,dunks,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,donowitz,dominoes,diversions,distended,dissipate,disraeli,disqualify,disowned,dishwashing,disciplining,discerning,disappoints,dinged,digested,dicking,detonating,despising,depressor,depose,deport,dents,defused,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,deafening,dawning,dater,darkened,dappy,dallying,dagon,czechoslovakians,cuticles,cuteness,cupboards,culottes,cruisin,crosshairs,cronyn,criminalistics,creatively,creaming,crapping,cranny,cowed,contradicting,constipation,confining,confidences,conceiving,conceivably,concealment,compulsively,complainin,complacent,compels,communing,commode,comming,commensurate,columnists,colonoscopy,colchicine,coddling,clump,clubbed,clowning,cliffhanger,clang,cissy,choosers,choker,chiffon,channeled,chalet,cellmates,cathartic,caseload,carjack,canvass,canisters,candlestick,candlelit,camry,calzones,calitri,caldy,byline,butterball,bustier,burlap,bureaucrat,buffoons,buenas,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brays,brassieres,boysenberry,bowline,boooo,boonies,booklets,bookish,boogeyman,boogey,bogas,boardinghouse,bluuch,blundering,bluer,blowed,blotchy,blossomed,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,birdson,bings,bfmid,bfast,bettin,berkshires,benjamins,benevolence,benched,benatar,bellybutton,belabor,behooves,beddy,beaujolais,beattle,baxworth,baseless,barfing,bannish,bankrolled,banek,ballsy,ballpoint,baffling,badder,badda,bactine,backgammon,baako,aztreonam,authoritah,auctioning,arachtoids,apropos,aprons,apprised,apprehensive,anythng,antivenin,antichrist,anorexic,anoint,anguished,angioplasty,angio,amply,ampicillin,amphetamines,alternator,alcove,alabaster,airlifted,agrabah,affidavits,admonished,admonish,addled,addendum,accuser,accompli,absurdity,absolved,abrusso,abreast,aboot,abductions,abducting,aback,ababwa,aaahhhh,zorin,zinthar,zinfandel,zillions,zephyrs,zatarcs,zacks,youuu,yokels,yardstick,yammer,y'understand,wynette,wrung,wreaths,wowed,wouldn'ta,worming,wormed,workday,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,wenus,weirdoes,weaning,watusi,waponi,waistband,wackos,vouching,votre,vivica,viveca,vivant,vivacious,visor,visitin,visage,vicrum,vetted,ventriloquism,venison,varnsen,vaporized,vapid,vanstock,uuuuh,ushering,urologist,urination,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,uninsured,uninspired,unicycle,unhooked,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,understan,undershirt,underlings,underline,undercurrent,uncivilized,uncharacteristic,umpteenth,uglies,tuney,trumps,truckasaurus,trubshaw,trouser,tringle,trifling,trickster,trespassers,trespasser,traumas,trattoria,trashes,transgressions,trampling,tp'ed,toxoplasmosis,tounge,tortillas,topsy,topple,topnotch,tonsil,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,threepio,thoughtfully,thorkel,thommo,thing'll,thefts,that've,thanksgivings,tetherball,testikov,terraforming,tepid,tendonitis,tenboom,telex,teenybopper,tattered,tattaglias,tanneke,tailspin,tablecloth,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swaddling,swackhammer,svetkoff,supossed,superdad,sumptuous,sugary,sugai,subvert,substantiate,submersible,sublimating,subjugation,stymied,strychnine,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,steerage,steena,statuary,starlets,staggeringly,ssshhh,squaw,spurt,spungeon,spritzer,sprightly,sprays,sportswear,spoonful,splittin,splitsville,speedily,specialise,spastic,sparrin,souvlaki,southie,sourpuss,soupy,soundstage,soothes,somebody'd,softest,sociopathic,socialized,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,sloshed,sleight,skyrocket,skied,skewed,sixpence,sipowicz,singling,simulates,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shifu,shelve,shelbyville,sheepskin,sharpens,shaquille,shanshu,servings,sequined,seizes,seashells,scrambler,scopes,schnauzer,schmo,schizoid,scampered,savagely,saudis,santas,sandovals,sanding,saleswoman,sagging,s'cuse,rutting,ruthlessly,runneth,ruffians,rubes,rosalita,rollerblades,rohypnol,roasts,roadies,ritten,rippling,ripples,rigoletto,richardo,rethought,reshoot,reserving,reseda,rescuer,reread,requisitions,repute,reprogram,replenish,repetitious,reorganizing,reinventing,reinvented,reheat,refrigerators,reenter,recruiter,recliner,rawdy,rashes,rajeski,raison,raisers,rages,quinine,questscape,queller,pygmalion,pushers,pusan,purview,pumpin,pubescent,prudes,provolone,propriety,propped,procrastinate,processional,preyed,pretrial,portent,pooling,poofy,polloi,policia,poacher,pluses,pleasuring,platitudes,plateaued,plaguing,pittance,pinheads,pincushion,pimply,pimped,piggyback,piecing,phillipe,philipse,philby,pharaohs,petyr,petitioner,peshtigo,pesaram,persnickety,perpetrate,percolating,pepto,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,paltrow,palamon,padlock,paddling,oversleep,overheating,overdosed,overcharge,overblown,outrageously,ornery,opportune,oooooooooh,oohhhh,ohhhhhh,ogres,odorless,obliterated,nyong,nymphomaniac,ntozake,novocain,nough,nonnie,nonissue,nodules,nightmarish,nightline,niceties,newsman,needra,nedry,necking,navour,nauseam,nauls,narim,namath,nagged,naboo,n'sync,myslexia,mutator,mustafi,musketeer,murtaugh,murderess,munching,mumsy,muley,mouseville,mortifying,morgendorffers,moola,montel,mongoloid,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,millgate,mettle,metricconverter,meteors,menorah,mengele,melding,meanness,mcgruff,mcarnold,matzoh,matted,mastectomy,massager,marveling,marooned,marmaduke,marick,manhandled,manatees,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeovers,maiming,machismo,lumpectomy,lumbering,lucci,lording,lorca,lookouts,loogie,loners,loathed,lissen,lighthearted,lifer,lickin,lewen,levitation,lestercorp,lessee,lentils,legislate,legalizing,lederhosen,lawmen,lasskopf,lardner,lambeau,lamagra,ladonn,lactic,lacquer,labatier,krabappel,kooks,knickknacks,klutzy,kleynach,klendathu,kinross,kinkaid,kind'a,ketch,kesher,karikos,karenina,kanamits,junshi,jumbled,joust,jotted,jobson,jingling,jigalong,jerries,jellies,jeeps,javna,irresistable,internist,intercranial,inseminated,inquisitor,infuriate,inflating,infidelities,incessantly,incensed,incase,incapacitate,inasmuch,inaccuracies,imploding,impeding,impediments,immaturity,illegible,iditarod,icicles,ibuprofen,i'i'm,hymie,hydrolase,hunker,humps,humons,humidor,humdinger,humbling,huggin,huffing,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honks,honeymooners,homily,homeopathic,hitchhikers,hissed,hillnigger,hexavalent,hewwo,hershe,hermey,hergott,henny,hennigans,henhouse,hemolytic,helipad,heifer,hebrews,hebbing,heaved,headlock,harrowing,harnessed,hangovers,handi,handbasket,halfrek,hacene,gyges,guys're,gundersons,gumption,gruntmaster,grubs,grossie,groped,grins,greaseball,gravesite,gratuity,granma,grandfathers,grandbaby,gradski,gracing,gossips,gooble,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glares,givers,ginza,gimmie,gimmee,gennero,gemme,gazpacho,gazed,gassy,gargling,gandhiji,galvanized,gallbladder,gaaah,furtive,fumigation,fucka,fronkonsteen,frills,freezin,freewald,freeloader,frailty,forger,foolhardy,fondest,fomin,followin,follicle,flotation,flopping,floodgates,flogged,flicked,flenders,fleabag,fixings,fixable,fistful,firewater,firelight,fingerbang,finalizing,fillin,filipov,fiderer,felling,feldberg,feign,faunia,fatale,farkus,fallible,faithfulness,factoring,eyeful,extramarital,exterminated,exhume,exasperated,eviscerate,estoy,esmerelda,escapades,epoxy,enticed,enthused,entendre,engrossing,endorphins,emptive,emmys,eminently,embezzler,embarressed,embarrassingly,embalmed,eludes,eling,elated,eirie,egotitis,effecting,eerily,eecom,eczema,earthy,earlobes,eally,dyeing,dwells,duvet,duncans,dulcet,droves,droppin,drools,drey'auc,downriver,domesticity,dollop,doesnt,dobler,divulged,diversionary,distancing,dispensers,disorienting,disneyworld,dismissive,disingenuous,disheveled,disfiguring,dinning,dimming,diligently,dilettante,dilation,dickensian,diaphragms,devastatingly,destabilize,desecrate,deposing,deniece,demony,delving,delicates,deigned,defraud,deflower,defibrillator,defiantly,defenceless,defacing,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,darwinism,darnit,darks,danke,danieljackson,dangled,cytoxan,cutout,cutlery,curveball,curfews,cummerbund,crunches,crouched,crisps,cripples,crilly,cribs,crewman,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crackheads,coworker,couldn't've,corwins,coriander,copiously,convenes,contraceptives,contingencies,contaminating,conniption,condiment,concocting,comprehending,complacency,commendatore,comebacks,com'on,collarbone,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,closeted,cloistered,cleve,cleats,clarifying,clapped,cinnabar,chunnel,chumps,cholinesterase,choirboy,chocolatey,chlamydia,chigliak,cheesie,chauvinistic,chasm,chartreuse,charo,charnier,chapil,chalked,chadway,certifiably,cellulite,celled,cavalcade,cataloging,castrated,cassio,cashews,cartouche,carnivore,carcinogens,capulet,captivated,capt'n,cancellations,campin,callate,callar,caffeinated,cadavers,cacophony,cackle,buzzes,buttoning,busload,burglaries,burbs,buona,bunions,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,briefings,brewskies,breathalyzer,breakups,bratwurst,brania,braiding,brags,braggin,bradywood,bottomed,bossa,bordello,bookshelf,boogida,bondsman,bolder,boggles,bludgeoned,blowtorch,blotter,blips,blemish,bleaching,blainetologists,blading,blabbermouth,birdseed,bimmel,biloxi,biggly,bianchinni,betadine,berenson,belus,belloq,begets,befitting,beepers,beelzebub,beefed,bedridden,bedevere,beckons,beaded,baubles,bauble,battleground,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,bagman,baffles,backroom,babysat,baboons,averse,audiotape,auctioneer,atten,atcha,astonishment,arugula,arroz,antihistamines,annoyances,anesthesiology,anatomically,anachronism,amiable,amaretto,allahu,alight,aimin,ailment,afterglow,affronte,advil,adrenals,actualization,acrost,ached,accursed,accoutrements,absconded,aboveboard,abetted,aargh,aaaahh,zuwicky,zolda,ziploc,zakamatak,youve,yippie,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,y'mean,y'are,wuthering,wreaks,worrisome,workiiing,wooooooo,wonky,womanizing,wolodarsky,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,windthorne,windsurfing,windermere,wiggled,wiggen,whwhat,whodunit,whoaaa,whittling,whitesnake,whereof,wheezing,wheeze,whatd'ya,whataya,whammo,whackin,wellll,weightless,weevil,wedgies,webbing,weasly,wayside,waxes,waturi,washy,washrooms,wandell,waitaminute,waddya,waaaah,vornac,vishnoor,virulent,vindictiveness,vinceres,villier,vigeous,vestigial,ventilate,vented,venereal,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,urethra,upstaged,uploading,unwrapping,unwieldy,untapped,unsatisfied,unquenchable,unnerved,unmentionable,unlovable,unknowns,uninformed,unimpressed,unhappily,unguarded,unexplored,undergarment,undeniably,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,ululd,uhhhm,tweeze,tutsami,tushy,tuscarora,turkle,turghan,turbinium,tubers,trucoat,troxa,tropicana,triquetra,trimmers,triceps,trespassed,traya,traumatizing,transvestites,trainors,tradin,trackers,townies,tourelles,toucha,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tizzy,tippers,timmi,thwap,thusly,ththe,thrusts,throwers,throwed,throughway,thickening,thermonuclear,thelwall,thataway,terrifically,tendons,teleportation,telepathically,telekinetic,teetering,teaspoons,tarantulas,tapas,tanned,tangling,tamales,tailors,tahitian,tactful,tachy,tablespoon,syrah,synchronicity,synch,synapses,swooning,switchman,swimsuits,sweltering,sweetly,suvolte,suslov,surfed,supposition,suppertime,supervillains,superfluous,superego,sunspots,sunning,sunless,sundress,suckah,succotash,sublevel,subbasement,studious,striping,strenuously,straights,stonewalled,stillness,stilettos,stevesy,steno,steenwyck,stargates,stammering,staedert,squiggly,squiggle,squashing,squaring,spreadsheet,spramp,spotters,sporto,spooking,splendido,spittin,spirulina,spiky,spate,spartacus,spacerun,soonest,something'll,someth,somepin,someone'll,sofas,soberly,sobered,snowmen,snowbank,snowballing,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,slumlord,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skeptic,sitarides,sistah,sipped,sindell,simpletons,simony,silkwood,silks,silken,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,sheeny,shapetype,shaming,shallows,shackle,shabbily,shabbas,seppuku,senility,semite,semiautomatic,selznick,secretarial,sebacio,scuzzy,scummy,scrutinized,scrunchie,scribbled,scotches,scolded,scissor,schlub,scavenging,scarin,scarfing,scallions,scald,savour,savored,saute,sarcoidosis,sandbar,saluted,salish,saith,sailboats,sagittarius,sacre,saccharine,sacamano,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotisserie,rootie,roofy,roofie,romanticize,rittle,ristorante,rippin,rinsing,ringin,rincess,rickety,reveling,retest,retaliating,restorative,reston,restaurateur,reshoots,resetting,resentments,reprogramming,repossess,repartee,renzo,remore,remitting,remeber,relaxants,rejuvenate,rejections,regenerated,refocus,referrals,reeno,recycles,recrimination,reclining,recanting,reattach,reassigning,razgul,raved,rattlesnakes,rattles,rashly,raquetball,ransack,raisinettes,raheem,radisson,radishes,raban,quoth,qumari,quints,quilts,quilting,quien,quarreled,purty,purblind,punchbowl,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protectin,propping,proportioned,prophylactic,proofed,prompter,procreate,proclivities,prioritizing,prinze,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,pralines,pragmatist,powerbar,pottie,pottersville,potsie,potholes,posses,posies,portkey,porterhouse,pornographers,poring,poppycock,poppers,pomponi,pokin,poitier,podiatry,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pistachios,pirated,pinochle,pineapples,pinafore,pimples,piggly,piddling,picon,pickpockets,picchu,physiologically,physic,phobic,philandering,phenomenally,pheasants,pewter,petticoat,petronis,petitioning,perturbed,perpetuating,permutat,perishable,perimeters,perfumed,percocet,per'sus,pepperjack,penalize,pelting,pellet,peignoir,pedicures,peckers,pecans,pawning,paulsson,pattycake,patrolmen,patois,pathos,pasted,parishioner,parcheesi,parachuting,papayas,pantaloons,palpitations,palantine,paintballing,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlast,outlander,out've,orphey,orchestrating,openers,ooooooo,okies,ohhhhhhhhh,ohhhhhhhh,ogling,offbeat,obsessively,obeyed,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuances,nourishing,nosedive,norbu,nomlies,nomine,nixed,nihilist,nightshift,newmeat,neglectful,neediness,needin,naphthalene,nanocytes,nanite,naivete,n'yeah,mystifying,myhnegon,mutating,musing,mulled,muggy,muerto,muckraker,muchachos,mountainside,motherless,mosquitos,morphed,mopped,moodoo,moncho,mollem,moisturiser,mohicans,mocks,mistresses,misspent,misinterpretation,miscarry,minuses,mindee,mimes,millisecond,milked,mightn't,mightier,mierzwiak,microchips,meyerling,mesmerizing,mershaw,meecrob,medicate,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,matzah,matriarch,masturbated,masselin,martialed,marlboros,marksmanship,marinate,marchin,manicured,malnourished,malign,majorek,magnon,magnificently,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lydells,lusts,lucite,lubricants,lopper,lopped,loneliest,lonelier,lomez,lojack,loath,liquefy,lippy,limps,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,leotards,leanin,laxatives,lavished,latka,lanyard,lanky,landmines,lameness,laddies,lacerated,labored,l'amour,kreskin,kovitch,kournikova,kootchy,konoss,knknow,knickety,knackety,kmart,klicks,kiwanis,kissable,kindergartners,kilter,kidnet,kid'll,kicky,kickbacks,kickback,kholokov,kewpie,kendo,katra,kareoke,kafelnikov,kabob,junjun,jumba,julep,jordie,jondy,jolson,jenoff,jawbone,janitorial,janiro,ipecac,invigorated,intruded,intros,intravenously,interruptus,interrogations,interject,interfacing,interestin,insuring,instilled,insensitivity,inscrutable,inroads,innards,inlaid,injector,ingratitude,infuriates,infra,infliction,indelicate,incubators,incrimination,inconveniencing,inconsolable,incestuous,incas,incarcerate,inbreeding,impudence,impressionists,impeached,impassioned,imipenem,idling,idiosyncrasies,icebergs,hypotensive,hydrochloride,hushed,humus,humph,hummm,hulking,hubcaps,hubald,howya,howbout,how'll,housebroken,hotwire,hotspots,hotheaded,horrace,hopsfield,honto,honkin,honeymoons,homewrecker,hombres,hollers,hollerin,hoedown,hoboes,hobbling,hobble,hoarse,hinky,highlighters,hexes,heru'ur,hernias,heppleman,hell're,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,hayseed,haveo,hauls,hasten,harridan,harpoons,hardens,harcesis,harbouring,hangouts,halkein,haleh,halberstam,hairnet,hairdressers,hacky,haaaa,h'yah,gusta,gushy,gurgling,guilted,gruel,grudging,grrrrrr,grosses,groomsmen,griping,gravest,gratified,grated,goulash,goopy,goona,goodly,godliness,godawful,godamn,glycerin,glutes,glowy,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gilbey,gigglepuss,ghora,gestating,gelato,geishas,gearshift,gayness,gasped,gaslighting,garretts,garba,gablyczyck,g'head,fumigating,fumbling,fudged,fuckwad,fuck're,fuchsia,fretting,freshest,frenchies,freezers,fredrica,fraziers,fraidy,foxholes,fourty,fossilized,forsake,forfeits,foreclosed,foreal,footsies,florists,flopped,floorshow,floorboard,flinching,flecks,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fiver,fitzy,fishsticks,finetti,finelli,finagle,filko,fieldstone,fibber,ferrini,feedin,feasting,favore,fathering,farrouhk,farmin,fairytale,fairservice,factoid,facedown,fabled,eyeballin,extortionist,exquisitely,expedited,exorcise,existentialist,execs,exculpatory,exacerbate,everthing,eventuality,evander,euphoric,euphemisms,estamos,erred,entitle,enquiries,enormity,enfants,endive,encyclopedias,emulating,embittered,effortless,ectopic,ecirc,easely,earphones,earmarks,dweller,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,druthers,druggist,drossos,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dozing,dotes,dorkface,doorknobs,doohickey,donnatella,doncha,domicile,dokos,dobermans,dizzying,divola,ditsy,distaste,disservice,dislodged,dislodge,disinherit,disinformation,discounting,dinka,dimly,digesting,diello,diddling,dictatorships,dictators,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,derris,deplore,deplete,demure,demolitions,demean,delish,delbruck,delaford,degaulle,deftly,deformity,deflate,definatly,defector,decrypted,decontamination,decapitate,decanter,dardis,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechoslovakian,cymbal,cyberdyne,cutoffs,cuticle,curvaceous,curiousity,crowing,crowed,croutons,cropped,criminy,crescentis,crashers,cranwell,coverin,courtrooms,countenance,cosmically,cosign,corroboration,coroners,cornflakes,copperpot,copperhead,copacetic,coordsize,convulsing,consults,conjures,congenial,concealer,compactor,commercialism,cokey,cognizant,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clods,clocking,clings,clavicle,classless,clashing,clanking,clanging,clamping,civvies,citywide,circulatory,circuited,chronisters,chromic,choos,chloroformed,chillun,cheesed,chatterbox,chaperoned,channukah,cerebellum,centerpieces,centerfold,ceecee,ccedil,cavorting,cavemen,cauterized,cauldwell,catting,caterine,cassiopeia,carves,cartwheel,carpeted,carob,caressing,carelessly,careening,capricious,capitalistic,capillaries,candidly,camaraderie,callously,calfskin,caddies,buttholes,busywork,busses,burps,burgomeister,bunkhouse,bungchow,bugler,buffets,buffed,brutish,brusque,bronchitis,bromden,brolly,broached,brewskis,brewin,brean,breadwinner,brana,bountiful,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bombosity,bolting,boilerplate,bluey,blowback,blouses,bloodsuckers,bloodstained,bloat,bleeth,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,biltmore,bilked,big'uns,bidet,besotted,bernheim,benegas,bendiga,belushi,bellboys,belittling,behinds,begone,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,bathes,batak,baser,baseballs,barbella,bankrolling,bandaged,baerly,backlog,backin,babying,azkaban,awwwww,aviary,authorizes,austero,aunty,attics,atreus,astounded,astonish,artemus,arses,arintero,appraiser,apathetic,anybody'd,anxieties,anticlimactic,antar,anglos,angleman,anesthetist,androscoggin,andolini,andale,amway,amuck,amniocentesis,amnesiac,americano,amara,alvah,altruism,alternapalooza,alphabetize,alpaca,allus,allergist,alexandros,alaikum,akimbo,agoraphobia,agides,aggrhh,aftertaste,adoptions,adjuster,addictions,adamantium,activator,accomplishes,aberrant,aaaaargh,aaaaaaaaaaaaa,a'ight,zzzzzzz,zucchini,zookeeper,zirconia,zippers,zequiel,zellary,zeitgeist,zanuck,zagat,you'n,ylang,yes'm,yenta,yecchh,yecch,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,worshiping,wormy,wormtail,wormholes,woosh,wollsten,wolfing,woefully,wobbling,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whistled,whist,whinny,wheelies,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whacks,wewell,wetsuit,welluh,weeps,waylander,wavin,wassail,wasnt,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vorhees,voldemort,vivre,vittles,vindaloo,videogames,vichyssoise,vicarious,vesuvius,verguenza,ven't,velveteen,velour,velociraptor,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,vacuums,usurp,usernum,us'll,urinals,unyielding,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unpretentious,unnerstand,unmade,unimpeachable,unfashionable,underwrite,underlining,underling,underestimates,underappreciated,uncouth,uncork,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,ughuh,typewriters,twitches,twitched,twirly,twinkling,twinges,twiddling,turners,turnabout,tumblin,tryed,trowel,trousseau,trivialize,trifles,tribianni,trenchcoat,trembled,traumatize,transitory,transients,transfuse,transcribing,tranq,trampy,traipsed,trainin,trachea,traceable,touristy,toughie,toscanini,tortola,tortilla,torreon,toreador,tommorrow,tollbooth,tollans,toidy,togas,tofurkey,toddling,toddies,toasties,toadstool,to've,tingles,timin,timey,timetables,tightest,thuggee,thrusting,thrombus,throes,thrifty,thornharts,thinnest,thicket,thetas,thesulac,tethered,testaburger,tersenadine,terrif,terdlington,tepui,temping,tector,taxidermy,tastebuds,tartlets,tartabull,tar'd,tantamount,tangy,tangles,tamer,tabula,tabletops,tabithia,szechwan,synthedyne,svenjolly,svengali,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,superstore,supercilious,suntac,sunburned,summercliff,sullied,sugared,suckle,subtleties,substantiated,subsides,subliminal,subhuman,strowman,stroked,stroganoff,streetlight,straying,strainer,straighter,straightener,stoplight,stirrups,stewing,stereotyping,stepmommy,stephano,stashing,starshine,stairwells,squatsie,squandering,squalid,squabbling,squab,sprinkling,spreader,spongy,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,spearchucker,spatulas,southtown,soused,soshi,sorter,sorrowful,sooth,some'in,soliloquy,soiree,sodomized,sobriki,soaping,snows,snowcone,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smarten,smallish,slushy,slurring,sluman,slithers,slippin,sleuthing,sleeveless,skinless,skillfully,sketchbook,skagnetti,sista,sinning,singularly,sinewy,silverlake,siguto,signorina,sieve,sidearms,shying,shunning,shtud,shrieks,shorting,shortbread,shopkeepers,shmancy,shizzit,shitheads,shitfaced,shipmates,shiftless,shelving,shedlow,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,serviceable,sepsis,senores,sendin,semis,semanski,selflessly,seinfelds,seers,seeps,seductress,secaucus,sealant,scuttling,scusa,scrunched,scissorhands,schreber,schmancy,scamps,scalloped,savoir,savagery,sarong,sarnia,santangel,samool,sallow,salino,safecracker,sadism,sacrilegious,sabrini,sabath,s'aright,ruttheimer,rudest,rubbery,rousting,rotarian,roslin,roomed,romari,romanica,rolltop,rolfski,rockettes,roared,ringleader,riffing,ribcage,rewired,retrial,reting,resuscitated,restock,resale,reprogrammed,replicant,repentant,repellant,repays,repainting,renegotiating,rendez,remem,relived,relinquishes,relearn,relaxant,rekindling,rehydrate,refueled,refreshingly,refilling,reexamine,reeseman,redness,redeemable,redcoats,rectangles,recoup,reciprocated,reassessing,realy,realer,reachin,re'kali,rawlston,ravages,rappaports,ramoray,ramming,raindrops,rahesh,radials,racists,rabartu,quiches,quench,quarreling,quaintly,quadrants,putumayo,put'em,purifier,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,pterodactyl,psychodrama,psats,protestations,protectee,prosaic,propositioned,proclivity,probed,printouts,prevision,pressers,preset,preposition,preempt,preemie,preconceptions,prancan,powerpuff,potties,potpie,poseur,porthole,poops,pooping,pomade,polyps,polymerized,politeness,polisher,polack,pocketknife,poatia,plebeian,playgroup,platonically,platitude,plastering,plasmapheresis,plaids,placemats,pizzazz,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pileup,pilates,pigmen,pieeee,phrased,photocopies,phoebes,philistines,philanderer,pheromone,phasers,pfeffernuesse,pervs,perspire,personify,perservere,perplexed,perpetrating,perkiness,perjurer,periodontist,perfunctory,perdido,percodan,pentameter,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,paxcow,paused,patted,parkishoff,parkers,pardoning,paraplegic,paraphrasing,paperers,papered,pangs,paneling,palooza,palmed,palmdale,palatable,pacify,pacified,owwwww,oversexed,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outmaneuver,outfoxed,oughtn't,ostentatious,oshun,orthopedist,or'derves,ophthalmologist,operagirl,oozes,oooooooh,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrical,obeys,obeah,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,nourished,nonspecific,noing,noinch,nohoho,nobler,nitwits,newsprint,newspaperman,newscaster,neuropathy,netherworld,neediest,navasky,narcissists,napped,nafta,mache,mykonos,mutilating,mutherfucker,mutha,mutates,mutate,musn't,murchy,multitasking,mujeeb,mudslinging,muckraking,mousetrap,mourns,mournful,motherf,mostro,morphing,morphate,moralistic,moochy,mooching,monotonous,monopolize,monocle,molehill,moland,mofet,mockup,mobilizing,mmmmmmm,mitzvahs,mistreating,misstep,misjudge,misinformation,misdirected,miscarriages,miniskirt,mindwarped,minced,milquetoast,miguelito,mightily,midstream,midriff,mideast,microbe,methuselah,mesdames,mescal,men'll,memma,megaton,megara,megalomaniac,meeee,medulla,medivac,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,mateys,marshack,markles,marketable,mansiere,manservant,manse,manhandling,mallomars,malcontent,malaise,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,machu,macado,m'boy,m'appelle,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,loincloth,lofts,lodgers,lobbing,loaner,livered,liqueur,ligourin,lifesaving,lifeguards,lifeblood,liaisons,let'em,lesbianism,lence,lemonlyman,legitimize,leadin,lazars,lazarro,lawyering,laugher,laudanum,latrines,lations,laters,lapels,lakefront,lahit,lafortunata,lachrymose,l'italien,kwaini,kruczynski,kramerica,kowtow,kovinsky,korsekov,kopek,knowakowski,knievel,knacks,kiowas,killington,kickball,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,karajan,kamerev,kaggs,jujyfruit,jostled,jonestown,jokey,joists,jocko,jimmied,jiggled,jests,jenzen,jenko,jellyman,jedediah,jealitosis,jaunty,jarmel,jankle,jagoff,jagielski,jackrabbits,jabbing,jabberjaw,izzat,irresponsibly,irrepressible,irregularity,irredeemable,inuvik,intuitions,intubated,intimates,interminable,interloper,intercostal,instyle,instigate,instantaneously,ining,ingrown,ingesting,infusing,infringe,infinitum,infact,inequities,indubitably,indisputable,indescribably,indentation,indefinable,incontrovertible,inconsequential,incompletes,incoherently,inclement,incidentals,inarticulate,inadequacies,imprudent,improprieties,imprison,imprinted,impressively,impostors,importante,imperious,impale,immodest,immobile,imbedded,imbecilic,illegals,idn't,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,hotbed,hosing,hosers,horsehair,homebody,homebake,holing,holies,hoisting,hogwallop,hocks,hobbits,hoaxes,hmmmmm,hisses,hippest,hillbillies,hilarity,heurh,herniated,hermaphrodite,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heeey,hedda,heartbeats,heaped,healers,headstart,headsets,headlong,hawkland,havta,haulin,harvey'll,hanta,hansom,hangnail,handstand,handrail,handoff,hallucinogen,hallor,halitosis,haberdashery,gypped,guy'll,gumbel,guerillas,guava,guardrail,grunther,grunick,groppi,groomer,grodin,gripes,grinds,grifters,gretch,greevey,greasing,graveyards,grandkid,grainy,gouging,gooney,googly,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,glues,gloriously,glengarry,glassware,glamor,gimmicks,giggly,giambetti,ghoulish,ghettos,ghali,gether,geriatrics,gerbils,geosynchronous,georgio,gente,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,gantu,gangy,gangly,gangland,galling,gadda,furrowed,funnies,funkytown,fugimotto,fudging,fuckeen,frustrates,froufrou,froot,fromberge,frizzies,fritters,frightfully,friendliest,freeloading,freelancing,freakazoid,fraternization,framers,fornication,fornicating,forethought,footstool,foisting,focussing,focking,flurries,fluffed,flintstones,fledermaus,flayed,flawlessly,flatters,flashbang,flapped,fishies,firmer,fireproof,firebug,fingerpainting,finessed,findin,financials,finality,fillets,fiercest,fiefdom,fibbing,fervor,fentanyl,fenelon,fedorchuk,feckless,feathering,faucets,farewells,fantasyland,fanaticism,faltered,faggy,faberge,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,excels,exasperating,exacting,everybody'd,evasions,espressos,esmail,errrr,erratically,eroding,ernswiler,epcot,enthralled,ensenada,enriching,enrage,enhancer,endear,encrusted,encino,empathic,embezzle,emanates,electricians,eking,egomaniacal,egging,effacing,ectoplasm,eavesdropped,dummkopf,dugray,duchaisne,drunkard,drudge,droop,droids,drips,dripped,dribbles,drazens,downy,downsize,downpour,dosages,doppelganger,dopes,doohicky,dontcha,doneghy,divining,divest,diuretics,diuretic,distrustful,disrupts,dismemberment,dismember,disinfect,disillusionment,disheartening,discourteous,discotheque,discolored,dirtiest,diphtheria,dinks,dimpled,didya,dickwad,diatribes,diathesis,diabetics,deviants,detonates,detests,detestable,detaining,despondent,desecration,derision,derailing,deputized,depressors,dependant,dentures,denominators,demur,demonology,delts,dellarte,delacour,deflated,defib,defaced,decorators,deaqon,davola,datin,darwinian,darklighters,dandelions,dampened,damaskinos,dalrimple,d'peshu,d'hoffryn,d'astier,cynics,cutesy,cutaway,curmudgeon,curdle,culpability,cuisinart,cuffing,crypts,cryptid,crunched,crumblers,crudely,crosscheck,croon,crissake,crevasse,creswood,creepo,creases,creased,creaky,cranks,crabgrass,coveralls,couple'a,coughs,coslaw,corporeal,cornucopia,cornering,corks,cordoned,coolly,coolin,cookbooks,contrite,contented,constrictor,confound,confit,confiscating,condoned,conditioners,concussions,comprendo,comers,combustible,combusted,collingswood,coldness,coitus,codicil,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleanses,claymores,clammed,chugging,chronically,christsakes,choque,chompers,chiseling,chirpy,chirp,chinks,chingachgook,chickenpox,chickadee,chewin,chessboard,chargin,chanteuse,chandeliers,chamdo,chagrined,chaff,certs,certainties,cerreno,cerebrum,censured,cemetary,caterwauling,cataclysmic,casitas,cased,carvel,carting,carrear,carolling,carolers,carnie,cardiogram,carbuncle,capulets,canines,candaules,canape,caldecott,calamitous,cadillacs,cachet,cabeza,cabdriver,buzzards,butai,businesswomen,bungled,bumpkins,bummers,bulldoze,buffybot,bubut,bubbies,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,briskly,briefcases,bricked,breezing,breeher,breakable,breadstick,bravenet,braved,brandies,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boutonniere,bossed,bosomy,borans,boosts,bookshelves,bookends,boneless,bombarding,bollo,boinked,boink,bluest,bluebells,bloodshot,blockhead,blockbusters,blithely,blather,blankly,bladders,blackbeard,bitte,bippy,biogenetics,bilge,bigglesworth,bicuspids,beususe,betaseron,besmirch,bernece,bereavement,bentonville,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,behrle,beginnin,begining,beenie,beefs,beechwood,becau,beaverhausen,beakers,bazillion,baudouin,barrytown,barringtons,barneys,barbs,barbers,barbatus,bankrupted,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,automatics,authenticate,aught,aubyn,attired,attagirl,atrophied,asystole,astroturf,assertiveness,artichokes,arquillians,aright,archenemy,appraise,appeased,antin,anspaugh,anesthetics,anaphylactic,amscray,ambivalence,amalio,alriiight,alphabetized,alpena,alouette,allora,alliteration,allenwood,allegiances,algerians,alcerro,alastor,ahaha,agitators,aforethought,advertises,admonition,adirondacks,adenoids,acupuncturist,acula,actuarial,activators,actionable,achingly,accusers,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","),
45640 male_names:"james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,sammy,kristopher,levi,marcos,gustavo,jake,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,benedict,mose,hong,isreal,garret,fausto,arlen,zack,modesto,francesco,manual,gaylord,gaston,filiberto,deangelo,michale,granville,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,hosea,shad,santo,rudolf,rolf,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,elden,darell,broderick,alonso".split(",")},module.exports=frequency_lists;
45642 },{}],
4:[function(require,module,exports){
45643 var feedback,matching,scoring,time,time_estimates,zxcvbn;matching=require("./matching"),scoring=require("./scoring"),time_estimates=require("./time_estimates"),feedback=require("./feedback"),time=function(){return(new Date).getTime()},zxcvbn=function(e,t){var i,n,c,s,a,r,m,o,u,g,_;for(null==t&&(t=[]),g=time(),u=[],c=
0,s=t.length;c
<s;c++)i=t[c],
"string"!=(m=typeof i)&&
"number"!==m&&
"boolean"!==m||u.push(i.toString().toLowerCase());matching.set_user_input_dictionary(u),a=matching.omnimatch(e),o=scoring.most_guessable_match_sequence(e,a),o.calc_time=time()-g,n=time_estimates.estimate_attack_times(o.guesses);for(r in n)_=n[r],o[r]=_;return o.feedback=feedback.get_feedback(o.score,o.sequence),o},module.exports=zxcvbn;
45645 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45646 var DATE_MAX_YEAR,DATE_MIN_YEAR,DATE_SPLITS,GRAPHS,L33T_TABLE,RANKED_DICTIONARIES,REGEXEN,adjacency_graphs,build_ranked_dict,frequency_lists,lst,matching,name,scoring;frequency_lists=require(
"./frequency_lists"),adjacency_graphs=require(
"./adjacency_graphs"),scoring=require(
"./scoring"),build_ranked_dict=function(e){var t,n,r,i,a;for(i={},t=
1,r=
0,n=e.length;r
<n;r++)a=e[r],i[a]=t,t+=
1;return i},RANKED_DICTIONARIES={};for(name in frequency_lists)lst=frequency_lists[name],RANKED_DICTIONARIES[name]=build_ranked_dict(lst);GRAPHS={qwerty:adjacency_graphs.qwerty,dvorak:adjacency_graphs.dvorak,keypad:adjacency_graphs.keypad,mac_keypad:adjacency_graphs.mac_keypad},L33T_TABLE={a:[
"4",
"@"],b:[
"8"],c:[
"(",
"{",
"[",
"<"],e:[
"3"],g:[
"6",
"9"],i:[
"1",
"!",
"|"],l:[
"1",
"|",
"7"],o:[
"0"],s:[
"$",
"5"],t:[
"+",
"7"],x:[
"%"],z:[
"2"]},REGEXEN={recent_year:/
19\d\d|
200\d|
201\d/g},DATE_MAX_YEAR=
2050,DATE_MIN_YEAR=
1e3,DATE_SPLITS={
4:[[
1,
2],[
2,
3]],
5:[[
1,
3],[
2,
3]],
6:[[
1,
2],[
2,
4],[
4,
5]],
7:[[
1,
3],[
2,
3],[
4,
5],[
4,
6]],
8:[[
2,
4],[
4,
6]]},matching={empty:function(e){var t;return
0===function(){var n;n=[];for(t in e)n.push(t);return n}().length},extend:function(e,t){return e.push.apply(e,t)},translate:function(e,t){var n;return function(){var r,i,a,s;for(a=e.split(
""),s=[],i=
0,r=a.length;i
<r;i++)n=a[i],s.push(t[n]||n);return s}().join(
"")},mod:function(e,t){return(e%t+t)%t},sorted:function(e){return e.sort(function(e,t){return e.i-t.i||e.j-t.j})},omnimatch:function(e){var t,n,r,i,a;for(i=[],r=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match],a=
0,t=r.length;a
<t;a++)n=r[a],this.extend(i,n.call(this,e));return this.sorted(i)},dictionary_match:function(e,t){var n,r,i,a,s,o,h,u,c,l,_,f,d,p;null==t&&(t=RANKED_DICTIONARIES),s=[],a=e.length,u=e.toLowerCase();for(n in t)for(l=t[n],r=o=
0,_=a;
0<=_?o
<_:o>_;r=
0<=_?++o:--o)for(i=h=f=r,d=a;f<=d?h
<d:h>d;i=f<=d?++h:--h)u.slice(r,+i+
1||
9e9)in l&&(p=u.slice(r,+i+
1||
9e9),c=l[p],s.push({pattern:"dictionary",i:r,j:i,token:e.slice(r,+i+
1||
9e9),matched_word:p,rank:c,dictionary_name:n,reversed:!
1,l33t:!
1}));return this.sorted(s)},reverse_dictionary_match:function(e,t){var n,r,i,a,s,o;for(null==t&&(t=RANKED_DICTIONARIES),o=e.split("").reverse().join(""),i=this.dictionary_match(o,t),a=
0,n=i.length;a
<n;a++)r=i[a],r.token=r.token.split(
"").reverse().join(
""),r.reversed=!
0,s=[e.length-
1-r.j,e.length-
1-r.i],r.i=s[
0],r.j=s[
1];return this.sorted(i)},set_user_input_dictionary:function(e){return RANKED_DICTIONARIES.user_inputs=build_ranked_dict(e.slice())},relevant_l33t_subtable:function(e,t){var n,r,i,a,s,o,h,u,c,l;for(s={},o=e.split(
""),a=
0,r=o.length;a
<r;a++)n=o[a],s[n]=!
0;l={};for(i in t)c=t[i],h=function(){var e,t,n;for(n=[],t=
0,e=c.length;t
<e;t++)u=c[t],u in s&&n.push(u);return n}(),h.length
>0&&(l[i]=h);return l},enumerate_l33t_subs:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;a=function(){var t;t=[];for(i in e)t.push(i);return t}(),p=[[]],n=function(e){var t,n,r,a,s,o,h,u;for(n=[],s={},o=
0,a=e.length;o
<a;o++)h=e[o],t=function(){var e,t,n;for(n=[],u=t=
0,e=h.length;t
<e;u=++t)i=h[u],n.push([i,u]);return n}(),t.sort(),r=function(){var e,n,r;for(r=[],u=n=
0,e=t.length;n
<e;u=++n)i=t[u],r.push(i+
","+u);return r}().join(
"-"),r in s||(s[r]=!
0,n.push(h));return n},r=function(t){var i,a,s,o,h,u,c,l,_,f,d,g,m,A,E,y;if(t.length){for(a=t[
0],m=t.slice(
1),c=[],d=e[a],l=
0,h=d.length;l
<h;l++)for(o=d[l],_=
0,u=p.length;_
<u;_++){for(A=p[_],i=-
1,s=f=
0,g=A.length;
0<=g?f
<g:f>g;s=
0<=g?++f:--f)if(A[s][
0]===o){i=s;break}i===-
1?(y=A.concat([[o,a]]),c.push(y)):(E=A.slice(
0),E.splice(i,
1),E.push([o,a]),c.push(A),c.push(E))}return p=n(c),r(m)}},r(a),d=[];for(u=
0,o=p.length;u
<o;u++){for(_=p[u],f={},c=
0,h=_.length;c
<h;c++)l=_[c],s=l[
0],t=l[
1],f[s]=t;d.push(f)}return d},l33t_match:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A;for(null==t&&(t=RANKED_DICTIONARIES),null==n&&(n=L33T_TABLE),u=[],_=this.enumerate_l33t_subs(this.relevant_l33t_subtable(e,n)),c=
0,a=_.length;c
<a&&(d=_[c],!this.empty(d));c++)for(g=this.translate(e,d),f=this.dictionary_match(g,t),l=
0,s=f.length;l
<s;l++)if(o=f[l],m=e.slice(o.i,+o.j+
1||
9e9),m.toLowerCase()!==o.matched_word){h={};for(p in d)r=d[p],m.indexOf(p)!==-
1&&(h[p]=r);o.l33t=!
0,o.token=m,o.sub=h,o.sub_display=function(){var e;e=[];for(i in h)A=h[i],e.push(i+
" -> "+A);return e}().join(
", "),u.push(o)}return this.sorted(u.filter(function(e){return e.token.length
>1}))},spatial_match:function(e,t){var n,r,i;null==t&&(t=GRAPHS),i=[];for(r in t)n=t[r],this.extend(i,this.spatial_match_helper(e,n,r));return this.sorted(i)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:
"ZXCVBNM<>?]/,spatial_match_helper:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m;for(f=[],u=0;u<e.length-1;)for(c=u+1,l=null,m=0,g="qwerty
"!==n&&"dvorak
"!==n||!this.SHIFTED_RX.exec(e.charAt(u))?0:1;;){if(p=e.charAt(c-1),o=!1,h=-1,s=-1,i=t[p]||[],c<e.length)for(a=e.charAt(c),d=0,_=i.length;d<_;d++)if(r=i[d],s+=1,r&&r.indexOf(a)!==-1){o=!0,h=s,1===r.indexOf(a)&&(g+=1),l!==h&&(m+=1,l=h);break}if(!o){c-u>2&&f.push({pattern:"spatial
",i:u,j:c-1,token:e.slice(u,c),graph:n,turns:m,shifted_count:g}),u=c;break}c+=1}return f},repeat_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;for(d=[],a=/(.+)\1+/g,c=/(.+?)\1+/g,l=/^(.+?)\1+$/,u=0;u<e.length&&(a.lastIndex=c.lastIndex=u,s=a.exec(e),_=c.exec(e),null!=s);)s[0].length>_[0].length?(f=s,i=l.exec(f[0])[1]):(f=_,i=f[1]),p=[f.index,f.index+f[0].length-1],o=p[0],h=p[1],t=scoring.most_guessable_match_sequence(i,this.omnimatch(i)),r=t.sequence,n=t.guesses,d.push({pattern:"repeat",i:o,j:h,token:f[
0],base_token:i,base_guesses:n,base_matches:r,repeat_count:f[
0].length/i.length}),u=h+
1;return d},MAX_DELTA:
5,sequence_match:function(e){var t,n,r,i,a,s,o,h,u;if(
1===e.length)return[];for(u=function(t){return function(n,r,i){var a,s,o,u;if((r-n
>1||
1===Math.abs(i))&&
0<(a=Math.abs(i))&&a<=t.MAX_DELTA)return u=e.slice(n,+r+
1||
9e9),/^[a-z]+$/.test(u)?(
s=
"lower",o=
26):/^[A-Z]+$/.test(u)?(
s=
"upper",o=
26):/^\d+$/.test(u)?(
s=
"digits",o=
10):(
s=
"unicode",o=
26),h.push({pattern:
"sequence",i:n,j:r,token:e.slice(n,+r+
1||
9e9),sequence_name:s,sequence_space:o,ascending:i
>0})}}(this),h=[],n=
0,a=null,i=s=
1,o=e.length;
1<=o?s
<o:s>o;i=
1<=o?++s:--s)t=e.charCodeAt(i)-e.charCodeAt(i-
1),null==a&&(a=t),t!==a&&(r=i-
1,u(n,r,a),n=r,a=t);return u(n,e.length-
1,a),h},regex_match:function(e,t){var n,r,i,a;null==t&&(t=REGEXEN),n=[];for(name in t)for(r=t[name],r.lastIndex=
0;i=r.exec(e);)a=i[
0],n.push({pattern:"regex",token:a,i:i.index,j:i.index+i[
0].length-
1,regex_name:name,regex_match:i});return this.sorted(n)},date_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A,E,y,v,I,R,T,D,k,x,j,b,N,S,q,L,M;for(_=[],f=/^\d{
4,
8}$/,d=/^(\d{
1,
4})([\s\/\\_.-])(\d{
1,
2})\
2(\d{
1,
4})$/,s=m=
0,v=e.length-
4;
0<=v?m<=v:m
>=v;s=
0<=v?++m:--m)for(o=A=I=s+
3,R=s+
7;(I<=R?A<=R:A
>=R)&&!(o
>=e.length);o=I<=R?++A:--A)if(M=e.slice(s,+o+
1||
9e9),f.exec(M)){for(r=[],T=DATE_SPLITS[M.length],E=
0,c=T.length;E
<c;E++)D=T[E],h=D[
0],u=D[
1],a=this.map_ints_to_dmy([parseInt(M.slice(
0,h)),parseInt(M.slice(h,u)),parseInt(M.slice(u))]),null!=a&&r.push(a);if(r.length
>0){for(t=r[
0],p=function(e){return Math.abs(e.year-scoring.REFERENCE_YEAR)},g=p(r[
0]),k=r.slice(
1),y=
0,l=k.length;y
<l;y++)n=k[y],i=p(n),i
<g&&(x=[n,i],t=x[
0],g=x[
1]);_.push({pattern:
"date",token:M,i:s,j:o,separator:
"",year:t.year,month:t.month,day:t.day})}}for(s=q=
0,j=e.length-
6;
0<=j?q<=j:q
>=j;s=
0<=j?++q:--q)for(o=L=b=s+
5,N=s+
9;(b<=N?L<=N:L
>=N)&&!(o
>=e.length);o=b<=N?++L:--L)M=e.slice(s,+o+
1||
9e9),S=d.exec(M),null!=S&&(a=this.map_ints_to_dmy([parseInt(S[
1]),parseInt(S[
3]),parseInt(S[
4])]),null!=a&&_.push({pattern:"date",token:M,i:s,j:o,separator:S[
2],year:a.year,month:a.month,day:a.day}));return this.sorted(_.filter(function(e){var t,n,r,i;for(t=!
1,i=
0,n=_.length;i
<n;i++)if(r=_[i],e!==r&&r.i<=e.i&&r.j
>=e.j){t=!
0;break}return!t}))},map_ints_to_dmy:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g;if(!(e[
1]
>31||e[
1]<=
0)){for(o=
0,h=
0,p=
0,s=
0,r=e.length;s
<r;s++){if(n=e[s],
99<n&&n
<DATE_MIN_YEAR||n
>DATE_MAX_YEAR)return;n
>31&&(h+=
1),n
>12&&(o+=
1),n<=
0&&(p+=
1)}if(!(h
>=
2||
3===o||p
>=
2)){for(c=[[e[
2],e.slice(
0,
2)],[e[
0],e.slice(
1,
3)]],u=
0,i=c.length;u
<i;u++)if(_=c[u],g=_[
0],d=_[
1],DATE_MIN_YEAR<=g&&g<=DATE_MAX_YEAR)return t=this.map_ints_to_dm(d),null!=t?{year:g,month:t.month,day:t.day}:void
0;for(l=
0,a=c.length;l
<a;l++)if(f=c[l],g=f[
0],d=f[
1],t=this.map_ints_to_dm(d),null!=t)return g=this.two_to_four_digit_year(g),{year:g,month:t.month,day:t.day}}}},map_ints_to_dm:function(e){var t,n,r,i,a,s;for(a=[e,e.slice().reverse()],i=
0,n=a.length;i
<n;i++)if(s=a[i],t=s[
0],r=s[
1],
1<=t&&t<=
31&&
1<=r&&r<=
12)return{day:t,month:r}},two_to_four_digit_year:function(e){return e
>99?e:e
>50?e+
1900:e+
2e3}},module.exports=matching;
45648 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45649 var BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs,calc_average_degree,k,scoring,v;adjacency_graphs=require(
"./adjacency_graphs"),calc_average_degree=function(e){var t,r,n,s,a,u;t=
0;for(n in e)a=e[n],t+=function(){var e,t,r;for(r=[],t=
0,e=a.length;t
<e;t++)s=a[t],s&&r.push(s);return r}().length;return t/=function(){var t;t=[];for(r in e)u=e[r],t.push(r);return t}().length},BRUTEFORCE_CARDINALITY=
10,MIN_GUESSES_BEFORE_GROWING_SEQUENCE=
1e4,MIN_SUBMATCH_GUESSES_SINGLE_CHAR=
10,MIN_SUBMATCH_GUESSES_MULTI_CHAR=
50,scoring={nCk:function(e,t){var r,n,s,a;if(t
>e)return
0;if(
0===t)return
1;for(s=
1,r=n=
1,a=t;
1<=a?n<=a:n
>=a;r=
1<=a?++n:--n)s*=e,s/=r,e-=
1;return s},log10:function(e){return Math.log(e)/Math.log(
10)},log2:function(e){return Math.log(e)/Math.log(
2)},factorial:function(e){var t,r,n,s;if(e
<2)return
1;for(t=
1,r=n=
2,s=e;
2<=s?n<=s:n
>=s;r=
2<=s?++n:--n)t*=r;return t},most_guessable_match_sequence:function(e,t,r){var n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S,R,v,I,M,N,C,U,T;for(null==r&&(r=!
1),l=e.length,f=function(){var e,t,r;for(r=[],n=e=
0,t=l;
0<=t?e
<t:e>t;n=
0<=t?++e:--e)r.push([]);return r}(),p=
0,_=t.length;p
<_;p++)c=t[p],f[c.j].push(c);for(v=
0,o=f.length;v
<o;v++)E=f[v],E.sort(function(e,t){return e.i-t.i});for(A={m:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),pi:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),g:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}()},U=function(t){return function(n,s){var a,u,i,_,o,h;_=n.j,o=t.estimate_guesses(n,e),s
>1&&(o*=A.pi[n.i-
1][s-
1]),i=t.factorial(s)*o,r||(i+=Math.pow(MIN_GUESSES_BEFORE_GROWING_SEQUENCE,s-
1)),h=A.g[_];for(u in h)if(a=h[u],!(u
>s)&&a<=i)return;return A.g[_][s]=i,A.m[_][s]=n,A.pi[_][s]=o}}(this),s=function(e){return function(e){var t,r,n,s,a,u;for(c=g(
0,e),U(c,
1),a=[],t=u=
1,s=e;
1<=s?u<=s:u
>=s;t=
1<=s?++u:--u)c=g(t,e),a.push(function(){var e,s;e=A.m[t-
1],s=[];for(r in e)n=e[r],r=parseInt(r),"bruteforce"!==n.pattern&&s.push(U(c,r+
1));return s}());return a}}(this),g=function(t){return function(t,r){return{pattern:"bruteforce",token:e.slice(t,+r+
1||
9e9),i:t,j:r}}}(this),C=function(e){return function(e){var t,r,n,s,a,u,i;u=[],s=e-
1,a=void
0,n=
1/
0,i=A.g[s];for(r in i)t=i[r],t
<n&&(a=r,n=t);for(;s
>=
0;)c=A.m[s][a],u.unshift(c),s=c.i-
1,a--;return u}}(this),u=N=
0,I=l;
0<=I?N
<I:N>I;u=
0<=I?++N:--N){for(M=f[u],T=
0,h=M.length;T
<h;T++)if(c=M[T],c.i
>0)for(i in A.m[c.i-
1])i=parseInt(i),U(c,i+
1);else U(c,
1);s(u)}return R=C(l),S=R.length,a=
0===e.length?
1:A.g[l-
1][S],{password:e,guesses:a,guesses_log10:this.log10(a),sequence:R}},estimate_guesses:function(e,t){var r,n,s;return null!=e.guesses?e.guesses:(s=
1,e.token.length
<t.length&&(s=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR:MIN_SUBMATCH_GUESSES_MULTI_CHAR),r={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses},n=r[e.pattern].call(this,e),e.guesses=Math.max(n,s),e.guesses_log10=this.log10(e.guesses),e.guesses)},bruteforce_guesses:function(e){var t,r;return t=Math.pow(BRUTEFORCE_CARDINALITY,e.token.length),r=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR+
1:MIN_SUBMATCH_GUESSES_MULTI_CHAR+
1,Math.max(t,r)},repeat_guesses:function(e){return e.base_guesses*e.repeat_count},sequence_guesses:function(e){var t,r;return r=e.token.charAt(
0),
t=
"a"===r||
"A"===r||
"z"===r||
"Z"===r||
"0"===r||
"1"===r||
"9"===r?
4:r.match(/\d/)?
10:
26,e.ascending||(t*=
2),t*e.token.length},MIN_YEAR_SPACE:
20,REFERENCE_YEAR:
2016,regex_guesses:function(e){var t,r;if(t={alpha_lower:
26,alpha_upper:
26,alpha:
52,alphanumeric:
62,digits:
10,symbols:
33},e.regex_name in t)return Math.pow(t[e.regex_name],e.token.length);switch(e.regex_name){case
"recent_year":return r=Math.abs(parseInt(e.regex_match[
0])-this.REFERENCE_YEAR),r=Math.max(r,this.MIN_YEAR_SPACE)}},date_guesses:function(e){var t,r;return r=Math.max(Math.abs(e.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t=
365*r,e.separator&&(t*=
4),t},KEYBOARD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.qwerty),KEYPAD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.keypad),KEYBOARD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.qwerty,t=[];for(k in e)v=e[k],t.push(k);return t}().length,KEYPAD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.keypad,t=[];for(k in e)v=e[k],t.push(k);return t}().length,spatial_guesses:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S;for(
"qwerty"===(E=e.graph)||
"dvorak"===E?(l=this.KEYBOARD_STARTING_POSITIONS,s=this.KEYBOARD_AVERAGE_DEGREE):(l=this.KEYPAD_STARTING_POSITIONS,s=this.KEYPAD_AVERAGE_DEGREE),a=
0,t=e.token.length,A=e.turns,u=_=
2,c=t;
2<=c?_<=c:_
>=c;u=
2<=c?++_:--_)for(o=Math.min(A,u-
1),i=h=
1,g=o;
1<=g?h<=g:h
>=g;i=
1<=g?++h:--h)a+=this.nCk(u-
1,i-
1)*l*Math.pow(s,i);if(e.shifted_count)if(r=e.shifted_count,n=e.token.length-e.shifted_count,
0===r||
0===n)a*=
2;else{for(p=
0,u=S=
1,f=Math.min(r,n);
1<=f?S<=f:S
>=f;u=
1<=f?++S:--S)p+=this.nCk(r+n,u);a*=p}return a},dictionary_guesses:function(e){var t;return e.base_guesses=e.rank,e.uppercase_variations=this.uppercase_variations(e),e.l33t_variations=this.l33t_variations(e),t=e.reversed&&
2||
1,e.base_guesses*e.uppercase_variations*e.l33t_variations*t},START_UPPER:/^[A-Z][^A-Z]+$/,END_UPPER:/^[^A-Z]+[A-Z]$/,ALL_UPPER:/^[^a-z]+$/,ALL_LOWER:/^[^A-Z]+$/,uppercase_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c;if(c=e.token,c.match(this.ALL_LOWER)||c.toLowerCase()===c)return
1;for(_=[this.START_UPPER,this.END_UPPER,this.ALL_UPPER],u=
0,a=_.length;u
<a;u++)if(h=_[u],c.match(h))return
2;for(r=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[A-Z]/)&&s.push(n);return s}().length,t=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[a-z]/)&&s.push(n);return s}().length,E=
0,s=i=
1,o=Math.min(r,t);
1<=o?i<=o:i
>=o;s=
1<=o?++i:--i)E+=this.nCk(r+t,s);return E},l33t_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g;if(!e.l33t)return
1;g=
1,o=e.sub;for(E in o)if(c=o[E],s=e.token.toLowerCase().split(""),t=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===E&&r.push(n);return r}().length,r=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===c&&r.push(n);return r}().length,
0===t||
0===r)g*=
2;else{for(i=Math.min(r,t),_=
0,a=u=
1,h=i;
1<=h?u<=h:u
>=h;a=
1<=h?++u:--u)_+=this.nCk(r+t,a);g*=_}return g}},module.exports=scoring;
45651 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45652 var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o;n={online_throttling_100_per_hour:e/(
100/
3600),online_no_throttling_10_per_second:e/
10,offline_slow_hashing_1e4_per_second:e/
1e4,offline_fast_hashing_1e10_per_second:e/
1e10},t={};for(s in n)o=n[s],t[s]=this.display_time(o);return{crack_times_seconds:n,crack_times_display:t,score:this.guesses_to_score(e)}},guesses_to_score:function(e){var t;return t=
5,e
<1e3+t?
0:e
<1e6+t?
1:e
<1e8+t?
2:e
<1e10+t?
3:
4},display_time:function(e){var t,n,s,o,_,r,i,a,u,c;return i=
60,r=
60*i,s=
24*r,a=
31*s,c=
12*a,n=
100*c,u=e
<1?[null,
"less than a second"]:e
<i?(t=Math.round(e),[t,t+
" second"]):e
<r?(t=Math.round(e/i),[t,t+
" minute"]):e
<s?(t=Math.round(e/r),[t,t+
" hour"]):e
<a?(t=Math.round(e/s),[t,t+
" day"]):e
<c?(t=Math.round(e/a),[t,t+
" month"]):e
<n?(t=Math.round(e/c),[t,t+
" year"]):[null,
"centuries"],o=u[
0],_=u[
1],null!=o&&
1!==o&&(_+=
"s"),_}},module.exports=time_estimates;
45659 * Detects entropy from a string.
45666 * hexadecimal [
0-
9A-F]
45667 * card [A2-
9TJQK][CDHS]
45669 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45670 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45674 window.Entropy = new (function() {
45676 var TWO = new BigInteger(
2);
45678 // matchers returns an array of the matched events for each type of entropy.
45680 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45681 // matchers.binary("a10") returns ["
1", "
0"]
45682 // matchers.hex("a10") returns ["a", "
1", "
0"]
45684 binary: function(str) {
45685 return str.match(/[
0-
1]/gi) || [];
45687 base6: function(str) {
45688 return str.match(/[
0-
5]/gi) || [];
45690 dice: function(str) {
45691 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45693 base10: function(str) {
45694 return str.match(/[
0-
9]/gi) || [];
45696 hex: function(str) {
45697 return str.match(/[
0-
9A-F]/gi) || [];
45699 card: function(str) {
45700 // Format is NumberSuit, eg
45701 // AH ace of hearts
45702 //
8C eight of clubs
45703 // TD ten of diamonds
45704 // JS jack of spades
45705 // QH queen of hearts
45706 // KC king of clubs
45707 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45711 // Convert array of cards from ["ac", "
4d", "ks"]
45712 // to numbers between
0 and
51 [
0,
16,
51]
45713 function convertCardsToInts(cards) {
45715 var values = "a23456789tjqk";
45716 var suits = "cdhs";
45717 for (var i=
0; i
<cards.length; i++) {
45718 var card = cards[i].toLowerCase();
45719 var value = card[
0];
45720 var suit = card[
1];
45721 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45727 this.fromString = function(rawEntropyStr) {
45728 // Find type of entropy being used (binary, hex, dice etc)
45729 var base = getBase(rawEntropyStr);
45730 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45731 // This is done by changing all
6s to
0s
45732 if (base.str ==
"dice") {
45735 for (var i=
0; i
<base.parts.length; i++) {
45736 var c = base.parts[i];
45737 if (
"12345".indexOf(c)
> -
1) {
45738 newParts[i] = base.parts[i];
45739 newInts[i] = base.ints[i];
45746 base.str = "base
6 (dice)";
45747 base.ints = newInts;
45748 base.parts = newParts;
45749 base.matcher = matchers.base6;
45751 // Detect empty entropy
45752 if (base.parts.length ==
0) {
45760 // Convert base.ints to BigInteger.
45761 // Due to using unusual bases, eg cards of base52, this is not as simple as
45762 // using BigInteger.parse()
45763 var entropyInt = BigInteger.ZERO;
45764 for (var i=base.ints.length-
1; i
>=
0; i--) {
45765 var thisInt = BigInteger.parse(base.ints[i]);
45766 var power = (base.ints.length -
1) - i;
45767 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45768 entropyInt = entropyInt.add(additionalEntropy);
45770 // Convert entropy to binary
45771 var entropyBin = entropyInt.toString(
2);
45772 // If the first integer is small, it must be padded with zeros.
45773 // Otherwise the chance of the first bit being
1 is
100%, which is
45774 // obviously incorrect.
45775 // This is not perfect for non-
2^n bases.
45776 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45777 while (entropyBin.length < expectedBits) {
45778 entropyBin = "
0" + entropyBin;
45780 // Calculate the number of bits per event
45781 var bitsPerEvent = Math.log2(base.asInt);
45782 // Cards binary must be handled differently, since they're not replaced
45783 if (base.asInt ==
52) {
45784 var cardEntropy = processCardEntropy(base.parts);
45785 entropyBin = cardEntropy.binaryStr;
45786 bitsPerEvent = cardEntropy.bitsPerEvent;
45788 // Supply a 'filtered' entropy string for display purposes
45789 var entropyClean = base.parts.join("");
45790 var entropyHtml = base.parts.join("");
45791 if (base.asInt ==
52) {
45792 entropyClean = base.parts.join(" ").toUpperCase();
45793 entropyClean = entropyClean.replace(/C/g, "\u2663");
45794 entropyClean = entropyClean.replace(/D/g, "\u2666");
45795 entropyClean = entropyClean.replace(/H/g, "\u2665");
45796 entropyClean = entropyClean.replace(/S/g, "\u2660");
45797 entropyHtml = base.parts.join(" ").toUpperCase();
45798 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45799 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45800 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45801 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45803 // Return the result
45805 binaryStr: entropyBin,
45806 cleanStr: entropyClean,
45807 cleanHtml: entropyHtml,
45808 bitsPerEvent: bitsPerEvent,
45814 function getSortedDeck() {
45816 var suits = "CDHS
";
45817 var values = "A23456789TJQK
";
45818 for (var i=0; i<suits.length; i++) {
45819 for (var j=0; j<values.length; j++) {
45820 s.push(values[j]+suits[i]);
45826 function getBase(str) {
45827 // Need to get the lowest base for the supplied entropy.
45828 // This prevents interpreting, say, dice rolls as hexadecimal.
45829 var binaryMatches = matchers.binary(str);
45830 var hexMatches = matchers.hex(str);
45831 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45832 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45833 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45836 parts: binaryMatches,
45837 matcher: matchers.binary,
45842 var cardMatches = matchers.card(str);
45843 if (cardMatches.length >= hexMatches.length / 2) {
45844 var ints = convertCardsToInts(cardMatches);
45847 parts: cardMatches,
45848 matcher: matchers.card,
45853 var diceMatches = matchers.dice(str);
45854 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45855 var ints = diceMatches.map(function(i) { return parseInt(i) });
45858 parts: diceMatches,
45859 matcher: matchers.dice,
45864 var base6Matches = matchers.base6(str);
45865 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45866 var ints = base6Matches.map(function(i) { return parseInt(i) });
45869 parts: base6Matches,
45870 matcher: matchers.base6,
45875 var base10Matches = matchers.base10(str);
45876 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45877 var ints = base10Matches.map(function(i) { return parseInt(i) });
45880 parts: base10Matches,
45881 matcher: matchers.base10,
45886 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
45890 matcher: matchers.hex,
45892 str:
"hexadecimal",
45896 // Assume cards are NOT replaced.
45897 // Additional entropy decreases as more cards are used. This means
45898 // total possible entropy is measured using n!, not base^n.
45899 // eg the second last card can be only one of two, not one of fifty two
45900 // so the added entropy for that card is only one bit at most
45901 function processCardEntropy(cards) {
45902 // Track how many instances of each card have been used, and thus
45903 // how many decks are in use.
45904 var cardCounts = {};
45905 var numberOfDecks =
0;
45906 // Work out number of decks by max(duplicates)
45907 for (var i=
0; i
<cards.length; i++) {
45908 // Get the card that was drawn
45909 var cardLower = cards[i];
45910 var card = cardLower.toUpperCase();
45911 // Initialize the count for this card if needed
45912 if (!(card in cardCounts)) {
45913 cardCounts[card] =
0;
45915 cardCounts[card] +=
1;
45916 // See if this is max(duplicates)
45917 if (cardCounts[card]
> numberOfDecks) {
45918 numberOfDecks = cardCounts[card];
45921 // Work out the total number of bits for this many decks
45922 // See http://crypto.stackexchange.com/q/
41886
45923 var gainedBits =
0;
45924 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
45925 // which becomes infinity for numberOfDecks
> 4
45926 for (var i=
1; i<=
52*numberOfDecks; i++) {
45927 gainedBits = gainedBits + Math.log2(i);
45929 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
45930 var maxBits = gainedBits - lostBits;
45931 // Convert the drawn cards to a binary representation.
45932 // The exact technique for doing this is unclear.
45934 // http://crypto.stackexchange.com/a/
41896
45935 //
"I even doubt that this is well defined (only the average entropy
45936 // is, I believe)."
45938 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
45939 //
"The binary representation can be the first log(permutations,2) bits
45940 // of the sha-2 hash of the normalized deck string."
45942 // In this specific implementation, the first N bits of the hash of the
45943 // normalized cards string is being used. Uppercase, no spaces; eg
45944 // sha256(
"AH8DQSTC2H")
45945 var totalCards = numberOfDecks *
52;
45946 var percentUsed = cards.length / totalCards;
45947 // Calculate the average number of bits of entropy for the number of
45949 var numberOfBits = Math.floor(maxBits * percentUsed);
45950 // Create a normalized string of the selected cards
45951 var normalizedCards = cards.join(
"").toUpperCase();
45952 // Convert to binary using the SHA256 hash of the normalized cards.
45953 // If the number of bits is more than
256, multiple hashes
45954 // are used until the required number of bits is reached.
45955 var entropyBin =
"";
45956 var iterations =
0;
45957 while (entropyBin.length < numberOfBits) {
45958 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
45959 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
45960 for (var i=
0; i
<hashHex.length; i++) {
45961 var decimal = parseInt(hashHex[i],
16);
45962 var binary = decimal.toString(
2);
45963 while (binary.length <
4) {
45964 binary =
"0" + binary;
45966 entropyBin = entropyBin + binary;
45968 iterations = iterations +
1;
45970 // Truncate to the appropriate number of bits.
45971 entropyBin = entropyBin.substring(
0, numberOfBits);
45972 // Get the number of bits per event
45973 bitsPerEvent = maxBits / totalCards;
45975 binaryStr: entropyBin,
45976 bitsPerEvent: bitsPerEvent,
45980 // Polyfill for Math.log2
45981 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
45982 Math.log2 = Math.log2 || function(x) {
45983 // The polyfill isn't good enough because of the poor accuracy of
45985 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
45986 // So instead use the BigInteger library to get it right.
45987 return BigInteger.log(x) / BigInteger.log(
2);
45990 // Depends on BigInteger
45991 function factorial(n) {
45995 f = BigInteger.ONE;
45996 for (var i=
1; i<=n; i++) {
45997 f = f.multiply(new BigInteger(i));
46004 <script>(function() {
46006 // mnemonics is populated as required by getLanguage
46007 var mnemonics = { "english": new Mnemonic("english") };
46008 var mnemonic = mnemonics["english"];
46010 var bip32RootKey = null;
46011 var bip32ExtendedKey = null;
46012 var network = bitcoinjs.bitcoin.networks.bitcoin;
46013 var addressRowTemplate = $("#address-row-template");
46015 var showIndex = true;
46016 var showAddress = true;
46017 var showPubKey = true;
46018 var showPrivKey = true;
46019 var showQr = false;
46020 var litecoinUseLtub = false;
46022 var entropyChangeTimeoutEvent = null;
46023 var phraseChangeTimeoutEvent = null;
46024 var rootKeyChangedTimeoutEvent = null;
46026 var generationProcesses = [];
46029 DOM.network = $(".network");
46030 DOM.bip32Client = $("#bip32-client");
46031 DOM.phraseNetwork = $("#network-phrase");
46032 DOM.useEntropy = $(".use-entropy");
46033 DOM.entropyContainer = $(".entropy-container");
46034 DOM.entropy = $(".entropy");
46035 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46036 DOM.entropyType = DOM.entropyContainer.find(".type");
46037 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46038 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46039 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46040 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46041 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46042 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46043 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46044 DOM.entropyFilterWarning = DOM.entropyContainer.find(".filter-warning");
46045 DOM.phrase = $(".phrase");
46046 DOM.passphrase = $(".passphrase");
46047 DOM.generateContainer = $(".generate-container");
46048 DOM.generate = $(".generate");
46049 DOM.seed = $(".seed");
46050 DOM.rootKey = $(".root-key");
46051 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46052 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46053 DOM.extendedPrivKey = $(".extended-priv-key");
46054 DOM.extendedPubKey = $(".extended-pub-key");
46055 DOM.bip32tab = $("#bip32-tab");
46056 DOM.bip44tab = $("#bip44-tab");
46057 DOM.bip49tab = $("#bip49-tab");
46058 DOM.bip32panel = $("#bip32");
46059 DOM.bip44panel = $("#bip44");
46060 DOM.bip49panel = $("#bip49");
46061 DOM.bip32path = $("#bip32-path");
46062 DOM.bip44path = $("#bip44-path");
46063 DOM.bip44purpose = $("#bip44 .purpose");
46064 DOM.bip44coin = $("#bip44 .coin");
46065 DOM.bip44account = $("#bip44 .account");
46066 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46067 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46068 DOM.bip44change = $("#bip44 .change");
46069 DOM.bip49unavailable = $("#bip49 .unavailable");
46070 DOM.bip49available = $("#bip49 .available");
46071 DOM.bip49path = $("#bip49-path");
46072 DOM.bip49purpose = $("#bip49 .purpose");
46073 DOM.bip49coin = $("#bip49 .coin");
46074 DOM.bip49account = $("#bip49 .account");
46075 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46076 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46077 DOM.bip49change = $("#bip49 .change");
46078 DOM.generatedStrength = $(".generate-container .strength");
46079 DOM.hardenedAddresses = $(".hardened-addresses");
46080 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
46081 DOM.useBitpayAddressesContainer = $(".use-bitpay-addresses-container");
46082 DOM.useBitpayAddresses = $(".use-bitpay-addresses");
46083 DOM.addresses = $(".addresses");
46084 DOM.rowsToAdd = $(".rows-to-add");
46085 DOM.more = $(".more");
46086 DOM.moreRowsStartIndex = $(".more-rows-start-index");
46087 DOM.feedback = $(".feedback");
46088 DOM.tab = $(".derivation-type a");
46089 DOM.indexToggle = $(".index-toggle");
46090 DOM.addressToggle = $(".address-toggle");
46091 DOM.publicKeyToggle = $(".public-key-toggle");
46092 DOM.privateKeyToggle = $(".private-key-toggle");
46093 DOM.languages = $(".languages a");
46094 DOM.qrContainer = $(".qr-container");
46095 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46096 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46097 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46098 DOM.showQrEls = $("[data-show-qr]");
46102 DOM.network.on("change", networkChanged);
46103 DOM.bip32Client.on("change", bip32ClientChanged);
46104 DOM.useEntropy.on("change", setEntropyVisibility);
46105 DOM.entropy.on("input", delayedEntropyChanged);
46106 DOM.entropyMnemonicLength.on("change", entropyChanged);
46107 DOM.phrase.on("input", delayedPhraseChanged);
46108 DOM.passphrase.on("input", delayedPhraseChanged);
46109 DOM.generate.on("click", generateClicked);
46110 DOM.more.on("click", showMore);
46111 DOM.rootKey.on("input", delayedRootKeyChanged);
46112 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46113 DOM.bip32path.on("input", calcForDerivationPath);
46114 DOM.bip44account.on("input", calcForDerivationPath);
46115 DOM.bip44change.on("input", calcForDerivationPath);
46116 DOM.bip49account.on("input", calcForDerivationPath);
46117 DOM.bip49change.on("input", calcForDerivationPath);
46118 DOM.tab.on("shown.bs.tab", tabChanged);
46119 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46120 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46121 DOM.indexToggle.on("click", toggleIndexes);
46122 DOM.addressToggle.on("click", toggleAddresses);
46123 DOM.publicKeyToggle.on("click", togglePublicKeys);
46124 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46125 DOM.languages.on("click", languageChanged);
46126 DOM.useBitpayAddresses.on("change", useBitpayAddressesChange);
46127 setQrEvents(DOM.showQrEls);
46130 hideValidationError();
46131 populateNetworkSelect();
46132 populateClientSelect();
46137 function networkChanged(e) {
46138 clearDerivedKeys();
46139 clearAddressesList();
46140 DOM.litecoinLtubContainer.addClass("hidden");
46141 DOM.useBitpayAddressesContainer.addClass("hidden");
46142 var networkIndex = e.target.value;
46143 var network = networks[networkIndex];
46144 network.onSelect();
46145 if (network.p2wpkhNestedInP2shAvailable) {
46146 showP2wpkhNestedInP2shAvailable();
46149 showP2wpkhNestedInP2shUnavailable();
46151 if (seed != null) {
46159 function bip32ClientChanged(e) {
46160 var clientIndex = DOM.bip32Client.val();
46161 if (clientIndex == "custom") {
46162 DOM.bip32path.prop("readonly", false);
46165 DOM.bip32path.prop("readonly", true);
46166 clients[clientIndex].onSelect();
46167 if (seed != null) {
46176 function setEntropyVisibility() {
46177 if (isUsingOwnEntropy()) {
46178 DOM.entropyContainer.removeClass("hidden");
46179 DOM.generateContainer.addClass("hidden");
46180 DOM.phrase.prop("readonly", true);
46181 DOM.entropy.focus();
46185 DOM.entropyContainer.addClass("hidden");
46186 DOM.generateContainer.removeClass("hidden");
46187 DOM.phrase.prop("readonly", false);
46192 function delayedPhraseChanged() {
46193 hideValidationError();
46195 bip32RootKey = null;
46196 bip32ExtendedKey = null;
46197 clearAddressesList();
46199 if (phraseChangeTimeoutEvent != null) {
46200 clearTimeout(phraseChangeTimeoutEvent);
46202 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46205 function phraseChanged() {
46207 setMnemonicLanguage();
46208 // Get the mnemonic phrase
46209 var phrase = DOM.phrase.val();
46210 var errorText = findPhraseErrors(phrase);
46212 showValidationError(errorText);
46215 // Calculate and display
46216 var passphrase = DOM.passphrase.val();
46217 calcBip32RootKeyFromSeed(phrase, passphrase);
46218 calcForDerivationPath();
46221 function tabChanged() {
46223 adjustNetworkForBip49();
46224 var phrase = DOM.phrase.val();
46225 if (phrase != "") {
46226 // Calculate and display for mnemonic
46227 var errorText = findPhraseErrors(phrase);
46229 showValidationError(errorText);
46232 // Calculate and display
46233 var passphrase = DOM.passphrase.val();
46234 calcBip32RootKeyFromSeed(phrase, passphrase);
46237 // Calculate and display for root key
46238 var rootKeyBase58 = DOM.rootKey.val();
46239 var errorText = validateRootKey(rootKeyBase58);
46241 showValidationError(errorText);
46244 // Calculate and display
46245 calcBip32RootKeyFromBase58(rootKeyBase58);
46247 calcForDerivationPath();
46250 function delayedEntropyChanged() {
46251 hideValidationError();
46253 if (entropyChangeTimeoutEvent != null) {
46254 clearTimeout(entropyChangeTimeoutEvent);
46256 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46259 function entropyChanged() {
46260 // If blank entropy, clear mnemonic, addresses, errors
46261 if (DOM.entropy.val().trim().length ==
0) {
46263 clearEntropyFeedback();
46264 DOM.phrase.val("");
46265 showValidationError("Blank entropy");
46268 // Get the current phrase to detect changes
46269 var phrase = DOM.phrase.val();
46270 // Set the phrase from the entropy
46271 setMnemonicFromEntropy();
46272 // Recalc addresses if the phrase has changed
46273 var newPhrase = DOM.phrase.val();
46274 if (newPhrase != phrase) {
46275 if (newPhrase.length ==
0) {
46287 function delayedRootKeyChanged() {
46288 // Warn if there is an existing mnemonic or passphrase.
46289 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46290 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46291 DOM.rootKey.val(bip32RootKey);
46295 hideValidationError();
46297 // Clear existing mnemonic and passphrase
46298 DOM.phrase.val(
"");
46299 DOM.passphrase.val(
"");
46301 if (rootKeyChangedTimeoutEvent != null) {
46302 clearTimeout(rootKeyChangedTimeoutEvent);
46304 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46307 function rootKeyChanged() {
46309 hideValidationError();
46310 var rootKeyBase58 = DOM.rootKey.val();
46311 var errorText = validateRootKey(rootKeyBase58);
46313 showValidationError(errorText);
46316 // Calculate and display
46317 calcBip32RootKeyFromBase58(rootKeyBase58);
46318 calcForDerivationPath();
46321 function litecoinUseLtubChanged() {
46322 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46323 if (litecoinUseLtub) {
46324 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46327 network = bitcoinjs.bitcoin.networks.litecoin;
46332 function calcForDerivationPath() {
46333 clearDerivedKeys();
46334 clearAddressesList();
46336 // Don't show bip49 if it's selected but network doesn't support it
46337 if (bip49TabSelected() && !networkHasBip49()) {
46340 // Get the derivation path
46341 var derivationPath = getDerivationPath();
46342 var errorText = findDerivationPathErrors(derivationPath);
46344 showValidationError(errorText);
46347 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46348 if (bip44TabSelected()) {
46349 displayBip44Info();
46351 if (bip49TabSelected()) {
46352 displayBip49Info();
46354 displayBip32Info();
46357 function generateClicked() {
46358 if (isUsingOwnEntropy()) {
46363 setTimeout(function() {
46364 setMnemonicLanguage();
46365 var phrase = generateRandomPhrase();
46373 function languageChanged() {
46374 setTimeout(function() {
46375 setMnemonicLanguage();
46376 if (DOM.phrase.val().length
> 0) {
46377 var newPhrase = convertPhraseToNewLanguage();
46378 DOM.phrase.val(newPhrase);
46382 DOM.generate.trigger(
"click");
46387 function useBitpayAddressesChange() {
46388 setBitcoinCashNetworkValues();
46392 function toggleIndexes() {
46393 showIndex = !showIndex;
46394 $(
"td.index span").toggleClass(
"invisible");
46397 function toggleAddresses() {
46398 showAddress = !showAddress;
46399 $(
"td.address span").toggleClass(
"invisible");
46402 function togglePublicKeys() {
46403 showPubKey = !showPubKey;
46404 $(
"td.pubkey span").toggleClass(
"invisible");
46407 function togglePrivateKeys() {
46408 showPrivKey = !showPrivKey;
46409 $(
"td.privkey span").toggleClass(
"invisible");
46414 function generateRandomPhrase() {
46415 if (!hasStrongRandom()) {
46416 var errorText =
"This browser does not support strong randomness";
46417 showValidationError(errorText);
46420 var numWords = parseInt(DOM.generatedStrength.val());
46421 var strength = numWords /
3 *
32;
46422 var words = mnemonic.generate(strength);
46423 DOM.phrase.val(words);
46427 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46428 seed = mnemonic.toSeed(phrase, passphrase);
46429 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46432 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46433 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46436 function calcBip32ExtendedKey(path) {
46437 // Check there's a root key to derive from
46438 if (!bip32RootKey) {
46439 return bip32RootKey;
46441 var extendedKey = bip32RootKey;
46442 // Derive the key from the path
46443 var pathBits = path.split(
"/");
46444 for (var i=
0; i
<pathBits.length; i++) {
46445 var bit = pathBits[i];
46446 var index = parseInt(bit);
46447 if (isNaN(index)) {
46450 var hardened = bit[bit.length-
1] ==
"'";
46451 var isPriv = !(extendedKey.isNeutered());
46452 var invalidDerivationPath = hardened && !isPriv;
46453 if (invalidDerivationPath) {
46454 extendedKey = null;
46456 else if (hardened) {
46457 extendedKey = extendedKey.deriveHardened(index);
46460 extendedKey = extendedKey.derive(index);
46466 function showValidationError(errorText) {
46472 function hideValidationError() {
46478 function findPhraseErrors(phrase) {
46479 // Preprocess the words
46480 phrase = mnemonic.normalizeString(phrase);
46481 var words = phraseToWordArray(phrase);
46482 // Detect blank phrase
46483 if (words.length ==
0) {
46484 return
"Blank mnemonic";
46487 for (var i=
0; i
<words.length; i++) {
46488 var word = words[i];
46489 var language = getLanguage();
46490 if (WORDLISTS[language].indexOf(word) == -
1) {
46491 console.log(
"Finding closest match to " + word);
46492 var nearestWord = findNearestWord(word);
46493 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46496 // Check the words are valid
46497 var properPhrase = wordArrayToPhrase(words);
46498 var isValid = mnemonic.check(properPhrase);
46500 return
"Invalid mnemonic";
46505 function validateRootKey(rootKeyBase58) {
46507 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46510 return
"Invalid root key";
46515 function getDerivationPath() {
46516 if (bip44TabSelected()) {
46517 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46518 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46519 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46520 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46522 path += purpose +
"'/";
46523 path += coin +
"'/";
46524 path += account +
"'/";
46526 DOM.bip44path.val(path);
46527 var derivationPath = DOM.bip44path.val();
46528 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46529 return derivationPath;
46531 if (bip49TabSelected()) {
46532 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46533 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46534 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46535 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46537 path += purpose +
"'/";
46538 path += coin +
"'/";
46539 path += account +
"'/";
46541 DOM.bip49path.val(path);
46542 var derivationPath = DOM.bip49path.val();
46543 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46544 return derivationPath;
46546 else if (bip32TabSelected()) {
46547 var derivationPath = DOM.bip32path.val();
46548 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46549 return derivationPath;
46552 console.log(
"Unknown derivation path");
46556 function findDerivationPathErrors(path) {
46557 // TODO is not perfect but is better than nothing
46559 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46561 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46562 var maxDepth =
255; // TODO verify this!!
46563 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46564 if (path[
0] !=
"m") {
46565 return
"First character must be 'm'";
46567 if (path.length
> 1) {
46568 if (path[
1] !=
"/") {
46569 return
"Separator must be '/'";
46571 var indexes = path.split(
"/");
46572 if (indexes.length
> maxDepth) {
46573 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46575 for (var depth =
1; depth
<indexes.length; depth++) {
46576 var index = indexes[depth];
46577 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46578 if (invalidChars.length
> 0) {
46579 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46581 var indexValue = parseInt(index.replace(
"'",
""));
46582 if (isNaN(depth)) {
46583 return
"Invalid number at depth " + depth;
46585 if (indexValue
> maxIndexValue) {
46586 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46590 // Check root key exists or else derivation path is useless!
46591 if (!bip32RootKey) {
46592 return "No root key";
46594 // Check no hardened derivation path when using xpub keys
46595 var hardenedPath = path.indexOf("'")
> -
1;
46596 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46597 var hardened = hardenedPath || hardenedAddresses;
46598 var isXpubkey = bip32RootKey.isNeutered();
46599 if (hardened && isXpubkey) {
46600 return "Hardened derivation path is invalid with xpub key";
46605 function displayBip44Info() {
46606 // Get the derivation path for the account
46607 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46608 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46609 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46611 path += purpose + "'/";
46612 path += coin + "'/";
46613 path += account + "'/";
46614 // Calculate the account extended keys
46615 var accountExtendedKey = calcBip32ExtendedKey(path);
46616 var accountXprv = accountExtendedKey.toBase58();
46617 var accountXpub = accountExtendedKey.neutered().toBase58();
46618 // Display the extended keys
46619 DOM.bip44accountXprv.val(accountXprv);
46620 DOM.bip44accountXpub.val(accountXpub);
46623 function displayBip49Info() {
46624 // Get the derivation path for the account
46625 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46626 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46627 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46629 path += purpose + "'/";
46630 path += coin + "'/";
46631 path += account + "'/";
46632 // Calculate the account extended keys
46633 var accountExtendedKey = calcBip32ExtendedKey(path);
46634 var accountXprv = accountExtendedKey.toBase58();
46635 var accountXpub = accountExtendedKey.neutered().toBase58();
46636 // Display the extended keys
46637 DOM.bip49accountXprv.val(accountXprv);
46638 DOM.bip49accountXpub.val(accountXpub);
46641 function displayBip32Info() {
46643 DOM.seed.val(seed);
46644 var rootKey = bip32RootKey.toBase58();
46645 DOM.rootKey.val(rootKey);
46646 var xprvkeyB58 = "NA";
46647 if (!bip32ExtendedKey.isNeutered()) {
46648 xprvkeyB58 = bip32ExtendedKey.toBase58();
46650 var extendedPrivKey = xprvkeyB58;
46651 DOM.extendedPrivKey.val(extendedPrivKey);
46652 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46653 DOM.extendedPubKey.val(extendedPubKey);
46654 // Display the addresses and privkeys
46655 clearAddressesList();
46656 displayAddresses(
0,
20);
46659 function displayAddresses(start, total) {
46660 generationProcesses.push(new (function() {
46664 this.stop = function() {
46665 for (var i=
0; i
<rows.length; i++) {
46666 rows[i].shouldGenerate = false;
46671 for (var i=
0; i
<total; i++) {
46672 var index = i + start;
46673 var isLast = i == total -
1;
46674 rows.push(new TableRow(index, isLast));
46680 function P2wpkhNestedInP2shSelected() {
46681 return bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46684 function TableRow(index, isLast) {
46687 this.shouldGenerate = true;
46688 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46689 var isP2wpkhNestedInP2sh = P2wpkhNestedInP2shSelected();
46690 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46696 function calculateValues() {
46697 setTimeout(function() {
46698 if (!self.shouldGenerate) {
46702 if (useHardenedAddresses) {
46703 key = bip32ExtendedKey.deriveHardened(index);
46706 key = bip32ExtendedKey.derive(index);
46708 var address = key.getAddress().toString();
46709 var privkey =
"NA";
46710 if (!key.isNeutered()) {
46711 privkey = key.keyPair.toWIF(network);
46713 var pubkey = key.getPublicKeyBuffer().toString('hex');
46714 var indexText = getDerivationPath() +
"/" + index;
46715 if (useHardenedAddresses) {
46716 indexText = indexText +
"'";
46718 // Ethereum values are different
46719 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46720 var privKeyBuffer = key.keyPair.d.toBuffer();
46721 privkey = privKeyBuffer.toString('hex');
46722 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46723 var hexAddress = addressBuffer.toString('hex');
46724 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46725 address = ethUtil.addHexPrefix(checksumAddress);
46726 privkey = ethUtil.addHexPrefix(privkey);
46727 pubkey = ethUtil.addHexPrefix(pubkey);
46729 // Ripple values are different
46730 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46731 privkey = convertRipplePriv(privkey);
46732 address = convertRippleAdrr(address);
46734 // BIP49 addresses are different
46735 if (isP2wpkhNestedInP2sh) {
46736 if (!p2wpkhNestedInP2shAvailable) {
46739 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46740 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46741 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46742 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46743 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46745 addAddressToList(indexText, address, pubkey, privkey);
46756 function showMore() {
46757 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46758 if (isNaN(rowsToAdd)) {
46760 DOM.rowsToAdd.val(
"20");
46762 var start = parseInt(DOM.moreRowsStartIndex.val())
46763 if (isNaN(start)) {
46764 start = lastIndexInTable() +
1;
46767 var newStart = start + rowsToAdd;
46768 DOM.moreRowsStartIndex.val(newStart);
46770 if (rowsToAdd
> 200) {
46771 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46772 msg +=
"Do you want to continue?";
46773 if (!confirm(msg)) {
46777 displayAddresses(start, rowsToAdd);
46780 function clearDisplay() {
46781 clearAddressesList();
46783 hideValidationError();
46786 function clearAddressesList() {
46787 DOM.addresses.empty();
46791 function stopGenerating() {
46792 while (generationProcesses.length
> 0) {
46793 var generation = generationProcesses.shift();
46798 function clearKeys() {
46800 clearDerivedKeys();
46803 function clearRootKey() {
46804 DOM.rootKey.val(
"");
46807 function clearDerivedKeys() {
46808 DOM.extendedPrivKey.val(
"");
46809 DOM.extendedPubKey.val(
"");
46810 DOM.bip44accountXprv.val(
"");
46811 DOM.bip44accountXpub.val(
"");
46814 function addAddressToList(indexText, address, pubkey, privkey) {
46815 var row = $(addressRowTemplate.html());
46817 var indexCell = row.find(
".index span");
46818 var addressCell = row.find(
".address span");
46819 var pubkeyCell = row.find(
".pubkey span");
46820 var privkeyCell = row.find(
".privkey span");
46822 indexCell.text(indexText);
46823 addressCell.text(address);
46824 pubkeyCell.text(pubkey);
46825 privkeyCell.text(privkey);
46828 indexCell.addClass(
"invisible");
46830 if (!showAddress) {
46831 addressCell.addClass(
"invisible");
46834 pubkeyCell.addClass(
"invisible");
46836 if (!showPrivKey) {
46837 privkeyCell.addClass(
"invisible");
46839 DOM.addresses.append(row);
46840 var rowShowQrEls = row.find(
"[data-show-qr]");
46841 setQrEvents(rowShowQrEls);
46844 function hasStrongRandom() {
46845 return 'crypto' in window && window['crypto'] !== null;
46848 function disableForms() {
46849 $(
"form").on(
"submit", function(e) {
46850 e.preventDefault();
46854 function parseIntNoNaN(val, defaultVal) {
46855 var v = parseInt(val);
46862 function showPending() {
46864 .text(
"Calculating...")
46868 function findNearestWord(word) {
46869 var language = getLanguage();
46870 var words = WORDLISTS[language];
46871 var minDistance =
99;
46872 var closestWord = words[
0];
46873 for (var i=
0; i
<words.length; i++) {
46874 var comparedTo = words[i];
46875 if (comparedTo.indexOf(word) ==
0) {
46878 var distance = Levenshtein.get(word, comparedTo);
46879 if (distance < minDistance) {
46880 closestWord = comparedTo;
46881 minDistance = distance;
46884 return closestWord;
46887 function hidePending() {
46893 function populateNetworkSelect() {
46894 for (var i=
0; i
<networks.length; i++) {
46895 var network = networks[i];
46896 var option = $(
"<option>");
46897 option.attr(
"value", i);
46898 option.text(network.name);
46899 if (network.name ==
"BTC - Bitcoin") {
46900 option.prop(
"selected", true);
46902 DOM.phraseNetwork.append(option);
46906 function populateClientSelect() {
46907 for (var i=
0; i
<clients.length; i++) {
46908 var client = clients[i];
46909 var option = $(
"<option>");
46910 option.attr(
"value", i);
46911 option.text(client.name);
46912 DOM.bip32Client.append(option);
46916 function getLanguage() {
46917 var defaultLanguage =
"english";
46918 // Try to get from existing phrase
46919 var language = getLanguageFromPhrase();
46920 // Try to get from url if not from phrase
46921 if (language.length ==
0) {
46922 language = getLanguageFromUrl();
46924 // Default to English if no other option
46925 if (language.length ==
0) {
46926 language = defaultLanguage;
46931 function getLanguageFromPhrase(phrase) {
46932 // Check if how many words from existing phrase match a language.
46935 phrase = DOM.phrase.val();
46937 if (phrase.length
> 0) {
46938 var words = phraseToWordArray(phrase);
46939 var languageMatches = {};
46940 for (l in WORDLISTS) {
46941 // Track how many words match in this language
46942 languageMatches[l] =
0;
46943 for (var i=
0; i
<words.length; i++) {
46944 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
46945 if (wordInLanguage) {
46946 languageMatches[l]++;
46949 // Find languages with most word matches.
46950 // This is made difficult due to commonalities between Chinese
46951 // simplified vs traditional.
46952 var mostMatches =
0;
46953 var mostMatchedLanguages = [];
46954 for (var l in languageMatches) {
46955 var numMatches = languageMatches[l];
46956 if (numMatches
> mostMatches) {
46957 mostMatches = numMatches;
46958 mostMatchedLanguages = [l];
46960 else if (numMatches == mostMatches) {
46961 mostMatchedLanguages.push(l);
46965 if (mostMatchedLanguages.length
> 0) {
46966 // Use first language and warn if multiple detected
46967 language = mostMatchedLanguages[
0];
46968 if (mostMatchedLanguages.length
> 1) {
46969 console.warn(
"Multiple possible languages");
46970 console.warn(mostMatchedLanguages);
46977 function getLanguageFromUrl() {
46978 for (var language in WORDLISTS) {
46979 if (window.location.hash.indexOf(language)
> -
1) {
46986 function setMnemonicLanguage() {
46987 var language = getLanguage();
46988 // Load the bip39 mnemonic generator for this language if required
46989 if (!(language in mnemonics)) {
46990 mnemonics[language] = new Mnemonic(language);
46992 mnemonic = mnemonics[language];
46995 function convertPhraseToNewLanguage() {
46996 var oldLanguage = getLanguageFromPhrase();
46997 var newLanguage = getLanguageFromUrl();
46998 var oldPhrase = DOM.phrase.val();
46999 var oldWords = phraseToWordArray(oldPhrase);
47001 for (var i=
0; i
<oldWords.length; i++) {
47002 var oldWord = oldWords[i];
47003 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47004 var newWord = WORDLISTS[newLanguage][index];
47005 newWords.push(newWord);
47007 newPhrase = wordArrayToPhrase(newWords);
47011 // TODO look at jsbip39 - mnemonic.splitWords
47012 function phraseToWordArray(phrase) {
47013 var words = phrase.split(/\s/g);
47015 for (var i=
0; i
<words.length; i++) {
47016 var word = words[i];
47017 if (word.length
> 0) {
47018 noBlanks.push(word);
47024 // TODO look at jsbip39 - mnemonic.joinWords
47025 function wordArrayToPhrase(words) {
47026 var phrase = words.join(
" ");
47027 var language = getLanguageFromPhrase(phrase);
47028 if (language ==
"japanese") {
47029 phrase = words.join(
"\u3000");
47034 function isUsingOwnEntropy() {
47035 return DOM.useEntropy.prop(
"checked");
47038 function setMnemonicFromEntropy() {
47039 clearEntropyFeedback();
47040 // Get entropy value
47041 var entropyStr = DOM.entropy.val();
47042 // Work out minimum base for entropy
47043 var entropy = Entropy.fromString(entropyStr);
47044 if (entropy.binaryStr.length ==
0) {
47047 // Show entropy details
47048 showEntropyFeedback(entropy);
47049 // Use entropy hash if not using raw entropy
47050 var bits = entropy.binaryStr;
47051 var mnemonicLength = DOM.entropyMnemonicLength.val();
47052 if (mnemonicLength !=
"raw") {
47053 // Get bits by hashing entropy with SHA256
47054 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47055 var hex = sjcl.codec.hex.fromBits(hash);
47056 bits = BigInteger.parse(hex,
16).toString(
2);
47057 while (bits.length %
256 !=
0) {
47060 // Truncate hash to suit number of words
47061 mnemonicLength = parseInt(mnemonicLength);
47062 var numberOfBits =
32 * mnemonicLength /
3;
47063 bits = bits.substring(
0, numberOfBits);
47065 // Discard trailing entropy
47066 var bitsToUse = Math.floor(bits.length /
32) *
32;
47067 var start = bits.length - bitsToUse;
47068 var binaryStr = bits.substring(start);
47069 // Convert entropy string to numeric array
47070 var entropyArr = [];
47071 for (var i=
0; i
<binaryStr.length /
8; i++) {
47072 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47073 var entropyByte = parseInt(byteAsBits,
2);
47074 entropyArr.push(entropyByte)
47076 // Convert entropy array to mnemonic
47077 var phrase = mnemonic.toMnemonic(entropyArr);
47078 // Set the mnemonic in the UI
47079 DOM.phrase.val(phrase);
47082 function clearEntropyFeedback() {
47083 DOM.entropyCrackTime.text(
"...");
47084 DOM.entropyType.text(
"");
47085 DOM.entropyWordCount.text(
"0");
47086 DOM.entropyEventCount.text(
"0");
47087 DOM.entropyBitsPerEvent.text(
"0");
47088 DOM.entropyBits.text(
"0");
47089 DOM.entropyFiltered.html(
" ");
47090 DOM.entropyBinary.html(
" ");
47093 function showEntropyFeedback(entropy) {
47094 var numberOfBits = entropy.binaryStr.length;
47095 var timeToCrack =
"unknown";
47097 var z = zxcvbn(entropy.base.parts.join(
""));
47098 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47099 if (z.feedback.warning !=
"") {
47100 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47104 console.log(
"Error detecting entropy strength with zxcvbn:");
47107 var entropyTypeStr = getEntropyTypeStr(entropy);
47108 var wordCount = Math.floor(numberOfBits /
32) *
3;
47109 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47110 DOM.entropyFiltered.html(entropy.cleanHtml);
47111 DOM.entropyType.text(entropyTypeStr);
47112 DOM.entropyCrackTime.text(timeToCrack);
47113 DOM.entropyEventCount.text(entropy.base.ints.length);
47114 DOM.entropyBits.text(numberOfBits);
47115 DOM.entropyWordCount.text(wordCount);
47116 DOM.entropyBinary.text(entropy.binaryStr);
47117 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47118 // detect and warn of filtering
47119 var rawNoSpaces = DOM.entropy.val().replace(/\s/g,
"");
47120 var cleanNoSpaces = entropy.cleanStr.replace(/\s/g,
"");
47121 var isFiltered = rawNoSpaces.length != cleanNoSpaces.length;
47123 DOM.entropyFilterWarning.removeClass('hidden');
47126 DOM.entropyFilterWarning.addClass('hidden');
47130 function getEntropyTypeStr(entropy) {
47131 var typeStr = entropy.base.str;
47132 // Add some detail if these are cards
47133 if (entropy.base.asInt ==
52) {
47134 var cardDetail = []; // array of message strings
47135 // Detect duplicates
47137 var dupeTracker = {};
47138 for (var i=
0; i
<entropy.base.parts.length; i++) {
47139 var card = entropy.base.parts[i];
47140 var cardUpper = card.toUpperCase();
47141 if (cardUpper in dupeTracker) {
47144 dupeTracker[cardUpper] = true;
47146 if (dupes.length
> 0) {
47147 var dupeWord =
"duplicates";
47148 if (dupes.length ==
1) {
47149 dupeWord =
"duplicate";
47151 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47152 if (dupes.length
> 3) {
47155 cardDetail.push(msg);
47157 // Detect full deck
47158 var uniqueCards = [];
47159 for (var uniqueCard in dupeTracker) {
47160 uniqueCards.push(uniqueCard);
47162 if (uniqueCards.length ==
52) {
47163 cardDetail.unshift(
"full deck");
47165 // Detect missing cards
47166 var values =
"A23456789TJQK";
47167 var suits =
"CDHS";
47168 var missingCards = [];
47169 for (var i=
0; i
<suits.length; i++) {
47170 for (var j=
0; j
<values.length; j++) {
47171 var card = values[j] + suits[i];
47172 if (!(card in dupeTracker)) {
47173 missingCards.push(card);
47177 // Display missing cards if six or less, ie clearly going for full deck
47178 if (missingCards.length
> 0 && missingCards.length <=
6) {
47179 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47180 if (missingCards.length
> 3) {
47183 cardDetail.push(msg);
47185 // Add card details to typeStr
47186 if (cardDetail.length
> 0) {
47187 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47193 function setQrEvents(els) {
47194 els.on(
"mouseenter", createQr);
47195 els.on(
"mouseleave", destroyQr);
47196 els.on(
"click", toggleQr);
47199 function createQr(e) {
47200 var content = e.target.textContent || e.target.value;
47203 DOM.qrImage.qrcode({width: size, height: size, text: content});
47205 DOM.qrHider.addClass(
"hidden");
47208 DOM.qrHider.removeClass(
"hidden");
47210 DOM.qrContainer.removeClass(
"hidden");
47214 function destroyQr() {
47215 DOM.qrImage.text(
"");
47216 DOM.qrContainer.addClass(
"hidden");
47219 function toggleQr() {
47221 DOM.qrHider.toggleClass(
"hidden");
47222 DOM.qrHint.toggleClass(
"hidden");
47225 function bip44TabSelected() {
47226 return DOM.bip44tab.hasClass(
"active");
47229 function bip32TabSelected() {
47230 return DOM.bip32tab.hasClass(
"active");
47233 function useP2wpkhNestedInP2sh() {
47234 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47237 function networkHasBip49() {
47238 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47241 function bip49TabSelected() {
47242 return DOM.bip49tab.hasClass(
"active");
47245 function setHdCoin(coinValue) {
47246 DOM.bip44coin.val(coinValue);
47247 DOM.bip49coin.val(coinValue);
47250 function showP2wpkhNestedInP2shAvailable() {
47251 DOM.bip49unavailable.addClass(
"hidden");
47252 DOM.bip49available.removeClass(
"hidden");
47253 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47256 function showP2wpkhNestedInP2shUnavailable() {
47257 DOM.bip49available.addClass(
"hidden");
47258 DOM.bip49unavailable.removeClass(
"hidden");
47259 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47260 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47263 function useBitpayAddresses() {
47264 return !(DOM.useBitpayAddresses.prop(
"checked"));
47267 function setBitcoinCashNetworkValues() {
47268 if (useBitpayAddresses()) {
47269 network = bitcoinjs.bitcoin.networks.bitcoin;
47272 network = bitcoinjs.bitcoin.networks.bitcoinCashBitbpay;
47276 function adjustNetworkForBip49() {
47277 // If bip49 is selected the xpub/xprv prefixes need to be adjusted
47278 // to avoid accidentally importing BIP49 xpub to BIP44 watch only
47280 // See https://github.com/iancoleman/bip39/issues/
125
47281 if (P2wpkhNestedInP2shSelected()) {
47282 if (network == bitcoinjs.bitcoin.networks.bitcoin) {
47283 network = bitcoinjs.bitcoin.networks.bitcoinBip49;
47285 else if (network == bitcoinjs.bitcoin.networks.testnet) {
47286 network = bitcoinjs.bitcoin.networks.testnetBip49;
47288 else if (network == bitcoinjs.bitcoin.networks.litecoin) {
47289 network = bitcoinjs.bitcoin.networks.litecoinBip49;
47293 if (network == bitcoinjs.bitcoin.networks.bitcoinBip49) {
47294 network = bitcoinjs.bitcoin.networks.bitcoin;
47296 else if (network == bitcoinjs.bitcoin.networks.testnetBip49) {
47297 network = bitcoinjs.bitcoin.networks.testnet;
47299 else if (network == bitcoinjs.bitcoin.networks.litecoinBip49) {
47300 network = bitcoinjs.bitcoin.networks.litecoin;
47305 function lastIndexInTable() {
47306 var pathText = DOM.addresses.find(
".index").last().text();
47307 var pathBits = pathText.split(
"/");
47308 var lastBit = pathBits[pathBits.length-
1];
47309 var lastBitClean = lastBit.replace(
"'",
"");
47310 return parseInt(lastBitClean);
47315 name:
"BCH - Bitcoin Cash",
47316 p2wpkhNestedInP2shAvailable: false,
47317 onSelect: function() {
47318 DOM.useBitpayAddressesContainer.removeClass(
"hidden");
47319 setBitcoinCashNetworkValues();
47324 name:
"BTC - Bitcoin",
47325 p2wpkhNestedInP2shAvailable: true,
47326 onSelect: function() {
47327 network = bitcoinjs.bitcoin.networks.bitcoin;
47332 name:
"BTC - Bitcoin Testnet",
47333 p2wpkhNestedInP2shAvailable: true,
47334 onSelect: function() {
47335 network = bitcoinjs.bitcoin.networks.testnet;
47340 name:
"BTG - Bitcoin Gold",
47341 p2wpkhNestedInP2shAvailable: true,
47342 onSelect: function() {
47343 network = bitcoinjs.bitcoin.networks.bgold;
47348 name:
"CLAM - Clams",
47349 p2wpkhNestedInP2shAvailable: false,
47350 onSelect: function() {
47351 network = bitcoinjs.bitcoin.networks.clam;
47356 name:
"CRW - Crown",
47357 p2wpkhNestedInP2shAvailable: false,
47358 onSelect: function() {
47359 network = bitcoinjs.bitcoin.networks.crown;
47364 name:
"DASH - Dash",
47365 p2wpkhNestedInP2shAvailable: false,
47366 onSelect: function() {
47367 network = bitcoinjs.bitcoin.networks.dash;
47372 name:
"DASH - Dash Testnet",
47373 p2wpkhNestedInP2shAvailable: false,
47374 onSelect: function() {
47375 network = bitcoinjs.bitcoin.networks.dashtn;
47380 name:
"DOGE - Dogecoin",
47381 p2wpkhNestedInP2shAvailable: false,
47382 onSelect: function() {
47383 network = bitcoinjs.bitcoin.networks.dogecoin;
47388 name:
"ETH - Ethereum",
47389 p2wpkhNestedInP2shAvailable: false,
47390 onSelect: function() {
47391 network = bitcoinjs.bitcoin.networks.bitcoin;
47396 name:
"FJC - Fujicoin",
47397 p2wpkhNestedInP2shAvailable: false,
47398 onSelect: function() {
47399 network = bitcoinjs.bitcoin.networks.fujicoin;
47404 name:
"GAME - GameCredits",
47405 p2wpkhNestedInP2shAvailable: false,
47406 onSelect: function() {
47407 network = bitcoinjs.bitcoin.networks.game;
47412 name:
"JBS - Jumbucks",
47413 p2wpkhNestedInP2shAvailable: false,
47414 onSelect: function() {
47415 network = bitcoinjs.bitcoin.networks.jumbucks;
47420 name:
"LTC - Litecoin",
47421 p2wpkhNestedInP2shAvailable: true,
47422 onSelect: function() {
47423 network = bitcoinjs.bitcoin.networks.litecoin;
47425 DOM.litecoinLtubContainer.removeClass(
"hidden");
47429 name:
"MAZA - Maza",
47430 p2wpkhNestedInP2shAvailable: false,
47431 onSelect: function() {
47432 network = bitcoinjs.bitcoin.networks.maza;
47437 name:
"MONA - Monacoin",
47438 p2wpkhNestedInP2shAvailable: true,
47439 onSelect: function() {
47440 network = bitcoinjs.bitcoin.networks.monacoin,
47445 name:
"NMC - Namecoin",
47446 p2wpkhNestedInP2shAvailable: false,
47447 onSelect: function() {
47448 network = bitcoinjs.bitcoin.networks.namecoin;
47453 name:
"PIVX - PIVX",
47454 p2wpkhNestedInP2shAvailable: false,
47455 onSelect: function() {
47456 network = bitcoinjs.bitcoin.networks.pivx;
47461 name:
"PIVX - PIVX Testnet",
47462 p2wpkhNestedInP2shAvailable: false,
47463 onSelect: function() {
47464 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47469 name:
"PPC - Peercoin",
47470 p2wpkhNestedInP2shAvailable: false,
47471 onSelect: function() {
47472 network = bitcoinjs.bitcoin.networks.peercoin;
47477 name:
"SDC - ShadowCash",
47478 p2wpkhNestedInP2shAvailable: false,
47479 onSelect: function() {
47480 network = bitcoinjs.bitcoin.networks.shadow;
47485 name:
"SDC - ShadowCash Testnet",
47486 p2wpkhNestedInP2shAvailable: false,
47487 onSelect: function() {
47488 network = bitcoinjs.bitcoin.networks.shadowtn;
47493 name:
"SLM - Slimcoin",
47494 p2wpkhNestedInP2shAvailable: false,
47495 onSelect: function() {
47496 network = bitcoinjs.bitcoin.networks.slimcoin;
47501 name:
"SLM - Slimcoin Testnet",
47502 p2wpkhNestedInP2shAvailable: false,
47503 onSelect: function() {
47504 network = bitcoinjs.bitcoin.networks.slimcointn;
47509 name:
"USNBT - NuBits",
47510 p2wpkhNestedInP2shAvailable: false,
47511 onSelect: function() {
47512 network = bitcoinjs.bitcoin.networks.nubits;
47517 name:
"VIA - Viacoin",
47518 p2wpkhNestedInP2shAvailable: false,
47519 onSelect: function() {
47520 network = bitcoinjs.bitcoin.networks.viacoin;
47525 name:
"VIA - Viacoin Testnet",
47526 p2wpkhNestedInP2shAvailable: false,
47527 onSelect: function() {
47528 network = bitcoinjs.bitcoin.networks.viacointestnet;
47533 name:
"XMY - Myriadcoin",
47534 p2wpkhNestedInP2shAvailable: false,
47535 onSelect: function() {
47536 network = bitcoinjs.bitcoin.networks.myriadcoin;
47541 name:
"XRP - Ripple",
47542 p2wpkhNestedInP2shAvailable: false,
47543 onSelect: function() {
47544 network = bitcoinjs.bitcoin.networks.bitcoin;
47552 name:
"Bitcoin Core",
47553 onSelect: function() {
47554 DOM.bip32path.val(
"m/0'/0'");
47555 DOM.hardenedAddresses.prop('checked', true);
47559 name:
"blockchain.info",
47560 onSelect: function() {
47561 DOM.bip32path.val(
"m/44'/0'/0'");
47562 DOM.hardenedAddresses.prop('checked', false);
47566 name:
"MultiBit HD",
47567 onSelect: function() {
47568 DOM.bip32path.val(
"m/0'/0");
47569 DOM.hardenedAddresses.prop('checked', false);