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
.8</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>
629 <span>Show more rows
</span>:
630 <input type=
"number" class=
"rows-to-add" value=
"20">
631 <button class=
"more">Show
</button>
636 <div class=
"col-md-12">
638 <h3>BIP39
<span class=
"small">Mnemonic code for generating deterministic keys
</span></h3>
641 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
643 <h3>BIP32
<span class=
"small">Hierarchical Deterministic Wallets
</span></h3>
646 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
650 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
652 <h3>BIP44
<span class=
"small">Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
655 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
657 <h3>BIP49
<span class=
"small">Derivation scheme for P2WPKH-nested-in-P2SH based accounts
</span></h3>
660 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">official BIP49 spec
</a>
662 <h3>Private Keys
</h3>
666 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
668 <span>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
670 <h3 id=
"entropy-notes">Entropy
</h3>
673 Entropy values must be sourced from a
674 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
676 <span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
678 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
679 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
680 random enough for the needs of this tool.
684 <strong><span>Do not store entropy.
</span></strong>
687 <span>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
688 <span>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
689 <span><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
693 The random mnemonic generator on this page uses a
694 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
696 <span>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
697 <span>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
698 <span>In that case you might choose to use your own source of entropy.
</span>
701 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank">You are not a good source of entropy.
</a>
705 <span>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
708 <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>
715 <div class=
"col-md-12">
716 <h2>Alternative Tools
</h2>
717 <p>This tool is interoperable with any BIP39 wallet.
</p>
718 <p>Some similar tools to this one (ie not consumer wallets) are
</p>
720 <a href=
"https://bip32jp.github.io/english/">
721 https://bip32jp.github.io/english/
730 <div class=
"col-md-12">
732 <h2>Offline Usage
</h2>
735 You can use this tool without having to be online.
738 In your browser, select file save-as, and save this page
742 Double-click that file to open it in a browser
743 on any offline computer.
746 <span>Alternatively, download the file from the repository
</span>
748 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
757 <div class=
"col-md-12">
759 <h2>This project is
100% open-source code
</h2>
762 <span>Get the source code from the repository
</span>
764 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
765 https://github.com/iancoleman/bip39
772 <span>BitcoinJS -
</span>
773 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
774 https://github.com/bitcoinjs/bitcoinjs-lib
779 <span>jsBIP39 -
</span>
780 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
781 https://github.com/iancoleman/jsbip39
787 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
788 https://github.com/bitwiseshiftleft/sjcl
793 <span>jQuery -
</span>
794 <a href=
"https://jquery.com/" target=
"_blank">
800 <span>Twitter Bootstrap -
</span>
801 <a href=
"http://getbootstrap.com/" target=
"_blank">
802 http://getbootstrap.com/
811 <div class=
"qr-container hidden">
812 <div class=
"qr-hint bg-primary hidden">Click field to hide QR
</div>
813 <div class=
"qr-hint bg-primary">Click field to show QR
</div>
814 <div class=
"qr-hider hidden">
815 <div class=
"qr-image"></div>
816 <div class=
"qr-warning bg-primary">Caution: Scanner may keep history
</div>
820 <div class=
"feedback-container">
821 <div class=
"feedback">Loading...
</div>
824 <script type=
"text/template" id=
"address-row-template">
826 <td class=
"index"><span></span></td>
827 <td class=
"address"><span data-show-qr
></span></td>
828 <td class=
"pubkey"><span data-show-qr
></span></td>
829 <td class=
"privkey"><span data-show-qr
></span></td>
833 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
834 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
835 // but is not required in any modern browsers.
836 // For more information, see
837 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
839 //----------------------------------------------------------------------
841 // ECMAScript
2015 Polyfills
843 //----------------------------------------------------------------------
848 // Set this to always override native implementations, for testing
849 // the polyfill in browsers with partial/full ES2015 support.
850 var OVERRIDE_NATIVE_FOR_TESTING = false;
852 var undefined = (void
0); // Paranoia
857 return o === global ? undefined : o;
860 function hook(o, p, f) {
862 console.assert(typeof op === 'function', 'Hooking a non-function');
864 var o = strict(this);
865 var r = f.apply(o, arguments);
866 return r !== undefined ? r : op.apply(o, arguments);
870 function isSymbol(s) {
871 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
874 function getPropertyDescriptor(target, name) {
875 var desc = Object.getOwnPropertyDescriptor(target, name);
876 var proto = Object.getPrototypeOf(target);
877 while (!desc && proto) {
878 desc = Object.getOwnPropertyDescriptor(proto, name);
879 proto = Object.getPrototypeOf(proto);
884 var enqueue = (function(nativePromise, nativeSetImmediate) {
886 return function(job) { nativePromise.resolve().then(function() { job(); }); };
887 if (nativeSetImmediate)
888 return function(job) { nativeSetImmediate(job); };
889 return function(job) { setTimeout(job,
0); };
890 }(global['Promise'], global['setImmediate']));
892 function define(o, p, v, override) {
893 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
896 if (typeof v === 'function') {
897 // Sanity check that functions are appropriately named (where possible)
898 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
899 Object.defineProperty(o, p, {
906 Object.defineProperty(o, p, {
915 function set_internal(o, p, v) {
916 Object.defineProperty(o, p, {
924 // Snapshot intrinsic functions
925 var $isNaN = global.isNaN,
926 $parseInt = global.parseInt,
927 $parseFloat = global.parseFloat;
930 LOG10E = Math.LOG10E,
940 random = Math.random,
943 var orig_match = String.prototype.match,
944 orig_replace = String.prototype.replace,
945 orig_search = String.prototype.search,
946 orig_split = String.prototype.split;
948 // These are used for implementing the polyfills, but not exported.
950 // Inspired by https://gist.github.com/
1638059
952 function EphemeronTable() {
953 var secretKey = ObjectCreate(null);
955 function conceal(o) {
956 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
957 Object.defineProperty(o, 'valueOf', {
958 value: (function(secretKey) {
959 return function (k) {
960 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
971 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
972 return v === o ? null : v;
977 secretKey = ObjectCreate(null);
979 remove: function(key) {
980 var secrets = reveal(key);
981 if (secrets && HasOwnProperty(secrets, 'value')) {
982 delete secrets.value;
987 get: function(key, defaultValue) {
988 var secrets = reveal(key);
989 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
992 var secrets = reveal(key);
993 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
995 set: function(key, value) {
996 var secrets = reveal(key) || conceal(key);
997 secrets.value = value;
1002 var empty = Object.create(null);
1004 //----------------------------------------------------------------------
1007 // http://www.ecma-international.org/ecma-
262/
6.0/
1009 //----------------------------------------------------------------------
1011 // ---------------------------------------
1012 //
19.4 Symbol Objects
1013 // ---------------------------------------
1015 // NOTE: Symbols are defined here - out of spec order - since we need the
1016 // properties and prototype to be populated for other polyfills.
1018 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
1022 var secret = Object.create(null);
1024 symbolForKey = function(k) {
1025 return symbolMap[k];
1028 var GlobalSymbolRegistry = [];
1030 function unique(bits) {
1031 return Array(bits +
1).join('x').replace(/x/g, function() {
1032 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
1036 //
19.4.1 The Symbol Constructor
1037 //
19.4.1.1 Symbol ( description=undefined )
1038 function Symbol(description) {
1039 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1040 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1042 var descString = description === undefined ? undefined : String(description);
1044 set_internal(this, '[[SymbolData]]', unique(
128));
1045 set_internal(this, '[[Description]]', descString);
1047 symbolMap[this] = this;
1051 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1052 global.Symbol = Symbol;
1054 //
19.4.2 Properties of the Symbol Constructor
1056 //
19.4.2.1 Symbol.for (key)
1057 define(Symbol, 'for', function for_(key) {
1058 var stringKey = String(key);
1059 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1060 var e = GlobalSymbolRegistry[i];
1061 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1063 var newSymbol = Symbol(key);
1064 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1068 //
19.4.2.2 Symbol.hasInstance
1069 //
19.4.2.3 Symbol.isConcatSpreadable
1071 //
19.4.2.4 Symbol.iterator
1072 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1074 //
19.4.2.5 Symbol.keyFor (sym)
1075 define(Symbol, 'keyFor', function keyFor(sym) {
1076 if (!(sym instanceof Symbol)) throw TypeError();
1077 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1078 var e = GlobalSymbolRegistry[i];
1079 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1084 //
19.4.2.6 Symbol.match
1085 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1087 //
19.4.2.7 Symbol.prototype
1089 //
19.4.2.8 Symbol.replace
1090 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1092 //
19.4.2.9 Symbol.search
1093 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1095 //
19.4.2.10 Symbol.species
1097 //
19.4.2.11 Symbol.search
1098 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1100 //
19.4.2.12 Symbol.toPrimitive
1102 //
19.4.2.13 Symbol.toStringTag
1103 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1105 //
19.4.2.14 Symbol.unscopables
1107 //
19.4.3 Properties of the Symbol Prototype Object
1108 //
19.4.3.1 Symbol.prototype.constructor
1110 //
19.4.3.2 Symbol.prototype.toString ( )
1111 Object.defineProperty(Symbol.prototype, 'toString', {
1112 value: function toString() {
1113 var s = strict(this);
1114 var desc = s['[[Description]]'];
1115 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1117 configurable: true, writeable: true, enumerable: false });
1119 //
19.4.3.3 Symbol.prototype.valueOf ( )
1120 Object.defineProperty(Symbol.prototype, 'valueOf', {
1121 value: function valueOf() {
1122 // To prevent automatic string conversion:
1125 // Spec has approximately the following:
1126 //var s = strict(this);
1127 //if (Type(s) === 'symbol') return s;
1128 //if (Type(s) !== 'object') throw TypeError();
1129 //if (!('[[SymbolData]]' in s)) throw TypeError();
1130 //return s['[[SymbolData]]'];
1132 configurable: true, writeable: true, enumerable: false });
1134 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1135 // (Done later to polyfill partial implementations)
1137 //
19.4.4 Properties of Symbol Instances
1140 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1142 // Defined here so that other prototypes can reference it
1143 //
25.1.2 The %IteratorPrototype% Object
1144 var $IteratorPrototype$ = {};
1146 //----------------------------------------
1147 //
6 ECMAScript Data Types and Values
1148 //----------------------------------------
1150 //
6.1 ECMAScript Language Types
1152 // "Type(x)" is used as shorthand for "the type of x"...
1155 case 'undefined': return 'undefined';
1156 case 'boolean': return 'boolean';
1157 case 'number': return 'number';
1158 case 'string': return 'string';
1159 case 'symbol': return 'symbol';
1161 if (v === null) return 'null';
1162 if (v instanceof global.Symbol) return 'symbol';
1167 //
6.1.5.1 Well-Known Symbols
1168 var $$iterator = global.Symbol.iterator,
1169 $$match = global.Symbol.match,
1170 $$replace = global.Symbol.replace,
1171 $$search = global.Symbol.search,
1172 $$split = global.Symbol.split,
1173 $$toStringTag = global.Symbol.toStringTag;
1175 //----------------------------------------
1176 //
7 Abstract Operations
1177 //----------------------------------------
1179 //----------------------------------------
1180 //
7.1 Type Conversion
1181 //----------------------------------------
1183 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1184 // just use valueOf()
1186 //
7.1.2 ToBoolean ( argument )
1187 // just use Boolean()
1189 //
7.1.3 ToNumber ( argument )
1190 // just use Number()
1192 //
7.1.4 ToInteger ( argument )
1193 function ToInteger(n) {
1195 if ($isNaN(n)) return
0;
1196 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1197 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1200 //
7.1.5 ToInt32 ( argument )
1201 function ToInt32(v) { return v
>> 0; }
1203 //
7.1.6 ToUint32 ( argument )
1204 function ToUint32(v) { return v
>>> 0; }
1206 //
7.1.7 ToInt16 ( argument )
1207 function ToInt16(v) { return (v <<
16)
>> 16; }
1209 //
7.1.8 ToUint16 ( argument )
1210 function ToUint16(v) { return v &
0xFFFF; }
1212 //
7.1.9 ToInt8 ( argument )
1213 function ToInt8(v) { return (v <<
24)
>> 24; }
1215 //
7.1.10 ToUint8 ( argument )
1216 function ToUint8(v) { return v &
0xFF; }
1218 //
7.1.11 ToUint8Clamp ( argument )
1219 function ToUint8Clamp(argument) {
1220 var number = Number(argument);
1221 if ($isNaN(number)) return
0;
1222 if (number <=
0) return
0;
1223 if (number
>=
255) return
255;
1224 var f = floor(number);
1225 if ((f +
0.5) < number) return f +
1;
1226 if (number < (f +
0.5)) return f;
1227 if (f %
2) return f +
1;
1231 //
7.1.12 ToString ( argument )
1232 // just use String()
1234 //
7.1.13 ToObject ( argument )
1235 function ToObject(v) {
1236 if (v === null || v === undefined) throw TypeError();
1240 //
7.1.14 ToPropertyKey ( argument )
1241 function ToPropertyKey(v) {
1245 //
7.1.15 ToLength ( argument )
1246 function ToLength(v) {
1247 var len = ToInteger(v);
1248 if (len <=
0) return
0;
1249 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1250 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1253 //
7.1.16 CanonicalNumericIndexString ( argument )
1255 //----------------------------------------
1256 //
7.2 Testing and Comparison Operations
1257 //----------------------------------------
1259 //
7.2.1 RequireObjectCoercible ( argument )
1260 //
7.2.2 IsArray ( argument )
1262 //
7.2.3 IsCallable ( argument )
1263 function IsCallable(o) { return typeof o === 'function'; }
1265 //
7.2.4 IsConstructor ( argument )
1266 function IsConstructor(o) {
1267 // Hacks for Safari
7 TypedArray XXXConstructor objects
1268 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1269 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1270 // TODO: Can this be improved on?
1271 return typeof o === 'function';
1274 //
7.2.5 IsExtensible (O)
1275 //
7.2.6 IsInteger ( argument )
1277 //
7.2.7 IsPropertyKey ( argument )
1278 function IsPropertyKey(argument) {
1279 if (Type(argument) === 'string') return true;
1280 if (Type(argument) === 'symbol') return true;
1284 //
7.2.8 IsRegExp ( argument )
1285 //
7.2.5 IsConstructor ( argument )
1287 //
7.2.9 SameValue(x, y)
1288 function SameValue(x, y) {
1289 if (typeof x !== typeof y) return false;
1294 if (x !== x && y !== y) return true;
1295 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1305 //
7.2.10 SameValueZero(x, y)
1306 function SameValueZero(x, y) {
1307 if (typeof x !== typeof y) return false;
1312 if (x !== x && y !== y) return true;
1322 //----------------------------------------
1323 //
7.3 Operations on Objects
1324 //----------------------------------------
1327 // - just use o.p or o[p]
1329 //
7.3.2 GetV (V, P)
1330 function GetV(v, p) {
1331 var o = ToObject(v);
1335 //
7.3.3 Set (O, P, V, Throw)
1336 // - just use o.p = v or o[p] = v
1341 //
7.3.9 GetMethod (O, P)
1342 function GetMethod(o, p) {
1343 var func = GetV(o, p);
1344 if (func === undefined || func === null) return undefined;
1345 if (!IsCallable(func)) throw TypeError();
1349 //
7.3.10 HasProperty (O, P)
1350 function HasProperty(o, p) {
1352 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1353 if (Type(o) !== 'object') return false;
1354 o = Object.getPrototypeOf(o);
1359 //
7.3.11 HasOwnProperty (O, P)
1360 function HasOwnProperty(o, p) {
1361 return Object.prototype.hasOwnProperty.call(o, p);
1364 //----------------------------------------
1365 //
7.4 Operations on Iterator Objects
1366 //----------------------------------------
1368 //
7.4.1 GetIterator ( obj, method )
1369 function GetIterator(obj, method) {
1370 if (arguments.length <
2)
1371 method = GetMethod(obj, $$iterator);
1372 var iterator = method.call(obj);
1373 if (Type(iterator) !== 'object') throw TypeError();
1377 //
7.4.2 IteratorNext ( iterator, value )
1378 function IteratorNext(iterator, value) {
1379 if (arguments.length <
2)
1380 var result = iterator.next();
1382 result = iterator.next(value);
1383 if (Type(result) !== 'object') throw TypeError();
1387 //
7.4.3 IteratorComplete ( iterResult )
1388 function IteratorComplete(iterResult) {
1389 console.assert(Type(iterResult) === 'object');
1390 return Boolean(iterResult.done);
1393 //
7.4.4 IteratorValue ( iterResult )
1394 function IteratorValue(iterResult) {
1395 console.assert(Type(iterResult) === 'object');
1396 return iterResult.value;
1399 //
7.4.5 IteratorStep ( iterator )
1400 function IteratorStep( iterator, value ) {
1401 var result = IteratorNext(iterator, value);
1402 var done = result['done'];
1403 if (Boolean(done) === true) return false;
1407 //
7.4.6 IteratorClose( iterator, completion )
1408 function IteratorClose( iterator, completion ) {
1409 console.assert(Type(iterator) === 'object');
1410 var _return = GetMethod(iterator, 'return');
1411 if (_return === undefined) return completion;
1413 var innerResult = _return[iterator]();
1415 // TODO: If completion.[[type]] is throw, return completion
1418 if (Type(innerResult) !== 'object') throw TypeError();
1422 //
7.4.7 CreateIterResultObject (value, done)
1423 function CreateIterResultObject(value, done) {
1424 console.assert(Type(done) === 'boolean');
1426 obj["value"] = value;
1431 //
7.4.8 CreateListIterator (list)
1432 //
7.4.8.1 ListIterator next( )
1433 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1434 //
7.4.9.1 CompoundIterator next( )
1436 //----------------------------------------
1437 //
8 Executable Code and Execution Contexts
1438 //----------------------------------------
1440 //----------------------------------------
1441 //
8.4 Jobs and Job Queues
1442 //----------------------------------------
1444 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1445 function EnqueueJob(queueName, job, args) {
1446 var fn = function() { job.apply(undefined, args); };
1450 //
8.4.2 NextJob result
1451 function NextJob(result) {
1455 //----------------------------------------
1456 //
9 Ordinary and Exotic Objects Behaviors
1457 //----------------------------------------
1459 //
9.1.11 [[Enumerate]] ()
1460 function Enumerate(obj) {
1462 if (Object(obj) !== obj) return e;
1463 var visited = new Set;
1464 while (obj !== null) {
1465 Object.getOwnPropertyNames(obj).forEach(function(name) {
1466 if (!visited.has(name)) {
1467 var desc = Object.getOwnPropertyDescriptor(obj, name);
1470 if (desc.enumerable) e.push(name);
1474 obj = Object.getPrototypeOf(obj);
1476 return e[$$iterator]();
1479 //
9.1.12 [[OwnPropertyKeys]] ( )
1480 function OwnPropertyKeys(o) {
1481 return Object.getOwnPropertyNames(o);
1484 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1485 function ObjectCreate(proto, internalSlotsList) {
1486 return Object.create(proto, internalSlotsList);
1489 // ---------------------------------------
1490 //
19 Fundamental Objects
1491 // ---------------------------------------
1493 // ---------------------------------------
1494 //
19.1 Object Objects
1495 // ---------------------------------------
1497 //
19.1.1 The Object Constructor
1498 //
19.1.1.1 Object ( [ value ] )
1499 //
19.1.2 Properties of the Object Constructor
1500 //
19.1.2.1 Object.assign ( target, ...sources )
1503 function assign(target, /*...*/sources) {
1504 var to = ToObject(target);
1505 if (arguments.length <
2) return to;
1507 var sourcesIndex =
1;
1508 while (sourcesIndex < arguments.length) {
1509 var nextSource = arguments[sourcesIndex++];
1510 if (nextSource === undefined || nextSource === null) {
1513 var from = ToObject(nextSource);
1514 keys = OwnPropertyKeys(from);
1516 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1517 var nextKey = keys[keysIndex];
1518 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1519 if (desc !== undefined && desc.enumerable) {
1520 var propValue = from[nextKey];
1521 to[nextKey] = propValue;
1528 //
19.1.2.2 Object.create ( O [ , Properties ] )
1529 //
19.1.2.3 Object.defineProperties ( O, Properties )
1530 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1531 //
19.1.2.5 Object.freeze ( O )
1532 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1535 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1536 $getOwnPropertyNames = Object.getOwnPropertyNames,
1537 $keys = Object.keys,
1538 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1540 function isStringKey(k) { return !symbolForKey(k); }
1542 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1544 Object, 'getOwnPropertyNames',
1545 function getOwnPropertyNames(o) {
1546 if (Object.prototype.toString.call(o) === '[object Window]') {
1547 // Workaround for cross-realm calling by IE itself.
1548 // https://github.com/inexorabletash/polyfill/issues/
96
1550 return $getOwnPropertyNames(o).filter(isStringKey);
1552 return $window_names.slice();
1555 return $getOwnPropertyNames(o).filter(isStringKey);
1558 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1560 Object, 'getOwnPropertySymbols',
1561 function getOwnPropertySymbols(o) {
1562 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1565 //
19.1.2.14 Object.keys ( O )
1569 return $keys(o).filter(isStringKey);
1573 //
19.1.2.9 Object.getPrototypeOf ( O )
1574 //
19.1.2.10 Object.is ( value1, value2 )
1577 function is(value1, value2) {
1578 return SameValue(value1, value2);
1581 //
19.1.2.11 Object.isExtensible ( O )
1582 //
19.1.2.12 Object.isFrozen ( O )
1583 //
19.1.2.13 Object.isSealed ( O )
1585 //
19.1.2.14 Object.keys ( O )
1588 //
19.1.2.15 Object.preventExtensions ( O )
1589 //
19.1.2.16 Object.prototype
1590 //
19.1.2.17 Object.seal ( O )
1592 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1594 Object, 'setPrototypeOf',
1595 function setPrototypeOf(o, proto) {
1596 if (Type(o) !== 'object') throw TypeError();
1597 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1598 o.__proto__ = proto;
1603 //
19.1.3 Properties of the Object Prototype Object
1604 //
19.1.3.1 Object.prototype.constructor
1605 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1606 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1607 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1608 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1609 //
19.1.3.6 Object.prototype.toString ( )
1610 hook(Object.prototype, 'toString',
1612 var o = strict(this);
1613 if (o === Object(o) && $$toStringTag in o) {
1614 return '[object ' + o[$$toStringTag] + ']';
1619 //
19.1.3.7 Object.prototype.valueOf ( )
1620 //
19.1.4 Properties of Object Instances
1622 // ---------------------------------------
1623 //
19.2 Function Objects
1624 // ---------------------------------------
1626 //
19.2.1 The Function Constructor
1627 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1628 //
19.2.2 Properties of the Function Constructor
1629 //
19.2.2.1 Function.length
1630 //
19.2.2.2 Function.prototype
1631 //
19.2.3 Properties of the Function Prototype Object
1632 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1633 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1634 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1635 //
19.2.3.4 Function.prototype.constructor
1636 //
19.2.3.5 Function.prototype.toString ( )
1637 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1638 //
19.2.4 Function Instances
1641 //
19.2.4.3 prototype
1643 // (No polyfillable changes from ES5)
1645 // ---------------------------------------
1646 //
19.3 Boolean Objects
1647 // ---------------------------------------
1649 //
19.3.1 The Boolean Constructor
1650 //
19.3.1.1 Boolean ( value )
1651 //
19.3.2 Properties of the Boolean Constructor
1652 //
19.3.2.1 Boolean.prototype
1653 //
19.3.3 Properties of the Boolean Prototype Object
1654 //
19.3.3.1 Boolean.prototype.constructor
1655 //
19.3.3.2 Boolean.prototype.toString ( )
1656 //
19.3.3.3 Boolean.prototype.valueOf ( )
1657 //
19.3.4 Properties of Boolean Instances
1659 // (No polyfillable changes from ES5)
1661 // ---------------------------------------
1662 //
19.4 Symbol Objects
1663 // ---------------------------------------
1665 // Moved earlier in this script, so that other polyfills can depend on them.
1667 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1668 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1670 // ---------------------------------------
1671 //
19.5 Error Objects
1672 // ---------------------------------------
1674 //
19.5.1 The Error Constructor
1675 //
19.5.1.1 Error ( message )
1676 //
19.5.1.2 new Error( ...argumentsList )
1677 //
19.5.2 Properties of the Error Constructor
1678 //
19.5.2.1 Error.prototype
1679 //
19.5.3 Properties of the Error Prototype Object
1680 //
19.5.3.1 Error.prototype.constructor
1681 //
19.5.3.2 Error.prototype.message
1682 //
19.5.3.3 Error.prototype.name
1683 //
19.5.3.4 Error.prototype.toString ( )
1684 //
19.5.4 Properties of Error Instances
1685 //
19.5.5 Native Error Types Used in This Standard
1686 //
19.5.5.1 EvalError
1687 //
19.5.5.2 RangeError
1688 //
19.5.5.3 ReferenceError
1689 //
19.5.5.4 SyntaxError
1690 //
19.5.5.5 TypeError
1691 //
19.5.5.6 URIError
1692 //
19.5.6 NativeError Object Structure
1693 //
19.5.6.1 NativeError Constructors
1694 //
19.5.6.1.1 NativeError ( message )
1695 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1696 //
19.5.6.2 Properties of the NativeError Constructors
1697 //
19.5.6.2.1 NativeError.prototype
1698 //
19.5.6.3 Properties of the NativeError Prototype Objects
1699 //
19.5.6.4 Properties of NativeError Instances
1701 // (No polyfillable changes from ES5)
1703 // ---------------------------------------
1704 //
20 Numbers and Dates
1705 // ---------------------------------------
1707 // ---------------------------------------
1708 //
20.1 Number Objects
1709 // ---------------------------------------
1711 //
20.1.1 The Number Constructor
1712 //
20.1.1.1 Number ( [ value ] )
1713 //
20.1.1.2 new Number ( ...argumentsList )
1714 //
20.1.2 Properties of the Number Constructor
1716 //
20.1.2.1 Number.EPSILON
1721 for (next =
1;
1 + next !==
1; next = next /
2)
1726 //
20.1.2.2 Number.isFinite ( number )
1729 function isFinite(number) {
1730 if (Type(number) !== 'number') return false;
1731 if (number !== number || number === +Infinity || number === -Infinity) return false;
1735 //
20.1.2.3 Number.isInteger ( number )
1737 Number, 'isInteger',
1738 function isInteger(number) {
1739 if (Type(number) !== 'number') return false;
1740 if (number !== number || number === +Infinity || number === -Infinity) return false;
1741 var integer = ToInteger(number);
1742 if (integer !== number) return false;
1746 //
20.1.2.4 Number.isNaN ( number )
1749 function isNaN(number) {
1750 if (Type(number) !== 'number') return false;
1751 if (number !== number) return true;
1755 //
20.1.2.5 Number.isSafeInteger ( number )
1757 Number, 'isSafeInteger',
1758 function isSafeInteger(number) {
1759 if (Type(number) !== 'number') return false;
1760 if (number !== number || number === +Infinity || number === -Infinity) return false;
1761 var integer = ToInteger(number);
1762 if (integer !== number) return false;
1763 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1768 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1770 Number, 'MAX_SAFE_INTEGER',
1771 9007199254740991); //
2^
53-
1
1773 //
20.1.2.7 Number.MAX_VALUE
1775 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1777 Number, 'MIN_SAFE_INTEGER',
1778 -
9007199254740991); // -
2^
53+
1
1780 //
20.1.2.9 Number.MIN_VALUE
1781 //
20.1.2.10 Number.NaN
1782 //
20.1.2.11 Number.NEGATIVE_INFINITY
1784 //
20.1.2.12 Number.parseFloat ( string )
1785 define(Number, 'parseFloat', $parseFloat);
1787 //
20.1.2.13 Number.parseInt ( string, radix )
1788 define(Number, 'parseInt', $parseInt);
1790 //
20.1.2.14 Number.POSITIVE_INFINITY
1791 //
20.1.2.15 Number.prototype
1793 //
20.1.3 Properties of the Number Prototype Object
1794 //
20.1.3.1 Number.prototype.constructor
1795 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1796 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1797 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1798 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1799 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1800 //
20.1.3.7 Number.prototype.valueOf ( )
1801 //
20.1.4 Properties of Number Instances
1803 // ---------------------------------------
1804 //
20.2 The Math Object
1805 // ---------------------------------------
1807 //
20.2.1 Value Properties of the Math Object
1809 //
20.2.1.2 Math.LN10
1810 //
20.2.1.3 Math.LN2
1811 //
20.2.1.4 Math.LOG10E
1812 //
20.2.1.5 Math.LOG2E
1814 //
20.2.1.7 Math.SQRT1_2
1815 //
20.2.1.8 Math.SQRT2
1817 //
20.2.1.9 Math [ @@toStringTag ]
1818 define(Math, $$toStringTag, 'Math');
1820 //
20.2.2 Function Properties of the Math Object
1821 //
20.2.2.1 Math.abs ( x )
1822 //
20.2.2.2 Math.acos ( x )
1824 //
20.2.2.3 Math.acosh(x)
1829 return log(x + sqrt(x * x -
1));
1832 //
20.2.2.4 Math.asin ( x )
1834 //
20.2.2.5 Math.asinh( x )
1839 if (SameValue(x, -
0)) {
1842 var s = sqrt(x * x +
1);
1843 return (s === -x) ? log(
0) : log(x + s);
1846 //
20.2.2.6 Math.atan ( x )
1848 //
20.2.2.7 Math.atanh( x )
1853 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1856 //
20.2.2.8 Math.atan2 ( y, x )
1858 //
20.2.2.9 Math.cbrt ( x )
1866 var r = pow(abs(x),
1/
3);
1868 return r + (r * (t-r) / (
2*r + t));
1871 //
20.2.2.10 Math.ceil ( x )
1873 //
20.2.2.11 Math.clz32 ( x )
1878 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1879 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1882 return x &
0xff000000 ? clz8(x
>> 24) :
1883 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1884 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1889 //
20.2.2.12 Math.cos ( x )
1891 //
20.2.2.13 Math.cosh ( x )
1896 return (pow(E, x) + pow(E, -x)) /
2;
1899 //
20.2.2.14 Math.exp ( x )
1901 //
20.2.2.15 Math.expm1 ( x )
1906 // from: http://www.johndcook.com/cpp_log1p.html
1907 if (SameValue(x, -
0)) {
1909 } else if (abs(x) <
1e-5) {
1910 return x +
0.5 * x * x; // two terms of Taylor expansion
1916 //
20.2.2.16 Math.floor ( x )
1918 //
20.2.2.17 Math.fround ( x )
1921 function fround(x) {
1925 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1928 return (new Float32Array([x]))[
0];
1931 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1936 var m =
0, sawNaN = false;
1937 for (var i =
0; i < arguments.length; ++i) {
1938 var n = abs(Number(arguments[i]));
1939 if (n === Infinity) return n;
1940 if (n !== n) sawNaN = true;
1944 if (sawNaN) return NaN;
1945 if (m ===
0) return +
0;
1947 for (i =
0; i < values.length; ++i) {
1948 var r = values[i] / m;
1951 return m * sqrt(sum);
1954 //
20.2.2.19 Math.imul ( x, y )
1957 function imul(x, y) {
1958 var a = ToUint32(x);
1959 var b = ToUint32(y);
1960 // (slow but accurate)
1961 var ah = (a
>>> 16) &
0xffff;
1962 var al = a &
0xffff;
1963 var bh = (b
>>> 16) &
0xffff;
1964 var bl = b &
0xffff;
1965 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1966 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1969 //
20.2.2.20 Math.log ( x )
1971 //
20.2.2.21 Math.log1p ( x )
1976 // from: http://www.johndcook.com/cpp_expm1.html
1979 } else if (SameValue(x, -
0)) {
1981 } else if (abs(x)
> 1e-4) {
1984 return (-
0.5 * x +
1) * x;
1988 //
20.2.2.22 Math.log10 ( x )
1993 return log(x) * LOG10E;
1996 //
20.2.2.23 Math.log2 ( x )
2001 return log(x) * LOG2E;
2004 //
20.2.2.24 Math.max ( value1, value2 , ...values )
2005 //
20.2.2.25 Math.min ( value1, value2 , ...values )
2006 //
20.2.2.26 Math.pow ( x, y )
2007 //
20.2.2.27 Math.random ( )
2008 //
20.2.2.28 Math.round ( x )
2010 //
20.2.2.29 Math.sign(x)
2015 return x <
0 ? -
1 : x
> 0 ?
1 : x;
2018 //
20.2.2.30 Math.sin ( x )
2020 //
20.2.2.31 Math.sinh( x )
2025 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
2028 //
20.2.2.32 Math.sqrt ( x )
2029 //
20.2.2.33 Math.tan ( x )
2031 //
20.2.2.34 Math.tanh ( x )
2036 var n = pow(E,
2 * x) -
1,
2037 d = pow(E,
2 * x) +
1;
2038 if (SameValue(x, -
0))
2040 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2043 //
20.2.2.35 Math.trunc ( x )
2048 return $isNaN(x) ? NaN :
2049 x <
0 ? ceil(x) : floor(x);
2052 // ---------------------------------------
2053 //
20.3 Date Objects
2054 // ---------------------------------------
2056 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2057 //
20.3.1.1 Time Values and Time Range
2058 //
20.3.1.2 Day Number and Time within Day
2059 //
20.3.1.3 Year Number
2060 //
20.3.1.4 Month Number
2061 //
20.3.1.5 Date Number
2062 //
20.3.1.6 Week Day
2063 //
20.3.1.7 Local Time Zone Adjustment
2064 //
20.3.1.8 Daylight Saving Time Adjustment
2065 //
20.3.1.9 Local Time
2066 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2067 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2068 //
20.3.1.12 MakeDay (year, month, date)
2069 //
20.3.1.13 MakeDate (day, time)
2070 //
20.3.1.14 TimeClip (time)
2071 //
20.3.1.15 Date Time String Format
2072 //
20.3.1.15.1 Extended years
2073 //
20.3.2 The Date Constructor
2074 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2075 //
20.3.2.2 Date ( value )
2076 //
20.3.2.3 Date ( )
2077 //
20.3.3 Properties of the Date Constructor
2078 //
20.3.3.1 Date.now ( )
2079 //
20.3.3.2 Date.parse (string)
2080 //
20.3.3.3 Date.prototype
2081 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2082 //
20.3.4 Properties of the Date Prototype Object
2083 //
20.3.4.1 Date.prototype.constructor
2084 //
20.3.4.2 Date.prototype.getDate ( )
2085 //
20.3.4.3 Date.prototype.getDay ( )
2086 //
20.3.4.4 Date.prototype.getFullYear ( )
2087 //
20.3.4.5 Date.prototype.getHours ( )
2088 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2089 //
20.3.4.7 Date.prototype.getMinutes ( )
2090 //
20.3.4.8 Date.prototype.getMonth ( )
2091 //
20.3.4.9 Date.prototype.getSeconds ( )
2092 //
20.3.4.10 Date.prototype.getTime ( )
2093 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2094 //
20.3.4.12 Date.prototype.getUTCDate ( )
2095 //
20.3.4.13 Date.prototype.getUTCDay ( )
2096 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2097 //
20.3.4.15 Date.prototype.getUTCHours ( )
2098 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2099 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2100 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2101 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2102 //
20.3.4.20 Date.prototype.setDate ( date )
2103 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2104 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2105 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2106 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2107 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2108 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2109 //
20.3.4.27 Date.prototype.setTime ( time )
2110 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2111 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2112 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2113 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2114 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2115 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2116 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2117 //
20.3.4.35 Date.prototype.toDateString ( )
2118 //
20.3.4.36 Date.prototype.toISOString ( )
2119 //
20.3.4.37 Date.prototype.toJSON ( key )
2120 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2121 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2122 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2123 //
20.3.4.41 Date.prototype.toString ( )
2124 //
20.3.4.42 Date.prototype.toTimeString ( )
2125 //
20.3.4.43 Date.prototype.toUTCString ( )
2126 //
20.3.4.44 Date.prototype.valueOf ( )
2127 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2128 //
20.3.5 Properties of Date Instances
2130 // (No polyfillable changes from ES5)
2132 // ---------------------------------------
2133 //
21 Text Processing
2134 // ---------------------------------------
2136 var string_regexp_dispatch = (function() {
2137 var faux = {}, secret = Symbol();
2138 faux[Symbol.match] = function() { return secret; };
2139 return (
"").match(faux) === secret;
2142 //
21.1 String Objects
2143 //
21.1.1 The String Constructor
2144 //
21.1.1.1 String ( value )
2145 //
21.1.2 Properties of the String Constructor
2146 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2148 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2150 String, 'fromCodePoint',
2151 function fromCodePoint(/*...codePoints*/) {
2152 var codePoints = arguments,
2153 length = codePoints.length,
2156 while (nextIndex < length) {
2157 var next = codePoints[nextIndex];
2158 var nextCP = Number(next);
2159 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2160 nextCP <
0 || nextCP
> 0x10FFFF) {
2161 throw RangeError('Invalid code point ' + nextCP);
2163 if (nextCP <
0x10000) {
2164 elements.push(String.fromCharCode(nextCP));
2167 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2168 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2172 return elements.join('');
2175 //
21.1.2.3 String.prototype
2177 //
21.1.2.4 String.raw ( template , ...substitutions )
2180 function raw(template /*, ...substitutions*/) {
2181 var substitutions = [].slice.call(arguments,
1);
2183 var cooked = Object(template);
2184 var rawValue = cooked['raw'];
2185 var raw = Object(rawValue);
2186 var len = raw['length'];
2187 var literalSegments = ToLength(len);
2188 if (literalSegments <=
0) return '';
2189 var stringElements = [];
2192 var next = raw[nextIndex];
2193 var nextSeg = String(next);
2194 stringElements.push(nextSeg);
2195 if (nextIndex +
1 === literalSegments)
2196 return stringElements.join('');
2197 next = substitutions[nextIndex];
2198 var nextSub = String(next);
2199 stringElements.push(nextSub);
2200 nextIndex = nextIndex +
1;
2204 // See https://githib.com/inexorabletash/uate for a more useful version.
2206 //
21.1.3 Properties of the String Prototype Object
2207 //
21.1.3.1 String.prototype.charAt ( pos )
2208 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2210 //
21.1.3.3 String.prototype.codePointAt ( pos )
2212 String.prototype, 'codePointAt',
2213 function codePointAt(pos) {
2214 var o = strict(this);
2216 var position = ToInteger(pos);
2217 var size = s.length;
2218 if (position <
0 || position
>= size) return undefined;
2219 var first = s.charCodeAt(position);
2220 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2221 var second = s.charCodeAt(position +
1);
2222 if (second <
0xDC00 || second
> 0xDFFF) return first;
2223 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2226 //
21.1.3.4 String.prototype.concat ( ...args )
2227 //
21.1.3.5 String.prototype.constructor
2229 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2231 String.prototype, 'endsWith',
2232 function endsWith(searchString) {
2233 var endPosition = arguments[
1];
2235 var o = strict(this);
2237 var searchStr = String(searchString);
2239 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2240 var end = min(max(pos,
0), len);
2241 var searchLength = searchStr.length;
2242 var start = end - searchLength;
2243 if (start <
0) return false;
2244 if (s.substring(start, start + searchLength) === searchStr) return true;
2248 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2250 String.prototype, 'includes',
2251 function includes(searchString) {
2252 var position = arguments[
1];
2254 var o = strict(this);
2256 var searchStr = String(searchString);
2257 var pos = ToInteger(position);
2259 var start = min(max(pos,
0), len);
2260 return s.indexOf(searchStr, start) !== -
1;
2263 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2264 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2265 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2266 //
21.1.3.11 String.prototype.match ( regexp )
2268 String.prototype, 'match',
2269 function match(regexp) {
2270 var o = strict(this);
2272 if (HasProperty(regexp, $$match)) var rx = regexp;
2273 else rx = new RegExp(regexp);
2274 return rx[$$match](s);
2275 }, !string_regexp_dispatch);
2277 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2279 // Not practical due to table sizes; if needed, pull in:
2280 // https://github.com/walling/unorm/
2282 //
21.1.3.13 String.prototype.repeat ( count )
2284 String.prototype, 'repeat',
2285 function repeat(count) {
2286 var o = strict(this);
2288 var n = ToInteger(count);
2289 if (n <
0) throw RangeError();
2290 if (n === Infinity) throw RangeError();
2291 var t = new Array(n +
1).join(s);
2295 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2297 String.prototype, 'replace',
2298 function replace(searchValue, replaceValue) {
2299 var o = strict(this);
2300 if (HasProperty(searchValue, $$replace))
2301 return searchValue[$$replace](o, replaceValue);
2302 return orig_replace.call(o, searchValue, replaceValue);
2303 }, !string_regexp_dispatch);
2305 //
21.1.3.15 String.prototype.search ( regexp )
2307 String.prototype, 'search',
2308 function search(regexp) {
2309 var o = strict(this);
2310 var string = String(o);
2311 if (HasProperty(regexp, $$search)) var rx = regexp;
2312 else rx = new RegExp(regexp);
2313 return rx[$$search](string);
2314 }, !string_regexp_dispatch);
2316 //
21.1.3.16 String.prototype.slice ( start, end )
2317 //
21.1.3.17 String.prototype.split ( separator, limit )
2319 String.prototype, 'split',
2320 function split(separator, limit) {
2321 var o = strict(this);
2322 if (HasProperty(separator, $$split))
2323 return separator[$$split](o, limit);
2324 return orig_split.call(o, separator, limit);
2325 }, !string_regexp_dispatch);
2327 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2329 String.prototype, 'startsWith',
2330 function startsWith(searchString) {
2331 var position = arguments[
1];
2333 var o = strict(this);
2335 var searchStr = String(searchString);
2336 var pos = ToInteger(position);
2338 var start = min(max(pos,
0), len);
2339 var searchLength = searchStr.length;
2340 if (searchLength + start
> len) return false;
2341 if (s.substring(start, start + searchLength) === searchStr) return true;
2345 //
21.1.3.19 String.prototype.substring ( start, end )
2346 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2347 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2348 //
21.1.3.22 String.prototype.toLowerCase ( )
2349 //
21.1.3.23 String.prototype.toString ( )
2350 //
21.1.3.24 String.prototype.toUpperCase ( )
2351 //
21.1.3.25 String.prototype.trim ( )
2352 //
21.1.3.26 String.prototype.valueOf ( )
2354 //
21.1.3.27 String.prototype [ @@iterator ]( )
2356 String.prototype, $$iterator,
2357 function entries() {
2358 return CreateStringIterator(this, 'value');
2361 //
21.1.4 Properties of String Instances
2364 //
21.1.5 String Iterator Objects
2366 function StringIterator() {}
2368 //
21.1.5.1 CreateStringIterator Abstract Operation
2369 function CreateStringIterator(string, kind) {
2370 var s = String(string);
2371 var iterator = new StringIterator;
2372 set_internal(iterator, '[[IteratedString]]', s);
2373 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2374 set_internal(iterator, '[[StringIterationKind]]', kind);
2378 //
21.1.5.2 The %StringIteratorPrototype% Object
2379 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2380 StringIterator.prototype = $StringIteratorPrototype$;
2382 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2384 $StringIteratorPrototype$, 'next',
2386 var o = ToObject(this);
2387 var s = String(o['[[IteratedString]]']),
2388 index = o['[[StringIteratorNextIndex]]'],
2391 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2392 return CreateIterResultObject(undefined, true);
2394 var cp = s.codePointAt(index);
2395 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2396 return CreateIterResultObject(String.fromCodePoint(cp), false);
2399 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2400 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2402 //
21.1.5.3 Properties of String Iterator Instances
2404 // ---------------------------------------
2405 //
21.2 RegExp (Regular Expression) Objects
2406 // ---------------------------------------
2409 //
21.2.2 Pattern Semantics
2410 //
21.2.2.1 Notation
2412 //
21.2.2.3 Disjunction
2413 //
21.2.2.4 Alternative
2415 //
21.2.2.6 Assertion
2416 //
21.2.2.7 Quantifier
2418 //
21.2.2.9 AtomEscape
2419 //
21.2.2.10 CharacterEscape
2420 //
21.2.2.11 DecimalEscape
2421 //
21.2.2.12 CharacterClassEscape
2422 //
21.2.2.13 CharacterClass
2423 //
21.2.2.14 ClassRanges
2424 //
21.2.2.15 NonemptyClassRanges
2425 //
21.2.2.16 NonemptyClassRangesNoDash
2426 //
21.2.2.17 ClassAtom
2427 //
21.2.2.18 ClassAtomNoDash
2428 //
21.2.2.19 ClassEscape
2429 //
21.2.3 The RegExp Constructor
2430 //
21.2.3.1 RegExp ( pattern, flags )
2431 //
21.2.3.2 new RegExp( ...argumentsList )
2432 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2433 //
21.2.4 Properties of the RegExp Constructor
2434 //
21.2.4.1 RegExp.prototype
2435 //
21.2.5 Properties of the RegExp Prototype Object
2436 //
21.2.5.1 RegExp.prototype.constructor
2437 //
21.2.5.2 RegExp.prototype.exec ( string )
2439 //
21.2.5.3 get RegExp.prototype.flags
2440 if (!('flags' in RegExp.prototype)) {
2441 Object.defineProperty(
2442 RegExp.prototype, 'flags', {
2444 var s = String(this);
2445 return s.substring(s.lastIndexOf('/') +
1);
2450 //
21.2.5.4 get RegExp.prototype.global
2451 //
21.2.5.5 get RegExp.prototype.ignoreCase
2453 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2454 define(RegExp.prototype, $$match, function(string) {
2455 var o = strict(this);
2456 return orig_match.call(string, o);
2459 //
21.2.5.7 get RegExp.prototype.multiline
2461 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2462 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2463 var o = strict(this);
2464 return orig_replace.call(string, o, replaceValue);
2467 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2468 define(RegExp.prototype, $$search, function(string) {
2469 var o = strict(this);
2470 return orig_search.call(string, o);
2473 //
21.2.5.10 get RegExp.prototype.source
2475 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2476 define(RegExp.prototype, $$split, function(string, limit) {
2477 var o = strict(this);
2478 return orig_split.call(string, o, limit);
2481 //
21.2.5.12 get RegExp.prototype.sticky
2482 //
21.2.5.13 RegExp.prototype.test( S )
2483 //
21.2.5.14 RegExp.prototype.toString ( )
2484 //
21.2.5.15 get RegExp.prototype.unicode
2486 //
21.2.6 Properties of RegExp Instances
2487 //
21.2.6.1 lastIndex
2489 // (No polyfillable changes from ES5)
2491 // ---------------------------------------
2492 //
22 Indexed Collections
2493 // ---------------------------------------
2495 // ---------------------------------------
2496 //
22.1 Array Objects
2497 // ---------------------------------------
2499 //
22.1.1 The Array Constructor
2500 //
22.1.1.1 Array ( )
2501 //
22.1.1.2 Array (len)
2502 //
22.1.1.3 Array (...items )
2504 //
22.1.2 Properties of the Array Constructor
2506 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2509 function from(items) {
2510 var mapfn = arguments[
1];
2511 var thisArg = arguments[
2];
2513 var c = strict(this);
2514 if (mapfn === undefined) {
2515 var mapping = false;
2517 if (!IsCallable(mapfn)) throw TypeError();
2521 var usingIterator = GetMethod(items, $$iterator);
2522 if (usingIterator !== undefined) {
2523 if (IsConstructor(c)) {
2528 var iterator = GetIterator(items, usingIterator);
2531 var next = IteratorStep(iterator);
2532 if (next === false) {
2536 var nextValue = IteratorValue(next);
2538 var mappedValue = mapfn.call(t, nextValue);
2540 mappedValue = nextValue;
2545 var arrayLike = ToObject(items);
2546 var lenValue = arrayLike.length;
2547 var len = ToLength(lenValue);
2548 if (IsConstructor(c)) {
2555 var kValue = arrayLike[k];
2557 mappedValue = mapfn.call(t, kValue, k);
2559 mappedValue = kValue;
2567 //
22.1.2.2 Array.isArray ( arg )
2569 //
22.1.2.3 Array.of ( ...items )
2573 var items = arguments;
2575 var lenValue = items.length;
2576 var len = ToUint32(lenValue);
2577 var c = strict(this), a;
2578 if (IsConstructor(c)) {
2593 //
22.1.2.4 Array.prototype
2594 //
22.1.2.5 get Array [ @@species ]
2595 //
22.1.3 Properties of the Array Prototype Object
2596 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2597 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2598 //
22.1.3.2 Array.prototype.constructor
2599 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2601 Array.prototype, 'copyWithin',
2602 function copyWithin(target, start/*, end*/) {
2603 var end = arguments[
2];
2605 var o = ToObject(this);
2606 var lenVal = o.length;
2607 var len = ToLength(lenVal);
2609 var relativeTarget = ToInteger(target);
2611 if (relativeTarget <
0)
2612 to = max(len + relativeTarget,
0);
2614 to = min(relativeTarget, len);
2615 var relativeStart = ToInteger(start);
2617 if (relativeStart <
0)
2618 from = max(len + relativeStart,
0);
2620 from = min(relativeStart, len);
2622 if (end === undefined)
2625 relativeEnd = ToInteger(end);
2627 if (relativeEnd <
0)
2628 final = max(len + relativeEnd,
0);
2630 final = min(relativeEnd, len);
2631 var count = min(final - from, len - to);
2633 if (from < to && to < from + count) {
2635 from = from + count -
1;
2636 to = to + count -
1;
2641 var fromKey = String(from);
2642 var toKey = String(to);
2643 var fromPresent = HasProperty(o, fromKey);
2645 var fromVal = o[fromKey];
2650 from = from + direction;
2651 to = to + direction;
2657 //
22.1.3.4 Array.prototype.entries ( )
2658 var nativeArrayIteratorMethods =
2659 ('entries' in Array.prototype && 'next' in [].entries());
2662 Array.prototype, 'entries',
2663 function entries() {
2664 return CreateArrayIterator(this, 'key+value');
2665 }, !nativeArrayIteratorMethods);
2667 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2669 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2671 Array.prototype, 'fill',
2672 function fill(value/*, start, end*/) {
2673 var start = arguments[
1],
2676 var o = ToObject(this);
2677 var lenVal = o.length;
2678 var len = ToLength(lenVal);
2680 var relativeStart = ToInteger(start);
2682 if (relativeStart <
0)
2683 k = max((len + relativeStart),
0);
2685 k = min(relativeStart, len);
2687 if (end === undefined)
2690 relativeEnd = ToInteger(end);
2692 if (relativeEnd <
0)
2693 final = max((len + relativeEnd),
0);
2695 final = min(relativeEnd, len);
2704 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2706 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2708 Array.prototype, 'find',
2709 function find(predicate) {
2710 var o = ToObject(this);
2711 var lenValue = o.length;
2712 var len = ToInteger(lenValue);
2713 if (!IsCallable(predicate)) throw TypeError();
2714 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2718 var kPresent = HasProperty(o, pk);
2721 var testResult = predicate.call(t, kValue, k, o);
2722 if (Boolean(testResult)) {
2731 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2733 Array.prototype, 'findIndex',
2734 function findIndex(predicate) {
2735 var o = ToObject(this);
2736 var lenValue = o.length;
2737 var len = ToLength(lenValue);
2738 if (!IsCallable(predicate)) throw TypeError();
2739 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2743 var kPresent = HasProperty(o, pk);
2746 var testResult = predicate.call(t, kValue, k, o);
2747 if (Boolean(testResult)) {
2756 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2757 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2758 //
22.1.3.12 Array.prototype.join (separator)
2760 //
22.1.3.13 Array.prototype.keys ( )
2762 Array.prototype, 'keys',
2764 return CreateArrayIterator(this, 'key');
2765 }, !nativeArrayIteratorMethods);
2767 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2768 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2769 //
22.1.3.16 Array.prototype.pop ( )
2770 //
22.1.3.17 Array.prototype.push ( ...items )
2771 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2772 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2773 //
22.1.3.20 Array.prototype.reverse ( )
2774 //
22.1.3.21 Array.prototype.shift ( )
2775 //
22.1.3.22 Array.prototype.slice (start, end)
2776 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2777 //
22.1.3.24 Array.prototype.sort (comparefn)
2778 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2779 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2780 //
22.1.3.27 Array.prototype.toString ( )
2781 //
22.1.3.28 Array.prototype.unshift ( ...items )
2783 //
22.1.3.29 Array.prototype.values ( )
2785 Array.prototype, 'values',
2787 return CreateArrayIterator(this, 'value');
2788 }, !nativeArrayIteratorMethods);
2790 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2792 Array.prototype, $$iterator,
2793 Array.prototype.values
2796 //
22.1.3.31 Array.prototype [ @@unscopables ]
2797 //
22.1.4 Properties of Array Instances
2800 //
22.1.5 Array Iterator Objects
2801 function ArrayIterator() {}
2803 //
22.1.5.1 CreateArrayIterator Abstract Operation
2804 function CreateArrayIterator(array, kind) {
2805 var o = ToObject(array);
2806 var iterator = new ArrayIterator;
2807 set_internal(iterator, '[[IteratedObject]]', o);
2808 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2809 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2813 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2814 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2815 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2817 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2819 $ArrayIteratorPrototype$, 'next',
2821 var o = strict(this);
2822 if (Type(o) !== 'object') throw TypeError();
2823 var a = o['[[IteratedObject]]'],
2824 index = o['[[ArrayIteratorNextIndex]]'],
2825 itemKind = o['[[ArrayIterationKind]]'],
2826 lenValue = a.length,
2827 len = ToUint32(lenValue),
2830 if (itemKind.indexOf('sparse') !== -
1) {
2832 while (!found && index < len) {
2833 elementKey = String(index);
2834 found = HasProperty(a, elementKey);
2841 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2842 return CreateIterResultObject(undefined, true);
2845 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2846 if (itemKind.indexOf('value') !== -
1)
2847 elementValue = a[elementKey];
2848 if (itemKind.indexOf('key+value') !== -
1)
2849 return CreateIterResultObject([elementKey, elementValue], false);
2850 if (itemKind.indexOf('key') !== -
1)
2851 return CreateIterResultObject(elementKey, false);
2852 if (itemKind === 'value')
2853 return CreateIterResultObject(elementValue, false);
2854 throw Error('Internal error');
2857 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2858 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2860 //
22.1.5.3 Properties of Array Iterator Instances
2863 // ---------------------------------------
2864 //
22.2 TypedArray Objects
2865 // ---------------------------------------
2867 // See typedarray.js for TypedArray polyfill
2869 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2870 'Int16Array', 'Uint16Array',
2871 'Int32Array', 'Uint32Array',
2872 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2873 if (!($TypedArrayName$ in global))
2875 var $TypedArray$ = global[$TypedArrayName$];
2877 //
22.2.1 The %TypedArray% Intrinsic Object
2878 //
22.2.1.1 %TypedArray% ( length )
2879 //
22.2.1.2 %TypedArray% ( typedArray )
2880 //
22.2.1.3 %TypedArray% ( object )
2881 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2882 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2883 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2885 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2887 $TypedArray$, 'from',
2888 function from(source) {
2889 var mapfn = arguments[
1];
2890 var thisArg = arguments[
2];
2892 var c = strict(this);
2893 if (!IsConstructor(c)) throw TypeError();
2894 if (mapfn === undefined) {
2895 var mapping = false;
2897 if (IsCallable(mapfn)) throw TypeError();
2901 var usingIterator = GetMethod(source, $$iterator);
2902 if (usingIterator !== undefined) {
2903 var iterator = GetIterator(source, usingIterator);
2906 while (next !== false) {
2907 next = IteratorStep(iterator);
2908 if (next !== false) {
2909 var nextValue = IteratorValue(next);
2910 values.push(nextValue);
2913 var len = values.length;
2914 var newObj = new c(len);
2917 var kValue = values.shift();
2919 var mappedValue = mapfn.call(t, kValue);
2921 mappedValue = kValue;
2923 newObj[k] = mappedValue;
2926 console.assert(values.length ===
0);
2929 var arrayLike = ToObject(source);
2930 var lenValue = arrayLike.length;
2931 len = ToLength(lenValue);
2932 newObj = new c(len);
2935 kValue = arrayLike[k];
2937 mappedValue = mapfn.call(t, kValue, k);
2939 mappedValue = kValue;
2941 newObj[k] = mappedValue;
2947 //
22.2.2.2 %TypedArray%.of ( ...items )
2951 var items = arguments;
2953 var len = items.length;
2954 var c = strict(this);
2955 var newObj = new c(len);
2958 newObj[k] = items[k];
2964 //
22.2.2.3 %TypedArray%.prototype
2965 //
22.2.2.4 get %TypedArray% [ @@species ]
2966 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2967 //
22.2.3.1 get %TypedArray%.prototype.buffer
2968 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2969 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2970 //
22.2.3.4 %TypedArray%.prototype.constructor
2972 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2973 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2975 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2976 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2978 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2979 define($TypedArray$.prototype, 'every', Array.prototype.every);
2981 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2983 $TypedArray$.prototype, 'fill',
2984 //Array.prototype.fill // Doesn't work in Safari
7
2985 function fill(value/*, start, end*/) {
2986 var start = arguments[
1],
2989 var o = ToObject(this);
2990 var lenVal = o.length;
2991 var len = ToLength(lenVal);
2993 var relativeStart = ToInteger(start);
2995 if (relativeStart <
0) k = max((len + relativeStart),
0);
2996 else k = min(relativeStart, len);
2998 if (end === undefined) relativeEnd = len;
2999 else relativeEnd = ToInteger(end);
3001 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
3002 else final = min(relativeEnd, len);
3011 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
3013 $TypedArray$.prototype, 'filter',
3014 function filter(callbackfn) {
3015 var thisArg = arguments[
1];
3017 var o = ToObject(this);
3018 var lenVal = o.length;
3019 var len = ToLength(lenVal);
3020 if (!IsCallable(callbackfn)) throw TypeError();
3022 var c = o.constructor;
3028 var selected = callbackfn.call(t, kValue, k, o);
3035 var a = new c(captured);
3037 for (var i =
0; i < kept.length; ++i) {
3045 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3046 define($TypedArray$.prototype, 'find', Array.prototype.find);
3048 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3049 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3051 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3052 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3054 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3055 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3057 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3058 define($TypedArray$.prototype, 'join', Array.prototype.join);
3060 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3061 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3063 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3064 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3066 //
22.2.3.17 get %TypedArray%.prototype.length
3068 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3070 $TypedArray$.prototype, 'map',
3071 function map(callbackfn) {
3072 var thisArg = arguments[
1];
3074 var o = ToObject(this);
3075 var lenValue = o.length;
3076 var len = ToLength(lenValue);
3077 if (!IsCallable(callbackfn)) throw TypeError();
3080 var c = o.constructor;
3081 if (IsConstructor(c))
3083 if (a === undefined)
3087 var kPresent = HasProperty(o, k);
3090 var mappedValue = callbackfn.call(t, kValue, k, o);
3098 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3099 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3101 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3102 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3104 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3105 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3107 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3108 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3109 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3111 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3113 $TypedArray$.prototype, 'slice',
3114 function slice(start, end) {
3115 var o = ToObject(this);
3116 var lenVal = o.length;
3117 var len = ToLength(lenVal);
3118 var relativeStart = ToInteger(start);
3119 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3120 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3121 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3122 var count = final - k;
3123 var c = o.constructor;
3124 if (IsConstructor(c)) {
3125 var a = new c(count);
3139 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3140 define($TypedArray$.prototype, 'some', Array.prototype.some);
3142 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3144 $TypedArray$.prototype, 'sort',
3146 var comparefn = arguments[
0];
3148 function sortCompare(x, y) {
3149 console.assert(Type(x) === 'number' && Type(y) === 'number');
3150 if (x !== x && y !== y) return +
0;
3151 if (x !== x) return
1;
3152 if (y !== y) return -
1;
3153 if (comparefn !== undefined) {
3154 return comparefn(x, y);
3156 if (x < y) return -
1;
3157 if (x
> y) return
1;
3160 return Array.prototype.sort.call(this, sortCompare);
3163 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3164 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3165 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3167 //
22.2.3.29 %TypedArray%.prototype.values ( )
3168 define($TypedArray$.prototype, 'values', Array.prototype.values);
3170 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3172 $TypedArray$.prototype, $$iterator,
3173 $TypedArray$.prototype.values
3176 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3177 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3179 //
22.2.4 The TypedArray Constructors
3180 //
22.2.4.1TypedArray( ... argumentsList)
3181 //
22.2.5 Properties of the TypedArray Constructors
3182 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3183 //
22.2.5.2 TypedArray.prototype
3184 //
22.2.6 Properties of TypedArray Prototype Objects
3185 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3186 //
22.2.6.2 TypedArray.prototype.constructor
3187 //
22.2.7 Properties of TypedArray Instances
3190 // ---------------------------------------
3191 //
23 Keyed Collection
3192 // ---------------------------------------
3194 // ---------------------------------------
3196 // ---------------------------------------
3199 //
23.1.1 The Map Constructor
3201 //
23.1.1.1 Map ( [ iterable ] )
3203 function Map(/*iterable*/) {
3204 var map = strict(this);
3205 var iterable = arguments[
0];
3207 if (Type(map) !== 'object') throw TypeError();
3208 if ('[[MapData]]' in map) throw TypeError();
3210 if (iterable !== undefined) {
3211 var adder = map['set'];
3212 if (!IsCallable(adder)) throw TypeError();
3213 var iter = GetIterator(ToObject(iterable));
3215 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3216 if (iter === undefined) return map;
3218 var next = IteratorStep(iter);
3221 var nextItem = IteratorValue(next);
3222 if (Type(nextItem) !== 'object') throw TypeError();
3223 var k = nextItem[
0];
3224 var v = nextItem[
1];
3225 adder.call(map, k, v);
3231 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3232 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3233 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3234 (new global.Map([['a',
1]]).size !==
1))
3238 function MapDataIndexOf(mapData, key) {
3240 if (key === key) return mapData.keys.indexOf(key);
3241 // Slow case for NaN
3242 for (i =
0; i < mapData.keys.length; i +=
1)
3243 if (SameValueZero(mapData.keys[i], key)) return i;
3247 //
23.1.1.2 new Map ( ... argumentsList )
3248 //
23.1.2 Properties of the Map Constructor
3249 //
23.1.2.1 Map.prototype
3250 var $MapPrototype$ = {};
3251 Map.prototype = $MapPrototype$;
3253 //
23.1.2.2 get Map [ @@species ]
3255 //
23.1.3 Properties of the Map Prototype Object
3256 //
23.1.3.1 Map.prototype.clear ()
3258 Map.prototype, 'clear',
3260 var m = strict(this);
3261 if (Type(m) !== 'object') throw TypeError();
3262 if (!('[[MapData]]' in m)) throw TypeError();
3263 if (m['[[MapData]]'] === undefined) throw TypeError();
3264 var entries = m['[[MapData]]'];
3265 entries.keys.length =
0;
3266 entries.values.length =
0;
3270 //
23.1.3.2 Map.prototype.constructor
3272 //
23.1.3.3 Map.prototype.delete ( key )
3274 Map.prototype, 'delete',
3275 function delete_(key) {
3276 var m = strict(this);
3277 if (Type(m) !== 'object') throw TypeError();
3278 if (!('[[MapData]]' in m)) throw TypeError();
3279 if (m['[[MapData]]'] === undefined) throw TypeError();
3280 var entries = m['[[MapData]]'];
3281 var i = MapDataIndexOf(entries, key);
3282 if (i <
0) return false;
3283 entries.keys[i] = empty;
3284 entries.values[i] = empty;
3288 //
23.1.3.4 Map.prototype.entries ( )
3290 Map.prototype, 'entries',
3291 function entries() {
3292 var m = strict(this);
3293 if (Type(m) !== 'object') throw TypeError();
3294 return CreateMapIterator(m, 'key+value');
3297 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3299 Map.prototype, 'forEach',
3300 function forEach(callbackfn /*, thisArg*/) {
3301 var thisArg = arguments[
1];
3303 var m = strict(this);
3304 if (Type(m) !== 'object') throw TypeError();
3305 if (!('[[MapData]]' in m)) throw TypeError();
3306 if (m['[[MapData]]'] === undefined) throw TypeError();
3307 var entries = m['[[MapData]]'];
3309 if (!IsCallable(callbackfn)) {
3310 throw TypeError('First argument to forEach is not callable.');
3312 for (var i =
0; i < entries.keys.length; ++i) {
3313 if (entries.keys[i] !== empty) {
3314 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3320 //
23.1.3.6 Map.prototype.get ( key )
3322 Map.prototype, 'get',
3324 var m = strict(this);
3325 if (Type(m) !== 'object') throw TypeError();
3326 if (!('[[MapData]]' in m)) throw TypeError();
3327 if (m['[[MapData]]'] === undefined) throw TypeError();
3328 var entries = m['[[MapData]]'];
3329 var i = MapDataIndexOf(entries, key);
3330 if (i
>=
0) return entries.values[i];
3334 //
23.1.3.7 Map.prototype.has ( key )
3336 Map.prototype, 'has',
3338 var m = strict(this);
3339 if (Type(m) !== 'object') throw TypeError();
3340 if (!('[[MapData]]' in m)) throw TypeError();
3341 if (m['[[MapData]]'] === undefined) throw TypeError();
3342 var entries = m['[[MapData]]'];
3343 if (MapDataIndexOf(entries, key)
>=
0) return true;
3347 //
23.1.3.8 Map.prototype.keys ( )
3349 Map.prototype, 'keys',
3351 var m = strict(this);
3352 if (Type(m) !== 'object') throw TypeError();
3353 return CreateMapIterator(m, 'key');
3356 //
23.1.3.9 Map.prototype.set ( key , value )
3358 Map.prototype, 'set',
3359 function set(key, value) {
3360 var m = strict(this);
3361 if (Type(m) !== 'object') throw TypeError();
3362 if (!('[[MapData]]' in m)) throw TypeError();
3363 if (m['[[MapData]]'] === undefined) throw TypeError();
3364 var entries = m['[[MapData]]'];
3365 var i = MapDataIndexOf(entries, key);
3366 if (i <
0) i = entries.keys.length;
3367 if (SameValue(key, -
0)) key =
0;
3368 entries.keys[i] = key;
3369 entries.values[i] = value;
3373 //
23.1.3.10 get Map.prototype.size
3374 Object.defineProperty(
3375 Map.prototype, 'size', {
3377 var m = strict(this);
3378 if (Type(m) !== 'object') throw TypeError();
3379 if (!('[[MapData]]' in m)) throw TypeError();
3380 if (m['[[MapData]]'] === undefined) throw TypeError();
3381 var entries = m['[[MapData]]'];
3383 for (var i =
0; i < entries.keys.length; ++i) {
3384 if (entries.keys[i] !== empty)
3391 //
23.1.3.11 Map.prototype.values ( )
3393 Map.prototype, 'values',
3395 var m = strict(this);
3396 if (Type(m) !== 'object') throw TypeError();
3397 return CreateMapIterator(m, 'value');
3400 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3402 Map.prototype, $$iterator,
3404 var m = strict(this);
3405 if (Type(m) !== 'object') throw TypeError();
3406 return CreateMapIterator(m, 'key+value');
3409 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3410 define(global.Map.prototype, $$toStringTag, 'Map');
3412 //
23.1.4 Properties of Map Instances
3413 //
23.1.5 Map Iterator Objects
3416 function MapIterator() {}
3418 //
23.1.5.1 CreateMapIterator Abstract Operation
3419 function CreateMapIterator(map, kind) {
3420 if (Type(map) !== 'object') throw TypeError();
3421 if (!('[[MapData]]' in map)) throw TypeError();
3422 if (map['[[MapData]]'] === undefined) throw TypeError();
3423 var iterator = new MapIterator;
3424 set_internal(iterator, '[[Map]]', map);
3425 set_internal(iterator, '[[MapNextIndex]]',
0);
3426 set_internal(iterator, '[[MapIterationKind]]', kind);
3430 //
23.1.5.2 The %MapIteratorPrototype% Object
3431 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3432 MapIterator.prototype = $MapIteratorPrototype$;
3434 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3436 $MapIteratorPrototype$, 'next',
3438 var o = strict(this);
3439 if (Type(o) !== 'object') throw TypeError();
3440 var m = o['[[Map]]'],
3441 index = o['[[MapNextIndex]]'],
3442 itemKind = o['[[MapIterationKind]]'],
3443 entries = m['[[MapData]]'];
3444 while (index < entries.keys.length) {
3445 var e = {key: entries.keys[index], value: entries.values[index]};
3447 set_internal(o, '[[MapNextIndex]]', index);
3448 if (e.key !== empty) {
3449 if (itemKind === 'key') {
3450 return CreateIterResultObject(e.key, false);
3451 } else if (itemKind === 'value') {
3452 return CreateIterResultObject(e.value, false);
3454 return CreateIterResultObject([e.key, e.value], false);
3458 return CreateIterResultObject(undefined, true);
3461 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3462 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3464 //
23.1.5.3 Properties of Map Iterator Instances
3467 // ---------------------------------------
3469 // ---------------------------------------
3472 //
23.2.1 The Set Constructor
3473 //
23.2.1.1 Set ( [ iterable ] )
3476 function Set(/*iterable*/) {
3477 var set = strict(this);
3478 var iterable = arguments[
0];
3480 if (Type(set) !== 'object') throw TypeError();
3481 if ('[[SetData]]' in set) throw TypeError();
3483 if (iterable !== undefined) {
3484 var adder = set['add'];
3485 if (!IsCallable(adder)) throw TypeError();
3486 var iter = GetIterator(ToObject(iterable));
3488 set_internal(set, '[[SetData]]', []);
3489 if (iter === undefined) return set;
3491 var next = IteratorStep(iter);
3494 var nextValue = IteratorValue(next);
3495 adder.call(set, nextValue);
3501 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3502 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3503 (new global.Set([
1]).size !==
1))
3506 function SetDataIndexOf(setData, key) {
3509 return setData.indexOf(key);
3510 // Slow case for NaN
3511 for (i =
0; i < setData.length; i +=
1)
3512 if (SameValueZero(setData[i], key)) return i;
3516 //
23.2.1.2 new Set ( ...argumentsList )
3517 //
23.2.2 Properties of the Set Constructor
3519 //
23.2.2.1 Set.prototype
3520 var $SetPrototype$ = {};
3521 Set.prototype = $SetPrototype$;
3523 //
23.2.2.2 get Set [ @@species ]
3524 //
23.2.3 Properties of the Set Prototype Object
3526 //
23.2.3.1 Set.prototype.add (value )
3528 Set.prototype, 'add',
3529 function add(value) {
3530 var s = strict(this);
3531 if (Type(s) !== 'object') throw TypeError();
3532 if (!('[[SetData]]' in s)) throw TypeError();
3533 if (s['[[SetData]]'] === undefined) throw TypeError();
3534 if (SameValue(value, -
0)) value =
0;
3535 var entries = s['[[SetData]]'];
3536 var i = SetDataIndexOf(entries, value);
3537 if (i <
0) i = s['[[SetData]]'].length;
3538 s['[[SetData]]'][i] = value;
3543 //
23.2.3.2 Set.prototype.clear ()
3545 Set.prototype, 'clear',
3547 var s = strict(this);
3548 if (Type(s) !== 'object') throw TypeError();
3549 if (!('[[SetData]]' in s)) throw TypeError();
3550 if (s['[[SetData]]'] === undefined) throw TypeError();
3551 var entries = s['[[SetData]]'];
3556 //
23.2.3.3 Set.prototype.constructor
3557 //
23.2.3.4 Set.prototype.delete ( value )
3559 Set.prototype, 'delete',
3560 function delete_(value) {
3561 var s = strict(this);
3562 if (Type(s) !== 'object') throw TypeError();
3563 if (!('[[SetData]]' in s)) throw TypeError();
3564 if (s['[[SetData]]'] === undefined) throw TypeError();
3565 var entries = s['[[SetData]]'];
3566 var i = SetDataIndexOf(entries, value);
3567 if (i <
0) return false;
3572 //
23.2.3.5 Set.prototype.entries ( )
3574 Set.prototype, 'entries',
3575 function entries() {
3576 var s = strict(this);
3577 if (Type(s) !== 'object') throw TypeError();
3578 return CreateSetIterator(s, 'key+value');
3581 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3583 Set.prototype, 'forEach',
3584 function forEach(callbackfn/*, thisArg*/) {
3585 var thisArg = arguments[
1];
3587 var s = strict(this);
3588 if (Type(s) !== 'object') throw TypeError();
3589 if (!('[[SetData]]' in s)) throw TypeError();
3590 if (s['[[SetData]]'] === undefined) throw TypeError();
3591 var entries = s['[[SetData]]'];
3593 if (!IsCallable(callbackfn)) {
3594 throw TypeError('First argument to forEach is not callable.');
3596 for (var i =
0; i < entries.length; ++i) {
3597 if (entries[i] !== empty) {
3598 callbackfn.call(thisArg, entries[i], entries[i], s);
3603 //
23.2.3.7 Set.prototype.has ( value )
3605 Set.prototype, 'has',
3607 var s = strict(this);
3608 if (Type(s) !== 'object') throw TypeError();
3609 if (!('[[SetData]]' in s)) throw TypeError();
3610 if (s['[[SetData]]'] === undefined) throw TypeError();
3611 var entries = s['[[SetData]]'];
3612 return SetDataIndexOf(entries, key) !== -
1;
3615 //
23.2.3.8 Set.prototype.keys ( )
3616 // See Set.prototype.values
3618 //
23.2.3.9 get Set.prototype.size
3619 Object.defineProperty(
3620 Set.prototype, 'size', {
3622 var s = strict(this);
3623 if (Type(s) !== 'object') throw TypeError();
3624 if (!('[[SetData]]' in s)) throw TypeError();
3625 if (s['[[SetData]]'] === undefined) throw TypeError();
3626 var entries = s['[[SetData]]'];
3628 for (var i =
0; i < entries.length; ++i) {
3629 if (entries[i] !== empty)
3636 //
23.2.3.10 Set.prototype.values ( )
3638 Set.prototype, 'values',
3640 var s = strict(this);
3641 if (Type(s) !== 'object') throw TypeError();
3642 return CreateSetIterator(s, 'value');
3644 // NOTE: function name is still 'values':
3645 Set.prototype.keys = Set.prototype.values;
3647 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3649 Set.prototype, $$iterator,
3651 var s = strict(this);
3652 if (Type(s) !== 'object') throw TypeError();
3653 return CreateSetIterator(s);
3656 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3657 define(global.Set.prototype, $$toStringTag, 'Set');
3659 //
23.2.4 Properties of Set Instances
3660 //
23.2.5 Set Iterator Objects
3662 function SetIterator() {}
3664 //
23.2.5.1 CreateSetIterator Abstract Operation
3665 function CreateSetIterator(set, kind) {
3666 if (Type(set) !== 'object') throw TypeError();
3667 if (!('[[SetData]]' in set)) throw TypeError();
3668 if (set['[[SetData]]'] === undefined) throw TypeError();
3669 var iterator = new SetIterator;
3670 set_internal(iterator, '[[IteratedSet]]', set);
3671 set_internal(iterator, '[[SetNextIndex]]',
0);
3672 set_internal(iterator, '[[SetIterationKind]]', kind);
3676 //
23.2.5.2 The %SetIteratorPrototype% Object
3677 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3678 SetIterator.prototype = $SetIteratorPrototype$;
3680 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3682 $SetIteratorPrototype$, 'next',
3684 var o = strict(this);
3685 if (Type(o) !== 'object') throw TypeError();
3686 var s = o['[[IteratedSet]]'],
3687 index = o['[[SetNextIndex]]'],
3688 itemKind = o['[[SetIterationKind]]'],
3689 entries = s['[[SetData]]'];
3690 while (index < entries.length) {
3691 var e = entries[index];
3693 set_internal(o, '[[SetNextIndex]]', index);
3695 if (itemKind === 'key+value')
3696 return CreateIterResultObject([e, e], false);
3697 return CreateIterResultObject(e, false);
3700 return CreateIterResultObject(undefined, true);
3703 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3704 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3706 //
23.2.5.3 Properties of Set Iterator Instances
3710 // ---------------------------------------
3711 //
23.3 WeakMap Objects
3712 // ---------------------------------------
3715 //
23.3.1 The WeakMap Constructor
3716 //
23.3.1.1 WeakMap ( [ iterable ] )
3718 function WeakMap(/*iterable*/) {
3719 var map = strict(this);
3720 var iterable = arguments[
0];
3722 if (Type(map) !== 'object') throw TypeError();
3723 if ('[[WeakMapData]]' in map) throw TypeError();
3725 if (iterable !== undefined) {
3726 var adder = map['set'];
3727 if (!IsCallable(adder)) throw TypeError();
3728 var iter = GetIterator(ToObject(iterable));
3730 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3731 if (iter === undefined) return map;
3733 var next = IteratorStep(iter);
3736 var nextValue = IteratorValue(next);
3737 if (Type(nextValue) !== 'object') throw TypeError();
3738 var k = nextValue[
0];
3739 var v = nextValue[
1];
3740 adder.call(map, k, v);
3746 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3747 global.WeakMap = WeakMap;
3749 //
23.3.2 Properties of the WeakMap Constructor
3750 //
23.3.2.1 WeakMap.prototype
3751 var $WeakMapPrototype$ = {};
3752 WeakMap.prototype = $WeakMapPrototype$;
3756 //
23.3.2.2 WeakMap[ @@create ] ( )
3757 //
23.3.3 Properties of the WeakMap Prototype Object
3759 //
23.3.3.1 WeakMap.prototype.constructor
3761 //
23.3.3.2 WeakMap.prototype.delete ( key )
3763 WeakMap.prototype, 'delete',
3764 function delete_(key) {
3765 var M = strict(this);
3766 if (Type(M) !== 'object') throw TypeError();
3767 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3768 if (Type(key) !== 'object') throw TypeError('Expected object');
3769 return M['[[WeakMapData]]'].remove(key);
3772 //
23.3.3.3 WeakMap.prototype.get ( key )
3774 WeakMap.prototype, 'get',
3775 function get(key, defaultValue) {
3776 var M = strict(this);
3777 if (Type(M) !== 'object') throw TypeError();
3778 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3779 if (Type(key) !== 'object') throw TypeError('Expected object');
3780 return M['[[WeakMapData]]'].get(key, defaultValue);
3783 //
23.3.3.4 WeakMap.prototype.has ( key )
3785 WeakMap.prototype, 'has',
3787 var M = strict(this);
3788 if (Type(M) !== 'object') throw TypeError();
3789 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3790 if (Type(key) !== 'object') throw TypeError('Expected object');
3791 return M['[[WeakMapData]]'].has(key);
3794 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3796 WeakMap.prototype, 'set',
3797 function set(key, value) {
3798 var M = strict(this);
3799 if (Type(M) !== 'object') throw TypeError();
3800 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3801 if (Type(key) !== 'object') throw TypeError('Expected object');
3802 M['[[WeakMapData]]'].set(key, value);
3806 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3807 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3809 //
23.3.4 Properties of WeakMap Instances
3811 // Polyfills for incomplete native implementations:
3813 var wm = new global.WeakMap();
3814 var orig = global.WeakMap.prototype.set;
3815 define(global.WeakMap.prototype, 'set', function set() {
3816 orig.apply(this, arguments);
3818 }, wm.set({},
0) !== wm);
3822 // ---------------------------------------
3823 //
23.4 WeakSet Objects
3824 // ---------------------------------------
3827 //
23.4.1 The WeakSet Constructor
3828 //
23.4.1.1 WeakSet ( [ iterable ] )
3830 function WeakSet(/*iterable*/) {
3831 var set = strict(this);
3832 var iterable = arguments[
0];
3834 if (Type(set) !== 'object') throw TypeError();
3835 if ('[[WeakSetData]]' in set) throw TypeError();
3837 if (iterable !== undefined) {
3838 var adder = set['add'];
3839 if (!IsCallable(adder)) throw TypeError();
3840 var iter = GetIterator(ToObject(iterable));
3842 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3843 if (iter === undefined) return set;
3845 var next = IteratorStep(iter);
3848 var nextValue = IteratorValue(next);
3849 adder.call(set, nextValue);
3855 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3856 global.WeakSet = WeakSet;
3858 //
23.4.2 Properties of the WeakSet Constructor
3859 //
23.4.2.1 WeakSet.prototype
3860 var $WeakSetPrototype$ = {};
3861 WeakSet.prototype = $WeakSetPrototype$;
3863 //
23.4.3 Properties of the WeakSet Prototype Object
3864 //
23.4.3.1 WeakSet.prototype.add (value )
3866 WeakSet.prototype, 'add',
3867 function add(value) {
3868 var S = strict(this);
3869 if (Type(S) !== 'object') throw TypeError();
3870 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3871 if (Type(value) !== 'object') throw TypeError('Expected object');
3872 S['[[WeakSetData]]'].set(value, true);
3876 //
23.4.3.2 WeakSet.prototype.constructor
3877 //
23.4.3.3 WeakSet.prototype.delete ( value )
3879 WeakSet.prototype, 'delete',
3880 function delete_(value) {
3881 var S = strict(this);
3882 if (Type(S) !== 'object') throw TypeError();
3883 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3884 if (Type(value) !== 'object') throw TypeError('Expected object');
3885 return S['[[WeakSetData]]'].remove(value);
3888 //
23.4.3.4 WeakSet.prototype.has ( value )
3890 WeakSet.prototype, 'has',
3892 var S = strict(this);
3893 if (Type(S) !== 'object') throw TypeError();
3894 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3895 if (Type(key) !== 'object') throw TypeError('Expected object');
3896 return S['[[WeakSetData]]'].has(key);
3899 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3900 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3902 //
23.4.4 Properties of WeakSet Instances
3904 // Polyfills for incomplete native implementations:
3906 var ws = new global.WeakSet();
3907 var orig = global.WeakSet.prototype.add;
3908 define(global.WeakSet.prototype, 'add', function add() {
3909 orig.apply(this, arguments);
3911 }, ws.add({}) !== ws);
3915 // ---------------------------------------
3916 //
24 Structured Data
3917 // ---------------------------------------
3919 // ---------------------------------------
3920 //
24.1 ArrayBuffer Objects
3921 // ---------------------------------------
3923 // See typedarray.js for TypedArray polyfill
3926 if (!('ArrayBuffer' in global))
3929 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3930 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3931 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3932 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3933 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3934 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3935 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3936 //
24.1.2 The ArrayBuffer Constructor
3937 //
24.1.2.1 ArrayBuffer( length )
3938 //
24.1.3 Properties of the ArrayBuffer Constructor
3940 //
24.1.3.1 ArrayBuffer.isView ( arg )
3942 ArrayBuffer, 'isView',
3943 function isView(arg) {
3944 if (Type(arg) !== 'object') return false;
3945 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3949 //
24.1.3.2 ArrayBuffer.prototype
3950 //
24.1.3.3 get ArrayBuffer [ @@species ]
3951 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3952 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3953 //
24.1.4.2 ArrayBuffer.prototype.constructor
3954 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3956 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3957 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3959 //
24.1.5 Properties of the ArrayBuffer Instances
3962 // ---------------------------------------
3963 //
24.2 DataView Objects
3964 // ---------------------------------------
3966 // See typedarray.js for TypedArray polyfill
3969 if (!('DataView' in global))
3972 //
24.2.1 Abstract Operations For DataView Objects
3973 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3974 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3975 //
24.2.2 The DataView Constructor
3976 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3977 //
24.2.3 Properties of the DataView Constructor
3978 //
24.2.3.1 DataView.prototype
3979 //
24.2.4 Properties of the DataView Prototype Object
3980 //
24.2.4.1 get DataView.prototype.buffer
3981 //
24.2.4.2 get DataView.prototype.byteLength
3982 //
24.2.4.3 get DataView.prototype.byteOffset
3983 //
24.2.4.4 DataView.prototype.constructor
3984 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3985 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3986 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3987 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3988 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3989 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3990 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3991 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3992 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3993 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3994 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3995 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3996 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3997 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3998 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3999 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
4001 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
4002 define(DataView.prototype, $$toStringTag, 'DataView');
4004 //
24.2.5 Properties of DataView Instances
4007 // ---------------------------------------
4008 //
24.3 The JSON Object
4009 // ---------------------------------------
4011 //
24.3.1 JSON.parse ( text [ , reviver ] )
4012 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
4013 //
24.3.3 JSON [ @@toStringTag ]
4014 define(JSON, $$toStringTag, 'JSON');
4016 // ---------------------------------------
4018 // ---------------------------------------
4020 //
25.1.1 Common Iteration Interfaces
4021 //
25.1.1.1 The Iterable Interface
4022 //
25.1.1.2 The Iterator Interface
4023 //
25.1.1.3 The IteratorResult Interface
4025 //
25.1.2 The %IteratorPrototype% Object
4026 // Defined earlier, so other prototypes can reference it.
4027 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
4028 define($IteratorPrototype$, $$iterator, function() {
4033 // ---------------------------------------
4034 //
25.4 Promise Objects
4035 // ---------------------------------------
4038 //
25.4 Promise Objects
4040 //
25.4.1 Promise Abstract Operations
4042 //
25.4.1.1 PromiseCapability Records
4043 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4045 function IfAbruptRejectPromise(value, capability) {
4046 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4047 return capability['[[Promise]]'];
4050 //
25.4.1.2 PromiseReaction Records
4052 //
25.4.1.3 CreateResolvingFunctions ( promise )
4054 function CreateResolvingFunctions(promise) {
4055 var alreadyResolved = {'[[value]]': false};
4056 var resolve = PromiseResolveFunction();
4057 set_internal(resolve, '[[Promise]]', promise);
4058 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4059 var reject = PromiseRejectFunction();
4060 set_internal(reject, '[[Promise]]', promise);
4061 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4062 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4065 //
25.4.1.3.1 Promise Reject Functions
4067 function PromiseRejectFunction() {
4068 var F = function(reason) {
4069 console.assert(Type(F['[[Promise]]']) === 'object');
4070 var promise = F['[[Promise]]'];
4071 var alreadyResolved = F['[[AlreadyResolved]]'];
4072 if (alreadyResolved['[[value]]']) return undefined;
4073 set_internal(alreadyResolved, '[[value]]', true);
4074 return RejectPromise(promise, reason);
4079 //
25.4.1.3.2 Promise Resolve Functions
4081 function PromiseResolveFunction() {
4082 var F = function(resolution) {
4083 console.assert(Type(F['[[Promise]]']) === 'object');
4084 var promise = F['[[Promise]]'];
4085 var alreadyResolved = F['[[AlreadyResolved]]'];
4086 if (alreadyResolved['[[value]]']) return undefined;
4087 set_internal(alreadyResolved, '[[value]]', true);
4089 if (SameValue(resolution, promise)) {
4090 var selfResolutionError = TypeError();
4091 return RejectPromise(promise, selfResolutionError);
4093 if (Type(resolution) !== 'object')
4094 return FulfillPromise(promise, resolution);
4096 var then = resolution['then'];
4098 return RejectPromise(promise, then);
4100 if (!IsCallable(then))
4101 return FulfillPromise(promise, resolution);
4102 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4108 //
25.4.1.4 FulfillPromise ( promise, value )
4110 function FulfillPromise(promise, value) {
4111 console.assert(promise['[[PromiseState]]'] === 'pending');
4112 var reactions = promise['[[PromiseFulfillReactions]]'];
4113 set_internal(promise, '[[PromiseResult]]', value);
4114 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4115 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4116 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4117 return TriggerPromiseReactions(reactions, value);
4120 //
25.4.1.5 NewPromiseCapability ( C )
4122 function NewPromiseCapability(c) {
4123 // To keep Promise hermetic, this doesn't look much like the spec.
4124 return CreatePromiseCapabilityRecord(undefined, c);
4127 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4129 function CreatePromiseCapabilityRecord(promise, constructor) {
4130 // To keep Promise hermetic, this doesn't look much like the spec.
4131 console.assert(IsConstructor(constructor));
4132 var promiseCapability = {};
4133 set_internal(promiseCapability, '[[Promise]]', promise);
4134 set_internal(promiseCapability, '[[Resolve]]', undefined);
4135 set_internal(promiseCapability, '[[Reject]]', undefined);
4136 var executor = GetCapabilitiesExecutor();
4137 set_internal(executor, '[[Capability]]', promiseCapability);
4139 // NOTE: Differs from spec; object is constructed here
4140 var constructorResult = promise = new constructor(executor);
4141 set_internal(promiseCapability, '[[Promise]]', promise);
4143 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4144 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4145 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4146 return promiseCapability;
4149 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4151 function GetCapabilitiesExecutor() {
4152 var F = function(resolve, reject) {
4153 console.assert(F['[[Capability]]']);
4154 var promiseCapability = F['[[Capability]]'];
4155 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4156 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4157 set_internal(promiseCapability, '[[Resolve]]', resolve);
4158 set_internal(promiseCapability, '[[Reject]]', reject);
4164 //
25.4.1.6 IsPromise ( x )
4166 function IsPromise(x) {
4167 if (Type(x) !== 'object') return false;
4168 if (!('[[PromiseState]]' in x)) return false;
4169 if (x['[[PromiseState]]'] === undefined) return false;
4173 //
25.4.1.7 RejectPromise ( promise, reason )
4175 function RejectPromise(promise, reason) {
4176 console.assert(promise['[[PromiseState]]'] === 'pending');
4177 var reactions = promise['[[PromiseRejectReactions]]'];
4178 set_internal(promise, '[[PromiseResult]]', reason);
4179 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4180 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4181 set_internal(promise, '[[PromiseState]]', 'rejected');
4182 return TriggerPromiseReactions(reactions, reason);
4185 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4187 function TriggerPromiseReactions(reactions, argument) {
4188 for (var i =
0, len = reactions.length; i < len; ++i)
4189 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4193 //
25.4.2 Promise Jobs
4195 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4197 function PromiseReactionJob(reaction, argument) {
4198 var promiseCapability = reaction['[[Capabilities]]'];
4199 var handler = reaction['[[Handler]]'];
4200 var handlerResult, status;
4202 if (handler === 'Identity') handlerResult = argument;
4203 else if (handler === 'Thrower') throw argument;
4204 else handlerResult = handler.call(undefined, argument);
4205 } catch (handlerResult) {
4206 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4207 NextJob(status); return;
4209 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4213 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4215 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4216 // SPEC BUG: promise vs. promiseToResolve
4217 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4219 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4220 resolvingFunctions['[[Reject]]']);
4221 } catch (thenCallResult) {
4222 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4223 NextJob(status); return;
4225 NextJob(thenCallResult);
4228 //
25.4.3 The Promise Constructor
4230 //
25.4.3.1 Promise ( executor )
4232 function Promise(executor) {
4233 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4234 Object.defineProperty(this, '[[PromiseState]]', config);
4235 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4236 Object.defineProperty(this, '[[PromiseResult]]', config);
4237 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4238 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4241 if (Type(promise) !== 'object') throw new TypeError();
4242 if (!('[[PromiseState]]' in promise)) throw TypeError();
4243 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4244 if (!IsCallable(executor)) throw TypeError();
4246 set_internal(promise, '[[PromiseConstructor]]', Promise);
4248 return InitializePromise(promise, executor);
4251 //
25.4.3.1.1 InitializePromise ( promise, executor )
4253 function InitializePromise(promise, executor) {
4254 console.assert('[[PromiseState]]' in promise);
4255 console.assert(IsCallable(executor));
4256 set_internal(promise, '[[PromiseState]]', 'pending');
4257 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4258 set_internal(promise, '[[PromiseRejectReactions]]', []);
4259 var resolvingFunctions = CreateResolvingFunctions(promise);
4261 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4262 resolvingFunctions['[[Reject]]']);
4263 } catch (completion) {
4264 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4269 //
25.4.4 Properties of the Promise Constructor
4270 //
25.4.4.1 Promise.all ( iterable )
4272 define(Promise, 'all', function all(iterable) {
4273 var c = strict(this);
4274 var promiseCapability = NewPromiseCapability(c);
4276 var iterator = GetIterator(iterable);
4278 promiseCapability['[[Reject]]'].call(undefined, value);
4279 return promiseCapability['[[Promise]]'];
4282 var remainingElementsCount = { value:
1 };
4286 var next = IteratorStep(iterator);
4288 promiseCapability['[[Reject]]'].call(undefined, value);
4289 return promiseCapability['[[Promise]]'];
4292 remainingElementsCount.value -=
1;
4293 if (remainingElementsCount.value ===
0) {
4294 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4298 return promiseCapability['[[Promise]]'];
4301 var nextValue = IteratorValue(next);
4303 promiseCapability['[[Reject]]'].call(undefined, value);
4304 return promiseCapability['[[Promise]]'];
4307 var nextPromise = c.resolve(nextValue);
4309 promiseCapability['[[Reject]]'].call(undefined, value);
4310 return promiseCapability['[[Promise]]'];
4312 var resolveElement = PromiseAllResolveElementFunction();
4313 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4314 set_internal(resolveElement, '[[Index]]', index);
4315 set_internal(resolveElement, '[[Values]]', values);
4316 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4317 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4318 remainingElementsCount.value +=
1;
4320 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4322 promiseCapability['[[Reject]]'].call(undefined, value);
4323 return promiseCapability['[[Promise]]'];
4329 //
25.4.4.1.1 Promise.all Resolve Element Functions
4331 function PromiseAllResolveElementFunction() {
4332 var F = function(x) {
4333 var alreadyCalled = F['[[AlreadyCalled]]'];
4334 if (alreadyCalled.value) return undefined;
4335 alreadyCalled.value = true;
4336 var index = F['[[Index]]'];
4337 var values = F['[[Values]]'];
4338 var promiseCapability = F['[[Capabilities]]'];
4339 var remainingElementsCount = F['[[RemainingElements]]'];
4343 promiseCapability['[[Reject]]'].call(undefined, result);
4344 return promiseCapability['[[Promise]]'];
4346 remainingElementsCount.value -=
1;
4347 if (remainingElementsCount.value ===
0)
4348 return promiseCapability['[[Resolve]]'].call(undefined, values);
4354 //
25.4.4.2 Promise.prototype
4356 Promise.prototype = {};
4358 //
25.4.4.3 Promise.race ( iterable )
4360 define(Promise, 'race', function race(iterable) {
4361 var c = strict(this);
4362 var promiseCapability = NewPromiseCapability(c);
4364 var iterator = GetIterator(iterable);
4366 promiseCapability['[[Reject]]'].call(undefined, value);
4367 return promiseCapability['[[Promise]]'];
4371 var next = IteratorStep(iterator);
4373 promiseCapability['[[Reject]]'].call(undefined, value);
4374 return promiseCapability['[[Promise]]'];
4376 if (!next) return promiseCapability['[[Promise]]'];
4378 var nextValue = IteratorValue(next);
4380 promiseCapability['[[Reject]]'].call(undefined, value);
4381 return promiseCapability['[[Promise]]'];
4384 var nextPromise = c.resolve(nextValue);
4386 promiseCapability['[[Reject]]'].call(undefined, value);
4387 return promiseCapability['[[Promise]]'];
4390 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4392 promiseCapability['[[Reject]]'].call(undefined, value);
4393 return promiseCapability['[[Promise]]'];
4398 //
25.4.4.4 Promise.reject ( r )
4400 define(Promise, 'reject', function reject(r) {
4401 var c = strict(this);
4402 var promiseCapability = NewPromiseCapability(c);
4403 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4404 return promiseCapability['[[Promise]]'];
4407 //
25.4.4.5 Promise.resolve ( x )
4409 define(Promise, 'resolve', function resolve(x) {
4410 var c = strict(this);
4412 var constructor = x['[[PromiseConstructor]]'];
4413 if (SameValue(constructor, c)) return x;
4415 var promiseCapability = NewPromiseCapability(c);
4416 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4417 return promiseCapability['[[Promise]]'];
4420 //
25.4.4.6 Promise [ @@create ] ( )
4421 //
25.4.4.6.1 AllocatePromise ( constructor )
4422 //
25.4.5 Properties of the Promise Prototype Object
4423 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4425 define(Promise.prototype, 'catch', function catch_(onRejected) {
4427 return promise.then(undefined, onRejected);
4430 //
25.4.5.2 Promise.prototype.constructor
4432 Promise.prototype.constructor = Promise;
4434 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4436 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4438 if (!IsPromise(promise)) throw TypeError();
4439 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4440 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4441 var c = promise.constructor;
4442 var promiseCapability = NewPromiseCapability(c);
4443 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4444 '[[Handler]]': onFulfilled };
4445 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4446 '[[Handler]]': onRejected };
4447 if (promise['[[PromiseState]]'] === 'pending') {
4448 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4449 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4450 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4451 var value = promise['[[PromiseResult]]'];
4452 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4453 } else if (promise['[[PromiseState]]'] === 'rejected') {
4454 var reason = promise['[[PromiseResult]]'];
4455 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4457 return promiseCapability['[[Promise]]'];
4460 //
25.4.6 Properties of Promise Instances
4462 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4463 global.Promise = Promise;
4465 // Patch early Promise.cast vs. Promise.resolve implementations
4466 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4469 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4470 define(Promise.prototype, $$toStringTag, 'Promise');
4472 // ---------------------------------------
4474 // ---------------------------------------
4477 //
26.1 The Reflect Object
4478 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4479 global.Reflect = {};
4481 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4484 function apply(target, thisArgument, argumentsList) {
4485 if (!IsCallable(target)) throw TypeError();
4486 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4489 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4491 Reflect, 'construct',
4492 function construct(target, argumentsList) {
4493 return __cons(target, argumentsList);
4496 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4498 Reflect, 'defineProperty',
4499 function defineProperty(target, propertyKey, attributes) {
4501 Object.defineProperty(target, propertyKey, attributes);
4508 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4510 Reflect, 'deleteProperty',
4511 function deleteProperty(target,name) {
4513 delete target[name];
4514 return !HasOwnProperty(target, name);
4520 //
26.1.5 Reflect.enumerate ( target )
4522 Reflect, 'enumerate',
4523 function enumerate(target) {
4524 target = ToObject(target);
4525 var iterator = Enumerate(target);
4529 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4532 function get(target, name, receiver) {
4533 target = ToObject(target);
4534 name = String(name);
4535 receiver = (receiver === undefined) ? target : ToObject(receiver);
4536 var desc = getPropertyDescriptor(target, name);
4537 if (desc && 'get' in desc)
4538 return Function.prototype.call.call(desc['get'], receiver);
4539 return target[name];
4542 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4544 Reflect, 'getOwnPropertyDescriptor',
4545 Object.getOwnPropertyDescriptor);
4547 //
26.1.8 Reflect.getPrototypeOf ( target )
4549 Reflect, 'getPrototypeOf',
4550 Object.getPrototypeOf);
4552 //
26.1.9 Reflect.has ( target, propertyKey )
4555 function has(target,name) {
4556 return String(name) in ToObject(target);
4559 //
26.1.10 Reflect.isExtensible (target)
4561 Reflect, 'isExtensible',
4562 Object.isExtensible);
4564 //
26.1.11 Reflect.ownKeys ( target )
4567 function ownKeys(target) {
4568 var obj = ToObject(target);
4569 return Object.getOwnPropertyNames(obj);
4572 //
26.1.12 Reflect.preventExtensions ( target )
4574 Reflect, 'preventExtensions',
4575 function preventExtensions(target) {
4576 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4579 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4582 function set(target, name, value, receiver) {
4583 target = ToObject(target);
4584 name = String(name);
4585 receiver = (receiver === undefined) ? target : ToObject(receiver);
4586 var desc = getPropertyDescriptor(target, name);
4588 if (desc && 'set' in desc)
4589 Function.prototype.call.call(desc['set'], receiver, value);
4591 target[name] = value;
4598 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4600 Reflect, 'setPrototypeOf',
4601 function setPrototypeOf(target, proto) {
4603 target.__proto__ = proto;
4604 return Reflect.getPrototypeOf(target) === proto;
4612 // ---------------------------------------
4613 //
26.2 Proxy Objects
4614 // ---------------------------------------
4616 // Not polyfillable.
4620 // This helper is defined outside the main scope so that the use of
4621 // 'eval' does not taint the scope for minifiers.
4622 function __cons(t, a) {
4623 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4626 <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){
4629 exports.byteLength = byteLength
4630 exports.toByteArray = toByteArray
4631 exports.fromByteArray = fromByteArray
4635 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4637 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4638 for (var i =
0, len = code.length; i < len; ++i) {
4640 revLookup[code.charCodeAt(i)] = i
4643 revLookup['-'.charCodeAt(
0)] =
62
4644 revLookup['_'.charCodeAt(
0)] =
63
4646 function placeHoldersCount (b64) {
4647 var len = b64.length
4649 throw new Error('Invalid string. Length must be a multiple of
4')
4652 // the number of equal signs (place holders)
4653 // if there are two placeholders, than the two characters before it
4654 // represent one byte
4655 // if there is only one, then the three characters before it represent
2 bytes
4656 // this is just a cheap hack to not do indexOf twice
4657 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4660 function byteLength (b64) {
4661 // base64 is
4/
3 + up to two characters of the original data
4662 return b64.length *
3 /
4 - placeHoldersCount(b64)
4665 function toByteArray (b64) {
4666 var i, j, l, tmp, placeHolders, arr
4667 var len = b64.length
4668 placeHolders = placeHoldersCount(b64)
4670 arr = new Arr(len *
3 /
4 - placeHolders)
4672 // if there are placeholders, only get up to the last complete
4 chars
4673 l = placeHolders
> 0 ? len -
4 : len
4677 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4678 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4679 arr[L++] = (tmp
>> 16) &
0xFF
4680 arr[L++] = (tmp
>> 8) &
0xFF
4681 arr[L++] = tmp &
0xFF
4684 if (placeHolders ===
2) {
4685 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4686 arr[L++] = tmp &
0xFF
4687 } else if (placeHolders ===
1) {
4688 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4689 arr[L++] = (tmp
>> 8) &
0xFF
4690 arr[L++] = tmp &
0xFF
4696 function tripletToBase64 (num) {
4697 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4700 function encodeChunk (uint8, start, end) {
4703 for (var i = start; i < end; i +=
3) {
4704 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4705 output.push(tripletToBase64(tmp))
4707 return output.join('')
4710 function fromByteArray (uint8) {
4712 var len = uint8.length
4713 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4716 var maxChunkLength =
16383 // must be multiple of
3
4718 // go through the array every three bytes, we'll deal with trailing stuff later
4719 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4720 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4723 // pad the end with zeros, but make sure to not forget the extra bytes
4724 if (extraBytes ===
1) {
4725 tmp = uint8[len -
1]
4726 output += lookup[tmp
>> 2]
4727 output += lookup[(tmp <<
4) &
0x3F]
4729 } else if (extraBytes ===
2) {
4730 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4731 output += lookup[tmp
>> 10]
4732 output += lookup[(tmp
>> 4) &
0x3F]
4733 output += lookup[(tmp <<
2) &
0x3F]
4739 return parts.join('')
4742 },{}],
2:[function(require,module,exports){
4744 * The buffer module from node.js, for the browser.
4746 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4749 /* eslint-disable no-proto */
4753 var base64 = require('base64-js')
4754 var ieee754 = require('ieee754')
4756 exports.Buffer = Buffer
4757 exports.SlowBuffer = SlowBuffer
4758 exports.INSPECT_MAX_BYTES =
50
4760 var K_MAX_LENGTH =
0x7fffffff
4761 exports.kMaxLength = K_MAX_LENGTH
4764 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4765 * === true Use Uint8Array implementation (fastest)
4766 * === false Print warning and recommend using `buffer` v4.x which has an Object
4767 * implementation (most compatible, even IE6)
4769 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4770 * Opera
11.6+, iOS
4.2+.
4772 * We report that the browser does not support typed arrays if the are not subclassable
4773 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4774 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4775 * for __proto__ and has a buggy typed array implementation.
4777 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4779 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4780 typeof console.error === 'function') {
4782 'This browser lacks typed array (Uint8Array) support which is required by ' +
4783 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4787 function typedArraySupport () {
4788 // Can typed array instances can be augmented?
4790 var arr = new Uint8Array(
1)
4791 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4792 return arr.foo() ===
42
4798 function createBuffer (length) {
4799 if (length
> K_MAX_LENGTH) {
4800 throw new RangeError('Invalid typed array length')
4802 // Return an augmented `Uint8Array` instance
4803 var buf = new Uint8Array(length)
4804 buf.__proto__ = Buffer.prototype
4809 * The Buffer constructor returns instances of `Uint8Array` that have their
4810 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4811 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4812 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4813 * returns a single octet.
4815 * The `Uint8Array` prototype remains unmodified.
4818 function Buffer (arg, encodingOrOffset, length) {
4820 if (typeof arg === 'number') {
4821 if (typeof encodingOrOffset === 'string') {
4823 'If encoding is specified then the first argument must be a string'
4826 return allocUnsafe(arg)
4828 return from(arg, encodingOrOffset, length)
4831 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4832 if (typeof Symbol !== 'undefined' && Symbol.species &&
4833 Buffer[Symbol.species] === Buffer) {
4834 Object.defineProperty(Buffer, Symbol.species, {
4842 Buffer.poolSize =
8192 // not used by this implementation
4844 function from (value, encodingOrOffset, length) {
4845 if (typeof value === 'number') {
4846 throw new TypeError('"value" argument must not be a number')
4849 if (value instanceof ArrayBuffer) {
4850 return fromArrayBuffer(value, encodingOrOffset, length)
4853 if (typeof value === 'string') {
4854 return fromString(value, encodingOrOffset)
4857 return fromObject(value)
4861 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4862 * if value is a number.
4863 * Buffer.from(str[, encoding])
4864 * Buffer.from(array)
4865 * Buffer.from(buffer)
4866 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4868 Buffer.from = function (value, encodingOrOffset, length) {
4869 return from(value, encodingOrOffset, length)
4872 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4873 // https://github.com/feross/buffer/pull/
148
4874 Buffer.prototype.__proto__ = Uint8Array.prototype
4875 Buffer.__proto__ = Uint8Array
4877 function assertSize (size) {
4878 if (typeof size !== 'number') {
4879 throw new TypeError('"size" argument must be a number')
4880 } else if (size <
0) {
4881 throw new RangeError('"size" argument must not be negative')
4885 function alloc (size, fill, encoding) {
4888 return createBuffer(size)
4890 if (fill !== undefined) {
4891 // Only pay attention to encoding if it's a string. This
4892 // prevents accidentally sending in a number that would
4893 // be interpretted as a start offset.
4894 return typeof encoding === 'string'
4895 ? createBuffer(size).fill(fill, encoding)
4896 : createBuffer(size).fill(fill)
4898 return createBuffer(size)
4902 * Creates a new filled Buffer instance.
4903 * alloc(size[, fill[, encoding]])
4905 Buffer.alloc = function (size, fill, encoding) {
4906 return alloc(size, fill, encoding)
4909 function allocUnsafe (size) {
4911 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4915 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4917 Buffer.allocUnsafe = function (size) {
4918 return allocUnsafe(size)
4921 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4923 Buffer.allocUnsafeSlow = function (size) {
4924 return allocUnsafe(size)
4927 function fromString (string, encoding) {
4928 if (typeof encoding !== 'string' || encoding === '') {
4932 if (!Buffer.isEncoding(encoding)) {
4933 throw new TypeError('"encoding" must be a valid string encoding')
4936 var length = byteLength(string, encoding) |
0
4937 var buf = createBuffer(length)
4939 var actual = buf.write(string, encoding)
4941 if (actual !== length) {
4942 // Writing a hex string, for example, that contains invalid characters will
4943 // cause everything after the first invalid character to be ignored. (e.g.
4944 // 'abxxcd' will be treated as 'ab')
4945 buf = buf.slice(
0, actual)
4951 function fromArrayLike (array) {
4952 var length = array.length <
0 ?
0 : checked(array.length) |
0
4953 var buf = createBuffer(length)
4954 for (var i =
0; i < length; i +=
1) {
4955 buf[i] = array[i] &
255
4960 function fromArrayBuffer (array, byteOffset, length) {
4961 if (byteOffset <
0 || array.byteLength < byteOffset) {
4962 throw new RangeError('\'offset\' is out of bounds')
4965 if (array.byteLength < byteOffset + (length ||
0)) {
4966 throw new RangeError('\'length\' is out of bounds')
4970 if (byteOffset === undefined && length === undefined) {
4971 buf = new Uint8Array(array)
4972 } else if (length === undefined) {
4973 buf = new Uint8Array(array, byteOffset)
4975 buf = new Uint8Array(array, byteOffset, length)
4978 // Return an augmented `Uint8Array` instance
4979 buf.__proto__ = Buffer.prototype
4983 function fromObject (obj) {
4984 if (Buffer.isBuffer(obj)) {
4985 var len = checked(obj.length) |
0
4986 var buf = createBuffer(len)
4988 if (buf.length ===
0) {
4992 obj.copy(buf,
0,
0, len)
4997 if (isArrayBufferView(obj) || 'length' in obj) {
4998 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4999 return createBuffer(
0)
5001 return fromArrayLike(obj)
5004 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
5005 return fromArrayLike(obj.data)
5009 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
5012 function checked (length) {
5013 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
5014 // length is NaN (which is otherwise coerced to zero.)
5015 if (length
>= K_MAX_LENGTH) {
5016 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
5017 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
5022 function SlowBuffer (length) {
5023 if (+length != length) { // eslint-disable-line eqeqeq
5026 return Buffer.alloc(+length)
5029 Buffer.isBuffer = function isBuffer (b) {
5030 return b != null && b._isBuffer === true
5033 Buffer.compare = function compare (a, b) {
5034 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5035 throw new TypeError('Arguments must be Buffers')
5038 if (a === b) return
0
5043 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5044 if (a[i] !== b[i]) {
5051 if (x < y) return -
1
5056 Buffer.isEncoding = function isEncoding (encoding) {
5057 switch (String(encoding).toLowerCase()) {
5075 Buffer.concat = function concat (list, length) {
5076 if (!Array.isArray(list)) {
5077 throw new TypeError('"list" argument must be an Array of Buffers')
5080 if (list.length ===
0) {
5081 return Buffer.alloc(
0)
5085 if (length === undefined) {
5087 for (i =
0; i < list.length; ++i) {
5088 length += list[i].length
5092 var buffer = Buffer.allocUnsafe(length)
5094 for (i =
0; i < list.length; ++i) {
5096 if (!Buffer.isBuffer(buf)) {
5097 throw new TypeError('"list" argument must be an Array of Buffers')
5099 buf.copy(buffer, pos)
5105 function byteLength (string, encoding) {
5106 if (Buffer.isBuffer(string)) {
5107 return string.length
5109 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5110 return string.byteLength
5112 if (typeof string !== 'string') {
5113 string = '' + string
5116 var len = string.length
5117 if (len ===
0) return
0
5119 // Use a for loop to avoid recursion
5120 var loweredCase = false
5130 return utf8ToBytes(string).length
5139 return base64ToBytes(string).length
5141 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5142 encoding = ('' + encoding).toLowerCase()
5147 Buffer.byteLength = byteLength
5149 function slowToString (encoding, start, end) {
5150 var loweredCase = false
5152 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5153 // property of a typed array.
5155 // This behaves neither like String nor Uint8Array in that we set start/end
5156 // to their upper/lower bounds if the value passed is out of range.
5157 // undefined is handled specially as per ECMA-
262 6th Edition,
5158 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5159 if (start === undefined || start <
0) {
5162 // Return early if start
> this.length. Done here to prevent potential uint32
5163 // coercion fail below.
5164 if (start
> this.length) {
5168 if (end === undefined || end
> this.length) {
5176 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5184 if (!encoding) encoding = 'utf8'
5189 return hexSlice(this, start, end)
5193 return utf8Slice(this, start, end)
5196 return asciiSlice(this, start, end)
5200 return latin1Slice(this, start, end)
5203 return base64Slice(this, start, end)
5209 return utf16leSlice(this, start, end)
5212 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5213 encoding = (encoding + '').toLowerCase()
5219 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5220 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5221 // reliably in a browserify context because there could be multiple different
5222 // copies of the 'buffer' package in use. This method works even for Buffer
5223 // instances that were created from another copy of the `buffer` package.
5224 // See: https://github.com/feross/buffer/issues/
154
5225 Buffer.prototype._isBuffer = true
5227 function swap (b, n, m) {
5233 Buffer.prototype.swap16 = function swap16 () {
5234 var len = this.length
5235 if (len %
2 !==
0) {
5236 throw new RangeError('Buffer size must be a multiple of
16-bits')
5238 for (var i =
0; i < len; i +=
2) {
5239 swap(this, i, i +
1)
5244 Buffer.prototype.swap32 = function swap32 () {
5245 var len = this.length
5246 if (len %
4 !==
0) {
5247 throw new RangeError('Buffer size must be a multiple of
32-bits')
5249 for (var i =
0; i < len; i +=
4) {
5250 swap(this, i, i +
3)
5251 swap(this, i +
1, i +
2)
5256 Buffer.prototype.swap64 = function swap64 () {
5257 var len = this.length
5258 if (len %
8 !==
0) {
5259 throw new RangeError('Buffer size must be a multiple of
64-bits')
5261 for (var i =
0; i < len; i +=
8) {
5262 swap(this, i, i +
7)
5263 swap(this, i +
1, i +
6)
5264 swap(this, i +
2, i +
5)
5265 swap(this, i +
3, i +
4)
5270 Buffer.prototype.toString = function toString () {
5271 var length = this.length
5272 if (length ===
0) return ''
5273 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5274 return slowToString.apply(this, arguments)
5277 Buffer.prototype.equals = function equals (b) {
5278 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5279 if (this === b) return true
5280 return Buffer.compare(this, b) ===
0
5283 Buffer.prototype.inspect = function inspect () {
5285 var max = exports.INSPECT_MAX_BYTES
5286 if (this.length
> 0) {
5287 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5288 if (this.length
> max) str += ' ... '
5290 return '
<Buffer ' + str + '
>'
5293 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5294 if (!Buffer.isBuffer(target)) {
5295 throw new TypeError('Argument must be a Buffer')
5298 if (start === undefined) {
5301 if (end === undefined) {
5302 end = target ? target.length :
0
5304 if (thisStart === undefined) {
5307 if (thisEnd === undefined) {
5308 thisEnd = this.length
5311 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5312 throw new RangeError('out of range index')
5315 if (thisStart
>= thisEnd && start
>= end) {
5318 if (thisStart
>= thisEnd) {
5330 if (this === target) return
0
5332 var x = thisEnd - thisStart
5334 var len = Math.min(x, y)
5336 var thisCopy = this.slice(thisStart, thisEnd)
5337 var targetCopy = target.slice(start, end)
5339 for (var i =
0; i < len; ++i) {
5340 if (thisCopy[i] !== targetCopy[i]) {
5347 if (x < y) return -
1
5352 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5353 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5356 // - buffer - a Buffer to search
5357 // - val - a string, Buffer, or number
5358 // - byteOffset - an index into `buffer`; will be clamped to an int32
5359 // - encoding - an optional encoding, relevant is val is a string
5360 // - dir - true for indexOf, false for lastIndexOf
5361 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5362 // Empty buffer means no match
5363 if (buffer.length ===
0) return -
1
5365 // Normalize byteOffset
5366 if (typeof byteOffset === 'string') {
5367 encoding = byteOffset
5369 } else if (byteOffset
> 0x7fffffff) {
5370 byteOffset =
0x7fffffff
5371 } else if (byteOffset < -
0x80000000) {
5372 byteOffset = -
0x80000000
5374 byteOffset = +byteOffset // Coerce to Number.
5375 if (numberIsNaN(byteOffset)) {
5376 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5377 byteOffset = dir ?
0 : (buffer.length -
1)
5380 // Normalize byteOffset: negative offsets start from the end of the buffer
5381 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5382 if (byteOffset
>= buffer.length) {
5384 else byteOffset = buffer.length -
1
5385 } else if (byteOffset <
0) {
5386 if (dir) byteOffset =
0
5391 if (typeof val === 'string') {
5392 val = Buffer.from(val, encoding)
5395 // Finally, search either indexOf (if dir is true) or lastIndexOf
5396 if (Buffer.isBuffer(val)) {
5397 // Special case: looking for empty string/buffer always fails
5398 if (val.length ===
0) {
5401 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5402 } else if (typeof val === 'number') {
5403 val = val &
0xFF // Search for a byte value [
0-
255]
5404 if (typeof Uint8Array.prototype.indexOf === 'function') {
5406 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5408 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5411 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5414 throw new TypeError('val must be string, number or Buffer')
5417 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5419 var arrLength = arr.length
5420 var valLength = val.length
5422 if (encoding !== undefined) {
5423 encoding = String(encoding).toLowerCase()
5424 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5425 encoding === 'utf16le' || encoding === 'utf-
16le') {
5426 if (arr.length <
2 || val.length <
2) {
5436 function read (buf, i) {
5437 if (indexSize ===
1) {
5440 return buf.readUInt16BE(i * indexSize)
5447 for (i = byteOffset; i < arrLength; i++) {
5448 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5449 if (foundIndex === -
1) foundIndex = i
5450 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5452 if (foundIndex !== -
1) i -= i - foundIndex
5457 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5458 for (i = byteOffset; i
>=
0; i--) {
5460 for (var j =
0; j < valLength; j++) {
5461 if (read(arr, i + j) !== read(val, j)) {
5473 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5474 return this.indexOf(val, byteOffset, encoding) !== -
1
5477 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5478 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5481 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5482 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5485 function hexWrite (buf, string, offset, length) {
5486 offset = Number(offset) ||
0
5487 var remaining = buf.length - offset
5491 length = Number(length)
5492 if (length
> remaining) {
5497 // must be an even number of digits
5498 var strLen = string.length
5499 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5501 if (length
> strLen /
2) {
5504 for (var i =
0; i < length; ++i) {
5505 var parsed = parseInt(string.substr(i *
2,
2),
16)
5506 if (numberIsNaN(parsed)) return i
5507 buf[offset + i] = parsed
5512 function utf8Write (buf, string, offset, length) {
5513 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5516 function asciiWrite (buf, string, offset, length) {
5517 return blitBuffer(asciiToBytes(string), buf, offset, length)
5520 function latin1Write (buf, string, offset, length) {
5521 return asciiWrite(buf, string, offset, length)
5524 function base64Write (buf, string, offset, length) {
5525 return blitBuffer(base64ToBytes(string), buf, offset, length)
5528 function ucs2Write (buf, string, offset, length) {
5529 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5532 Buffer.prototype.write = function write (string, offset, length, encoding) {
5533 // Buffer#write(string)
5534 if (offset === undefined) {
5536 length = this.length
5538 // Buffer#write(string, encoding)
5539 } else if (length === undefined && typeof offset === 'string') {
5541 length = this.length
5543 // Buffer#write(string, offset[, length][, encoding])
5544 } else if (isFinite(offset)) {
5545 offset = offset
>>> 0
5546 if (isFinite(length)) {
5547 length = length
>>> 0
5548 if (encoding === undefined) encoding = 'utf8'
5555 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5559 var remaining = this.length - offset
5560 if (length === undefined || length
> remaining) length = remaining
5562 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5563 throw new RangeError('Attempt to write outside buffer bounds')
5566 if (!encoding) encoding = 'utf8'
5568 var loweredCase = false
5572 return hexWrite(this, string, offset, length)
5576 return utf8Write(this, string, offset, length)
5579 return asciiWrite(this, string, offset, length)
5583 return latin1Write(this, string, offset, length)
5586 // Warning: maxLength not taken into account in base64Write
5587 return base64Write(this, string, offset, length)
5593 return ucs2Write(this, string, offset, length)
5596 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5597 encoding = ('' + encoding).toLowerCase()
5603 Buffer.prototype.toJSON = function toJSON () {
5606 data: Array.prototype.slice.call(this._arr || this,
0)
5610 function base64Slice (buf, start, end) {
5611 if (start ===
0 && end === buf.length) {
5612 return base64.fromByteArray(buf)
5614 return base64.fromByteArray(buf.slice(start, end))
5618 function utf8Slice (buf, start, end) {
5619 end = Math.min(buf.length, end)
5624 var firstByte = buf[i]
5625 var codePoint = null
5626 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5627 : (firstByte
> 0xDF) ?
3
5628 : (firstByte
> 0xBF) ?
2
5631 if (i + bytesPerSequence <= end) {
5632 var secondByte, thirdByte, fourthByte, tempCodePoint
5634 switch (bytesPerSequence) {
5636 if (firstByte <
0x80) {
5637 codePoint = firstByte
5641 secondByte = buf[i +
1]
5642 if ((secondByte &
0xC0) ===
0x80) {
5643 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5644 if (tempCodePoint
> 0x7F) {
5645 codePoint = tempCodePoint
5650 secondByte = buf[i +
1]
5651 thirdByte = buf[i +
2]
5652 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5653 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5654 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5655 codePoint = tempCodePoint
5660 secondByte = buf[i +
1]
5661 thirdByte = buf[i +
2]
5662 fourthByte = buf[i +
3]
5663 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5664 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5665 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5666 codePoint = tempCodePoint
5672 if (codePoint === null) {
5673 // we did not generate a valid codePoint so insert a
5674 // replacement char (U+FFFD) and advance only
1 byte
5676 bytesPerSequence =
1
5677 } else if (codePoint
> 0xFFFF) {
5678 // encode to utf16 (surrogate pair dance)
5679 codePoint -=
0x10000
5680 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5681 codePoint =
0xDC00 | codePoint &
0x3FF
5685 i += bytesPerSequence
5688 return decodeCodePointsArray(res)
5691 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5692 // the lowest limit is Chrome, with
0x10000 args.
5693 // We go
1 magnitude less, for safety
5694 var MAX_ARGUMENTS_LENGTH =
0x1000
5696 function decodeCodePointsArray (codePoints) {
5697 var len = codePoints.length
5698 if (len <= MAX_ARGUMENTS_LENGTH) {
5699 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5702 // Decode in chunks to avoid
"call stack size exceeded".
5706 res += String.fromCharCode.apply(
5708 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5714 function asciiSlice (buf, start, end) {
5716 end = Math.min(buf.length, end)
5718 for (var i = start; i < end; ++i) {
5719 ret += String.fromCharCode(buf[i] &
0x7F)
5724 function latin1Slice (buf, start, end) {
5726 end = Math.min(buf.length, end)
5728 for (var i = start; i < end; ++i) {
5729 ret += String.fromCharCode(buf[i])
5734 function hexSlice (buf, start, end) {
5735 var len = buf.length
5737 if (!start || start <
0) start =
0
5738 if (!end || end <
0 || end
> len) end = len
5741 for (var i = start; i < end; ++i) {
5742 out += toHex(buf[i])
5747 function utf16leSlice (buf, start, end) {
5748 var bytes = buf.slice(start, end)
5750 for (var i =
0; i < bytes.length; i +=
2) {
5751 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5756 Buffer.prototype.slice = function slice (start, end) {
5757 var len = this.length
5759 end = end === undefined ? len : ~~end
5763 if (start <
0) start =
0
5764 } else if (start
> len) {
5770 if (end <
0) end =
0
5771 } else if (end
> len) {
5775 if (end < start) end = start
5777 var newBuf = this.subarray(start, end)
5778 // Return an augmented `Uint8Array` instance
5779 newBuf.__proto__ = Buffer.prototype
5784 * Need to make sure that buffer isn't trying to write out of bounds.
5786 function checkOffset (offset, ext, length) {
5787 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5788 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5791 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5792 offset = offset
>>> 0
5793 byteLength = byteLength
>>> 0
5794 if (!noAssert) checkOffset(offset, byteLength, this.length)
5796 var val = this[offset]
5799 while (++i < byteLength && (mul *=
0x100)) {
5800 val += this[offset + i] * mul
5806 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5807 offset = offset
>>> 0
5808 byteLength = byteLength
>>> 0
5810 checkOffset(offset, byteLength, this.length)
5813 var val = this[offset + --byteLength]
5815 while (byteLength
> 0 && (mul *=
0x100)) {
5816 val += this[offset + --byteLength] * mul
5822 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5823 offset = offset
>>> 0
5824 if (!noAssert) checkOffset(offset,
1, this.length)
5828 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5829 offset = offset
>>> 0
5830 if (!noAssert) checkOffset(offset,
2, this.length)
5831 return this[offset] | (this[offset +
1] <<
8)
5834 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5835 offset = offset
>>> 0
5836 if (!noAssert) checkOffset(offset,
2, this.length)
5837 return (this[offset] <<
8) | this[offset +
1]
5840 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5841 offset = offset
>>> 0
5842 if (!noAssert) checkOffset(offset,
4, this.length)
5844 return ((this[offset]) |
5845 (this[offset +
1] <<
8) |
5846 (this[offset +
2] <<
16)) +
5847 (this[offset +
3] *
0x1000000)
5850 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5851 offset = offset
>>> 0
5852 if (!noAssert) checkOffset(offset,
4, this.length)
5854 return (this[offset] *
0x1000000) +
5855 ((this[offset +
1] <<
16) |
5856 (this[offset +
2] <<
8) |
5860 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5861 offset = offset
>>> 0
5862 byteLength = byteLength
>>> 0
5863 if (!noAssert) checkOffset(offset, byteLength, this.length)
5865 var val = this[offset]
5868 while (++i < byteLength && (mul *=
0x100)) {
5869 val += this[offset + i] * mul
5873 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5878 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5879 offset = offset
>>> 0
5880 byteLength = byteLength
>>> 0
5881 if (!noAssert) checkOffset(offset, byteLength, this.length)
5885 var val = this[offset + --i]
5886 while (i
> 0 && (mul *=
0x100)) {
5887 val += this[offset + --i] * mul
5891 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5896 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5897 offset = offset
>>> 0
5898 if (!noAssert) checkOffset(offset,
1, this.length)
5899 if (!(this[offset] &
0x80)) return (this[offset])
5900 return ((
0xff - this[offset] +
1) * -
1)
5903 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5904 offset = offset
>>> 0
5905 if (!noAssert) checkOffset(offset,
2, this.length)
5906 var val = this[offset] | (this[offset +
1] <<
8)
5907 return (val &
0x8000) ? val |
0xFFFF0000 : val
5910 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5911 offset = offset
>>> 0
5912 if (!noAssert) checkOffset(offset,
2, this.length)
5913 var val = this[offset +
1] | (this[offset] <<
8)
5914 return (val &
0x8000) ? val |
0xFFFF0000 : val
5917 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5918 offset = offset
>>> 0
5919 if (!noAssert) checkOffset(offset,
4, this.length)
5921 return (this[offset]) |
5922 (this[offset +
1] <<
8) |
5923 (this[offset +
2] <<
16) |
5924 (this[offset +
3] <<
24)
5927 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5928 offset = offset
>>> 0
5929 if (!noAssert) checkOffset(offset,
4, this.length)
5931 return (this[offset] <<
24) |
5932 (this[offset +
1] <<
16) |
5933 (this[offset +
2] <<
8) |
5937 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5938 offset = offset
>>> 0
5939 if (!noAssert) checkOffset(offset,
4, this.length)
5940 return ieee754.read(this, offset, true,
23,
4)
5943 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5944 offset = offset
>>> 0
5945 if (!noAssert) checkOffset(offset,
4, this.length)
5946 return ieee754.read(this, offset, false,
23,
4)
5949 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5950 offset = offset
>>> 0
5951 if (!noAssert) checkOffset(offset,
8, this.length)
5952 return ieee754.read(this, offset, true,
52,
8)
5955 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5956 offset = offset
>>> 0
5957 if (!noAssert) checkOffset(offset,
8, this.length)
5958 return ieee754.read(this, offset, false,
52,
8)
5961 function checkInt (buf, value, offset, ext, max, min) {
5962 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5963 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5964 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5967 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5969 offset = offset
>>> 0
5970 byteLength = byteLength
>>> 0
5972 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5973 checkInt(this, value, offset, byteLength, maxBytes,
0)
5978 this[offset] = value &
0xFF
5979 while (++i < byteLength && (mul *=
0x100)) {
5980 this[offset + i] = (value / mul) &
0xFF
5983 return offset + byteLength
5986 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5988 offset = offset
>>> 0
5989 byteLength = byteLength
>>> 0
5991 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5992 checkInt(this, value, offset, byteLength, maxBytes,
0)
5995 var i = byteLength -
1
5997 this[offset + i] = value &
0xFF
5998 while (--i
>=
0 && (mul *=
0x100)) {
5999 this[offset + i] = (value / mul) &
0xFF
6002 return offset + byteLength
6005 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
6007 offset = offset
>>> 0
6008 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
6009 this[offset] = (value &
0xff)
6013 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
6015 offset = offset
>>> 0
6016 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6017 this[offset] = (value &
0xff)
6018 this[offset +
1] = (value
>>> 8)
6022 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
6024 offset = offset
>>> 0
6025 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6026 this[offset] = (value
>>> 8)
6027 this[offset +
1] = (value &
0xff)
6031 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6033 offset = offset
>>> 0
6034 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6035 this[offset +
3] = (value
>>> 24)
6036 this[offset +
2] = (value
>>> 16)
6037 this[offset +
1] = (value
>>> 8)
6038 this[offset] = (value &
0xff)
6042 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6044 offset = offset
>>> 0
6045 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6046 this[offset] = (value
>>> 24)
6047 this[offset +
1] = (value
>>> 16)
6048 this[offset +
2] = (value
>>> 8)
6049 this[offset +
3] = (value &
0xff)
6053 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6055 offset = offset
>>> 0
6057 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6059 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6065 this[offset] = value &
0xFF
6066 while (++i < byteLength && (mul *=
0x100)) {
6067 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6070 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6073 return offset + byteLength
6076 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6078 offset = offset
>>> 0
6080 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6082 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6085 var i = byteLength -
1
6088 this[offset + i] = value &
0xFF
6089 while (--i
>=
0 && (mul *=
0x100)) {
6090 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6093 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6096 return offset + byteLength
6099 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6101 offset = offset
>>> 0
6102 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6103 if (value <
0) value =
0xff + value +
1
6104 this[offset] = (value &
0xff)
6108 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6110 offset = offset
>>> 0
6111 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6112 this[offset] = (value &
0xff)
6113 this[offset +
1] = (value
>>> 8)
6117 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6119 offset = offset
>>> 0
6120 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6121 this[offset] = (value
>>> 8)
6122 this[offset +
1] = (value &
0xff)
6126 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6128 offset = offset
>>> 0
6129 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6130 this[offset] = (value &
0xff)
6131 this[offset +
1] = (value
>>> 8)
6132 this[offset +
2] = (value
>>> 16)
6133 this[offset +
3] = (value
>>> 24)
6137 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6139 offset = offset
>>> 0
6140 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6141 if (value <
0) value =
0xffffffff + value +
1
6142 this[offset] = (value
>>> 24)
6143 this[offset +
1] = (value
>>> 16)
6144 this[offset +
2] = (value
>>> 8)
6145 this[offset +
3] = (value &
0xff)
6149 function checkIEEE754 (buf, value, offset, ext, max, min) {
6150 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6151 if (offset <
0) throw new RangeError('Index out of range')
6154 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6156 offset = offset
>>> 0
6158 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6160 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6164 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6165 return writeFloat(this, value, offset, true, noAssert)
6168 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6169 return writeFloat(this, value, offset, false, noAssert)
6172 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6174 offset = offset
>>> 0
6176 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6178 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6182 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6183 return writeDouble(this, value, offset, true, noAssert)
6186 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6187 return writeDouble(this, value, offset, false, noAssert)
6190 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6191 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6192 if (!start) start =
0
6193 if (!end && end !==
0) end = this.length
6194 if (targetStart
>= target.length) targetStart = target.length
6195 if (!targetStart) targetStart =
0
6196 if (end
> 0 && end < start) end = start
6198 // Copy
0 bytes; we're done
6199 if (end === start) return
0
6200 if (target.length ===
0 || this.length ===
0) return
0
6202 // Fatal error conditions
6203 if (targetStart <
0) {
6204 throw new RangeError('targetStart out of bounds')
6206 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6207 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6210 if (end
> this.length) end = this.length
6211 if (target.length - targetStart < end - start) {
6212 end = target.length - targetStart + start
6215 var len = end - start
6218 if (this === target && start < targetStart && targetStart < end) {
6219 // descending copy from end
6220 for (i = len -
1; i
>=
0; --i) {
6221 target[i + targetStart] = this[i + start]
6223 } else if (len <
1000) {
6224 // ascending copy from start
6225 for (i =
0; i < len; ++i) {
6226 target[i + targetStart] = this[i + start]
6229 Uint8Array.prototype.set.call(
6231 this.subarray(start, start + len),
6240 // buffer.fill(number[, offset[, end]])
6241 // buffer.fill(buffer[, offset[, end]])
6242 // buffer.fill(string[, offset[, end]][, encoding])
6243 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6244 // Handle string cases:
6245 if (typeof val === 'string') {
6246 if (typeof start === 'string') {
6250 } else if (typeof end === 'string') {
6254 if (val.length ===
1) {
6255 var code = val.charCodeAt(
0)
6260 if (encoding !== undefined && typeof encoding !== 'string') {
6261 throw new TypeError('encoding must be a string')
6263 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6264 throw new TypeError('Unknown encoding: ' + encoding)
6266 } else if (typeof val === 'number') {
6270 // Invalid ranges are not set to a default, so can range check early.
6271 if (start <
0 || this.length < start || this.length < end) {
6272 throw new RangeError('Out of range index')
6280 end = end === undefined ? this.length : end
>>> 0
6285 if (typeof val === 'number') {
6286 for (i = start; i < end; ++i) {
6290 var bytes = Buffer.isBuffer(val)
6292 : new Buffer(val, encoding)
6293 var len = bytes.length
6294 for (i =
0; i < end - start; ++i) {
6295 this[i + start] = bytes[i % len]
6305 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6307 function base64clean (str) {
6308 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6309 str = str.trim().replace(INVALID_BASE64_RE, '')
6310 // Node converts strings with length <
2 to ''
6311 if (str.length <
2) return ''
6312 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6313 while (str.length %
4 !==
0) {
6319 function toHex (n) {
6320 if (n <
16) return '
0' + n.toString(
16)
6321 return n.toString(
16)
6324 function utf8ToBytes (string, units) {
6325 units = units || Infinity
6327 var length = string.length
6328 var leadSurrogate = null
6331 for (var i =
0; i < length; ++i) {
6332 codePoint = string.charCodeAt(i)
6334 // is surrogate component
6335 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6336 // last char was a lead
6337 if (!leadSurrogate) {
6339 if (codePoint
> 0xDBFF) {
6341 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6343 } else if (i +
1 === length) {
6345 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6350 leadSurrogate = codePoint
6356 if (codePoint <
0xDC00) {
6357 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6358 leadSurrogate = codePoint
6362 // valid surrogate pair
6363 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6364 } else if (leadSurrogate) {
6365 // valid bmp char, but last char was a lead
6366 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6369 leadSurrogate = null
6372 if (codePoint <
0x80) {
6373 if ((units -=
1) <
0) break
6374 bytes.push(codePoint)
6375 } else if (codePoint <
0x800) {
6376 if ((units -=
2) <
0) break
6378 codePoint
>> 0x6 |
0xC0,
6379 codePoint &
0x3F |
0x80
6381 } else if (codePoint <
0x10000) {
6382 if ((units -=
3) <
0) break
6384 codePoint
>> 0xC |
0xE0,
6385 codePoint
>> 0x6 &
0x3F |
0x80,
6386 codePoint &
0x3F |
0x80
6388 } else if (codePoint <
0x110000) {
6389 if ((units -=
4) <
0) break
6391 codePoint
>> 0x12 |
0xF0,
6392 codePoint
>> 0xC &
0x3F |
0x80,
6393 codePoint
>> 0x6 &
0x3F |
0x80,
6394 codePoint &
0x3F |
0x80
6397 throw new Error('Invalid code point')
6404 function asciiToBytes (str) {
6406 for (var i =
0; i < str.length; ++i) {
6407 // Node's code seems to be doing this and not &
0x7F..
6408 byteArray.push(str.charCodeAt(i) &
0xFF)
6413 function utf16leToBytes (str, units) {
6416 for (var i =
0; i < str.length; ++i) {
6417 if ((units -=
2) <
0) break
6419 c = str.charCodeAt(i)
6429 function base64ToBytes (str) {
6430 return base64.toByteArray(base64clean(str))
6433 function blitBuffer (src, dst, offset, length) {
6434 for (var i =
0; i < length; ++i) {
6435 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6436 dst[i + offset] = src[i]
6441 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6442 function isArrayBufferView (obj) {
6443 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6446 function numberIsNaN (obj) {
6447 return obj !== obj // eslint-disable-line no-self-compare
6450 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6451 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6453 var eLen = nBytes *
8 - mLen -
1
6454 var eMax = (
1 << eLen) -
1
6455 var eBias = eMax
>> 1
6457 var i = isLE ? (nBytes -
1) :
0
6458 var d = isLE ? -
1 :
1
6459 var s = buffer[offset + i]
6463 e = s & ((
1 << (-nBits)) -
1)
6466 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6468 m = e & ((
1 << (-nBits)) -
1)
6471 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6475 } else if (e === eMax) {
6476 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6478 m = m + Math.pow(
2, mLen)
6481 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6484 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6486 var eLen = nBytes *
8 - mLen -
1
6487 var eMax = (
1 << eLen) -
1
6488 var eBias = eMax
>> 1
6489 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6490 var i = isLE ?
0 : (nBytes -
1)
6491 var d = isLE ?
1 : -
1
6492 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6494 value = Math.abs(value)
6496 if (isNaN(value) || value === Infinity) {
6497 m = isNaN(value) ?
1 :
0
6500 e = Math.floor(Math.log(value) / Math.LN2)
6501 if (value * (c = Math.pow(
2, -e)) <
1) {
6505 if (e + eBias
>=
1) {
6508 value += rt * Math.pow(
2,
1 - eBias)
6510 if (value * c
>=
2) {
6515 if (e + eBias
>= eMax) {
6518 } else if (e + eBias
>=
1) {
6519 m = (value * c -
1) * Math.pow(
2, mLen)
6522 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6527 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6531 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6533 buffer[offset + i - d] |= s *
128
6536 },{}],
4:[function(require,module,exports){
6537 window.basex = require('base-x')
6538 },{
"base-x":
5}],
5:[function(require,module,exports){
6540 // Forked from https://github.com/cryptocoinjs/bs58
6541 // Originally written by Mike Hearn for BitcoinJ
6542 // Copyright (c)
2011 Google Inc
6543 // Ported to JavaScript by Stefan Thomas
6544 // Merged Buffer refactorings from base58-native by Stephen Pair
6545 // Copyright (c)
2013 BitPay Inc
6547 var Buffer = require('safe-buffer').Buffer
6549 module.exports = function base (ALPHABET) {
6550 var ALPHABET_MAP = {}
6551 var BASE = ALPHABET.length
6552 var LEADER = ALPHABET.charAt(
0)
6554 // pre-compute lookup table
6555 for (var z =
0; z < ALPHABET.length; z++) {
6556 var x = ALPHABET.charAt(z)
6558 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6562 function encode (source) {
6563 if (source.length ===
0) return ''
6566 for (var i =
0; i < source.length; ++i) {
6567 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6568 carry += digits[j] <<
8
6569 digits[j] = carry % BASE
6570 carry = (carry / BASE) |
0
6574 digits.push(carry % BASE)
6575 carry = (carry / BASE) |
0
6581 // deal with leading zeros
6582 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6583 // convert digits to a string
6584 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6589 function decodeUnsafe (string) {
6590 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6593 for (var i =
0; i < string.length; i++) {
6594 var value = ALPHABET_MAP[string[i]]
6595 if (value === undefined) return
6597 for (var j =
0, carry = value; j < bytes.length; ++j) {
6598 carry += bytes[j] * BASE
6599 bytes[j] = carry &
0xff
6604 bytes.push(carry &
0xff)
6609 // deal with leading zeros
6610 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6614 return Buffer.from(bytes.reverse())
6617 function decode (string) {
6618 var buffer = decodeUnsafe(string)
6619 if (buffer) return buffer
6621 throw new Error('Non-base' + BASE + ' character')
6626 decodeUnsafe: decodeUnsafe,
6631 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6632 module.exports = require('buffer')
6634 },{"buffer":
2}]},{},[
4])(
4)
6636 <script>(function (root) {
6639 /***** unorm.js *****/
6642 * UnicodeNormalizer
1.0.0
6643 * Copyright (c)
2008 Matsuza
6644 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6645 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6649 var DEFAULT_FEATURE = [null,
0, {}];
6650 var CACHE_THRESHOLD =
10;
6651 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6652 var NCount = VCount * TCount; //
588
6653 var SCount = LCount * NCount; //
11172
6655 var UChar = function(cp, feature){
6656 this.codepoint = cp;
6657 this.feature = feature;
6662 var cacheCounter = [];
6663 for (var i =
0; i <=
0xFF; ++i){
6664 cacheCounter[i] =
0;
6667 function fromCache(next, cp, needFeature){
6668 var ret = cache[cp];
6670 ret = next(cp, needFeature);
6671 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6678 function fromData(next, cp, needFeature){
6679 var hash = cp &
0xFF00;
6680 var dunit = UChar.udata[hash] || {};
6682 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6684 function fromCpOnly(next, cp, needFeature){
6685 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6687 function fromRuleBasedJamo(next, cp, needFeature){
6689 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6690 return next(cp, needFeature);
6692 if(LBase <= cp && cp < LBase + LCount){
6694 var base = (cp - LBase) * VCount;
6695 for (j =
0; j < VCount; ++j){
6696 c[VBase + j] = SBase + TCount * (j + base);
6698 return new UChar(cp, [,,c]);
6701 var SIndex = cp - SBase;
6702 var TIndex = SIndex % TCount;
6705 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6707 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6709 for (j =
1; j < TCount; ++j){
6710 feature[
2][TBase + j] = cp + j;
6713 return new UChar(cp, feature);
6715 function fromCpFilter(next, cp, needFeature){
6716 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6719 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6721 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6722 return function (cp, needFeature) {
6723 return strategy(next, cp, needFeature);
6727 UChar.isHighSurrogate = function(cp){
6728 return cp
>=
0xD800 && cp <=
0xDBFF;
6730 UChar.isLowSurrogate = function(cp){
6731 return cp
>=
0xDC00 && cp <=
0xDFFF;
6734 UChar.prototype.prepFeature = function(){
6736 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6740 UChar.prototype.toString = function(){
6741 if(this.codepoint <
0x10000){
6742 return String.fromCharCode(this.codepoint);
6744 var x = this.codepoint -
0x10000;
6745 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6749 UChar.prototype.getDecomp = function(){
6751 return this.feature[
0] || null;
6754 UChar.prototype.isCompatibility = function(){
6756 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6758 UChar.prototype.isExclude = function(){
6760 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6762 UChar.prototype.getCanonicalClass = function(){
6764 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6766 UChar.prototype.getComposite = function(following){
6768 if(!this.feature[
2]){
6771 var cp = this.feature[
2][following.codepoint];
6772 return cp ? UChar.fromCharCode(cp) : null;
6775 var UCharIterator = function(str){
6779 UCharIterator.prototype.next = function(){
6780 if(!!this.str && this.cursor < this.str.length){
6781 var cp = this.str.charCodeAt(this.cursor++);
6783 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6784 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6787 return UChar.fromCharCode(cp);
6794 var RecursDecompIterator = function(it, cano){
6796 this.canonical = cano;
6800 RecursDecompIterator.prototype.next = function(){
6801 function recursiveDecomp(cano, uchar){
6802 var decomp = uchar.getDecomp();
6803 if(!!decomp && !(cano && uchar.isCompatibility())){
6805 for(var i =
0; i < decomp.length; ++i){
6806 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6807 ret = ret.concat(a);
6814 if(this.resBuf.length ===
0){
6815 var uchar = this.it.next();
6819 this.resBuf = recursiveDecomp(this.canonical, uchar);
6821 return this.resBuf.shift();
6824 var DecompIterator = function(it){
6829 DecompIterator.prototype.next = function(){
6831 if(this.resBuf.length ===
0){
6833 var uchar = this.it.next();
6837 cc = uchar.getCanonicalClass();
6838 var inspt = this.resBuf.length;
6840 for(; inspt
> 0; --inspt){
6841 var uchar2 = this.resBuf[inspt -
1];
6842 var cc2 = uchar2.getCanonicalClass();
6848 this.resBuf.splice(inspt,
0, uchar);
6851 return this.resBuf.shift();
6854 var CompIterator = function(it){
6858 this.lastClass = null;
6861 CompIterator.prototype.next = function(){
6862 while(this.resBuf.length ===
0){
6863 var uchar = this.it.next();
6865 this.resBuf = this.procBuf;
6869 if(this.procBuf.length ===
0){
6870 this.lastClass = uchar.getCanonicalClass();
6871 this.procBuf.push(uchar);
6873 var starter = this.procBuf[
0];
6874 var composite = starter.getComposite(uchar);
6875 var cc = uchar.getCanonicalClass();
6876 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6877 this.procBuf[
0] = composite;
6880 this.resBuf = this.procBuf;
6883 this.lastClass = cc;
6884 this.procBuf.push(uchar);
6888 return this.resBuf.shift();
6891 var createIterator = function(mode, str){
6894 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6896 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6898 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6900 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6902 throw mode +
" is invalid";
6904 var normalize = function(mode, str){
6905 var it = createIterator(mode, str);
6908 while(!!(uchar = it.next())){
6909 ret += uchar.toString();
6916 return normalize(
"NFD", str);
6920 return normalize(
"NFKD", str);
6924 return normalize(
"NFC", str);
6928 return normalize(
"NFKC", str);
6933 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]]},
6934 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]},
6935 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]},
6936 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]},
6937 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]]},
6938 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]},
6939 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]},
6940 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]},
6941 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]},
6942 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]},
6943 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]},
6944 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]},
6945 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]},
6946 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]]},
6947 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]},
6948 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]},
6949 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]},
6950 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]},
6951 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6952 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]},
6953 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6954 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6955 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6956 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6958 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6959 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]},
6960 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]},
6961 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]},
6962 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]},
6963 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]]},
6964 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}]},
6965 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]},
6966 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}]},
6967 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]]},
6968 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6969 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]},
6970 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]},
6971 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6972 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]},
6973 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6974 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]},
6975 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]},
6976 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]},
6977 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]},
6978 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]},
6979 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6980 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6981 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]},
6982 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6983 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]},
6984 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6985 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6986 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6987 48128:{
113822:[,
1]},
6988 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]},
6989 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6990 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]},
6991 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]},
6992 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]},
6993 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]},
6994 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6995 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]},
6996 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]},
6997 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]},
6998 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]]},
6999 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]]},
7000 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]]},
7001 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]},
7002 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]},
7003 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]},
7004 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]},
7005 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]}
7009 /***** Module to export */
7017 /*globals module:true,define:true*/
7020 if (typeof module ===
"object") {
7021 module.exports = unorm;
7024 } else if (typeof define ===
"function" && define.amd) {
7025 define(
"unorm", function () {
7034 /***** Export as shim for String::normalize method *****/
7036 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7038 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7039 When the normalize method is called with one argument form, the following steps are taken:
7041 1. Let O be CheckObjectCoercible(this value).
7042 2. Let S be ToString(O).
7043 3. ReturnIfAbrupt(S).
7044 4. If form is not provided or undefined let form be
"NFC".
7045 5. Let f be ToString(form).
7046 6. ReturnIfAbrupt(f).
7047 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7048 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.
7051 The length property of the normalize method is
0.
7053 *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.
7055 unorm.shimApplied = false;
7057 if (!String.prototype.normalize) {
7058 String.prototype.normalize = function(form) {
7059 var str =
"" + this;
7060 form = form === undefined ?
"NFC" : form;
7062 if (form ===
"NFC") {
7063 return unorm.nfc(str);
7064 } else if (form ===
"NFD") {
7065 return unorm.nfd(str);
7066 } else if (form ===
"NFKC") {
7067 return unorm.nfkc(str);
7068 } else if (form ===
"NFKD") {
7069 return unorm.nfkd(str);
7071 throw new RangeError(
"Invalid normalization form: " + form);
7075 unorm.shimApplied = true;
7079 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7080 !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)
7081 },_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))
7082 },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});
7085 * Bootstrap v3.2.0 (http://getbootstrap.com)
7086 * Copyright 2011-2014 Twitter, Inc.
7087 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7089 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>
7090 <script>(function() {
7094 * Extend an Object with another Object's properties.
7096 * The source objects are specified as additional arguments.
7098 * @param dst Object the object to extend.
7100 * @return Object the final object.
7102 var _extend = function(dst) {
7103 var sources = Array.prototype.slice.call(arguments,
1);
7104 for (var i=
0; i
<sources.length; ++i) {
7105 var src = sources[i];
7106 for (var p in src) {
7107 if (src.hasOwnProperty(p)) dst[p] = src[p];
7115 * Defer execution of given function.
7116 * @param {Function} func
7118 var _defer = function(func) {
7119 if (typeof setImmediate === 'function') {
7120 return setImmediate(func);
7122 return setTimeout(func,
0);
7127 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7131 * Calculate levenshtein distance of the two strings.
7133 * @param str1 String the first string.
7134 * @param str2 String the second string.
7135 * @return Integer the levenshtein distance (
0 and above).
7137 get: function(str1, str2) {
7139 if (str1 === str2) return
0;
7140 if (str1.length ===
0) return str2.length;
7141 if (str2.length ===
0) return str1.length;
7144 var prevRow = new Array(str2.length +
1),
7145 curCol, nextCol, i, j, tmp;
7147 // initialise previous row
7148 for (i=
0; i
<prevRow.length; ++i) {
7152 // calculate current row distance from previous row
7153 for (i=
0; i
<str1.length; ++i) {
7156 for (j=
0; j
<str2.length; ++j) {
7160 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7163 if (nextCol
> tmp) {
7167 tmp = prevRow[j +
1] +
1;
7168 if (nextCol
> tmp) {
7172 // copy current col value into previous (in preparation for next iteration)
7173 prevRow[j] = curCol;
7176 // copy last col value into previous (in preparation for next iteration)
7177 prevRow[j] = nextCol;
7184 * Asynchronously calculate levenshtein distance of the two strings.
7186 * @param str1 String the first string.
7187 * @param str2 String the second string.
7188 * @param cb Function callback function with signature: function(Error err, int distance)
7189 * @param [options] Object additional options.
7190 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7192 getAsync: function(str1, str2, cb, options) {
7193 options = _extend({}, {
7198 if (str1 === str2) return cb(null,
0);
7199 if (str1.length ===
0) return cb(null, str2.length);
7200 if (str2.length ===
0) return cb(null, str1.length);
7203 var prevRow = new Array(str2.length +
1),
7206 startTime, currentTime;
7208 // initialise previous row
7209 for (i=
0; i
<prevRow.length; ++i) {
7217 var __calculate = function() {
7219 startTime = new Date().valueOf();
7220 currentTime = startTime;
7222 // keep going until one second has elapsed
7223 while (currentTime - startTime <
1000) {
7224 // reached end of current row?
7225 if (str2.length <= (++j)) {
7226 // copy current into previous (in preparation for next iteration)
7227 prevRow[j] = nextCol;
7229 // if already done all chars
7230 if (str1.length <= (++i)) {
7231 return cb(null, nextCol);
7233 // else if we have more left to do
7244 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7247 if (nextCol
> tmp) {
7251 tmp = prevRow[j +
1] +
1;
7252 if (nextCol
> tmp) {
7256 // copy current into previous (in preparation for next iteration)
7257 prevRow[j] = curCol;
7260 currentTime = new Date().valueOf();
7263 // send a progress update?
7264 if (null !== options.progress) {
7266 options.progress.call(null, (i *
100.0/ str1.length));
7268 return cb('Progress callback: ' + err.toString());
7273 _defer(__calculate);
7282 if (typeof define !== "undefined" && define !== null && define.amd) {
7288 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7289 module.exports = Levenshtein;
7292 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7293 self.Levenshtein = Levenshtein;
7295 // browser main thread
7296 else if (typeof window !== "undefined" && window !== null) {
7297 window.Levenshtein = Levenshtein;
7302 <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},
7303 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;
7304 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-
7305 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]=
7306 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},
7307 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=
7308 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-
7309 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,
7310 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=
7311 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&&
7312 (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,
7313 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)-
7314 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:"+
7315 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:"+
7316 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+
7317 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),
7318 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>
7319 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],
7320 [
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,
7321 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,
7322 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,
7323 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,
7324 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,
7325 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*
7326 (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,
7327 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),
7328 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",
7329 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7331 <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){
7335 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7339 * The buffer module from node.js, for the browser.
7341 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7344 function compare(a, b) {
7352 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7353 if (a[i] !== b[i]) {
7368 function isBuffer(b) {
7369 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7370 return global.Buffer.isBuffer(b);
7372 return !!(b != null && b._isBuffer);
7375 // based on node assert, original notice:
7377 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7379 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7381 // Originally from narwhal.js (http://narwhaljs.org)
7382 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7384 // Permission is hereby granted, free of charge, to any person obtaining a copy
7385 // of this software and associated documentation files (the 'Software'), to
7386 // deal in the Software without restriction, including without limitation the
7387 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7388 // sell copies of the Software, and to permit persons to whom the Software is
7389 // furnished to do so, subject to the following conditions:
7391 // The above copyright notice and this permission notice shall be included in
7392 // all copies or substantial portions of the Software.
7394 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7395 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7396 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7397 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7398 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7399 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7401 var util = require('util/');
7402 var hasOwn = Object.prototype.hasOwnProperty;
7403 var pSlice = Array.prototype.slice;
7404 var functionsHaveNames = (function () {
7405 return function foo() {}.name === 'foo';
7407 function pToString (obj) {
7408 return Object.prototype.toString.call(obj);
7410 function isView(arrbuf) {
7411 if (isBuffer(arrbuf)) {
7414 if (typeof global.ArrayBuffer !== 'function') {
7417 if (typeof ArrayBuffer.isView === 'function') {
7418 return ArrayBuffer.isView(arrbuf);
7423 if (arrbuf instanceof DataView) {
7426 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7431 //
1. The assert module provides functions that throw
7432 // AssertionError's when particular conditions are not met. The
7433 // assert module must conform to the following interface.
7435 var assert = module.exports = ok;
7437 //
2. The AssertionError is defined in assert.
7438 // new assert.AssertionError({ message: message,
7440 // expected: expected })
7442 var regex = /\s*function\s+([^\(\s]*)\s*/;
7443 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7444 function getName(func) {
7445 if (!util.isFunction(func)) {
7448 if (functionsHaveNames) {
7451 var str = func.toString();
7452 var match = str.match(regex);
7453 return match && match[
1];
7455 assert.AssertionError = function AssertionError(options) {
7456 this.name = 'AssertionError';
7457 this.actual = options.actual;
7458 this.expected = options.expected;
7459 this.operator = options.operator;
7460 if (options.message) {
7461 this.message = options.message;
7462 this.generatedMessage = false;
7464 this.message = getMessage(this);
7465 this.generatedMessage = true;
7467 var stackStartFunction = options.stackStartFunction || fail;
7468 if (Error.captureStackTrace) {
7469 Error.captureStackTrace(this, stackStartFunction);
7471 // non v8 browsers so we can have a stacktrace
7472 var err = new Error();
7474 var out = err.stack;
7476 // try to strip useless frames
7477 var fn_name = getName(stackStartFunction);
7478 var idx = out.indexOf('\n' + fn_name);
7480 // once we have located the function frame
7481 // we need to strip out everything before it (and its line)
7482 var next_line = out.indexOf('\n', idx +
1);
7483 out = out.substring(next_line +
1);
7491 // assert.AssertionError instanceof Error
7492 util.inherits(assert.AssertionError, Error);
7494 function truncate(s, n) {
7495 if (typeof s === 'string') {
7496 return s.length < n ? s : s.slice(
0, n);
7501 function inspect(something) {
7502 if (functionsHaveNames || !util.isFunction(something)) {
7503 return util.inspect(something);
7505 var rawname = getName(something);
7506 var name = rawname ? ': ' + rawname : '';
7507 return '[Function' + name + ']';
7509 function getMessage(self) {
7510 return truncate(inspect(self.actual),
128) + ' ' +
7511 self.operator + ' ' +
7512 truncate(inspect(self.expected),
128);
7515 // At present only the three keys mentioned above are used and
7516 // understood by the spec. Implementations or sub modules can pass
7517 // other keys to the AssertionError's constructor - they will be
7520 //
3. All of the following functions must throw an AssertionError
7521 // when a corresponding condition is not met, with a message that
7522 // may be undefined if not provided. All assertion methods provide
7523 // both the actual and expected values to the assertion error for
7524 // display purposes.
7526 function fail(actual, expected, message, operator, stackStartFunction) {
7527 throw new assert.AssertionError({
7532 stackStartFunction: stackStartFunction
7536 // EXTENSION! allows for well behaved errors defined elsewhere.
7539 //
4. Pure assertion tests whether a value is truthy, as determined
7541 // assert.ok(guard, message_opt);
7542 // This statement is equivalent to assert.equal(true, !!guard,
7543 // message_opt);. To test strictly for the value true, use
7544 // assert.strictEqual(true, guard, message_opt);.
7546 function ok(value, message) {
7547 if (!value) fail(value, true, message, '==', assert.ok);
7551 //
5. The equality assertion tests shallow, coercive equality with
7553 // assert.equal(actual, expected, message_opt);
7555 assert.equal = function equal(actual, expected, message) {
7556 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7559 //
6. The non-equality assertion tests for whether two objects are not equal
7560 // with != assert.notEqual(actual, expected, message_opt);
7562 assert.notEqual = function notEqual(actual, expected, message) {
7563 if (actual == expected) {
7564 fail(actual, expected, message, '!=', assert.notEqual);
7568 //
7. The equivalence assertion tests a deep equality relation.
7569 // assert.deepEqual(actual, expected, message_opt);
7571 assert.deepEqual = function deepEqual(actual, expected, message) {
7572 if (!_deepEqual(actual, expected, false)) {
7573 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7577 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7578 if (!_deepEqual(actual, expected, true)) {
7579 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7583 function _deepEqual(actual, expected, strict, memos) {
7584 //
7.1. All identical values are equivalent, as determined by ===.
7585 if (actual === expected) {
7587 } else if (isBuffer(actual) && isBuffer(expected)) {
7588 return compare(actual, expected) ===
0;
7590 //
7.2. If the expected value is a Date object, the actual value is
7591 // equivalent if it is also a Date object that refers to the same time.
7592 } else if (util.isDate(actual) && util.isDate(expected)) {
7593 return actual.getTime() === expected.getTime();
7595 //
7.3 If the expected value is a RegExp object, the actual value is
7596 // equivalent if it is also a RegExp object with the same source and
7597 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7598 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7599 return actual.source === expected.source &&
7600 actual.global === expected.global &&
7601 actual.multiline === expected.multiline &&
7602 actual.lastIndex === expected.lastIndex &&
7603 actual.ignoreCase === expected.ignoreCase;
7605 //
7.4. Other pairs that do not both pass typeof value == 'object',
7606 // equivalence is determined by ==.
7607 } else if ((actual === null || typeof actual !== 'object') &&
7608 (expected === null || typeof expected !== 'object')) {
7609 return strict ? actual === expected : actual == expected;
7611 // If both values are instances of typed arrays, wrap their underlying
7612 // ArrayBuffers in a Buffer each to increase performance
7613 // This optimization requires the arrays to have the same type as checked by
7614 // Object.prototype.toString (aka pToString). Never perform binary
7615 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7616 // bit patterns are not identical.
7617 } else if (isView(actual) && isView(expected) &&
7618 pToString(actual) === pToString(expected) &&
7619 !(actual instanceof Float32Array ||
7620 actual instanceof Float64Array)) {
7621 return compare(new Uint8Array(actual.buffer),
7622 new Uint8Array(expected.buffer)) ===
0;
7624 //
7.5 For all other Object pairs, including Array objects, equivalence is
7625 // determined by having the same number of owned properties (as verified
7626 // with Object.prototype.hasOwnProperty.call), the same set of keys
7627 // (although not necessarily the same order), equivalent values for every
7628 // corresponding key, and an identical 'prototype' property. Note: this
7629 // accounts for both named and indexed properties on Arrays.
7630 } else if (isBuffer(actual) !== isBuffer(expected)) {
7633 memos = memos || {actual: [], expected: []};
7635 var actualIndex = memos.actual.indexOf(actual);
7636 if (actualIndex !== -
1) {
7637 if (actualIndex === memos.expected.indexOf(expected)) {
7642 memos.actual.push(actual);
7643 memos.expected.push(expected);
7645 return objEquiv(actual, expected, strict, memos);
7649 function isArguments(object) {
7650 return Object.prototype.toString.call(object) == '[object Arguments]';
7653 function objEquiv(a, b, strict, actualVisitedObjects) {
7654 if (a === null || a === undefined || b === null || b === undefined)
7656 // if one is a primitive, the other must be same
7657 if (util.isPrimitive(a) || util.isPrimitive(b))
7659 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7661 var aIsArgs = isArguments(a);
7662 var bIsArgs = isArguments(b);
7663 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7668 return _deepEqual(a, b, strict);
7670 var ka = objectKeys(a);
7671 var kb = objectKeys(b);
7673 // having the same number of owned properties (keys incorporates
7675 if (ka.length !== kb.length)
7677 //the same set of keys (although not necessarily the same order),
7681 for (i = ka.length -
1; i
>=
0; i--) {
7682 if (ka[i] !== kb[i])
7685 //equivalent values for every corresponding key, and
7686 //~~~possibly expensive deep test
7687 for (i = ka.length -
1; i
>=
0; i--) {
7689 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7695 //
8. The non-equivalence assertion tests for any deep inequality.
7696 // assert.notDeepEqual(actual, expected, message_opt);
7698 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7699 if (_deepEqual(actual, expected, false)) {
7700 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7704 assert.notDeepStrictEqual = notDeepStrictEqual;
7705 function notDeepStrictEqual(actual, expected, message) {
7706 if (_deepEqual(actual, expected, true)) {
7707 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7712 //
9. The strict equality assertion tests strict equality, as determined by ===.
7713 // assert.strictEqual(actual, expected, message_opt);
7715 assert.strictEqual = function strictEqual(actual, expected, message) {
7716 if (actual !== expected) {
7717 fail(actual, expected, message, '===', assert.strictEqual);
7721 //
10. The strict non-equality assertion tests for strict inequality, as
7722 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7724 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7725 if (actual === expected) {
7726 fail(actual, expected, message, '!==', assert.notStrictEqual);
7730 function expectedException(actual, expected) {
7731 if (!actual || !expected) {
7735 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7736 return expected.test(actual);
7740 if (actual instanceof expected) {
7744 // Ignore. The instanceof check doesn't work for arrow functions.
7747 if (Error.isPrototypeOf(expected)) {
7751 return expected.call({}, actual) === true;
7754 function _tryBlock(block) {
7764 function _throws(shouldThrow, block, expected, message) {
7767 if (typeof block !== 'function') {
7768 throw new TypeError('"block" argument must be a function');
7771 if (typeof expected === 'string') {
7776 actual = _tryBlock(block);
7778 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7779 (message ? ' ' + message : '.');
7781 if (shouldThrow && !actual) {
7782 fail(actual, expected, 'Missing expected exception' + message);
7785 var userProvidedMessage = typeof message === 'string';
7786 var isUnwantedException = !shouldThrow && util.isError(actual);
7787 var isUnexpectedException = !shouldThrow && actual && !expected;
7789 if ((isUnwantedException &&
7790 userProvidedMessage &&
7791 expectedException(actual, expected)) ||
7792 isUnexpectedException) {
7793 fail(actual, expected, 'Got unwanted exception' + message);
7796 if ((shouldThrow && actual && expected &&
7797 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7802 //
11. Expected to throw an error:
7803 // assert.throws(block, Error_opt, message_opt);
7805 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7806 _throws(true, block, error, message);
7809 // EXTENSION! This is annoying to write outside this module.
7810 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7811 _throws(false, block, error, message);
7814 assert.ifError = function(err) { if (err) throw err; };
7816 var objectKeys = Object.keys || function (obj) {
7818 for (var key in obj) {
7819 if (hasOwn.call(obj, key)) keys.push(key);
7824 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7825 },{"util/":
32}],
2:[function(require,module,exports){
7828 exports.byteLength = byteLength
7829 exports.toByteArray = toByteArray
7830 exports.fromByteArray = fromByteArray
7834 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7836 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7837 for (var i =
0, len = code.length; i < len; ++i) {
7839 revLookup[code.charCodeAt(i)] = i
7842 revLookup['-'.charCodeAt(
0)] =
62
7843 revLookup['_'.charCodeAt(
0)] =
63
7845 function placeHoldersCount (b64) {
7846 var len = b64.length
7848 throw new Error('Invalid string. Length must be a multiple of
4')
7851 // the number of equal signs (place holders)
7852 // if there are two placeholders, than the two characters before it
7853 // represent one byte
7854 // if there is only one, then the three characters before it represent
2 bytes
7855 // this is just a cheap hack to not do indexOf twice
7856 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7859 function byteLength (b64) {
7860 // base64 is
4/
3 + up to two characters of the original data
7861 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7864 function toByteArray (b64) {
7865 var i, l, tmp, placeHolders, arr
7866 var len = b64.length
7867 placeHolders = placeHoldersCount(b64)
7869 arr = new Arr((len *
3 /
4) - placeHolders)
7871 // if there are placeholders, only get up to the last complete
4 chars
7872 l = placeHolders
> 0 ? len -
4 : len
7876 for (i =
0; i < l; i +=
4) {
7877 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7878 arr[L++] = (tmp
>> 16) &
0xFF
7879 arr[L++] = (tmp
>> 8) &
0xFF
7880 arr[L++] = tmp &
0xFF
7883 if (placeHolders ===
2) {
7884 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7885 arr[L++] = tmp &
0xFF
7886 } else if (placeHolders ===
1) {
7887 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7888 arr[L++] = (tmp
>> 8) &
0xFF
7889 arr[L++] = tmp &
0xFF
7895 function tripletToBase64 (num) {
7896 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7899 function encodeChunk (uint8, start, end) {
7902 for (var i = start; i < end; i +=
3) {
7903 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7904 output.push(tripletToBase64(tmp))
7906 return output.join('')
7909 function fromByteArray (uint8) {
7911 var len = uint8.length
7912 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7915 var maxChunkLength =
16383 // must be multiple of
3
7917 // go through the array every three bytes, we'll deal with trailing stuff later
7918 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7919 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7922 // pad the end with zeros, but make sure to not forget the extra bytes
7923 if (extraBytes ===
1) {
7924 tmp = uint8[len -
1]
7925 output += lookup[tmp
>> 2]
7926 output += lookup[(tmp <<
4) &
0x3F]
7928 } else if (extraBytes ===
2) {
7929 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7930 output += lookup[tmp
>> 10]
7931 output += lookup[(tmp
>> 4) &
0x3F]
7932 output += lookup[(tmp <<
2) &
0x3F]
7938 return parts.join('')
7941 },{}],
3:[function(require,module,exports){
7943 },{}],
4:[function(require,module,exports){
7945 * The buffer module from node.js, for the browser.
7947 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7950 /* eslint-disable no-proto */
7954 var base64 = require('base64-js')
7955 var ieee754 = require('ieee754')
7957 exports.Buffer = Buffer
7958 exports.SlowBuffer = SlowBuffer
7959 exports.INSPECT_MAX_BYTES =
50
7961 var K_MAX_LENGTH =
0x7fffffff
7962 exports.kMaxLength = K_MAX_LENGTH
7965 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7966 * === true Use Uint8Array implementation (fastest)
7967 * === false Print warning and recommend using `buffer` v4.x which has an Object
7968 * implementation (most compatible, even IE6)
7970 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7971 * Opera
11.6+, iOS
4.2+.
7973 * We report that the browser does not support typed arrays if the are not subclassable
7974 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7975 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7976 * for __proto__ and has a buggy typed array implementation.
7978 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7980 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7981 typeof console.error === 'function') {
7983 'This browser lacks typed array (Uint8Array) support which is required by ' +
7984 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7988 function typedArraySupport () {
7989 // Can typed array instances can be augmented?
7991 var arr = new Uint8Array(
1)
7992 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7993 return arr.foo() ===
42
7999 function createBuffer (length) {
8000 if (length
> K_MAX_LENGTH) {
8001 throw new RangeError('Invalid typed array length')
8003 // Return an augmented `Uint8Array` instance
8004 var buf = new Uint8Array(length)
8005 buf.__proto__ = Buffer.prototype
8010 * The Buffer constructor returns instances of `Uint8Array` that have their
8011 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
8012 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
8013 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
8014 * returns a single octet.
8016 * The `Uint8Array` prototype remains unmodified.
8019 function Buffer (arg, encodingOrOffset, length) {
8021 if (typeof arg === 'number') {
8022 if (typeof encodingOrOffset === 'string') {
8024 'If encoding is specified then the first argument must be a string'
8027 return allocUnsafe(arg)
8029 return from(arg, encodingOrOffset, length)
8032 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
8033 if (typeof Symbol !== 'undefined' && Symbol.species &&
8034 Buffer[Symbol.species] === Buffer) {
8035 Object.defineProperty(Buffer, Symbol.species, {
8043 Buffer.poolSize =
8192 // not used by this implementation
8045 function from (value, encodingOrOffset, length) {
8046 if (typeof value === 'number') {
8047 throw new TypeError('"value" argument must not be a number')
8050 if (value instanceof ArrayBuffer) {
8051 return fromArrayBuffer(value, encodingOrOffset, length)
8054 if (typeof value === 'string') {
8055 return fromString(value, encodingOrOffset)
8058 return fromObject(value)
8062 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8063 * if value is a number.
8064 * Buffer.from(str[, encoding])
8065 * Buffer.from(array)
8066 * Buffer.from(buffer)
8067 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8069 Buffer.from = function (value, encodingOrOffset, length) {
8070 return from(value, encodingOrOffset, length)
8073 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8074 // https://github.com/feross/buffer/pull/
148
8075 Buffer.prototype.__proto__ = Uint8Array.prototype
8076 Buffer.__proto__ = Uint8Array
8078 function assertSize (size) {
8079 if (typeof size !== 'number') {
8080 throw new TypeError('"size" argument must be a number')
8081 } else if (size <
0) {
8082 throw new RangeError('"size" argument must not be negative')
8086 function alloc (size, fill, encoding) {
8089 return createBuffer(size)
8091 if (fill !== undefined) {
8092 // Only pay attention to encoding if it's a string. This
8093 // prevents accidentally sending in a number that would
8094 // be interpretted as a start offset.
8095 return typeof encoding === 'string'
8096 ? createBuffer(size).fill(fill, encoding)
8097 : createBuffer(size).fill(fill)
8099 return createBuffer(size)
8103 * Creates a new filled Buffer instance.
8104 * alloc(size[, fill[, encoding]])
8106 Buffer.alloc = function (size, fill, encoding) {
8107 return alloc(size, fill, encoding)
8110 function allocUnsafe (size) {
8112 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8116 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8118 Buffer.allocUnsafe = function (size) {
8119 return allocUnsafe(size)
8122 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8124 Buffer.allocUnsafeSlow = function (size) {
8125 return allocUnsafe(size)
8128 function fromString (string, encoding) {
8129 if (typeof encoding !== 'string' || encoding === '') {
8133 if (!Buffer.isEncoding(encoding)) {
8134 throw new TypeError('"encoding" must be a valid string encoding')
8137 var length = byteLength(string, encoding) |
0
8138 var buf = createBuffer(length)
8140 var actual = buf.write(string, encoding)
8142 if (actual !== length) {
8143 // Writing a hex string, for example, that contains invalid characters will
8144 // cause everything after the first invalid character to be ignored. (e.g.
8145 // 'abxxcd' will be treated as 'ab')
8146 buf = buf.slice(
0, actual)
8152 function fromArrayLike (array) {
8153 var length = array.length <
0 ?
0 : checked(array.length) |
0
8154 var buf = createBuffer(length)
8155 for (var i =
0; i < length; i +=
1) {
8156 buf[i] = array[i] &
255
8161 function fromArrayBuffer (array, byteOffset, length) {
8162 if (byteOffset <
0 || array.byteLength < byteOffset) {
8163 throw new RangeError('\'offset\' is out of bounds')
8166 if (array.byteLength < byteOffset + (length ||
0)) {
8167 throw new RangeError('\'length\' is out of bounds')
8171 if (byteOffset === undefined && length === undefined) {
8172 buf = new Uint8Array(array)
8173 } else if (length === undefined) {
8174 buf = new Uint8Array(array, byteOffset)
8176 buf = new Uint8Array(array, byteOffset, length)
8179 // Return an augmented `Uint8Array` instance
8180 buf.__proto__ = Buffer.prototype
8184 function fromObject (obj) {
8185 if (Buffer.isBuffer(obj)) {
8186 var len = checked(obj.length) |
0
8187 var buf = createBuffer(len)
8189 if (buf.length ===
0) {
8193 obj.copy(buf,
0,
0, len)
8198 if (isArrayBufferView(obj) || 'length' in obj) {
8199 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8200 return createBuffer(
0)
8202 return fromArrayLike(obj)
8205 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8206 return fromArrayLike(obj.data)
8210 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8213 function checked (length) {
8214 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8215 // length is NaN (which is otherwise coerced to zero.)
8216 if (length
>= K_MAX_LENGTH) {
8217 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8218 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8223 function SlowBuffer (length) {
8224 if (+length != length) { // eslint-disable-line eqeqeq
8227 return Buffer.alloc(+length)
8230 Buffer.isBuffer = function isBuffer (b) {
8231 return b != null && b._isBuffer === true
8234 Buffer.compare = function compare (a, b) {
8235 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8236 throw new TypeError('Arguments must be Buffers')
8239 if (a === b) return
0
8244 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8245 if (a[i] !== b[i]) {
8252 if (x < y) return -
1
8257 Buffer.isEncoding = function isEncoding (encoding) {
8258 switch (String(encoding).toLowerCase()) {
8276 Buffer.concat = function concat (list, length) {
8277 if (!Array.isArray(list)) {
8278 throw new TypeError('"list" argument must be an Array of Buffers')
8281 if (list.length ===
0) {
8282 return Buffer.alloc(
0)
8286 if (length === undefined) {
8288 for (i =
0; i < list.length; ++i) {
8289 length += list[i].length
8293 var buffer = Buffer.allocUnsafe(length)
8295 for (i =
0; i < list.length; ++i) {
8297 if (!Buffer.isBuffer(buf)) {
8298 throw new TypeError('"list" argument must be an Array of Buffers')
8300 buf.copy(buffer, pos)
8306 function byteLength (string, encoding) {
8307 if (Buffer.isBuffer(string)) {
8308 return string.length
8310 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8311 return string.byteLength
8313 if (typeof string !== 'string') {
8314 string = '' + string
8317 var len = string.length
8318 if (len ===
0) return
0
8320 // Use a for loop to avoid recursion
8321 var loweredCase = false
8331 return utf8ToBytes(string).length
8340 return base64ToBytes(string).length
8342 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8343 encoding = ('' + encoding).toLowerCase()
8348 Buffer.byteLength = byteLength
8350 function slowToString (encoding, start, end) {
8351 var loweredCase = false
8353 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8354 // property of a typed array.
8356 // This behaves neither like String nor Uint8Array in that we set start/end
8357 // to their upper/lower bounds if the value passed is out of range.
8358 // undefined is handled specially as per ECMA-
262 6th Edition,
8359 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8360 if (start === undefined || start <
0) {
8363 // Return early if start
> this.length. Done here to prevent potential uint32
8364 // coercion fail below.
8365 if (start
> this.length) {
8369 if (end === undefined || end
> this.length) {
8377 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8385 if (!encoding) encoding = 'utf8'
8390 return hexSlice(this, start, end)
8394 return utf8Slice(this, start, end)
8397 return asciiSlice(this, start, end)
8401 return latin1Slice(this, start, end)
8404 return base64Slice(this, start, end)
8410 return utf16leSlice(this, start, end)
8413 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8414 encoding = (encoding + '').toLowerCase()
8420 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8421 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8422 // reliably in a browserify context because there could be multiple different
8423 // copies of the 'buffer' package in use. This method works even for Buffer
8424 // instances that were created from another copy of the `buffer` package.
8425 // See: https://github.com/feross/buffer/issues/
154
8426 Buffer.prototype._isBuffer = true
8428 function swap (b, n, m) {
8434 Buffer.prototype.swap16 = function swap16 () {
8435 var len = this.length
8436 if (len %
2 !==
0) {
8437 throw new RangeError('Buffer size must be a multiple of
16-bits')
8439 for (var i =
0; i < len; i +=
2) {
8440 swap(this, i, i +
1)
8445 Buffer.prototype.swap32 = function swap32 () {
8446 var len = this.length
8447 if (len %
4 !==
0) {
8448 throw new RangeError('Buffer size must be a multiple of
32-bits')
8450 for (var i =
0; i < len; i +=
4) {
8451 swap(this, i, i +
3)
8452 swap(this, i +
1, i +
2)
8457 Buffer.prototype.swap64 = function swap64 () {
8458 var len = this.length
8459 if (len %
8 !==
0) {
8460 throw new RangeError('Buffer size must be a multiple of
64-bits')
8462 for (var i =
0; i < len; i +=
8) {
8463 swap(this, i, i +
7)
8464 swap(this, i +
1, i +
6)
8465 swap(this, i +
2, i +
5)
8466 swap(this, i +
3, i +
4)
8471 Buffer.prototype.toString = function toString () {
8472 var length = this.length
8473 if (length ===
0) return ''
8474 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8475 return slowToString.apply(this, arguments)
8478 Buffer.prototype.equals = function equals (b) {
8479 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8480 if (this === b) return true
8481 return Buffer.compare(this, b) ===
0
8484 Buffer.prototype.inspect = function inspect () {
8486 var max = exports.INSPECT_MAX_BYTES
8487 if (this.length
> 0) {
8488 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8489 if (this.length
> max) str += ' ... '
8491 return '
<Buffer ' + str + '
>'
8494 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8495 if (!Buffer.isBuffer(target)) {
8496 throw new TypeError('Argument must be a Buffer')
8499 if (start === undefined) {
8502 if (end === undefined) {
8503 end = target ? target.length :
0
8505 if (thisStart === undefined) {
8508 if (thisEnd === undefined) {
8509 thisEnd = this.length
8512 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8513 throw new RangeError('out of range index')
8516 if (thisStart
>= thisEnd && start
>= end) {
8519 if (thisStart
>= thisEnd) {
8531 if (this === target) return
0
8533 var x = thisEnd - thisStart
8535 var len = Math.min(x, y)
8537 var thisCopy = this.slice(thisStart, thisEnd)
8538 var targetCopy = target.slice(start, end)
8540 for (var i =
0; i < len; ++i) {
8541 if (thisCopy[i] !== targetCopy[i]) {
8548 if (x < y) return -
1
8553 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8554 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8557 // - buffer - a Buffer to search
8558 // - val - a string, Buffer, or number
8559 // - byteOffset - an index into `buffer`; will be clamped to an int32
8560 // - encoding - an optional encoding, relevant is val is a string
8561 // - dir - true for indexOf, false for lastIndexOf
8562 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8563 // Empty buffer means no match
8564 if (buffer.length ===
0) return -
1
8566 // Normalize byteOffset
8567 if (typeof byteOffset === 'string') {
8568 encoding = byteOffset
8570 } else if (byteOffset
> 0x7fffffff) {
8571 byteOffset =
0x7fffffff
8572 } else if (byteOffset < -
0x80000000) {
8573 byteOffset = -
0x80000000
8575 byteOffset = +byteOffset // Coerce to Number.
8576 if (numberIsNaN(byteOffset)) {
8577 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8578 byteOffset = dir ?
0 : (buffer.length -
1)
8581 // Normalize byteOffset: negative offsets start from the end of the buffer
8582 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8583 if (byteOffset
>= buffer.length) {
8585 else byteOffset = buffer.length -
1
8586 } else if (byteOffset <
0) {
8587 if (dir) byteOffset =
0
8592 if (typeof val === 'string') {
8593 val = Buffer.from(val, encoding)
8596 // Finally, search either indexOf (if dir is true) or lastIndexOf
8597 if (Buffer.isBuffer(val)) {
8598 // Special case: looking for empty string/buffer always fails
8599 if (val.length ===
0) {
8602 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8603 } else if (typeof val === 'number') {
8604 val = val &
0xFF // Search for a byte value [
0-
255]
8605 if (typeof Uint8Array.prototype.indexOf === 'function') {
8607 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8609 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8612 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8615 throw new TypeError('val must be string, number or Buffer')
8618 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8620 var arrLength = arr.length
8621 var valLength = val.length
8623 if (encoding !== undefined) {
8624 encoding = String(encoding).toLowerCase()
8625 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8626 encoding === 'utf16le' || encoding === 'utf-
16le') {
8627 if (arr.length <
2 || val.length <
2) {
8637 function read (buf, i) {
8638 if (indexSize ===
1) {
8641 return buf.readUInt16BE(i * indexSize)
8648 for (i = byteOffset; i < arrLength; i++) {
8649 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8650 if (foundIndex === -
1) foundIndex = i
8651 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8653 if (foundIndex !== -
1) i -= i - foundIndex
8658 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8659 for (i = byteOffset; i
>=
0; i--) {
8661 for (var j =
0; j < valLength; j++) {
8662 if (read(arr, i + j) !== read(val, j)) {
8674 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8675 return this.indexOf(val, byteOffset, encoding) !== -
1
8678 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8679 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8682 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8683 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8686 function hexWrite (buf, string, offset, length) {
8687 offset = Number(offset) ||
0
8688 var remaining = buf.length - offset
8692 length = Number(length)
8693 if (length
> remaining) {
8698 // must be an even number of digits
8699 var strLen = string.length
8700 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8702 if (length
> strLen /
2) {
8705 for (var i =
0; i < length; ++i) {
8706 var parsed = parseInt(string.substr(i *
2,
2),
16)
8707 if (numberIsNaN(parsed)) return i
8708 buf[offset + i] = parsed
8713 function utf8Write (buf, string, offset, length) {
8714 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8717 function asciiWrite (buf, string, offset, length) {
8718 return blitBuffer(asciiToBytes(string), buf, offset, length)
8721 function latin1Write (buf, string, offset, length) {
8722 return asciiWrite(buf, string, offset, length)
8725 function base64Write (buf, string, offset, length) {
8726 return blitBuffer(base64ToBytes(string), buf, offset, length)
8729 function ucs2Write (buf, string, offset, length) {
8730 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8733 Buffer.prototype.write = function write (string, offset, length, encoding) {
8734 // Buffer#write(string)
8735 if (offset === undefined) {
8737 length = this.length
8739 // Buffer#write(string, encoding)
8740 } else if (length === undefined && typeof offset === 'string') {
8742 length = this.length
8744 // Buffer#write(string, offset[, length][, encoding])
8745 } else if (isFinite(offset)) {
8746 offset = offset
>>> 0
8747 if (isFinite(length)) {
8748 length = length
>>> 0
8749 if (encoding === undefined) encoding = 'utf8'
8756 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8760 var remaining = this.length - offset
8761 if (length === undefined || length
> remaining) length = remaining
8763 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8764 throw new RangeError('Attempt to write outside buffer bounds')
8767 if (!encoding) encoding = 'utf8'
8769 var loweredCase = false
8773 return hexWrite(this, string, offset, length)
8777 return utf8Write(this, string, offset, length)
8780 return asciiWrite(this, string, offset, length)
8784 return latin1Write(this, string, offset, length)
8787 // Warning: maxLength not taken into account in base64Write
8788 return base64Write(this, string, offset, length)
8794 return ucs2Write(this, string, offset, length)
8797 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8798 encoding = ('' + encoding).toLowerCase()
8804 Buffer.prototype.toJSON = function toJSON () {
8807 data: Array.prototype.slice.call(this._arr || this,
0)
8811 function base64Slice (buf, start, end) {
8812 if (start ===
0 && end === buf.length) {
8813 return base64.fromByteArray(buf)
8815 return base64.fromByteArray(buf.slice(start, end))
8819 function utf8Slice (buf, start, end) {
8820 end = Math.min(buf.length, end)
8825 var firstByte = buf[i]
8826 var codePoint = null
8827 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8828 : (firstByte
> 0xDF) ?
3
8829 : (firstByte
> 0xBF) ?
2
8832 if (i + bytesPerSequence <= end) {
8833 var secondByte, thirdByte, fourthByte, tempCodePoint
8835 switch (bytesPerSequence) {
8837 if (firstByte <
0x80) {
8838 codePoint = firstByte
8842 secondByte = buf[i +
1]
8843 if ((secondByte &
0xC0) ===
0x80) {
8844 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8845 if (tempCodePoint
> 0x7F) {
8846 codePoint = tempCodePoint
8851 secondByte = buf[i +
1]
8852 thirdByte = buf[i +
2]
8853 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8854 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8855 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8856 codePoint = tempCodePoint
8861 secondByte = buf[i +
1]
8862 thirdByte = buf[i +
2]
8863 fourthByte = buf[i +
3]
8864 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8865 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8866 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8867 codePoint = tempCodePoint
8873 if (codePoint === null) {
8874 // we did not generate a valid codePoint so insert a
8875 // replacement char (U+FFFD) and advance only
1 byte
8877 bytesPerSequence =
1
8878 } else if (codePoint
> 0xFFFF) {
8879 // encode to utf16 (surrogate pair dance)
8880 codePoint -=
0x10000
8881 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8882 codePoint =
0xDC00 | codePoint &
0x3FF
8886 i += bytesPerSequence
8889 return decodeCodePointsArray(res)
8892 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8893 // the lowest limit is Chrome, with
0x10000 args.
8894 // We go
1 magnitude less, for safety
8895 var MAX_ARGUMENTS_LENGTH =
0x1000
8897 function decodeCodePointsArray (codePoints) {
8898 var len = codePoints.length
8899 if (len <= MAX_ARGUMENTS_LENGTH) {
8900 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8903 // Decode in chunks to avoid
"call stack size exceeded".
8907 res += String.fromCharCode.apply(
8909 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8915 function asciiSlice (buf, start, end) {
8917 end = Math.min(buf.length, end)
8919 for (var i = start; i < end; ++i) {
8920 ret += String.fromCharCode(buf[i] &
0x7F)
8925 function latin1Slice (buf, start, end) {
8927 end = Math.min(buf.length, end)
8929 for (var i = start; i < end; ++i) {
8930 ret += String.fromCharCode(buf[i])
8935 function hexSlice (buf, start, end) {
8936 var len = buf.length
8938 if (!start || start <
0) start =
0
8939 if (!end || end <
0 || end
> len) end = len
8942 for (var i = start; i < end; ++i) {
8943 out += toHex(buf[i])
8948 function utf16leSlice (buf, start, end) {
8949 var bytes = buf.slice(start, end)
8951 for (var i =
0; i < bytes.length; i +=
2) {
8952 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8957 Buffer.prototype.slice = function slice (start, end) {
8958 var len = this.length
8960 end = end === undefined ? len : ~~end
8964 if (start <
0) start =
0
8965 } else if (start
> len) {
8971 if (end <
0) end =
0
8972 } else if (end
> len) {
8976 if (end < start) end = start
8978 var newBuf = this.subarray(start, end)
8979 // Return an augmented `Uint8Array` instance
8980 newBuf.__proto__ = Buffer.prototype
8985 * Need to make sure that buffer isn't trying to write out of bounds.
8987 function checkOffset (offset, ext, length) {
8988 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8989 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8992 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8993 offset = offset
>>> 0
8994 byteLength = byteLength
>>> 0
8995 if (!noAssert) checkOffset(offset, byteLength, this.length)
8997 var val = this[offset]
9000 while (++i < byteLength && (mul *=
0x100)) {
9001 val += this[offset + i] * mul
9007 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
9008 offset = offset
>>> 0
9009 byteLength = byteLength
>>> 0
9011 checkOffset(offset, byteLength, this.length)
9014 var val = this[offset + --byteLength]
9016 while (byteLength
> 0 && (mul *=
0x100)) {
9017 val += this[offset + --byteLength] * mul
9023 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
9024 offset = offset
>>> 0
9025 if (!noAssert) checkOffset(offset,
1, this.length)
9029 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
9030 offset = offset
>>> 0
9031 if (!noAssert) checkOffset(offset,
2, this.length)
9032 return this[offset] | (this[offset +
1] <<
8)
9035 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
9036 offset = offset
>>> 0
9037 if (!noAssert) checkOffset(offset,
2, this.length)
9038 return (this[offset] <<
8) | this[offset +
1]
9041 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9042 offset = offset
>>> 0
9043 if (!noAssert) checkOffset(offset,
4, this.length)
9045 return ((this[offset]) |
9046 (this[offset +
1] <<
8) |
9047 (this[offset +
2] <<
16)) +
9048 (this[offset +
3] *
0x1000000)
9051 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9052 offset = offset
>>> 0
9053 if (!noAssert) checkOffset(offset,
4, this.length)
9055 return (this[offset] *
0x1000000) +
9056 ((this[offset +
1] <<
16) |
9057 (this[offset +
2] <<
8) |
9061 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9062 offset = offset
>>> 0
9063 byteLength = byteLength
>>> 0
9064 if (!noAssert) checkOffset(offset, byteLength, this.length)
9066 var val = this[offset]
9069 while (++i < byteLength && (mul *=
0x100)) {
9070 val += this[offset + i] * mul
9074 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9079 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9080 offset = offset
>>> 0
9081 byteLength = byteLength
>>> 0
9082 if (!noAssert) checkOffset(offset, byteLength, this.length)
9086 var val = this[offset + --i]
9087 while (i
> 0 && (mul *=
0x100)) {
9088 val += this[offset + --i] * mul
9092 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9097 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9098 offset = offset
>>> 0
9099 if (!noAssert) checkOffset(offset,
1, this.length)
9100 if (!(this[offset] &
0x80)) return (this[offset])
9101 return ((
0xff - this[offset] +
1) * -
1)
9104 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9105 offset = offset
>>> 0
9106 if (!noAssert) checkOffset(offset,
2, this.length)
9107 var val = this[offset] | (this[offset +
1] <<
8)
9108 return (val &
0x8000) ? val |
0xFFFF0000 : val
9111 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9112 offset = offset
>>> 0
9113 if (!noAssert) checkOffset(offset,
2, this.length)
9114 var val = this[offset +
1] | (this[offset] <<
8)
9115 return (val &
0x8000) ? val |
0xFFFF0000 : val
9118 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9119 offset = offset
>>> 0
9120 if (!noAssert) checkOffset(offset,
4, this.length)
9122 return (this[offset]) |
9123 (this[offset +
1] <<
8) |
9124 (this[offset +
2] <<
16) |
9125 (this[offset +
3] <<
24)
9128 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9129 offset = offset
>>> 0
9130 if (!noAssert) checkOffset(offset,
4, this.length)
9132 return (this[offset] <<
24) |
9133 (this[offset +
1] <<
16) |
9134 (this[offset +
2] <<
8) |
9138 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9139 offset = offset
>>> 0
9140 if (!noAssert) checkOffset(offset,
4, this.length)
9141 return ieee754.read(this, offset, true,
23,
4)
9144 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9145 offset = offset
>>> 0
9146 if (!noAssert) checkOffset(offset,
4, this.length)
9147 return ieee754.read(this, offset, false,
23,
4)
9150 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9151 offset = offset
>>> 0
9152 if (!noAssert) checkOffset(offset,
8, this.length)
9153 return ieee754.read(this, offset, true,
52,
8)
9156 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9157 offset = offset
>>> 0
9158 if (!noAssert) checkOffset(offset,
8, this.length)
9159 return ieee754.read(this, offset, false,
52,
8)
9162 function checkInt (buf, value, offset, ext, max, min) {
9163 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9164 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9165 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9168 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9170 offset = offset
>>> 0
9171 byteLength = byteLength
>>> 0
9173 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9174 checkInt(this, value, offset, byteLength, maxBytes,
0)
9179 this[offset] = value &
0xFF
9180 while (++i < byteLength && (mul *=
0x100)) {
9181 this[offset + i] = (value / mul) &
0xFF
9184 return offset + byteLength
9187 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9189 offset = offset
>>> 0
9190 byteLength = byteLength
>>> 0
9192 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9193 checkInt(this, value, offset, byteLength, maxBytes,
0)
9196 var i = byteLength -
1
9198 this[offset + i] = value &
0xFF
9199 while (--i
>=
0 && (mul *=
0x100)) {
9200 this[offset + i] = (value / mul) &
0xFF
9203 return offset + byteLength
9206 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9208 offset = offset
>>> 0
9209 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9210 this[offset] = (value &
0xff)
9214 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9216 offset = offset
>>> 0
9217 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9218 this[offset] = (value &
0xff)
9219 this[offset +
1] = (value
>>> 8)
9223 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9225 offset = offset
>>> 0
9226 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9227 this[offset] = (value
>>> 8)
9228 this[offset +
1] = (value &
0xff)
9232 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9234 offset = offset
>>> 0
9235 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9236 this[offset +
3] = (value
>>> 24)
9237 this[offset +
2] = (value
>>> 16)
9238 this[offset +
1] = (value
>>> 8)
9239 this[offset] = (value &
0xff)
9243 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9245 offset = offset
>>> 0
9246 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9247 this[offset] = (value
>>> 24)
9248 this[offset +
1] = (value
>>> 16)
9249 this[offset +
2] = (value
>>> 8)
9250 this[offset +
3] = (value &
0xff)
9254 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9256 offset = offset
>>> 0
9258 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9260 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9266 this[offset] = value &
0xFF
9267 while (++i < byteLength && (mul *=
0x100)) {
9268 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9271 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9274 return offset + byteLength
9277 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9279 offset = offset
>>> 0
9281 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9283 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9286 var i = byteLength -
1
9289 this[offset + i] = value &
0xFF
9290 while (--i
>=
0 && (mul *=
0x100)) {
9291 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9294 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9297 return offset + byteLength
9300 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9302 offset = offset
>>> 0
9303 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9304 if (value <
0) value =
0xff + value +
1
9305 this[offset] = (value &
0xff)
9309 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9311 offset = offset
>>> 0
9312 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9313 this[offset] = (value &
0xff)
9314 this[offset +
1] = (value
>>> 8)
9318 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9320 offset = offset
>>> 0
9321 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9322 this[offset] = (value
>>> 8)
9323 this[offset +
1] = (value &
0xff)
9327 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9329 offset = offset
>>> 0
9330 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9331 this[offset] = (value &
0xff)
9332 this[offset +
1] = (value
>>> 8)
9333 this[offset +
2] = (value
>>> 16)
9334 this[offset +
3] = (value
>>> 24)
9338 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9340 offset = offset
>>> 0
9341 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9342 if (value <
0) value =
0xffffffff + value +
1
9343 this[offset] = (value
>>> 24)
9344 this[offset +
1] = (value
>>> 16)
9345 this[offset +
2] = (value
>>> 8)
9346 this[offset +
3] = (value &
0xff)
9350 function checkIEEE754 (buf, value, offset, ext, max, min) {
9351 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9352 if (offset <
0) throw new RangeError('Index out of range')
9355 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9357 offset = offset
>>> 0
9359 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9361 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9365 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9366 return writeFloat(this, value, offset, true, noAssert)
9369 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9370 return writeFloat(this, value, offset, false, noAssert)
9373 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9375 offset = offset
>>> 0
9377 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9379 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9383 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9384 return writeDouble(this, value, offset, true, noAssert)
9387 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9388 return writeDouble(this, value, offset, false, noAssert)
9391 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9392 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9393 if (!start) start =
0
9394 if (!end && end !==
0) end = this.length
9395 if (targetStart
>= target.length) targetStart = target.length
9396 if (!targetStart) targetStart =
0
9397 if (end
> 0 && end < start) end = start
9399 // Copy
0 bytes; we're done
9400 if (end === start) return
0
9401 if (target.length ===
0 || this.length ===
0) return
0
9403 // Fatal error conditions
9404 if (targetStart <
0) {
9405 throw new RangeError('targetStart out of bounds')
9407 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9408 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9411 if (end
> this.length) end = this.length
9412 if (target.length - targetStart < end - start) {
9413 end = target.length - targetStart + start
9416 var len = end - start
9419 if (this === target && start < targetStart && targetStart < end) {
9420 // descending copy from end
9421 for (i = len -
1; i
>=
0; --i) {
9422 target[i + targetStart] = this[i + start]
9424 } else if (len <
1000) {
9425 // ascending copy from start
9426 for (i =
0; i < len; ++i) {
9427 target[i + targetStart] = this[i + start]
9430 Uint8Array.prototype.set.call(
9432 this.subarray(start, start + len),
9441 // buffer.fill(number[, offset[, end]])
9442 // buffer.fill(buffer[, offset[, end]])
9443 // buffer.fill(string[, offset[, end]][, encoding])
9444 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9445 // Handle string cases:
9446 if (typeof val === 'string') {
9447 if (typeof start === 'string') {
9451 } else if (typeof end === 'string') {
9455 if (val.length ===
1) {
9456 var code = val.charCodeAt(
0)
9461 if (encoding !== undefined && typeof encoding !== 'string') {
9462 throw new TypeError('encoding must be a string')
9464 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9465 throw new TypeError('Unknown encoding: ' + encoding)
9467 } else if (typeof val === 'number') {
9471 // Invalid ranges are not set to a default, so can range check early.
9472 if (start <
0 || this.length < start || this.length < end) {
9473 throw new RangeError('Out of range index')
9481 end = end === undefined ? this.length : end
>>> 0
9486 if (typeof val === 'number') {
9487 for (i = start; i < end; ++i) {
9491 var bytes = Buffer.isBuffer(val)
9493 : new Buffer(val, encoding)
9494 var len = bytes.length
9495 for (i =
0; i < end - start; ++i) {
9496 this[i + start] = bytes[i % len]
9506 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9508 function base64clean (str) {
9509 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9510 str = str.trim().replace(INVALID_BASE64_RE, '')
9511 // Node converts strings with length <
2 to ''
9512 if (str.length <
2) return ''
9513 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9514 while (str.length %
4 !==
0) {
9520 function toHex (n) {
9521 if (n <
16) return '
0' + n.toString(
16)
9522 return n.toString(
16)
9525 function utf8ToBytes (string, units) {
9526 units = units || Infinity
9528 var length = string.length
9529 var leadSurrogate = null
9532 for (var i =
0; i < length; ++i) {
9533 codePoint = string.charCodeAt(i)
9535 // is surrogate component
9536 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9537 // last char was a lead
9538 if (!leadSurrogate) {
9540 if (codePoint
> 0xDBFF) {
9542 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9544 } else if (i +
1 === length) {
9546 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9551 leadSurrogate = codePoint
9557 if (codePoint <
0xDC00) {
9558 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9559 leadSurrogate = codePoint
9563 // valid surrogate pair
9564 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9565 } else if (leadSurrogate) {
9566 // valid bmp char, but last char was a lead
9567 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9570 leadSurrogate = null
9573 if (codePoint <
0x80) {
9574 if ((units -=
1) <
0) break
9575 bytes.push(codePoint)
9576 } else if (codePoint <
0x800) {
9577 if ((units -=
2) <
0) break
9579 codePoint
>> 0x6 |
0xC0,
9580 codePoint &
0x3F |
0x80
9582 } else if (codePoint <
0x10000) {
9583 if ((units -=
3) <
0) break
9585 codePoint
>> 0xC |
0xE0,
9586 codePoint
>> 0x6 &
0x3F |
0x80,
9587 codePoint &
0x3F |
0x80
9589 } else if (codePoint <
0x110000) {
9590 if ((units -=
4) <
0) break
9592 codePoint
>> 0x12 |
0xF0,
9593 codePoint
>> 0xC &
0x3F |
0x80,
9594 codePoint
>> 0x6 &
0x3F |
0x80,
9595 codePoint &
0x3F |
0x80
9598 throw new Error('Invalid code point')
9605 function asciiToBytes (str) {
9607 for (var i =
0; i < str.length; ++i) {
9608 // Node's code seems to be doing this and not &
0x7F..
9609 byteArray.push(str.charCodeAt(i) &
0xFF)
9614 function utf16leToBytes (str, units) {
9617 for (var i =
0; i < str.length; ++i) {
9618 if ((units -=
2) <
0) break
9620 c = str.charCodeAt(i)
9630 function base64ToBytes (str) {
9631 return base64.toByteArray(base64clean(str))
9634 function blitBuffer (src, dst, offset, length) {
9635 for (var i =
0; i < length; ++i) {
9636 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9637 dst[i + offset] = src[i]
9642 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9643 function isArrayBufferView (obj) {
9644 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9647 function numberIsNaN (obj) {
9648 return obj !== obj // eslint-disable-line no-self-compare
9651 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9653 // Copyright Joyent, Inc. and other Node contributors.
9655 // Permission is hereby granted, free of charge, to any person obtaining a
9656 // copy of this software and associated documentation files (the
9657 // "Software"), to deal in the Software without restriction, including
9658 // without limitation the rights to use, copy, modify, merge, publish,
9659 // distribute, sublicense, and/or sell copies of the Software, and to permit
9660 // persons to whom the Software is furnished to do so, subject to the
9661 // following conditions:
9663 // The above copyright notice and this permission notice shall be included
9664 // in all copies or substantial portions of the Software.
9666 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9667 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9668 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9669 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9670 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9671 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9672 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9674 // NOTE: These type checking functions intentionally don't use `instanceof`
9675 // because it is fragile and can be easily faked with `Object.create()`.
9677 function isArray(arg) {
9678 if (Array.isArray) {
9679 return Array.isArray(arg);
9681 return objectToString(arg) === '[object Array]';
9683 exports.isArray = isArray;
9685 function isBoolean(arg) {
9686 return typeof arg === 'boolean';
9688 exports.isBoolean = isBoolean;
9690 function isNull(arg) {
9691 return arg === null;
9693 exports.isNull = isNull;
9695 function isNullOrUndefined(arg) {
9698 exports.isNullOrUndefined = isNullOrUndefined;
9700 function isNumber(arg) {
9701 return typeof arg === 'number';
9703 exports.isNumber = isNumber;
9705 function isString(arg) {
9706 return typeof arg === 'string';
9708 exports.isString = isString;
9710 function isSymbol(arg) {
9711 return typeof arg === 'symbol';
9713 exports.isSymbol = isSymbol;
9715 function isUndefined(arg) {
9716 return arg === void
0;
9718 exports.isUndefined = isUndefined;
9720 function isRegExp(re) {
9721 return objectToString(re) === '[object RegExp]';
9723 exports.isRegExp = isRegExp;
9725 function isObject(arg) {
9726 return typeof arg === 'object' && arg !== null;
9728 exports.isObject = isObject;
9730 function isDate(d) {
9731 return objectToString(d) === '[object Date]';
9733 exports.isDate = isDate;
9735 function isError(e) {
9736 return (objectToString(e) === '[object Error]' || e instanceof Error);
9738 exports.isError = isError;
9740 function isFunction(arg) {
9741 return typeof arg === 'function';
9743 exports.isFunction = isFunction;
9745 function isPrimitive(arg) {
9746 return arg === null ||
9747 typeof arg === 'boolean' ||
9748 typeof arg === 'number' ||
9749 typeof arg === 'string' ||
9750 typeof arg === 'symbol' || // ES6 symbol
9751 typeof arg === 'undefined';
9753 exports.isPrimitive = isPrimitive;
9755 exports.isBuffer = Buffer.isBuffer;
9757 function objectToString(o) {
9758 return Object.prototype.toString.call(o);
9761 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9762 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9763 // Copyright Joyent, Inc. and other Node contributors.
9765 // Permission is hereby granted, free of charge, to any person obtaining a
9766 // copy of this software and associated documentation files (the
9767 // "Software"), to deal in the Software without restriction, including
9768 // without limitation the rights to use, copy, modify, merge, publish,
9769 // distribute, sublicense, and/or sell copies of the Software, and to permit
9770 // persons to whom the Software is furnished to do so, subject to the
9771 // following conditions:
9773 // The above copyright notice and this permission notice shall be included
9774 // in all copies or substantial portions of the Software.
9776 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9777 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9778 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9779 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9780 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9781 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9782 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9784 function EventEmitter() {
9785 this._events = this._events || {};
9786 this._maxListeners = this._maxListeners || undefined;
9788 module.exports = EventEmitter;
9790 // Backwards-compat with node
0.10.x
9791 EventEmitter.EventEmitter = EventEmitter;
9793 EventEmitter.prototype._events = undefined;
9794 EventEmitter.prototype._maxListeners = undefined;
9796 // By default EventEmitters will print a warning if more than
10 listeners are
9797 // added to it. This is a useful default which helps finding memory leaks.
9798 EventEmitter.defaultMaxListeners =
10;
9800 // Obviously not all Emitters should be limited to
10. This function allows
9801 // that to be increased. Set to zero for unlimited.
9802 EventEmitter.prototype.setMaxListeners = function(n) {
9803 if (!isNumber(n) || n <
0 || isNaN(n))
9804 throw TypeError('n must be a positive number');
9805 this._maxListeners = n;
9809 EventEmitter.prototype.emit = function(type) {
9810 var er, handler, len, args, i, listeners;
9815 // If there is no 'error' event listener then throw.
9816 if (type === 'error') {
9817 if (!this._events.error ||
9818 (isObject(this._events.error) && !this._events.error.length)) {
9820 if (er instanceof Error) {
9821 throw er; // Unhandled 'error' event
9823 // At least give some kind of context to the user
9824 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9831 handler = this._events[type];
9833 if (isUndefined(handler))
9836 if (isFunction(handler)) {
9837 switch (arguments.length) {
9843 handler.call(this, arguments[
1]);
9846 handler.call(this, arguments[
1], arguments[
2]);
9850 args = Array.prototype.slice.call(arguments,
1);
9851 handler.apply(this, args);
9853 } else if (isObject(handler)) {
9854 args = Array.prototype.slice.call(arguments,
1);
9855 listeners = handler.slice();
9856 len = listeners.length;
9857 for (i =
0; i < len; i++)
9858 listeners[i].apply(this, args);
9864 EventEmitter.prototype.addListener = function(type, listener) {
9867 if (!isFunction(listener))
9868 throw TypeError('listener must be a function');
9873 // To avoid recursion in the case that type === "newListener"! Before
9874 // adding it to the listeners, first emit "newListener".
9875 if (this._events.newListener)
9876 this.emit('newListener', type,
9877 isFunction(listener.listener) ?
9878 listener.listener : listener);
9880 if (!this._events[type])
9881 // Optimize the case of one listener. Don't need the extra array object.
9882 this._events[type] = listener;
9883 else if (isObject(this._events[type]))
9884 // If we've already got an array, just append.
9885 this._events[type].push(listener);
9887 // Adding the second element, need to change to array.
9888 this._events[type] = [this._events[type], listener];
9890 // Check for listener leak
9891 if (isObject(this._events[type]) && !this._events[type].warned) {
9892 if (!isUndefined(this._maxListeners)) {
9893 m = this._maxListeners;
9895 m = EventEmitter.defaultMaxListeners;
9898 if (m && m
> 0 && this._events[type].length
> m) {
9899 this._events[type].warned = true;
9900 console.error('(node) warning: possible EventEmitter memory ' +
9901 'leak detected. %d listeners added. ' +
9902 'Use emitter.setMaxListeners() to increase limit.',
9903 this._events[type].length);
9904 if (typeof console.trace === 'function') {
9905 // not supported in IE
10
9914 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9916 EventEmitter.prototype.once = function(type, listener) {
9917 if (!isFunction(listener))
9918 throw TypeError('listener must be a function');
9923 this.removeListener(type, g);
9927 listener.apply(this, arguments);
9931 g.listener = listener;
9937 // emits a 'removeListener' event iff the listener was removed
9938 EventEmitter.prototype.removeListener = function(type, listener) {
9939 var list, position, length, i;
9941 if (!isFunction(listener))
9942 throw TypeError('listener must be a function');
9944 if (!this._events || !this._events[type])
9947 list = this._events[type];
9948 length = list.length;
9951 if (list === listener ||
9952 (isFunction(list.listener) && list.listener === listener)) {
9953 delete this._events[type];
9954 if (this._events.removeListener)
9955 this.emit('removeListener', type, listener);
9957 } else if (isObject(list)) {
9958 for (i = length; i--
> 0;) {
9959 if (list[i] === listener ||
9960 (list[i].listener && list[i].listener === listener)) {
9969 if (list.length ===
1) {
9971 delete this._events[type];
9973 list.splice(position,
1);
9976 if (this._events.removeListener)
9977 this.emit('removeListener', type, listener);
9983 EventEmitter.prototype.removeAllListeners = function(type) {
9989 // not listening for removeListener, no need to emit
9990 if (!this._events.removeListener) {
9991 if (arguments.length ===
0)
9993 else if (this._events[type])
9994 delete this._events[type];
9998 // emit removeListener for all listeners on all events
9999 if (arguments.length ===
0) {
10000 for (key in this._events) {
10001 if (key === 'removeListener') continue;
10002 this.removeAllListeners(key);
10004 this.removeAllListeners('removeListener');
10009 listeners = this._events[type];
10011 if (isFunction(listeners)) {
10012 this.removeListener(type, listeners);
10013 } else if (listeners) {
10015 while (listeners.length)
10016 this.removeListener(type, listeners[listeners.length -
1]);
10018 delete this._events[type];
10023 EventEmitter.prototype.listeners = function(type) {
10025 if (!this._events || !this._events[type])
10027 else if (isFunction(this._events[type]))
10028 ret = [this._events[type]];
10030 ret = this._events[type].slice();
10034 EventEmitter.prototype.listenerCount = function(type) {
10035 if (this._events) {
10036 var evlistener = this._events[type];
10038 if (isFunction(evlistener))
10040 else if (evlistener)
10041 return evlistener.length;
10046 EventEmitter.listenerCount = function(emitter, type) {
10047 return emitter.listenerCount(type);
10050 function isFunction(arg) {
10051 return typeof arg === 'function';
10054 function isNumber(arg) {
10055 return typeof arg === 'number';
10058 function isObject(arg) {
10059 return typeof arg === 'object' && arg !== null;
10062 function isUndefined(arg) {
10063 return arg === void
0;
10066 },{}],
7:[function(require,module,exports){
10067 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10069 var eLen = nBytes *
8 - mLen -
1
10070 var eMax = (
1 << eLen) -
1
10071 var eBias = eMax
>> 1
10073 var i = isLE ? (nBytes -
1) :
0
10074 var d = isLE ? -
1 :
1
10075 var s = buffer[offset + i]
10079 e = s & ((
1 << (-nBits)) -
1)
10082 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10084 m = e & ((
1 << (-nBits)) -
1)
10087 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10091 } else if (e === eMax) {
10092 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10094 m = m + Math.pow(
2, mLen)
10097 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10100 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10102 var eLen = nBytes *
8 - mLen -
1
10103 var eMax = (
1 << eLen) -
1
10104 var eBias = eMax
>> 1
10105 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10106 var i = isLE ?
0 : (nBytes -
1)
10107 var d = isLE ?
1 : -
1
10108 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10110 value = Math.abs(value)
10112 if (isNaN(value) || value === Infinity) {
10113 m = isNaN(value) ?
1 :
0
10116 e = Math.floor(Math.log(value) / Math.LN2)
10117 if (value * (c = Math.pow(
2, -e)) <
1) {
10121 if (e + eBias
>=
1) {
10124 value += rt * Math.pow(
2,
1 - eBias)
10126 if (value * c
>=
2) {
10131 if (e + eBias
>= eMax) {
10134 } else if (e + eBias
>=
1) {
10135 m = (value * c -
1) * Math.pow(
2, mLen)
10138 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10143 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10145 e = (e << mLen) | m
10147 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10149 buffer[offset + i - d] |= s *
128
10152 },{}],
8:[function(require,module,exports){
10153 if (typeof Object.create === 'function') {
10154 // implementation from standard node.js 'util' module
10155 module.exports = function inherits(ctor, superCtor) {
10156 ctor.super_ = superCtor
10157 ctor.prototype = Object.create(superCtor.prototype, {
10167 // old school shim for old browsers
10168 module.exports = function inherits(ctor, superCtor) {
10169 ctor.super_ = superCtor
10170 var TempCtor = function () {}
10171 TempCtor.prototype = superCtor.prototype
10172 ctor.prototype = new TempCtor()
10173 ctor.prototype.constructor = ctor
10177 },{}],
9:[function(require,module,exports){
10179 * Determine if an object is a Buffer
10181 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10185 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10186 // Object.prototype.constructor. Remove this eventually
10187 module.exports = function (obj) {
10188 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10191 function isBuffer (obj) {
10192 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10195 // For Node v0.10 support. Remove this eventually.
10196 function isSlowBuffer (obj) {
10197 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10200 },{}],
10:[function(require,module,exports){
10201 var toString = {}.toString;
10203 module.exports = Array.isArray || function (arr) {
10204 return toString.call(arr) == '[object Array]';
10207 },{}],
11:[function(require,module,exports){
10208 (function (process){
10211 if (!process.version ||
10212 process.version.indexOf('v0.') ===
0 ||
10213 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10214 module.exports = nextTick;
10216 module.exports = process.nextTick;
10219 function nextTick(fn, arg1, arg2, arg3) {
10220 if (typeof fn !== 'function') {
10221 throw new TypeError('"callback" argument must be a function');
10223 var len = arguments.length;
10228 return process.nextTick(fn);
10230 return process.nextTick(function afterTickOne() {
10231 fn.call(null, arg1);
10234 return process.nextTick(function afterTickTwo() {
10235 fn.call(null, arg1, arg2);
10238 return process.nextTick(function afterTickThree() {
10239 fn.call(null, arg1, arg2, arg3);
10242 args = new Array(len -
1);
10244 while (i < args.length) {
10245 args[i++] = arguments[i];
10247 return process.nextTick(function afterTick() {
10248 fn.apply(null, args);
10253 }).call(this,require('_process'))
10254 },{"_process":
12}],
12:[function(require,module,exports){
10255 // shim for using process in browser
10256 var process = module.exports = {};
10258 // cached from whatever global is present so that test runners that stub it
10259 // don't break things. But we need to wrap it in a try catch in case it is
10260 // wrapped in strict mode code which doesn't define any globals. It's inside a
10261 // function because try/catches deoptimize in certain engines.
10263 var cachedSetTimeout;
10264 var cachedClearTimeout;
10266 function defaultSetTimout() {
10267 throw new Error('setTimeout has not been defined');
10269 function defaultClearTimeout () {
10270 throw new Error('clearTimeout has not been defined');
10274 if (typeof setTimeout === 'function') {
10275 cachedSetTimeout = setTimeout;
10277 cachedSetTimeout = defaultSetTimout;
10280 cachedSetTimeout = defaultSetTimout;
10283 if (typeof clearTimeout === 'function') {
10284 cachedClearTimeout = clearTimeout;
10286 cachedClearTimeout = defaultClearTimeout;
10289 cachedClearTimeout = defaultClearTimeout;
10292 function runTimeout(fun) {
10293 if (cachedSetTimeout === setTimeout) {
10294 //normal enviroments in sane situations
10295 return setTimeout(fun,
0);
10297 // if setTimeout wasn't available but was latter defined
10298 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10299 cachedSetTimeout = setTimeout;
10300 return setTimeout(fun,
0);
10303 // when when somebody has screwed with setTimeout but no I.E. maddness
10304 return cachedSetTimeout(fun,
0);
10307 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10308 return cachedSetTimeout.call(null, fun,
0);
10310 // 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
10311 return cachedSetTimeout.call(this, fun,
0);
10317 function runClearTimeout(marker) {
10318 if (cachedClearTimeout === clearTimeout) {
10319 //normal enviroments in sane situations
10320 return clearTimeout(marker);
10322 // if clearTimeout wasn't available but was latter defined
10323 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10324 cachedClearTimeout = clearTimeout;
10325 return clearTimeout(marker);
10328 // when when somebody has screwed with setTimeout but no I.E. maddness
10329 return cachedClearTimeout(marker);
10332 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10333 return cachedClearTimeout.call(null, marker);
10335 // 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.
10336 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10337 return cachedClearTimeout.call(this, marker);
10345 var draining = false;
10347 var queueIndex = -
1;
10349 function cleanUpNextTick() {
10350 if (!draining || !currentQueue) {
10354 if (currentQueue.length) {
10355 queue = currentQueue.concat(queue);
10359 if (queue.length) {
10364 function drainQueue() {
10368 var timeout = runTimeout(cleanUpNextTick);
10371 var len = queue.length;
10373 currentQueue = queue;
10375 while (++queueIndex < len) {
10376 if (currentQueue) {
10377 currentQueue[queueIndex].run();
10381 len = queue.length;
10383 currentQueue = null;
10385 runClearTimeout(timeout);
10388 process.nextTick = function (fun) {
10389 var args = new Array(arguments.length -
1);
10390 if (arguments.length
> 1) {
10391 for (var i =
1; i < arguments.length; i++) {
10392 args[i -
1] = arguments[i];
10395 queue.push(new Item(fun, args));
10396 if (queue.length ===
1 && !draining) {
10397 runTimeout(drainQueue);
10401 // v8 likes predictible objects
10402 function Item(fun, array) {
10404 this.array = array;
10406 Item.prototype.run = function () {
10407 this.fun.apply(null, this.array);
10409 process.title = 'browser';
10410 process.browser = true;
10413 process.version = ''; // empty string to avoid regexp issues
10414 process.versions = {};
10419 process.addListener = noop;
10420 process.once = noop;
10421 process.off = noop;
10422 process.removeListener = noop;
10423 process.removeAllListeners = noop;
10424 process.emit = noop;
10425 process.prependListener = noop;
10426 process.prependOnceListener = noop;
10428 process.listeners = function (name) { return [] }
10430 process.binding = function (name) {
10431 throw new Error('process.binding is not supported');
10434 process.cwd = function () { return '/' };
10435 process.chdir = function (dir) {
10436 throw new Error('process.chdir is not supported');
10438 process.umask = function() { return
0; };
10440 },{}],
13:[function(require,module,exports){
10441 module.exports = require('./lib/_stream_duplex.js');
10443 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10444 // Copyright Joyent, Inc. and other Node contributors.
10446 // Permission is hereby granted, free of charge, to any person obtaining a
10447 // copy of this software and associated documentation files (the
10448 //
"Software"), to deal in the Software without restriction, including
10449 // without limitation the rights to use, copy, modify, merge, publish,
10450 // distribute, sublicense, and/or sell copies of the Software, and to permit
10451 // persons to whom the Software is furnished to do so, subject to the
10452 // following conditions:
10454 // The above copyright notice and this permission notice shall be included
10455 // in all copies or substantial portions of the Software.
10457 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10458 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10459 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10460 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10461 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10462 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10463 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10465 // a duplex stream is just a stream that is both readable and writable.
10466 // Since JS doesn't have multiple prototypal inheritance, this class
10467 // prototypally inherits from Readable, and then parasitically from
10474 var processNextTick = require('process-nextick-args');
10478 var objectKeys = Object.keys || function (obj) {
10480 for (var key in obj) {
10486 module.exports = Duplex;
10489 var util = require('core-util-is');
10490 util.inherits = require('inherits');
10493 var Readable = require('./_stream_readable');
10494 var Writable = require('./_stream_writable');
10496 util.inherits(Duplex, Readable);
10498 var keys = objectKeys(Writable.prototype);
10499 for (var v =
0; v < keys.length; v++) {
10500 var method = keys[v];
10501 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10504 function Duplex(options) {
10505 if (!(this instanceof Duplex)) return new Duplex(options);
10507 Readable.call(this, options);
10508 Writable.call(this, options);
10510 if (options && options.readable === false) this.readable = false;
10512 if (options && options.writable === false) this.writable = false;
10514 this.allowHalfOpen = true;
10515 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10517 this.once('end', onend);
10520 // the no-half-open enforcer
10522 // if we allow half-open state, or if the writable side ended,
10524 if (this.allowHalfOpen || this._writableState.ended) return;
10526 // no more data can be written.
10527 // But allow more writes to happen in this tick.
10528 processNextTick(onEndNT, this);
10531 function onEndNT(self) {
10535 Object.defineProperty(Duplex.prototype, 'destroyed', {
10537 if (this._readableState === undefined || this._writableState === undefined) {
10540 return this._readableState.destroyed && this._writableState.destroyed;
10542 set: function (value) {
10543 // we ignore the value if the stream
10544 // has not been initialized yet
10545 if (this._readableState === undefined || this._writableState === undefined) {
10549 // backward compatibility, the user is explicitly
10550 // managing destroyed
10551 this._readableState.destroyed = value;
10552 this._writableState.destroyed = value;
10556 Duplex.prototype._destroy = function (err, cb) {
10560 processNextTick(cb, err);
10563 function forEach(xs, f) {
10564 for (var i =
0, l = xs.length; i < l; i++) {
10568 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10569 // Copyright Joyent, Inc. and other Node contributors.
10571 // Permission is hereby granted, free of charge, to any person obtaining a
10572 // copy of this software and associated documentation files (the
10573 // "Software"), to deal in the Software without restriction, including
10574 // without limitation the rights to use, copy, modify, merge, publish,
10575 // distribute, sublicense, and/or sell copies of the Software, and to permit
10576 // persons to whom the Software is furnished to do so, subject to the
10577 // following conditions:
10579 // The above copyright notice and this permission notice shall be included
10580 // in all copies or substantial portions of the Software.
10582 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10583 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10584 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10585 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10586 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10587 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10588 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10590 // a passthrough stream.
10591 // basically just the most minimal sort of Transform stream.
10592 // Every written chunk gets output as-is.
10596 module.exports = PassThrough;
10598 var Transform = require('./_stream_transform');
10601 var util = require('core-util-is');
10602 util.inherits = require('inherits');
10605 util.inherits(PassThrough, Transform);
10607 function PassThrough(options) {
10608 if (!(this instanceof PassThrough)) return new PassThrough(options);
10610 Transform.call(this, options);
10613 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10616 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10617 (function (process,global){
10618 // Copyright Joyent, Inc. and other Node contributors.
10620 // Permission is hereby granted, free of charge, to any person obtaining a
10621 // copy of this software and associated documentation files (the
10622 // "Software"), to deal in the Software without restriction, including
10623 // without limitation the rights to use, copy, modify, merge, publish,
10624 // distribute, sublicense, and/or sell copies of the Software, and to permit
10625 // persons to whom the Software is furnished to do so, subject to the
10626 // following conditions:
10628 // The above copyright notice and this permission notice shall be included
10629 // in all copies or substantial portions of the Software.
10631 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10632 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10633 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10634 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10635 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10636 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10637 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10643 var processNextTick = require('process-nextick-args');
10646 module.exports = Readable;
10649 var isArray = require('isarray');
10656 Readable.ReadableState = ReadableState;
10659 var EE = require('events').EventEmitter;
10661 var EElistenerCount = function (emitter, type) {
10662 return emitter.listeners(type).length;
10667 var Stream = require('./internal/streams/stream');
10670 // TODO(bmeurer): Change this back to const once hole checks are
10671 // properly optimized away early in Ignition+TurboFan.
10673 var Buffer = require('safe-buffer').Buffer;
10674 var OurUint8Array = global.Uint8Array || function () {};
10675 function _uint8ArrayToBuffer(chunk) {
10676 return Buffer.from(chunk);
10678 function _isUint8Array(obj) {
10679 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10684 var util = require('core-util-is');
10685 util.inherits = require('inherits');
10689 var debugUtil = require('util');
10690 var debug = void
0;
10691 if (debugUtil && debugUtil.debuglog) {
10692 debug = debugUtil.debuglog('stream');
10694 debug = function () {};
10698 var BufferList = require('./internal/streams/BufferList');
10699 var destroyImpl = require('./internal/streams/destroy');
10702 util.inherits(Readable, Stream);
10704 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10706 function prependListener(emitter, event, fn) {
10707 // Sadly this is not cacheable as some libraries bundle their own
10708 // event emitter implementation with them.
10709 if (typeof emitter.prependListener === 'function') {
10710 return emitter.prependListener(event, fn);
10712 // This is a hack to make sure that our error handler is attached before any
10713 // userland ones. NEVER DO THIS. This is here only because this code needs
10714 // to continue to work with older versions of Node.js that do not include
10715 // the prependListener() method. The goal is to eventually remove this hack.
10716 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]];
10720 function ReadableState(options, stream) {
10721 Duplex = Duplex || require('./_stream_duplex');
10723 options = options || {};
10725 // object stream flag. Used to make read(n) ignore n and to
10726 // make all the buffer merging and length checks go away
10727 this.objectMode = !!options.objectMode;
10729 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10731 // the point at which it stops calling _read() to fill the buffer
10732 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10733 var hwm = options.highWaterMark;
10734 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10735 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10738 this.highWaterMark = Math.floor(this.highWaterMark);
10740 // A linked list is used to store data chunks instead of an array because the
10741 // linked list can remove elements from the beginning faster than
10743 this.buffer = new BufferList();
10746 this.pipesCount =
0;
10747 this.flowing = null;
10748 this.ended = false;
10749 this.endEmitted = false;
10750 this.reading = false;
10752 // a flag to be able to tell if the event 'readable'/'data' is emitted
10753 // immediately, or on a later tick. We set this to true at first, because
10754 // any actions that shouldn't happen until "later" should generally also
10755 // not happen before the first read call.
10758 // whenever we return null, then we set a flag to say
10759 // that we're awaiting a 'readable' event emission.
10760 this.needReadable = false;
10761 this.emittedReadable = false;
10762 this.readableListening = false;
10763 this.resumeScheduled = false;
10765 // has it been destroyed
10766 this.destroyed = false;
10768 // Crypto is kind of old and crusty. Historically, its default string
10769 // encoding is 'binary' so we have to make this configurable.
10770 // Everything else in the universe uses 'utf8', though.
10771 this.defaultEncoding = options.defaultEncoding || 'utf8';
10773 // the number of writers that are awaiting a drain event in .pipe()s
10774 this.awaitDrain =
0;
10776 // if true, a maybeReadMore has been scheduled
10777 this.readingMore = false;
10779 this.decoder = null;
10780 this.encoding = null;
10781 if (options.encoding) {
10782 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10783 this.decoder = new StringDecoder(options.encoding);
10784 this.encoding = options.encoding;
10788 function Readable(options) {
10789 Duplex = Duplex || require('./_stream_duplex');
10791 if (!(this instanceof Readable)) return new Readable(options);
10793 this._readableState = new ReadableState(options, this);
10796 this.readable = true;
10799 if (typeof options.read === 'function') this._read = options.read;
10801 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10807 Object.defineProperty(Readable.prototype, 'destroyed', {
10809 if (this._readableState === undefined) {
10812 return this._readableState.destroyed;
10814 set: function (value) {
10815 // we ignore the value if the stream
10816 // has not been initialized yet
10817 if (!this._readableState) {
10821 // backward compatibility, the user is explicitly
10822 // managing destroyed
10823 this._readableState.destroyed = value;
10827 Readable.prototype.destroy = destroyImpl.destroy;
10828 Readable.prototype._undestroy = destroyImpl.undestroy;
10829 Readable.prototype._destroy = function (err, cb) {
10834 // Manually shove something into the read() buffer.
10835 // This returns true if the highWaterMark has not been hit yet,
10836 // similar to how Writable.write() returns true if you should
10837 // write() some more.
10838 Readable.prototype.push = function (chunk, encoding) {
10839 var state = this._readableState;
10840 var skipChunkCheck;
10842 if (!state.objectMode) {
10843 if (typeof chunk === 'string') {
10844 encoding = encoding || state.defaultEncoding;
10845 if (encoding !== state.encoding) {
10846 chunk = Buffer.from(chunk, encoding);
10849 skipChunkCheck = true;
10852 skipChunkCheck = true;
10855 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10858 // Unshift should *always* be something directly out of read()
10859 Readable.prototype.unshift = function (chunk) {
10860 return readableAddChunk(this, chunk, null, true, false);
10863 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10864 var state = stream._readableState;
10865 if (chunk === null) {
10866 state.reading = false;
10867 onEofChunk(stream, state);
10870 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10872 stream.emit('error', er);
10873 } else if (state.objectMode || chunk && chunk.length
> 0) {
10874 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10875 chunk = _uint8ArrayToBuffer(chunk);
10879 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10880 } else if (state.ended) {
10881 stream.emit('error', new Error('stream.push() after EOF'));
10883 state.reading = false;
10884 if (state.decoder && !encoding) {
10885 chunk = state.decoder.write(chunk);
10886 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10888 addChunk(stream, state, chunk, false);
10891 } else if (!addToFront) {
10892 state.reading = false;
10896 return needMoreData(state);
10899 function addChunk(stream, state, chunk, addToFront) {
10900 if (state.flowing && state.length ===
0 && !state.sync) {
10901 stream.emit('data', chunk);
10904 // update the buffer info.
10905 state.length += state.objectMode ?
1 : chunk.length;
10906 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10908 if (state.needReadable) emitReadable(stream);
10910 maybeReadMore(stream, state);
10913 function chunkInvalid(state, chunk) {
10915 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10916 er = new TypeError('Invalid non-string/buffer chunk');
10921 // if it's past the high water mark, we can push in some more.
10922 // Also, if we have no data yet, we can stand some
10923 // more bytes. This is to work around cases where hwm=
0,
10924 // such as the repl. Also, if the push() triggered a
10925 // readable event, and the user called read(largeNumber) such that
10926 // needReadable was set, then we ought to push more, so that another
10927 // 'readable' event will be triggered.
10928 function needMoreData(state) {
10929 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10932 Readable.prototype.isPaused = function () {
10933 return this._readableState.flowing === false;
10936 // backwards compatibility.
10937 Readable.prototype.setEncoding = function (enc) {
10938 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10939 this._readableState.decoder = new StringDecoder(enc);
10940 this._readableState.encoding = enc;
10944 // Don't raise the hwm
> 8MB
10945 var MAX_HWM =
0x800000;
10946 function computeNewHighWaterMark(n) {
10947 if (n
>= MAX_HWM) {
10950 // Get the next highest power of
2 to prevent increasing hwm excessively in
10963 // This function is designed to be inlinable, so please take care when making
10964 // changes to the function body.
10965 function howMuchToRead(n, state) {
10966 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10967 if (state.objectMode) return
1;
10969 // Only flow one buffer at a time
10970 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10972 // If we're asking for more than the current hwm, then raise the hwm.
10973 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10974 if (n <= state.length) return n;
10975 // Don't have enough
10976 if (!state.ended) {
10977 state.needReadable = true;
10980 return state.length;
10983 // you can override either this method, or the async _read(n) below.
10984 Readable.prototype.read = function (n) {
10986 n = parseInt(n,
10);
10987 var state = this._readableState;
10990 if (n !==
0) state.emittedReadable = false;
10992 // if we're doing read(
0) to trigger a readable event, but we
10993 // already have a bunch of data in the buffer, then just trigger
10994 // the 'readable' event and move on.
10995 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10996 debug('read: emitReadable', state.length, state.ended);
10997 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
11001 n = howMuchToRead(n, state);
11003 // if we've ended, and we're now clear, then finish it up.
11004 if (n ===
0 && state.ended) {
11005 if (state.length ===
0) endReadable(this);
11009 // All the actual chunk generation logic needs to be
11010 // *below* the call to _read. The reason is that in certain
11011 // synthetic stream cases, such as passthrough streams, _read
11012 // may be a completely synchronous operation which may change
11013 // the state of the read buffer, providing enough data when
11014 // before there was *not* enough.
11016 // So, the steps are:
11017 //
1. Figure out what the state of things will be after we do
11018 // a read from the buffer.
11020 //
2. If that resulting state will trigger a _read, then call _read.
11021 // Note that this may be asynchronous, or synchronous. Yes, it is
11022 // deeply ugly to write APIs this way, but that still doesn't mean
11023 // that the Readable class should behave improperly, as streams are
11024 // designed to be sync/async agnostic.
11025 // Take note if the _read call is sync or async (ie, if the read call
11026 // has returned yet), so that we know whether or not it's safe to emit
11029 //
3. Actually pull the requested chunks out of the buffer and return.
11031 // if we need a readable event, then we need to do some reading.
11032 var doRead = state.needReadable;
11033 debug('need readable', doRead);
11035 // if we currently have less than the highWaterMark, then also read some
11036 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11038 debug('length less than watermark', doRead);
11041 // however, if we've ended, then there's no point, and if we're already
11042 // reading, then it's unnecessary.
11043 if (state.ended || state.reading) {
11045 debug('reading or ended', doRead);
11046 } else if (doRead) {
11048 state.reading = true;
11050 // if the length is currently zero, then we *need* a readable event.
11051 if (state.length ===
0) state.needReadable = true;
11052 // call internal read method
11053 this._read(state.highWaterMark);
11054 state.sync = false;
11055 // If _read pushed data synchronously, then `reading` will be false,
11056 // and we need to re-evaluate how much data we can return to the user.
11057 if (!state.reading) n = howMuchToRead(nOrig, state);
11061 if (n
> 0) ret = fromList(n, state);else ret = null;
11063 if (ret === null) {
11064 state.needReadable = true;
11070 if (state.length ===
0) {
11071 // If we have nothing in the buffer, then we want to know
11072 // as soon as we *do* get something into the buffer.
11073 if (!state.ended) state.needReadable = true;
11075 // If we tried to read() past the EOF, then emit end on the next tick.
11076 if (nOrig !== n && state.ended) endReadable(this);
11079 if (ret !== null) this.emit('data', ret);
11084 function onEofChunk(stream, state) {
11085 if (state.ended) return;
11086 if (state.decoder) {
11087 var chunk = state.decoder.end();
11088 if (chunk && chunk.length) {
11089 state.buffer.push(chunk);
11090 state.length += state.objectMode ?
1 : chunk.length;
11093 state.ended = true;
11095 // emit 'readable' now to make sure it gets picked up.
11096 emitReadable(stream);
11099 // Don't emit readable right away in sync mode, because this can trigger
11100 // another read() call =
> stack overflow. This way, it might trigger
11101 // a nextTick recursion warning, but that's not so bad.
11102 function emitReadable(stream) {
11103 var state = stream._readableState;
11104 state.needReadable = false;
11105 if (!state.emittedReadable) {
11106 debug('emitReadable', state.flowing);
11107 state.emittedReadable = true;
11108 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11112 function emitReadable_(stream) {
11113 debug('emit readable');
11114 stream.emit('readable');
11118 // at this point, the user has presumably seen the 'readable' event,
11119 // and called read() to consume some data. that may have triggered
11120 // in turn another _read(n) call, in which case reading = true if
11121 // it's in progress.
11122 // However, if we're not ended, or reading, and the length < hwm,
11123 // then go ahead and try to read some more preemptively.
11124 function maybeReadMore(stream, state) {
11125 if (!state.readingMore) {
11126 state.readingMore = true;
11127 processNextTick(maybeReadMore_, stream, state);
11131 function maybeReadMore_(stream, state) {
11132 var len = state.length;
11133 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11134 debug('maybeReadMore read
0');
11136 if (len === state.length)
11137 // didn't get any data, stop spinning.
11138 break;else len = state.length;
11140 state.readingMore = false;
11143 // abstract method. to be overridden in specific implementation classes.
11144 // call cb(er, data) where data is <= n in length.
11145 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11146 // arbitrary, and perhaps not very meaningful.
11147 Readable.prototype._read = function (n) {
11148 this.emit('error', new Error('_read() is not implemented'));
11151 Readable.prototype.pipe = function (dest, pipeOpts) {
11153 var state = this._readableState;
11155 switch (state.pipesCount) {
11157 state.pipes = dest;
11160 state.pipes = [state.pipes, dest];
11163 state.pipes.push(dest);
11166 state.pipesCount +=
1;
11167 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11169 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11171 var endFn = doEnd ? onend : unpipe;
11172 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11174 dest.on('unpipe', onunpipe);
11175 function onunpipe(readable, unpipeInfo) {
11177 if (readable === src) {
11178 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11179 unpipeInfo.hasUnpiped = true;
11190 // when the dest drains, it reduces the awaitDrain counter
11191 // on the source. This would be more elegant with a .once()
11192 // handler in flow(), but adding and removing repeatedly is
11194 var ondrain = pipeOnDrain(src);
11195 dest.on('drain', ondrain);
11197 var cleanedUp = false;
11198 function cleanup() {
11200 // cleanup event handlers once the pipe is broken
11201 dest.removeListener('close', onclose);
11202 dest.removeListener('finish', onfinish);
11203 dest.removeListener('drain', ondrain);
11204 dest.removeListener('error', onerror);
11205 dest.removeListener('unpipe', onunpipe);
11206 src.removeListener('end', onend);
11207 src.removeListener('end', unpipe);
11208 src.removeListener('data', ondata);
11212 // if the reader is waiting for a drain event from this
11213 // specific writer, then it would cause it to never start
11215 // So, if this is awaiting a drain, then we just call it now.
11216 // If we don't know, then assume that we are waiting for one.
11217 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11220 // If the user pushes more data while we're writing to dest then we'll end up
11221 // in ondata again. However, we only want to increase awaitDrain once because
11222 // dest will only emit one 'drain' event for the multiple writes.
11223 // =
> Introduce a guard on increasing awaitDrain.
11224 var increasedAwaitDrain = false;
11225 src.on('data', ondata);
11226 function ondata(chunk) {
11228 increasedAwaitDrain = false;
11229 var ret = dest.write(chunk);
11230 if (false === ret && !increasedAwaitDrain) {
11231 // If the user unpiped during `dest.write()`, it is possible
11232 // to get stuck in a permanently paused state if that write
11233 // also returned false.
11234 // =
> Check whether `dest` is still a piping destination.
11235 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11236 debug('false write response, pause', src._readableState.awaitDrain);
11237 src._readableState.awaitDrain++;
11238 increasedAwaitDrain = true;
11244 // if the dest has an error, then stop piping into it.
11245 // however, don't suppress the throwing behavior for this.
11246 function onerror(er) {
11247 debug('onerror', er);
11249 dest.removeListener('error', onerror);
11250 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11253 // Make sure our error handler is attached before userland ones.
11254 prependListener(dest, 'error', onerror);
11256 // Both close and finish should trigger unpipe, but only once.
11257 function onclose() {
11258 dest.removeListener('finish', onfinish);
11261 dest.once('close', onclose);
11262 function onfinish() {
11264 dest.removeListener('close', onclose);
11267 dest.once('finish', onfinish);
11269 function unpipe() {
11274 // tell the dest that it's being piped to
11275 dest.emit('pipe', src);
11277 // start the flow if it hasn't been started already.
11278 if (!state.flowing) {
11279 debug('pipe resume');
11286 function pipeOnDrain(src) {
11287 return function () {
11288 var state = src._readableState;
11289 debug('pipeOnDrain', state.awaitDrain);
11290 if (state.awaitDrain) state.awaitDrain--;
11291 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11292 state.flowing = true;
11298 Readable.prototype.unpipe = function (dest) {
11299 var state = this._readableState;
11300 var unpipeInfo = { hasUnpiped: false };
11302 // if we're not piping anywhere, then do nothing.
11303 if (state.pipesCount ===
0) return this;
11305 // just one destination. most common case.
11306 if (state.pipesCount ===
1) {
11307 // passed in one, but it's not the right one.
11308 if (dest && dest !== state.pipes) return this;
11310 if (!dest) dest = state.pipes;
11313 state.pipes = null;
11314 state.pipesCount =
0;
11315 state.flowing = false;
11316 if (dest) dest.emit('unpipe', this, unpipeInfo);
11320 // slow case. multiple pipe destinations.
11324 var dests = state.pipes;
11325 var len = state.pipesCount;
11326 state.pipes = null;
11327 state.pipesCount =
0;
11328 state.flowing = false;
11330 for (var i =
0; i < len; i++) {
11331 dests[i].emit('unpipe', this, unpipeInfo);
11335 // try to find the right one.
11336 var index = indexOf(state.pipes, dest);
11337 if (index === -
1) return this;
11339 state.pipes.splice(index,
1);
11340 state.pipesCount -=
1;
11341 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11343 dest.emit('unpipe', this, unpipeInfo);
11348 // set up data events if they are asked for
11349 // Ensure readable listeners eventually get something
11350 Readable.prototype.on = function (ev, fn) {
11351 var res = Stream.prototype.on.call(this, ev, fn);
11353 if (ev === 'data') {
11354 // Start flowing on next tick if stream isn't explicitly paused
11355 if (this._readableState.flowing !== false) this.resume();
11356 } else if (ev === 'readable') {
11357 var state = this._readableState;
11358 if (!state.endEmitted && !state.readableListening) {
11359 state.readableListening = state.needReadable = true;
11360 state.emittedReadable = false;
11361 if (!state.reading) {
11362 processNextTick(nReadingNextTick, this);
11363 } else if (state.length) {
11364 emitReadable(this);
11371 Readable.prototype.addListener = Readable.prototype.on;
11373 function nReadingNextTick(self) {
11374 debug('readable nexttick read
0');
11378 // pause() and resume() are remnants of the legacy readable stream API
11379 // If the user uses them, then switch into old mode.
11380 Readable.prototype.resume = function () {
11381 var state = this._readableState;
11382 if (!state.flowing) {
11384 state.flowing = true;
11385 resume(this, state);
11390 function resume(stream, state) {
11391 if (!state.resumeScheduled) {
11392 state.resumeScheduled = true;
11393 processNextTick(resume_, stream, state);
11397 function resume_(stream, state) {
11398 if (!state.reading) {
11399 debug('resume read
0');
11403 state.resumeScheduled = false;
11404 state.awaitDrain =
0;
11405 stream.emit('resume');
11407 if (state.flowing && !state.reading) stream.read(
0);
11410 Readable.prototype.pause = function () {
11411 debug('call pause flowing=%j', this._readableState.flowing);
11412 if (false !== this._readableState.flowing) {
11414 this._readableState.flowing = false;
11415 this.emit('pause');
11420 function flow(stream) {
11421 var state = stream._readableState;
11422 debug('flow', state.flowing);
11423 while (state.flowing && stream.read() !== null) {}
11426 // wrap an old-style stream as the async data source.
11427 // This is *not* part of the readable stream interface.
11428 // It is an ugly unfortunate mess of history.
11429 Readable.prototype.wrap = function (stream) {
11430 var state = this._readableState;
11431 var paused = false;
11434 stream.on('end', function () {
11435 debug('wrapped end');
11436 if (state.decoder && !state.ended) {
11437 var chunk = state.decoder.end();
11438 if (chunk && chunk.length) self.push(chunk);
11444 stream.on('data', function (chunk) {
11445 debug('wrapped data');
11446 if (state.decoder) chunk = state.decoder.write(chunk);
11448 // don't skip over falsy values in objectMode
11449 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11451 var ret = self.push(chunk);
11458 // proxy all the other methods.
11459 // important when wrapping filters and duplexes.
11460 for (var i in stream) {
11461 if (this[i] === undefined && typeof stream[i] === 'function') {
11462 this[i] = function (method) {
11463 return function () {
11464 return stream[method].apply(stream, arguments);
11470 // proxy certain important events.
11471 for (var n =
0; n < kProxyEvents.length; n++) {
11472 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11475 // when we try to consume some more bytes, simply unpause the
11476 // underlying stream.
11477 self._read = function (n) {
11478 debug('wrapped _read', n);
11488 // exposed for testing purposes only.
11489 Readable._fromList = fromList;
11491 // Pluck off n bytes from an array of buffers.
11492 // Length is the combined lengths of all the buffers in the list.
11493 // This function is designed to be inlinable, so please take care when making
11494 // changes to the function body.
11495 function fromList(n, state) {
11496 // nothing buffered
11497 if (state.length ===
0) return null;
11500 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11501 // read it all, truncate the list
11502 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);
11503 state.buffer.clear();
11505 // read part of list
11506 ret = fromListPartial(n, state.buffer, state.decoder);
11512 // Extracts only enough buffered data to satisfy the amount requested.
11513 // This function is designed to be inlinable, so please take care when making
11514 // changes to the function body.
11515 function fromListPartial(n, list, hasStrings) {
11517 if (n < list.head.data.length) {
11518 // slice is the same for buffers and strings
11519 ret = list.head.data.slice(
0, n);
11520 list.head.data = list.head.data.slice(n);
11521 } else if (n === list.head.data.length) {
11522 // first chunk is a perfect match
11523 ret = list.shift();
11525 // result spans more than one buffer
11526 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11531 // Copies a specified amount of characters from the list of buffered data
11533 // This function is designed to be inlinable, so please take care when making
11534 // changes to the function body.
11535 function copyFromBufferString(n, list) {
11540 while (p = p.next) {
11542 var nb = n
> str.length ? str.length : n;
11543 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11546 if (nb === str.length) {
11548 if (p.next) list.head = p.next;else list.head = list.tail = null;
11551 p.data = str.slice(nb);
11561 // Copies a specified amount of bytes from the list of buffered data chunks.
11562 // This function is designed to be inlinable, so please take care when making
11563 // changes to the function body.
11564 function copyFromBuffer(n, list) {
11565 var ret = Buffer.allocUnsafe(n);
11569 n -= p.data.length;
11570 while (p = p.next) {
11572 var nb = n
> buf.length ? buf.length : n;
11573 buf.copy(ret, ret.length - n,
0, nb);
11576 if (nb === buf.length) {
11578 if (p.next) list.head = p.next;else list.head = list.tail = null;
11581 p.data = buf.slice(nb);
11591 function endReadable(stream) {
11592 var state = stream._readableState;
11594 // If we get here before consuming all the bytes, then that is a
11595 // bug in node. Should never happen.
11596 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11598 if (!state.endEmitted) {
11599 state.ended = true;
11600 processNextTick(endReadableNT, state, stream);
11604 function endReadableNT(state, stream) {
11605 // Check that we didn't get one last unshift.
11606 if (!state.endEmitted && state.length ===
0) {
11607 state.endEmitted = true;
11608 stream.readable = false;
11609 stream.emit('end');
11613 function forEach(xs, f) {
11614 for (var i =
0, l = xs.length; i < l; i++) {
11619 function indexOf(xs, x) {
11620 for (var i =
0, l = xs.length; i < l; i++) {
11621 if (xs[i] === x) return i;
11625 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11626 },{
"./_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){
11627 // Copyright Joyent, Inc. and other Node contributors.
11629 // Permission is hereby granted, free of charge, to any person obtaining a
11630 // copy of this software and associated documentation files (the
11631 //
"Software"), to deal in the Software without restriction, including
11632 // without limitation the rights to use, copy, modify, merge, publish,
11633 // distribute, sublicense, and/or sell copies of the Software, and to permit
11634 // persons to whom the Software is furnished to do so, subject to the
11635 // following conditions:
11637 // The above copyright notice and this permission notice shall be included
11638 // in all copies or substantial portions of the Software.
11640 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11641 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11642 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11643 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11644 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11645 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11646 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11648 // a transform stream is a readable/writable stream where you do
11649 // something with the data. Sometimes it's called a
"filter",
11650 // but that's not a great name for it, since that implies a thing where
11651 // some bits pass through, and others are simply ignored. (That would
11652 // be a valid example of a transform, of course.)
11654 // While the output is causally related to the input, it's not a
11655 // necessarily symmetric or synchronous transformation. For example,
11656 // a zlib stream might take multiple plain-text writes(), and then
11657 // emit a single compressed chunk some time in the future.
11659 // Here's how this works:
11661 // The Transform stream has all the aspects of the readable and writable
11662 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11663 // internally, and returns false if there's a lot of pending writes
11664 // buffered up. When you call read(), that calls _read(n) until
11665 // there's enough pending readable data buffered up.
11667 // In a transform stream, the written data is placed in a buffer. When
11668 // _read(n) is called, it transforms the queued up data, calling the
11669 // buffered _write cb's as it consumes chunks. If consuming a single
11670 // written chunk would result in multiple output chunks, then the first
11671 // outputted bit calls the readcb, and subsequent chunks just go into
11672 // the read buffer, and will cause it to emit 'readable' if necessary.
11674 // This way, back-pressure is actually determined by the reading side,
11675 // since _read has to be called to start processing a new chunk. However,
11676 // a pathological inflate type of transform can cause excessive buffering
11677 // here. For example, imagine a stream where every byte of input is
11678 // interpreted as an integer from
0-
255, and then results in that many
11679 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11680 //
1kb of data being output. In this case, you could write a very small
11681 // amount of input, and end up with a very large amount of output. In
11682 // such a pathological inflating mechanism, there'd be no way to tell
11683 // the system to stop doing the transform. A single
4MB write could
11684 // cause the system to run out of memory.
11686 // However, even in such a pathological case, only a single written chunk
11687 // would be consumed, and then the rest would wait (un-transformed) until
11688 // the results of the previous transformed chunk were consumed.
11692 module.exports = Transform;
11694 var Duplex = require('./_stream_duplex');
11697 var util = require('core-util-is');
11698 util.inherits = require('inherits');
11701 util.inherits(Transform, Duplex);
11703 function TransformState(stream) {
11704 this.afterTransform = function (er, data) {
11705 return afterTransform(stream, er, data);
11708 this.needTransform = false;
11709 this.transforming = false;
11710 this.writecb = null;
11711 this.writechunk = null;
11712 this.writeencoding = null;
11715 function afterTransform(stream, er, data) {
11716 var ts = stream._transformState;
11717 ts.transforming = false;
11719 var cb = ts.writecb;
11722 return stream.emit('error', new Error('write callback called multiple times'));
11725 ts.writechunk = null;
11728 if (data !== null && data !== undefined) stream.push(data);
11732 var rs = stream._readableState;
11733 rs.reading = false;
11734 if (rs.needReadable || rs.length < rs.highWaterMark) {
11735 stream._read(rs.highWaterMark);
11739 function Transform(options) {
11740 if (!(this instanceof Transform)) return new Transform(options);
11742 Duplex.call(this, options);
11744 this._transformState = new TransformState(this);
11748 // start out asking for a readable event once data is transformed.
11749 this._readableState.needReadable = true;
11751 // we have implemented the _read method, and done the other things
11752 // that Readable wants before the first _read call, so unset the
11753 // sync guard flag.
11754 this._readableState.sync = false;
11757 if (typeof options.transform === 'function') this._transform = options.transform;
11759 if (typeof options.flush === 'function') this._flush = options.flush;
11762 // When the writable side finishes, then flush out anything remaining.
11763 this.once('prefinish', function () {
11764 if (typeof this._flush === 'function') this._flush(function (er, data) {
11765 done(stream, er, data);
11766 });else done(stream);
11770 Transform.prototype.push = function (chunk, encoding) {
11771 this._transformState.needTransform = false;
11772 return Duplex.prototype.push.call(this, chunk, encoding);
11775 // This is the part where you do stuff!
11776 // override this function in implementation classes.
11777 // 'chunk' is an input chunk.
11779 // Call `push(newChunk)` to pass along transformed output
11780 // to the readable side. You may call 'push' zero or more times.
11782 // Call `cb(err)` when you are done with this chunk. If you pass
11783 // an error, then that'll put the hurt on the whole operation. If you
11784 // never call cb(), then you'll never get another chunk.
11785 Transform.prototype._transform = function (chunk, encoding, cb) {
11786 throw new Error('_transform() is not implemented');
11789 Transform.prototype._write = function (chunk, encoding, cb) {
11790 var ts = this._transformState;
11792 ts.writechunk = chunk;
11793 ts.writeencoding = encoding;
11794 if (!ts.transforming) {
11795 var rs = this._readableState;
11796 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11800 // Doesn't matter what the args are here.
11801 // _transform does all the work.
11802 // That we got here means that the readable side wants more data.
11803 Transform.prototype._read = function (n) {
11804 var ts = this._transformState;
11806 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11807 ts.transforming = true;
11808 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11810 // mark that we need a transform, so that any data that comes in
11811 // will get processed, now that we've asked for it.
11812 ts.needTransform = true;
11816 Transform.prototype._destroy = function (err, cb) {
11819 Duplex.prototype._destroy.call(this, err, function (err2) {
11821 _this.emit('close');
11825 function done(stream, er, data) {
11826 if (er) return stream.emit('error', er);
11828 if (data !== null && data !== undefined) stream.push(data);
11830 // if there's nothing in the write buffer, then that means
11831 // that nothing more will ever be provided
11832 var ws = stream._writableState;
11833 var ts = stream._transformState;
11835 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11837 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11839 return stream.push(null);
11841 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11842 (function (process,global){
11843 // Copyright Joyent, Inc. and other Node contributors.
11845 // Permission is hereby granted, free of charge, to any person obtaining a
11846 // copy of this software and associated documentation files (the
11847 // "Software"), to deal in the Software without restriction, including
11848 // without limitation the rights to use, copy, modify, merge, publish,
11849 // distribute, sublicense, and/or sell copies of the Software, and to permit
11850 // persons to whom the Software is furnished to do so, subject to the
11851 // following conditions:
11853 // The above copyright notice and this permission notice shall be included
11854 // in all copies or substantial portions of the Software.
11856 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11857 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11858 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11859 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11860 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11861 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11862 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11864 // A bit simpler than readable streams.
11865 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11866 // the drain event emission and buffering.
11872 var processNextTick = require('process-nextick-args');
11875 module.exports = Writable;
11877 /*
<replacement> */
11878 function WriteReq(chunk, encoding, cb) {
11879 this.chunk = chunk;
11880 this.encoding = encoding;
11881 this.callback = cb;
11885 // It seems a linked list but it is not
11886 // there will be only
2 of these for each stream
11887 function CorkedRequest(state) {
11892 this.finish = function () {
11893 onCorkedFinish(_this, state);
11896 /*
</replacement> */
11899 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11906 Writable.WritableState = WritableState;
11909 var util = require('core-util-is');
11910 util.inherits = require('inherits');
11914 var internalUtil = {
11915 deprecate: require('util-deprecate')
11920 var Stream = require('./internal/streams/stream');
11924 var Buffer = require('safe-buffer').Buffer;
11925 var OurUint8Array = global.Uint8Array || function () {};
11926 function _uint8ArrayToBuffer(chunk) {
11927 return Buffer.from(chunk);
11929 function _isUint8Array(obj) {
11930 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11934 var destroyImpl = require('./internal/streams/destroy');
11936 util.inherits(Writable, Stream);
11940 function WritableState(options, stream) {
11941 Duplex = Duplex || require('./_stream_duplex');
11943 options = options || {};
11945 // object stream flag to indicate whether or not this stream
11946 // contains buffers or objects.
11947 this.objectMode = !!options.objectMode;
11949 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11951 // the point at which write() starts returning false
11952 // Note:
0 is a valid value, means that we always return false if
11953 // the entire buffer is not flushed immediately on write()
11954 var hwm = options.highWaterMark;
11955 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11956 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11959 this.highWaterMark = Math.floor(this.highWaterMark);
11961 // if _final has been called
11962 this.finalCalled = false;
11964 // drain event flag.
11965 this.needDrain = false;
11966 // at the start of calling end()
11967 this.ending = false;
11968 // when end() has been called, and returned
11969 this.ended = false;
11970 // when 'finish' is emitted
11971 this.finished = false;
11973 // has it been destroyed
11974 this.destroyed = false;
11976 // should we decode strings into buffers before passing to _write?
11977 // this is here so that some node-core streams can optimize string
11978 // handling at a lower level.
11979 var noDecode = options.decodeStrings === false;
11980 this.decodeStrings = !noDecode;
11982 // Crypto is kind of old and crusty. Historically, its default string
11983 // encoding is 'binary' so we have to make this configurable.
11984 // Everything else in the universe uses 'utf8', though.
11985 this.defaultEncoding = options.defaultEncoding || 'utf8';
11987 // not an actual buffer we keep track of, but a measurement
11988 // of how much we're waiting to get pushed to some underlying
11992 // a flag to see when we're in the middle of a write.
11993 this.writing = false;
11995 // when true all writes will be buffered until .uncork() call
11998 // a flag to be able to tell if the onwrite cb is called immediately,
11999 // or on a later tick. We set this to true at first, because any
12000 // actions that shouldn't happen until "later" should generally also
12001 // not happen before the first write call.
12004 // a flag to know if we're processing previously buffered items, which
12005 // may call the _write() callback in the same tick, so that we don't
12006 // end up in an overlapped onwrite situation.
12007 this.bufferProcessing = false;
12009 // the callback that's passed to _write(chunk,cb)
12010 this.onwrite = function (er) {
12011 onwrite(stream, er);
12014 // the callback that the user supplies to write(chunk,encoding,cb)
12015 this.writecb = null;
12017 // the amount that is being written when _write is called.
12020 this.bufferedRequest = null;
12021 this.lastBufferedRequest = null;
12023 // number of pending user-supplied write callbacks
12024 // this must be
0 before 'finish' can be emitted
12025 this.pendingcb =
0;
12027 // emit prefinish if the only thing we're waiting for is _write cbs
12028 // This is relevant for synchronous Transform streams
12029 this.prefinished = false;
12031 // True if the error was already emitted and should not be thrown again
12032 this.errorEmitted = false;
12034 // count buffered requests
12035 this.bufferedRequestCount =
0;
12037 // allocate the first CorkedRequest, there is always
12038 // one allocated and free to use, and we maintain at most two
12039 this.corkedRequestsFree = new CorkedRequest(this);
12042 WritableState.prototype.getBuffer = function getBuffer() {
12043 var current = this.bufferedRequest;
12047 current = current.next;
12054 Object.defineProperty(WritableState.prototype, 'buffer', {
12055 get: internalUtil.deprecate(function () {
12056 return this.getBuffer();
12057 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12062 // Test _writableState for inheritance to account for Duplex streams,
12063 // whose prototype chain only points to Readable.
12064 var realHasInstance;
12065 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12066 realHasInstance = Function.prototype[Symbol.hasInstance];
12067 Object.defineProperty(Writable, Symbol.hasInstance, {
12068 value: function (object) {
12069 if (realHasInstance.call(this, object)) return true;
12071 return object && object._writableState instanceof WritableState;
12075 realHasInstance = function (object) {
12076 return object instanceof this;
12080 function Writable(options) {
12081 Duplex = Duplex || require('./_stream_duplex');
12083 // Writable ctor is applied to Duplexes, too.
12084 // `realHasInstance` is necessary because using plain `instanceof`
12085 // would return false, as no `_writableState` property is attached.
12087 // Trying to use the custom `instanceof` for Writable here will also break the
12088 // Node.js LazyTransform implementation, which has a non-trivial getter for
12089 // `_writableState` that would lead to infinite recursion.
12090 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12091 return new Writable(options);
12094 this._writableState = new WritableState(options, this);
12097 this.writable = true;
12100 if (typeof options.write === 'function') this._write = options.write;
12102 if (typeof options.writev === 'function') this._writev = options.writev;
12104 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12106 if (typeof options.final === 'function') this._final = options.final;
12112 // Otherwise people can pipe Writable streams, which is just wrong.
12113 Writable.prototype.pipe = function () {
12114 this.emit('error', new Error('Cannot pipe, not readable'));
12117 function writeAfterEnd(stream, cb) {
12118 var er = new Error('write after end');
12119 // TODO: defer error events consistently everywhere, not just the cb
12120 stream.emit('error', er);
12121 processNextTick(cb, er);
12124 // Checks that a user-supplied chunk is valid, especially for the particular
12125 // mode the stream is in. Currently this means that `null` is never accepted
12126 // and undefined/non-string values are only allowed in object mode.
12127 function validChunk(stream, state, chunk, cb) {
12131 if (chunk === null) {
12132 er = new TypeError('May not write null values to stream');
12133 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12134 er = new TypeError('Invalid non-string/buffer chunk');
12137 stream.emit('error', er);
12138 processNextTick(cb, er);
12144 Writable.prototype.write = function (chunk, encoding, cb) {
12145 var state = this._writableState;
12147 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12149 if (isBuf && !Buffer.isBuffer(chunk)) {
12150 chunk = _uint8ArrayToBuffer(chunk);
12153 if (typeof encoding === 'function') {
12158 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12160 if (typeof cb !== 'function') cb = nop;
12162 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12164 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12170 Writable.prototype.cork = function () {
12171 var state = this._writableState;
12176 Writable.prototype.uncork = function () {
12177 var state = this._writableState;
12179 if (state.corked) {
12182 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12186 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12187 // node::ParseEncoding() requires lower case.
12188 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12189 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);
12190 this._writableState.defaultEncoding = encoding;
12194 function decodeChunk(state, chunk, encoding) {
12195 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12196 chunk = Buffer.from(chunk, encoding);
12201 // if we're already writing something, then just put this
12202 // in the queue, and wait our turn. Otherwise, call _write
12203 // If we return false, then we need a drain event, so set that flag.
12204 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12206 var newChunk = decodeChunk(state, chunk, encoding);
12207 if (chunk !== newChunk) {
12209 encoding = 'buffer';
12213 var len = state.objectMode ?
1 : chunk.length;
12215 state.length += len;
12217 var ret = state.length < state.highWaterMark;
12218 // we must ensure that previous needDrain will not be reset to false.
12219 if (!ret) state.needDrain = true;
12221 if (state.writing || state.corked) {
12222 var last = state.lastBufferedRequest;
12223 state.lastBufferedRequest = {
12225 encoding: encoding,
12231 last.next = state.lastBufferedRequest;
12233 state.bufferedRequest = state.lastBufferedRequest;
12235 state.bufferedRequestCount +=
1;
12237 doWrite(stream, state, false, len, chunk, encoding, cb);
12243 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12244 state.writelen = len;
12245 state.writecb = cb;
12246 state.writing = true;
12248 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12249 state.sync = false;
12252 function onwriteError(stream, state, sync, er, cb) {
12256 // defer the callback if we are being called synchronously
12257 // to avoid piling up things on the stack
12258 processNextTick(cb, er);
12259 // this can emit finish, and it will always happen
12261 processNextTick(finishMaybe, stream, state);
12262 stream._writableState.errorEmitted = true;
12263 stream.emit('error', er);
12265 // the caller expect this to happen before if
12268 stream._writableState.errorEmitted = true;
12269 stream.emit('error', er);
12270 // this can emit finish, but finish must
12271 // always follow error
12272 finishMaybe(stream, state);
12276 function onwriteStateUpdate(state) {
12277 state.writing = false;
12278 state.writecb = null;
12279 state.length -= state.writelen;
12280 state.writelen =
0;
12283 function onwrite(stream, er) {
12284 var state = stream._writableState;
12285 var sync = state.sync;
12286 var cb = state.writecb;
12288 onwriteStateUpdate(state);
12290 if (er) onwriteError(stream, state, sync, er, cb);else {
12291 // Check if we're actually ready to finish, but don't emit yet
12292 var finished = needFinish(state);
12294 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12295 clearBuffer(stream, state);
12300 asyncWrite(afterWrite, stream, state, finished, cb);
12303 afterWrite(stream, state, finished, cb);
12308 function afterWrite(stream, state, finished, cb) {
12309 if (!finished) onwriteDrain(stream, state);
12312 finishMaybe(stream, state);
12315 // Must force callback to be called on nextTick, so that we don't
12316 // emit 'drain' before the write() consumer gets the 'false' return
12317 // value, and has a chance to attach a 'drain' listener.
12318 function onwriteDrain(stream, state) {
12319 if (state.length ===
0 && state.needDrain) {
12320 state.needDrain = false;
12321 stream.emit('drain');
12325 // if there's something in the buffer waiting, then process it
12326 function clearBuffer(stream, state) {
12327 state.bufferProcessing = true;
12328 var entry = state.bufferedRequest;
12330 if (stream._writev && entry && entry.next) {
12331 // Fast case, write everything using _writev()
12332 var l = state.bufferedRequestCount;
12333 var buffer = new Array(l);
12334 var holder = state.corkedRequestsFree;
12335 holder.entry = entry;
12338 var allBuffers = true;
12340 buffer[count] = entry;
12341 if (!entry.isBuf) allBuffers = false;
12342 entry = entry.next;
12345 buffer.allBuffers = allBuffers;
12347 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12349 // doWrite is almost always async, defer these to save a bit of time
12350 // as the hot path ends with doWrite
12352 state.lastBufferedRequest = null;
12354 state.corkedRequestsFree = holder.next;
12355 holder.next = null;
12357 state.corkedRequestsFree = new CorkedRequest(state);
12360 // Slow case, write chunks one-by-one
12362 var chunk = entry.chunk;
12363 var encoding = entry.encoding;
12364 var cb = entry.callback;
12365 var len = state.objectMode ?
1 : chunk.length;
12367 doWrite(stream, state, false, len, chunk, encoding, cb);
12368 entry = entry.next;
12369 // if we didn't call the onwrite immediately, then
12370 // it means that we need to wait until it does.
12371 // also, that means that the chunk and cb are currently
12372 // being processed, so move the buffer counter past them.
12373 if (state.writing) {
12378 if (entry === null) state.lastBufferedRequest = null;
12381 state.bufferedRequestCount =
0;
12382 state.bufferedRequest = entry;
12383 state.bufferProcessing = false;
12386 Writable.prototype._write = function (chunk, encoding, cb) {
12387 cb(new Error('_write() is not implemented'));
12390 Writable.prototype._writev = null;
12392 Writable.prototype.end = function (chunk, encoding, cb) {
12393 var state = this._writableState;
12395 if (typeof chunk === 'function') {
12399 } else if (typeof encoding === 'function') {
12404 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12406 // .end() fully uncorks
12407 if (state.corked) {
12412 // ignore unnecessary end() calls.
12413 if (!state.ending && !state.finished) endWritable(this, state, cb);
12416 function needFinish(state) {
12417 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12419 function callFinal(stream, state) {
12420 stream._final(function (err) {
12423 stream.emit('error', err);
12425 state.prefinished = true;
12426 stream.emit('prefinish');
12427 finishMaybe(stream, state);
12430 function prefinish(stream, state) {
12431 if (!state.prefinished && !state.finalCalled) {
12432 if (typeof stream._final === 'function') {
12434 state.finalCalled = true;
12435 processNextTick(callFinal, stream, state);
12437 state.prefinished = true;
12438 stream.emit('prefinish');
12443 function finishMaybe(stream, state) {
12444 var need = needFinish(state);
12446 prefinish(stream, state);
12447 if (state.pendingcb ===
0) {
12448 state.finished = true;
12449 stream.emit('finish');
12455 function endWritable(stream, state, cb) {
12456 state.ending = true;
12457 finishMaybe(stream, state);
12459 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12461 state.ended = true;
12462 stream.writable = false;
12465 function onCorkedFinish(corkReq, state, err) {
12466 var entry = corkReq.entry;
12467 corkReq.entry = null;
12469 var cb = entry.callback;
12472 entry = entry.next;
12474 if (state.corkedRequestsFree) {
12475 state.corkedRequestsFree.next = corkReq;
12477 state.corkedRequestsFree = corkReq;
12481 Object.defineProperty(Writable.prototype, 'destroyed', {
12483 if (this._writableState === undefined) {
12486 return this._writableState.destroyed;
12488 set: function (value) {
12489 // we ignore the value if the stream
12490 // has not been initialized yet
12491 if (!this._writableState) {
12495 // backward compatibility, the user is explicitly
12496 // managing destroyed
12497 this._writableState.destroyed = value;
12501 Writable.prototype.destroy = destroyImpl.destroy;
12502 Writable.prototype._undestroy = destroyImpl.undestroy;
12503 Writable.prototype._destroy = function (err, cb) {
12507 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12508 },{"./_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){
12513 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12515 var Buffer = require('safe-buffer').Buffer;
12518 function copyBuffer(src, target, offset) {
12519 src.copy(target, offset);
12522 module.exports = function () {
12523 function BufferList() {
12524 _classCallCheck(this, BufferList);
12531 BufferList.prototype.push = function push(v) {
12532 var entry = { data: v, next: null };
12533 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12538 BufferList.prototype.unshift = function unshift(v) {
12539 var entry = { data: v, next: this.head };
12540 if (this.length ===
0) this.tail = entry;
12545 BufferList.prototype.shift = function shift() {
12546 if (this.length ===
0) return;
12547 var ret = this.head.data;
12548 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12553 BufferList.prototype.clear = function clear() {
12554 this.head = this.tail = null;
12558 BufferList.prototype.join = function join(s) {
12559 if (this.length ===
0) return '';
12561 var ret = '' + p.data;
12562 while (p = p.next) {
12567 BufferList.prototype.concat = function concat(n) {
12568 if (this.length ===
0) return Buffer.alloc(
0);
12569 if (this.length ===
1) return this.head.data;
12570 var ret = Buffer.allocUnsafe(n
>>> 0);
12574 copyBuffer(p.data, ret, i);
12575 i += p.data.length;
12583 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12588 var processNextTick = require('process-nextick-args');
12591 // undocumented cb() API, needed for core, not for public API
12592 function destroy(err, cb) {
12595 var readableDestroyed = this._readableState && this._readableState.destroyed;
12596 var writableDestroyed = this._writableState && this._writableState.destroyed;
12598 if (readableDestroyed || writableDestroyed) {
12601 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12602 processNextTick(emitErrorNT, this, err);
12607 // we set destroyed to true before firing error callbacks in order
12608 // to make it re-entrance safe in case destroy() is called within callbacks
12610 if (this._readableState) {
12611 this._readableState.destroyed = true;
12614 // if this is a duplex stream mark the writable part as destroyed as well
12615 if (this._writableState) {
12616 this._writableState.destroyed = true;
12619 this._destroy(err || null, function (err) {
12621 processNextTick(emitErrorNT, _this, err);
12622 if (_this._writableState) {
12623 _this._writableState.errorEmitted = true;
12631 function undestroy() {
12632 if (this._readableState) {
12633 this._readableState.destroyed = false;
12634 this._readableState.reading = false;
12635 this._readableState.ended = false;
12636 this._readableState.endEmitted = false;
12639 if (this._writableState) {
12640 this._writableState.destroyed = false;
12641 this._writableState.ended = false;
12642 this._writableState.ending = false;
12643 this._writableState.finished = false;
12644 this._writableState.errorEmitted = false;
12648 function emitErrorNT(self, err) {
12649 self.emit('error', err);
12654 undestroy: undestroy
12656 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12657 module.exports = require('events').EventEmitter;
12659 },{"events":
6}],
22:[function(require,module,exports){
12660 module.exports = require('./readable').PassThrough
12662 },{"./readable":
23}],
23:[function(require,module,exports){
12663 exports = module.exports = require('./lib/_stream_readable.js');
12664 exports.Stream = exports;
12665 exports.Readable = exports;
12666 exports.Writable = require('./lib/_stream_writable.js');
12667 exports.Duplex = require('./lib/_stream_duplex.js');
12668 exports.Transform = require('./lib/_stream_transform.js');
12669 exports.PassThrough = require('./lib/_stream_passthrough.js');
12671 },{"./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){
12672 module.exports = require('./readable').Transform
12674 },{"./readable":
23}],
25:[function(require,module,exports){
12675 module.exports = require('./lib/_stream_writable.js');
12677 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12678 /* eslint-disable node/no-deprecated-api */
12679 var buffer = require('buffer')
12680 var Buffer = buffer.Buffer
12682 // alternative to using Object.keys for old browsers
12683 function copyProps (src, dst) {
12684 for (var key in src) {
12685 dst[key] = src[key]
12688 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12689 module.exports = buffer
12691 // Copy properties from require('buffer')
12692 copyProps(buffer, exports)
12693 exports.Buffer = SafeBuffer
12696 function SafeBuffer (arg, encodingOrOffset, length) {
12697 return Buffer(arg, encodingOrOffset, length)
12700 // Copy static methods from Buffer
12701 copyProps(Buffer, SafeBuffer)
12703 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12704 if (typeof arg === 'number') {
12705 throw new TypeError('Argument must not be a number')
12707 return Buffer(arg, encodingOrOffset, length)
12710 SafeBuffer.alloc = function (size, fill, encoding) {
12711 if (typeof size !== 'number') {
12712 throw new TypeError('Argument must be a number')
12714 var buf = Buffer(size)
12715 if (fill !== undefined) {
12716 if (typeof encoding === 'string') {
12717 buf.fill(fill, encoding)
12727 SafeBuffer.allocUnsafe = function (size) {
12728 if (typeof size !== 'number') {
12729 throw new TypeError('Argument must be a number')
12731 return Buffer(size)
12734 SafeBuffer.allocUnsafeSlow = function (size) {
12735 if (typeof size !== 'number') {
12736 throw new TypeError('Argument must be a number')
12738 return buffer.SlowBuffer(size)
12741 },{"buffer":
4}],
27:[function(require,module,exports){
12742 // Copyright Joyent, Inc. and other Node contributors.
12744 // Permission is hereby granted, free of charge, to any person obtaining a
12745 // copy of this software and associated documentation files (the
12746 // "Software"), to deal in the Software without restriction, including
12747 // without limitation the rights to use, copy, modify, merge, publish,
12748 // distribute, sublicense, and/or sell copies of the Software, and to permit
12749 // persons to whom the Software is furnished to do so, subject to the
12750 // following conditions:
12752 // The above copyright notice and this permission notice shall be included
12753 // in all copies or substantial portions of the Software.
12755 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12756 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12757 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12758 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12759 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12760 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12761 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12763 module.exports = Stream;
12765 var EE = require('events').EventEmitter;
12766 var inherits = require('inherits');
12768 inherits(Stream, EE);
12769 Stream.Readable = require('readable-stream/readable.js');
12770 Stream.Writable = require('readable-stream/writable.js');
12771 Stream.Duplex = require('readable-stream/duplex.js');
12772 Stream.Transform = require('readable-stream/transform.js');
12773 Stream.PassThrough = require('readable-stream/passthrough.js');
12775 // Backwards-compat with node
0.4.x
12776 Stream.Stream = Stream;
12780 // old-style streams. Note that the pipe method (the only relevant
12781 // part of this class) is overridden in the Readable class.
12783 function Stream() {
12787 Stream.prototype.pipe = function(dest, options) {
12790 function ondata(chunk) {
12791 if (dest.writable) {
12792 if (false === dest.write(chunk) && source.pause) {
12798 source.on('data', ondata);
12800 function ondrain() {
12801 if (source.readable && source.resume) {
12806 dest.on('drain', ondrain);
12808 // If the 'end' option is not supplied, dest.end() will be called when
12809 // source gets the 'end' or 'close' events. Only dest.end() once.
12810 if (!dest._isStdio && (!options || options.end !== false)) {
12811 source.on('end', onend);
12812 source.on('close', onclose);
12815 var didOnEnd = false;
12817 if (didOnEnd) return;
12824 function onclose() {
12825 if (didOnEnd) return;
12828 if (typeof dest.destroy === 'function') dest.destroy();
12831 // don't leave dangling pipes when there are errors.
12832 function onerror(er) {
12834 if (EE.listenerCount(this, 'error') ===
0) {
12835 throw er; // Unhandled stream error in pipe.
12839 source.on('error', onerror);
12840 dest.on('error', onerror);
12842 // remove all the event listeners that were added.
12843 function cleanup() {
12844 source.removeListener('data', ondata);
12845 dest.removeListener('drain', ondrain);
12847 source.removeListener('end', onend);
12848 source.removeListener('close', onclose);
12850 source.removeListener('error', onerror);
12851 dest.removeListener('error', onerror);
12853 source.removeListener('end', cleanup);
12854 source.removeListener('close', cleanup);
12856 dest.removeListener('close', cleanup);
12859 source.on('end', cleanup);
12860 source.on('close', cleanup);
12862 dest.on('close', cleanup);
12864 dest.emit('pipe', source);
12866 // Allow for unix-like usage: A.pipe(B).pipe(C)
12870 },{"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){
12873 var Buffer = require('safe-buffer').Buffer;
12875 var isEncoding = Buffer.isEncoding || function (encoding) {
12876 encoding = '' + encoding;
12877 switch (encoding && encoding.toLowerCase()) {
12878 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':
12885 function _normalizeEncoding(enc) {
12886 if (!enc) return 'utf8';
12906 if (retried) return; // undefined
12907 enc = ('' + enc).toLowerCase();
12913 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12914 // modules monkey-patch it to support additional encodings
12915 function normalizeEncoding(enc) {
12916 var nenc = _normalizeEncoding(enc);
12917 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12918 return nenc || enc;
12921 // StringDecoder provides an interface for efficiently splitting a series of
12922 // buffers into a series of JS strings without breaking apart multi-byte
12924 exports.StringDecoder = StringDecoder;
12925 function StringDecoder(encoding) {
12926 this.encoding = normalizeEncoding(encoding);
12928 switch (this.encoding) {
12930 this.text = utf16Text;
12931 this.end = utf16End;
12935 this.fillLast = utf8FillLast;
12939 this.text = base64Text;
12940 this.end = base64End;
12944 this.write = simpleWrite;
12945 this.end = simpleEnd;
12949 this.lastTotal =
0;
12950 this.lastChar = Buffer.allocUnsafe(nb);
12953 StringDecoder.prototype.write = function (buf) {
12954 if (buf.length ===
0) return '';
12957 if (this.lastNeed) {
12958 r = this.fillLast(buf);
12959 if (r === undefined) return '';
12965 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12969 StringDecoder.prototype.end = utf8End;
12971 // Returns only complete characters in a Buffer
12972 StringDecoder.prototype.text = utf8Text;
12974 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12975 StringDecoder.prototype.fillLast = function (buf) {
12976 if (this.lastNeed <= buf.length) {
12977 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12978 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12980 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12981 this.lastNeed -= buf.length;
12984 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12985 // continuation byte.
12986 function utf8CheckByte(byte) {
12987 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;
12991 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12992 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12993 // needed to complete the UTF-
8 character (if applicable) are returned.
12994 function utf8CheckIncomplete(self, buf, i) {
12995 var j = buf.length -
1;
12996 if (j < i) return
0;
12997 var nb = utf8CheckByte(buf[j]);
12999 if (nb
> 0) self.lastNeed = nb -
1;
13002 if (--j < i) return
0;
13003 nb = utf8CheckByte(buf[j]);
13005 if (nb
> 0) self.lastNeed = nb -
2;
13008 if (--j < i) return
0;
13009 nb = utf8CheckByte(buf[j]);
13012 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
13019 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
13020 // needed or are available. If we see a non-continuation byte where we expect
13021 // one, we
"replace" the validated continuation bytes we've seen so far with
13022 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
13023 // behavior. The continuation byte check is included three times in the case
13024 // where all of the continuation bytes for a character exist in the same buffer.
13025 // It is also done this way as a slight performance increase instead of using a
13027 function utf8CheckExtraBytes(self, buf, p) {
13028 if ((buf[
0] &
0xC0) !==
0x80) {
13030 return '\ufffd'.repeat(p);
13032 if (self.lastNeed
> 1 && buf.length
> 1) {
13033 if ((buf[
1] &
0xC0) !==
0x80) {
13035 return '\ufffd'.repeat(p +
1);
13037 if (self.lastNeed
> 2 && buf.length
> 2) {
13038 if ((buf[
2] &
0xC0) !==
0x80) {
13040 return '\ufffd'.repeat(p +
2);
13046 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13047 function utf8FillLast(buf) {
13048 var p = this.lastTotal - this.lastNeed;
13049 var r = utf8CheckExtraBytes(this, buf, p);
13050 if (r !== undefined) return r;
13051 if (this.lastNeed <= buf.length) {
13052 buf.copy(this.lastChar, p,
0, this.lastNeed);
13053 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13055 buf.copy(this.lastChar, p,
0, buf.length);
13056 this.lastNeed -= buf.length;
13059 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13060 // partial character, the character's bytes are buffered until the required
13061 // number of bytes are available.
13062 function utf8Text(buf, i) {
13063 var total = utf8CheckIncomplete(this, buf, i);
13064 if (!this.lastNeed) return buf.toString('utf8', i);
13065 this.lastTotal = total;
13066 var end = buf.length - (total - this.lastNeed);
13067 buf.copy(this.lastChar,
0, end);
13068 return buf.toString('utf8', i, end);
13071 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13072 // character needs to be added to the output.
13073 function utf8End(buf) {
13074 var r = buf && buf.length ? this.write(buf) : '';
13075 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13079 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13080 // number of bytes available, we need to check if we end on a leading/high
13081 // surrogate. In that case, we need to wait for the next two bytes in order to
13082 // decode the last character properly.
13083 function utf16Text(buf, i) {
13084 if ((buf.length - i) %
2 ===
0) {
13085 var r = buf.toString('utf16le', i);
13087 var c = r.charCodeAt(r.length -
1);
13088 if (c
>=
0xD800 && c <=
0xDBFF) {
13090 this.lastTotal =
4;
13091 this.lastChar[
0] = buf[buf.length -
2];
13092 this.lastChar[
1] = buf[buf.length -
1];
13093 return r.slice(
0, -
1);
13099 this.lastTotal =
2;
13100 this.lastChar[
0] = buf[buf.length -
1];
13101 return buf.toString('utf16le', i, buf.length -
1);
13104 // For UTF-
16LE we do not explicitly append special replacement characters if we
13105 // end on a partial character, we simply let v8 handle that.
13106 function utf16End(buf) {
13107 var r = buf && buf.length ? this.write(buf) : '';
13108 if (this.lastNeed) {
13109 var end = this.lastTotal - this.lastNeed;
13110 return r + this.lastChar.toString('utf16le',
0, end);
13115 function base64Text(buf, i) {
13116 var n = (buf.length - i) %
3;
13117 if (n ===
0) return buf.toString('base64', i);
13118 this.lastNeed =
3 - n;
13119 this.lastTotal =
3;
13121 this.lastChar[
0] = buf[buf.length -
1];
13123 this.lastChar[
0] = buf[buf.length -
2];
13124 this.lastChar[
1] = buf[buf.length -
1];
13126 return buf.toString('base64', i, buf.length - n);
13129 function base64End(buf) {
13130 var r = buf && buf.length ? this.write(buf) : '';
13131 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13135 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13136 function simpleWrite(buf) {
13137 return buf.toString(this.encoding);
13140 function simpleEnd(buf) {
13141 return buf && buf.length ? this.write(buf) : '';
13143 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13144 (function (global){
13150 module.exports = deprecate;
13153 * Mark that a method should not be used.
13154 * Returns a modified function which warns once by default.
13156 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13158 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13159 * will throw an Error when invoked.
13161 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13162 * will invoke `console.trace()` instead of `console.error()`.
13164 * @param {Function} fn - the function to deprecate
13165 * @param {String} msg - the string to print to the console when `fn` is invoked
13166 * @returns {Function} a new "deprecated" version of `fn`
13170 function deprecate (fn, msg) {
13171 if (config('noDeprecation')) {
13175 var warned = false;
13176 function deprecated() {
13178 if (config('throwDeprecation')) {
13179 throw new Error(msg);
13180 } else if (config('traceDeprecation')) {
13181 console.trace(msg);
13187 return fn.apply(this, arguments);
13194 * Checks `localStorage` for boolean values for the given `name`.
13196 * @param {String} name
13197 * @returns {Boolean}
13201 function config (name) {
13202 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13204 if (!global.localStorage) return false;
13208 var val = global.localStorage[name];
13209 if (null == val) return false;
13210 return String(val).toLowerCase() === 'true';
13213 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13214 },{}],
30:[function(require,module,exports){
13215 arguments[
4][
8][
0].apply(exports,arguments)
13216 },{"dup":
8}],
31:[function(require,module,exports){
13217 module.exports = function isBuffer(arg) {
13218 return arg && typeof arg === 'object'
13219 && typeof arg.copy === 'function'
13220 && typeof arg.fill === 'function'
13221 && typeof arg.readUInt8 === 'function';
13223 },{}],
32:[function(require,module,exports){
13224 (function (process,global){
13225 // Copyright Joyent, Inc. and other Node contributors.
13227 // Permission is hereby granted, free of charge, to any person obtaining a
13228 // copy of this software and associated documentation files (the
13229 // "Software"), to deal in the Software without restriction, including
13230 // without limitation the rights to use, copy, modify, merge, publish,
13231 // distribute, sublicense, and/or sell copies of the Software, and to permit
13232 // persons to whom the Software is furnished to do so, subject to the
13233 // following conditions:
13235 // The above copyright notice and this permission notice shall be included
13236 // in all copies or substantial portions of the Software.
13238 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13239 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13240 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13241 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13242 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13243 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13244 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13246 var formatRegExp = /%[sdj%]/g;
13247 exports.format = function(f) {
13248 if (!isString(f)) {
13250 for (var i =
0; i < arguments.length; i++) {
13251 objects.push(inspect(arguments[i]));
13253 return objects.join(' ');
13257 var args = arguments;
13258 var len = args.length;
13259 var str = String(f).replace(formatRegExp, function(x) {
13260 if (x === '%%') return '%';
13261 if (i
>= len) return x;
13263 case '%s': return String(args[i++]);
13264 case '%d': return Number(args[i++]);
13267 return JSON.stringify(args[i++]);
13269 return '[Circular]';
13275 for (var x = args[i]; i < len; x = args[++i]) {
13276 if (isNull(x) || !isObject(x)) {
13279 str += ' ' + inspect(x);
13286 // Mark that a method should not be used.
13287 // Returns a modified function which warns once by default.
13288 // If --no-deprecation is set, then it is a no-op.
13289 exports.deprecate = function(fn, msg) {
13290 // Allow for deprecating things in the process of starting up.
13291 if (isUndefined(global.process)) {
13292 return function() {
13293 return exports.deprecate(fn, msg).apply(this, arguments);
13297 if (process.noDeprecation === true) {
13301 var warned = false;
13302 function deprecated() {
13304 if (process.throwDeprecation) {
13305 throw new Error(msg);
13306 } else if (process.traceDeprecation) {
13307 console.trace(msg);
13309 console.error(msg);
13313 return fn.apply(this, arguments);
13322 exports.debuglog = function(set) {
13323 if (isUndefined(debugEnviron))
13324 debugEnviron = process.env.NODE_DEBUG || '';
13325 set = set.toUpperCase();
13326 if (!debugs[set]) {
13327 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13328 var pid = process.pid;
13329 debugs[set] = function() {
13330 var msg = exports.format.apply(exports, arguments);
13331 console.error('%s %d: %s', set, pid, msg);
13334 debugs[set] = function() {};
13337 return debugs[set];
13342 * Echos the value of a value. Trys to print the value out
13343 * in the best way possible given the different types.
13345 * @param {Object} obj The object to print out.
13346 * @param {Object} opts Optional options object that alters the output.
13348 /* legacy: obj, showHidden, depth, colors*/
13349 function inspect(obj, opts) {
13353 stylize: stylizeNoColor
13356 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13357 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13358 if (isBoolean(opts)) {
13360 ctx.showHidden = opts;
13362 // got an "options" object
13363 exports._extend(ctx, opts);
13365 // set default options
13366 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13367 if (isUndefined(ctx.depth)) ctx.depth =
2;
13368 if (isUndefined(ctx.colors)) ctx.colors = false;
13369 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13370 if (ctx.colors) ctx.stylize = stylizeWithColor;
13371 return formatValue(ctx, obj, ctx.depth);
13373 exports.inspect = inspect;
13376 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13379 'italic' : [
3,
23],
13380 'underline' : [
4,
24],
13381 'inverse' : [
7,
27],
13382 'white' : [
37,
39],
13384 'black' : [
30,
39],
13387 'green' : [
32,
39],
13388 'magenta' : [
35,
39],
13390 'yellow' : [
33,
39]
13393 // Don't use 'blue' not visible on cmd.exe
13396 'number': 'yellow',
13397 'boolean': 'yellow',
13398 'undefined': 'grey',
13402 // "name": intentionally not styling
13407 function stylizeWithColor(str, styleType) {
13408 var style = inspect.styles[styleType];
13411 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13412 '\u001b[' + inspect.colors[style][
1] + 'm';
13419 function stylizeNoColor(str, styleType) {
13424 function arrayToHash(array) {
13427 array.forEach(function(val, idx) {
13435 function formatValue(ctx, value, recurseTimes) {
13436 // Provide a hook for user-specified inspect functions.
13437 // Check that value is an object with an inspect function on it
13438 if (ctx.customInspect &&
13440 isFunction(value.inspect) &&
13441 // Filter out the util module, it's inspect function is special
13442 value.inspect !== exports.inspect &&
13443 // Also filter out any prototype objects using the circular check.
13444 !(value.constructor && value.constructor.prototype === value)) {
13445 var ret = value.inspect(recurseTimes, ctx);
13446 if (!isString(ret)) {
13447 ret = formatValue(ctx, ret, recurseTimes);
13452 // Primitive types cannot have properties
13453 var primitive = formatPrimitive(ctx, value);
13458 // Look up the keys of the object.
13459 var keys = Object.keys(value);
13460 var visibleKeys = arrayToHash(keys);
13462 if (ctx.showHidden) {
13463 keys = Object.getOwnPropertyNames(value);
13466 // IE doesn't make error fields non-enumerable
13467 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13469 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13470 return formatError(value);
13473 // Some type of object without properties can be shortcutted.
13474 if (keys.length ===
0) {
13475 if (isFunction(value)) {
13476 var name = value.name ? ': ' + value.name : '';
13477 return ctx.stylize('[Function' + name + ']', 'special');
13479 if (isRegExp(value)) {
13480 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13482 if (isDate(value)) {
13483 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13485 if (isError(value)) {
13486 return formatError(value);
13490 var base = '', array = false, braces = ['{', '}'];
13492 // Make Array say that they are Array
13493 if (isArray(value)) {
13495 braces = ['[', ']'];
13498 // Make functions say that they are functions
13499 if (isFunction(value)) {
13500 var n = value.name ? ': ' + value.name : '';
13501 base = ' [Function' + n + ']';
13504 // Make RegExps say that they are RegExps
13505 if (isRegExp(value)) {
13506 base = ' ' + RegExp.prototype.toString.call(value);
13509 // Make dates with properties first say the date
13510 if (isDate(value)) {
13511 base = ' ' + Date.prototype.toUTCString.call(value);
13514 // Make error with message first say the error
13515 if (isError(value)) {
13516 base = ' ' + formatError(value);
13519 if (keys.length ===
0 && (!array || value.length ==
0)) {
13520 return braces[
0] + base + braces[
1];
13523 if (recurseTimes <
0) {
13524 if (isRegExp(value)) {
13525 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13527 return ctx.stylize('[Object]', 'special');
13531 ctx.seen.push(value);
13535 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13537 output = keys.map(function(key) {
13538 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13544 return reduceToSingleString(output, base, braces);
13548 function formatPrimitive(ctx, value) {
13549 if (isUndefined(value))
13550 return ctx.stylize('undefined', 'undefined');
13551 if (isString(value)) {
13552 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13553 .replace(/'/g, "\\'")
13554 .replace(/\\"/g, '"') + '\'';
13555 return ctx.stylize(simple, 'string');
13557 if (isNumber(value))
13558 return ctx.stylize('' + value, 'number');
13559 if (isBoolean(value))
13560 return ctx.stylize('' + value, 'boolean');
13561 // For some reason typeof null is "object", so special case here.
13563 return ctx.stylize('null', 'null');
13567 function formatError(value) {
13568 return '[' + Error.prototype.toString.call(value) + ']';
13572 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13574 for (var i =
0, l = value.length; i < l; ++i) {
13575 if (hasOwnProperty(value, String(i))) {
13576 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13582 keys.forEach(function(key) {
13583 if (!key.match(/^\d+$/)) {
13584 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13592 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13593 var name, str, desc;
13594 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13597 str = ctx.stylize('[Getter/Setter]', 'special');
13599 str = ctx.stylize('[Getter]', 'special');
13603 str = ctx.stylize('[Setter]', 'special');
13606 if (!hasOwnProperty(visibleKeys, key)) {
13607 name = '[' + key + ']';
13610 if (ctx.seen.indexOf(desc.value) <
0) {
13611 if (isNull(recurseTimes)) {
13612 str = formatValue(ctx, desc.value, null);
13614 str = formatValue(ctx, desc.value, recurseTimes -
1);
13616 if (str.indexOf('\n')
> -
1) {
13618 str = str.split('\n').map(function(line) {
13620 }).join('\n').substr(
2);
13622 str = '\n' + str.split('\n').map(function(line) {
13628 str = ctx.stylize('[Circular]', 'special');
13631 if (isUndefined(name)) {
13632 if (array && key.match(/^\d+$/)) {
13635 name = JSON.stringify('' + key);
13636 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13637 name = name.substr(
1, name.length -
2);
13638 name = ctx.stylize(name, 'name');
13640 name = name.replace(/'/g, "\\'")
13641 .replace(/\\"/g, '"')
13642 .replace(/(^"|"$)/g, "'");
13643 name = ctx.stylize(name, 'string');
13647 return name + ': ' + str;
13651 function reduceToSingleString(output, base, braces) {
13652 var numLinesEst =
0;
13653 var length = output.reduce(function(prev, cur) {
13655 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13656 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13661 (base === '' ? '' : base + '\n ') +
13663 output.join(',\n ') +
13668 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13672 // NOTE: These type checking functions intentionally don't use `instanceof`
13673 // because it is fragile and can be easily faked with `Object.create()`.
13674 function isArray(ar) {
13675 return Array.isArray(ar);
13677 exports.isArray = isArray;
13679 function isBoolean(arg) {
13680 return typeof arg === 'boolean';
13682 exports.isBoolean = isBoolean;
13684 function isNull(arg) {
13685 return arg === null;
13687 exports.isNull = isNull;
13689 function isNullOrUndefined(arg) {
13690 return arg == null;
13692 exports.isNullOrUndefined = isNullOrUndefined;
13694 function isNumber(arg) {
13695 return typeof arg === 'number';
13697 exports.isNumber = isNumber;
13699 function isString(arg) {
13700 return typeof arg === 'string';
13702 exports.isString = isString;
13704 function isSymbol(arg) {
13705 return typeof arg === 'symbol';
13707 exports.isSymbol = isSymbol;
13709 function isUndefined(arg) {
13710 return arg === void
0;
13712 exports.isUndefined = isUndefined;
13714 function isRegExp(re) {
13715 return isObject(re) && objectToString(re) === '[object RegExp]';
13717 exports.isRegExp = isRegExp;
13719 function isObject(arg) {
13720 return typeof arg === 'object' && arg !== null;
13722 exports.isObject = isObject;
13724 function isDate(d) {
13725 return isObject(d) && objectToString(d) === '[object Date]';
13727 exports.isDate = isDate;
13729 function isError(e) {
13730 return isObject(e) &&
13731 (objectToString(e) === '[object Error]' || e instanceof Error);
13733 exports.isError = isError;
13735 function isFunction(arg) {
13736 return typeof arg === 'function';
13738 exports.isFunction = isFunction;
13740 function isPrimitive(arg) {
13741 return arg === null ||
13742 typeof arg === 'boolean' ||
13743 typeof arg === 'number' ||
13744 typeof arg === 'string' ||
13745 typeof arg === 'symbol' || // ES6 symbol
13746 typeof arg === 'undefined';
13748 exports.isPrimitive = isPrimitive;
13750 exports.isBuffer = require('./support/isBuffer');
13752 function objectToString(o) {
13753 return Object.prototype.toString.call(o);
13758 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13762 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13763 'Oct', 'Nov', 'Dec'];
13766 function timestamp() {
13767 var d = new Date();
13768 var time = [pad(d.getHours()),
13769 pad(d.getMinutes()),
13770 pad(d.getSeconds())].join(':');
13771 return [d.getDate(), months[d.getMonth()], time].join(' ');
13775 // log is just a thin wrapper to console.log that prepends a timestamp
13776 exports.log = function() {
13777 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13782 * Inherit the prototype methods from one constructor into another.
13784 * The Function.prototype.inherits from lang.js rewritten as a standalone
13785 * function (not on Function.prototype). NOTE: If this file is to be loaded
13786 * during bootstrapping this function needs to be rewritten using some native
13787 * functions as prototype setup using normal JavaScript does not work as
13788 * expected during bootstrapping (see mirror.js in r114903).
13790 * @param {function} ctor Constructor function which needs to inherit the
13792 * @param {function} superCtor Constructor function to inherit prototype from.
13794 exports.inherits = require('inherits');
13796 exports._extend = function(origin, add) {
13797 // Don't do anything if add isn't an object
13798 if (!add || !isObject(add)) return origin;
13800 var keys = Object.keys(add);
13801 var i = keys.length;
13803 origin[keys[i]] = add[keys[i]];
13808 function hasOwnProperty(obj, prop) {
13809 return Object.prototype.hasOwnProperty.call(obj, prop);
13812 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13813 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13815 base58: require('bs58'),
13816 bitcoin: require('bitcoinjs-lib'),
13817 ecurve: require('ecurve'),
13818 BigInteger: require('bigi')
13821 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13823 // Forked from https://github.com/cryptocoinjs/bs58
13824 // Originally written by Mike Hearn for BitcoinJ
13825 // Copyright (c)
2011 Google Inc
13826 // Ported to JavaScript by Stefan Thomas
13827 // Merged Buffer refactorings from base58-native by Stephen Pair
13828 // Copyright (c)
2013 BitPay Inc
13830 var Buffer = require('safe-buffer').Buffer
13832 module.exports = function base (ALPHABET) {
13833 var ALPHABET_MAP = {}
13834 var BASE = ALPHABET.length
13835 var LEADER = ALPHABET.charAt(
0)
13837 // pre-compute lookup table
13838 for (var z =
0; z < ALPHABET.length; z++) {
13839 var x = ALPHABET.charAt(z)
13841 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13842 ALPHABET_MAP[x] = z
13845 function encode (source) {
13846 if (source.length ===
0) return ''
13849 for (var i =
0; i < source.length; ++i) {
13850 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13851 carry += digits[j] <<
8
13852 digits[j] = carry % BASE
13853 carry = (carry / BASE) |
0
13856 while (carry
> 0) {
13857 digits.push(carry % BASE)
13858 carry = (carry / BASE) |
0
13864 // deal with leading zeros
13865 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13866 // convert digits to a string
13867 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13872 function decodeUnsafe (string) {
13873 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13876 for (var i =
0; i < string.length; i++) {
13877 var value = ALPHABET_MAP[string[i]]
13878 if (value === undefined) return
13880 for (var j =
0, carry = value; j < bytes.length; ++j) {
13881 carry += bytes[j] * BASE
13882 bytes[j] = carry &
0xff
13886 while (carry
> 0) {
13887 bytes.push(carry &
0xff)
13892 // deal with leading zeros
13893 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13897 return Buffer.from(bytes.reverse())
13900 function decode (string) {
13901 var buffer = decodeUnsafe(string)
13902 if (buffer) return buffer
13904 throw new Error('Non-base' + BASE + ' character')
13909 decodeUnsafe: decodeUnsafe,
13914 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13915 // (public) Constructor
13916 function BigInteger(a, b, c) {
13917 if (!(this instanceof BigInteger))
13918 return new BigInteger(a, b, c)
13921 if ("number" == typeof a) this.fromNumber(a, b, c)
13922 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13923 else this.fromString(a, b)
13927 var proto = BigInteger.prototype
13929 // duck-typed isBigInteger
13930 proto.__bigi = require('../package.json').version
13931 BigInteger.isBigInteger = function (obj, check_ver) {
13932 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13938 // am: Compute w_j += (x*this_i), propagate carries,
13939 // c is initial carry, returns final carry.
13940 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13941 // We need to select the fastest one that works in this environment.
13943 // am1: use a single mult and divide to get the high bits,
13944 // max digit bits should be
26 because
13945 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13946 function am1(i, x, w, j, c, n) {
13948 var v = x * this[i++] + w[j] + c
13949 c = Math.floor(v /
0x4000000)
13950 w[j++] = v &
0x3ffffff
13954 // am2 avoids a big mult-and-extract completely.
13955 // Max digit bits should be <=
30 because we do bitwise ops
13956 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13957 function am2(i, x, w, j, c, n) {
13958 var xl = x &
0x7fff,
13961 var l = this[i] &
0x7fff
13962 var h = this[i++]
>> 15
13963 var m = xh * l + h * xl
13964 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13965 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13966 w[j++] = l &
0x3fffffff
13970 // Alternately, set max digit bits to
28 since some
13971 // browsers slow down when dealing with
32-bit numbers.
13972 function am3(i, x, w, j, c, n) {
13973 var xl = x &
0x3fff,
13976 var l = this[i] &
0x3fff
13977 var h = this[i++]
>> 14
13978 var m = xh * l + h * xl
13979 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13980 c = (l
>> 28) + (m
>> 14) + xh * h
13981 w[j++] = l &
0xfffffff
13987 BigInteger.prototype.am = am1
13990 BigInteger.prototype.DB = dbits
13991 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13992 var DV = BigInteger.prototype.DV = (
1 << dbits)
13995 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13996 BigInteger.prototype.F1 = BI_FP - dbits
13997 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13999 // Digit conversions
14000 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
14001 var BI_RC = new Array()
14003 rr =
"0".charCodeAt(
0)
14004 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
14005 rr =
"a".charCodeAt(
0)
14006 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
14007 rr =
"A".charCodeAt(
0)
14008 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
14010 function int2char(n) {
14011 return BI_RM.charAt(n)
14014 function intAt(s, i) {
14015 var c = BI_RC[s.charCodeAt(i)]
14016 return (c == null) ? -
1 : c
14019 // (protected) copy this to r
14020 function bnpCopyTo(r) {
14021 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
14026 // (protected) set from integer value x, -DV <= x < DV
14027 function bnpFromInt(x) {
14029 this.s = (x <
0) ? -
1 :
0
14030 if (x
> 0) this[
0] = x
14031 else if (x < -
1) this[
0] = x + DV
14035 // return bigint initialized to value
14037 var r = new BigInteger()
14042 // (protected) set from string and radix
14043 function bnpFromString(s, b) {
14048 else if (b ==
8) k =
3
14049 else if (b ==
256) k =
8; // byte array
14050 else if (b ==
2) k =
1
14051 else if (b ==
32) k =
5
14052 else if (b ==
4) k =
2
14054 self.fromRadix(s, b)
14063 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14065 if (s.charAt(i) == "-") mi = true
14071 else if (sh + k
> self.DB) {
14072 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14073 self[self.t++] = (x
>> (self.DB - sh))
14075 self[self.t -
1] |= x << sh
14077 if (sh
>= self.DB) sh -= self.DB
14079 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14081 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14084 if (mi) BigInteger.ZERO.subTo(self, self)
14087 // (protected) clamp off excess high words
14088 function bnpClamp() {
14089 var c = this.s & this.DM
14090 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14093 // (public) return string representation in given radix
14094 function bnToString(b) {
14096 if (self.s <
0) return
"-" + self.negate()
14100 else if (b ==
8) k =
3
14101 else if (b ==
2) k =
1
14102 else if (b ==
32) k =
5
14103 else if (b ==
4) k =
2
14104 else return self.toRadix(b)
14105 var km = (
1 << k) -
1,
14109 var p = self.DB - (i * self.DB) % k
14111 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14117 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14118 d |= self[--i]
>> (p += self.DB - k)
14120 d = (self[i]
>> (p -= k)) & km
14126 if (d
> 0) m = true
14127 if (m) r += int2char(d)
14134 function bnNegate() {
14135 var r = new BigInteger()
14136 BigInteger.ZERO.subTo(this, r)
14142 return (this.s <
0) ? this.negate() : this
14145 // (public) return + if this
> a, - if this < a,
0 if equal
14146 function bnCompareTo(a) {
14147 var r = this.s - a.s
14148 if (r !=
0) return r
14151 if (r !=
0) return (this.s <
0) ? -r : r
14153 if ((r = this[i] - a[i]) !=
0) return r
14157 // returns bit length of the integer x
14158 function nbits(x) {
14161 if ((t = x
>>> 16) !=
0) {
14165 if ((t = x
>> 8) !=
0) {
14169 if ((t = x
>> 4) !=
0) {
14173 if ((t = x
>> 2) !=
0) {
14177 if ((t = x
>> 1) !=
0) {
14184 // (public) return the number of bits in
"this"
14185 function bnBitLength() {
14186 if (this.t <=
0) return
0
14187 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14190 // (public) return the number of bytes in
"this"
14191 function bnByteLength() {
14192 return this.bitLength()
>> 3
14195 // (protected) r = this << n*DB
14196 function bnpDLShiftTo(n, r) {
14198 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14199 for (i = n -
1; i
>=
0; --i) r[i] =
0
14204 // (protected) r = this
>> n*DB
14205 function bnpDRShiftTo(n, r) {
14206 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14207 r.t = Math.max(this.t - n,
0)
14211 // (protected) r = this << n
14212 function bnpLShiftTo(n, r) {
14214 var bs = n % self.DB
14215 var cbs = self.DB - bs
14216 var bm = (
1 << cbs) -
1
14217 var ds = Math.floor(n / self.DB),
14218 c = (self.s << bs) & self.DM,
14220 for (i = self.t -
1; i
>=
0; --i) {
14221 r[i + ds +
1] = (self[i]
>> cbs) | c
14222 c = (self[i] & bm) << bs
14224 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14226 r.t = self.t + ds +
1
14231 // (protected) r = this
>> n
14232 function bnpRShiftTo(n, r) {
14235 var ds = Math.floor(n / self.DB)
14236 if (ds
>= self.t) {
14240 var bs = n % self.DB
14241 var cbs = self.DB - bs
14242 var bm = (
1 << bs) -
1
14243 r[
0] = self[ds]
>> bs
14244 for (var i = ds +
1; i < self.t; ++i) {
14245 r[i - ds -
1] |= (self[i] & bm) << cbs
14246 r[i - ds] = self[i]
>> bs
14248 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14253 // (protected) r = this - a
14254 function bnpSubTo(a, r) {
14258 m = Math.min(a.t, self.t)
14260 c += self[i] - a[i]
14261 r[i++] = c & self.DM
14264 if (a.t < self.t) {
14266 while (i < self.t) {
14268 r[i++] = c & self.DM
14276 r[i++] = c & self.DM
14281 r.s = (c <
0) ? -
1 :
0
14282 if (c < -
1) r[i++] = self.DV + c
14283 else if (c
> 0) r[i++] = c
14288 // (protected) r = this * a, r != this,a (HAC
14.12)
14289 //
"this" should be the larger one if appropriate.
14290 function bnpMultiplyTo(a, r) {
14291 var x = this.abs(),
14295 while (--i
>=
0) r[i] =
0
14296 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14299 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14302 // (protected) r = this^
2, r != this (HAC
14.16)
14303 function bnpSquareTo(r) {
14305 var i = r.t =
2 * x.t
14306 while (--i
>=
0) r[i] =
0
14307 for (i =
0; i < x.t -
1; ++i) {
14308 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14309 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14314 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14319 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14320 // r != q, this != m. q or r may be null.
14321 function bnpDivRemTo(m, q, r) {
14324 if (pm.t <=
0) return
14325 var pt = self.abs()
14327 if (q != null) q.fromInt(
0)
14328 if (r != null) self.copyTo(r)
14331 if (r == null) r = new BigInteger()
14332 var y = new BigInteger(),
14335 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14337 pm.lShiftTo(nsh, y)
14338 pt.lShiftTo(nsh, r)
14345 if (y0 ==
0) return
14346 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14347 var d1 = self.FV / yt,
14348 d2 = (
1 << self.F1) / yt,
14352 t = (q == null) ? new BigInteger() : q
14354 if (r.compareTo(t)
>=
0) {
14358 BigInteger.ONE.dlShiftTo(ys, t)
14359 t.subTo(y, y); // "negative" y so we can replace sub with am later
14360 while (y.t < ys) y[y.t++] =
0
14362 // Estimate quotient digit
14363 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14364 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14367 while (r[i] < --qd) r.subTo(t, r)
14372 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14376 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14377 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14380 // (public) this mod a
14381 function bnMod(a) {
14382 var r = new BigInteger()
14384 .divRemTo(a, null, r)
14385 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14389 // Modular reduction using
"classic" algorithm
14390 function Classic(m) {
14394 function cConvert(x) {
14395 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14399 function cRevert(x) {
14403 function cReduce(x) {
14404 x.divRemTo(this.m, null, x)
14407 function cMulTo(x, y, r) {
14412 function cSqrTo(x, r) {
14417 Classic.prototype.convert = cConvert
14418 Classic.prototype.revert = cRevert
14419 Classic.prototype.reduce = cReduce
14420 Classic.prototype.mulTo = cMulTo
14421 Classic.prototype.sqrTo = cSqrTo
14423 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14427 // xy(
2-xy) = (
1+km)(
1-km)
14428 // x[y(
2-xy)] =
1-k^
2m^
2
14429 // x[y(
2-xy)] ==
1 (mod m^
2)
14430 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14431 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14432 // JS multiply "overflows" differently from C/C++, so care is needed here.
14433 function bnpInvDigit() {
14434 if (this.t <
1) return
0
14436 if ((x &
1) ==
0) return
0
14437 var y = x &
3; // y ==
1/x mod
2^
2
14438 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14439 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14440 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14441 // last step - calculate inverse mod DV directly
14442 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14443 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14444 // we really want the negative inverse, and -DV < y < DV
14445 return (y
> 0) ? this.DV - y : -y
14448 // Montgomery reduction
14449 function Montgomery(m) {
14451 this.mp = m.invDigit()
14452 this.mpl = this.mp &
0x7fff
14453 this.mph = this.mp
>> 15
14454 this.um = (
1 << (m.DB -
15)) -
1
14459 function montConvert(x) {
14460 var r = new BigInteger()
14462 .dlShiftTo(this.m.t, r)
14463 r.divRemTo(this.m, null, r)
14464 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14469 function montRevert(x) {
14470 var r = new BigInteger()
14476 // x = x/R mod m (HAC
14.32)
14477 function montReduce(x) {
14478 while (x.t <= this.mt2) // pad x so am has enough room later
14480 for (var i =
0; i < this.m.t; ++i) {
14481 // faster way of calculating u0 = x[i]*mp mod DV
14482 var j = x[i] &
0x7fff
14483 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14484 // use am to combine the multiply-shift-add into one call
14486 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14488 while (x[j]
>= x.DV) {
14494 x.drShiftTo(this.m.t, x)
14495 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14498 // r = "x^
2/R mod m"; x != r
14499 function montSqrTo(x, r) {
14504 // r = "xy/R mod m"; x,y != r
14505 function montMulTo(x, y, r) {
14510 Montgomery.prototype.convert = montConvert
14511 Montgomery.prototype.revert = montRevert
14512 Montgomery.prototype.reduce = montReduce
14513 Montgomery.prototype.mulTo = montMulTo
14514 Montgomery.prototype.sqrTo = montSqrTo
14516 // (protected) true iff this is even
14517 function bnpIsEven() {
14518 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14521 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14522 function bnpExp(e, z) {
14523 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14524 var r = new BigInteger(),
14525 r2 = new BigInteger(),
14526 g = z.convert(this),
14531 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14541 // (public) this^e % m,
0 <= e <
2^
32
14542 function bnModPowInt(e, m) {
14544 if (e <
256 || m.isEven()) z = new Classic(m)
14545 else z = new Montgomery(m)
14546 return this.exp(e, z)
14550 proto.copyTo = bnpCopyTo
14551 proto.fromInt = bnpFromInt
14552 proto.fromString = bnpFromString
14553 proto.clamp = bnpClamp
14554 proto.dlShiftTo = bnpDLShiftTo
14555 proto.drShiftTo = bnpDRShiftTo
14556 proto.lShiftTo = bnpLShiftTo
14557 proto.rShiftTo = bnpRShiftTo
14558 proto.subTo = bnpSubTo
14559 proto.multiplyTo = bnpMultiplyTo
14560 proto.squareTo = bnpSquareTo
14561 proto.divRemTo = bnpDivRemTo
14562 proto.invDigit = bnpInvDigit
14563 proto.isEven = bnpIsEven
14567 proto.toString = bnToString
14568 proto.negate = bnNegate
14570 proto.compareTo = bnCompareTo
14571 proto.bitLength = bnBitLength
14572 proto.byteLength = bnByteLength
14574 proto.modPowInt = bnModPowInt
14577 function bnClone() {
14578 var r = new BigInteger()
14583 // (public) return value as integer
14584 function bnIntValue() {
14586 if (this.t ==
1) return this[
0] - this.DV
14587 else if (this.t ==
0) return -
1
14588 } else if (this.t ==
1) return this[
0]
14589 else if (this.t ==
0) return
0
14590 // assumes
16 < DB <
32
14591 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14594 // (public) return value as byte
14595 function bnByteValue() {
14596 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14599 // (public) return value as short (assumes DB
>=
16)
14600 function bnShortValue() {
14601 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14604 // (protected) return x s.t. r^x < DV
14605 function bnpChunkSize(r) {
14606 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14609 // (public)
0 if this ==
0,
1 if this
> 0
14610 function bnSigNum() {
14611 if (this.s <
0) return -
1
14612 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14616 // (protected) convert to radix string
14617 function bnpToRadix(b) {
14618 if (b == null) b =
10
14619 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14620 var cs = this.chunkSize(b)
14621 var a = Math.pow(b, cs)
14623 y = new BigInteger(),
14624 z = new BigInteger(),
14626 this.divRemTo(d, y, z)
14627 while (y.signum()
> 0) {
14628 r = (a + z.intValue())
14631 y.divRemTo(d, y, z)
14633 return z.intValue()
14637 // (protected) convert from radix string
14638 function bnpFromRadix(s, b) {
14641 if (b == null) b =
10
14642 var cs = self.chunkSize(b)
14643 var d = Math.pow(b, cs),
14647 for (var i =
0; i < s.length; ++i) {
14648 var x = intAt(s, i)
14650 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14656 self.dAddOffset(w,
0)
14662 self.dMultiply(Math.pow(b, j))
14663 self.dAddOffset(w,
0)
14665 if (mi) BigInteger.ZERO.subTo(self, self)
14668 // (protected) alternate constructor
14669 function bnpFromNumber(a, b, c) {
14671 if (
"number" == typeof b) {
14672 // new BigInteger(int,int,RNG)
14673 if (a <
2) self.fromInt(
1)
14675 self.fromNumber(a, c)
14676 if (!self.testBit(a -
1)) // force MSB set
14677 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14678 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14679 while (!self.isProbablePrime(b)) {
14680 self.dAddOffset(
2,
0)
14681 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14685 // new BigInteger(int,RNG)
14686 var x = new Array(),
14688 x.length = (a
>> 3) +
1
14690 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14692 self.fromString(x,
256)
14696 // (public) convert to bigendian byte array
14697 function bnToByteArray() {
14702 var p = self.DB - (i * self.DB) %
8,
14705 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14706 r[k++] = d | (self.s << (self.DB - p))
14709 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14710 d |= self[--i]
>> (p += self.DB -
8)
14712 d = (self[i]
>> (p -=
8)) &
0xff
14718 if ((d &
0x80) !=
0) d |= -
256
14719 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14720 if (k
> 0 || d != self.s) r[k++] = d
14726 function bnEquals(a) {
14727 return (this.compareTo(a) ==
0)
14730 function bnMin(a) {
14731 return (this.compareTo(a) <
0) ? this : a
14734 function bnMax(a) {
14735 return (this.compareTo(a)
> 0) ? this : a
14738 // (protected) r = this op a (bitwise)
14739 function bnpBitwiseTo(a, op, r) {
14741 var i, f, m = Math.min(a.t, self.t)
14742 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14743 if (a.t < self.t) {
14745 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14748 f = self.s & self.DM
14749 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14752 r.s = op(self.s, a.s)
14756 // (public) this & a
14757 function op_and(x, y) {
14761 function bnAnd(a) {
14762 var r = new BigInteger()
14763 this.bitwiseTo(a, op_and, r)
14767 // (public) this | a
14768 function op_or(x, y) {
14773 var r = new BigInteger()
14774 this.bitwiseTo(a, op_or, r)
14778 // (public) this ^ a
14779 function op_xor(x, y) {
14783 function bnXor(a) {
14784 var r = new BigInteger()
14785 this.bitwiseTo(a, op_xor, r)
14789 // (public) this & ~a
14790 function op_andnot(x, y) {
14794 function bnAndNot(a) {
14795 var r = new BigInteger()
14796 this.bitwiseTo(a, op_andnot, r)
14802 var r = new BigInteger()
14803 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14809 // (public) this << n
14810 function bnShiftLeft(n) {
14811 var r = new BigInteger()
14812 if (n <
0) this.rShiftTo(-n, r)
14813 else this.lShiftTo(n, r)
14817 // (public) this
>> n
14818 function bnShiftRight(n) {
14819 var r = new BigInteger()
14820 if (n <
0) this.lShiftTo(-n, r)
14821 else this.rShiftTo(n, r)
14825 // return index of lowest
1-bit in x, x <
2^
31
14827 if (x ==
0) return -
1
14829 if ((x &
0xffff) ==
0) {
14833 if ((x &
0xff) ==
0) {
14837 if ((x &
0xf) ==
0) {
14841 if ((x &
3) ==
0) {
14845 if ((x &
1) ==
0)++r
14849 // (public) returns index of lowest
1-bit (or -
1 if none)
14850 function bnGetLowestSetBit() {
14851 for (var i =
0; i < this.t; ++i)
14852 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14853 if (this.s <
0) return this.t * this.DB
14857 // return number of
1 bits in x
14867 // (public) return number of set bits
14868 function bnBitCount() {
14870 x = this.s & this.DM
14871 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14875 // (public) true iff nth bit is set
14876 function bnTestBit(n) {
14877 var j = Math.floor(n / this.DB)
14878 if (j
>= this.t) return (this.s !=
0)
14879 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14882 // (protected) this op (
1<
<n)
14883 function bnpChangeBit(n, op) {
14884 var r = BigInteger.ONE.shiftLeft(n)
14885 this.bitwiseTo(r, op, r)
14889 // (public) this | (
1<
<n)
14890 function bnSetBit(n) {
14891 return this.changeBit(n, op_or)
14894 // (public) this & ~(
1<
<n)
14895 function bnClearBit(n) {
14896 return this.changeBit(n, op_andnot)
14899 // (public) this ^ (
1<
<n)
14900 function bnFlipBit(n) {
14901 return this.changeBit(n, op_xor)
14904 // (protected) r = this + a
14905 function bnpAddTo(a, r) {
14910 m = Math.min(a.t, self.t)
14912 c += self[i] + a[i]
14913 r[i++] = c & self.DM
14916 if (a.t < self.t) {
14918 while (i < self.t) {
14920 r[i++] = c & self.DM
14928 r[i++] = c & self.DM
14933 r.s = (c <
0) ? -
1 :
0
14934 if (c
> 0) r[i++] = c
14935 else if (c < -
1) r[i++] = self.DV + c
14940 // (public) this + a
14941 function bnAdd(a) {
14942 var r = new BigInteger()
14947 // (public) this - a
14948 function bnSubtract(a) {
14949 var r = new BigInteger()
14954 // (public) this * a
14955 function bnMultiply(a) {
14956 var r = new BigInteger()
14957 this.multiplyTo(a, r)
14962 function bnSquare() {
14963 var r = new BigInteger()
14968 // (public) this / a
14969 function bnDivide(a) {
14970 var r = new BigInteger()
14971 this.divRemTo(a, r, null)
14975 // (public) this % a
14976 function bnRemainder(a) {
14977 var r = new BigInteger()
14978 this.divRemTo(a, null, r)
14982 // (public) [this/a,this%a]
14983 function bnDivideAndRemainder(a) {
14984 var q = new BigInteger(),
14985 r = new BigInteger()
14986 this.divRemTo(a, q, r)
14987 return new Array(q, r)
14990 // (protected) this *= n, this
>=
0,
1 < n < DV
14991 function bnpDMultiply(n) {
14992 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14997 // (protected) this += n << w words, this
>=
0
14998 function bnpDAddOffset(n, w) {
15000 while (this.t <= w) this[this.t++] =
0
15002 while (this[w]
>= this.DV) {
15004 if (++w
>= this.t) this[this.t++] =
0
15009 // A "null" reducer
15010 function NullExp() {}
15016 function nMulTo(x, y, r) {
15020 function nSqrTo(x, r) {
15024 NullExp.prototype.convert = nNop
15025 NullExp.prototype.revert = nNop
15026 NullExp.prototype.mulTo = nMulTo
15027 NullExp.prototype.sqrTo = nSqrTo
15030 function bnPow(e) {
15031 return this.exp(e, new NullExp())
15034 // (protected) r = lower n words of "this * a", a.t <= n
15035 // "this" should be the larger one if appropriate.
15036 function bnpMultiplyLowerTo(a, n, r) {
15037 var i = Math.min(this.t + a.t, n)
15038 r.s =
0; // assumes a,this
>=
0
15040 while (i
> 0) r[--i] =
0
15042 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15043 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15047 // (protected) r =
"this * a" without lower n words, n
> 0
15048 //
"this" should be the larger one if appropriate.
15049 function bnpMultiplyUpperTo(a, n, r) {
15051 var i = r.t = this.t + a.t - n
15052 r.s =
0; // assumes a,this
>=
0
15053 while (--i
>=
0) r[i] =
0
15054 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15055 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15060 // Barrett modular reduction
15061 function Barrett(m) {
15063 this.r2 = new BigInteger()
15064 this.q3 = new BigInteger()
15065 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15066 this.mu = this.r2.divide(m)
15070 function barrettConvert(x) {
15071 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15072 else if (x.compareTo(this.m) <
0) return x
15074 var r = new BigInteger()
15081 function barrettRevert(x) {
15085 // x = x mod m (HAC
14.42)
15086 function barrettReduce(x) {
15088 x.drShiftTo(self.m.t -
1, self.r2)
15089 if (x.t
> self.m.t +
1) {
15093 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15094 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15095 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15096 x.subTo(self.r2, x)
15097 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15100 // r = x^
2 mod m; x != r
15101 function barrettSqrTo(x, r) {
15106 // r = x*y mod m; x,y != r
15107 function barrettMulTo(x, y, r) {
15112 Barrett.prototype.convert = barrettConvert
15113 Barrett.prototype.revert = barrettRevert
15114 Barrett.prototype.reduce = barrettReduce
15115 Barrett.prototype.mulTo = barrettMulTo
15116 Barrett.prototype.sqrTo = barrettSqrTo
15118 // (public) this^e % m (HAC
14.85)
15119 function bnModPow(e, m) {
15120 var i = e.bitLength(),
15123 if (i <=
0) return r
15124 else if (i <
18) k =
1
15125 else if (i <
48) k =
3
15126 else if (i <
144) k =
4
15127 else if (i <
768) k =
5
15131 else if (m.isEven())
15134 z = new Montgomery(m)
15137 var g = new Array(),
15141 g[
1] = z.convert(this)
15143 var g2 = new BigInteger()
15146 g[n] = new BigInteger()
15147 z.mulTo(g2, g[n -
2], g[n])
15154 r2 = new BigInteger(),
15156 i = nbits(e[j]) -
1
15158 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15160 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15161 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15165 while ((w &
1) ==
0) {
15169 if ((i -= n) <
0) {
15173 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15182 if (n
> 0) z.sqrTo(r, r2)
15188 z.mulTo(r2, g[w], r)
15191 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15205 // (public) gcd(this,a) (HAC
14.54)
15206 function bnGCD(a) {
15207 var x = (this.s <
0) ? this.negate() : this.clone()
15208 var y = (a.s <
0) ? a.negate() : a.clone()
15209 if (x.compareTo(y) <
0) {
15214 var i = x.getLowestSetBit(),
15215 g = y.getLowestSetBit()
15216 if (g <
0) return x
15222 while (x.signum()
> 0) {
15223 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15224 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15225 if (x.compareTo(y)
>=
0) {
15233 if (g
> 0) y.lShiftTo(g, y)
15237 // (protected) this % n, n <
2^
26
15238 function bnpModInt(n) {
15239 if (n <=
0) return
0
15240 var d = this.DV % n,
15241 r = (this.s <
0) ? n -
1 :
0
15243 if (d ==
0) r = this[
0] % n
15245 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15249 // (public)
1/this % m (HAC
14.61)
15250 function bnModInverse(m) {
15251 var ac = m.isEven()
15252 if (this.signum() ===
0) throw new Error('division by zero')
15253 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15260 while (u.signum() !=
0) {
15261 while (u.isEven()) {
15264 if (!a.isEven() || !b.isEven()) {
15269 } else if (!b.isEven()) b.subTo(m, b)
15272 while (v.isEven()) {
15275 if (!c.isEven() || !d.isEven()) {
15280 } else if (!d.isEven()) d.subTo(m, d)
15283 if (u.compareTo(v)
>=
0) {
15285 if (ac) a.subTo(c, a)
15289 if (ac) c.subTo(a, c)
15293 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15294 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15295 while (d.signum() <
0) d.addTo(m, d)
15300 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15301 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15302 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15303 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15304 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15305 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15306 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15307 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15308 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15309 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15310 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15313 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15315 // (public) test primality with certainty
>=
1-
.5^t
15316 function bnIsProbablePrime(t) {
15317 var i, x = this.abs()
15318 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15319 for (i =
0; i < lowprimes.length; ++i)
15320 if (x[
0] == lowprimes[i]) return true
15323 if (x.isEven()) return false
15325 while (i < lowprimes.length) {
15326 var m = lowprimes[i],
15328 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15330 while (i < j) if (m % lowprimes[i++] ==
0) return false
15332 return x.millerRabin(t)
15335 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15336 function bnpMillerRabin(t) {
15337 var n1 = this.subtract(BigInteger.ONE)
15338 var k = n1.getLowestSetBit()
15339 if (k <=
0) return false
15340 var r = n1.shiftRight(k)
15342 if (t
> lowprimes.length) t = lowprimes.length
15343 var a = new BigInteger(null)
15345 for (var i =
0; i < t; ++i) {
15347 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15348 if (bases.indexOf(j) == -
1) break
15352 var y = a.modPow(r, this)
15353 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15355 while (j++ < k && y.compareTo(n1) !=
0) {
15356 y = y.modPowInt(
2, this)
15357 if (y.compareTo(BigInteger.ONE) ==
0) return false
15359 if (y.compareTo(n1) !=
0) return false
15366 proto.chunkSize = bnpChunkSize
15367 proto.toRadix = bnpToRadix
15368 proto.fromRadix = bnpFromRadix
15369 proto.fromNumber = bnpFromNumber
15370 proto.bitwiseTo = bnpBitwiseTo
15371 proto.changeBit = bnpChangeBit
15372 proto.addTo = bnpAddTo
15373 proto.dMultiply = bnpDMultiply
15374 proto.dAddOffset = bnpDAddOffset
15375 proto.multiplyLowerTo = bnpMultiplyLowerTo
15376 proto.multiplyUpperTo = bnpMultiplyUpperTo
15377 proto.modInt = bnpModInt
15378 proto.millerRabin = bnpMillerRabin
15381 proto.clone = bnClone
15382 proto.intValue = bnIntValue
15383 proto.byteValue = bnByteValue
15384 proto.shortValue = bnShortValue
15385 proto.signum = bnSigNum
15386 proto.toByteArray = bnToByteArray
15387 proto.equals = bnEquals
15393 proto.andNot = bnAndNot
15395 proto.shiftLeft = bnShiftLeft
15396 proto.shiftRight = bnShiftRight
15397 proto.getLowestSetBit = bnGetLowestSetBit
15398 proto.bitCount = bnBitCount
15399 proto.testBit = bnTestBit
15400 proto.setBit = bnSetBit
15401 proto.clearBit = bnClearBit
15402 proto.flipBit = bnFlipBit
15404 proto.subtract = bnSubtract
15405 proto.multiply = bnMultiply
15406 proto.divide = bnDivide
15407 proto.remainder = bnRemainder
15408 proto.divideAndRemainder = bnDivideAndRemainder
15409 proto.modPow = bnModPow
15410 proto.modInverse = bnModInverse
15413 proto.isProbablePrime = bnIsProbablePrime
15415 // JSBN-specific extension
15416 proto.square = bnSquare
15419 BigInteger.ZERO = nbv(
0)
15420 BigInteger.ONE = nbv(
1)
15421 BigInteger.valueOf = nbv
15423 module.exports = BigInteger
15425 },{"../package.json":
38}],
36:[function(require,module,exports){
15426 (function (Buffer){
15427 // FIXME: Kind of a weird way to throw exceptions, consider removing
15428 var assert = require('assert')
15429 var BigInteger = require('./bigi')
15432 * Turns a byte array into a big integer.
15434 * This function will interpret a byte array as a big integer in big
15437 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15438 // BigInteger expects a DER integer conformant byte array
15439 if (byteArray[
0] &
0x80) {
15440 return new BigInteger([
0].concat(byteArray))
15443 return new BigInteger(byteArray)
15447 * Returns a byte array representation of the big integer.
15449 * This returns the absolute of the contained value in big endian
15450 * form. A value of zero results in an empty array.
15452 BigInteger.prototype.toByteArrayUnsigned = function() {
15453 var byteArray = this.toByteArray()
15454 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15457 BigInteger.fromDERInteger = function(byteArray) {
15458 return new BigInteger(byteArray)
15462 * Converts BigInteger to a DER integer representation.
15464 * The format for this value uses the most significant bit as a sign
15465 * bit. If the most significant bit is already set and the integer is
15466 * positive, a
0x00 is prepended.
15481 *
62300 =
> 0x00f35c
15482 * -
62300 =
> 0xff0ca4
15484 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15486 BigInteger.fromBuffer = function(buffer) {
15487 // BigInteger expects a DER integer conformant byte array
15488 if (buffer[
0] &
0x80) {
15489 var byteArray = Array.prototype.slice.call(buffer)
15491 return new BigInteger([
0].concat(byteArray))
15494 return new BigInteger(buffer)
15497 BigInteger.fromHex = function(hex) {
15498 if (hex === '') return BigInteger.ZERO
15500 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15501 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15502 return new BigInteger(hex,
16)
15505 BigInteger.prototype.toBuffer = function(size) {
15506 var byteArray = this.toByteArrayUnsigned()
15509 var padding = size - byteArray.length
15510 while (zeros.length < padding) zeros.push(
0)
15512 return new Buffer(zeros.concat(byteArray))
15515 BigInteger.prototype.toHex = function(size) {
15516 return this.toBuffer(size).toString('hex')
15519 }).call(this,require(
"buffer").Buffer)
15520 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15521 var BigInteger = require('./bigi')
15524 require('./convert')
15526 module.exports = BigInteger
15527 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15532 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15535 "_from":
"bigi@latest",
15536 "_id":
"bigi@1.4.2",
15538 "_installable": true,
15539 "_location":
"/bigi",
15540 "_nodeVersion":
"6.1.0",
15541 "_npmOperationalInternal": {
15542 "host":
"packages-12-west.internal.npmjs.com",
15543 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15546 "email":
"jprichardson@gmail.com",
15547 "name":
"jprichardson"
15549 "_npmVersion":
"3.8.6",
15550 "_phantomChildren": {},
15564 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15565 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15566 "_shrinkwrap": null,
15568 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15570 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15572 "dependencies": {},
15573 "description":
"Big integers.",
15574 "devDependencies": {
15575 "coveralls":
"^2.11.2",
15576 "istanbul":
"^0.3.5",
15577 "jshint":
"^2.5.1",
15579 "mochify":
"^2.1.0"
15583 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15584 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15586 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15587 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15605 "main":
"./lib/index.js",
15608 "email":
"boydb@midnightdesign.ws",
15609 "name":
"midnightlightning"
15612 "email":
"sidazhang89@gmail.com",
15613 "name":
"sidazhang"
15616 "email":
"npm@shesek.info",
15620 "email":
"jprichardson@gmail.com",
15621 "name":
"jprichardson"
15625 "optionalDependencies": {},
15626 "readme":
"ERROR: No README data found!",
15629 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15632 "browser-test":
"mochify --wd -R spec",
15633 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15634 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15635 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15636 "test":
"_mocha -- test/*.js",
15644 "safari/6.0..latest",
15645 "iphone/6.0..latest",
15646 "android-browser/4.2..latest"
15648 "files":
"test/*.js",
15654 },{}],
39:[function(require,module,exports){
15655 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15656 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15657 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15659 var Buffer = require('safe-buffer').Buffer
15661 function check (buffer) {
15662 if (buffer.length <
8) return false
15663 if (buffer.length
> 72) return false
15664 if (buffer[
0] !==
0x30) return false
15665 if (buffer[
1] !== buffer.length -
2) return false
15666 if (buffer[
2] !==
0x02) return false
15668 var lenR = buffer[
3]
15669 if (lenR ===
0) return false
15670 if (
5 + lenR
>= buffer.length) return false
15671 if (buffer[
4 + lenR] !==
0x02) return false
15673 var lenS = buffer[
5 + lenR]
15674 if (lenS ===
0) return false
15675 if ((
6 + lenR + lenS) !== buffer.length) return false
15677 if (buffer[
4] &
0x80) return false
15678 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15680 if (buffer[lenR +
6] &
0x80) return false
15681 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15685 function decode (buffer) {
15686 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15687 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15688 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15689 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15690 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15692 var lenR = buffer[
3]
15693 if (lenR ===
0) throw new Error('R length is zero')
15694 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15695 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15697 var lenS = buffer[
5 + lenR]
15698 if (lenS ===
0) throw new Error('S length is zero')
15699 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15701 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15702 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15704 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15705 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15707 // non-BIP66 - extract R, S values
15709 r: buffer.slice(
4,
4 + lenR),
15710 s: buffer.slice(
6 + lenR)
15715 * Expects r and s to be positive DER integers.
15717 * The DER format uses the most significant bit as a sign bit (&
0x80).
15718 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15733 *
62300 =
> 0x00f35c
15734 * -
62300 =
> 0xff0ca4
15736 function encode (r, s) {
15737 var lenR = r.length
15738 var lenS = s.length
15739 if (lenR ===
0) throw new Error('R length is zero')
15740 if (lenS ===
0) throw new Error('S length is zero')
15741 if (lenR
> 33) throw new Error('R length is too long')
15742 if (lenS
> 33) throw new Error('S length is too long')
15743 if (r[
0] &
0x80) throw new Error('R value is negative')
15744 if (s[
0] &
0x80) throw new Error('S value is negative')
15745 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15746 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15748 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15750 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15751 signature[
0] =
0x30
15752 signature[
1] = signature.length -
2
15753 signature[
2] =
0x02
15754 signature[
3] = r.length
15755 r.copy(signature,
4)
15756 signature[
4 + lenR] =
0x02
15757 signature[
5 + lenR] = s.length
15758 s.copy(signature,
6 + lenR)
15769 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15773 "OP_PUSHDATA1":
76,
15774 "OP_PUSHDATA2":
77,
15775 "OP_PUSHDATA4":
78,
15801 "OP_VERNOTIF":
102,
15807 "OP_TOALTSTACK":
107,
15808 "OP_FROMALTSTACK":
108,
15838 "OP_EQUALVERIFY":
136,
15839 "OP_RESERVED1":
137,
15840 "OP_RESERVED2":
138,
15849 "OP_0NOTEQUAL":
146,
15860 "OP_NUMEQUAL":
156,
15861 "OP_NUMEQUALVERIFY":
157,
15862 "OP_NUMNOTEQUAL":
158,
15863 "OP_LESSTHAN":
159,
15864 "OP_GREATERTHAN":
160,
15865 "OP_LESSTHANOREQUAL":
161,
15866 "OP_GREATERTHANOREQUAL":
162,
15872 "OP_RIPEMD160":
166,
15877 "OP_CODESEPARATOR":
171,
15878 "OP_CHECKSIG":
172,
15879 "OP_CHECKSIGVERIFY":
173,
15880 "OP_CHECKMULTISIG":
174,
15881 "OP_CHECKMULTISIGVERIFY":
175,
15885 "OP_CHECKLOCKTIMEVERIFY":
177,
15896 "OP_PUBKEYHASH":
253,
15898 "OP_INVALIDOPCODE":
255
15901 },{}],
41:[function(require,module,exports){
15902 var OPS = require('./index.json')
15905 for (var op in OPS) {
15910 module.exports = map
15912 },{
"./index.json":
40}],
42:[function(require,module,exports){
15913 var Buffer = require('safe-buffer').Buffer
15914 var bs58check = require('bs58check')
15915 var bscript = require('./script')
15916 var networks = require('./networks')
15917 var typeforce = require('typeforce')
15918 var types = require('./types')
15920 function fromBase58Check (address) {
15921 var payload = bs58check.decode(address)
15922 if (payload.length <
21) throw new TypeError(address + ' is too short')
15923 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15925 var version = payload.readUInt8(
0)
15926 var hash = payload.slice(
1)
15928 return { hash: hash, version: version }
15931 function toBase58Check (hash, version) {
15932 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15934 var payload = Buffer.allocUnsafe(
21)
15935 payload.writeUInt8(version,
0)
15936 hash.copy(payload,
1)
15938 return bs58check.encode(payload)
15941 function fromOutputScript (outputScript, network) {
15942 network = network || networks.bitcoin
15944 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15945 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15947 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15950 function toOutputScript (address, network) {
15951 network = network || networks.bitcoin
15953 var decode = fromBase58Check(address)
15954 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15955 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15957 throw new Error(address + ' has no matching Script')
15961 fromBase58Check: fromBase58Check,
15962 fromOutputScript: fromOutputScript,
15963 toBase58Check: toBase58Check,
15964 toOutputScript: toOutputScript
15967 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15968 var Buffer = require('safe-buffer').Buffer
15969 var bcrypto = require('./crypto')
15970 var fastMerkleRoot = require('merkle-lib/fastRoot')
15971 var typeforce = require('typeforce')
15972 var types = require('./types')
15973 var varuint = require('varuint-bitcoin')
15975 var Transaction = require('./transaction')
15977 function Block () {
15979 this.prevHash = null
15980 this.merkleRoot = null
15986 Block.fromBuffer = function (buffer) {
15987 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15990 function readSlice (n) {
15992 return buffer.slice(offset - n, offset)
15995 function readUInt32 () {
15996 var i = buffer.readUInt32LE(offset)
16001 function readInt32 () {
16002 var i = buffer.readInt32LE(offset)
16007 var block = new Block()
16008 block.version = readInt32()
16009 block.prevHash = readSlice(
32)
16010 block.merkleRoot = readSlice(
32)
16011 block.timestamp = readUInt32()
16012 block.bits = readUInt32()
16013 block.nonce = readUInt32()
16015 if (buffer.length ===
80) return block
16017 function readVarInt () {
16018 var vi = varuint.decode(buffer, offset)
16019 offset += varuint.decode.bytes
16023 function readTransaction () {
16024 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16025 offset += tx.byteLength()
16029 var nTransactions = readVarInt()
16030 block.transactions = []
16032 for (var i =
0; i < nTransactions; ++i) {
16033 var tx = readTransaction()
16034 block.transactions.push(tx)
16040 Block.prototype.byteLength = function (headersOnly) {
16041 if (headersOnly || !this.transactions) return
80
16043 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16044 return a + x.byteLength()
16048 Block.fromHex = function (hex) {
16049 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16052 Block.prototype.getHash = function () {
16053 return bcrypto.hash256(this.toBuffer(true))
16056 Block.prototype.getId = function () {
16057 return this.getHash().reverse().toString('hex')
16060 Block.prototype.getUTCDate = function () {
16061 var date = new Date(
0) // epoch
16062 date.setUTCSeconds(this.timestamp)
16067 // TODO: buffer, offset compatibility
16068 Block.prototype.toBuffer = function (headersOnly) {
16069 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16072 function writeSlice (slice) {
16073 slice.copy(buffer, offset)
16074 offset += slice.length
16077 function writeInt32 (i) {
16078 buffer.writeInt32LE(i, offset)
16081 function writeUInt32 (i) {
16082 buffer.writeUInt32LE(i, offset)
16086 writeInt32(this.version)
16087 writeSlice(this.prevHash)
16088 writeSlice(this.merkleRoot)
16089 writeUInt32(this.timestamp)
16090 writeUInt32(this.bits)
16091 writeUInt32(this.nonce)
16093 if (headersOnly || !this.transactions) return buffer
16095 varuint.encode(this.transactions.length, buffer, offset)
16096 offset += varuint.encode.bytes
16098 this.transactions.forEach(function (tx) {
16099 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16100 tx.toBuffer(buffer, offset)
16107 Block.prototype.toHex = function (headersOnly) {
16108 return this.toBuffer(headersOnly).toString('hex')
16111 Block.calculateTarget = function (bits) {
16112 var exponent = ((bits &
0xff000000)
>> 24) -
3
16113 var mantissa = bits &
0x007fffff
16114 var target = Buffer.alloc(
32,
0)
16115 target.writeUInt32BE(mantissa,
28 - exponent)
16119 Block.calculateMerkleRoot = function (transactions) {
16120 typeforce([{ getHash: types.Function }], transactions)
16121 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16123 var hashes = transactions.map(function (transaction) {
16124 return transaction.getHash()
16127 return fastMerkleRoot(hashes, bcrypto.hash256)
16130 Block.prototype.checkMerkleRoot = function () {
16131 if (!this.transactions) return false
16133 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16134 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16137 Block.prototype.checkProofOfWork = function () {
16138 var hash = this.getHash().reverse()
16139 var target = Block.calculateTarget(this.bits)
16141 return hash.compare(target) <=
0
16144 module.exports = Block
16146 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16147 var pushdata = require('pushdata-bitcoin')
16148 var varuint = require('varuint-bitcoin')
16150 // https://github.com/feross/buffer/blob/master/index.js#L1127
16151 function verifuint (value, max) {
16152 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16153 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16154 if (value
> max) throw new Error('RangeError: value out of range')
16155 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16158 function readUInt64LE (buffer, offset) {
16159 var a = buffer.readUInt32LE(offset)
16160 var b = buffer.readUInt32LE(offset +
4)
16163 verifuint(b + a,
0x001fffffffffffff)
16168 function writeUInt64LE (buffer, value, offset) {
16169 verifuint(value,
0x001fffffffffffff)
16171 buffer.writeInt32LE(value & -
1, offset)
16172 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16176 // TODO: remove in
4.0.0?
16177 function readVarInt (buffer, offset) {
16178 var result = varuint.decode(buffer, offset)
16182 size: varuint.decode.bytes
16186 // TODO: remove in
4.0.0?
16187 function writeVarInt (buffer, number, offset) {
16188 varuint.encode(number, buffer, offset)
16189 return varuint.encode.bytes
16193 pushDataSize: pushdata.encodingLength,
16194 readPushDataInt: pushdata.decode,
16195 readUInt64LE: readUInt64LE,
16196 readVarInt: readVarInt,
16197 varIntBuffer: varuint.encode,
16198 varIntSize: varuint.encodingLength,
16199 writePushDataInt: pushdata.encode,
16200 writeUInt64LE: writeUInt64LE,
16201 writeVarInt: writeVarInt
16204 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16205 var createHash = require('create-hash')
16207 function ripemd160 (buffer) {
16208 return createHash('rmd160').update(buffer).digest()
16211 function sha1 (buffer) {
16212 return createHash('sha1').update(buffer).digest()
16215 function sha256 (buffer) {
16216 return createHash('sha256').update(buffer).digest()
16219 function hash160 (buffer) {
16220 return ripemd160(sha256(buffer))
16223 function hash256 (buffer) {
16224 return sha256(sha256(buffer))
16230 ripemd160: ripemd160,
16235 },{"create-hash":
82}],
46:[function(require,module,exports){
16236 var Buffer = require('safe-buffer').Buffer
16237 var createHmac = require('create-hmac')
16238 var typeforce = require('typeforce')
16239 var types = require('./types')
16241 var BigInteger = require('bigi')
16242 var ECSignature = require('./ecsignature')
16244 var ZERO = Buffer.alloc(
1,
0)
16245 var ONE = Buffer.alloc(
1,
1)
16247 var ecurve = require('ecurve')
16248 var secp256k1 = ecurve.getCurveByName('secp256k1')
16250 // https://tools.ietf.org/html/rfc6979#section-
3.2
16251 function deterministicGenerateK (hash, x, checkSig) {
16252 typeforce(types.tuple(
16254 types.Buffer256bit,
16258 // Step A, ignored as hash already provided
16261 var k = Buffer.alloc(
32,
0)
16262 var v = Buffer.alloc(
32,
1)
16265 k = createHmac('sha256', k)
16273 v = createHmac('sha256', k).update(v).digest()
16276 k = createHmac('sha256', k)
16284 v = createHmac('sha256', k).update(v).digest()
16286 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16288 v = createHmac('sha256', k).update(v).digest()
16290 var T = BigInteger.fromBuffer(v)
16292 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16293 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16294 k = createHmac('sha256', k)
16299 v = createHmac('sha256', k).update(v).digest()
16301 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16303 v = createHmac('sha256', k).update(v).digest()
16304 T = BigInteger.fromBuffer(v)
16310 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16312 function sign (hash, d) {
16313 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16315 var x = d.toBuffer(
32)
16316 var e = BigInteger.fromBuffer(hash)
16317 var n = secp256k1.n
16318 var G = secp256k1.G
16321 deterministicGenerateK(hash, x, function (k) {
16322 var Q = G.multiply(k)
16324 if (secp256k1.isInfinity(Q)) return false
16326 r = Q.affineX.mod(n)
16327 if (r.signum() ===
0) return false
16329 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16330 if (s.signum() ===
0) return false
16335 // enforce low S values, see bip62: 'low s values in signatures'
16336 if (s.compareTo(N_OVER_TWO)
> 0) {
16340 return new ECSignature(r, s)
16343 function verify (hash, signature, Q) {
16344 typeforce(types.tuple(
16350 var n = secp256k1.n
16351 var G = secp256k1.G
16353 var r = signature.r
16354 var s = signature.s
16356 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16357 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16358 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16360 //
1.4.2 H = Hash(M), already done by the user
16362 var e = BigInteger.fromBuffer(hash)
16365 var sInv = s.modInverse(n)
16367 //
1.4.4 Compute u1 = es^−
1 mod n
16368 // u2 = rs^−
1 mod n
16369 var u1 = e.multiply(sInv).mod(n)
16370 var u2 = r.multiply(sInv).mod(n)
16372 //
1.4.5 Compute R = (xR, yR)
16374 var R = G.multiplyTwo(u1, Q, u2)
16376 //
1.4.5 (cont.) Enforce R is not at infinity
16377 if (secp256k1.isInfinity(R)) return false
16379 //
1.4.6 Convert the field element R.x to an integer
16382 //
1.4.7 Set v = xR mod n
16385 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16390 deterministicGenerateK: deterministicGenerateK,
16398 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16399 var baddress = require('./address')
16400 var bcrypto = require('./crypto')
16401 var ecdsa = require('./ecdsa')
16402 var randomBytes = require('randombytes')
16403 var typeforce = require('typeforce')
16404 var types = require('./types')
16405 var wif = require('wif')
16407 var NETWORKS = require('./networks')
16408 var BigInteger = require('bigi')
16410 var ecurve = require('ecurve')
16411 var secp256k1 = ecdsa.__curve
16413 function ECPair (d, Q, options) {
16416 compressed: types.maybe(types.Boolean),
16417 network: types.maybe(types.Network)
16421 options = options || {}
16424 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16425 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16426 if (Q) throw new TypeError('Unexpected publicKey parameter')
16430 typeforce(types.ECPoint, Q)
16435 this.compressed = options.compressed === undefined ? true : options.compressed
16436 this.network = options.network || NETWORKS.bitcoin
16439 Object.defineProperty(ECPair.prototype, 'Q', {
16441 if (!this.__Q && this.d) {
16442 this.__Q = secp256k1.G.multiply(this.d)
16449 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16450 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16452 return new ECPair(null, Q, {
16453 compressed: Q.compressed,
16458 ECPair.fromWIF = function (string, network) {
16459 var decoded = wif.decode(string)
16460 var version = decoded.version
16462 // list of networks?
16463 if (types.Array(network)) {
16464 network = network.filter(function (x) {
16465 return version === x.wif
16468 if (!network) throw new Error('Unknown network version')
16470 // otherwise, assume a network object (or default to bitcoin)
16472 network = network || NETWORKS.bitcoin
16474 if (version !== network.wif) throw new Error('Invalid network version')
16477 var d = BigInteger.fromBuffer(decoded.privateKey)
16479 return new ECPair(d, null, {
16480 compressed: decoded.compressed,
16485 ECPair.makeRandom = function (options) {
16486 options = options || {}
16488 var rng = options.rng || randomBytes
16492 var buffer = rng(
32)
16493 typeforce(types.Buffer256bit, buffer)
16495 d = BigInteger.fromBuffer(buffer)
16496 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16498 return new ECPair(d, null, options)
16501 ECPair.prototype.getAddress = function () {
16502 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16505 ECPair.prototype.getNetwork = function () {
16506 return this.network
16509 ECPair.prototype.getPublicKeyBuffer = function () {
16510 return this.Q.getEncoded(this.compressed)
16513 ECPair.prototype.sign = function (hash) {
16514 if (!this.d) throw new Error('Missing private key')
16516 return ecdsa.sign(hash, this.d)
16519 ECPair.prototype.toWIF = function () {
16520 if (!this.d) throw new Error('Missing private key')
16522 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16525 ECPair.prototype.verify = function (hash, signature) {
16526 return ecdsa.verify(hash, signature, this.Q)
16529 module.exports = ECPair
16531 },{"./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){
16532 (function (Buffer){
16533 var bip66 = require('bip66')
16534 var typeforce = require('typeforce')
16535 var types = require('./types')
16537 var BigInteger = require('bigi')
16539 function ECSignature (r, s) {
16540 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16546 ECSignature.parseCompact = function (buffer) {
16547 if (buffer.length !==
65) throw new Error('Invalid signature length')
16549 var flagByte = buffer.readUInt8(
0) -
27
16550 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16552 var compressed = !!(flagByte &
4)
16553 var recoveryParam = flagByte &
3
16555 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16556 var s = BigInteger.fromBuffer(buffer.slice(
33))
16559 compressed: compressed,
16561 signature: new ECSignature(r, s)
16565 ECSignature.fromDER = function (buffer) {
16566 var decode = bip66.decode(buffer)
16567 var r = BigInteger.fromDERInteger(decode.r)
16568 var s = BigInteger.fromDERInteger(decode.s)
16570 return new ECSignature(r, s)
16573 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16574 ECSignature.parseScriptSignature = function (buffer) {
16575 var hashType = buffer.readUInt8(buffer.length -
1)
16576 var hashTypeMod = hashType & ~
0x80
16578 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16581 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16586 ECSignature.prototype.toCompact = function (i, compressed) {
16593 var buffer = Buffer.alloc(
65)
16594 buffer.writeUInt8(i,
0)
16595 this.r.toBuffer(
32).copy(buffer,
1)
16596 this.s.toBuffer(
32).copy(buffer,
33)
16601 ECSignature.prototype.toDER = function () {
16602 var r = Buffer.from(this.r.toDERInteger())
16603 var s = Buffer.from(this.s.toDERInteger())
16605 return bip66.encode(r, s)
16608 ECSignature.prototype.toScriptSignature = function (hashType) {
16609 var hashTypeMod = hashType & ~
0x80
16610 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16612 var hashTypeBuffer = Buffer.alloc(
1)
16613 hashTypeBuffer.writeUInt8(hashType,
0)
16615 return Buffer.concat([this.toDER(), hashTypeBuffer])
16618 module.exports = ECSignature
16620 }).call(this,require("buffer").Buffer)
16621 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16622 var Buffer = require('safe-buffer').Buffer
16623 var base58check = require('bs58check')
16624 var bcrypto = require('./crypto')
16625 var createHmac = require('create-hmac')
16626 var typeforce = require('typeforce')
16627 var types = require('./types')
16628 var NETWORKS = require('./networks')
16630 var BigInteger = require('bigi')
16631 var ECPair = require('./ecpair')
16633 var ecurve = require('ecurve')
16634 var curve = ecurve.getCurveByName('secp256k1')
16636 function HDNode (keyPair, chainCode) {
16637 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16639 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16641 this.keyPair = keyPair
16642 this.chainCode = chainCode
16645 this.parentFingerprint =
0x00000000
16648 HDNode.HIGHEST_BIT =
0x80000000
16650 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16652 HDNode.fromSeedBuffer = function (seed, network) {
16653 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16655 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16656 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16658 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16659 var IL = I.slice(
0,
32)
16660 var IR = I.slice(
32)
16662 // In case IL is
0 or
>= n, the master key is invalid
16663 // This is handled by the ECPair constructor
16664 var pIL = BigInteger.fromBuffer(IL)
16665 var keyPair = new ECPair(pIL, null, {
16669 return new HDNode(keyPair, IR)
16672 HDNode.fromSeedHex = function (hex, network) {
16673 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16676 HDNode.fromBase58 = function (string, networks) {
16677 var buffer = base58check.decode(string)
16678 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16680 //
4 bytes: version bytes
16681 var version = buffer.readUInt32BE(
0)
16684 // list of networks?
16685 if (Array.isArray(networks)) {
16686 network = networks.filter(function (x) {
16687 return version === x.bip32.private ||
16688 version === x.bip32.public
16691 if (!network) throw new Error('Unknown network version')
16693 // otherwise, assume a network object (or default to bitcoin)
16695 network = networks || NETWORKS.bitcoin
16698 if (version !== network.bip32.private &&
16699 version !== network.bip32.public) throw new Error('Invalid network version')
16701 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16702 var depth = buffer[
4]
16704 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16705 var parentFingerprint = buffer.readUInt32BE(
5)
16707 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16710 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16711 // This is encoded in MSB order. (
0x00000000 if master key)
16712 var index = buffer.readUInt32BE(
9)
16713 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16715 //
32 bytes: the chain code
16716 var chainCode = buffer.slice(
13,
45)
16719 //
33 bytes: private key data (
0x00 + k)
16720 if (version === network.bip32.private) {
16721 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16723 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16724 keyPair = new ECPair(d, null, { network: network })
16726 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16728 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16729 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16731 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16732 // If not, the extended public key is invalid.
16735 keyPair = new ECPair(null, Q, { network: network })
16738 var hd = new HDNode(keyPair, chainCode)
16741 hd.parentFingerprint = parentFingerprint
16746 HDNode.prototype.getAddress = function () {
16747 return this.keyPair.getAddress()
16750 HDNode.prototype.getIdentifier = function () {
16751 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16754 HDNode.prototype.getFingerprint = function () {
16755 return this.getIdentifier().slice(
0,
4)
16758 HDNode.prototype.getNetwork = function () {
16759 return this.keyPair.getNetwork()
16762 HDNode.prototype.getPublicKeyBuffer = function () {
16763 return this.keyPair.getPublicKeyBuffer()
16766 HDNode.prototype.neutered = function () {
16767 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16768 network: this.keyPair.network
16771 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16772 neutered.depth = this.depth
16773 neutered.index = this.index
16774 neutered.parentFingerprint = this.parentFingerprint
16779 HDNode.prototype.sign = function (hash) {
16780 return this.keyPair.sign(hash)
16783 HDNode.prototype.verify = function (hash, signature) {
16784 return this.keyPair.verify(hash, signature)
16787 HDNode.prototype.toBase58 = function (__isPrivate) {
16788 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16791 var network = this.keyPair.network
16792 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16793 var buffer = Buffer.allocUnsafe(
78)
16795 //
4 bytes: version bytes
16796 buffer.writeUInt32BE(version,
0)
16798 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16799 buffer.writeUInt8(this.depth,
4)
16801 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16802 buffer.writeUInt32BE(this.parentFingerprint,
5)
16804 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16805 // This is encoded in big endian. (
0x00000000 if master key)
16806 buffer.writeUInt32BE(this.index,
9)
16808 //
32 bytes: the chain code
16809 this.chainCode.copy(buffer,
13)
16811 //
33 bytes: the public key or private key data
16812 if (!this.isNeutered()) {
16813 //
0x00 + k for private keys
16814 buffer.writeUInt8(
0,
45)
16815 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16817 //
33 bytes: the public key
16819 // X9.62 encoding for public keys
16820 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16823 return base58check.encode(buffer)
16826 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16827 HDNode.prototype.derive = function (index) {
16828 typeforce(types.UInt32, index)
16830 var isHardened = index
>= HDNode.HIGHEST_BIT
16831 var data = Buffer.allocUnsafe(
37)
16835 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16837 // data =
0x00 || ser256(kpar) || ser32(index)
16839 this.keyPair.d.toBuffer(
32).copy(data,
1)
16840 data.writeUInt32BE(index,
33)
16844 // data = serP(point(kpar)) || ser32(index)
16845 // = serP(Kpar) || ser32(index)
16846 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16847 data.writeUInt32BE(index,
33)
16850 var I = createHmac('sha512', this.chainCode).update(data).digest()
16851 var IL = I.slice(
0,
32)
16852 var IR = I.slice(
32)
16854 var pIL = BigInteger.fromBuffer(IL)
16856 // In case parse256(IL)
>= n, proceed with the next value for i
16857 if (pIL.compareTo(curve.n)
>=
0) {
16858 return this.derive(index +
1)
16861 // Private parent key -
> private child key
16863 if (!this.isNeutered()) {
16864 // ki = parse256(IL) + kpar (mod n)
16865 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16867 // In case ki ==
0, proceed with the next value for i
16868 if (ki.signum() ===
0) {
16869 return this.derive(index +
1)
16872 derivedKeyPair = new ECPair(ki, null, {
16873 network: this.keyPair.network
16876 // Public parent key -
> public child key
16878 // Ki = point(parse256(IL)) + Kpar
16880 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16882 // In case Ki is the point at infinity, proceed with the next value for i
16883 if (curve.isInfinity(Ki)) {
16884 return this.derive(index +
1)
16887 derivedKeyPair = new ECPair(null, Ki, {
16888 network: this.keyPair.network
16892 var hd = new HDNode(derivedKeyPair, IR)
16893 hd.depth = this.depth +
1
16895 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16900 HDNode.prototype.deriveHardened = function (index) {
16901 typeforce(types.UInt31, index)
16903 // Only derives hardened private keys by default
16904 return this.derive(index + HDNode.HIGHEST_BIT)
16907 // Private === not neutered
16908 // Public === neutered
16909 HDNode.prototype.isNeutered = function () {
16910 return !(this.keyPair.d)
16913 HDNode.prototype.derivePath = function (path) {
16914 typeforce(types.BIP32Path, path)
16916 var splitPath = path.split('/')
16917 if (splitPath[
0] === 'm') {
16918 if (this.parentFingerprint) {
16919 throw new Error('Not a master node')
16922 splitPath = splitPath.slice(
1)
16925 return splitPath.reduce(function (prevHd, indexStr) {
16927 if (indexStr.slice(-
1) === "'") {
16928 index = parseInt(indexStr.slice(
0, -
1),
10)
16929 return prevHd.deriveHardened(index)
16931 index = parseInt(indexStr,
10)
16932 return prevHd.derive(index)
16937 module.exports = HDNode
16939 },{"./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){
16941 Block: require('./block'),
16942 ECPair: require('./ecpair'),
16943 ECSignature: require('./ecsignature'),
16944 HDNode: require('./hdnode'),
16945 Transaction: require('./transaction'),
16946 TransactionBuilder: require('./transaction_builder'),
16948 address: require('./address'),
16949 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16950 crypto: require('./crypto'),
16951 networks: require('./networks'),
16952 opcodes: require('bitcoin-ops'),
16953 script: require('./script')
16956 },{"./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){
16957 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16958 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16962 messagePrefix: '\x18Bitcoin Signed Message:\n',
16964 public:
0x0488b21e,
16965 private:
0x0488ade4
16972 messagePrefix: '\x18Bitcoin Signed Message:\n',
16974 public:
0x043587cf,
16975 private:
0x04358394
16982 messagePrefix: '\x19Litecoin Signed Message:\n',
16984 public:
0x0488b21e,
16985 private:
0x0488ade4,
16992 messagePrefix: '\x19Litecoin Signed Message:\n',
16994 public:
0x019da462,
16995 private:
0x019d9cfe
17003 },{}],
52:[function(require,module,exports){
17004 var Buffer = require('safe-buffer').Buffer
17005 var bip66 = require('bip66')
17006 var pushdata = require('pushdata-bitcoin')
17007 var typeforce = require('typeforce')
17008 var types = require('./types')
17009 var scriptNumber = require('./script_number')
17011 var OPS = require('bitcoin-ops')
17012 var REVERSE_OPS = require('bitcoin-ops/map')
17013 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17015 function isOPInt (value) {
17016 return types.Number(value) &&
17017 ((value === OPS.OP_0) ||
17018 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
17019 (value === OPS.OP_1NEGATE))
17022 function isPushOnlyChunk (value) {
17023 return types.Buffer(value) || isOPInt(value)
17026 function isPushOnly (value) {
17027 return types.Array(value) && value.every(isPushOnlyChunk)
17030 function compile (chunks) {
17032 if (Buffer.isBuffer(chunks)) return chunks
17034 typeforce(types.Array, chunks)
17036 var bufferSize = chunks.reduce(function (accum, chunk) {
17038 if (Buffer.isBuffer(chunk)) {
17039 // adhere to BIP62.3, minimal push policy
17040 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17044 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17051 var buffer = Buffer.allocUnsafe(bufferSize)
17054 chunks.forEach(function (chunk) {
17056 if (Buffer.isBuffer(chunk)) {
17057 // adhere to BIP62.3, minimal push policy
17058 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17059 var opcode = OP_INT_BASE + chunk[
0]
17060 buffer.writeUInt8(opcode, offset)
17065 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17066 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17071 offset += pushdata.encode(buffer, chunk.length, offset)
17073 chunk.copy(buffer, offset)
17074 offset += chunk.length
17078 buffer.writeUInt8(chunk, offset)
17083 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17087 function decompile (buffer) {
17089 if (types.Array(buffer)) return buffer
17091 typeforce(types.Buffer, buffer)
17096 while (i < buffer.length) {
17097 var opcode = buffer[i]
17100 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17101 var d = pushdata.decode(buffer, i)
17103 // did reading a pushDataInt fail? empty script
17104 if (d === null) return []
17107 // attempt to read too much data? empty script
17108 if (i + d.number
> buffer.length) return []
17110 var data = buffer.slice(i, i + d.number)
17117 chunks.push(opcode)
17126 function toASM (chunks) {
17127 if (Buffer.isBuffer(chunks)) {
17128 chunks = decompile(chunks)
17131 return chunks.map(function (chunk) {
17133 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17136 return REVERSE_OPS[chunk]
17140 function fromASM (asm) {
17141 typeforce(types.String, asm)
17143 return compile(asm.split(' ').map(function (chunkStr) {
17145 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17146 typeforce(types.Hex, chunkStr)
17149 return Buffer.from(chunkStr, 'hex')
17153 function toStack (chunks) {
17154 chunks = decompile(chunks)
17155 typeforce(isPushOnly, chunks)
17157 return chunks.map(function (op) {
17158 if (Buffer.isBuffer(op)) return op
17159 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17161 return scriptNumber.encode(op - OP_INT_BASE)
17165 function isCanonicalPubKey (buffer) {
17166 if (!Buffer.isBuffer(buffer)) return false
17167 if (buffer.length <
33) return false
17169 switch (buffer[
0]) {
17172 return buffer.length ===
33
17174 return buffer.length ===
65
17180 function isDefinedHashType (hashType) {
17181 var hashTypeMod = hashType & ~
0x80
17183 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17184 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17187 function isCanonicalSignature (buffer) {
17188 if (!Buffer.isBuffer(buffer)) return false
17189 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17191 return bip66.check(buffer.slice(
0, -
1))
17196 decompile: decompile,
17201 number: require('./script_number'),
17203 isCanonicalPubKey: isCanonicalPubKey,
17204 isCanonicalSignature: isCanonicalSignature,
17205 isPushOnly: isPushOnly,
17206 isDefinedHashType: isDefinedHashType
17209 var templates = require('./templates')
17210 for (var key in templates) {
17211 module.exports[key] = templates[key]
17214 },{
"./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){
17215 var Buffer = require('safe-buffer').Buffer
17217 function decode (buffer, maxLength, minimal) {
17218 maxLength = maxLength ||
4
17219 minimal = minimal === undefined ? true : minimal
17221 var length = buffer.length
17222 if (length ===
0) return
0
17223 if (length
> maxLength) throw new TypeError('Script number overflow')
17225 if ((buffer[length -
1] &
0x7f) ===
0) {
17226 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17231 if (length ===
5) {
17232 var a = buffer.readUInt32LE(
0)
17233 var b = buffer.readUInt8(
4)
17235 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17236 return (b *
0x100000000) + a
17241 //
32-bit /
24-bit /
16-bit /
8-bit
17242 for (var i =
0; i < length; ++i) {
17243 result |= buffer[i] << (
8 * i)
17246 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17250 function scriptNumSize (i) {
17251 return i
> 0x7fffffff ?
5
17259 function encode (number) {
17260 var value = Math.abs(number)
17261 var size = scriptNumSize(value)
17262 var buffer = Buffer.allocUnsafe(size)
17263 var negative = number <
0
17265 for (var i =
0; i < size; ++i) {
17266 buffer.writeUInt8(value &
0xff, i)
17270 if (buffer[size -
1] &
0x80) {
17271 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17272 } else if (negative) {
17273 buffer[size -
1] |=
0x80
17284 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17285 var decompile = require('../script').decompile
17286 var multisig = require('./multisig')
17287 var nullData = require('./nulldata')
17288 var pubKey = require('./pubkey')
17289 var pubKeyHash = require('./pubkeyhash')
17290 var scriptHash = require('./scripthash')
17291 var witnessPubKeyHash = require('./witnesspubkeyhash')
17292 var witnessScriptHash = require('./witnessscripthash')
17293 var witnessCommitment = require('./witnesscommitment')
17296 MULTISIG: 'multisig',
17297 NONSTANDARD: 'nonstandard',
17298 NULLDATA: 'nulldata',
17300 P2PKH: 'pubkeyhash',
17301 P2SH: 'scripthash',
17302 P2WPKH: 'witnesspubkeyhash',
17303 P2WSH: 'witnessscripthash',
17304 WITNESS_COMMITMENT: 'witnesscommitment'
17307 function classifyOutput (script) {
17308 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17309 if (witnessScriptHash.output.check(script)) return types.P2WSH
17310 if (pubKeyHash.output.check(script)) return types.P2PKH
17311 if (scriptHash.output.check(script)) return types.P2SH
17313 // XXX: optimization, below functions .decompile before use
17314 var chunks = decompile(script)
17315 if (multisig.output.check(chunks)) return types.MULTISIG
17316 if (pubKey.output.check(chunks)) return types.P2PK
17317 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17318 if (nullData.output.check(chunks)) return types.NULLDATA
17320 return types.NONSTANDARD
17323 function classifyInput (script, allowIncomplete) {
17324 // XXX: optimization, below functions .decompile before use
17325 var chunks = decompile(script)
17327 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17328 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17329 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17330 if (pubKey.input.check(chunks)) return types.P2PK
17332 return types.NONSTANDARD
17335 function classifyWitness (script, allowIncomplete) {
17336 // XXX: optimization, below functions .decompile before use
17337 var chunks = decompile(script)
17339 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17340 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17342 return types.NONSTANDARD
17346 classifyInput: classifyInput,
17347 classifyOutput: classifyOutput,
17348 classifyWitness: classifyWitness,
17349 multisig: multisig,
17350 nullData: nullData,
17352 pubKeyHash: pubKeyHash,
17353 scriptHash: scriptHash,
17354 witnessPubKeyHash: witnessPubKeyHash,
17355 witnessScriptHash: witnessScriptHash,
17356 witnessCommitment: witnessCommitment,
17360 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17362 input: require('./input'),
17363 output: require('./output')
17366 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17367 // OP_0 [signatures ...]
17369 var Buffer = require('safe-buffer').Buffer
17370 var bscript = require('../../script')
17371 var typeforce = require('typeforce')
17372 var OPS = require('bitcoin-ops')
17374 function partialSignature (value) {
17375 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17378 function check (script, allowIncomplete) {
17379 var chunks = bscript.decompile(script)
17380 if (chunks.length <
2) return false
17381 if (chunks[
0] !== OPS.OP_0) return false
17383 if (allowIncomplete) {
17384 return chunks.slice(
1).every(partialSignature)
17387 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17389 check.toJSON = function () { return 'multisig input' }
17391 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17393 function encodeStack (signatures, scriptPubKey) {
17394 typeforce([partialSignature], signatures)
17396 if (scriptPubKey) {
17397 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17399 if (signatures.length < scriptData.m) {
17400 throw new TypeError('Not enough signatures provided')
17403 if (signatures.length
> scriptData.pubKeys.length) {
17404 throw new TypeError('Too many signatures provided')
17408 return [].concat(EMPTY_BUFFER, signatures)
17411 function encode (signatures, scriptPubKey) {
17412 return bscript.compile(encodeStack(signatures, scriptPubKey))
17415 function decodeStack (stack, allowIncomplete) {
17416 typeforce(check, stack, allowIncomplete)
17417 return stack.slice(
1)
17420 function decode (buffer, allowIncomplete) {
17421 var stack = bscript.decompile(buffer)
17422 return decodeStack(stack, allowIncomplete)
17428 decodeStack: decodeStack,
17430 encodeStack: encodeStack
17433 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17434 // m [pubKeys ...] n OP_CHECKMULTISIG
17436 var bscript = require('../../script')
17437 var types = require('../../types')
17438 var typeforce = require('typeforce')
17439 var OPS = require('bitcoin-ops')
17440 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17442 function check (script, allowIncomplete) {
17443 var chunks = bscript.decompile(script)
17445 if (chunks.length <
4) return false
17446 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17447 if (!types.Number(chunks[
0])) return false
17448 if (!types.Number(chunks[chunks.length -
2])) return false
17449 var m = chunks[
0] - OP_INT_BASE
17450 var n = chunks[chunks.length -
2] - OP_INT_BASE
17452 if (m <=
0) return false
17453 if (n
> 16) return false
17454 if (m
> n) return false
17455 if (n !== chunks.length -
3) return false
17456 if (allowIncomplete) return true
17458 var keys = chunks.slice(
1, -
2)
17459 return keys.every(bscript.isCanonicalPubKey)
17461 check.toJSON = function () { return 'multi-sig output' }
17463 function encode (m, pubKeys) {
17466 pubKeys: [bscript.isCanonicalPubKey]
17472 var n = pubKeys.length
17473 if (n < m) throw new TypeError('Not enough pubKeys provided')
17475 return bscript.compile([].concat(
17479 OPS.OP_CHECKMULTISIG
17483 function decode (buffer, allowIncomplete) {
17484 var chunks = bscript.decompile(buffer)
17485 typeforce(check, chunks, allowIncomplete)
17488 m: chunks[
0] - OP_INT_BASE,
17489 pubKeys: chunks.slice(
1, -
2)
17499 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17500 // OP_RETURN {data}
17502 var bscript = require('../script')
17503 var types = require('../types')
17504 var typeforce = require('typeforce')
17505 var OPS = require('bitcoin-ops')
17507 function check (script) {
17508 var buffer = bscript.compile(script)
17510 return buffer.length
> 1 &&
17511 buffer[
0] === OPS.OP_RETURN
17513 check.toJSON = function () { return 'null data output' }
17515 function encode (data) {
17516 typeforce(types.Buffer, data)
17518 return bscript.compile([OPS.OP_RETURN, data])
17521 function decode (buffer) {
17522 typeforce(check, buffer)
17524 return buffer.slice(
2)
17535 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17536 arguments[
4][
55][
0].apply(exports,arguments)
17537 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17540 var bscript = require('../../script')
17541 var types = require('../../types')
17542 var typeforce = require('typeforce')
17544 function check (script) {
17545 var chunks = bscript.decompile(script)
17547 return chunks.length ===
1 &&
17548 bscript.isCanonicalSignature(chunks[
0])
17550 check.toJSON = function () { return 'pubKey input' }
17552 function encodeStack (signature) {
17553 typeforce(types.Buffer, signature)
17557 function encode (signature) {
17558 return bscript.compile(encodeStack(signature))
17561 function decodeStack (stack) {
17562 typeforce(check, stack)
17566 function decode (buffer) {
17567 var stack = bscript.decompile(buffer)
17568 return decodeStack(stack)
17574 decodeStack: decodeStack,
17576 encodeStack: encodeStack
17579 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17580 // {pubKey} OP_CHECKSIG
17582 var bscript = require('../../script')
17583 var typeforce = require('typeforce')
17584 var OPS = require('bitcoin-ops')
17586 function check (script) {
17587 var chunks = bscript.decompile(script)
17589 return chunks.length ===
2 &&
17590 bscript.isCanonicalPubKey(chunks[
0]) &&
17591 chunks[
1] === OPS.OP_CHECKSIG
17593 check.toJSON = function () { return 'pubKey output' }
17595 function encode (pubKey) {
17596 typeforce(bscript.isCanonicalPubKey, pubKey)
17598 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17601 function decode (buffer) {
17602 var chunks = bscript.decompile(buffer)
17603 typeforce(check, chunks)
17614 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17615 arguments[
4][
55][
0].apply(exports,arguments)
17616 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17617 // {signature} {pubKey}
17619 var bscript = require('../../script')
17620 var types = require('../../types')
17621 var typeforce = require('typeforce')
17623 function check (script) {
17624 var chunks = bscript.decompile(script)
17626 return chunks.length ===
2 &&
17627 bscript.isCanonicalSignature(chunks[
0]) &&
17628 bscript.isCanonicalPubKey(chunks[
1])
17630 check.toJSON = function () { return 'pubKeyHash input' }
17632 function encodeStack (signature, pubKey) {
17634 signature: types.Buffer, pubKey: types.Buffer
17636 signature: signature, pubKey: pubKey
17639 return [signature, pubKey]
17642 function encode (signature, pubKey) {
17643 return bscript.compile(encodeStack(signature, pubKey))
17646 function decodeStack (stack) {
17647 typeforce(check, stack)
17650 signature: stack[
0],
17655 function decode (buffer) {
17656 var stack = bscript.decompile(buffer)
17657 return decodeStack(stack)
17663 decodeStack: decodeStack,
17665 encodeStack: encodeStack
17668 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17669 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17671 var bscript = require('../../script')
17672 var types = require('../../types')
17673 var typeforce = require('typeforce')
17674 var OPS = require('bitcoin-ops')
17676 function check (script) {
17677 var buffer = bscript.compile(script)
17679 return buffer.length ===
25 &&
17680 buffer[
0] === OPS.OP_DUP &&
17681 buffer[
1] === OPS.OP_HASH160 &&
17682 buffer[
2] ===
0x14 &&
17683 buffer[
23] === OPS.OP_EQUALVERIFY &&
17684 buffer[
24] === OPS.OP_CHECKSIG
17686 check.toJSON = function () { return 'pubKeyHash output' }
17688 function encode (pubKeyHash) {
17689 typeforce(types.Hash160bit, pubKeyHash)
17691 return bscript.compile([
17695 OPS.OP_EQUALVERIFY,
17700 function decode (buffer) {
17701 typeforce(check, buffer)
17703 return buffer.slice(
3,
23)
17712 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17713 arguments[
4][
55][
0].apply(exports,arguments)
17714 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17715 //
<scriptSig> {serialized scriptPubKey script}
17717 var Buffer = require('safe-buffer').Buffer
17718 var bscript = require('../../script')
17719 var typeforce = require('typeforce')
17721 function check (script, allowIncomplete) {
17722 var chunks = bscript.decompile(script)
17723 if (chunks.length <
1) return false
17725 var lastChunk = chunks[chunks.length -
1]
17726 if (!Buffer.isBuffer(lastChunk)) return false
17728 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17729 var redeemScriptChunks = bscript.decompile(lastChunk)
17731 // is redeemScript a valid script?
17732 if (redeemScriptChunks.length ===
0) return false
17734 // is redeemScriptSig push only?
17735 if (!bscript.isPushOnly(scriptSigChunks)) return false
17737 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17738 var outputType = bscript.classifyOutput(redeemScriptChunks)
17739 if (chunks.length ===
1) {
17740 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17742 return inputType === outputType
17744 check.toJSON = function () { return 'scriptHash input' }
17746 function encodeStack (redeemScriptStack, redeemScript) {
17747 var serializedScriptPubKey = bscript.compile(redeemScript)
17749 return [].concat(redeemScriptStack, serializedScriptPubKey)
17752 function encode (redeemScriptSig, redeemScript) {
17753 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17755 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17758 function decodeStack (stack) {
17759 typeforce(check, stack)
17762 redeemScriptStack: stack.slice(
0, -
1),
17763 redeemScript: stack[stack.length -
1]
17767 function decode (buffer) {
17768 var stack = bscript.decompile(buffer)
17769 var result = decodeStack(stack)
17770 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17771 delete result.redeemScriptStack
17778 decodeStack: decodeStack,
17780 encodeStack: encodeStack
17783 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17784 // OP_HASH160 {scriptHash} OP_EQUAL
17786 var bscript = require('../../script')
17787 var types = require('../../types')
17788 var typeforce = require('typeforce')
17789 var OPS = require('bitcoin-ops')
17791 function check (script) {
17792 var buffer = bscript.compile(script)
17794 return buffer.length ===
23 &&
17795 buffer[
0] === OPS.OP_HASH160 &&
17796 buffer[
1] ===
0x14 &&
17797 buffer[
22] === OPS.OP_EQUAL
17799 check.toJSON = function () { return 'scriptHash output' }
17801 function encode (scriptHash) {
17802 typeforce(types.Hash160bit, scriptHash)
17804 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17807 function decode (buffer) {
17808 typeforce(check, buffer)
17810 return buffer.slice(
2,
22)
17819 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17821 output: require('./output')
17824 },{"./output":
69}],
69:[function(require,module,exports){
17825 // OP_RETURN {aa21a9ed} {commitment}
17827 var Buffer = require('safe-buffer').Buffer
17828 var bscript = require('../../script')
17829 var types = require('../../types')
17830 var typeforce = require('typeforce')
17831 var OPS = require('bitcoin-ops')
17833 var HEADER = Buffer.from('aa21a9ed', 'hex')
17835 function check (script) {
17836 var buffer = bscript.compile(script)
17838 return buffer.length
> 37 &&
17839 buffer[
0] === OPS.OP_RETURN &&
17840 buffer[
1] ===
0x24 &&
17841 buffer.slice(
2,
6).equals(HEADER)
17844 check.toJSON = function () { return 'Witness commitment output' }
17846 function encode (commitment) {
17847 typeforce(types.Hash256bit, commitment)
17849 var buffer = Buffer.allocUnsafe(
36)
17850 HEADER.copy(buffer,
0)
17851 commitment.copy(buffer,
4)
17853 return bscript.compile([OPS.OP_RETURN, buffer])
17856 function decode (buffer) {
17857 typeforce(check, buffer)
17859 return bscript.decompile(buffer)[
1].slice(
4,
36)
17868 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17869 arguments[
4][
55][
0].apply(exports,arguments)
17870 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17871 // {signature} {pubKey}
17873 var pkh = require('../pubkeyhash/input')
17877 decodeStack: pkh.decodeStack,
17878 encodeStack: pkh.encodeStack
17881 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17882 // OP_0 {pubKeyHash}
17884 var bscript = require('../../script')
17885 var types = require('../../types')
17886 var typeforce = require('typeforce')
17887 var OPS = require('bitcoin-ops')
17889 function check (script) {
17890 var buffer = bscript.compile(script)
17892 return buffer.length ===
22 &&
17893 buffer[
0] === OPS.OP_0 &&
17896 check.toJSON = function () { return 'Witness pubKeyHash output' }
17898 function encode (pubKeyHash) {
17899 typeforce(types.Hash160bit, pubKeyHash)
17901 return bscript.compile([OPS.OP_0, pubKeyHash])
17904 function decode (buffer) {
17905 typeforce(check, buffer)
17907 return buffer.slice(
2)
17916 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17917 arguments[
4][
55][
0].apply(exports,arguments)
17918 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17919 // {signature} {pubKey}
17921 var p2sh = require('../scripthash/input')
17925 decodeStack: p2sh.decodeStack,
17926 encodeStack: p2sh.encodeStack
17929 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17930 // OP_0 {scriptHash}
17932 var bscript = require('../../script')
17933 var types = require('../../types')
17934 var typeforce = require('typeforce')
17935 var OPS = require('bitcoin-ops')
17937 function check (script) {
17938 var buffer = bscript.compile(script)
17940 return buffer.length ===
34 &&
17941 buffer[
0] === OPS.OP_0 &&
17944 check.toJSON = function () { return 'Witness scriptHash output' }
17946 function encode (scriptHash) {
17947 typeforce(types.Hash256bit, scriptHash)
17949 return bscript.compile([OPS.OP_0, scriptHash])
17952 function decode (buffer) {
17953 typeforce(check, buffer)
17955 return buffer.slice(
2)
17964 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17965 var Buffer = require('safe-buffer').Buffer
17966 var bcrypto = require('./crypto')
17967 var bscript = require('./script')
17968 var bufferutils = require('./bufferutils')
17969 var opcodes = require('bitcoin-ops')
17970 var typeforce = require('typeforce')
17971 var types = require('./types')
17972 var varuint = require('varuint-bitcoin')
17974 function varSliceSize (someScript) {
17975 var length = someScript.length
17977 return varuint.encodingLength(length) + length
17980 function vectorSize (someVector) {
17981 var length = someVector.length
17983 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17984 return sum + varSliceSize(witness)
17988 function Transaction () {
17995 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17996 Transaction.SIGHASH_ALL =
0x01
17997 Transaction.SIGHASH_NONE =
0x02
17998 Transaction.SIGHASH_SINGLE =
0x03
17999 Transaction.SIGHASH_ANYONECANPAY =
0x80
18000 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
18001 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
18003 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
18004 var EMPTY_WITNESS = []
18005 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
18006 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
18007 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
18008 var BLANK_OUTPUT = {
18009 script: EMPTY_SCRIPT,
18010 valueBuffer: VALUE_UINT64_MAX
18013 Transaction.fromBuffer = function (buffer, __noStrict) {
18015 function readSlice (n) {
18017 return buffer.slice(offset - n, offset)
18020 function readUInt32 () {
18021 var i = buffer.readUInt32LE(offset)
18026 function readInt32 () {
18027 var i = buffer.readInt32LE(offset)
18032 function readUInt64 () {
18033 var i = bufferutils.readUInt64LE(buffer, offset)
18038 function readVarInt () {
18039 var vi = varuint.decode(buffer, offset)
18040 offset += varuint.decode.bytes
18044 function readVarSlice () {
18045 return readSlice(readVarInt())
18048 function readVector () {
18049 var count = readVarInt()
18051 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18055 var tx = new Transaction()
18056 tx.version = readInt32()
18058 var marker = buffer.readUInt8(offset)
18059 var flag = buffer.readUInt8(offset +
1)
18061 var hasWitnesses = false
18062 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18063 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18065 hasWitnesses = true
18068 var vinLen = readVarInt()
18069 for (var i =
0; i < vinLen; ++i) {
18071 hash: readSlice(
32),
18072 index: readUInt32(),
18073 script: readVarSlice(),
18074 sequence: readUInt32(),
18075 witness: EMPTY_WITNESS
18079 var voutLen = readVarInt()
18080 for (i =
0; i < voutLen; ++i) {
18082 value: readUInt64(),
18083 script: readVarSlice()
18087 if (hasWitnesses) {
18088 for (i =
0; i < vinLen; ++i) {
18089 tx.ins[i].witness = readVector()
18092 // was this pointless?
18093 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18096 tx.locktime = readUInt32()
18098 if (__noStrict) return tx
18099 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18104 Transaction.fromHex = function (hex) {
18105 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18108 Transaction.isCoinbaseHash = function (buffer) {
18109 typeforce(types.Hash256bit, buffer)
18110 for (var i =
0; i <
32; ++i) {
18111 if (buffer[i] !==
0) return false
18116 Transaction.prototype.isCoinbase = function () {
18117 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18120 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18121 typeforce(types.tuple(
18124 types.maybe(types.UInt32),
18125 types.maybe(types.Buffer)
18128 if (types.Null(sequence)) {
18129 sequence = Transaction.DEFAULT_SEQUENCE
18132 // Add the input and return the input's index
18133 return (this.ins.push({
18136 script: scriptSig || EMPTY_SCRIPT,
18137 sequence: sequence,
18138 witness: EMPTY_WITNESS
18142 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18143 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18145 // Add the output and return the output's index
18146 return (this.outs.push({
18147 script: scriptPubKey,
18152 Transaction.prototype.hasWitnesses = function () {
18153 return this.ins.some(function (x) {
18154 return x.witness.length !==
0
18158 Transaction.prototype.weight = function () {
18159 var base = this.__byteLength(false)
18160 var total = this.__byteLength(true)
18161 return base *
3 + total
18164 Transaction.prototype.virtualSize = function () {
18165 return Math.ceil(this.weight() /
4)
18168 Transaction.prototype.byteLength = function () {
18169 return this.__byteLength(true)
18172 Transaction.prototype.__byteLength = function (__allowWitness) {
18173 var hasWitnesses = __allowWitness && this.hasWitnesses()
18176 (hasWitnesses ?
10 :
8) +
18177 varuint.encodingLength(this.ins.length) +
18178 varuint.encodingLength(this.outs.length) +
18179 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18180 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18181 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18185 Transaction.prototype.clone = function () {
18186 var newTx = new Transaction()
18187 newTx.version = this.version
18188 newTx.locktime = this.locktime
18190 newTx.ins = this.ins.map(function (txIn) {
18194 script: txIn.script,
18195 sequence: txIn.sequence,
18196 witness: txIn.witness
18200 newTx.outs = this.outs.map(function (txOut) {
18202 script: txOut.script,
18211 * Hash transaction for signing a specific input.
18213 * Bitcoin uses a different hash for each signed transaction input.
18214 * This method copies the transaction, makes the necessary changes based on the
18215 * hashType, and then hashes the result.
18216 * This hash can then be used to sign the provided transaction input.
18218 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18219 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18221 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18222 if (inIndex
>= this.ins.length) return ONE
18224 // ignore OP_CODESEPARATOR
18225 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18226 return x !== opcodes.OP_CODESEPARATOR
18229 var txTmp = this.clone()
18231 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18232 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18235 // ignore sequence numbers (except at inIndex)
18236 txTmp.ins.forEach(function (input, i) {
18237 if (i === inIndex) return
18242 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18243 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18244 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18245 if (inIndex
>= this.outs.length) return ONE
18247 // truncate outputs after
18248 txTmp.outs.length = inIndex +
1
18250 // "blank" outputs before
18251 for (var i =
0; i < inIndex; i++) {
18252 txTmp.outs[i] = BLANK_OUTPUT
18255 // ignore sequence numbers (except at inIndex)
18256 txTmp.ins.forEach(function (input, y) {
18257 if (y === inIndex) return
18263 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18264 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18265 txTmp.ins = [txTmp.ins[inIndex]]
18266 txTmp.ins[
0].script = ourScript
18268 // SIGHASH_ALL: only ignore input scripts
18270 // "blank" others input scripts
18271 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18272 txTmp.ins[inIndex].script = ourScript
18275 // serialize and hash
18276 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18277 buffer.writeInt32LE(hashType, buffer.length -
4)
18278 txTmp.__toBuffer(buffer,
0, false)
18280 return bcrypto.hash256(buffer)
18283 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18284 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18286 var tbuffer, toffset
18287 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18288 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18289 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18290 function writeVarInt (i) {
18291 varuint.encode(i, tbuffer, toffset)
18292 toffset += varuint.encode.bytes
18294 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18296 var hashOutputs = ZERO
18297 var hashPrevouts = ZERO
18298 var hashSequence = ZERO
18300 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18301 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18304 this.ins.forEach(function (txIn) {
18305 writeSlice(txIn.hash)
18306 writeUInt32(txIn.index)
18309 hashPrevouts = bcrypto.hash256(tbuffer)
18312 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18313 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18314 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18315 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18318 this.ins.forEach(function (txIn) {
18319 writeUInt32(txIn.sequence)
18322 hashSequence = bcrypto.hash256(tbuffer)
18325 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18326 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18327 var txOutsSize = this.outs.reduce(function (sum, output) {
18328 return sum +
8 + varSliceSize(output.script)
18331 tbuffer = Buffer.allocUnsafe(txOutsSize)
18334 this.outs.forEach(function (out) {
18335 writeUInt64(out.value)
18336 writeVarSlice(out.script)
18339 hashOutputs = bcrypto.hash256(tbuffer)
18340 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18341 var output = this.outs[inIndex]
18343 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18345 writeUInt64(output.value)
18346 writeVarSlice(output.script)
18348 hashOutputs = bcrypto.hash256(tbuffer)
18351 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18354 var input = this.ins[inIndex]
18355 writeUInt32(this.version)
18356 writeSlice(hashPrevouts)
18357 writeSlice(hashSequence)
18358 writeSlice(input.hash)
18359 writeUInt32(input.index)
18360 writeVarSlice(prevOutScript)
18362 writeUInt32(input.sequence)
18363 writeSlice(hashOutputs)
18364 writeUInt32(this.locktime)
18365 writeUInt32(hashType)
18366 return bcrypto.hash256(tbuffer)
18369 Transaction.prototype.getHash = function () {
18370 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18373 Transaction.prototype.getId = function () {
18374 // transaction hash's are displayed in reverse order
18375 return this.getHash().reverse().toString('hex')
18378 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18379 return this.__toBuffer(buffer, initialOffset, true)
18382 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18383 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18385 var offset = initialOffset ||
0
18386 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18387 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18388 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18389 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18390 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18391 function writeVarInt (i) {
18392 varuint.encode(i, buffer, offset)
18393 offset += varuint.encode.bytes
18395 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18396 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18398 writeInt32(this.version)
18400 var hasWitnesses = __allowWitness && this.hasWitnesses()
18402 if (hasWitnesses) {
18403 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18404 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18407 writeVarInt(this.ins.length)
18409 this.ins.forEach(function (txIn) {
18410 writeSlice(txIn.hash)
18411 writeUInt32(txIn.index)
18412 writeVarSlice(txIn.script)
18413 writeUInt32(txIn.sequence)
18416 writeVarInt(this.outs.length)
18417 this.outs.forEach(function (txOut) {
18418 if (!txOut.valueBuffer) {
18419 writeUInt64(txOut.value)
18421 writeSlice(txOut.valueBuffer)
18424 writeVarSlice(txOut.script)
18427 if (hasWitnesses) {
18428 this.ins.forEach(function (input) {
18429 writeVector(input.witness)
18433 writeUInt32(this.locktime)
18435 // avoid slicing unless necessary
18436 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18440 Transaction.prototype.toHex = function () {
18441 return this.toBuffer().toString('hex')
18444 Transaction.prototype.setInputScript = function (index, scriptSig) {
18445 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18447 this.ins[index].script = scriptSig
18450 Transaction.prototype.setWitness = function (index, witness) {
18451 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18453 this.ins[index].witness = witness
18456 module.exports = Transaction
18458 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18459 var Buffer = require('safe-buffer').Buffer
18460 var baddress = require('./address')
18461 var bcrypto = require('./crypto')
18462 var bscript = require('./script')
18463 var networks = require('./networks')
18464 var ops = require('bitcoin-ops')
18465 var typeforce = require('typeforce')
18466 var types = require('./types')
18467 var scriptTypes = bscript.types
18468 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18469 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18471 var ECPair = require('./ecpair')
18472 var ECSignature = require('./ecsignature')
18473 var Transaction = require('./transaction')
18475 function extractChunks (type, chunks, script) {
18477 var signatures = []
18479 case scriptTypes.P2PKH:
18480 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18481 pubKeys = chunks.slice(
1)
18482 signatures = chunks.slice(
0,
1)
18485 case scriptTypes.P2PK:
18486 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18487 signatures = chunks.slice(
0,
1)
18490 case scriptTypes.MULTISIG:
18492 var multisig = bscript.multisig.output.decode(script)
18493 pubKeys = multisig.pubKeys
18496 signatures = chunks.slice(
1).map(function (chunk) {
18497 return chunk.length ===
0 ? undefined : chunk
18504 signatures: signatures
18507 function expandInput (scriptSig, witnessStack) {
18508 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18516 var witnessScriptType
18517 var redeemScriptType
18518 var witness = false
18524 var scriptSigChunks = bscript.decompile(scriptSig)
18525 var sigType = bscript.classifyInput(scriptSigChunks, true)
18526 if (sigType === scriptTypes.P2SH) {
18528 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18529 redeemScriptType = bscript.classifyOutput(redeemScript)
18530 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18531 prevOutType = scriptTypes.P2SH
18532 script = redeemScript
18535 var classifyWitness = bscript.classifyWitness(witnessStack)
18536 if (classifyWitness === scriptTypes.P2WSH) {
18537 witnessScript = witnessStack[witnessStack.length -
1]
18538 witnessScriptType = bscript.classifyOutput(witnessScript)
18540 if (scriptSig.length ===
0) {
18541 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18542 prevOutType = scriptTypes.P2WSH
18543 if (typeof redeemScript !== 'undefined') {
18544 throw new Error('Redeem script given when unnecessary')
18548 if (!redeemScript) {
18549 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18551 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18552 if (!redeemScript.equals(witnessProgram)) {
18553 throw new Error('Redeem script didn\'t match witnessScript')
18557 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18558 throw new Error('unsupported witness script')
18560 script = witnessScript
18561 scriptType = witnessScriptType
18562 chunks = witnessStack.slice(
0, -
1)
18563 } else if (classifyWitness === scriptTypes.P2WPKH) {
18564 var key = witnessStack[witnessStack.length -
1]
18565 var keyHash = bcrypto.hash160(key)
18566 if (scriptSig.length ===
0) {
18567 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18568 prevOutType = scriptTypes.P2WPKH
18569 if (typeof redeemScript !== 'undefined') {
18570 throw new Error('Redeem script given when unnecessary')
18573 if (!redeemScript) {
18574 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18576 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18577 if (!redeemScript.equals(witnessProgram)) {
18578 throw new Error('Redeem script did not have the right witness program')
18582 scriptType = scriptTypes.P2PKH
18583 chunks = witnessStack
18584 } else if (redeemScript) {
18585 if (P2SH.indexOf(redeemScriptType) === -
1) {
18586 throw new Error('Bad redeemscript!')
18589 script = redeemScript
18590 scriptType = redeemScriptType
18591 chunks = scriptSigChunks.slice(
0, -
1)
18593 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18594 chunks = scriptSigChunks
18597 var expanded = extractChunks(scriptType, chunks, script)
18600 pubKeys: expanded.pubKeys,
18601 signatures: expanded.signatures,
18602 prevOutScript: prevOutScript,
18603 prevOutType: prevOutType,
18604 signType: scriptType,
18605 signScript: script,
18606 witness: Boolean(witness)
18610 result.redeemScript = redeemScript
18611 result.redeemScriptType = redeemScriptType
18615 result.witnessScript = witnessScript
18616 result.witnessScriptType = witnessScriptType
18622 // could be done in expandInput, but requires the original Transaction for hashForSignature
18623 function fixMultisigOrder (input, transaction, vin) {
18624 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18625 if (input.pubKeys.length === input.signatures.length) return
18627 var unmatched = input.signatures.concat()
18629 input.signatures = input.pubKeys.map(function (pubKey) {
18630 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18633 // check for a signature
18634 unmatched.some(function (signature, i) {
18635 // skip if undefined || OP_0
18636 if (!signature) return false
18638 // TODO: avoid O(n) hashForSignature
18639 var parsed = ECSignature.parseScriptSignature(signature)
18640 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18642 // skip if signature does not match pubKey
18643 if (!keyPair.verify(hash, parsed.signature)) return false
18645 // remove matched signature from unmatched
18646 unmatched[i] = undefined
18656 function expandOutput (script, scriptType, ourPubKey) {
18657 typeforce(types.Buffer, script)
18659 var scriptChunks = bscript.decompile(script)
18661 scriptType = bscript.classifyOutput(script)
18666 switch (scriptType) {
18667 // does our hash160(pubKey) match the output scripts?
18668 case scriptTypes.P2PKH:
18669 if (!ourPubKey) break
18671 var pkh1 = scriptChunks[
2]
18672 var pkh2 = bcrypto.hash160(ourPubKey)
18673 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18676 // does our hash160(pubKey) match the output scripts?
18677 case scriptTypes.P2WPKH:
18678 if (!ourPubKey) break
18680 var wpkh1 = scriptChunks[
1]
18681 var wpkh2 = bcrypto.hash160(ourPubKey)
18682 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18685 case scriptTypes.P2PK:
18686 pubKeys = scriptChunks.slice(
0,
1)
18689 case scriptTypes.MULTISIG:
18690 pubKeys = scriptChunks.slice(
1, -
2)
18693 default: return { scriptType: scriptType }
18698 scriptType: scriptType,
18699 signatures: pubKeys.map(function () { return undefined })
18703 function checkP2shInput (input, redeemScriptHash) {
18704 if (input.prevOutType) {
18705 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18707 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18708 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18712 function checkP2WSHInput (input, witnessScriptHash) {
18713 if (input.prevOutType) {
18714 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18716 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18717 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18721 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18728 var redeemScriptHash
18730 var witness = false
18733 var witnessScriptHash
18738 if (redeemScript && witnessScript) {
18739 redeemScriptHash = bcrypto.hash160(redeemScript)
18740 witnessScriptHash = bcrypto.sha256(witnessScript)
18741 checkP2shInput(input, redeemScriptHash)
18743 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18745 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18746 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18747 prevOutType = bscript.types.P2SH
18748 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18749 p2sh = witness = p2wsh = true
18750 p2shType = bscript.types.P2WSH
18751 signType = witnessType = expanded.scriptType
18752 signScript = witnessScript
18753 } else if (redeemScript) {
18754 redeemScriptHash = bcrypto.hash160(redeemScript)
18755 checkP2shInput(input, redeemScriptHash)
18757 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18758 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18760 prevOutType = bscript.types.P2SH
18761 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18763 signType = p2shType = expanded.scriptType
18764 signScript = redeemScript
18765 witness = signType === bscript.types.P2WPKH
18766 } else if (witnessScript) {
18767 witnessScriptHash = bcrypto.sha256(witnessScript)
18768 checkP2WSHInput(input, witnessScriptHash)
18770 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18771 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18773 prevOutType = bscript.types.P2WSH
18774 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18775 witness = p2wsh = true
18776 signType = witnessType = expanded.scriptType
18777 signScript = witnessScript
18778 } else if (input.prevOutType) {
18779 // embedded scripts are not possible without a redeemScript
18780 if (input.prevOutType === scriptTypes.P2SH ||
18781 input.prevOutType === scriptTypes.P2WSH) {
18782 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18785 prevOutType = input.prevOutType
18786 prevOutScript = input.prevOutScript
18787 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18788 if (!expanded.pubKeys) return
18790 witness = (input.prevOutType === scriptTypes.P2WPKH)
18791 signType = prevOutType
18792 signScript = prevOutScript
18794 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18795 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18796 prevOutType = scriptTypes.P2PKH
18798 signType = prevOutType
18799 signScript = prevOutScript
18802 if (witness && !types.Satoshi(witnessValue)) {
18803 throw new Error('Input was witness but not given witness value')
18806 if (signType === scriptTypes.P2WPKH) {
18807 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18811 input.redeemScript = redeemScript
18812 input.redeemScriptType = p2shType
18816 input.witnessScript = witnessScript
18817 input.witnessScriptType = witnessType
18820 input.pubKeys = expanded.pubKeys
18821 input.signatures = expanded.signatures
18822 input.signScript = signScript
18823 input.signType = signType
18824 input.prevOutScript = prevOutScript
18825 input.prevOutType = prevOutType
18826 input.witness = witness
18829 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18830 if (type === scriptTypes.P2PKH) {
18831 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18832 } else if (type === scriptTypes.P2PK) {
18833 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18834 } else if (type === scriptTypes.MULTISIG) {
18835 if (signatures.length
> 0) {
18836 signatures = signatures.map(function (signature) {
18837 return signature || ops.OP_0
18839 if (!allowIncomplete) {
18840 // remove blank signatures
18841 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18844 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18847 throw new Error('Not yet supported')
18850 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18855 function buildInput (input, allowIncomplete) {
18856 var scriptType = input.prevOutType
18859 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18860 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18864 if (scriptType === bscript.types.P2SH) {
18865 // We can remove this error later when we have a guarantee prepareInput
18866 // rejects unsignable scripts - it MUST be signable at this point.
18867 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18868 throw new Error('Impossible to sign this type')
18871 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18872 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18874 // If it wasn't SIGNABLE, it's witness, defer to that
18875 scriptType = input.redeemScriptType
18878 if (scriptType === bscript.types.P2WPKH) {
18879 // P2WPKH is a special case of P2PKH
18880 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18881 } else if (scriptType === bscript.types.P2WSH) {
18882 // We can remove this check later
18883 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18884 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18885 witness.push(input.witnessScript)
18887 // We can remove this error later when we have a guarantee prepareInput
18888 // rejects unsignble scripts - it MUST be signable at this point.
18892 scriptType = input.witnessScriptType
18895 // append redeemScript if necessary
18897 sig.push(input.redeemScript)
18902 script: bscript.compile(sig),
18907 function TransactionBuilder (network, maximumFeeRate) {
18908 this.prevTxMap = {}
18909 this.network = network || networks.bitcoin
18911 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18912 this.maximumFeeRate = maximumFeeRate ||
1000
18915 this.tx = new Transaction()
18918 TransactionBuilder.prototype.setLockTime = function (locktime) {
18919 typeforce(types.UInt32, locktime)
18921 // if any signatures exist, throw
18922 if (this.inputs.some(function (input) {
18923 if (!input.signatures) return false
18925 return input.signatures.some(function (s) { return s })
18927 throw new Error('No, this would invalidate signatures')
18930 this.tx.locktime = locktime
18933 TransactionBuilder.prototype.setVersion = function (version) {
18934 typeforce(types.UInt32, version)
18936 // XXX: this might eventually become more complex depending on what the versions represent
18937 this.tx.version = version
18940 TransactionBuilder.fromTransaction = function (transaction, network) {
18941 var txb = new TransactionBuilder(network)
18943 // Copy transaction fields
18944 txb.setVersion(transaction.version)
18945 txb.setLockTime(transaction.locktime)
18947 // Copy outputs (done first to avoid signature invalidation)
18948 transaction.outs.forEach(function (txOut) {
18949 txb.addOutput(txOut.script, txOut.value)
18953 transaction.ins.forEach(function (txIn) {
18954 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18955 sequence: txIn.sequence,
18956 script: txIn.script,
18957 witness: txIn.witness
18961 // fix some things not possible through the public API
18962 txb.inputs.forEach(function (input, i) {
18963 fixMultisigOrder(input, transaction, i)
18969 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18970 if (!this.__canModifyInputs()) {
18971 throw new Error('No, this would invalidate signatures')
18976 // is it a hex string?
18977 if (typeof txHash === 'string') {
18978 // transaction hashs's are displayed in reverse order, un-reverse it
18979 txHash = Buffer.from(txHash, 'hex').reverse()
18981 // is it a Transaction object?
18982 } else if (txHash instanceof Transaction) {
18983 var txOut = txHash.outs[vout]
18984 prevOutScript = txOut.script
18985 value = txOut.value
18987 txHash = txHash.getHash()
18990 return this.__addInputUnsafe(txHash, vout, {
18991 sequence: sequence,
18992 prevOutScript: prevOutScript,
18997 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18998 if (Transaction.isCoinbaseHash(txHash)) {
18999 throw new Error('coinbase inputs not supported')
19002 var prevTxOut = txHash.toString('hex') + ':' + vout
19003 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
19007 // derive what we can from the scriptSig
19008 if (options.script !== undefined) {
19009 input = expandInput(options.script, options.witness || [])
19012 // if an input value was given, retain it
19013 if (options.value !== undefined) {
19014 input.value = options.value
19017 // derive what we can from the previous transactions output script
19018 if (!input.prevOutScript && options.prevOutScript) {
19021 if (!input.pubKeys && !input.signatures) {
19022 var expanded = expandOutput(options.prevOutScript)
19024 if (expanded.pubKeys) {
19025 input.pubKeys = expanded.pubKeys
19026 input.signatures = expanded.signatures
19029 prevOutType = expanded.scriptType
19032 input.prevOutScript = options.prevOutScript
19033 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
19036 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19037 this.inputs[vin] = input
19038 this.prevTxMap[prevTxOut] = vin
19043 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19044 if (!this.__canModifyOutputs()) {
19045 throw new Error('No, this would invalidate signatures')
19048 // Attempt to get a script if it's a base58 address string
19049 if (typeof scriptPubKey === 'string') {
19050 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19053 return this.tx.addOutput(scriptPubKey, value)
19056 TransactionBuilder.prototype.build = function () {
19057 return this.__build(false)
19059 TransactionBuilder.prototype.buildIncomplete = function () {
19060 return this.__build(true)
19063 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19064 if (!allowIncomplete) {
19065 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19066 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19069 var tx = this.tx.clone()
19070 // Create script signatures from inputs
19071 this.inputs.forEach(function (input, i) {
19072 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19073 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19074 var result = buildInput(input, allowIncomplete)
19076 // skip if no result
19077 if (!allowIncomplete) {
19078 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19079 throw new Error(result.type + ' not supported')
19083 tx.setInputScript(i, result.script)
19084 tx.setWitness(i, result.witness)
19087 if (!allowIncomplete) {
19088 // do not rely on this, its merely a last resort
19089 if (this.__overMaximumFees(tx.byteLength())) {
19090 throw new Error('Transaction has absurd fees')
19097 function canSign (input) {
19098 return input.prevOutScript !== undefined &&
19099 input.signScript !== undefined &&
19100 input.pubKeys !== undefined &&
19101 input.signatures !== undefined &&
19102 input.signatures.length === input.pubKeys.length &&
19103 input.pubKeys.length
> 0 &&
19104 input.witness !== undefined
19107 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19108 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19109 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19110 hashType = hashType || Transaction.SIGHASH_ALL
19112 var input = this.inputs[vin]
19114 // if redeemScript was previously provided, enforce consistency
19115 if (input.redeemScript !== undefined &&
19117 !input.redeemScript.equals(redeemScript)) {
19118 throw new Error('Inconsistent redeemScript')
19121 var kpPubKey = keyPair.getPublicKeyBuffer()
19122 if (!canSign(input)) {
19123 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19124 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19129 if (input.witness) {
19130 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19132 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19134 // enforce in order signing of public keys
19135 var signed = input.pubKeys.some(function (pubKey, i) {
19136 if (!kpPubKey.equals(pubKey)) return false
19137 if (input.signatures[i]) throw new Error('Signature already exists')
19139 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19143 if (!signed) throw new Error('Key pair cannot sign for this input')
19146 function signatureHashType (buffer) {
19147 return buffer.readUInt8(buffer.length -
1)
19150 TransactionBuilder.prototype.__canModifyInputs = function () {
19151 return this.inputs.every(function (input) {
19153 if (input.signatures === undefined) return true
19155 return input.signatures.every(function (signature) {
19156 if (!signature) return true
19157 var hashType = signatureHashType(signature)
19159 // if SIGHASH_ANYONECANPAY is set, signatures would not
19160 // be invalidated by more inputs
19161 return hashType & Transaction.SIGHASH_ANYONECANPAY
19166 TransactionBuilder.prototype.__canModifyOutputs = function () {
19167 var nInputs = this.tx.ins.length
19168 var nOutputs = this.tx.outs.length
19170 return this.inputs.every(function (input) {
19171 if (input.signatures === undefined) return true
19173 return input.signatures.every(function (signature) {
19174 if (!signature) return true
19175 var hashType = signatureHashType(signature)
19177 var hashTypeMod = hashType &
0x1f
19178 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19179 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19180 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19181 // some signatures would be invalidated by the addition
19183 return nInputs <= nOutputs
19189 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19190 // not all inputs will have .value defined
19191 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19193 // but all outputs do, and if we have any input value
19194 // we can immediately determine if the outputs are too small
19195 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19196 var fee = incoming - outgoing
19197 var feeRate = fee / bytes
19199 return feeRate
> this.maximumFeeRate
19202 module.exports = TransactionBuilder
19204 },{"./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){
19205 var typeforce = require('typeforce')
19207 var UINT31_MAX = Math.pow(
2,
31) -
1
19208 function UInt31 (value) {
19209 return typeforce.UInt32(value) && value <= UINT31_MAX
19212 function BIP32Path (value) {
19213 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19215 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19217 var SATOSHI_MAX =
21 *
1e14
19218 function Satoshi (value) {
19219 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19222 // external dependent types
19223 var BigInt = typeforce.quacksLike('BigInteger')
19224 var ECPoint = typeforce.quacksLike('Point')
19226 // exposed, external API
19227 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19228 var Network = typeforce.compile({
19229 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19231 public: typeforce.UInt32,
19232 private: typeforce.UInt32
19234 pubKeyHash: typeforce.UInt8,
19235 scriptHash: typeforce.UInt8,
19236 wif: typeforce.UInt8
19239 // extend typeforce types with ours
19242 BIP32Path: BIP32Path,
19243 Buffer256bit: typeforce.BufferN(
32),
19245 ECSignature: ECSignature,
19246 Hash160bit: typeforce.BufferN(
20),
19247 Hash256bit: typeforce.BufferN(
32),
19253 for (var typeName in typeforce) {
19254 types[typeName] = typeforce[typeName]
19257 module.exports = types
19259 },{"typeforce":
109}],
79:[function(require,module,exports){
19260 var basex = require('base-x')
19261 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19263 module.exports = basex(ALPHABET)
19265 },{"base-x":
34}],
80:[function(require,module,exports){
19266 (function (Buffer){
19269 var base58 = require('bs58')
19270 var createHash = require('create-hash')
19272 // SHA256(SHA256(buffer))
19273 function sha256x2 (buffer) {
19274 var tmp = createHash('sha256').update(buffer).digest()
19275 return createHash('sha256').update(tmp).digest()
19278 // Encode a buffer as a base58-check encoded string
19279 function encode (payload) {
19280 var checksum = sha256x2(payload)
19282 return base58.encode(Buffer.concat([
19285 ], payload.length +
4))
19288 function decodeRaw (buffer) {
19289 var payload = buffer.slice(
0, -
4)
19290 var checksum = buffer.slice(-
4)
19291 var newChecksum = sha256x2(payload)
19293 if (checksum[
0] ^ newChecksum[
0] |
19294 checksum[
1] ^ newChecksum[
1] |
19295 checksum[
2] ^ newChecksum[
2] |
19296 checksum[
3] ^ newChecksum[
3]) return
19301 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19302 function decodeUnsafe (string) {
19303 var buffer = base58.decodeUnsafe(string)
19304 if (!buffer) return
19306 return decodeRaw(buffer)
19309 function decode (string) {
19310 var buffer = base58.decode(string)
19311 var payload = decodeRaw(buffer)
19312 if (!payload) throw new Error('Invalid checksum')
19319 decodeUnsafe: decodeUnsafe
19322 }).call(this,require("buffer").Buffer)
19323 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19324 var Buffer = require('safe-buffer').Buffer
19325 var Transform = require('stream').Transform
19326 var StringDecoder = require('string_decoder').StringDecoder
19327 var inherits = require('inherits')
19329 function CipherBase (hashMode) {
19330 Transform.call(this)
19331 this.hashMode = typeof hashMode === 'string'
19332 if (this.hashMode) {
19333 this[hashMode] = this._finalOrDigest
19335 this.final = this._finalOrDigest
19338 this.__final = this._final
19341 this._decoder = null
19342 this._encoding = null
19344 inherits(CipherBase, Transform)
19346 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19347 if (typeof data === 'string') {
19348 data = Buffer.from(data, inputEnc)
19351 var outData = this._update(data)
19352 if (this.hashMode) return this
19355 outData = this._toString(outData, outputEnc)
19361 CipherBase.prototype.setAutoPadding = function () {}
19362 CipherBase.prototype.getAuthTag = function () {
19363 throw new Error('trying to get auth tag in unsupported state')
19366 CipherBase.prototype.setAuthTag = function () {
19367 throw new Error('trying to set auth tag in unsupported state')
19370 CipherBase.prototype.setAAD = function () {
19371 throw new Error('trying to set aad in unsupported state')
19374 CipherBase.prototype._transform = function (data, _, next) {
19377 if (this.hashMode) {
19380 this.push(this._update(data))
19388 CipherBase.prototype._flush = function (done) {
19391 this.push(this.__final())
19398 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19399 var outData = this.__final() || Buffer.alloc(
0)
19401 outData = this._toString(outData, outputEnc, true)
19406 CipherBase.prototype._toString = function (value, enc, fin) {
19407 if (!this._decoder) {
19408 this._decoder = new StringDecoder(enc)
19409 this._encoding = enc
19412 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19414 var out = this._decoder.write(value)
19416 out += this._decoder.end()
19422 module.exports = CipherBase
19424 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19425 (function (Buffer){
19427 var inherits = require('inherits')
19428 var md5 = require('./md5')
19429 var RIPEMD160 = require('ripemd160')
19430 var sha = require('sha.js')
19432 var Base = require('cipher-base')
19434 function HashNoConstructor (hash) {
19435 Base.call(this, 'digest')
19441 inherits(HashNoConstructor, Base)
19443 HashNoConstructor.prototype._update = function (data) {
19444 this.buffers.push(data)
19447 HashNoConstructor.prototype._final = function () {
19448 var buf = Buffer.concat(this.buffers)
19449 var r = this._hash(buf)
19450 this.buffers = null
19455 function Hash (hash) {
19456 Base.call(this, 'digest')
19461 inherits(Hash, Base)
19463 Hash.prototype._update = function (data) {
19464 this._hash.update(data)
19467 Hash.prototype._final = function () {
19468 return this._hash.digest()
19471 module.exports = function createHash (alg) {
19472 alg = alg.toLowerCase()
19473 if (alg === 'md5') return new HashNoConstructor(md5)
19474 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19476 return new Hash(sha(alg))
19479 }).call(this,require("buffer").Buffer)
19480 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19481 (function (Buffer){
19484 var zeroBuffer = new Buffer(intSize)
19490 function toArray (buf) {
19491 if ((buf.length % intSize) !==
0) {
19492 var len = buf.length + (intSize - (buf.length % intSize))
19493 buf = Buffer.concat([buf, zeroBuffer], len)
19496 var arr = new Array(buf.length
>>> 2)
19497 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19498 arr[j] = buf.readInt32LE(i)
19504 module.exports = function hash (buf, fn) {
19505 var arr = fn(toArray(buf), buf.length * charSize)
19506 buf = new Buffer(hashSize)
19507 for (var i =
0; i < arr.length; i++) {
19508 buf.writeInt32LE(arr[i], i <<
2, true)
19513 }).call(this,require(
"buffer").Buffer)
19514 },{
"buffer":
4}],
84:[function(require,module,exports){
19517 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19518 * Digest Algorithm, as defined in RFC
1321.
19519 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19520 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19521 * Distributed under the BSD License
19522 * See http://pajhome.org.uk/crypt/md5 for more info.
19525 var makeHash = require('./make-hash')
19528 * Calculate the MD5 of an array of little-endian words, and a bit length
19530 function core_md5 (x, len) {
19531 /* append padding */
19532 x[len
>> 5] |=
0x80 << ((len) %
32)
19533 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19537 var c = -
1732584194
19540 for (var i =
0; i < x.length; i +=
16) {
19546 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19547 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19548 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19549 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19550 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19551 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19552 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19553 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19554 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19555 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19556 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19557 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19558 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19559 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19560 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19561 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19563 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19564 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19565 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19566 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19567 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19568 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19569 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19570 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19571 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19572 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19573 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19574 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19575 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19576 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19577 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19578 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19580 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19581 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19582 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19583 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19584 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19585 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19586 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19587 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19588 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19589 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19590 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19591 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19592 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19593 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19594 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19595 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19597 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19598 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19599 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19600 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19601 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19602 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19603 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19604 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19605 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19606 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19607 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19608 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19609 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19610 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19611 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19612 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19614 a = safe_add(a, olda)
19615 b = safe_add(b, oldb)
19616 c = safe_add(c, oldc)
19617 d = safe_add(d, oldd)
19620 return [a, b, c, d]
19624 * These functions implement the four basic operations the algorithm uses.
19626 function md5_cmn (q, a, b, x, s, t) {
19627 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19630 function md5_ff (a, b, c, d, x, s, t) {
19631 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19634 function md5_gg (a, b, c, d, x, s, t) {
19635 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19638 function md5_hh (a, b, c, d, x, s, t) {
19639 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19642 function md5_ii (a, b, c, d, x, s, t) {
19643 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19647 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19648 * to work around bugs in some JS interpreters.
19650 function safe_add (x, y) {
19651 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19652 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19653 return (msw <<
16) | (lsw &
0xFFFF)
19657 * Bitwise rotate a
32-bit number to the left.
19659 function bit_rol (num, cnt) {
19660 return (num << cnt) | (num
>>> (
32 - cnt))
19663 module.exports = function md5 (buf) {
19664 return makeHash(buf, core_md5)
19667 },{"./make-hash":
83}],
85:[function(require,module,exports){
19669 var inherits = require('inherits')
19670 var Legacy = require('./legacy')
19671 var Base = require('cipher-base')
19672 var Buffer = require('safe-buffer').Buffer
19673 var md5 = require('create-hash/md5')
19674 var RIPEMD160 = require('ripemd160')
19676 var sha = require('sha.js')
19678 var ZEROS = Buffer.alloc(
128)
19680 function Hmac (alg, key) {
19681 Base.call(this, 'digest')
19682 if (typeof key === 'string') {
19683 key = Buffer.from(key)
19686 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19690 if (key.length
> blocksize) {
19691 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19692 key = hash.update(key).digest()
19693 } else if (key.length < blocksize) {
19694 key = Buffer.concat([key, ZEROS], blocksize)
19697 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19698 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19700 for (var i =
0; i < blocksize; i++) {
19701 ipad[i] = key[i] ^
0x36
19702 opad[i] = key[i] ^
0x5C
19704 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19705 this._hash.update(ipad)
19708 inherits(Hmac, Base)
19710 Hmac.prototype._update = function (data) {
19711 this._hash.update(data)
19714 Hmac.prototype._final = function () {
19715 var h = this._hash.digest()
19716 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19717 return hash.update(this._opad).update(h).digest()
19720 module.exports = function createHmac (alg, key) {
19721 alg = alg.toLowerCase()
19722 if (alg === 'rmd160' || alg === 'ripemd160') {
19723 return new Hmac('rmd160', key)
19725 if (alg === 'md5') {
19726 return new Legacy(md5, key)
19728 return new Hmac(alg, key)
19731 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19733 var inherits = require('inherits')
19734 var Buffer = require('safe-buffer').Buffer
19736 var Base = require('cipher-base')
19738 var ZEROS = Buffer.alloc(
128)
19741 function Hmac (alg, key) {
19742 Base.call(this, 'digest')
19743 if (typeof key === 'string') {
19744 key = Buffer.from(key)
19750 if (key.length
> blocksize) {
19752 } else if (key.length < blocksize) {
19753 key = Buffer.concat([key, ZEROS], blocksize)
19756 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19757 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19759 for (var i =
0; i < blocksize; i++) {
19760 ipad[i] = key[i] ^
0x36
19761 opad[i] = key[i] ^
0x5C
19764 this._hash = [ipad]
19767 inherits(Hmac, Base)
19769 Hmac.prototype._update = function (data) {
19770 this._hash.push(data)
19773 Hmac.prototype._final = function () {
19774 var h = this._alg(Buffer.concat(this._hash))
19775 return this._alg(Buffer.concat([this._opad, h]))
19777 module.exports = Hmac
19779 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19780 var assert = require('assert')
19781 var BigInteger = require('bigi')
19783 var Point = require('./point')
19785 function Curve (p, a, b, Gx, Gy, n, h) {
19789 this.G = Point.fromAffine(this, Gx, Gy)
19793 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19796 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19798 // determine size of p in bytes
19799 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19802 Curve.prototype.pointFromX = function (isOdd, x) {
19803 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19804 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19807 if (beta.isEven() ^ !isOdd) {
19808 y = this.p.subtract(y) // -y % p
19811 return Point.fromAffine(this, x, y)
19814 Curve.prototype.isInfinity = function (Q) {
19815 if (Q === this.infinity) return true
19817 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19820 Curve.prototype.isOnCurve = function (Q) {
19821 if (this.isInfinity(Q)) return true
19829 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19830 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19831 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19833 // and check that y^
2 = x^
3 + ax + b (mod p)
19834 var lhs = y.square().mod(p)
19835 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19836 return lhs.equals(rhs)
19840 * Validate an elliptic curve point.
19842 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19844 Curve.prototype.validate = function (Q) {
19846 assert(!this.isInfinity(Q), 'Point is at infinity')
19847 assert(this.isOnCurve(Q), 'Point is not on the curve')
19849 // Check nQ = O (where Q is a scalar multiple of G)
19850 var nQ = Q.multiply(this.n)
19851 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19856 module.exports = Curve
19858 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19861 "p": "fffffffdffffffffffffffffffffffff",
19862 "a": "fffffffdfffffffffffffffffffffffc",
19863 "b": "e87579c11079f43dd824993c2cee5ed3",
19864 "n": "fffffffe0000000075a30d1b9038a115",
19866 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19867 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19870 "p": "fffffffffffffffffffffffffffffffeffffac73",
19873 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19875 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19876 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19879 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19880 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19881 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19882 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19884 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19885 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19888 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19891 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19893 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19894 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19897 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19898 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19899 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19900 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19902 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19903 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19906 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19909 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19911 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19912 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19915 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19916 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19917 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19918 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19920 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19921 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19925 },{}],
89:[function(require,module,exports){
19926 var Point = require('./point')
19927 var Curve = require('./curve')
19929 var getCurveByName = require('./names')
19934 getCurveByName: getCurveByName
19937 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19938 var BigInteger = require('bigi')
19940 var curves = require('./curves.json')
19941 var Curve = require('./curve')
19943 function getCurveByName (name) {
19944 var curve = curves[name]
19945 if (!curve) return null
19947 var p = new BigInteger(curve.p,
16)
19948 var a = new BigInteger(curve.a,
16)
19949 var b = new BigInteger(curve.b,
16)
19950 var n = new BigInteger(curve.n,
16)
19951 var h = new BigInteger(curve.h,
16)
19952 var Gx = new BigInteger(curve.Gx,
16)
19953 var Gy = new BigInteger(curve.Gy,
16)
19955 return new Curve(p, a, b, Gx, Gy, n, h)
19958 module.exports = getCurveByName
19960 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19961 (function (Buffer){
19962 var assert = require('assert')
19963 var BigInteger = require('bigi')
19965 var THREE = BigInteger.valueOf(
3)
19967 function Point (curve, x, y, z) {
19968 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19976 this.compressed = true
19979 Object.defineProperty(Point.prototype, 'zInv', {
19981 if (this._zInv === null) {
19982 this._zInv = this.z.modInverse(this.curve.p)
19989 Object.defineProperty(Point.prototype, 'affineX', {
19991 return this.x.multiply(this.zInv).mod(this.curve.p)
19995 Object.defineProperty(Point.prototype, 'affineY', {
19997 return this.y.multiply(this.zInv).mod(this.curve.p)
20001 Point.fromAffine = function (curve, x, y) {
20002 return new Point(curve, x, y, BigInteger.ONE)
20005 Point.prototype.equals = function (other) {
20006 if (other === this) return true
20007 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
20008 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
20010 // u = Y2 * Z1 - Y1 * Z2
20011 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
20013 if (u.signum() !==
0) return false
20015 // v = X2 * Z1 - X1 * Z2
20016 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
20018 return v.signum() ===
0
20021 Point.prototype.negate = function () {
20022 var y = this.curve.p.subtract(this.y)
20024 return new Point(this.curve, this.x, y, this.z)
20027 Point.prototype.add = function (b) {
20028 if (this.curve.isInfinity(this)) return b
20029 if (this.curve.isInfinity(b)) return this
20036 // u = Y2 * Z1 - Y1 * Z2
20037 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20038 // v = X2 * Z1 - X1 * Z2
20039 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20041 if (v.signum() ===
0) {
20042 if (u.signum() ===
0) {
20043 return this.twice() // this == b, so double
20046 return this.curve.infinity // this = -b, so infinity
20049 var v2 = v.square()
20050 var v3 = v2.multiply(v)
20051 var x1v2 = x1.multiply(v2)
20052 var zu2 = u.square().multiply(this.z)
20054 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20055 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20056 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20057 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)
20058 // z3 = v^
3 * z1 * z2
20059 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20061 return new Point(this.curve, x3, y3, z3)
20064 Point.prototype.twice = function () {
20065 if (this.curve.isInfinity(this)) return this
20066 if (this.y.signum() ===
0) return this.curve.infinity
20071 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20072 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20073 var a = this.curve.a
20075 // w =
3 * x1^
2 + a * z1^
2
20076 var w = x1.square().multiply(THREE)
20078 if (a.signum() !==
0) {
20079 w = w.add(this.z.square().multiply(a))
20082 w = w.mod(this.curve.p)
20083 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20084 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20085 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20086 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20087 // z3 =
8 * (y1 * z1)^
3
20088 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20090 return new Point(this.curve, x3, y3, z3)
20093 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20094 // TODO: modularize the multiplication algorithm
20095 Point.prototype.multiply = function (k) {
20096 if (this.curve.isInfinity(this)) return this
20097 if (k.signum() ===
0) return this.curve.infinity
20100 var h = e.multiply(THREE)
20102 var neg = this.negate()
20105 for (var i = h.bitLength() -
2; i
> 0; --i) {
20106 var hBit = h.testBit(i)
20107 var eBit = e.testBit(i)
20111 if (hBit !== eBit) {
20112 R = R.add(hBit ? this : neg)
20119 // Compute this*j + x*k (simultaneous multiplication)
20120 Point.prototype.multiplyTwo = function (j, x, k) {
20121 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20122 var R = this.curve.infinity
20123 var both = this.add(x)
20126 var jBit = j.testBit(i)
20127 var kBit = k.testBit(i)
20146 Point.prototype.getEncoded = function (compressed) {
20147 if (compressed == null) compressed = this.compressed
20148 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20150 var x = this.affineX
20151 var y = this.affineY
20152 var byteLength = this.curve.pLength
20157 buffer = new Buffer(
1 + byteLength)
20158 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20162 buffer = new Buffer(
1 + byteLength + byteLength)
20163 buffer.writeUInt8(
0x04,
0)
20165 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20168 x.toBuffer(byteLength).copy(buffer,
1)
20173 Point.decodeFrom = function (curve, buffer) {
20174 var type = buffer.readUInt8(
0)
20175 var compressed = (type !==
4)
20177 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20178 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20182 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20183 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20185 var isOdd = (type ===
0x03)
20186 Q = curve.pointFromX(isOdd, x)
20188 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20190 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20191 Q = Point.fromAffine(curve, x, y)
20194 Q.compressed = compressed
20198 Point.prototype.toString = function () {
20199 if (this.curve.isInfinity(this)) return '(INFINITY)'
20201 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20204 module.exports = Point
20206 }).call(this,require("buffer").Buffer)
20207 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20208 (function (Buffer){
20210 var Transform = require('stream').Transform
20211 var inherits = require('inherits')
20213 function HashBase (blockSize) {
20214 Transform.call(this)
20216 this._block = new Buffer(blockSize)
20217 this._blockSize = blockSize
20218 this._blockOffset =
0
20219 this._length = [
0,
0,
0,
0]
20221 this._finalized = false
20224 inherits(HashBase, Transform)
20226 HashBase.prototype._transform = function (chunk, encoding, callback) {
20229 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20238 HashBase.prototype._flush = function (callback) {
20241 this.push(this._digest())
20249 HashBase.prototype.update = function (data, encoding) {
20250 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20251 if (this._finalized) throw new Error('Digest already called')
20252 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20255 var block = this._block
20257 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20258 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20260 this._blockOffset =
0
20262 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20265 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20266 this._length[j] += carry
20267 carry = (this._length[j] /
0x0100000000) |
0
20268 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20274 HashBase.prototype._update = function (data) {
20275 throw new Error('_update is not implemented')
20278 HashBase.prototype.digest = function (encoding) {
20279 if (this._finalized) throw new Error('Digest already called')
20280 this._finalized = true
20282 var digest = this._digest()
20283 if (encoding !== undefined) digest = digest.toString(encoding)
20287 HashBase.prototype._digest = function () {
20288 throw new Error('_digest is not implemented')
20291 module.exports = HashBase
20293 }).call(this,require(
"buffer").Buffer)
20294 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20295 arguments[
4][
8][
0].apply(exports,arguments)
20296 },{
"dup":
8}],
94:[function(require,module,exports){
20297 (function (Buffer){
20298 // constant-space merkle root calculation algorithm
20299 module.exports = function fastRoot (values, digestFn) {
20300 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20301 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20303 var length = values.length
20304 var results = values.concat()
20306 while (length
> 1) {
20309 for (var i =
0; i < length; i +=
2, ++j) {
20310 var left = results[i]
20311 var right = i +
1 === length ? left : results[i +
1]
20312 var data = Buffer.concat([left, right])
20314 results[j] = digestFn(data)
20323 }).call(this,require(
"buffer").Buffer)
20324 },{
"buffer":
4}],
95:[function(require,module,exports){
20325 var OPS = require('bitcoin-ops')
20327 function encodingLength (i) {
20328 return i < OPS.OP_PUSHDATA1 ?
1
20334 function encode (buffer, number, offset) {
20335 var size = encodingLength(number)
20339 buffer.writeUInt8(number, offset)
20342 } else if (size ===
2) {
20343 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20344 buffer.writeUInt8(number, offset +
1)
20347 } else if (size ===
3) {
20348 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20349 buffer.writeUInt16LE(number, offset +
1)
20353 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20354 buffer.writeUInt32LE(number, offset +
1)
20360 function decode (buffer, offset) {
20361 var opcode = buffer.readUInt8(offset)
20365 if (opcode < OPS.OP_PUSHDATA1) {
20370 } else if (opcode === OPS.OP_PUSHDATA1) {
20371 if (offset +
2 > buffer.length) return null
20372 number = buffer.readUInt8(offset +
1)
20376 } else if (opcode === OPS.OP_PUSHDATA2) {
20377 if (offset +
3 > buffer.length) return null
20378 number = buffer.readUInt16LE(offset +
1)
20383 if (offset +
5 > buffer.length) return null
20384 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20386 number = buffer.readUInt32LE(offset +
1)
20398 encodingLength: encodingLength,
20403 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20404 (function (process,global){
20407 function oldBrowser () {
20408 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20411 var Buffer = require('safe-buffer').Buffer
20412 var crypto = global.crypto || global.msCrypto
20414 if (crypto && crypto.getRandomValues) {
20415 module.exports = randomBytes
20417 module.exports = oldBrowser
20420 function randomBytes (size, cb) {
20421 // phantomjs needs to throw
20422 if (size
> 65536) throw new Error('requested too many random bytes')
20423 // in case browserify isn't using the Uint8Array version
20424 var rawBytes = new global.Uint8Array(size)
20426 // This will not work in older browsers.
20427 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20428 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20429 crypto.getRandomValues(rawBytes)
20432 // XXX: phantomjs doesn't like a buffer being passed here
20433 var bytes = Buffer.from(rawBytes.buffer)
20435 if (typeof cb === 'function') {
20436 return process.nextTick(function () {
20444 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20445 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20446 (function (Buffer){
20448 var inherits = require('inherits')
20449 var HashBase = require('hash-base')
20451 function RIPEMD160 () {
20452 HashBase.call(this,
64)
20455 this._a =
0x67452301
20456 this._b =
0xefcdab89
20457 this._c =
0x98badcfe
20458 this._d =
0x10325476
20459 this._e =
0xc3d2e1f0
20462 inherits(RIPEMD160, HashBase)
20464 RIPEMD160.prototype._update = function () {
20465 var m = new Array(
16)
20466 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20474 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20476 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20477 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20478 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20479 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20480 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20481 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20482 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20483 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20484 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20485 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20486 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20487 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20488 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20489 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20490 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20491 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20492 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20494 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20496 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20497 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20498 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20499 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20500 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20501 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20502 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20503 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20504 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20505 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20506 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20507 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20508 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20509 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20510 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20511 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20512 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20514 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20516 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20517 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20518 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20519 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20520 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20521 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20522 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20523 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20524 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20525 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20526 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20527 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20528 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20529 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20530 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20531 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20532 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20534 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20536 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20537 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20538 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20539 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20540 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20541 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20542 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20543 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20544 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20545 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20546 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20547 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20548 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20549 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20550 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20551 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20552 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20554 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20556 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20557 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20558 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20559 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20560 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20561 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20562 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20563 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20564 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20565 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20566 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20567 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20568 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20569 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20570 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20571 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20572 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20580 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20582 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20583 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20584 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20585 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20586 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20587 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20588 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20589 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20590 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20591 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20592 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20593 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20594 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20595 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20596 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20597 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20598 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20600 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20602 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20603 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20604 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20605 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20606 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20607 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20608 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20609 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20610 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20611 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20612 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20613 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20614 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20615 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20616 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20617 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20618 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20620 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20622 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20623 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20624 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20625 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20626 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20627 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20628 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20629 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20630 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20631 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20632 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20633 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20634 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20635 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20636 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20637 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20638 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20640 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20642 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20643 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20644 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20645 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20646 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20647 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20648 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20649 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20650 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20651 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20652 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20653 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20654 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20655 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20656 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20657 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20658 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20660 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20662 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20663 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20664 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20665 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20666 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20667 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20668 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20669 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20670 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20671 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20672 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20673 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20674 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20675 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20676 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20677 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20678 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20681 var t = (this._b + cl + dr) |
0
20682 this._b = (this._c + dl + er) |
0
20683 this._c = (this._d + el + ar) |
0
20684 this._d = (this._e + al + br) |
0
20685 this._e = (this._a + bl + cr) |
0
20689 RIPEMD160.prototype._digest = function () {
20690 // create padding and handle blocks
20691 this._block[this._blockOffset++] =
0x80
20692 if (this._blockOffset
> 56) {
20693 this._block.fill(
0, this._blockOffset,
64)
20695 this._blockOffset =
0
20698 this._block.fill(
0, this._blockOffset,
56)
20699 this._block.writeUInt32LE(this._length[
0],
56)
20700 this._block.writeUInt32LE(this._length[
1],
60)
20704 var buffer = new Buffer(
20)
20705 buffer.writeInt32LE(this._a,
0)
20706 buffer.writeInt32LE(this._b,
4)
20707 buffer.writeInt32LE(this._c,
8)
20708 buffer.writeInt32LE(this._d,
12)
20709 buffer.writeInt32LE(this._e,
16)
20713 function rotl (x, n) {
20714 return (x << n) | (x
>>> (
32 - n))
20717 function fn1 (a, b, c, d, e, m, k, s) {
20718 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20721 function fn2 (a, b, c, d, e, m, k, s) {
20722 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20725 function fn3 (a, b, c, d, e, m, k, s) {
20726 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20729 function fn4 (a, b, c, d, e, m, k, s) {
20730 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20733 function fn5 (a, b, c, d, e, m, k, s) {
20734 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20737 module.exports = RIPEMD160
20739 }).call(this,require("buffer").Buffer)
20740 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20741 arguments[
4][
26][
0].apply(exports,arguments)
20742 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20743 (function (Buffer){
20744 // prototype class for hash functions
20745 function Hash (blockSize, finalSize) {
20746 this._block = new Buffer(blockSize)
20747 this._finalSize = finalSize
20748 this._blockSize = blockSize
20753 Hash.prototype.update = function (data, enc) {
20754 if (typeof data === 'string') {
20755 enc = enc || 'utf8'
20756 data = new Buffer(data, enc)
20759 var l = this._len += data.length
20760 var s = this._s ||
0
20762 var buffer = this._block
20765 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20768 for (var i =
0; i < ch; i++) {
20769 buffer[(s % this._blockSize) + i] = data[i + f]
20775 if ((s % this._blockSize) ===
0) {
20776 this._update(buffer)
20784 Hash.prototype.digest = function (enc) {
20785 // Suppose the length of the message M, in bits, is l
20786 var l = this._len *
8
20788 // Append the bit
1 to the end of the message
20789 this._block[this._len % this._blockSize] =
0x80
20791 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20792 this._block.fill(
0, this._len % this._blockSize +
1)
20794 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20795 this._update(this._block)
20796 this._block.fill(
0)
20799 // to this append the block which is equal to the number l written in binary
20800 // TODO: handle case where l is
> Math.pow(
2,
29)
20801 this._block.writeInt32BE(l, this._blockSize -
4)
20803 var hash = this._update(this._block) || this._hash()
20805 return enc ? hash.toString(enc) : hash
20808 Hash.prototype._update = function () {
20809 throw new Error('_update must be implemented by subclass')
20812 module.exports = Hash
20814 }).call(this,require("buffer").Buffer)
20815 },{"buffer":
4}],
100:[function(require,module,exports){
20816 var exports = module.exports = function SHA (algorithm) {
20817 algorithm = algorithm.toLowerCase()
20819 var Algorithm = exports[algorithm]
20820 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20822 return new Algorithm()
20825 exports.sha = require('./sha')
20826 exports.sha1 = require('./sha1')
20827 exports.sha224 = require('./sha224')
20828 exports.sha256 = require('./sha256')
20829 exports.sha384 = require('./sha384')
20830 exports.sha512 = require('./sha512')
20832 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20833 (function (Buffer){
20835 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20836 * in FIPS PUB
180-
1
20837 * This source code is derived from sha1.js of the same repository.
20838 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20839 * operation was added.
20842 var inherits = require('inherits')
20843 var Hash = require('./hash')
20846 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20849 var W = new Array(
80)
20855 Hash.call(this,
64,
56)
20858 inherits(Sha, Hash)
20860 Sha.prototype.init = function () {
20861 this._a =
0x67452301
20862 this._b =
0xefcdab89
20863 this._c =
0x98badcfe
20864 this._d =
0x10325476
20865 this._e =
0xc3d2e1f0
20870 function rotl5 (num) {
20871 return (num <<
5) | (num
>>> 27)
20874 function rotl30 (num) {
20875 return (num <<
30) | (num
>>> 2)
20878 function ft (s, b, c, d) {
20879 if (s ===
0) return (b & c) | ((~b) & d)
20880 if (s ===
2) return (b & c) | (b & d) | (c & d)
20884 Sha.prototype._update = function (M) {
20887 var a = this._a |
0
20888 var b = this._b |
0
20889 var c = this._c |
0
20890 var d = this._d |
0
20891 var e = this._e |
0
20893 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20894 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20896 for (var j =
0; j <
80; ++j) {
20898 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20907 this._a = (a + this._a) |
0
20908 this._b = (b + this._b) |
0
20909 this._c = (c + this._c) |
0
20910 this._d = (d + this._d) |
0
20911 this._e = (e + this._e) |
0
20914 Sha.prototype._hash = function () {
20915 var H = new Buffer(
20)
20917 H.writeInt32BE(this._a |
0,
0)
20918 H.writeInt32BE(this._b |
0,
4)
20919 H.writeInt32BE(this._c |
0,
8)
20920 H.writeInt32BE(this._d |
0,
12)
20921 H.writeInt32BE(this._e |
0,
16)
20926 module.exports = Sha
20928 }).call(this,require(
"buffer").Buffer)
20929 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20930 (function (Buffer){
20932 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20933 * in FIPS PUB
180-
1
20934 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20935 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20936 * Distributed under the BSD License
20937 * See http://pajhome.org.uk/crypt/md5 for details.
20940 var inherits = require('inherits')
20941 var Hash = require('./hash')
20944 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20947 var W = new Array(
80)
20953 Hash.call(this,
64,
56)
20956 inherits(Sha1, Hash)
20958 Sha1.prototype.init = function () {
20959 this._a =
0x67452301
20960 this._b =
0xefcdab89
20961 this._c =
0x98badcfe
20962 this._d =
0x10325476
20963 this._e =
0xc3d2e1f0
20968 function rotl1 (num) {
20969 return (num <<
1) | (num
>>> 31)
20972 function rotl5 (num) {
20973 return (num <<
5) | (num
>>> 27)
20976 function rotl30 (num) {
20977 return (num <<
30) | (num
>>> 2)
20980 function ft (s, b, c, d) {
20981 if (s ===
0) return (b & c) | ((~b) & d)
20982 if (s ===
2) return (b & c) | (b & d) | (c & d)
20986 Sha1.prototype._update = function (M) {
20989 var a = this._a |
0
20990 var b = this._b |
0
20991 var c = this._c |
0
20992 var d = this._d |
0
20993 var e = this._e |
0
20995 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20996 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20998 for (var j =
0; j <
80; ++j) {
21000 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
21009 this._a = (a + this._a) |
0
21010 this._b = (b + this._b) |
0
21011 this._c = (c + this._c) |
0
21012 this._d = (d + this._d) |
0
21013 this._e = (e + this._e) |
0
21016 Sha1.prototype._hash = function () {
21017 var H = new Buffer(
20)
21019 H.writeInt32BE(this._a |
0,
0)
21020 H.writeInt32BE(this._b |
0,
4)
21021 H.writeInt32BE(this._c |
0,
8)
21022 H.writeInt32BE(this._d |
0,
12)
21023 H.writeInt32BE(this._e |
0,
16)
21028 module.exports = Sha1
21030 }).call(this,require(
"buffer").Buffer)
21031 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
21032 (function (Buffer){
21034 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21036 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21037 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21041 var inherits = require('inherits')
21042 var Sha256 = require('./sha256')
21043 var Hash = require('./hash')
21045 var W = new Array(
64)
21047 function Sha224 () {
21050 this._w = W // new Array(
64)
21052 Hash.call(this,
64,
56)
21055 inherits(Sha224, Sha256)
21057 Sha224.prototype.init = function () {
21058 this._a =
0xc1059ed8
21059 this._b =
0x367cd507
21060 this._c =
0x3070dd17
21061 this._d =
0xf70e5939
21062 this._e =
0xffc00b31
21063 this._f =
0x68581511
21064 this._g =
0x64f98fa7
21065 this._h =
0xbefa4fa4
21070 Sha224.prototype._hash = function () {
21071 var H = new Buffer(
28)
21073 H.writeInt32BE(this._a,
0)
21074 H.writeInt32BE(this._b,
4)
21075 H.writeInt32BE(this._c,
8)
21076 H.writeInt32BE(this._d,
12)
21077 H.writeInt32BE(this._e,
16)
21078 H.writeInt32BE(this._f,
20)
21079 H.writeInt32BE(this._g,
24)
21084 module.exports = Sha224
21086 }).call(this,require(
"buffer").Buffer)
21087 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21088 (function (Buffer){
21090 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21092 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21093 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21097 var inherits = require('inherits')
21098 var Hash = require('./hash')
21101 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21102 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21103 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21104 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21105 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21106 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21107 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21108 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21109 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21110 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21111 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21112 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21113 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21114 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21115 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21116 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21119 var W = new Array(
64)
21121 function Sha256 () {
21124 this._w = W // new Array(
64)
21126 Hash.call(this,
64,
56)
21129 inherits(Sha256, Hash)
21131 Sha256.prototype.init = function () {
21132 this._a =
0x6a09e667
21133 this._b =
0xbb67ae85
21134 this._c =
0x3c6ef372
21135 this._d =
0xa54ff53a
21136 this._e =
0x510e527f
21137 this._f =
0x9b05688c
21138 this._g =
0x1f83d9ab
21139 this._h =
0x5be0cd19
21144 function ch (x, y, z) {
21145 return z ^ (x & (y ^ z))
21148 function maj (x, y, z) {
21149 return (x & y) | (z & (x | y))
21152 function sigma0 (x) {
21153 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21156 function sigma1 (x) {
21157 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21160 function gamma0 (x) {
21161 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21164 function gamma1 (x) {
21165 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21168 Sha256.prototype._update = function (M) {
21171 var a = this._a |
0
21172 var b = this._b |
0
21173 var c = this._c |
0
21174 var d = this._d |
0
21175 var e = this._e |
0
21176 var f = this._f |
0
21177 var g = this._g |
0
21178 var h = this._h |
0
21180 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21181 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21183 for (var j =
0; j <
64; ++j) {
21184 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21185 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21197 this._a = (a + this._a) |
0
21198 this._b = (b + this._b) |
0
21199 this._c = (c + this._c) |
0
21200 this._d = (d + this._d) |
0
21201 this._e = (e + this._e) |
0
21202 this._f = (f + this._f) |
0
21203 this._g = (g + this._g) |
0
21204 this._h = (h + this._h) |
0
21207 Sha256.prototype._hash = function () {
21208 var H = new Buffer(
32)
21210 H.writeInt32BE(this._a,
0)
21211 H.writeInt32BE(this._b,
4)
21212 H.writeInt32BE(this._c,
8)
21213 H.writeInt32BE(this._d,
12)
21214 H.writeInt32BE(this._e,
16)
21215 H.writeInt32BE(this._f,
20)
21216 H.writeInt32BE(this._g,
24)
21217 H.writeInt32BE(this._h,
28)
21222 module.exports = Sha256
21224 }).call(this,require(
"buffer").Buffer)
21225 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21226 (function (Buffer){
21227 var inherits = require('inherits')
21228 var SHA512 = require('./sha512')
21229 var Hash = require('./hash')
21231 var W = new Array(
160)
21233 function Sha384 () {
21237 Hash.call(this,
128,
112)
21240 inherits(Sha384, SHA512)
21242 Sha384.prototype.init = function () {
21243 this._ah =
0xcbbb9d5d
21244 this._bh =
0x629a292a
21245 this._ch =
0x9159015a
21246 this._dh =
0x152fecd8
21247 this._eh =
0x67332667
21248 this._fh =
0x8eb44a87
21249 this._gh =
0xdb0c2e0d
21250 this._hh =
0x47b5481d
21252 this._al =
0xc1059ed8
21253 this._bl =
0x367cd507
21254 this._cl =
0x3070dd17
21255 this._dl =
0xf70e5939
21256 this._el =
0xffc00b31
21257 this._fl =
0x68581511
21258 this._gl =
0x64f98fa7
21259 this._hl =
0xbefa4fa4
21264 Sha384.prototype._hash = function () {
21265 var H = new Buffer(
48)
21267 function writeInt64BE (h, l, offset) {
21268 H.writeInt32BE(h, offset)
21269 H.writeInt32BE(l, offset +
4)
21272 writeInt64BE(this._ah, this._al,
0)
21273 writeInt64BE(this._bh, this._bl,
8)
21274 writeInt64BE(this._ch, this._cl,
16)
21275 writeInt64BE(this._dh, this._dl,
24)
21276 writeInt64BE(this._eh, this._el,
32)
21277 writeInt64BE(this._fh, this._fl,
40)
21282 module.exports = Sha384
21284 }).call(this,require(
"buffer").Buffer)
21285 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21286 (function (Buffer){
21287 var inherits = require('inherits')
21288 var Hash = require('./hash')
21291 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21292 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21293 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21294 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21295 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21296 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21297 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21298 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21299 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21300 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21301 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21302 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21303 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21304 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21305 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21306 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21307 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21308 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21309 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21310 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21311 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21312 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21313 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21314 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21315 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21316 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21317 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21318 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21319 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21320 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21321 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21322 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21323 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21324 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21325 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21326 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21327 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21328 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21329 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21330 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21333 var W = new Array(
160)
21335 function Sha512 () {
21339 Hash.call(this,
128,
112)
21342 inherits(Sha512, Hash)
21344 Sha512.prototype.init = function () {
21345 this._ah =
0x6a09e667
21346 this._bh =
0xbb67ae85
21347 this._ch =
0x3c6ef372
21348 this._dh =
0xa54ff53a
21349 this._eh =
0x510e527f
21350 this._fh =
0x9b05688c
21351 this._gh =
0x1f83d9ab
21352 this._hh =
0x5be0cd19
21354 this._al =
0xf3bcc908
21355 this._bl =
0x84caa73b
21356 this._cl =
0xfe94f82b
21357 this._dl =
0x5f1d36f1
21358 this._el =
0xade682d1
21359 this._fl =
0x2b3e6c1f
21360 this._gl =
0xfb41bd6b
21361 this._hl =
0x137e2179
21366 function Ch (x, y, z) {
21367 return z ^ (x & (y ^ z))
21370 function maj (x, y, z) {
21371 return (x & y) | (z & (x | y))
21374 function sigma0 (x, xl) {
21375 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21378 function sigma1 (x, xl) {
21379 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21382 function Gamma0 (x, xl) {
21383 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21386 function Gamma0l (x, xl) {
21387 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21390 function Gamma1 (x, xl) {
21391 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21394 function Gamma1l (x, xl) {
21395 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21398 function getCarry (a, b) {
21399 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21402 Sha512.prototype._update = function (M) {
21405 var ah = this._ah |
0
21406 var bh = this._bh |
0
21407 var ch = this._ch |
0
21408 var dh = this._dh |
0
21409 var eh = this._eh |
0
21410 var fh = this._fh |
0
21411 var gh = this._gh |
0
21412 var hh = this._hh |
0
21414 var al = this._al |
0
21415 var bl = this._bl |
0
21416 var cl = this._cl |
0
21417 var dl = this._dl |
0
21418 var el = this._el |
0
21419 var fl = this._fl |
0
21420 var gl = this._gl |
0
21421 var hl = this._hl |
0
21423 for (var i =
0; i <
32; i +=
2) {
21424 W[i] = M.readInt32BE(i *
4)
21425 W[i +
1] = M.readInt32BE(i *
4 +
4)
21427 for (; i <
160; i +=
2) {
21428 var xh = W[i -
15 *
2]
21429 var xl = W[i -
15 *
2 +
1]
21430 var gamma0 = Gamma0(xh, xl)
21431 var gamma0l = Gamma0l(xl, xh)
21434 xl = W[i -
2 *
2 +
1]
21435 var gamma1 = Gamma1(xh, xl)
21436 var gamma1l = Gamma1l(xl, xh)
21438 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21439 var Wi7h = W[i -
7 *
2]
21440 var Wi7l = W[i -
7 *
2 +
1]
21442 var Wi16h = W[i -
16 *
2]
21443 var Wi16l = W[i -
16 *
2 +
1]
21445 var Wil = (gamma0l + Wi7l) |
0
21446 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21447 Wil = (Wil + gamma1l) |
0
21448 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21449 Wil = (Wil + Wi16l) |
0
21450 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21456 for (var j =
0; j <
160; j +=
2) {
21460 var majh = maj(ah, bh, ch)
21461 var majl = maj(al, bl, cl)
21463 var sigma0h = sigma0(ah, al)
21464 var sigma0l = sigma0(al, ah)
21465 var sigma1h = sigma1(eh, el)
21466 var sigma1l = sigma1(el, eh)
21468 // t1 = h + sigma1 + ch + K[j] + W[j]
21472 var chh = Ch(eh, fh, gh)
21473 var chl = Ch(el, fl, gl)
21475 var t1l = (hl + sigma1l) |
0
21476 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21477 t1l = (t1l + chl) |
0
21478 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21479 t1l = (t1l + Kil) |
0
21480 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21481 t1l = (t1l + Wil) |
0
21482 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21484 // t2 = sigma0 + maj
21485 var t2l = (sigma0l + majl) |
0
21486 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21494 el = (dl + t1l) |
0
21495 eh = (dh + t1h + getCarry(el, dl)) |
0
21502 al = (t1l + t2l) |
0
21503 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21506 this._al = (this._al + al) |
0
21507 this._bl = (this._bl + bl) |
0
21508 this._cl = (this._cl + cl) |
0
21509 this._dl = (this._dl + dl) |
0
21510 this._el = (this._el + el) |
0
21511 this._fl = (this._fl + fl) |
0
21512 this._gl = (this._gl + gl) |
0
21513 this._hl = (this._hl + hl) |
0
21515 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21516 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21517 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21518 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21519 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21520 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21521 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21522 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21525 Sha512.prototype._hash = function () {
21526 var H = new Buffer(
64)
21528 function writeInt64BE (h, l, offset) {
21529 H.writeInt32BE(h, offset)
21530 H.writeInt32BE(l, offset +
4)
21533 writeInt64BE(this._ah, this._al,
0)
21534 writeInt64BE(this._bh, this._bl,
8)
21535 writeInt64BE(this._ch, this._cl,
16)
21536 writeInt64BE(this._dh, this._dl,
24)
21537 writeInt64BE(this._eh, this._el,
32)
21538 writeInt64BE(this._fh, this._fl,
40)
21539 writeInt64BE(this._gh, this._gl,
48)
21540 writeInt64BE(this._hh, this._hl,
56)
21545 module.exports = Sha512
21547 }).call(this,require(
"buffer").Buffer)
21548 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21549 var inherits = require('inherits')
21550 var native = require('./native')
21552 function TfTypeError (type, value, valueTypeName) {
21553 this.__error = Error.call(this)
21555 this.__value = value
21556 this.__valueTypeName = valueTypeName
21559 Object.defineProperty(this, 'message', {
21562 if (message) return message
21564 valueTypeName = valueTypeName || getValueTypeName(value)
21565 message = tfErrorString(type, value, valueTypeName)
21572 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21573 this.__error = error || Error.call(this)
21574 this.__label = label
21575 this.__property = property
21577 this.__value = value
21578 this.__valueTypeName = valueTypeName
21581 Object.defineProperty(this, 'message', {
21584 if (message) return message
21586 valueTypeName = valueTypeName || getValueTypeName(value)
21587 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21589 message = 'Unexpected property
"' + property + '"'
21597 // inherit from Error, assign stack
21598 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21599 inherits(tfErrorType, Error)
21600 Object.defineProperty(tfErrorType, 'stack', {
21601 get: function () { return this.__error.stack }
21605 function tfCustomError (expected, actual) {
21606 return new TfTypeError(expected, {}, actual)
21609 function tfSubError (e, property, label) {
21611 if (e instanceof TfPropertyTypeError) {
21612 property = property + '.' + e.__property
21615 return new TfPropertyTypeError(
21616 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21621 if (e instanceof TfTypeError) {
21622 return new TfPropertyTypeError(
21623 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21630 function getTypeName (fn) {
21631 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21634 function getValueTypeName (value) {
21635 return native.Nil(value) ? '' : getTypeName(value.constructor)
21638 function getValue (value) {
21639 if (native.Function(value)) return ''
21640 if (native.String(value)) return JSON.stringify(value)
21641 if (value && native.Object(value)) return ''
21645 function tfJSON (type) {
21646 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21647 if (native.Array(type)) return 'Array'
21648 if (type && native.Object(type)) return 'Object'
21650 return type !== undefined ? type : ''
21653 function tfErrorString (type, value, valueTypeName) {
21654 var valueJson = getValue(value)
21656 return 'Expected ' + tfJSON(type) + ', got' +
21657 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21658 (valueJson !== '' ? ' ' + valueJson : '')
21661 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21662 var description = '
" of type '
21663 if (label === 'key') description = '" with key type '
21665 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21669 TfTypeError: TfTypeError,
21670 TfPropertyTypeError: TfPropertyTypeError,
21671 tfCustomError: tfCustomError,
21672 tfSubError: tfSubError,
21674 getValueTypeName: getValueTypeName
21677 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21678 (function (Buffer){
21679 var NATIVE = require('./native')
21680 var ERRORS = require('./errors')
21682 function _Buffer (value) {
21683 return Buffer.isBuffer(value)
21686 function Hex (value) {
21687 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21690 function _LengthN (type, length) {
21691 var name = type.toJSON()
21693 function Length (value) {
21694 if (!type(value)) return false
21695 if (value.length === length) return true
21697 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21699 Length.toJSON = function () { return name }
21704 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21705 var _BufferN = _LengthN.bind(null, _Buffer)
21706 var _HexN = _LengthN.bind(null, Hex)
21708 var UINT53_MAX = Math.pow(2, 53) - 1
21710 function Finite (value) {
21711 return typeof value === 'number' && isFinite(value)
21713 function Int8 (value) { return ((value << 24) >> 24) === value }
21714 function Int16 (value) { return ((value << 16) >> 16) === value }
21715 function Int32 (value) { return (value | 0) === value }
21716 function UInt8 (value) { return (value & 0xff) === value }
21717 function UInt16 (value) { return (value & 0xffff) === value }
21718 function UInt32 (value) { return (value >>> 0) === value }
21719 function UInt53 (value) {
21720 return typeof value === 'number' &&
21722 value <= UINT53_MAX &&
21723 Math.floor(value) === value
21742 for (var typeName in types) {
21743 types[typeName].toJSON = function (t) {
21745 }.bind(null, typeName)
21748 module.exports = types
21750 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21751 },{"../../../../../.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){
21752 var ERRORS = require('./errors')
21753 var NATIVE = require('./native')
21756 var tfJSON = ERRORS.tfJSON
21757 var TfTypeError = ERRORS.TfTypeError
21758 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21759 var tfSubError = ERRORS.tfSubError
21760 var getValueTypeName = ERRORS.getValueTypeName
21763 arrayOf: function arrayOf (type) {
21764 type = compile(type)
21766 function _arrayOf (array, strict) {
21767 if (!NATIVE.Array(array)) return false
21769 return array.every(function (value, i) {
21771 return typeforce(type, value, strict)
21773 throw tfSubError(e, i)
21777 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21782 maybe: function maybe (type) {
21783 type = compile(type)
21785 function _maybe (value, strict) {
21786 return NATIVE.Nil(value) || type(value, strict, maybe)
21788 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21793 map: function map (propertyType, propertyKeyType) {
21794 propertyType = compile(propertyType)
21795 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21797 function _map (value, strict) {
21798 if (!NATIVE.Object(value, strict)) return false
21799 if (NATIVE.Nil(value, strict)) return false
21801 for (var propertyName in value) {
21803 if (propertyKeyType) {
21804 typeforce(propertyKeyType, propertyName, strict)
21807 throw tfSubError(e, propertyName, 'key')
21811 var propertyValue = value[propertyName]
21812 typeforce(propertyType, propertyValue, strict)
21814 throw tfSubError(e, propertyName)
21821 if (propertyKeyType) {
21822 _map.toJSON = function () {
21823 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21826 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21832 object: function object (uncompiled) {
21835 for (var typePropertyName in uncompiled) {
21836 type[typePropertyName] = compile(uncompiled[typePropertyName])
21839 function _object (value, strict) {
21840 if (!NATIVE.Object(value)) return false
21841 if (NATIVE.Nil(value)) return false
21846 for (propertyName in type) {
21847 var propertyType = type[propertyName]
21848 var propertyValue = value[propertyName]
21850 typeforce(propertyType, propertyValue, strict)
21853 throw tfSubError(e, propertyName)
21857 for (propertyName in value) {
21858 if (type[propertyName]) continue
21860 throw new TfPropertyTypeError(undefined, propertyName)
21866 _object.toJSON = function () { return tfJSON(type) }
21871 oneOf: function oneOf () {
21872 var types = [].slice.call(arguments).map(compile)
21874 function _oneOf (value, strict) {
21875 return types.some(function (type) {
21877 return typeforce(type, value, strict)
21883 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21888 quacksLike: function quacksLike (type) {
21889 function _quacksLike (value) {
21890 return type === getValueTypeName(value)
21892 _quacksLike.toJSON = function () { return type }
21897 tuple: function tuple () {
21898 var types = [].slice.call(arguments).map(compile)
21900 function _tuple (values, strict) {
21901 return types.every(function (type, i) {
21903 return typeforce(type, values[i], strict)
21905 throw tfSubError(e, i)
21907 }) && (!strict || values.length === arguments.length)
21909 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21914 value: function value (expected) {
21915 function _value (actual) {
21916 return actual === expected
21918 _value.toJSON = function () { return expected }
21924 function compile (type) {
21925 if (NATIVE.String(type)) {
21926 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21928 return NATIVE[type] || TYPES.quacksLike(type)
21929 } else if (type && NATIVE.Object(type)) {
21930 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21932 return TYPES.object(type)
21933 } else if (NATIVE.Function(type)) {
21937 return TYPES.value(type)
21940 function typeforce (type, value, strict, surrogate) {
21941 if (NATIVE.Function(type)) {
21942 if (type(value, strict)) return true
21944 throw new TfTypeError(surrogate || type, value)
21948 return typeforce(compile(type), value, strict)
21951 // assign types to typeforce function
21952 for (var typeName in NATIVE) {
21953 typeforce[typeName] = NATIVE[typeName]
21956 for (typeName in TYPES) {
21957 typeforce[typeName] = TYPES[typeName]
21960 var EXTRA = require('./extra')
21961 for (typeName in EXTRA) {
21962 typeforce[typeName] = EXTRA[typeName]
21966 function __async (type, value, strict, callback) {
21967 // default to falsy strict if using shorthand overload
21968 if (typeof strict === 'function') return __async(type, value, false, strict)
21971 typeforce(type, value, strict)
21979 typeforce.async = __async
21980 typeforce.compile = compile
21981 typeforce.TfTypeError = TfTypeError
21982 typeforce.TfPropertyTypeError = TfPropertyTypeError
21984 module.exports = typeforce
21986 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21988 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21989 Boolean: function (value) { return typeof value === 'boolean' },
21990 Function: function (value) { return typeof value === 'function' },
21991 Nil: function (value) { return value === undefined || value === null },
21992 Number: function (value) { return typeof value === 'number' },
21993 Object: function (value) { return typeof value === 'object' },
21994 String: function (value) { return typeof value === 'string' },
21995 '': function () { return true }
21999 types.Null = types.Nil
22001 for (var typeName in types) {
22002 types[typeName].toJSON = function (t) {
22004 }.bind(null, typeName)
22007 module.exports = types
22009 },{}],111:[function(require,module,exports){
22010 (function (Buffer){
22013 // Number.MAX_SAFE_INTEGER
22014 var MAX_SAFE_INTEGER = 9007199254740991
22016 function checkUInt53 (n) {
22017 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
22020 function encode (number, buffer, offset) {
22021 checkUInt53(number)
22023 if (!buffer) buffer = new Buffer(encodingLength(number))
22024 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22025 if (!offset) offset = 0
22028 if (number < 0xfd) {
22029 buffer.writeUInt8(number, offset)
22033 } else if (number <= 0xffff) {
22034 buffer.writeUInt8(0xfd, offset)
22035 buffer.writeUInt16LE(number, offset + 1)
22039 } else if (number <= 0xffffffff) {
22040 buffer.writeUInt8(0xfe, offset)
22041 buffer.writeUInt32LE(number, offset + 1)
22046 buffer.writeUInt8(0xff, offset)
22047 buffer.writeUInt32LE(number >>> 0, offset + 1)
22048 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22055 function decode (buffer, offset) {
22056 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22057 if (!offset) offset = 0
22059 var first = buffer.readUInt8(offset)
22062 if (first < 0xfd) {
22067 } else if (first === 0xfd) {
22069 return buffer.readUInt16LE(offset + 1)
22072 } else if (first === 0xfe) {
22074 return buffer.readUInt32LE(offset + 1)
22079 var lo = buffer.readUInt32LE(offset + 1)
22080 var hi = buffer.readUInt32LE(offset + 5)
22081 var number = hi * 0x0100000000 + lo
22082 checkUInt53(number)
22088 function encodingLength (number) {
22089 checkUInt53(number)
22093 : number <= 0xffff ? 3
22094 : number <= 0xffffffff ? 5
22099 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22101 }).call(this,require("buffer
").Buffer)
22102 },{"buffer
":4}],112:[function(require,module,exports){
22103 (function (Buffer){
22104 var bs58check = require('bs58check')
22106 function decodeRaw (buffer, version) {
22107 // check version only if defined
22108 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22111 if (buffer.length === 33) {
22113 version: buffer[0],
22114 privateKey: buffer.slice(1, 33),
22120 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22122 // invalid compression flag
22123 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22126 version: buffer[0],
22127 privateKey: buffer.slice(1, 33),
22132 function encodeRaw (version, privateKey, compressed) {
22133 var result = new Buffer(compressed ? 34 : 33)
22135 result.writeUInt8(version, 0)
22136 privateKey.copy(result, 1)
22145 function decode (string, version) {
22146 return decodeRaw(bs58check.decode(string), version)
22149 function encode (version, privateKey, compressed) {
22150 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22152 return bs58check.encode(
22155 version.privateKey,
22163 decodeRaw: decodeRaw,
22165 encodeRaw: encodeRaw
22168 }).call(this,require("buffer
").Buffer)
22169 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22172 <script>bitcoinjs.bitcoin.networks.shadow = {
22173 messagePrefix: 'unused',
22175 public: 0xEE80286A,
22176 private: 0xEE8031E8
22183 bitcoinjs.bitcoin.networks.shadowtn = {
22184 messagePrefix: 'unused',
22186 public: 0x76C0FDFB,
22187 private: 0x76C1077A
22194 bitcoinjs.bitcoin.networks.clam = {
22195 messagePrefix: 'unused',
22197 public: 0xa8c26d64,
22198 private: 0xa8c17826
22201 scriptHash: 0x00, // TODO set this correctly
22205 bitcoinjs.bitcoin.networks.crown = {
22206 messagePrefix: 'unused',
22208 public: 0x0488b21e,
22209 private: 0x0488ade4
22216 bitcoinjs.bitcoin.networks.dash = {
22217 messagePrefix: 'unused',
22219 public: 0x0488b21e,
22220 private: 0x0488ade4
22227 bitcoinjs.bitcoin.networks.maza = {
22228 messagePrefix: 'unused',
22230 public: 0x0488b21e,
22231 private: 0x0488ade4
22238 bitcoinjs.bitcoin.networks.dashtn = {
22239 messagePrefix: 'unused',
22241 public: 0x043587cf,
22242 private: 0x04358394
22249 bitcoinjs.bitcoin.networks.game = {
22250 messagePrefix: 'unused',
22252 public: 0x0488b21e,
22253 private: 0x0488ade4
22260 bitcoinjs.bitcoin.networks.namecoin = {
22261 messagePrefix: 'unused',
22263 public: 0x0488b21e,
22264 private: 0x0488ade4
22267 scriptHash: 0x00, // TODO set this correctly
22271 bitcoinjs.bitcoin.networks.peercoin = {
22272 messagePrefix: 'unused',
22274 public: 0x0488b21e,
22275 private: 0x0488ade4
22278 scriptHash: 0x00, // TODO set this correctly
22282 bitcoinjs.bitcoin.networks.slimcoin = {
22283 messagePrefix: 'unused',
22285 public: 0xef6adf10,
22286 private: 0xef69ea80
22293 bitcoinjs.bitcoin.networks.slimcointn = {
22294 messagePrefix: 'unused',
22296 public: 0x043587CF,
22297 private: 0x04358394
22304 bitcoinjs.bitcoin.networks.dogecoin = {
22305 messagePrefix: '\x19Dogecoin Signed Message:\n',
22307 public: 0x02facafd,
22308 private: 0x02fac398
22315 bitcoinjs.bitcoin.networks.viacoin = {
22316 messagePrefix: '\x18Viacoin Signed Message:\n',
22318 public: 0x0488b21e,
22319 private: 0x0488ade4
22326 bitcoinjs.bitcoin.networks.viacointestnet = {
22327 messagePrefix: '\x18Viacoin Signed Message:\n',
22329 public: 0x043587cf,
22330 private: 0x04358394
22337 bitcoinjs.bitcoin.networks.gamerscoin = {
22338 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22340 public: 0x019da462,
22341 private: 0x019d9cfe
22348 bitcoinjs.bitcoin.networks.jumbucks = {
22349 messagePrefix: '\x19Jumbucks Signed Message:\n',
22351 public: 0x037a689a,
22352 private: 0x037a6460
22359 bitcoinjs.bitcoin.networks.zetacoin = {
22360 messagePrefix: '\x18Zetacoin Signed Message:\n',
22362 public: 0x0488b21e,
22363 private: 0x0488ade4
22370 bitcoinjs.bitcoin.networks.myriadcoin = {
22371 messagePrefix: 'unused',
22373 public: 0x0488b21e,
22374 private: 0x0488ade4
22377 scriptHash: 0x00, // TODO set this correctly
22381 bitcoinjs.bitcoin.networks.pivx = {
22382 messagePrefix: 'unused',
22384 public: 0x022d2533,
22385 private: 0x0221312b
22392 bitcoinjs.bitcoin.networks.pivxtestnet = {
22393 messagePrefix: 'unused',
22395 public: 0x3a8061a0,
22396 private: 0x3a805837
22403 bitcoinjs.bitcoin.networks.fujicoin = {
22404 messagePrefix: '\x19FujiCoin Signed Message:\n',
22406 public: 0x0488b21e,
22407 private: 0x0488ade4
22414 bitcoinjs.bitcoin.networks.nubits = {
22415 messagePrefix: '\x18Nu Signed Message:\n',
22417 public: 0x0488b21e,
22418 private: 0x0488ade4
22425 bitcoinjs.bitcoin.networks.bgold = {
22426 messagePrefix: 'unused',
22428 public: 0x0488b21e,
22429 private: 0x0488ade4
22436 bitcoinjs.bitcoin.networks.bitcoinCashBitbpay = {
22437 messagePrefix: '\x18Bitcoin Signed Message:\n',
22439 public: 0x0488b21e,
22440 private: 0x0488ade4
22447 bitcoinjs.bitcoin.networks.bitcoinBip49 = {
22448 messagePrefix: '\x18Bitcoin Signed Message:\n',
22450 public: 0x049d7cb2,
22451 private: 0x049d7878
22458 bitcoinjs.bitcoin.networks.testnetBip49 = {
22459 messagePrefix: '\x18Bitcoin Signed Message:\n',
22461 public: 0x044a5262,
22462 private: 0x044a4e28
22469 bitcoinjs.bitcoin.networks.litecoinBip49 = {
22470 messagePrefix: '\x19Litecoin Signed Message:\n',
22472 public: 0x01b26ef6,
22473 private: 0x01b26792
22480 <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){
22481 (function (global){
22484 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22485 // original notice:
22488 * The buffer module from node.js, for the browser.
22490 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22493 function compare(a, b) {
22501 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22502 if (a[i] !== b[i]) {
22517 function isBuffer(b) {
22518 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22519 return global.Buffer.isBuffer(b);
22521 return !!(b != null && b._isBuffer);
22524 // based on node assert, original notice:
22526 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22528 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22530 // Originally from narwhal.js (http://narwhaljs.org)
22531 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22533 // Permission is hereby granted, free of charge, to any person obtaining a copy
22534 // of this software and associated documentation files (the 'Software'), to
22535 // deal in the Software without restriction, including without limitation the
22536 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22537 // sell copies of the Software, and to permit persons to whom the Software is
22538 // furnished to do so, subject to the following conditions:
22540 // The above copyright notice and this permission notice shall be included in
22541 // all copies or substantial portions of the Software.
22543 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22544 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22545 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22546 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22547 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22548 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22550 var util = require('util/');
22551 var hasOwn = Object.prototype.hasOwnProperty;
22552 var pSlice = Array.prototype.slice;
22553 var functionsHaveNames = (function () {
22554 return function foo() {}.name === 'foo';
22556 function pToString (obj) {
22557 return Object.prototype.toString.call(obj);
22559 function isView(arrbuf) {
22560 if (isBuffer(arrbuf)) {
22563 if (typeof global.ArrayBuffer !== 'function') {
22566 if (typeof ArrayBuffer.isView === 'function') {
22567 return ArrayBuffer.isView(arrbuf);
22572 if (arrbuf instanceof DataView) {
22575 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22580 //
1. The assert module provides functions that throw
22581 // AssertionError's when particular conditions are not met. The
22582 // assert module must conform to the following interface.
22584 var assert = module.exports = ok;
22586 //
2. The AssertionError is defined in assert.
22587 // new assert.AssertionError({ message: message,
22589 // expected: expected })
22591 var regex = /\s*function\s+([^\(\s]*)\s*/;
22592 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22593 function getName(func) {
22594 if (!util.isFunction(func)) {
22597 if (functionsHaveNames) {
22600 var str = func.toString();
22601 var match = str.match(regex);
22602 return match && match[
1];
22604 assert.AssertionError = function AssertionError(options) {
22605 this.name = 'AssertionError';
22606 this.actual = options.actual;
22607 this.expected = options.expected;
22608 this.operator = options.operator;
22609 if (options.message) {
22610 this.message = options.message;
22611 this.generatedMessage = false;
22613 this.message = getMessage(this);
22614 this.generatedMessage = true;
22616 var stackStartFunction = options.stackStartFunction || fail;
22617 if (Error.captureStackTrace) {
22618 Error.captureStackTrace(this, stackStartFunction);
22620 // non v8 browsers so we can have a stacktrace
22621 var err = new Error();
22623 var out = err.stack;
22625 // try to strip useless frames
22626 var fn_name = getName(stackStartFunction);
22627 var idx = out.indexOf('\n' + fn_name);
22629 // once we have located the function frame
22630 // we need to strip out everything before it (and its line)
22631 var next_line = out.indexOf('\n', idx +
1);
22632 out = out.substring(next_line +
1);
22640 // assert.AssertionError instanceof Error
22641 util.inherits(assert.AssertionError, Error);
22643 function truncate(s, n) {
22644 if (typeof s === 'string') {
22645 return s.length < n ? s : s.slice(
0, n);
22650 function inspect(something) {
22651 if (functionsHaveNames || !util.isFunction(something)) {
22652 return util.inspect(something);
22654 var rawname = getName(something);
22655 var name = rawname ? ': ' + rawname : '';
22656 return '[Function' + name + ']';
22658 function getMessage(self) {
22659 return truncate(inspect(self.actual),
128) + ' ' +
22660 self.operator + ' ' +
22661 truncate(inspect(self.expected),
128);
22664 // At present only the three keys mentioned above are used and
22665 // understood by the spec. Implementations or sub modules can pass
22666 // other keys to the AssertionError's constructor - they will be
22669 //
3. All of the following functions must throw an AssertionError
22670 // when a corresponding condition is not met, with a message that
22671 // may be undefined if not provided. All assertion methods provide
22672 // both the actual and expected values to the assertion error for
22673 // display purposes.
22675 function fail(actual, expected, message, operator, stackStartFunction) {
22676 throw new assert.AssertionError({
22679 expected: expected,
22680 operator: operator,
22681 stackStartFunction: stackStartFunction
22685 // EXTENSION! allows for well behaved errors defined elsewhere.
22686 assert.fail = fail;
22688 //
4. Pure assertion tests whether a value is truthy, as determined
22690 // assert.ok(guard, message_opt);
22691 // This statement is equivalent to assert.equal(true, !!guard,
22692 // message_opt);. To test strictly for the value true, use
22693 // assert.strictEqual(true, guard, message_opt);.
22695 function ok(value, message) {
22696 if (!value) fail(value, true, message, '==', assert.ok);
22700 //
5. The equality assertion tests shallow, coercive equality with
22702 // assert.equal(actual, expected, message_opt);
22704 assert.equal = function equal(actual, expected, message) {
22705 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22708 //
6. The non-equality assertion tests for whether two objects are not equal
22709 // with != assert.notEqual(actual, expected, message_opt);
22711 assert.notEqual = function notEqual(actual, expected, message) {
22712 if (actual == expected) {
22713 fail(actual, expected, message, '!=', assert.notEqual);
22717 //
7. The equivalence assertion tests a deep equality relation.
22718 // assert.deepEqual(actual, expected, message_opt);
22720 assert.deepEqual = function deepEqual(actual, expected, message) {
22721 if (!_deepEqual(actual, expected, false)) {
22722 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22726 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22727 if (!_deepEqual(actual, expected, true)) {
22728 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22732 function _deepEqual(actual, expected, strict, memos) {
22733 //
7.1. All identical values are equivalent, as determined by ===.
22734 if (actual === expected) {
22736 } else if (isBuffer(actual) && isBuffer(expected)) {
22737 return compare(actual, expected) ===
0;
22739 //
7.2. If the expected value is a Date object, the actual value is
22740 // equivalent if it is also a Date object that refers to the same time.
22741 } else if (util.isDate(actual) && util.isDate(expected)) {
22742 return actual.getTime() === expected.getTime();
22744 //
7.3 If the expected value is a RegExp object, the actual value is
22745 // equivalent if it is also a RegExp object with the same source and
22746 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22747 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22748 return actual.source === expected.source &&
22749 actual.global === expected.global &&
22750 actual.multiline === expected.multiline &&
22751 actual.lastIndex === expected.lastIndex &&
22752 actual.ignoreCase === expected.ignoreCase;
22754 //
7.4. Other pairs that do not both pass typeof value == 'object',
22755 // equivalence is determined by ==.
22756 } else if ((actual === null || typeof actual !== 'object') &&
22757 (expected === null || typeof expected !== 'object')) {
22758 return strict ? actual === expected : actual == expected;
22760 // If both values are instances of typed arrays, wrap their underlying
22761 // ArrayBuffers in a Buffer each to increase performance
22762 // This optimization requires the arrays to have the same type as checked by
22763 // Object.prototype.toString (aka pToString). Never perform binary
22764 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22765 // bit patterns are not identical.
22766 } else if (isView(actual) && isView(expected) &&
22767 pToString(actual) === pToString(expected) &&
22768 !(actual instanceof Float32Array ||
22769 actual instanceof Float64Array)) {
22770 return compare(new Uint8Array(actual.buffer),
22771 new Uint8Array(expected.buffer)) ===
0;
22773 //
7.5 For all other Object pairs, including Array objects, equivalence is
22774 // determined by having the same number of owned properties (as verified
22775 // with Object.prototype.hasOwnProperty.call), the same set of keys
22776 // (although not necessarily the same order), equivalent values for every
22777 // corresponding key, and an identical 'prototype' property. Note: this
22778 // accounts for both named and indexed properties on Arrays.
22779 } else if (isBuffer(actual) !== isBuffer(expected)) {
22782 memos = memos || {actual: [], expected: []};
22784 var actualIndex = memos.actual.indexOf(actual);
22785 if (actualIndex !== -
1) {
22786 if (actualIndex === memos.expected.indexOf(expected)) {
22791 memos.actual.push(actual);
22792 memos.expected.push(expected);
22794 return objEquiv(actual, expected, strict, memos);
22798 function isArguments(object) {
22799 return Object.prototype.toString.call(object) == '[object Arguments]';
22802 function objEquiv(a, b, strict, actualVisitedObjects) {
22803 if (a === null || a === undefined || b === null || b === undefined)
22805 // if one is a primitive, the other must be same
22806 if (util.isPrimitive(a) || util.isPrimitive(b))
22808 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22810 var aIsArgs = isArguments(a);
22811 var bIsArgs = isArguments(b);
22812 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22815 a = pSlice.call(a);
22816 b = pSlice.call(b);
22817 return _deepEqual(a, b, strict);
22819 var ka = objectKeys(a);
22820 var kb = objectKeys(b);
22822 // having the same number of owned properties (keys incorporates
22824 if (ka.length !== kb.length)
22826 //the same set of keys (although not necessarily the same order),
22829 //~~~cheap key test
22830 for (i = ka.length -
1; i
>=
0; i--) {
22831 if (ka[i] !== kb[i])
22834 //equivalent values for every corresponding key, and
22835 //~~~possibly expensive deep test
22836 for (i = ka.length -
1; i
>=
0; i--) {
22838 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22844 //
8. The non-equivalence assertion tests for any deep inequality.
22845 // assert.notDeepEqual(actual, expected, message_opt);
22847 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22848 if (_deepEqual(actual, expected, false)) {
22849 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22853 assert.notDeepStrictEqual = notDeepStrictEqual;
22854 function notDeepStrictEqual(actual, expected, message) {
22855 if (_deepEqual(actual, expected, true)) {
22856 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22861 //
9. The strict equality assertion tests strict equality, as determined by ===.
22862 // assert.strictEqual(actual, expected, message_opt);
22864 assert.strictEqual = function strictEqual(actual, expected, message) {
22865 if (actual !== expected) {
22866 fail(actual, expected, message, '===', assert.strictEqual);
22870 //
10. The strict non-equality assertion tests for strict inequality, as
22871 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22873 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22874 if (actual === expected) {
22875 fail(actual, expected, message, '!==', assert.notStrictEqual);
22879 function expectedException(actual, expected) {
22880 if (!actual || !expected) {
22884 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22885 return expected.test(actual);
22889 if (actual instanceof expected) {
22893 // Ignore. The instanceof check doesn't work for arrow functions.
22896 if (Error.isPrototypeOf(expected)) {
22900 return expected.call({}, actual) === true;
22903 function _tryBlock(block) {
22913 function _throws(shouldThrow, block, expected, message) {
22916 if (typeof block !== 'function') {
22917 throw new TypeError('"block" argument must be a function');
22920 if (typeof expected === 'string') {
22921 message = expected;
22925 actual = _tryBlock(block);
22927 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22928 (message ? ' ' + message : '.');
22930 if (shouldThrow && !actual) {
22931 fail(actual, expected, 'Missing expected exception' + message);
22934 var userProvidedMessage = typeof message === 'string';
22935 var isUnwantedException = !shouldThrow && util.isError(actual);
22936 var isUnexpectedException = !shouldThrow && actual && !expected;
22938 if ((isUnwantedException &&
22939 userProvidedMessage &&
22940 expectedException(actual, expected)) ||
22941 isUnexpectedException) {
22942 fail(actual, expected, 'Got unwanted exception' + message);
22945 if ((shouldThrow && actual && expected &&
22946 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22951 //
11. Expected to throw an error:
22952 // assert.throws(block, Error_opt, message_opt);
22954 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22955 _throws(true, block, error, message);
22958 // EXTENSION! This is annoying to write outside this module.
22959 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22960 _throws(false, block, error, message);
22963 assert.ifError = function(err) { if (err) throw err; };
22965 var objectKeys = Object.keys || function (obj) {
22967 for (var key in obj) {
22968 if (hasOwn.call(obj, key)) keys.push(key);
22973 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22974 },{"util/":
30}],
2:[function(require,module,exports){
22977 exports.byteLength = byteLength
22978 exports.toByteArray = toByteArray
22979 exports.fromByteArray = fromByteArray
22983 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22985 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22986 for (var i =
0, len = code.length; i < len; ++i) {
22987 lookup[i] = code[i]
22988 revLookup[code.charCodeAt(i)] = i
22991 revLookup['-'.charCodeAt(
0)] =
62
22992 revLookup['_'.charCodeAt(
0)] =
63
22994 function placeHoldersCount (b64) {
22995 var len = b64.length
22997 throw new Error('Invalid string. Length must be a multiple of
4')
23000 // the number of equal signs (place holders)
23001 // if there are two placeholders, than the two characters before it
23002 // represent one byte
23003 // if there is only one, then the three characters before it represent
2 bytes
23004 // this is just a cheap hack to not do indexOf twice
23005 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
23008 function byteLength (b64) {
23009 // base64 is
4/
3 + up to two characters of the original data
23010 return b64.length *
3 /
4 - placeHoldersCount(b64)
23013 function toByteArray (b64) {
23014 var i, j, l, tmp, placeHolders, arr
23015 var len = b64.length
23016 placeHolders = placeHoldersCount(b64)
23018 arr = new Arr(len *
3 /
4 - placeHolders)
23020 // if there are placeholders, only get up to the last complete
4 chars
23021 l = placeHolders
> 0 ? len -
4 : len
23025 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
23026 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
23027 arr[L++] = (tmp
>> 16) &
0xFF
23028 arr[L++] = (tmp
>> 8) &
0xFF
23029 arr[L++] = tmp &
0xFF
23032 if (placeHolders ===
2) {
23033 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
23034 arr[L++] = tmp &
0xFF
23035 } else if (placeHolders ===
1) {
23036 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
23037 arr[L++] = (tmp
>> 8) &
0xFF
23038 arr[L++] = tmp &
0xFF
23044 function tripletToBase64 (num) {
23045 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
23048 function encodeChunk (uint8, start, end) {
23051 for (var i = start; i < end; i +=
3) {
23052 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
23053 output.push(tripletToBase64(tmp))
23055 return output.join('')
23058 function fromByteArray (uint8) {
23060 var len = uint8.length
23061 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
23064 var maxChunkLength =
16383 // must be multiple of
3
23066 // go through the array every three bytes, we'll deal with trailing stuff later
23067 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
23068 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
23071 // pad the end with zeros, but make sure to not forget the extra bytes
23072 if (extraBytes ===
1) {
23073 tmp = uint8[len -
1]
23074 output += lookup[tmp
>> 2]
23075 output += lookup[(tmp <<
4) &
0x3F]
23077 } else if (extraBytes ===
2) {
23078 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
23079 output += lookup[tmp
>> 10]
23080 output += lookup[(tmp
>> 4) &
0x3F]
23081 output += lookup[(tmp <<
2) &
0x3F]
23087 return parts.join('')
23090 },{}],
3:[function(require,module,exports){
23092 },{}],
4:[function(require,module,exports){
23093 (function (global){
23096 var buffer = require('buffer');
23097 var Buffer = buffer.Buffer;
23098 var SlowBuffer = buffer.SlowBuffer;
23099 var MAX_LEN = buffer.kMaxLength ||
2147483647;
23100 exports.alloc = function alloc(size, fill, encoding) {
23101 if (typeof Buffer.alloc === 'function') {
23102 return Buffer.alloc(size, fill, encoding);
23104 if (typeof encoding === 'number') {
23105 throw new TypeError('encoding must not be number');
23107 if (typeof size !== 'number') {
23108 throw new TypeError('size must be a number');
23110 if (size
> MAX_LEN) {
23111 throw new RangeError('size is too large');
23113 var enc = encoding;
23115 if (_fill === undefined) {
23119 var buf = new Buffer(size);
23120 if (typeof _fill === 'string') {
23121 var fillBuf = new Buffer(_fill, enc);
23122 var flen = fillBuf.length;
23124 while (++i < size) {
23125 buf[i] = fillBuf[i % flen];
23132 exports.allocUnsafe = function allocUnsafe(size) {
23133 if (typeof Buffer.allocUnsafe === 'function') {
23134 return Buffer.allocUnsafe(size);
23136 if (typeof size !== 'number') {
23137 throw new TypeError('size must be a number');
23139 if (size
> MAX_LEN) {
23140 throw new RangeError('size is too large');
23142 return new Buffer(size);
23144 exports.from = function from(value, encodingOrOffset, length) {
23145 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23146 return Buffer.from(value, encodingOrOffset, length);
23148 if (typeof value === 'number') {
23149 throw new TypeError('"value" argument must not be a number');
23151 if (typeof value === 'string') {
23152 return new Buffer(value, encodingOrOffset);
23154 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23155 var offset = encodingOrOffset;
23156 if (arguments.length ===
1) {
23157 return new Buffer(value);
23159 if (typeof offset === 'undefined') {
23163 if (typeof len === 'undefined') {
23164 len = value.byteLength - offset;
23166 if (offset
>= value.byteLength) {
23167 throw new RangeError('\'offset\' is out of bounds');
23169 if (len
> value.byteLength - offset) {
23170 throw new RangeError('\'length\' is out of bounds');
23172 return new Buffer(value.slice(offset, offset + len));
23174 if (Buffer.isBuffer(value)) {
23175 var out = new Buffer(value.length);
23176 value.copy(out,
0,
0, value.length);
23180 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23181 return new Buffer(value);
23183 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23184 return new Buffer(value.data);
23188 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23190 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23191 if (typeof Buffer.allocUnsafeSlow === 'function') {
23192 return Buffer.allocUnsafeSlow(size);
23194 if (typeof size !== 'number') {
23195 throw new TypeError('size must be a number');
23197 if (size
>= MAX_LEN) {
23198 throw new RangeError('size is too large');
23200 return new SlowBuffer(size);
23203 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23204 },{"buffer":
5}],
5:[function(require,module,exports){
23206 * The buffer module from node.js, for the browser.
23208 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23211 /* eslint-disable no-proto */
23215 var base64 = require('base64-js')
23216 var ieee754 = require('ieee754')
23218 exports.Buffer = Buffer
23219 exports.SlowBuffer = SlowBuffer
23220 exports.INSPECT_MAX_BYTES =
50
23222 var K_MAX_LENGTH =
0x7fffffff
23223 exports.kMaxLength = K_MAX_LENGTH
23226 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23227 * === true Use Uint8Array implementation (fastest)
23228 * === false Print warning and recommend using `buffer` v4.x which has an Object
23229 * implementation (most compatible, even IE6)
23231 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23232 * Opera
11.6+, iOS
4.2+.
23234 * We report that the browser does not support typed arrays if the are not subclassable
23235 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23236 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23237 * for __proto__ and has a buggy typed array implementation.
23239 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23241 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23242 typeof console.error === 'function') {
23244 'This browser lacks typed array (Uint8Array) support which is required by ' +
23245 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23249 function typedArraySupport () {
23250 // Can typed array instances can be augmented?
23252 var arr = new Uint8Array(
1)
23253 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23254 return arr.foo() ===
42
23260 function createBuffer (length) {
23261 if (length
> K_MAX_LENGTH) {
23262 throw new RangeError('Invalid typed array length')
23264 // Return an augmented `Uint8Array` instance
23265 var buf = new Uint8Array(length)
23266 buf.__proto__ = Buffer.prototype
23271 * The Buffer constructor returns instances of `Uint8Array` that have their
23272 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23273 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23274 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23275 * returns a single octet.
23277 * The `Uint8Array` prototype remains unmodified.
23280 function Buffer (arg, encodingOrOffset, length) {
23282 if (typeof arg === 'number') {
23283 if (typeof encodingOrOffset === 'string') {
23285 'If encoding is specified then the first argument must be a string'
23288 return allocUnsafe(arg)
23290 return from(arg, encodingOrOffset, length)
23293 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23294 if (typeof Symbol !== 'undefined' && Symbol.species &&
23295 Buffer[Symbol.species] === Buffer) {
23296 Object.defineProperty(Buffer, Symbol.species, {
23298 configurable: true,
23304 Buffer.poolSize =
8192 // not used by this implementation
23306 function from (value, encodingOrOffset, length) {
23307 if (typeof value === 'number') {
23308 throw new TypeError('"value" argument must not be a number')
23311 if (value instanceof ArrayBuffer) {
23312 return fromArrayBuffer(value, encodingOrOffset, length)
23315 if (typeof value === 'string') {
23316 return fromString(value, encodingOrOffset)
23319 return fromObject(value)
23323 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23324 * if value is a number.
23325 * Buffer.from(str[, encoding])
23326 * Buffer.from(array)
23327 * Buffer.from(buffer)
23328 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23330 Buffer.from = function (value, encodingOrOffset, length) {
23331 return from(value, encodingOrOffset, length)
23334 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23335 // https://github.com/feross/buffer/pull/
148
23336 Buffer.prototype.__proto__ = Uint8Array.prototype
23337 Buffer.__proto__ = Uint8Array
23339 function assertSize (size) {
23340 if (typeof size !== 'number') {
23341 throw new TypeError('"size" argument must be a number')
23342 } else if (size <
0) {
23343 throw new RangeError('"size" argument must not be negative')
23347 function alloc (size, fill, encoding) {
23350 return createBuffer(size)
23352 if (fill !== undefined) {
23353 // Only pay attention to encoding if it's a string. This
23354 // prevents accidentally sending in a number that would
23355 // be interpretted as a start offset.
23356 return typeof encoding === 'string'
23357 ? createBuffer(size).fill(fill, encoding)
23358 : createBuffer(size).fill(fill)
23360 return createBuffer(size)
23364 * Creates a new filled Buffer instance.
23365 * alloc(size[, fill[, encoding]])
23367 Buffer.alloc = function (size, fill, encoding) {
23368 return alloc(size, fill, encoding)
23371 function allocUnsafe (size) {
23373 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23377 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23379 Buffer.allocUnsafe = function (size) {
23380 return allocUnsafe(size)
23383 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23385 Buffer.allocUnsafeSlow = function (size) {
23386 return allocUnsafe(size)
23389 function fromString (string, encoding) {
23390 if (typeof encoding !== 'string' || encoding === '') {
23394 if (!Buffer.isEncoding(encoding)) {
23395 throw new TypeError('"encoding" must be a valid string encoding')
23398 var length = byteLength(string, encoding) |
0
23399 var buf = createBuffer(length)
23401 var actual = buf.write(string, encoding)
23403 if (actual !== length) {
23404 // Writing a hex string, for example, that contains invalid characters will
23405 // cause everything after the first invalid character to be ignored. (e.g.
23406 // 'abxxcd' will be treated as 'ab')
23407 buf = buf.slice(
0, actual)
23413 function fromArrayLike (array) {
23414 var length = array.length <
0 ?
0 : checked(array.length) |
0
23415 var buf = createBuffer(length)
23416 for (var i =
0; i < length; i +=
1) {
23417 buf[i] = array[i] &
255
23422 function fromArrayBuffer (array, byteOffset, length) {
23423 if (byteOffset <
0 || array.byteLength < byteOffset) {
23424 throw new RangeError('\'offset\' is out of bounds')
23427 if (array.byteLength < byteOffset + (length ||
0)) {
23428 throw new RangeError('\'length\' is out of bounds')
23432 if (byteOffset === undefined && length === undefined) {
23433 buf = new Uint8Array(array)
23434 } else if (length === undefined) {
23435 buf = new Uint8Array(array, byteOffset)
23437 buf = new Uint8Array(array, byteOffset, length)
23440 // Return an augmented `Uint8Array` instance
23441 buf.__proto__ = Buffer.prototype
23445 function fromObject (obj) {
23446 if (Buffer.isBuffer(obj)) {
23447 var len = checked(obj.length) |
0
23448 var buf = createBuffer(len)
23450 if (buf.length ===
0) {
23454 obj.copy(buf,
0,
0, len)
23459 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23460 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23461 return createBuffer(
0)
23463 return fromArrayLike(obj)
23466 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23467 return fromArrayLike(obj.data)
23471 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23474 function checked (length) {
23475 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23476 // length is NaN (which is otherwise coerced to zero.)
23477 if (length
>= K_MAX_LENGTH) {
23478 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23479 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23484 function SlowBuffer (length) {
23485 if (+length != length) { // eslint-disable-line eqeqeq
23488 return Buffer.alloc(+length)
23491 Buffer.isBuffer = function isBuffer (b) {
23492 return b != null && b._isBuffer === true
23495 Buffer.compare = function compare (a, b) {
23496 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23497 throw new TypeError('Arguments must be Buffers')
23500 if (a === b) return
0
23505 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23506 if (a[i] !== b[i]) {
23513 if (x < y) return -
1
23514 if (y < x) return
1
23518 Buffer.isEncoding = function isEncoding (encoding) {
23519 switch (String(encoding).toLowerCase()) {
23537 Buffer.concat = function concat (list, length) {
23538 if (!Array.isArray(list)) {
23539 throw new TypeError('"list" argument must be an Array of Buffers')
23542 if (list.length ===
0) {
23543 return Buffer.alloc(
0)
23547 if (length === undefined) {
23549 for (i =
0; i < list.length; ++i) {
23550 length += list[i].length
23554 var buffer = Buffer.allocUnsafe(length)
23556 for (i =
0; i < list.length; ++i) {
23558 if (!Buffer.isBuffer(buf)) {
23559 throw new TypeError('"list" argument must be an Array of Buffers')
23561 buf.copy(buffer, pos)
23567 function byteLength (string, encoding) {
23568 if (Buffer.isBuffer(string)) {
23569 return string.length
23571 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23572 return string.byteLength
23574 if (typeof string !== 'string') {
23575 string = '' + string
23578 var len = string.length
23579 if (len ===
0) return
0
23581 // Use a for loop to avoid recursion
23582 var loweredCase = false
23584 switch (encoding) {
23592 return utf8ToBytes(string).length
23601 return base64ToBytes(string).length
23603 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23604 encoding = ('' + encoding).toLowerCase()
23609 Buffer.byteLength = byteLength
23611 function slowToString (encoding, start, end) {
23612 var loweredCase = false
23614 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23615 // property of a typed array.
23617 // This behaves neither like String nor Uint8Array in that we set start/end
23618 // to their upper/lower bounds if the value passed is out of range.
23619 // undefined is handled specially as per ECMA-
262 6th Edition,
23620 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23621 if (start === undefined || start <
0) {
23624 // Return early if start
> this.length. Done here to prevent potential uint32
23625 // coercion fail below.
23626 if (start
> this.length) {
23630 if (end === undefined || end
> this.length) {
23638 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23642 if (end <= start) {
23646 if (!encoding) encoding = 'utf8'
23649 switch (encoding) {
23651 return hexSlice(this, start, end)
23655 return utf8Slice(this, start, end)
23658 return asciiSlice(this, start, end)
23662 return latin1Slice(this, start, end)
23665 return base64Slice(this, start, end)
23671 return utf16leSlice(this, start, end)
23674 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23675 encoding = (encoding + '').toLowerCase()
23681 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23682 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23683 // reliably in a browserify context because there could be multiple different
23684 // copies of the 'buffer' package in use. This method works even for Buffer
23685 // instances that were created from another copy of the `buffer` package.
23686 // See: https://github.com/feross/buffer/issues/
154
23687 Buffer.prototype._isBuffer = true
23689 function swap (b, n, m) {
23695 Buffer.prototype.swap16 = function swap16 () {
23696 var len = this.length
23697 if (len %
2 !==
0) {
23698 throw new RangeError('Buffer size must be a multiple of
16-bits')
23700 for (var i =
0; i < len; i +=
2) {
23701 swap(this, i, i +
1)
23706 Buffer.prototype.swap32 = function swap32 () {
23707 var len = this.length
23708 if (len %
4 !==
0) {
23709 throw new RangeError('Buffer size must be a multiple of
32-bits')
23711 for (var i =
0; i < len; i +=
4) {
23712 swap(this, i, i +
3)
23713 swap(this, i +
1, i +
2)
23718 Buffer.prototype.swap64 = function swap64 () {
23719 var len = this.length
23720 if (len %
8 !==
0) {
23721 throw new RangeError('Buffer size must be a multiple of
64-bits')
23723 for (var i =
0; i < len; i +=
8) {
23724 swap(this, i, i +
7)
23725 swap(this, i +
1, i +
6)
23726 swap(this, i +
2, i +
5)
23727 swap(this, i +
3, i +
4)
23732 Buffer.prototype.toString = function toString () {
23733 var length = this.length
23734 if (length ===
0) return ''
23735 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23736 return slowToString.apply(this, arguments)
23739 Buffer.prototype.equals = function equals (b) {
23740 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23741 if (this === b) return true
23742 return Buffer.compare(this, b) ===
0
23745 Buffer.prototype.inspect = function inspect () {
23747 var max = exports.INSPECT_MAX_BYTES
23748 if (this.length
> 0) {
23749 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23750 if (this.length
> max) str += ' ... '
23752 return '
<Buffer ' + str + '
>'
23755 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23756 if (!Buffer.isBuffer(target)) {
23757 throw new TypeError('Argument must be a Buffer')
23760 if (start === undefined) {
23763 if (end === undefined) {
23764 end = target ? target.length :
0
23766 if (thisStart === undefined) {
23769 if (thisEnd === undefined) {
23770 thisEnd = this.length
23773 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23774 throw new RangeError('out of range index')
23777 if (thisStart
>= thisEnd && start
>= end) {
23780 if (thisStart
>= thisEnd) {
23783 if (start
>= end) {
23792 if (this === target) return
0
23794 var x = thisEnd - thisStart
23795 var y = end - start
23796 var len = Math.min(x, y)
23798 var thisCopy = this.slice(thisStart, thisEnd)
23799 var targetCopy = target.slice(start, end)
23801 for (var i =
0; i < len; ++i) {
23802 if (thisCopy[i] !== targetCopy[i]) {
23809 if (x < y) return -
1
23810 if (y < x) return
1
23814 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23815 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23818 // - buffer - a Buffer to search
23819 // - val - a string, Buffer, or number
23820 // - byteOffset - an index into `buffer`; will be clamped to an int32
23821 // - encoding - an optional encoding, relevant is val is a string
23822 // - dir - true for indexOf, false for lastIndexOf
23823 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23824 // Empty buffer means no match
23825 if (buffer.length ===
0) return -
1
23827 // Normalize byteOffset
23828 if (typeof byteOffset === 'string') {
23829 encoding = byteOffset
23831 } else if (byteOffset
> 0x7fffffff) {
23832 byteOffset =
0x7fffffff
23833 } else if (byteOffset < -
0x80000000) {
23834 byteOffset = -
0x80000000
23836 byteOffset = +byteOffset // Coerce to Number.
23837 if (isNaN(byteOffset)) {
23838 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23839 byteOffset = dir ?
0 : (buffer.length -
1)
23842 // Normalize byteOffset: negative offsets start from the end of the buffer
23843 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23844 if (byteOffset
>= buffer.length) {
23846 else byteOffset = buffer.length -
1
23847 } else if (byteOffset <
0) {
23848 if (dir) byteOffset =
0
23853 if (typeof val === 'string') {
23854 val = Buffer.from(val, encoding)
23857 // Finally, search either indexOf (if dir is true) or lastIndexOf
23858 if (Buffer.isBuffer(val)) {
23859 // Special case: looking for empty string/buffer always fails
23860 if (val.length ===
0) {
23863 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23864 } else if (typeof val === 'number') {
23865 val = val &
0xFF // Search for a byte value [
0-
255]
23866 if (typeof Uint8Array.prototype.indexOf === 'function') {
23868 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23870 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23873 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23876 throw new TypeError('val must be string, number or Buffer')
23879 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23881 var arrLength = arr.length
23882 var valLength = val.length
23884 if (encoding !== undefined) {
23885 encoding = String(encoding).toLowerCase()
23886 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23887 encoding === 'utf16le' || encoding === 'utf-
16le') {
23888 if (arr.length <
2 || val.length <
2) {
23898 function read (buf, i) {
23899 if (indexSize ===
1) {
23902 return buf.readUInt16BE(i * indexSize)
23908 var foundIndex = -
1
23909 for (i = byteOffset; i < arrLength; i++) {
23910 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23911 if (foundIndex === -
1) foundIndex = i
23912 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23914 if (foundIndex !== -
1) i -= i - foundIndex
23919 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23920 for (i = byteOffset; i
>=
0; i--) {
23922 for (var j =
0; j < valLength; j++) {
23923 if (read(arr, i + j) !== read(val, j)) {
23928 if (found) return i
23935 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23936 return this.indexOf(val, byteOffset, encoding) !== -
1
23939 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23940 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23943 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23944 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23947 function hexWrite (buf, string, offset, length) {
23948 offset = Number(offset) ||
0
23949 var remaining = buf.length - offset
23953 length = Number(length)
23954 if (length
> remaining) {
23959 // must be an even number of digits
23960 var strLen = string.length
23961 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23963 if (length
> strLen /
2) {
23964 length = strLen /
2
23966 for (var i =
0; i < length; ++i) {
23967 var parsed = parseInt(string.substr(i *
2,
2),
16)
23968 if (isNaN(parsed)) return i
23969 buf[offset + i] = parsed
23974 function utf8Write (buf, string, offset, length) {
23975 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23978 function asciiWrite (buf, string, offset, length) {
23979 return blitBuffer(asciiToBytes(string), buf, offset, length)
23982 function latin1Write (buf, string, offset, length) {
23983 return asciiWrite(buf, string, offset, length)
23986 function base64Write (buf, string, offset, length) {
23987 return blitBuffer(base64ToBytes(string), buf, offset, length)
23990 function ucs2Write (buf, string, offset, length) {
23991 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23994 Buffer.prototype.write = function write (string, offset, length, encoding) {
23995 // Buffer#write(string)
23996 if (offset === undefined) {
23998 length = this.length
24000 // Buffer#write(string, encoding)
24001 } else if (length === undefined && typeof offset === 'string') {
24003 length = this.length
24005 // Buffer#write(string, offset[, length][, encoding])
24006 } else if (isFinite(offset)) {
24007 offset = offset
>>> 0
24008 if (isFinite(length)) {
24009 length = length
>>> 0
24010 if (encoding === undefined) encoding = 'utf8'
24017 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
24021 var remaining = this.length - offset
24022 if (length === undefined || length
> remaining) length = remaining
24024 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
24025 throw new RangeError('Attempt to write outside buffer bounds')
24028 if (!encoding) encoding = 'utf8'
24030 var loweredCase = false
24032 switch (encoding) {
24034 return hexWrite(this, string, offset, length)
24038 return utf8Write(this, string, offset, length)
24041 return asciiWrite(this, string, offset, length)
24045 return latin1Write(this, string, offset, length)
24048 // Warning: maxLength not taken into account in base64Write
24049 return base64Write(this, string, offset, length)
24055 return ucs2Write(this, string, offset, length)
24058 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
24059 encoding = ('' + encoding).toLowerCase()
24065 Buffer.prototype.toJSON = function toJSON () {
24068 data: Array.prototype.slice.call(this._arr || this,
0)
24072 function base64Slice (buf, start, end) {
24073 if (start ===
0 && end === buf.length) {
24074 return base64.fromByteArray(buf)
24076 return base64.fromByteArray(buf.slice(start, end))
24080 function utf8Slice (buf, start, end) {
24081 end = Math.min(buf.length, end)
24086 var firstByte = buf[i]
24087 var codePoint = null
24088 var bytesPerSequence = (firstByte
> 0xEF) ?
4
24089 : (firstByte
> 0xDF) ?
3
24090 : (firstByte
> 0xBF) ?
2
24093 if (i + bytesPerSequence <= end) {
24094 var secondByte, thirdByte, fourthByte, tempCodePoint
24096 switch (bytesPerSequence) {
24098 if (firstByte <
0x80) {
24099 codePoint = firstByte
24103 secondByte = buf[i +
1]
24104 if ((secondByte &
0xC0) ===
0x80) {
24105 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
24106 if (tempCodePoint
> 0x7F) {
24107 codePoint = tempCodePoint
24112 secondByte = buf[i +
1]
24113 thirdByte = buf[i +
2]
24114 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24115 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24116 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24117 codePoint = tempCodePoint
24122 secondByte = buf[i +
1]
24123 thirdByte = buf[i +
2]
24124 fourthByte = buf[i +
3]
24125 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24126 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24127 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24128 codePoint = tempCodePoint
24134 if (codePoint === null) {
24135 // we did not generate a valid codePoint so insert a
24136 // replacement char (U+FFFD) and advance only
1 byte
24138 bytesPerSequence =
1
24139 } else if (codePoint
> 0xFFFF) {
24140 // encode to utf16 (surrogate pair dance)
24141 codePoint -=
0x10000
24142 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24143 codePoint =
0xDC00 | codePoint &
0x3FF
24146 res.push(codePoint)
24147 i += bytesPerSequence
24150 return decodeCodePointsArray(res)
24153 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24154 // the lowest limit is Chrome, with
0x10000 args.
24155 // We go
1 magnitude less, for safety
24156 var MAX_ARGUMENTS_LENGTH =
0x1000
24158 function decodeCodePointsArray (codePoints) {
24159 var len = codePoints.length
24160 if (len <= MAX_ARGUMENTS_LENGTH) {
24161 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24164 // Decode in chunks to avoid
"call stack size exceeded".
24168 res += String.fromCharCode.apply(
24170 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24176 function asciiSlice (buf, start, end) {
24178 end = Math.min(buf.length, end)
24180 for (var i = start; i < end; ++i) {
24181 ret += String.fromCharCode(buf[i] &
0x7F)
24186 function latin1Slice (buf, start, end) {
24188 end = Math.min(buf.length, end)
24190 for (var i = start; i < end; ++i) {
24191 ret += String.fromCharCode(buf[i])
24196 function hexSlice (buf, start, end) {
24197 var len = buf.length
24199 if (!start || start <
0) start =
0
24200 if (!end || end <
0 || end
> len) end = len
24203 for (var i = start; i < end; ++i) {
24204 out += toHex(buf[i])
24209 function utf16leSlice (buf, start, end) {
24210 var bytes = buf.slice(start, end)
24212 for (var i =
0; i < bytes.length; i +=
2) {
24213 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24218 Buffer.prototype.slice = function slice (start, end) {
24219 var len = this.length
24221 end = end === undefined ? len : ~~end
24225 if (start <
0) start =
0
24226 } else if (start
> len) {
24232 if (end <
0) end =
0
24233 } else if (end
> len) {
24237 if (end < start) end = start
24239 var newBuf = this.subarray(start, end)
24240 // Return an augmented `Uint8Array` instance
24241 newBuf.__proto__ = Buffer.prototype
24246 * Need to make sure that buffer isn't trying to write out of bounds.
24248 function checkOffset (offset, ext, length) {
24249 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24250 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24253 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24254 offset = offset
>>> 0
24255 byteLength = byteLength
>>> 0
24256 if (!noAssert) checkOffset(offset, byteLength, this.length)
24258 var val = this[offset]
24261 while (++i < byteLength && (mul *=
0x100)) {
24262 val += this[offset + i] * mul
24268 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24269 offset = offset
>>> 0
24270 byteLength = byteLength
>>> 0
24272 checkOffset(offset, byteLength, this.length)
24275 var val = this[offset + --byteLength]
24277 while (byteLength
> 0 && (mul *=
0x100)) {
24278 val += this[offset + --byteLength] * mul
24284 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24285 offset = offset
>>> 0
24286 if (!noAssert) checkOffset(offset,
1, this.length)
24287 return this[offset]
24290 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24291 offset = offset
>>> 0
24292 if (!noAssert) checkOffset(offset,
2, this.length)
24293 return this[offset] | (this[offset +
1] <<
8)
24296 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24297 offset = offset
>>> 0
24298 if (!noAssert) checkOffset(offset,
2, this.length)
24299 return (this[offset] <<
8) | this[offset +
1]
24302 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24303 offset = offset
>>> 0
24304 if (!noAssert) checkOffset(offset,
4, this.length)
24306 return ((this[offset]) |
24307 (this[offset +
1] <<
8) |
24308 (this[offset +
2] <<
16)) +
24309 (this[offset +
3] *
0x1000000)
24312 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24313 offset = offset
>>> 0
24314 if (!noAssert) checkOffset(offset,
4, this.length)
24316 return (this[offset] *
0x1000000) +
24317 ((this[offset +
1] <<
16) |
24318 (this[offset +
2] <<
8) |
24322 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24323 offset = offset
>>> 0
24324 byteLength = byteLength
>>> 0
24325 if (!noAssert) checkOffset(offset, byteLength, this.length)
24327 var val = this[offset]
24330 while (++i < byteLength && (mul *=
0x100)) {
24331 val += this[offset + i] * mul
24335 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24340 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24341 offset = offset
>>> 0
24342 byteLength = byteLength
>>> 0
24343 if (!noAssert) checkOffset(offset, byteLength, this.length)
24347 var val = this[offset + --i]
24348 while (i
> 0 && (mul *=
0x100)) {
24349 val += this[offset + --i] * mul
24353 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24358 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24359 offset = offset
>>> 0
24360 if (!noAssert) checkOffset(offset,
1, this.length)
24361 if (!(this[offset] &
0x80)) return (this[offset])
24362 return ((
0xff - this[offset] +
1) * -
1)
24365 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24366 offset = offset
>>> 0
24367 if (!noAssert) checkOffset(offset,
2, this.length)
24368 var val = this[offset] | (this[offset +
1] <<
8)
24369 return (val &
0x8000) ? val |
0xFFFF0000 : val
24372 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24373 offset = offset
>>> 0
24374 if (!noAssert) checkOffset(offset,
2, this.length)
24375 var val = this[offset +
1] | (this[offset] <<
8)
24376 return (val &
0x8000) ? val |
0xFFFF0000 : val
24379 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24380 offset = offset
>>> 0
24381 if (!noAssert) checkOffset(offset,
4, this.length)
24383 return (this[offset]) |
24384 (this[offset +
1] <<
8) |
24385 (this[offset +
2] <<
16) |
24386 (this[offset +
3] <<
24)
24389 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24390 offset = offset
>>> 0
24391 if (!noAssert) checkOffset(offset,
4, this.length)
24393 return (this[offset] <<
24) |
24394 (this[offset +
1] <<
16) |
24395 (this[offset +
2] <<
8) |
24399 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24400 offset = offset
>>> 0
24401 if (!noAssert) checkOffset(offset,
4, this.length)
24402 return ieee754.read(this, offset, true,
23,
4)
24405 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24406 offset = offset
>>> 0
24407 if (!noAssert) checkOffset(offset,
4, this.length)
24408 return ieee754.read(this, offset, false,
23,
4)
24411 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24412 offset = offset
>>> 0
24413 if (!noAssert) checkOffset(offset,
8, this.length)
24414 return ieee754.read(this, offset, true,
52,
8)
24417 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24418 offset = offset
>>> 0
24419 if (!noAssert) checkOffset(offset,
8, this.length)
24420 return ieee754.read(this, offset, false,
52,
8)
24423 function checkInt (buf, value, offset, ext, max, min) {
24424 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24425 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24426 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24429 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24431 offset = offset
>>> 0
24432 byteLength = byteLength
>>> 0
24434 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24435 checkInt(this, value, offset, byteLength, maxBytes,
0)
24440 this[offset] = value &
0xFF
24441 while (++i < byteLength && (mul *=
0x100)) {
24442 this[offset + i] = (value / mul) &
0xFF
24445 return offset + byteLength
24448 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24450 offset = offset
>>> 0
24451 byteLength = byteLength
>>> 0
24453 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24454 checkInt(this, value, offset, byteLength, maxBytes,
0)
24457 var i = byteLength -
1
24459 this[offset + i] = value &
0xFF
24460 while (--i
>=
0 && (mul *=
0x100)) {
24461 this[offset + i] = (value / mul) &
0xFF
24464 return offset + byteLength
24467 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24469 offset = offset
>>> 0
24470 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24471 this[offset] = (value &
0xff)
24475 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24477 offset = offset
>>> 0
24478 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24479 this[offset] = (value &
0xff)
24480 this[offset +
1] = (value
>>> 8)
24484 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24486 offset = offset
>>> 0
24487 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24488 this[offset] = (value
>>> 8)
24489 this[offset +
1] = (value &
0xff)
24493 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24495 offset = offset
>>> 0
24496 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24497 this[offset +
3] = (value
>>> 24)
24498 this[offset +
2] = (value
>>> 16)
24499 this[offset +
1] = (value
>>> 8)
24500 this[offset] = (value &
0xff)
24504 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24506 offset = offset
>>> 0
24507 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24508 this[offset] = (value
>>> 24)
24509 this[offset +
1] = (value
>>> 16)
24510 this[offset +
2] = (value
>>> 8)
24511 this[offset +
3] = (value &
0xff)
24515 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24517 offset = offset
>>> 0
24519 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24521 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24527 this[offset] = value &
0xFF
24528 while (++i < byteLength && (mul *=
0x100)) {
24529 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24532 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24535 return offset + byteLength
24538 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24540 offset = offset
>>> 0
24542 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24544 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24547 var i = byteLength -
1
24550 this[offset + i] = value &
0xFF
24551 while (--i
>=
0 && (mul *=
0x100)) {
24552 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24555 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24558 return offset + byteLength
24561 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24563 offset = offset
>>> 0
24564 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24565 if (value <
0) value =
0xff + value +
1
24566 this[offset] = (value &
0xff)
24570 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24572 offset = offset
>>> 0
24573 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24574 this[offset] = (value &
0xff)
24575 this[offset +
1] = (value
>>> 8)
24579 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24581 offset = offset
>>> 0
24582 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24583 this[offset] = (value
>>> 8)
24584 this[offset +
1] = (value &
0xff)
24588 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24590 offset = offset
>>> 0
24591 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24592 this[offset] = (value &
0xff)
24593 this[offset +
1] = (value
>>> 8)
24594 this[offset +
2] = (value
>>> 16)
24595 this[offset +
3] = (value
>>> 24)
24599 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24601 offset = offset
>>> 0
24602 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24603 if (value <
0) value =
0xffffffff + value +
1
24604 this[offset] = (value
>>> 24)
24605 this[offset +
1] = (value
>>> 16)
24606 this[offset +
2] = (value
>>> 8)
24607 this[offset +
3] = (value &
0xff)
24611 function checkIEEE754 (buf, value, offset, ext, max, min) {
24612 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24613 if (offset <
0) throw new RangeError('Index out of range')
24616 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24618 offset = offset
>>> 0
24620 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24622 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24626 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24627 return writeFloat(this, value, offset, true, noAssert)
24630 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24631 return writeFloat(this, value, offset, false, noAssert)
24634 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24636 offset = offset
>>> 0
24638 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24640 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24644 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24645 return writeDouble(this, value, offset, true, noAssert)
24648 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24649 return writeDouble(this, value, offset, false, noAssert)
24652 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24653 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24654 if (!start) start =
0
24655 if (!end && end !==
0) end = this.length
24656 if (targetStart
>= target.length) targetStart = target.length
24657 if (!targetStart) targetStart =
0
24658 if (end
> 0 && end < start) end = start
24660 // Copy
0 bytes; we're done
24661 if (end === start) return
0
24662 if (target.length ===
0 || this.length ===
0) return
0
24664 // Fatal error conditions
24665 if (targetStart <
0) {
24666 throw new RangeError('targetStart out of bounds')
24668 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24669 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24672 if (end
> this.length) end = this.length
24673 if (target.length - targetStart < end - start) {
24674 end = target.length - targetStart + start
24677 var len = end - start
24680 if (this === target && start < targetStart && targetStart < end) {
24681 // descending copy from end
24682 for (i = len -
1; i
>=
0; --i) {
24683 target[i + targetStart] = this[i + start]
24685 } else if (len <
1000) {
24686 // ascending copy from start
24687 for (i =
0; i < len; ++i) {
24688 target[i + targetStart] = this[i + start]
24691 Uint8Array.prototype.set.call(
24693 this.subarray(start, start + len),
24702 // buffer.fill(number[, offset[, end]])
24703 // buffer.fill(buffer[, offset[, end]])
24704 // buffer.fill(string[, offset[, end]][, encoding])
24705 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24706 // Handle string cases:
24707 if (typeof val === 'string') {
24708 if (typeof start === 'string') {
24712 } else if (typeof end === 'string') {
24716 if (val.length ===
1) {
24717 var code = val.charCodeAt(
0)
24722 if (encoding !== undefined && typeof encoding !== 'string') {
24723 throw new TypeError('encoding must be a string')
24725 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24726 throw new TypeError('Unknown encoding: ' + encoding)
24728 } else if (typeof val === 'number') {
24732 // Invalid ranges are not set to a default, so can range check early.
24733 if (start <
0 || this.length < start || this.length < end) {
24734 throw new RangeError('Out of range index')
24737 if (end <= start) {
24741 start = start
>>> 0
24742 end = end === undefined ? this.length : end
>>> 0
24747 if (typeof val === 'number') {
24748 for (i = start; i < end; ++i) {
24752 var bytes = Buffer.isBuffer(val)
24754 : new Buffer(val, encoding)
24755 var len = bytes.length
24756 for (i =
0; i < end - start; ++i) {
24757 this[i + start] = bytes[i % len]
24764 // HELPER FUNCTIONS
24765 // ================
24767 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24769 function base64clean (str) {
24770 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24771 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24772 // Node converts strings with length <
2 to ''
24773 if (str.length <
2) return ''
24774 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24775 while (str.length %
4 !==
0) {
24781 function stringtrim (str) {
24782 if (str.trim) return str.trim()
24783 return str.replace(/^\s+|\s+$/g, '')
24786 function toHex (n) {
24787 if (n <
16) return '
0' + n.toString(
16)
24788 return n.toString(
16)
24791 function utf8ToBytes (string, units) {
24792 units = units || Infinity
24794 var length = string.length
24795 var leadSurrogate = null
24798 for (var i =
0; i < length; ++i) {
24799 codePoint = string.charCodeAt(i)
24801 // is surrogate component
24802 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24803 // last char was a lead
24804 if (!leadSurrogate) {
24806 if (codePoint
> 0xDBFF) {
24807 // unexpected trail
24808 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24810 } else if (i +
1 === length) {
24812 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24817 leadSurrogate = codePoint
24822 //
2 leads in a row
24823 if (codePoint <
0xDC00) {
24824 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24825 leadSurrogate = codePoint
24829 // valid surrogate pair
24830 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24831 } else if (leadSurrogate) {
24832 // valid bmp char, but last char was a lead
24833 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24836 leadSurrogate = null
24839 if (codePoint <
0x80) {
24840 if ((units -=
1) <
0) break
24841 bytes.push(codePoint)
24842 } else if (codePoint <
0x800) {
24843 if ((units -=
2) <
0) break
24845 codePoint
>> 0x6 |
0xC0,
24846 codePoint &
0x3F |
0x80
24848 } else if (codePoint <
0x10000) {
24849 if ((units -=
3) <
0) break
24851 codePoint
>> 0xC |
0xE0,
24852 codePoint
>> 0x6 &
0x3F |
0x80,
24853 codePoint &
0x3F |
0x80
24855 } else if (codePoint <
0x110000) {
24856 if ((units -=
4) <
0) break
24858 codePoint
>> 0x12 |
0xF0,
24859 codePoint
>> 0xC &
0x3F |
0x80,
24860 codePoint
>> 0x6 &
0x3F |
0x80,
24861 codePoint &
0x3F |
0x80
24864 throw new Error('Invalid code point')
24871 function asciiToBytes (str) {
24873 for (var i =
0; i < str.length; ++i) {
24874 // Node's code seems to be doing this and not &
0x7F..
24875 byteArray.push(str.charCodeAt(i) &
0xFF)
24880 function utf16leToBytes (str, units) {
24883 for (var i =
0; i < str.length; ++i) {
24884 if ((units -=
2) <
0) break
24886 c = str.charCodeAt(i)
24896 function base64ToBytes (str) {
24897 return base64.toByteArray(base64clean(str))
24900 function blitBuffer (src, dst, offset, length) {
24901 for (var i =
0; i < length; ++i) {
24902 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24903 dst[i + offset] = src[i]
24908 function isnan (val) {
24909 return val !== val // eslint-disable-line no-self-compare
24912 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24913 (function (Buffer){
24914 // Copyright Joyent, Inc. and other Node contributors.
24916 // Permission is hereby granted, free of charge, to any person obtaining a
24917 // copy of this software and associated documentation files (the
24918 // "Software"), to deal in the Software without restriction, including
24919 // without limitation the rights to use, copy, modify, merge, publish,
24920 // distribute, sublicense, and/or sell copies of the Software, and to permit
24921 // persons to whom the Software is furnished to do so, subject to the
24922 // following conditions:
24924 // The above copyright notice and this permission notice shall be included
24925 // in all copies or substantial portions of the Software.
24927 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24928 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24929 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24930 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24931 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24932 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24933 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24935 // NOTE: These type checking functions intentionally don't use `instanceof`
24936 // because it is fragile and can be easily faked with `Object.create()`.
24938 function isArray(arg) {
24939 if (Array.isArray) {
24940 return Array.isArray(arg);
24942 return objectToString(arg) === '[object Array]';
24944 exports.isArray = isArray;
24946 function isBoolean(arg) {
24947 return typeof arg === 'boolean';
24949 exports.isBoolean = isBoolean;
24951 function isNull(arg) {
24952 return arg === null;
24954 exports.isNull = isNull;
24956 function isNullOrUndefined(arg) {
24957 return arg == null;
24959 exports.isNullOrUndefined = isNullOrUndefined;
24961 function isNumber(arg) {
24962 return typeof arg === 'number';
24964 exports.isNumber = isNumber;
24966 function isString(arg) {
24967 return typeof arg === 'string';
24969 exports.isString = isString;
24971 function isSymbol(arg) {
24972 return typeof arg === 'symbol';
24974 exports.isSymbol = isSymbol;
24976 function isUndefined(arg) {
24977 return arg === void
0;
24979 exports.isUndefined = isUndefined;
24981 function isRegExp(re) {
24982 return objectToString(re) === '[object RegExp]';
24984 exports.isRegExp = isRegExp;
24986 function isObject(arg) {
24987 return typeof arg === 'object' && arg !== null;
24989 exports.isObject = isObject;
24991 function isDate(d) {
24992 return objectToString(d) === '[object Date]';
24994 exports.isDate = isDate;
24996 function isError(e) {
24997 return (objectToString(e) === '[object Error]' || e instanceof Error);
24999 exports.isError = isError;
25001 function isFunction(arg) {
25002 return typeof arg === 'function';
25004 exports.isFunction = isFunction;
25006 function isPrimitive(arg) {
25007 return arg === null ||
25008 typeof arg === 'boolean' ||
25009 typeof arg === 'number' ||
25010 typeof arg === 'string' ||
25011 typeof arg === 'symbol' || // ES6 symbol
25012 typeof arg === 'undefined';
25014 exports.isPrimitive = isPrimitive;
25016 exports.isBuffer = Buffer.isBuffer;
25018 function objectToString(o) {
25019 return Object.prototype.toString.call(o);
25022 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
25023 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
25024 // Copyright Joyent, Inc. and other Node contributors.
25026 // Permission is hereby granted, free of charge, to any person obtaining a
25027 // copy of this software and associated documentation files (the
25028 // "Software"), to deal in the Software without restriction, including
25029 // without limitation the rights to use, copy, modify, merge, publish,
25030 // distribute, sublicense, and/or sell copies of the Software, and to permit
25031 // persons to whom the Software is furnished to do so, subject to the
25032 // following conditions:
25034 // The above copyright notice and this permission notice shall be included
25035 // in all copies or substantial portions of the Software.
25037 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25038 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25039 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25040 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25041 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25042 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25043 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25045 function EventEmitter() {
25046 this._events = this._events || {};
25047 this._maxListeners = this._maxListeners || undefined;
25049 module.exports = EventEmitter;
25051 // Backwards-compat with node
0.10.x
25052 EventEmitter.EventEmitter = EventEmitter;
25054 EventEmitter.prototype._events = undefined;
25055 EventEmitter.prototype._maxListeners = undefined;
25057 // By default EventEmitters will print a warning if more than
10 listeners are
25058 // added to it. This is a useful default which helps finding memory leaks.
25059 EventEmitter.defaultMaxListeners =
10;
25061 // Obviously not all Emitters should be limited to
10. This function allows
25062 // that to be increased. Set to zero for unlimited.
25063 EventEmitter.prototype.setMaxListeners = function(n) {
25064 if (!isNumber(n) || n <
0 || isNaN(n))
25065 throw TypeError('n must be a positive number');
25066 this._maxListeners = n;
25070 EventEmitter.prototype.emit = function(type) {
25071 var er, handler, len, args, i, listeners;
25076 // If there is no 'error' event listener then throw.
25077 if (type === 'error') {
25078 if (!this._events.error ||
25079 (isObject(this._events.error) && !this._events.error.length)) {
25081 if (er instanceof Error) {
25082 throw er; // Unhandled 'error' event
25084 // At least give some kind of context to the user
25085 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
25092 handler = this._events[type];
25094 if (isUndefined(handler))
25097 if (isFunction(handler)) {
25098 switch (arguments.length) {
25101 handler.call(this);
25104 handler.call(this, arguments[
1]);
25107 handler.call(this, arguments[
1], arguments[
2]);
25111 args = Array.prototype.slice.call(arguments,
1);
25112 handler.apply(this, args);
25114 } else if (isObject(handler)) {
25115 args = Array.prototype.slice.call(arguments,
1);
25116 listeners = handler.slice();
25117 len = listeners.length;
25118 for (i =
0; i < len; i++)
25119 listeners[i].apply(this, args);
25125 EventEmitter.prototype.addListener = function(type, listener) {
25128 if (!isFunction(listener))
25129 throw TypeError('listener must be a function');
25134 // To avoid recursion in the case that type === "newListener"! Before
25135 // adding it to the listeners, first emit "newListener".
25136 if (this._events.newListener)
25137 this.emit('newListener', type,
25138 isFunction(listener.listener) ?
25139 listener.listener : listener);
25141 if (!this._events[type])
25142 // Optimize the case of one listener. Don't need the extra array object.
25143 this._events[type] = listener;
25144 else if (isObject(this._events[type]))
25145 // If we've already got an array, just append.
25146 this._events[type].push(listener);
25148 // Adding the second element, need to change to array.
25149 this._events[type] = [this._events[type], listener];
25151 // Check for listener leak
25152 if (isObject(this._events[type]) && !this._events[type].warned) {
25153 if (!isUndefined(this._maxListeners)) {
25154 m = this._maxListeners;
25156 m = EventEmitter.defaultMaxListeners;
25159 if (m && m
> 0 && this._events[type].length
> m) {
25160 this._events[type].warned = true;
25161 console.error('(node) warning: possible EventEmitter memory ' +
25162 'leak detected. %d listeners added. ' +
25163 'Use emitter.setMaxListeners() to increase limit.',
25164 this._events[type].length);
25165 if (typeof console.trace === 'function') {
25166 // not supported in IE
10
25175 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25177 EventEmitter.prototype.once = function(type, listener) {
25178 if (!isFunction(listener))
25179 throw TypeError('listener must be a function');
25184 this.removeListener(type, g);
25188 listener.apply(this, arguments);
25192 g.listener = listener;
25198 // emits a 'removeListener' event iff the listener was removed
25199 EventEmitter.prototype.removeListener = function(type, listener) {
25200 var list, position, length, i;
25202 if (!isFunction(listener))
25203 throw TypeError('listener must be a function');
25205 if (!this._events || !this._events[type])
25208 list = this._events[type];
25209 length = list.length;
25212 if (list === listener ||
25213 (isFunction(list.listener) && list.listener === listener)) {
25214 delete this._events[type];
25215 if (this._events.removeListener)
25216 this.emit('removeListener', type, listener);
25218 } else if (isObject(list)) {
25219 for (i = length; i--
> 0;) {
25220 if (list[i] === listener ||
25221 (list[i].listener && list[i].listener === listener)) {
25230 if (list.length ===
1) {
25232 delete this._events[type];
25234 list.splice(position,
1);
25237 if (this._events.removeListener)
25238 this.emit('removeListener', type, listener);
25244 EventEmitter.prototype.removeAllListeners = function(type) {
25245 var key, listeners;
25250 // not listening for removeListener, no need to emit
25251 if (!this._events.removeListener) {
25252 if (arguments.length ===
0)
25254 else if (this._events[type])
25255 delete this._events[type];
25259 // emit removeListener for all listeners on all events
25260 if (arguments.length ===
0) {
25261 for (key in this._events) {
25262 if (key === 'removeListener') continue;
25263 this.removeAllListeners(key);
25265 this.removeAllListeners('removeListener');
25270 listeners = this._events[type];
25272 if (isFunction(listeners)) {
25273 this.removeListener(type, listeners);
25274 } else if (listeners) {
25276 while (listeners.length)
25277 this.removeListener(type, listeners[listeners.length -
1]);
25279 delete this._events[type];
25284 EventEmitter.prototype.listeners = function(type) {
25286 if (!this._events || !this._events[type])
25288 else if (isFunction(this._events[type]))
25289 ret = [this._events[type]];
25291 ret = this._events[type].slice();
25295 EventEmitter.prototype.listenerCount = function(type) {
25296 if (this._events) {
25297 var evlistener = this._events[type];
25299 if (isFunction(evlistener))
25301 else if (evlistener)
25302 return evlistener.length;
25307 EventEmitter.listenerCount = function(emitter, type) {
25308 return emitter.listenerCount(type);
25311 function isFunction(arg) {
25312 return typeof arg === 'function';
25315 function isNumber(arg) {
25316 return typeof arg === 'number';
25319 function isObject(arg) {
25320 return typeof arg === 'object' && arg !== null;
25323 function isUndefined(arg) {
25324 return arg === void
0;
25327 },{}],
8:[function(require,module,exports){
25328 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25330 var eLen = nBytes *
8 - mLen -
1
25331 var eMax = (
1 << eLen) -
1
25332 var eBias = eMax
>> 1
25334 var i = isLE ? (nBytes -
1) :
0
25335 var d = isLE ? -
1 :
1
25336 var s = buffer[offset + i]
25340 e = s & ((
1 << (-nBits)) -
1)
25343 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25345 m = e & ((
1 << (-nBits)) -
1)
25348 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25352 } else if (e === eMax) {
25353 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25355 m = m + Math.pow(
2, mLen)
25358 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25361 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25363 var eLen = nBytes *
8 - mLen -
1
25364 var eMax = (
1 << eLen) -
1
25365 var eBias = eMax
>> 1
25366 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25367 var i = isLE ?
0 : (nBytes -
1)
25368 var d = isLE ?
1 : -
1
25369 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25371 value = Math.abs(value)
25373 if (isNaN(value) || value === Infinity) {
25374 m = isNaN(value) ?
1 :
0
25377 e = Math.floor(Math.log(value) / Math.LN2)
25378 if (value * (c = Math.pow(
2, -e)) <
1) {
25382 if (e + eBias
>=
1) {
25385 value += rt * Math.pow(
2,
1 - eBias)
25387 if (value * c
>=
2) {
25392 if (e + eBias
>= eMax) {
25395 } else if (e + eBias
>=
1) {
25396 m = (value * c -
1) * Math.pow(
2, mLen)
25399 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25404 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25406 e = (e << mLen) | m
25408 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25410 buffer[offset + i - d] |= s *
128
25413 },{}],
9:[function(require,module,exports){
25414 if (typeof Object.create === 'function') {
25415 // implementation from standard node.js 'util' module
25416 module.exports = function inherits(ctor, superCtor) {
25417 ctor.super_ = superCtor
25418 ctor.prototype = Object.create(superCtor.prototype, {
25428 // old school shim for old browsers
25429 module.exports = function inherits(ctor, superCtor) {
25430 ctor.super_ = superCtor
25431 var TempCtor = function () {}
25432 TempCtor.prototype = superCtor.prototype
25433 ctor.prototype = new TempCtor()
25434 ctor.prototype.constructor = ctor
25438 },{}],
10:[function(require,module,exports){
25440 * Determine if an object is a Buffer
25442 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25446 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25447 // Object.prototype.constructor. Remove this eventually
25448 module.exports = function (obj) {
25449 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25452 function isBuffer (obj) {
25453 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25456 // For Node v0.10 support. Remove this eventually.
25457 function isSlowBuffer (obj) {
25458 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25461 },{}],
11:[function(require,module,exports){
25462 var toString = {}.toString;
25464 module.exports = Array.isArray || function (arr) {
25465 return toString.call(arr) == '[object Array]';
25468 },{}],
12:[function(require,module,exports){
25469 (function (process){
25472 if (!process.version ||
25473 process.version.indexOf('v0.') ===
0 ||
25474 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25475 module.exports = nextTick;
25477 module.exports = process.nextTick;
25480 function nextTick(fn, arg1, arg2, arg3) {
25481 if (typeof fn !== 'function') {
25482 throw new TypeError('"callback" argument must be a function');
25484 var len = arguments.length;
25489 return process.nextTick(fn);
25491 return process.nextTick(function afterTickOne() {
25492 fn.call(null, arg1);
25495 return process.nextTick(function afterTickTwo() {
25496 fn.call(null, arg1, arg2);
25499 return process.nextTick(function afterTickThree() {
25500 fn.call(null, arg1, arg2, arg3);
25503 args = new Array(len -
1);
25505 while (i < args.length) {
25506 args[i++] = arguments[i];
25508 return process.nextTick(function afterTick() {
25509 fn.apply(null, args);
25514 }).call(this,require('_process'))
25515 },{"_process":
13}],
13:[function(require,module,exports){
25516 // shim for using process in browser
25517 var process = module.exports = {};
25519 // cached from whatever global is present so that test runners that stub it
25520 // don't break things. But we need to wrap it in a try catch in case it is
25521 // wrapped in strict mode code which doesn't define any globals. It's inside a
25522 // function because try/catches deoptimize in certain engines.
25524 var cachedSetTimeout;
25525 var cachedClearTimeout;
25527 function defaultSetTimout() {
25528 throw new Error('setTimeout has not been defined');
25530 function defaultClearTimeout () {
25531 throw new Error('clearTimeout has not been defined');
25535 if (typeof setTimeout === 'function') {
25536 cachedSetTimeout = setTimeout;
25538 cachedSetTimeout = defaultSetTimout;
25541 cachedSetTimeout = defaultSetTimout;
25544 if (typeof clearTimeout === 'function') {
25545 cachedClearTimeout = clearTimeout;
25547 cachedClearTimeout = defaultClearTimeout;
25550 cachedClearTimeout = defaultClearTimeout;
25553 function runTimeout(fun) {
25554 if (cachedSetTimeout === setTimeout) {
25555 //normal enviroments in sane situations
25556 return setTimeout(fun,
0);
25558 // if setTimeout wasn't available but was latter defined
25559 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25560 cachedSetTimeout = setTimeout;
25561 return setTimeout(fun,
0);
25564 // when when somebody has screwed with setTimeout but no I.E. maddness
25565 return cachedSetTimeout(fun,
0);
25568 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25569 return cachedSetTimeout.call(null, fun,
0);
25571 // 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
25572 return cachedSetTimeout.call(this, fun,
0);
25578 function runClearTimeout(marker) {
25579 if (cachedClearTimeout === clearTimeout) {
25580 //normal enviroments in sane situations
25581 return clearTimeout(marker);
25583 // if clearTimeout wasn't available but was latter defined
25584 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25585 cachedClearTimeout = clearTimeout;
25586 return clearTimeout(marker);
25589 // when when somebody has screwed with setTimeout but no I.E. maddness
25590 return cachedClearTimeout(marker);
25593 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25594 return cachedClearTimeout.call(null, marker);
25596 // 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.
25597 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25598 return cachedClearTimeout.call(this, marker);
25606 var draining = false;
25608 var queueIndex = -
1;
25610 function cleanUpNextTick() {
25611 if (!draining || !currentQueue) {
25615 if (currentQueue.length) {
25616 queue = currentQueue.concat(queue);
25620 if (queue.length) {
25625 function drainQueue() {
25629 var timeout = runTimeout(cleanUpNextTick);
25632 var len = queue.length;
25634 currentQueue = queue;
25636 while (++queueIndex < len) {
25637 if (currentQueue) {
25638 currentQueue[queueIndex].run();
25642 len = queue.length;
25644 currentQueue = null;
25646 runClearTimeout(timeout);
25649 process.nextTick = function (fun) {
25650 var args = new Array(arguments.length -
1);
25651 if (arguments.length
> 1) {
25652 for (var i =
1; i < arguments.length; i++) {
25653 args[i -
1] = arguments[i];
25656 queue.push(new Item(fun, args));
25657 if (queue.length ===
1 && !draining) {
25658 runTimeout(drainQueue);
25662 // v8 likes predictible objects
25663 function Item(fun, array) {
25665 this.array = array;
25667 Item.prototype.run = function () {
25668 this.fun.apply(null, this.array);
25670 process.title = 'browser';
25671 process.browser = true;
25674 process.version = ''; // empty string to avoid regexp issues
25675 process.versions = {};
25680 process.addListener = noop;
25681 process.once = noop;
25682 process.off = noop;
25683 process.removeListener = noop;
25684 process.removeAllListeners = noop;
25685 process.emit = noop;
25687 process.binding = function (name) {
25688 throw new Error('process.binding is not supported');
25691 process.cwd = function () { return '/' };
25692 process.chdir = function (dir) {
25693 throw new Error('process.chdir is not supported');
25695 process.umask = function() { return
0; };
25697 },{}],
14:[function(require,module,exports){
25698 module.exports = require(
"./lib/_stream_duplex.js")
25700 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25701 // a duplex stream is just a stream that is both readable and writable.
25702 // Since JS doesn't have multiple prototypal inheritance, this class
25703 // prototypally inherits from Readable, and then parasitically from
25710 var objectKeys = Object.keys || function (obj) {
25712 for (var key in obj) {
25718 module.exports = Duplex;
25721 var processNextTick = require('process-nextick-args');
25725 var util = require('core-util-is');
25726 util.inherits = require('inherits');
25729 var Readable = require('./_stream_readable');
25730 var Writable = require('./_stream_writable');
25732 util.inherits(Duplex, Readable);
25734 var keys = objectKeys(Writable.prototype);
25735 for (var v =
0; v < keys.length; v++) {
25736 var method = keys[v];
25737 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25740 function Duplex(options) {
25741 if (!(this instanceof Duplex)) return new Duplex(options);
25743 Readable.call(this, options);
25744 Writable.call(this, options);
25746 if (options && options.readable === false) this.readable = false;
25748 if (options && options.writable === false) this.writable = false;
25750 this.allowHalfOpen = true;
25751 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25753 this.once('end', onend);
25756 // the no-half-open enforcer
25758 // if we allow half-open state, or if the writable side ended,
25760 if (this.allowHalfOpen || this._writableState.ended) return;
25762 // no more data can be written.
25763 // But allow more writes to happen in this tick.
25764 processNextTick(onEndNT, this);
25767 function onEndNT(self) {
25771 function forEach(xs, f) {
25772 for (var i =
0, l = xs.length; i < l; i++) {
25776 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25777 // a passthrough stream.
25778 // basically just the most minimal sort of Transform stream.
25779 // Every written chunk gets output as-is.
25783 module.exports = PassThrough;
25785 var Transform = require('./_stream_transform');
25788 var util = require('core-util-is');
25789 util.inherits = require('inherits');
25792 util.inherits(PassThrough, Transform);
25794 function PassThrough(options) {
25795 if (!(this instanceof PassThrough)) return new PassThrough(options);
25797 Transform.call(this, options);
25800 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25803 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25804 (function (process){
25807 module.exports = Readable;
25810 var processNextTick = require('process-nextick-args');
25814 var isArray = require('isarray');
25821 Readable.ReadableState = ReadableState;
25824 var EE = require('events').EventEmitter;
25826 var EElistenerCount = function (emitter, type) {
25827 return emitter.listeners(type).length;
25835 Stream = require('st' + 'ream');
25836 } catch (_) {} finally {
25837 if (!Stream) Stream = require('events').EventEmitter;
25842 var Buffer = require('buffer').Buffer;
25844 var bufferShim = require('buffer-shims');
25848 var util = require('core-util-is');
25849 util.inherits = require('inherits');
25853 var debugUtil = require('util');
25854 var debug = void
0;
25855 if (debugUtil && debugUtil.debuglog) {
25856 debug = debugUtil.debuglog('stream');
25858 debug = function () {};
25862 var BufferList = require('./internal/streams/BufferList');
25865 util.inherits(Readable, Stream);
25867 function prependListener(emitter, event, fn) {
25868 // Sadly this is not cacheable as some libraries bundle their own
25869 // event emitter implementation with them.
25870 if (typeof emitter.prependListener === 'function') {
25871 return emitter.prependListener(event, fn);
25873 // This is a hack to make sure that our error handler is attached before any
25874 // userland ones. NEVER DO THIS. This is here only because this code needs
25875 // to continue to work with older versions of Node.js that do not include
25876 // the prependListener() method. The goal is to eventually remove this hack.
25877 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]];
25881 function ReadableState(options, stream) {
25882 Duplex = Duplex || require('./_stream_duplex');
25884 options = options || {};
25886 // object stream flag. Used to make read(n) ignore n and to
25887 // make all the buffer merging and length checks go away
25888 this.objectMode = !!options.objectMode;
25890 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25892 // the point at which it stops calling _read() to fill the buffer
25893 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25894 var hwm = options.highWaterMark;
25895 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25896 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25899 this.highWaterMark = ~ ~this.highWaterMark;
25901 // A linked list is used to store data chunks instead of an array because the
25902 // linked list can remove elements from the beginning faster than
25904 this.buffer = new BufferList();
25907 this.pipesCount =
0;
25908 this.flowing = null;
25909 this.ended = false;
25910 this.endEmitted = false;
25911 this.reading = false;
25913 // a flag to be able to tell if the onwrite cb is called immediately,
25914 // or on a later tick. We set this to true at first, because any
25915 // actions that shouldn't happen until "later" should generally also
25916 // not happen before the first write call.
25919 // whenever we return null, then we set a flag to say
25920 // that we're awaiting a 'readable' event emission.
25921 this.needReadable = false;
25922 this.emittedReadable = false;
25923 this.readableListening = false;
25924 this.resumeScheduled = false;
25926 // Crypto is kind of old and crusty. Historically, its default string
25927 // encoding is 'binary' so we have to make this configurable.
25928 // Everything else in the universe uses 'utf8', though.
25929 this.defaultEncoding = options.defaultEncoding || 'utf8';
25931 // when piping, we only care about 'readable' events that happen
25932 // after read()ing all the bytes and not getting any pushback.
25933 this.ranOut = false;
25935 // the number of writers that are awaiting a drain event in .pipe()s
25936 this.awaitDrain =
0;
25938 // if true, a maybeReadMore has been scheduled
25939 this.readingMore = false;
25941 this.decoder = null;
25942 this.encoding = null;
25943 if (options.encoding) {
25944 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25945 this.decoder = new StringDecoder(options.encoding);
25946 this.encoding = options.encoding;
25950 function Readable(options) {
25951 Duplex = Duplex || require('./_stream_duplex');
25953 if (!(this instanceof Readable)) return new Readable(options);
25955 this._readableState = new ReadableState(options, this);
25958 this.readable = true;
25960 if (options && typeof options.read === 'function') this._read = options.read;
25965 // Manually shove something into the read() buffer.
25966 // This returns true if the highWaterMark has not been hit yet,
25967 // similar to how Writable.write() returns true if you should
25968 // write() some more.
25969 Readable.prototype.push = function (chunk, encoding) {
25970 var state = this._readableState;
25972 if (!state.objectMode && typeof chunk === 'string') {
25973 encoding = encoding || state.defaultEncoding;
25974 if (encoding !== state.encoding) {
25975 chunk = bufferShim.from(chunk, encoding);
25980 return readableAddChunk(this, state, chunk, encoding, false);
25983 // Unshift should *always* be something directly out of read()
25984 Readable.prototype.unshift = function (chunk) {
25985 var state = this._readableState;
25986 return readableAddChunk(this, state, chunk, '', true);
25989 Readable.prototype.isPaused = function () {
25990 return this._readableState.flowing === false;
25993 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25994 var er = chunkInvalid(state, chunk);
25996 stream.emit('error', er);
25997 } else if (chunk === null) {
25998 state.reading = false;
25999 onEofChunk(stream, state);
26000 } else if (state.objectMode || chunk && chunk.length
> 0) {
26001 if (state.ended && !addToFront) {
26002 var e = new Error('stream.push() after EOF');
26003 stream.emit('error', e);
26004 } else if (state.endEmitted && addToFront) {
26005 var _e = new Error('stream.unshift() after end event');
26006 stream.emit('error', _e);
26009 if (state.decoder && !addToFront && !encoding) {
26010 chunk = state.decoder.write(chunk);
26011 skipAdd = !state.objectMode && chunk.length ===
0;
26014 if (!addToFront) state.reading = false;
26016 // Don't add to the buffer if we've decoded to an empty string chunk and
26017 // we're not in object mode
26019 // if we want the data now, just emit it.
26020 if (state.flowing && state.length ===
0 && !state.sync) {
26021 stream.emit('data', chunk);
26024 // update the buffer info.
26025 state.length += state.objectMode ?
1 : chunk.length;
26026 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
26028 if (state.needReadable) emitReadable(stream);
26032 maybeReadMore(stream, state);
26034 } else if (!addToFront) {
26035 state.reading = false;
26038 return needMoreData(state);
26041 // if it's past the high water mark, we can push in some more.
26042 // Also, if we have no data yet, we can stand some
26043 // more bytes. This is to work around cases where hwm=
0,
26044 // such as the repl. Also, if the push() triggered a
26045 // readable event, and the user called read(largeNumber) such that
26046 // needReadable was set, then we ought to push more, so that another
26047 // 'readable' event will be triggered.
26048 function needMoreData(state) {
26049 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
26052 // backwards compatibility.
26053 Readable.prototype.setEncoding = function (enc) {
26054 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
26055 this._readableState.decoder = new StringDecoder(enc);
26056 this._readableState.encoding = enc;
26060 // Don't raise the hwm
> 8MB
26061 var MAX_HWM =
0x800000;
26062 function computeNewHighWaterMark(n) {
26063 if (n
>= MAX_HWM) {
26066 // Get the next highest power of
2 to prevent increasing hwm excessively in
26079 // This function is designed to be inlinable, so please take care when making
26080 // changes to the function body.
26081 function howMuchToRead(n, state) {
26082 if (n <=
0 || state.length ===
0 && state.ended) return
0;
26083 if (state.objectMode) return
1;
26085 // Only flow one buffer at a time
26086 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
26088 // If we're asking for more than the current hwm, then raise the hwm.
26089 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
26090 if (n <= state.length) return n;
26091 // Don't have enough
26092 if (!state.ended) {
26093 state.needReadable = true;
26096 return state.length;
26099 // you can override either this method, or the async _read(n) below.
26100 Readable.prototype.read = function (n) {
26102 n = parseInt(n,
10);
26103 var state = this._readableState;
26106 if (n !==
0) state.emittedReadable = false;
26108 // if we're doing read(
0) to trigger a readable event, but we
26109 // already have a bunch of data in the buffer, then just trigger
26110 // the 'readable' event and move on.
26111 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
26112 debug('read: emitReadable', state.length, state.ended);
26113 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26117 n = howMuchToRead(n, state);
26119 // if we've ended, and we're now clear, then finish it up.
26120 if (n ===
0 && state.ended) {
26121 if (state.length ===
0) endReadable(this);
26125 // All the actual chunk generation logic needs to be
26126 // *below* the call to _read. The reason is that in certain
26127 // synthetic stream cases, such as passthrough streams, _read
26128 // may be a completely synchronous operation which may change
26129 // the state of the read buffer, providing enough data when
26130 // before there was *not* enough.
26132 // So, the steps are:
26133 //
1. Figure out what the state of things will be after we do
26134 // a read from the buffer.
26136 //
2. If that resulting state will trigger a _read, then call _read.
26137 // Note that this may be asynchronous, or synchronous. Yes, it is
26138 // deeply ugly to write APIs this way, but that still doesn't mean
26139 // that the Readable class should behave improperly, as streams are
26140 // designed to be sync/async agnostic.
26141 // Take note if the _read call is sync or async (ie, if the read call
26142 // has returned yet), so that we know whether or not it's safe to emit
26145 //
3. Actually pull the requested chunks out of the buffer and return.
26147 // if we need a readable event, then we need to do some reading.
26148 var doRead = state.needReadable;
26149 debug('need readable', doRead);
26151 // if we currently have less than the highWaterMark, then also read some
26152 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26154 debug('length less than watermark', doRead);
26157 // however, if we've ended, then there's no point, and if we're already
26158 // reading, then it's unnecessary.
26159 if (state.ended || state.reading) {
26161 debug('reading or ended', doRead);
26162 } else if (doRead) {
26164 state.reading = true;
26166 // if the length is currently zero, then we *need* a readable event.
26167 if (state.length ===
0) state.needReadable = true;
26168 // call internal read method
26169 this._read(state.highWaterMark);
26170 state.sync = false;
26171 // If _read pushed data synchronously, then `reading` will be false,
26172 // and we need to re-evaluate how much data we can return to the user.
26173 if (!state.reading) n = howMuchToRead(nOrig, state);
26177 if (n
> 0) ret = fromList(n, state);else ret = null;
26179 if (ret === null) {
26180 state.needReadable = true;
26186 if (state.length ===
0) {
26187 // If we have nothing in the buffer, then we want to know
26188 // as soon as we *do* get something into the buffer.
26189 if (!state.ended) state.needReadable = true;
26191 // If we tried to read() past the EOF, then emit end on the next tick.
26192 if (nOrig !== n && state.ended) endReadable(this);
26195 if (ret !== null) this.emit('data', ret);
26200 function chunkInvalid(state, chunk) {
26202 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26203 er = new TypeError('Invalid non-string/buffer chunk');
26208 function onEofChunk(stream, state) {
26209 if (state.ended) return;
26210 if (state.decoder) {
26211 var chunk = state.decoder.end();
26212 if (chunk && chunk.length) {
26213 state.buffer.push(chunk);
26214 state.length += state.objectMode ?
1 : chunk.length;
26217 state.ended = true;
26219 // emit 'readable' now to make sure it gets picked up.
26220 emitReadable(stream);
26223 // Don't emit readable right away in sync mode, because this can trigger
26224 // another read() call =
> stack overflow. This way, it might trigger
26225 // a nextTick recursion warning, but that's not so bad.
26226 function emitReadable(stream) {
26227 var state = stream._readableState;
26228 state.needReadable = false;
26229 if (!state.emittedReadable) {
26230 debug('emitReadable', state.flowing);
26231 state.emittedReadable = true;
26232 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26236 function emitReadable_(stream) {
26237 debug('emit readable');
26238 stream.emit('readable');
26242 // at this point, the user has presumably seen the 'readable' event,
26243 // and called read() to consume some data. that may have triggered
26244 // in turn another _read(n) call, in which case reading = true if
26245 // it's in progress.
26246 // However, if we're not ended, or reading, and the length < hwm,
26247 // then go ahead and try to read some more preemptively.
26248 function maybeReadMore(stream, state) {
26249 if (!state.readingMore) {
26250 state.readingMore = true;
26251 processNextTick(maybeReadMore_, stream, state);
26255 function maybeReadMore_(stream, state) {
26256 var len = state.length;
26257 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26258 debug('maybeReadMore read
0');
26260 if (len === state.length)
26261 // didn't get any data, stop spinning.
26262 break;else len = state.length;
26264 state.readingMore = false;
26267 // abstract method. to be overridden in specific implementation classes.
26268 // call cb(er, data) where data is <= n in length.
26269 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26270 // arbitrary, and perhaps not very meaningful.
26271 Readable.prototype._read = function (n) {
26272 this.emit('error', new Error('_read() is not implemented'));
26275 Readable.prototype.pipe = function (dest, pipeOpts) {
26277 var state = this._readableState;
26279 switch (state.pipesCount) {
26281 state.pipes = dest;
26284 state.pipes = [state.pipes, dest];
26287 state.pipes.push(dest);
26290 state.pipesCount +=
1;
26291 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26293 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26295 var endFn = doEnd ? onend : cleanup;
26296 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26298 dest.on('unpipe', onunpipe);
26299 function onunpipe(readable) {
26301 if (readable === src) {
26311 // when the dest drains, it reduces the awaitDrain counter
26312 // on the source. This would be more elegant with a .once()
26313 // handler in flow(), but adding and removing repeatedly is
26315 var ondrain = pipeOnDrain(src);
26316 dest.on('drain', ondrain);
26318 var cleanedUp = false;
26319 function cleanup() {
26321 // cleanup event handlers once the pipe is broken
26322 dest.removeListener('close', onclose);
26323 dest.removeListener('finish', onfinish);
26324 dest.removeListener('drain', ondrain);
26325 dest.removeListener('error', onerror);
26326 dest.removeListener('unpipe', onunpipe);
26327 src.removeListener('end', onend);
26328 src.removeListener('end', cleanup);
26329 src.removeListener('data', ondata);
26333 // if the reader is waiting for a drain event from this
26334 // specific writer, then it would cause it to never start
26336 // So, if this is awaiting a drain, then we just call it now.
26337 // If we don't know, then assume that we are waiting for one.
26338 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26341 // If the user pushes more data while we're writing to dest then we'll end up
26342 // in ondata again. However, we only want to increase awaitDrain once because
26343 // dest will only emit one 'drain' event for the multiple writes.
26344 // =
> Introduce a guard on increasing awaitDrain.
26345 var increasedAwaitDrain = false;
26346 src.on('data', ondata);
26347 function ondata(chunk) {
26349 increasedAwaitDrain = false;
26350 var ret = dest.write(chunk);
26351 if (false === ret && !increasedAwaitDrain) {
26352 // If the user unpiped during `dest.write()`, it is possible
26353 // to get stuck in a permanently paused state if that write
26354 // also returned false.
26355 // =
> Check whether `dest` is still a piping destination.
26356 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26357 debug('false write response, pause', src._readableState.awaitDrain);
26358 src._readableState.awaitDrain++;
26359 increasedAwaitDrain = true;
26365 // if the dest has an error, then stop piping into it.
26366 // however, don't suppress the throwing behavior for this.
26367 function onerror(er) {
26368 debug('onerror', er);
26370 dest.removeListener('error', onerror);
26371 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26374 // Make sure our error handler is attached before userland ones.
26375 prependListener(dest, 'error', onerror);
26377 // Both close and finish should trigger unpipe, but only once.
26378 function onclose() {
26379 dest.removeListener('finish', onfinish);
26382 dest.once('close', onclose);
26383 function onfinish() {
26385 dest.removeListener('close', onclose);
26388 dest.once('finish', onfinish);
26390 function unpipe() {
26395 // tell the dest that it's being piped to
26396 dest.emit('pipe', src);
26398 // start the flow if it hasn't been started already.
26399 if (!state.flowing) {
26400 debug('pipe resume');
26407 function pipeOnDrain(src) {
26408 return function () {
26409 var state = src._readableState;
26410 debug('pipeOnDrain', state.awaitDrain);
26411 if (state.awaitDrain) state.awaitDrain--;
26412 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26413 state.flowing = true;
26419 Readable.prototype.unpipe = function (dest) {
26420 var state = this._readableState;
26422 // if we're not piping anywhere, then do nothing.
26423 if (state.pipesCount ===
0) return this;
26425 // just one destination. most common case.
26426 if (state.pipesCount ===
1) {
26427 // passed in one, but it's not the right one.
26428 if (dest && dest !== state.pipes) return this;
26430 if (!dest) dest = state.pipes;
26433 state.pipes = null;
26434 state.pipesCount =
0;
26435 state.flowing = false;
26436 if (dest) dest.emit('unpipe', this);
26440 // slow case. multiple pipe destinations.
26444 var dests = state.pipes;
26445 var len = state.pipesCount;
26446 state.pipes = null;
26447 state.pipesCount =
0;
26448 state.flowing = false;
26450 for (var i =
0; i < len; i++) {
26451 dests[i].emit('unpipe', this);
26455 // try to find the right one.
26456 var index = indexOf(state.pipes, dest);
26457 if (index === -
1) return this;
26459 state.pipes.splice(index,
1);
26460 state.pipesCount -=
1;
26461 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26463 dest.emit('unpipe', this);
26468 // set up data events if they are asked for
26469 // Ensure readable listeners eventually get something
26470 Readable.prototype.on = function (ev, fn) {
26471 var res = Stream.prototype.on.call(this, ev, fn);
26473 if (ev === 'data') {
26474 // Start flowing on next tick if stream isn't explicitly paused
26475 if (this._readableState.flowing !== false) this.resume();
26476 } else if (ev === 'readable') {
26477 var state = this._readableState;
26478 if (!state.endEmitted && !state.readableListening) {
26479 state.readableListening = state.needReadable = true;
26480 state.emittedReadable = false;
26481 if (!state.reading) {
26482 processNextTick(nReadingNextTick, this);
26483 } else if (state.length) {
26484 emitReadable(this, state);
26491 Readable.prototype.addListener = Readable.prototype.on;
26493 function nReadingNextTick(self) {
26494 debug('readable nexttick read
0');
26498 // pause() and resume() are remnants of the legacy readable stream API
26499 // If the user uses them, then switch into old mode.
26500 Readable.prototype.resume = function () {
26501 var state = this._readableState;
26502 if (!state.flowing) {
26504 state.flowing = true;
26505 resume(this, state);
26510 function resume(stream, state) {
26511 if (!state.resumeScheduled) {
26512 state.resumeScheduled = true;
26513 processNextTick(resume_, stream, state);
26517 function resume_(stream, state) {
26518 if (!state.reading) {
26519 debug('resume read
0');
26523 state.resumeScheduled = false;
26524 state.awaitDrain =
0;
26525 stream.emit('resume');
26527 if (state.flowing && !state.reading) stream.read(
0);
26530 Readable.prototype.pause = function () {
26531 debug('call pause flowing=%j', this._readableState.flowing);
26532 if (false !== this._readableState.flowing) {
26534 this._readableState.flowing = false;
26535 this.emit('pause');
26540 function flow(stream) {
26541 var state = stream._readableState;
26542 debug('flow', state.flowing);
26543 while (state.flowing && stream.read() !== null) {}
26546 // wrap an old-style stream as the async data source.
26547 // This is *not* part of the readable stream interface.
26548 // It is an ugly unfortunate mess of history.
26549 Readable.prototype.wrap = function (stream) {
26550 var state = this._readableState;
26551 var paused = false;
26554 stream.on('end', function () {
26555 debug('wrapped end');
26556 if (state.decoder && !state.ended) {
26557 var chunk = state.decoder.end();
26558 if (chunk && chunk.length) self.push(chunk);
26564 stream.on('data', function (chunk) {
26565 debug('wrapped data');
26566 if (state.decoder) chunk = state.decoder.write(chunk);
26568 // don't skip over falsy values in objectMode
26569 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26571 var ret = self.push(chunk);
26578 // proxy all the other methods.
26579 // important when wrapping filters and duplexes.
26580 for (var i in stream) {
26581 if (this[i] === undefined && typeof stream[i] === 'function') {
26582 this[i] = function (method) {
26583 return function () {
26584 return stream[method].apply(stream, arguments);
26590 // proxy certain important events.
26591 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26592 forEach(events, function (ev) {
26593 stream.on(ev, self.emit.bind(self, ev));
26596 // when we try to consume some more bytes, simply unpause the
26597 // underlying stream.
26598 self._read = function (n) {
26599 debug('wrapped _read', n);
26609 // exposed for testing purposes only.
26610 Readable._fromList = fromList;
26612 // Pluck off n bytes from an array of buffers.
26613 // Length is the combined lengths of all the buffers in the list.
26614 // This function is designed to be inlinable, so please take care when making
26615 // changes to the function body.
26616 function fromList(n, state) {
26617 // nothing buffered
26618 if (state.length ===
0) return null;
26621 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26622 // read it all, truncate the list
26623 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);
26624 state.buffer.clear();
26626 // read part of list
26627 ret = fromListPartial(n, state.buffer, state.decoder);
26633 // Extracts only enough buffered data to satisfy the amount requested.
26634 // This function is designed to be inlinable, so please take care when making
26635 // changes to the function body.
26636 function fromListPartial(n, list, hasStrings) {
26638 if (n < list.head.data.length) {
26639 // slice is the same for buffers and strings
26640 ret = list.head.data.slice(
0, n);
26641 list.head.data = list.head.data.slice(n);
26642 } else if (n === list.head.data.length) {
26643 // first chunk is a perfect match
26644 ret = list.shift();
26646 // result spans more than one buffer
26647 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26652 // Copies a specified amount of characters from the list of buffered data
26654 // This function is designed to be inlinable, so please take care when making
26655 // changes to the function body.
26656 function copyFromBufferString(n, list) {
26661 while (p = p.next) {
26663 var nb = n
> str.length ? str.length : n;
26664 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26667 if (nb === str.length) {
26669 if (p.next) list.head = p.next;else list.head = list.tail = null;
26672 p.data = str.slice(nb);
26682 // Copies a specified amount of bytes from the list of buffered data chunks.
26683 // This function is designed to be inlinable, so please take care when making
26684 // changes to the function body.
26685 function copyFromBuffer(n, list) {
26686 var ret = bufferShim.allocUnsafe(n);
26690 n -= p.data.length;
26691 while (p = p.next) {
26693 var nb = n
> buf.length ? buf.length : n;
26694 buf.copy(ret, ret.length - n,
0, nb);
26697 if (nb === buf.length) {
26699 if (p.next) list.head = p.next;else list.head = list.tail = null;
26702 p.data = buf.slice(nb);
26712 function endReadable(stream) {
26713 var state = stream._readableState;
26715 // If we get here before consuming all the bytes, then that is a
26716 // bug in node. Should never happen.
26717 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26719 if (!state.endEmitted) {
26720 state.ended = true;
26721 processNextTick(endReadableNT, state, stream);
26725 function endReadableNT(state, stream) {
26726 // Check that we didn't get one last unshift.
26727 if (!state.endEmitted && state.length ===
0) {
26728 state.endEmitted = true;
26729 stream.readable = false;
26730 stream.emit('end');
26734 function forEach(xs, f) {
26735 for (var i =
0, l = xs.length; i < l; i++) {
26740 function indexOf(xs, x) {
26741 for (var i =
0, l = xs.length; i < l; i++) {
26742 if (xs[i] === x) return i;
26746 }).call(this,require('_process'))
26747 },{
"./_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){
26748 // a transform stream is a readable/writable stream where you do
26749 // something with the data. Sometimes it's called a
"filter",
26750 // but that's not a great name for it, since that implies a thing where
26751 // some bits pass through, and others are simply ignored. (That would
26752 // be a valid example of a transform, of course.)
26754 // While the output is causally related to the input, it's not a
26755 // necessarily symmetric or synchronous transformation. For example,
26756 // a zlib stream might take multiple plain-text writes(), and then
26757 // emit a single compressed chunk some time in the future.
26759 // Here's how this works:
26761 // The Transform stream has all the aspects of the readable and writable
26762 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26763 // internally, and returns false if there's a lot of pending writes
26764 // buffered up. When you call read(), that calls _read(n) until
26765 // there's enough pending readable data buffered up.
26767 // In a transform stream, the written data is placed in a buffer. When
26768 // _read(n) is called, it transforms the queued up data, calling the
26769 // buffered _write cb's as it consumes chunks. If consuming a single
26770 // written chunk would result in multiple output chunks, then the first
26771 // outputted bit calls the readcb, and subsequent chunks just go into
26772 // the read buffer, and will cause it to emit 'readable' if necessary.
26774 // This way, back-pressure is actually determined by the reading side,
26775 // since _read has to be called to start processing a new chunk. However,
26776 // a pathological inflate type of transform can cause excessive buffering
26777 // here. For example, imagine a stream where every byte of input is
26778 // interpreted as an integer from
0-
255, and then results in that many
26779 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26780 //
1kb of data being output. In this case, you could write a very small
26781 // amount of input, and end up with a very large amount of output. In
26782 // such a pathological inflating mechanism, there'd be no way to tell
26783 // the system to stop doing the transform. A single
4MB write could
26784 // cause the system to run out of memory.
26786 // However, even in such a pathological case, only a single written chunk
26787 // would be consumed, and then the rest would wait (un-transformed) until
26788 // the results of the previous transformed chunk were consumed.
26792 module.exports = Transform;
26794 var Duplex = require('./_stream_duplex');
26797 var util = require('core-util-is');
26798 util.inherits = require('inherits');
26801 util.inherits(Transform, Duplex);
26803 function TransformState(stream) {
26804 this.afterTransform = function (er, data) {
26805 return afterTransform(stream, er, data);
26808 this.needTransform = false;
26809 this.transforming = false;
26810 this.writecb = null;
26811 this.writechunk = null;
26812 this.writeencoding = null;
26815 function afterTransform(stream, er, data) {
26816 var ts = stream._transformState;
26817 ts.transforming = false;
26819 var cb = ts.writecb;
26821 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26823 ts.writechunk = null;
26826 if (data !== null && data !== undefined) stream.push(data);
26830 var rs = stream._readableState;
26831 rs.reading = false;
26832 if (rs.needReadable || rs.length < rs.highWaterMark) {
26833 stream._read(rs.highWaterMark);
26837 function Transform(options) {
26838 if (!(this instanceof Transform)) return new Transform(options);
26840 Duplex.call(this, options);
26842 this._transformState = new TransformState(this);
26846 // start out asking for a readable event once data is transformed.
26847 this._readableState.needReadable = true;
26849 // we have implemented the _read method, and done the other things
26850 // that Readable wants before the first _read call, so unset the
26851 // sync guard flag.
26852 this._readableState.sync = false;
26855 if (typeof options.transform === 'function') this._transform = options.transform;
26857 if (typeof options.flush === 'function') this._flush = options.flush;
26860 // When the writable side finishes, then flush out anything remaining.
26861 this.once('prefinish', function () {
26862 if (typeof this._flush === 'function') this._flush(function (er, data) {
26863 done(stream, er, data);
26864 });else done(stream);
26868 Transform.prototype.push = function (chunk, encoding) {
26869 this._transformState.needTransform = false;
26870 return Duplex.prototype.push.call(this, chunk, encoding);
26873 // This is the part where you do stuff!
26874 // override this function in implementation classes.
26875 // 'chunk' is an input chunk.
26877 // Call `push(newChunk)` to pass along transformed output
26878 // to the readable side. You may call 'push' zero or more times.
26880 // Call `cb(err)` when you are done with this chunk. If you pass
26881 // an error, then that'll put the hurt on the whole operation. If you
26882 // never call cb(), then you'll never get another chunk.
26883 Transform.prototype._transform = function (chunk, encoding, cb) {
26884 throw new Error('_transform() is not implemented');
26887 Transform.prototype._write = function (chunk, encoding, cb) {
26888 var ts = this._transformState;
26890 ts.writechunk = chunk;
26891 ts.writeencoding = encoding;
26892 if (!ts.transforming) {
26893 var rs = this._readableState;
26894 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26898 // Doesn't matter what the args are here.
26899 // _transform does all the work.
26900 // That we got here means that the readable side wants more data.
26901 Transform.prototype._read = function (n) {
26902 var ts = this._transformState;
26904 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26905 ts.transforming = true;
26906 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26908 // mark that we need a transform, so that any data that comes in
26909 // will get processed, now that we've asked for it.
26910 ts.needTransform = true;
26914 function done(stream, er, data) {
26915 if (er) return stream.emit('error', er);
26917 if (data !== null && data !== undefined) stream.push(data);
26919 // if there's nothing in the write buffer, then that means
26920 // that nothing more will ever be provided
26921 var ws = stream._writableState;
26922 var ts = stream._transformState;
26924 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26926 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26928 return stream.push(null);
26930 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26931 (function (process){
26932 // A bit simpler than readable streams.
26933 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26934 // the drain event emission and buffering.
26938 module.exports = Writable;
26941 var processNextTick = require('process-nextick-args');
26945 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26952 Writable.WritableState = WritableState;
26955 var util = require('core-util-is');
26956 util.inherits = require('inherits');
26960 var internalUtil = {
26961 deprecate: require('util-deprecate')
26969 Stream = require('st' + 'ream');
26970 } catch (_) {} finally {
26971 if (!Stream) Stream = require('events').EventEmitter;
26976 var Buffer = require('buffer').Buffer;
26978 var bufferShim = require('buffer-shims');
26981 util.inherits(Writable, Stream);
26985 function WriteReq(chunk, encoding, cb) {
26986 this.chunk = chunk;
26987 this.encoding = encoding;
26988 this.callback = cb;
26992 function WritableState(options, stream) {
26993 Duplex = Duplex || require('./_stream_duplex');
26995 options = options || {};
26997 // object stream flag to indicate whether or not this stream
26998 // contains buffers or objects.
26999 this.objectMode = !!options.objectMode;
27001 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
27003 // the point at which write() starts returning false
27004 // Note:
0 is a valid value, means that we always return false if
27005 // the entire buffer is not flushed immediately on write()
27006 var hwm = options.highWaterMark;
27007 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
27008 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
27011 this.highWaterMark = ~ ~this.highWaterMark;
27013 // drain event flag.
27014 this.needDrain = false;
27015 // at the start of calling end()
27016 this.ending = false;
27017 // when end() has been called, and returned
27018 this.ended = false;
27019 // when 'finish' is emitted
27020 this.finished = false;
27022 // should we decode strings into buffers before passing to _write?
27023 // this is here so that some node-core streams can optimize string
27024 // handling at a lower level.
27025 var noDecode = options.decodeStrings === false;
27026 this.decodeStrings = !noDecode;
27028 // Crypto is kind of old and crusty. Historically, its default string
27029 // encoding is 'binary' so we have to make this configurable.
27030 // Everything else in the universe uses 'utf8', though.
27031 this.defaultEncoding = options.defaultEncoding || 'utf8';
27033 // not an actual buffer we keep track of, but a measurement
27034 // of how much we're waiting to get pushed to some underlying
27038 // a flag to see when we're in the middle of a write.
27039 this.writing = false;
27041 // when true all writes will be buffered until .uncork() call
27044 // a flag to be able to tell if the onwrite cb is called immediately,
27045 // or on a later tick. We set this to true at first, because any
27046 // actions that shouldn't happen until "later" should generally also
27047 // not happen before the first write call.
27050 // a flag to know if we're processing previously buffered items, which
27051 // may call the _write() callback in the same tick, so that we don't
27052 // end up in an overlapped onwrite situation.
27053 this.bufferProcessing = false;
27055 // the callback that's passed to _write(chunk,cb)
27056 this.onwrite = function (er) {
27057 onwrite(stream, er);
27060 // the callback that the user supplies to write(chunk,encoding,cb)
27061 this.writecb = null;
27063 // the amount that is being written when _write is called.
27066 this.bufferedRequest = null;
27067 this.lastBufferedRequest = null;
27069 // number of pending user-supplied write callbacks
27070 // this must be
0 before 'finish' can be emitted
27071 this.pendingcb =
0;
27073 // emit prefinish if the only thing we're waiting for is _write cbs
27074 // This is relevant for synchronous Transform streams
27075 this.prefinished = false;
27077 // True if the error was already emitted and should not be thrown again
27078 this.errorEmitted = false;
27080 // count buffered requests
27081 this.bufferedRequestCount =
0;
27083 // allocate the first CorkedRequest, there is always
27084 // one allocated and free to use, and we maintain at most two
27085 this.corkedRequestsFree = new CorkedRequest(this);
27088 WritableState.prototype.getBuffer = function getBuffer() {
27089 var current = this.bufferedRequest;
27093 current = current.next;
27100 Object.defineProperty(WritableState.prototype, 'buffer', {
27101 get: internalUtil.deprecate(function () {
27102 return this.getBuffer();
27103 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
27108 // Test _writableState for inheritance to account for Duplex streams,
27109 // whose prototype chain only points to Readable.
27110 var realHasInstance;
27111 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
27112 realHasInstance = Function.prototype[Symbol.hasInstance];
27113 Object.defineProperty(Writable, Symbol.hasInstance, {
27114 value: function (object) {
27115 if (realHasInstance.call(this, object)) return true;
27117 return object && object._writableState instanceof WritableState;
27121 realHasInstance = function (object) {
27122 return object instanceof this;
27126 function Writable(options) {
27127 Duplex = Duplex || require('./_stream_duplex');
27129 // Writable ctor is applied to Duplexes, too.
27130 // `realHasInstance` is necessary because using plain `instanceof`
27131 // would return false, as no `_writableState` property is attached.
27133 // Trying to use the custom `instanceof` for Writable here will also break the
27134 // Node.js LazyTransform implementation, which has a non-trivial getter for
27135 // `_writableState` that would lead to infinite recursion.
27136 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27137 return new Writable(options);
27140 this._writableState = new WritableState(options, this);
27143 this.writable = true;
27146 if (typeof options.write === 'function') this._write = options.write;
27148 if (typeof options.writev === 'function') this._writev = options.writev;
27154 // Otherwise people can pipe Writable streams, which is just wrong.
27155 Writable.prototype.pipe = function () {
27156 this.emit('error', new Error('Cannot pipe, not readable'));
27159 function writeAfterEnd(stream, cb) {
27160 var er = new Error('write after end');
27161 // TODO: defer error events consistently everywhere, not just the cb
27162 stream.emit('error', er);
27163 processNextTick(cb, er);
27166 // If we get something that is not a buffer, string, null, or undefined,
27167 // and we're not in objectMode, then that's an error.
27168 // Otherwise stream chunks are all considered to be of length=
1, and the
27169 // watermarks determine how many objects to keep in the buffer, rather than
27170 // how many bytes or characters.
27171 function validChunk(stream, state, chunk, cb) {
27174 // Always throw error if a null is written
27175 // if we are not in object mode then throw
27176 // if it is not a buffer, string, or undefined.
27177 if (chunk === null) {
27178 er = new TypeError('May not write null values to stream');
27179 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27180 er = new TypeError('Invalid non-string/buffer chunk');
27183 stream.emit('error', er);
27184 processNextTick(cb, er);
27190 Writable.prototype.write = function (chunk, encoding, cb) {
27191 var state = this._writableState;
27194 if (typeof encoding === 'function') {
27199 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27201 if (typeof cb !== 'function') cb = nop;
27203 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27205 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27211 Writable.prototype.cork = function () {
27212 var state = this._writableState;
27217 Writable.prototype.uncork = function () {
27218 var state = this._writableState;
27220 if (state.corked) {
27223 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27227 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27228 // node::ParseEncoding() requires lower case.
27229 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27230 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);
27231 this._writableState.defaultEncoding = encoding;
27235 function decodeChunk(state, chunk, encoding) {
27236 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27237 chunk = bufferShim.from(chunk, encoding);
27242 // if we're already writing something, then just put this
27243 // in the queue, and wait our turn. Otherwise, call _write
27244 // If we return false, then we need a drain event, so set that flag.
27245 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27246 chunk = decodeChunk(state, chunk, encoding);
27248 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27249 var len = state.objectMode ?
1 : chunk.length;
27251 state.length += len;
27253 var ret = state.length < state.highWaterMark;
27254 // we must ensure that previous needDrain will not be reset to false.
27255 if (!ret) state.needDrain = true;
27257 if (state.writing || state.corked) {
27258 var last = state.lastBufferedRequest;
27259 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27261 last.next = state.lastBufferedRequest;
27263 state.bufferedRequest = state.lastBufferedRequest;
27265 state.bufferedRequestCount +=
1;
27267 doWrite(stream, state, false, len, chunk, encoding, cb);
27273 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27274 state.writelen = len;
27275 state.writecb = cb;
27276 state.writing = true;
27278 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27279 state.sync = false;
27282 function onwriteError(stream, state, sync, er, cb) {
27284 if (sync) processNextTick(cb, er);else cb(er);
27286 stream._writableState.errorEmitted = true;
27287 stream.emit('error', er);
27290 function onwriteStateUpdate(state) {
27291 state.writing = false;
27292 state.writecb = null;
27293 state.length -= state.writelen;
27294 state.writelen =
0;
27297 function onwrite(stream, er) {
27298 var state = stream._writableState;
27299 var sync = state.sync;
27300 var cb = state.writecb;
27302 onwriteStateUpdate(state);
27304 if (er) onwriteError(stream, state, sync, er, cb);else {
27305 // Check if we're actually ready to finish, but don't emit yet
27306 var finished = needFinish(state);
27308 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27309 clearBuffer(stream, state);
27314 asyncWrite(afterWrite, stream, state, finished, cb);
27317 afterWrite(stream, state, finished, cb);
27322 function afterWrite(stream, state, finished, cb) {
27323 if (!finished) onwriteDrain(stream, state);
27326 finishMaybe(stream, state);
27329 // Must force callback to be called on nextTick, so that we don't
27330 // emit 'drain' before the write() consumer gets the 'false' return
27331 // value, and has a chance to attach a 'drain' listener.
27332 function onwriteDrain(stream, state) {
27333 if (state.length ===
0 && state.needDrain) {
27334 state.needDrain = false;
27335 stream.emit('drain');
27339 // if there's something in the buffer waiting, then process it
27340 function clearBuffer(stream, state) {
27341 state.bufferProcessing = true;
27342 var entry = state.bufferedRequest;
27344 if (stream._writev && entry && entry.next) {
27345 // Fast case, write everything using _writev()
27346 var l = state.bufferedRequestCount;
27347 var buffer = new Array(l);
27348 var holder = state.corkedRequestsFree;
27349 holder.entry = entry;
27353 buffer[count] = entry;
27354 entry = entry.next;
27358 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27360 // doWrite is almost always async, defer these to save a bit of time
27361 // as the hot path ends with doWrite
27363 state.lastBufferedRequest = null;
27365 state.corkedRequestsFree = holder.next;
27366 holder.next = null;
27368 state.corkedRequestsFree = new CorkedRequest(state);
27371 // Slow case, write chunks one-by-one
27373 var chunk = entry.chunk;
27374 var encoding = entry.encoding;
27375 var cb = entry.callback;
27376 var len = state.objectMode ?
1 : chunk.length;
27378 doWrite(stream, state, false, len, chunk, encoding, cb);
27379 entry = entry.next;
27380 // if we didn't call the onwrite immediately, then
27381 // it means that we need to wait until it does.
27382 // also, that means that the chunk and cb are currently
27383 // being processed, so move the buffer counter past them.
27384 if (state.writing) {
27389 if (entry === null) state.lastBufferedRequest = null;
27392 state.bufferedRequestCount =
0;
27393 state.bufferedRequest = entry;
27394 state.bufferProcessing = false;
27397 Writable.prototype._write = function (chunk, encoding, cb) {
27398 cb(new Error('_write() is not implemented'));
27401 Writable.prototype._writev = null;
27403 Writable.prototype.end = function (chunk, encoding, cb) {
27404 var state = this._writableState;
27406 if (typeof chunk === 'function') {
27410 } else if (typeof encoding === 'function') {
27415 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27417 // .end() fully uncorks
27418 if (state.corked) {
27423 // ignore unnecessary end() calls.
27424 if (!state.ending && !state.finished) endWritable(this, state, cb);
27427 function needFinish(state) {
27428 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27431 function prefinish(stream, state) {
27432 if (!state.prefinished) {
27433 state.prefinished = true;
27434 stream.emit('prefinish');
27438 function finishMaybe(stream, state) {
27439 var need = needFinish(state);
27441 if (state.pendingcb ===
0) {
27442 prefinish(stream, state);
27443 state.finished = true;
27444 stream.emit('finish');
27446 prefinish(stream, state);
27452 function endWritable(stream, state, cb) {
27453 state.ending = true;
27454 finishMaybe(stream, state);
27456 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27458 state.ended = true;
27459 stream.writable = false;
27462 // It seems a linked list but it is not
27463 // there will be only
2 of these for each stream
27464 function CorkedRequest(state) {
27470 this.finish = function (err) {
27471 var entry = _this.entry;
27472 _this.entry = null;
27474 var cb = entry.callback;
27477 entry = entry.next;
27479 if (state.corkedRequestsFree) {
27480 state.corkedRequestsFree.next = _this;
27482 state.corkedRequestsFree = _this;
27486 }).call(this,require('_process'))
27487 },{"./_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){
27490 var Buffer = require('buffer').Buffer;
27492 var bufferShim = require('buffer-shims');
27495 module.exports = BufferList;
27497 function BufferList() {
27503 BufferList.prototype.push = function (v) {
27504 var entry = { data: v, next: null };
27505 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27510 BufferList.prototype.unshift = function (v) {
27511 var entry = { data: v, next: this.head };
27512 if (this.length ===
0) this.tail = entry;
27517 BufferList.prototype.shift = function () {
27518 if (this.length ===
0) return;
27519 var ret = this.head.data;
27520 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27525 BufferList.prototype.clear = function () {
27526 this.head = this.tail = null;
27530 BufferList.prototype.join = function (s) {
27531 if (this.length ===
0) return '';
27533 var ret = '' + p.data;
27534 while (p = p.next) {
27539 BufferList.prototype.concat = function (n) {
27540 if (this.length ===
0) return bufferShim.alloc(
0);
27541 if (this.length ===
1) return this.head.data;
27542 var ret = bufferShim.allocUnsafe(n
>>> 0);
27546 p.data.copy(ret, i);
27547 i += p.data.length;
27552 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27553 module.exports = require(
"./lib/_stream_passthrough.js")
27555 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27556 (function (process){
27557 var Stream = (function (){
27559 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27562 exports = module.exports = require('./lib/_stream_readable.js');
27563 exports.Stream = Stream || exports;
27564 exports.Readable = exports;
27565 exports.Writable = require('./lib/_stream_writable.js');
27566 exports.Duplex = require('./lib/_stream_duplex.js');
27567 exports.Transform = require('./lib/_stream_transform.js');
27568 exports.PassThrough = require('./lib/_stream_passthrough.js');
27570 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27571 module.exports = Stream;
27574 }).call(this,require('_process'))
27575 },{
"./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){
27576 module.exports = require(
"./lib/_stream_transform.js")
27578 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27579 module.exports = require(
"./lib/_stream_writable.js")
27581 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27582 // Copyright Joyent, Inc. and other Node contributors.
27584 // Permission is hereby granted, free of charge, to any person obtaining a
27585 // copy of this software and associated documentation files (the
27586 //
"Software"), to deal in the Software without restriction, including
27587 // without limitation the rights to use, copy, modify, merge, publish,
27588 // distribute, sublicense, and/or sell copies of the Software, and to permit
27589 // persons to whom the Software is furnished to do so, subject to the
27590 // following conditions:
27592 // The above copyright notice and this permission notice shall be included
27593 // in all copies or substantial portions of the Software.
27595 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27596 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27597 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27598 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27599 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27600 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27601 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27603 module.exports = Stream;
27605 var EE = require('events').EventEmitter;
27606 var inherits = require('inherits');
27608 inherits(Stream, EE);
27609 Stream.Readable = require('readable-stream/readable.js');
27610 Stream.Writable = require('readable-stream/writable.js');
27611 Stream.Duplex = require('readable-stream/duplex.js');
27612 Stream.Transform = require('readable-stream/transform.js');
27613 Stream.PassThrough = require('readable-stream/passthrough.js');
27615 // Backwards-compat with node
0.4.x
27616 Stream.Stream = Stream;
27620 // old-style streams. Note that the pipe method (the only relevant
27621 // part of this class) is overridden in the Readable class.
27623 function Stream() {
27627 Stream.prototype.pipe = function(dest, options) {
27630 function ondata(chunk) {
27631 if (dest.writable) {
27632 if (false === dest.write(chunk) && source.pause) {
27638 source.on('data', ondata);
27640 function ondrain() {
27641 if (source.readable && source.resume) {
27646 dest.on('drain', ondrain);
27648 // If the 'end' option is not supplied, dest.end() will be called when
27649 // source gets the 'end' or 'close' events. Only dest.end() once.
27650 if (!dest._isStdio && (!options || options.end !== false)) {
27651 source.on('end', onend);
27652 source.on('close', onclose);
27655 var didOnEnd = false;
27657 if (didOnEnd) return;
27664 function onclose() {
27665 if (didOnEnd) return;
27668 if (typeof dest.destroy === 'function') dest.destroy();
27671 // don't leave dangling pipes when there are errors.
27672 function onerror(er) {
27674 if (EE.listenerCount(this, 'error') ===
0) {
27675 throw er; // Unhandled stream error in pipe.
27679 source.on('error', onerror);
27680 dest.on('error', onerror);
27682 // remove all the event listeners that were added.
27683 function cleanup() {
27684 source.removeListener('data', ondata);
27685 dest.removeListener('drain', ondrain);
27687 source.removeListener('end', onend);
27688 source.removeListener('close', onclose);
27690 source.removeListener('error', onerror);
27691 dest.removeListener('error', onerror);
27693 source.removeListener('end', cleanup);
27694 source.removeListener('close', cleanup);
27696 dest.removeListener('close', cleanup);
27699 source.on('end', cleanup);
27700 source.on('close', cleanup);
27702 dest.on('close', cleanup);
27704 dest.emit('pipe', source);
27706 // Allow for unix-like usage: A.pipe(B).pipe(C)
27710 },{
"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){
27711 // Copyright Joyent, Inc. and other Node contributors.
27713 // Permission is hereby granted, free of charge, to any person obtaining a
27714 // copy of this software and associated documentation files (the
27715 //
"Software"), to deal in the Software without restriction, including
27716 // without limitation the rights to use, copy, modify, merge, publish,
27717 // distribute, sublicense, and/or sell copies of the Software, and to permit
27718 // persons to whom the Software is furnished to do so, subject to the
27719 // following conditions:
27721 // The above copyright notice and this permission notice shall be included
27722 // in all copies or substantial portions of the Software.
27724 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27725 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27726 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27727 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27728 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27729 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27730 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27732 var Buffer = require('buffer').Buffer;
27734 var isBufferEncoding = Buffer.isEncoding
27735 || function(encoding) {
27736 switch (encoding && encoding.toLowerCase()) {
27737 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;
27738 default: return false;
27743 function assertEncoding(encoding) {
27744 if (encoding && !isBufferEncoding(encoding)) {
27745 throw new Error('Unknown encoding: ' + encoding);
27749 // StringDecoder provides an interface for efficiently splitting a series of
27750 // buffers into a series of JS strings without breaking apart multi-byte
27751 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27753 // @TODO Handling all encodings inside a single object makes it very difficult
27754 // to reason about this code, so it should be split up in the future.
27755 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27756 // points as used by CESU-
8.
27757 var StringDecoder = exports.StringDecoder = function(encoding) {
27758 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27759 assertEncoding(encoding);
27760 switch (this.encoding) {
27762 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27763 this.surrogateSize =
3;
27767 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27768 this.surrogateSize =
2;
27769 this.detectIncompleteChar = utf16DetectIncompleteChar;
27772 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27773 this.surrogateSize =
3;
27774 this.detectIncompleteChar = base64DetectIncompleteChar;
27777 this.write = passThroughWrite;
27781 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27782 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27783 this.charBuffer = new Buffer(
6);
27784 // Number of bytes received for the current incomplete multi-byte character.
27785 this.charReceived =
0;
27786 // Number of bytes expected for the current incomplete multi-byte character.
27787 this.charLength =
0;
27791 // write decodes the given buffer and returns it as JS string that is
27792 // guaranteed to not contain any partial multi-byte characters. Any partial
27793 // character found at the end of the buffer is buffered up, and will be
27794 // returned when calling write again with the remaining bytes.
27796 // Note: Converting a Buffer containing an orphan surrogate to a String
27797 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27798 // Buffer#write) will replace incomplete surrogates with the unicode
27799 // replacement character. See https://codereview.chromium.org/
121173009/ .
27800 StringDecoder.prototype.write = function(buffer) {
27802 // if our last write ended with an incomplete multibyte character
27803 while (this.charLength) {
27804 // determine how many remaining bytes this buffer has to offer for this char
27805 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27806 this.charLength - this.charReceived :
27809 // add the new bytes to the char buffer
27810 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27811 this.charReceived += available;
27813 if (this.charReceived < this.charLength) {
27814 // still not enough chars in this buffer? wait for more ...
27818 // remove bytes belonging to the current character from the buffer
27819 buffer = buffer.slice(available, buffer.length);
27821 // get the character that was split
27822 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27824 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27825 var charCode = charStr.charCodeAt(charStr.length -
1);
27826 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27827 this.charLength += this.surrogateSize;
27831 this.charReceived = this.charLength =
0;
27833 // if there are no more bytes in this buffer, just emit our char
27834 if (buffer.length ===
0) {
27840 // determine and set charLength / charReceived
27841 this.detectIncompleteChar(buffer);
27843 var end = buffer.length;
27844 if (this.charLength) {
27845 // buffer the incomplete character bytes we got
27846 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27847 end -= this.charReceived;
27850 charStr += buffer.toString(this.encoding,
0, end);
27852 var end = charStr.length -
1;
27853 var charCode = charStr.charCodeAt(end);
27854 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27855 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27856 var size = this.surrogateSize;
27857 this.charLength += size;
27858 this.charReceived += size;
27859 this.charBuffer.copy(this.charBuffer, size,
0, size);
27860 buffer.copy(this.charBuffer,
0,
0, size);
27861 return charStr.substring(
0, end);
27864 // or just emit the charStr
27868 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27869 // the end of the given buffer. If so, it sets this.charLength to the byte
27870 // length that character, and sets this.charReceived to the number of bytes
27871 // that are available for this character.
27872 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27873 // determine how many bytes we have to check at the end of this buffer
27874 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27876 // Figure out if one of the last i bytes of our buffer announces an
27877 // incomplete char.
27878 for (; i
> 0; i--) {
27879 var c = buffer[buffer.length - i];
27881 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27884 if (i ==
1 && c
>> 5 ==
0x06) {
27885 this.charLength =
2;
27890 if (i <=
2 && c
>> 4 ==
0x0E) {
27891 this.charLength =
3;
27896 if (i <=
3 && c
>> 3 ==
0x1E) {
27897 this.charLength =
4;
27901 this.charReceived = i;
27904 StringDecoder.prototype.end = function(buffer) {
27906 if (buffer && buffer.length)
27907 res = this.write(buffer);
27909 if (this.charReceived) {
27910 var cr = this.charReceived;
27911 var buf = this.charBuffer;
27912 var enc = this.encoding;
27913 res += buf.slice(
0, cr).toString(enc);
27919 function passThroughWrite(buffer) {
27920 return buffer.toString(this.encoding);
27923 function utf16DetectIncompleteChar(buffer) {
27924 this.charReceived = buffer.length %
2;
27925 this.charLength = this.charReceived ?
2 :
0;
27928 function base64DetectIncompleteChar(buffer) {
27929 this.charReceived = buffer.length %
3;
27930 this.charLength = this.charReceived ?
3 :
0;
27933 },{
"buffer":
5}],
27:[function(require,module,exports){
27934 (function (global){
27940 module.exports = deprecate;
27943 * Mark that a method should not be used.
27944 * Returns a modified function which warns once by default.
27946 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27948 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27949 * will throw an Error when invoked.
27951 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27952 * will invoke `console.trace()` instead of `console.error()`.
27954 * @param {Function} fn - the function to deprecate
27955 * @param {String} msg - the string to print to the console when `fn` is invoked
27956 * @returns {Function} a new
"deprecated" version of `fn`
27960 function deprecate (fn, msg) {
27961 if (config('noDeprecation')) {
27965 var warned = false;
27966 function deprecated() {
27968 if (config('throwDeprecation')) {
27969 throw new Error(msg);
27970 } else if (config('traceDeprecation')) {
27971 console.trace(msg);
27977 return fn.apply(this, arguments);
27984 * Checks `localStorage` for boolean values for the given `name`.
27986 * @param {String} name
27987 * @returns {Boolean}
27991 function config (name) {
27992 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27994 if (!global.localStorage) return false;
27998 var val = global.localStorage[name];
27999 if (null == val) return false;
28000 return String(val).toLowerCase() === 'true';
28003 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28004 },{}],
28:[function(require,module,exports){
28005 arguments[
4][
9][
0].apply(exports,arguments)
28006 },{
"dup":
9}],
29:[function(require,module,exports){
28007 module.exports = function isBuffer(arg) {
28008 return arg && typeof arg === 'object'
28009 && typeof arg.copy === 'function'
28010 && typeof arg.fill === 'function'
28011 && typeof arg.readUInt8 === 'function';
28013 },{}],
30:[function(require,module,exports){
28014 (function (process,global){
28015 // Copyright Joyent, Inc. and other Node contributors.
28017 // Permission is hereby granted, free of charge, to any person obtaining a
28018 // copy of this software and associated documentation files (the
28019 //
"Software"), to deal in the Software without restriction, including
28020 // without limitation the rights to use, copy, modify, merge, publish,
28021 // distribute, sublicense, and/or sell copies of the Software, and to permit
28022 // persons to whom the Software is furnished to do so, subject to the
28023 // following conditions:
28025 // The above copyright notice and this permission notice shall be included
28026 // in all copies or substantial portions of the Software.
28028 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28029 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28030 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28031 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28032 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28033 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28034 // USE OR OTHER DEALINGS IN THE SOFTWARE.
28036 var formatRegExp = /%[sdj%]/g;
28037 exports.format = function(f) {
28038 if (!isString(f)) {
28040 for (var i =
0; i < arguments.length; i++) {
28041 objects.push(inspect(arguments[i]));
28043 return objects.join(' ');
28047 var args = arguments;
28048 var len = args.length;
28049 var str = String(f).replace(formatRegExp, function(x) {
28050 if (x === '%%') return '%';
28051 if (i
>= len) return x;
28053 case '%s': return String(args[i++]);
28054 case '%d': return Number(args[i++]);
28057 return JSON.stringify(args[i++]);
28059 return '[Circular]';
28065 for (var x = args[i]; i < len; x = args[++i]) {
28066 if (isNull(x) || !isObject(x)) {
28069 str += ' ' + inspect(x);
28076 // Mark that a method should not be used.
28077 // Returns a modified function which warns once by default.
28078 // If --no-deprecation is set, then it is a no-op.
28079 exports.deprecate = function(fn, msg) {
28080 // Allow for deprecating things in the process of starting up.
28081 if (isUndefined(global.process)) {
28082 return function() {
28083 return exports.deprecate(fn, msg).apply(this, arguments);
28087 if (process.noDeprecation === true) {
28091 var warned = false;
28092 function deprecated() {
28094 if (process.throwDeprecation) {
28095 throw new Error(msg);
28096 } else if (process.traceDeprecation) {
28097 console.trace(msg);
28099 console.error(msg);
28103 return fn.apply(this, arguments);
28112 exports.debuglog = function(set) {
28113 if (isUndefined(debugEnviron))
28114 debugEnviron = process.env.NODE_DEBUG || '';
28115 set = set.toUpperCase();
28116 if (!debugs[set]) {
28117 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28118 var pid = process.pid;
28119 debugs[set] = function() {
28120 var msg = exports.format.apply(exports, arguments);
28121 console.error('%s %d: %s', set, pid, msg);
28124 debugs[set] = function() {};
28127 return debugs[set];
28132 * Echos the value of a value. Trys to print the value out
28133 * in the best way possible given the different types.
28135 * @param {Object} obj The object to print out.
28136 * @param {Object} opts Optional options object that alters the output.
28138 /* legacy: obj, showHidden, depth, colors*/
28139 function inspect(obj, opts) {
28143 stylize: stylizeNoColor
28146 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28147 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28148 if (isBoolean(opts)) {
28150 ctx.showHidden = opts;
28152 // got an "options" object
28153 exports._extend(ctx, opts);
28155 // set default options
28156 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28157 if (isUndefined(ctx.depth)) ctx.depth =
2;
28158 if (isUndefined(ctx.colors)) ctx.colors = false;
28159 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28160 if (ctx.colors) ctx.stylize = stylizeWithColor;
28161 return formatValue(ctx, obj, ctx.depth);
28163 exports.inspect = inspect;
28166 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28169 'italic' : [
3,
23],
28170 'underline' : [
4,
24],
28171 'inverse' : [
7,
27],
28172 'white' : [
37,
39],
28174 'black' : [
30,
39],
28177 'green' : [
32,
39],
28178 'magenta' : [
35,
39],
28180 'yellow' : [
33,
39]
28183 // Don't use 'blue' not visible on cmd.exe
28186 'number': 'yellow',
28187 'boolean': 'yellow',
28188 'undefined': 'grey',
28192 // "name": intentionally not styling
28197 function stylizeWithColor(str, styleType) {
28198 var style = inspect.styles[styleType];
28201 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28202 '\u001b[' + inspect.colors[style][
1] + 'm';
28209 function stylizeNoColor(str, styleType) {
28214 function arrayToHash(array) {
28217 array.forEach(function(val, idx) {
28225 function formatValue(ctx, value, recurseTimes) {
28226 // Provide a hook for user-specified inspect functions.
28227 // Check that value is an object with an inspect function on it
28228 if (ctx.customInspect &&
28230 isFunction(value.inspect) &&
28231 // Filter out the util module, it's inspect function is special
28232 value.inspect !== exports.inspect &&
28233 // Also filter out any prototype objects using the circular check.
28234 !(value.constructor && value.constructor.prototype === value)) {
28235 var ret = value.inspect(recurseTimes, ctx);
28236 if (!isString(ret)) {
28237 ret = formatValue(ctx, ret, recurseTimes);
28242 // Primitive types cannot have properties
28243 var primitive = formatPrimitive(ctx, value);
28248 // Look up the keys of the object.
28249 var keys = Object.keys(value);
28250 var visibleKeys = arrayToHash(keys);
28252 if (ctx.showHidden) {
28253 keys = Object.getOwnPropertyNames(value);
28256 // IE doesn't make error fields non-enumerable
28257 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28259 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28260 return formatError(value);
28263 // Some type of object without properties can be shortcutted.
28264 if (keys.length ===
0) {
28265 if (isFunction(value)) {
28266 var name = value.name ? ': ' + value.name : '';
28267 return ctx.stylize('[Function' + name + ']', 'special');
28269 if (isRegExp(value)) {
28270 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28272 if (isDate(value)) {
28273 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28275 if (isError(value)) {
28276 return formatError(value);
28280 var base = '', array = false, braces = ['{', '}'];
28282 // Make Array say that they are Array
28283 if (isArray(value)) {
28285 braces = ['[', ']'];
28288 // Make functions say that they are functions
28289 if (isFunction(value)) {
28290 var n = value.name ? ': ' + value.name : '';
28291 base = ' [Function' + n + ']';
28294 // Make RegExps say that they are RegExps
28295 if (isRegExp(value)) {
28296 base = ' ' + RegExp.prototype.toString.call(value);
28299 // Make dates with properties first say the date
28300 if (isDate(value)) {
28301 base = ' ' + Date.prototype.toUTCString.call(value);
28304 // Make error with message first say the error
28305 if (isError(value)) {
28306 base = ' ' + formatError(value);
28309 if (keys.length ===
0 && (!array || value.length ==
0)) {
28310 return braces[
0] + base + braces[
1];
28313 if (recurseTimes <
0) {
28314 if (isRegExp(value)) {
28315 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28317 return ctx.stylize('[Object]', 'special');
28321 ctx.seen.push(value);
28325 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28327 output = keys.map(function(key) {
28328 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28334 return reduceToSingleString(output, base, braces);
28338 function formatPrimitive(ctx, value) {
28339 if (isUndefined(value))
28340 return ctx.stylize('undefined', 'undefined');
28341 if (isString(value)) {
28342 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28343 .replace(/'/g, "\\'")
28344 .replace(/\\"/g, '"') + '\'';
28345 return ctx.stylize(simple, 'string');
28347 if (isNumber(value))
28348 return ctx.stylize('' + value, 'number');
28349 if (isBoolean(value))
28350 return ctx.stylize('' + value, 'boolean');
28351 // For some reason typeof null is "object", so special case here.
28353 return ctx.stylize('null', 'null');
28357 function formatError(value) {
28358 return '[' + Error.prototype.toString.call(value) + ']';
28362 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28364 for (var i =
0, l = value.length; i < l; ++i) {
28365 if (hasOwnProperty(value, String(i))) {
28366 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28372 keys.forEach(function(key) {
28373 if (!key.match(/^\d+$/)) {
28374 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28382 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28383 var name, str, desc;
28384 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28387 str = ctx.stylize('[Getter/Setter]', 'special');
28389 str = ctx.stylize('[Getter]', 'special');
28393 str = ctx.stylize('[Setter]', 'special');
28396 if (!hasOwnProperty(visibleKeys, key)) {
28397 name = '[' + key + ']';
28400 if (ctx.seen.indexOf(desc.value) <
0) {
28401 if (isNull(recurseTimes)) {
28402 str = formatValue(ctx, desc.value, null);
28404 str = formatValue(ctx, desc.value, recurseTimes -
1);
28406 if (str.indexOf('\n')
> -
1) {
28408 str = str.split('\n').map(function(line) {
28410 }).join('\n').substr(
2);
28412 str = '\n' + str.split('\n').map(function(line) {
28418 str = ctx.stylize('[Circular]', 'special');
28421 if (isUndefined(name)) {
28422 if (array && key.match(/^\d+$/)) {
28425 name = JSON.stringify('' + key);
28426 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28427 name = name.substr(
1, name.length -
2);
28428 name = ctx.stylize(name, 'name');
28430 name = name.replace(/'/g, "\\'")
28431 .replace(/\\"/g, '"')
28432 .replace(/(^"|"$)/g, "'");
28433 name = ctx.stylize(name, 'string');
28437 return name + ': ' + str;
28441 function reduceToSingleString(output, base, braces) {
28442 var numLinesEst =
0;
28443 var length = output.reduce(function(prev, cur) {
28445 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28446 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28451 (base === '' ? '' : base + '\n ') +
28453 output.join(',\n ') +
28458 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28462 // NOTE: These type checking functions intentionally don't use `instanceof`
28463 // because it is fragile and can be easily faked with `Object.create()`.
28464 function isArray(ar) {
28465 return Array.isArray(ar);
28467 exports.isArray = isArray;
28469 function isBoolean(arg) {
28470 return typeof arg === 'boolean';
28472 exports.isBoolean = isBoolean;
28474 function isNull(arg) {
28475 return arg === null;
28477 exports.isNull = isNull;
28479 function isNullOrUndefined(arg) {
28480 return arg == null;
28482 exports.isNullOrUndefined = isNullOrUndefined;
28484 function isNumber(arg) {
28485 return typeof arg === 'number';
28487 exports.isNumber = isNumber;
28489 function isString(arg) {
28490 return typeof arg === 'string';
28492 exports.isString = isString;
28494 function isSymbol(arg) {
28495 return typeof arg === 'symbol';
28497 exports.isSymbol = isSymbol;
28499 function isUndefined(arg) {
28500 return arg === void
0;
28502 exports.isUndefined = isUndefined;
28504 function isRegExp(re) {
28505 return isObject(re) && objectToString(re) === '[object RegExp]';
28507 exports.isRegExp = isRegExp;
28509 function isObject(arg) {
28510 return typeof arg === 'object' && arg !== null;
28512 exports.isObject = isObject;
28514 function isDate(d) {
28515 return isObject(d) && objectToString(d) === '[object Date]';
28517 exports.isDate = isDate;
28519 function isError(e) {
28520 return isObject(e) &&
28521 (objectToString(e) === '[object Error]' || e instanceof Error);
28523 exports.isError = isError;
28525 function isFunction(arg) {
28526 return typeof arg === 'function';
28528 exports.isFunction = isFunction;
28530 function isPrimitive(arg) {
28531 return arg === null ||
28532 typeof arg === 'boolean' ||
28533 typeof arg === 'number' ||
28534 typeof arg === 'string' ||
28535 typeof arg === 'symbol' || // ES6 symbol
28536 typeof arg === 'undefined';
28538 exports.isPrimitive = isPrimitive;
28540 exports.isBuffer = require('./support/isBuffer');
28542 function objectToString(o) {
28543 return Object.prototype.toString.call(o);
28548 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28552 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28553 'Oct', 'Nov', 'Dec'];
28556 function timestamp() {
28557 var d = new Date();
28558 var time = [pad(d.getHours()),
28559 pad(d.getMinutes()),
28560 pad(d.getSeconds())].join(':');
28561 return [d.getDate(), months[d.getMonth()], time].join(' ');
28565 // log is just a thin wrapper to console.log that prepends a timestamp
28566 exports.log = function() {
28567 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28572 * Inherit the prototype methods from one constructor into another.
28574 * The Function.prototype.inherits from lang.js rewritten as a standalone
28575 * function (not on Function.prototype). NOTE: If this file is to be loaded
28576 * during bootstrapping this function needs to be rewritten using some native
28577 * functions as prototype setup using normal JavaScript does not work as
28578 * expected during bootstrapping (see mirror.js in r114903).
28580 * @param {function} ctor Constructor function which needs to inherit the
28582 * @param {function} superCtor Constructor function to inherit prototype from.
28584 exports.inherits = require('inherits');
28586 exports._extend = function(origin, add) {
28587 // Don't do anything if add isn't an object
28588 if (!add || !isObject(add)) return origin;
28590 var keys = Object.keys(add);
28591 var i = keys.length;
28593 origin[keys[i]] = add[keys[i]];
28598 function hasOwnProperty(obj, prop) {
28599 return Object.prototype.hasOwnProperty.call(obj, prop);
28602 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28603 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28604 (function (Buffer){
28605 const createKeccakHash = require('keccak')
28606 const secp256k1 = require('secp256k1')
28607 const assert = require('assert')
28608 const rlp = require('rlp')
28609 const BN = require('bn.js')
28610 const createHash = require('create-hash')
28611 Object.assign(exports, require('ethjs-util'))
28614 * the max integer that this VM can handle (a ```BN```)
28615 * @var {BN} MAX_INTEGER
28617 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28620 *
2^
256 (a ```BN```)
28621 * @var {BN} TWO_POW256
28623 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28626 * SHA3-
256 hash of null (a ```String```)
28627 * @var {String} SHA3_NULL_S
28629 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28632 * SHA3-
256 hash of null (a ```Buffer```)
28633 * @var {Buffer} SHA3_NULL
28635 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28638 * SHA3-
256 of an RLP of an empty array (a ```String```)
28639 * @var {String} SHA3_RLP_ARRAY_S
28641 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28644 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28645 * @var {Buffer} SHA3_RLP_ARRAY
28647 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28650 * SHA3-
256 hash of the RLP of null (a ```String```)
28651 * @var {String} SHA3_RLP_S
28653 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28656 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28657 * @var {Buffer} SHA3_RLP
28659 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28662 * [`BN`](https://github.com/indutny/bn.js)
28668 * [`rlp`](https://github.com/ethereumjs/rlp)
28674 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28677 exports.secp256k1 = secp256k1
28680 * Returns a buffer filled with
0s
28682 * @param {Number} bytes the number of bytes the buffer should be
28685 exports.zeros = function (bytes) {
28686 return Buffer.allocUnsafe(bytes).fill(
0)
28690 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28691 * Or it truncates the beginning if it exceeds.
28692 * @method lsetLength
28693 * @param {Buffer|Array} msg the value to pad
28694 * @param {Number} length the number of bytes the output should be
28695 * @param {Boolean} [right=false] whether to start padding form the left or right
28696 * @return {Buffer|Array}
28698 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28699 var buf = exports.zeros(length)
28700 msg = exports.toBuffer(msg)
28702 if (msg.length < length) {
28706 return msg.slice(
0, length)
28708 if (msg.length < length) {
28709 msg.copy(buf, length - msg.length)
28712 return msg.slice(-length)
28717 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28718 * Or it truncates the beginning if it exceeds.
28719 * @param {Buffer|Array} msg the value to pad
28720 * @param {Number} length the number of bytes the output should be
28721 * @return {Buffer|Array}
28723 exports.setLengthRight = function (msg, length) {
28724 return exports.setLength(msg, length, true)
28728 * Trims leading zeros from a `Buffer` or an `Array`
28729 * @param {Buffer|Array|String} a
28730 * @return {Buffer|Array|String}
28732 exports.unpad = exports.stripZeros = function (a) {
28733 a = exports.stripHexPrefix(a)
28735 while (a.length
> 0 && first.toString() === '
0') {
28742 * 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.
28743 * @param {*} v the value
28745 exports.toBuffer = function (v) {
28746 if (!Buffer.isBuffer(v)) {
28747 if (Array.isArray(v)) {
28749 } else if (typeof v === 'string') {
28750 if (exports.isHexPrefixed(v)) {
28751 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28755 } else if (typeof v === 'number') {
28756 v = exports.intToBuffer(v)
28757 } else if (v === null || v === undefined) {
28758 v = Buffer.allocUnsafe(
0)
28759 } else if (v.toArray) {
28760 // converts a BN to a Buffer
28761 v = Buffer.from(v.toArray())
28763 throw new Error('invalid type')
28770 * Converts a `Buffer` to a `Number`
28771 * @param {Buffer} buf
28773 * @throws If the input number exceeds
53 bits.
28775 exports.bufferToInt = function (buf) {
28776 return new BN(exports.toBuffer(buf)).toNumber()
28780 * Converts a `Buffer` into a hex `String`
28781 * @param {Buffer} buf
28784 exports.bufferToHex = function (buf) {
28785 buf = exports.toBuffer(buf)
28786 return '
0x' + buf.toString('hex')
28790 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28791 * @param {Buffer} num
28794 exports.fromSigned = function (num) {
28795 return new BN(num).fromTwos(
256)
28799 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28803 exports.toUnsigned = function (num) {
28804 return Buffer.from(num.toTwos(
256).toArray())
28808 * Creates SHA-
3 hash of the input
28809 * @param {Buffer|Array|String|Number} a the input data
28810 * @param {Number} [bits=
256] the SHA width
28813 exports.sha3 = function (a, bits) {
28814 a = exports.toBuffer(a)
28815 if (!bits) bits =
256
28817 return createKeccakHash('keccak' + bits).update(a).digest()
28821 * Creates SHA256 hash of the input
28822 * @param {Buffer|Array|String|Number} a the input data
28825 exports.sha256 = function (a) {
28826 a = exports.toBuffer(a)
28827 return createHash('sha256').update(a).digest()
28831 * Creates RIPEMD160 hash of the input
28832 * @param {Buffer|Array|String|Number} a the input data
28833 * @param {Boolean} padded whether it should be padded to
256 bits or not
28836 exports.ripemd160 = function (a, padded) {
28837 a = exports.toBuffer(a)
28838 var hash = createHash('rmd160').update(a).digest()
28839 if (padded === true) {
28840 return exports.setLength(hash,
32)
28847 * Creates SHA-
3 hash of the RLP encoded version of the input
28848 * @param {Buffer|Array|String|Number} a the input data
28851 exports.rlphash = function (a) {
28852 return exports.sha3(rlp.encode(a))
28856 * Checks if the private key satisfies the rules of the curve secp256k1.
28857 * @param {Buffer} privateKey
28858 * @return {Boolean}
28860 exports.isValidPrivate = function (privateKey) {
28861 return secp256k1.privateKeyVerify(privateKey)
28865 * Checks if the public key satisfies the rules of the curve secp256k1
28866 * and the requirements of Ethereum.
28867 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28868 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28869 * @return {Boolean}
28871 exports.isValidPublic = function (publicKey, sanitize) {
28872 if (publicKey.length ===
64) {
28873 // Convert to SEC1 for secp256k1
28874 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28881 return secp256k1.publicKeyVerify(publicKey)
28885 * Returns the ethereum address of a given public key.
28886 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28887 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28888 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28891 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28892 pubKey = exports.toBuffer(pubKey)
28893 if (sanitize && (pubKey.length !==
64)) {
28894 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28896 assert(pubKey.length ===
64)
28897 // Only take the lower
160bits of the hash
28898 return exports.sha3(pubKey).slice(-
20)
28902 * Returns the ethereum public key of a given private key
28903 * @param {Buffer} privateKey A private key must be
256 bits wide
28906 var privateToPublic = exports.privateToPublic = function (privateKey) {
28907 privateKey = exports.toBuffer(privateKey)
28908 // skip the type flag and use the X, Y points
28909 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28913 * Converts a public key to the Ethereum format.
28914 * @param {Buffer} publicKey
28917 exports.importPublic = function (publicKey) {
28918 publicKey = exports.toBuffer(publicKey)
28919 if (publicKey.length !==
64) {
28920 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28927 * @param {Buffer} msgHash
28928 * @param {Buffer} privateKey
28931 exports.ecsign = function (msgHash, privateKey) {
28932 var sig = secp256k1.sign(msgHash, privateKey)
28935 ret.r = sig.signature.slice(
0,
32)
28936 ret.s = sig.signature.slice(
32,
64)
28937 ret.v = sig.recovery +
27
28942 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28943 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28944 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28945 * used to produce the signature.
28947 * @returns {Buffer} hash
28949 exports.hashPersonalMessage = function (message) {
28950 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28951 return exports.sha3(Buffer.concat([prefix, message]))
28955 * ECDSA public key recovery from signature
28956 * @param {Buffer} msgHash
28957 * @param {Number} v
28958 * @param {Buffer} r
28959 * @param {Buffer} s
28960 * @return {Buffer} publicKey
28962 exports.ecrecover = function (msgHash, v, r, s) {
28963 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28964 var recovery = v -
27
28965 if (recovery !==
0 && recovery !==
1) {
28966 throw new Error('Invalid signature v value')
28968 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28969 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28973 * Convert signature parameters into the format of `eth_sign` RPC method
28974 * @param {Number} v
28975 * @param {Buffer} r
28976 * @param {Buffer} s
28977 * @return {String} sig
28979 exports.toRpcSig = function (v, r, s) {
28980 // NOTE: with potential introduction of chainId this might need to be updated
28981 if (v !==
27 && v !==
28) {
28982 throw new Error('Invalid recovery id')
28985 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28986 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28987 return exports.bufferToHex(Buffer.concat([
28988 exports.setLengthLeft(r,
32),
28989 exports.setLengthLeft(s,
32),
28990 exports.toBuffer(v -
27)
28995 * Convert signature format of the `eth_sign` RPC method to signature parameters
28996 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28997 * @param {String} sig
29000 exports.fromRpcSig = function (sig) {
29001 sig = exports.toBuffer(sig)
29003 // NOTE: with potential introduction of chainId this might need to be updated
29004 if (sig.length !==
65) {
29005 throw new Error('Invalid signature length')
29009 // support both versions of `eth_sign` responses
29016 r: sig.slice(
0,
32),
29017 s: sig.slice(
32,
64)
29022 * Returns the ethereum address of a given private key
29023 * @param {Buffer} privateKey A private key must be
256 bits wide
29026 exports.privateToAddress = function (privateKey) {
29027 return exports.publicToAddress(privateToPublic(privateKey))
29031 * Checks if the address is a valid. Accepts checksummed addresses too
29032 * @param {String} address
29033 * @return {Boolean}
29035 exports.isValidAddress = function (address) {
29036 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
29040 * Returns a checksummed address
29041 * @param {String} address
29044 exports.toChecksumAddress = function (address) {
29045 address = exports.stripHexPrefix(address).toLowerCase()
29046 var hash = exports.sha3(address).toString('hex')
29049 for (var i =
0; i < address.length; i++) {
29050 if (parseInt(hash[i],
16)
>=
8) {
29051 ret += address[i].toUpperCase()
29061 * Checks if the address is a valid checksummed address
29062 * @param {Buffer} address
29063 * @return {Boolean}
29065 exports.isValidChecksumAddress = function (address) {
29066 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
29070 * Generates an address of a newly created contract
29071 * @param {Buffer} from the address which is creating this new address
29072 * @param {Buffer} nonce the nonce of the from account
29075 exports.generateAddress = function (from, nonce) {
29076 from = exports.toBuffer(from)
29077 nonce = new BN(nonce)
29079 if (nonce.isZero()) {
29080 // in RLP we want to encode null in the case of zero nonce
29081 // read the RLP documentation for an answer if you dare
29084 nonce = Buffer.from(nonce.toArray())
29087 // Only take the lower
160bits of the hash
29088 return exports.rlphash([from, nonce]).slice(-
20)
29092 * Returns true if the supplied address belongs to a precompiled account
29093 * @param {Buffer|String} address
29094 * @return {Boolean}
29096 exports.isPrecompiled = function (address) {
29097 var a = exports.unpad(address)
29098 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
29102 * Adds
"0x" to a given `String` if it does not already start with
"0x"
29103 * @param {String} str
29106 exports.addHexPrefix = function (str) {
29107 if (typeof str !== 'string') {
29111 return exports.isHexPrefixed(str) ? str : '
0x' + str
29115 * Validate ECDSA signature
29116 * @method isValidSignature
29117 * @param {Buffer} v
29118 * @param {Buffer} r
29119 * @param {Buffer} s
29120 * @param {Boolean} [homestead=true]
29121 * @return {Boolean}
29124 exports.isValidSignature = function (v, r, s, homestead) {
29125 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29126 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29128 if (r.length !==
32 || s.length !==
32) {
29132 if (v !==
27 && v !==
28) {
29139 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29143 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29151 * Converts a `Buffer` or `Array` to JSON
29152 * @param {Buffer|Array} ba
29153 * @return {Array|String|null}
29155 exports.baToJSON = function (ba) {
29156 if (Buffer.isBuffer(ba)) {
29157 return '
0x' + ba.toString('hex')
29158 } else if (ba instanceof Array) {
29160 for (var i =
0; i < ba.length; i++) {
29161 array.push(exports.baToJSON(ba[i]))
29168 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29169 * @param {Object} self the `Object` to define properties on
29170 * @param {Array} fields an array fields to define. Fields can contain:
29171 * * `name` - the name of the properties
29172 * * `length` - the number of bytes the field can have
29173 * * `allowLess` - if the field can be less than the length
29175 * @param {*} data data to be validated against the definitions
29177 exports.defineProperties = function (self, fields, data) {
29181 // attach the `toJSON`
29182 self.toJSON = function (label) {
29185 self._fields.forEach(function (field) {
29186 obj[field] = '
0x' + self[field].toString('hex')
29190 return exports.baToJSON(this.raw)
29193 self.serialize = function serialize () {
29194 return rlp.encode(self.raw)
29197 fields.forEach(function (field, i) {
29198 self._fields.push(field.name)
29199 function getter () {
29202 function setter (v) {
29203 v = exports.toBuffer(v)
29205 if (v.toString('hex') === '
00' && !field.allowZero) {
29206 v = Buffer.allocUnsafe(
0)
29209 if (field.allowLess && field.length) {
29210 v = exports.stripZeros(v)
29211 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29212 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29213 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29219 Object.defineProperty(self, field.name, {
29221 configurable: true,
29226 if (field.default) {
29227 self[field.name] = field.default
29232 Object.defineProperty(self, field.alias, {
29234 configurable: true,
29241 // if the constuctor is passed data
29243 if (typeof data === 'string') {
29244 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29247 if (Buffer.isBuffer(data)) {
29248 data = rlp.decode(data)
29251 if (Array.isArray(data)) {
29252 if (data.length
> self._fields.length) {
29253 throw (new Error('wrong number of fields in data'))
29256 // make sure all the items are buffers
29257 data.forEach(function (d, i) {
29258 self[self._fields[i]] = exports.toBuffer(d)
29260 } else if (typeof data === 'object') {
29261 const keys = Object.keys(data)
29262 fields.forEach(function (field) {
29263 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29264 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29267 throw new Error('invalid data')
29272 }).call(this,require("buffer").Buffer)
29273 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29274 (function (Buffer){
29275 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29276 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29277 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29279 function check (buffer) {
29280 if (buffer.length <
8) return false
29281 if (buffer.length
> 72) return false
29282 if (buffer[
0] !==
0x30) return false
29283 if (buffer[
1] !== buffer.length -
2) return false
29284 if (buffer[
2] !==
0x02) return false
29286 var lenR = buffer[
3]
29287 if (lenR ===
0) return false
29288 if (
5 + lenR
>= buffer.length) return false
29289 if (buffer[
4 + lenR] !==
0x02) return false
29291 var lenS = buffer[
5 + lenR]
29292 if (lenS ===
0) return false
29293 if ((
6 + lenR + lenS) !== buffer.length) return false
29295 if (buffer[
4] &
0x80) return false
29296 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29298 if (buffer[lenR +
6] &
0x80) return false
29299 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29303 function decode (buffer) {
29304 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29305 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29306 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29307 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29308 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29310 var lenR = buffer[
3]
29311 if (lenR ===
0) throw new Error('R length is zero')
29312 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29313 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29315 var lenS = buffer[
5 + lenR]
29316 if (lenS ===
0) throw new Error('S length is zero')
29317 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29319 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29320 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29322 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29323 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29325 // non-BIP66 - extract R, S values
29327 r: buffer.slice(
4,
4 + lenR),
29328 s: buffer.slice(
6 + lenR)
29333 * Expects r and s to be positive DER integers.
29335 * The DER format uses the most significant bit as a sign bit (&
0x80).
29336 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29351 *
62300 =
> 0x00f35c
29352 * -
62300 =
> 0xff0ca4
29354 function encode (r, s) {
29355 var lenR = r.length
29356 var lenS = s.length
29357 if (lenR ===
0) throw new Error('R length is zero')
29358 if (lenS ===
0) throw new Error('S length is zero')
29359 if (lenR
> 33) throw new Error('R length is too long')
29360 if (lenS
> 33) throw new Error('S length is too long')
29361 if (r[
0] &
0x80) throw new Error('R value is negative')
29362 if (s[
0] &
0x80) throw new Error('S value is negative')
29363 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29364 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29366 var signature = new Buffer(
6 + lenR + lenS)
29368 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29369 signature[
0] =
0x30
29370 signature[
1] = signature.length -
2
29371 signature[
2] =
0x02
29372 signature[
3] = r.length
29373 r.copy(signature,
4)
29374 signature[
4 + lenR] =
0x02
29375 signature[
5 + lenR] = s.length
29376 s.copy(signature,
6 + lenR)
29387 }).call(this,require(
"buffer").Buffer)
29388 },{
"buffer":
5}],
33:[function(require,module,exports){
29389 (function (module, exports) {
29393 function assert (val, msg) {
29394 if (!val) throw new Error(msg || 'Assertion failed');
29397 // Could use `inherits` module, but don't want to move from single file
29398 // architecture yet.
29399 function inherits (ctor, superCtor) {
29400 ctor.super_ = superCtor;
29401 var TempCtor = function () {};
29402 TempCtor.prototype = superCtor.prototype;
29403 ctor.prototype = new TempCtor();
29404 ctor.prototype.constructor = ctor;
29409 function BN (number, base, endian) {
29410 if (BN.isBN(number)) {
29418 // Reduction context
29421 if (number !== null) {
29422 if (base === 'le' || base === 'be') {
29427 this._init(number ||
0, base ||
10, endian || 'be');
29430 if (typeof module === 'object') {
29431 module.exports = BN;
29441 Buffer = require('buf' + 'fer').Buffer;
29445 BN.isBN = function isBN (num) {
29446 if (num instanceof BN) {
29450 return num !== null && typeof num === 'object' &&
29451 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29454 BN.max = function max (left, right) {
29455 if (left.cmp(right)
> 0) return left;
29459 BN.min = function min (left, right) {
29460 if (left.cmp(right) <
0) return left;
29464 BN.prototype._init = function init (number, base, endian) {
29465 if (typeof number === 'number') {
29466 return this._initNumber(number, base, endian);
29469 if (typeof number === 'object') {
29470 return this._initArray(number, base, endian);
29473 if (base === 'hex') {
29476 assert(base === (base |
0) && base
>=
2 && base <=
36);
29478 number = number.toString().replace(/\s+/g, '');
29480 if (number[
0] === '-') {
29485 this._parseHex(number, start);
29487 this._parseBase(number, base, start);
29490 if (number[
0] === '-') {
29496 if (endian !== 'le') return;
29498 this._initArray(this.toArray(), base, endian);
29501 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29506 if (number <
0x4000000) {
29507 this.words = [ number &
0x3ffffff ];
29509 } else if (number <
0x10000000000000) {
29511 number &
0x3ffffff,
29512 (number /
0x4000000) &
0x3ffffff
29516 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29518 number &
0x3ffffff,
29519 (number /
0x4000000) &
0x3ffffff,
29525 if (endian !== 'le') return;
29527 // Reverse the bytes
29528 this._initArray(this.toArray(), base, endian);
29531 BN.prototype._initArray = function _initArray (number, base, endian) {
29532 // Perhaps a Uint8Array
29533 assert(typeof number.length === 'number');
29534 if (number.length <=
0) {
29535 this.words = [
0 ];
29540 this.length = Math.ceil(number.length /
3);
29541 this.words = new Array(this.length);
29542 for (var i =
0; i < this.length; i++) {
29548 if (endian === 'be') {
29549 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29550 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29551 this.words[j] |= (w << off) &
0x3ffffff;
29552 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29559 } else if (endian === 'le') {
29560 for (i =
0, j =
0; i < number.length; i +=
3) {
29561 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29562 this.words[j] |= (w << off) &
0x3ffffff;
29563 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29571 return this.strip();
29574 function parseHex (str, start, end) {
29576 var len = Math.min(str.length, end);
29577 for (var i = start; i < len; i++) {
29578 var c = str.charCodeAt(i) -
48;
29583 if (c
>=
49 && c <=
54) {
29587 } else if (c
>=
17 && c <=
22) {
29598 BN.prototype._parseHex = function _parseHex (number, start) {
29599 // Create possibly bigger array to ensure that it fits the number
29600 this.length = Math.ceil((number.length - start) /
6);
29601 this.words = new Array(this.length);
29602 for (var i =
0; i < this.length; i++) {
29607 // Scan
24-bit chunks and add them to the number
29609 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29610 w = parseHex(number, i, i +
6);
29611 this.words[j] |= (w << off) &
0x3ffffff;
29612 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29613 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29620 if (i +
6 !== start) {
29621 w = parseHex(number, start, i +
6);
29622 this.words[j] |= (w << off) &
0x3ffffff;
29623 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29628 function parseBase (str, start, end, mul) {
29630 var len = Math.min(str.length, end);
29631 for (var i = start; i < len; i++) {
29632 var c = str.charCodeAt(i) -
48;
29641 } else if (c
>=
17) {
29652 BN.prototype._parseBase = function _parseBase (number, base, start) {
29653 // Initialize as zero
29654 this.words = [
0 ];
29657 // Find length of limb in base
29658 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29662 limbPow = (limbPow / base) |
0;
29664 var total = number.length - start;
29665 var mod = total % limbLen;
29666 var end = Math.min(total, total - mod) + start;
29669 for (var i = start; i < end; i += limbLen) {
29670 word = parseBase(number, i, i + limbLen, base);
29672 this.imuln(limbPow);
29673 if (this.words[
0] + word <
0x4000000) {
29674 this.words[
0] += word;
29682 word = parseBase(number, i, number.length, base);
29684 for (i =
0; i < mod; i++) {
29689 if (this.words[
0] + word <
0x4000000) {
29690 this.words[
0] += word;
29697 BN.prototype.copy = function copy (dest) {
29698 dest.words = new Array(this.length);
29699 for (var i =
0; i < this.length; i++) {
29700 dest.words[i] = this.words[i];
29702 dest.length = this.length;
29703 dest.negative = this.negative;
29704 dest.red = this.red;
29707 BN.prototype.clone = function clone () {
29708 var r = new BN(null);
29713 BN.prototype._expand = function _expand (size) {
29714 while (this.length < size) {
29715 this.words[this.length++] =
0;
29720 // Remove leading `
0` from `this`
29721 BN.prototype.strip = function strip () {
29722 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29725 return this._normSign();
29728 BN.prototype._normSign = function _normSign () {
29730 if (this.length ===
1 && this.words[
0] ===
0) {
29736 BN.prototype.inspect = function inspect () {
29737 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29743 var groupSizes = [];
29744 var groupBases = [];
29748 while (++i < BN.wordSize) {
29757 while (++base <
36 +
1) {
29760 while (groupBase < (
1 << BN.wordSize) / base) {
29764 groupSizes[base] = groupSize;
29765 groupBases[base] = groupBase;
29787 '
0000000000000000',
29788 '
00000000000000000',
29789 '
000000000000000000',
29790 '
0000000000000000000',
29791 '
00000000000000000000',
29792 '
000000000000000000000',
29793 '
0000000000000000000000',
29794 '
00000000000000000000000',
29795 '
000000000000000000000000',
29796 '
0000000000000000000000000'
29801 25,
16,
12,
11,
10,
9,
8,
29802 8,
7,
7,
7,
7,
6,
6,
29803 6,
6,
6,
6,
6,
5,
5,
29804 5,
5,
5,
5,
5,
5,
5,
29805 5,
5,
5,
5,
5,
5,
5
29810 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29811 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29812 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29813 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29814 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29817 BN.prototype.toString = function toString (base, padding) {
29819 padding = padding |
0 ||
1;
29822 if (base ===
16 || base === 'hex') {
29826 for (var i =
0; i < this.length; i++) {
29827 var w = this.words[i];
29828 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29829 carry = (w
>>> (
24 - off)) &
0xffffff;
29830 if (carry !==
0 || i !== this.length -
1) {
29831 out = zeros[
6 - word.length] + word + out;
29842 out = carry.toString(
16) + out;
29844 while (out.length % padding !==
0) {
29847 if (this.negative !==
0) {
29853 if (base === (base |
0) && base
>=
2 && base <=
36) {
29854 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29855 var groupSize = groupSizes[base];
29856 // var groupBase = Math.pow(base, groupSize);
29857 var groupBase = groupBases[base];
29859 var c = this.clone();
29861 while (!c.isZero()) {
29862 var r = c.modn(groupBase).toString(base);
29863 c = c.idivn(groupBase);
29866 out = zeros[groupSize - r.length] + r + out;
29871 if (this.isZero()) {
29874 while (out.length % padding !==
0) {
29877 if (this.negative !==
0) {
29883 assert(false, 'Base should be between
2 and
36');
29886 BN.prototype.toNumber = function toNumber () {
29887 var ret = this.words[
0];
29888 if (this.length ===
2) {
29889 ret += this.words[
1] *
0x4000000;
29890 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29891 // NOTE: at this stage it is known that the top bit is set
29892 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29893 } else if (this.length
> 2) {
29894 assert(false, 'Number can only safely store up to
53 bits');
29896 return (this.negative !==
0) ? -ret : ret;
29899 BN.prototype.toJSON = function toJSON () {
29900 return this.toString(
16);
29903 BN.prototype.toBuffer = function toBuffer (endian, length) {
29904 assert(typeof Buffer !== 'undefined');
29905 return this.toArrayLike(Buffer, endian, length);
29908 BN.prototype.toArray = function toArray (endian, length) {
29909 return this.toArrayLike(Array, endian, length);
29912 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29913 var byteLength = this.byteLength();
29914 var reqLength = length || Math.max(
1, byteLength);
29915 assert(byteLength <= reqLength, 'byte array longer than desired length');
29916 assert(reqLength
> 0, 'Requested array length <=
0');
29919 var littleEndian = endian === 'le';
29920 var res = new ArrayType(reqLength);
29923 var q = this.clone();
29924 if (!littleEndian) {
29925 // Assume big-endian
29926 for (i =
0; i < reqLength - byteLength; i++) {
29930 for (i =
0; !q.isZero(); i++) {
29934 res[reqLength - i -
1] = b;
29937 for (i =
0; !q.isZero(); i++) {
29944 for (; i < reqLength; i++) {
29953 BN.prototype._countBits = function _countBits (w) {
29954 return
32 - Math.clz32(w);
29957 BN.prototype._countBits = function _countBits (w) {
29980 BN.prototype._zeroBits = function _zeroBits (w) {
29982 if (w ===
0) return
26;
29986 if ((t &
0x1fff) ===
0) {
29990 if ((t &
0x7f) ===
0) {
29994 if ((t &
0xf) ===
0) {
29998 if ((t &
0x3) ===
0) {
30002 if ((t &
0x1) ===
0) {
30008 // Return number of used bits in a BN
30009 BN.prototype.bitLength = function bitLength () {
30010 var w = this.words[this.length -
1];
30011 var hi = this._countBits(w);
30012 return (this.length -
1) *
26 + hi;
30015 function toBitArray (num) {
30016 var w = new Array(num.bitLength());
30018 for (var bit =
0; bit < w.length; bit++) {
30019 var off = (bit /
26) |
0;
30020 var wbit = bit %
26;
30022 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
30028 // Number of trailing zero bits
30029 BN.prototype.zeroBits = function zeroBits () {
30030 if (this.isZero()) return
0;
30033 for (var i =
0; i < this.length; i++) {
30034 var b = this._zeroBits(this.words[i]);
30036 if (b !==
26) break;
30041 BN.prototype.byteLength = function byteLength () {
30042 return Math.ceil(this.bitLength() /
8);
30045 BN.prototype.toTwos = function toTwos (width) {
30046 if (this.negative !==
0) {
30047 return this.abs().inotn(width).iaddn(
1);
30049 return this.clone();
30052 BN.prototype.fromTwos = function fromTwos (width) {
30053 if (this.testn(width -
1)) {
30054 return this.notn(width).iaddn(
1).ineg();
30056 return this.clone();
30059 BN.prototype.isNeg = function isNeg () {
30060 return this.negative !==
0;
30063 // Return negative clone of `this`
30064 BN.prototype.neg = function neg () {
30065 return this.clone().ineg();
30068 BN.prototype.ineg = function ineg () {
30069 if (!this.isZero()) {
30070 this.negative ^=
1;
30076 // Or `num` with `this` in-place
30077 BN.prototype.iuor = function iuor (num) {
30078 while (this.length < num.length) {
30079 this.words[this.length++] =
0;
30082 for (var i =
0; i < num.length; i++) {
30083 this.words[i] = this.words[i] | num.words[i];
30086 return this.strip();
30089 BN.prototype.ior = function ior (num) {
30090 assert((this.negative | num.negative) ===
0);
30091 return this.iuor(num);
30094 // Or `num` with `this`
30095 BN.prototype.or = function or (num) {
30096 if (this.length
> num.length) return this.clone().ior(num);
30097 return num.clone().ior(this);
30100 BN.prototype.uor = function uor (num) {
30101 if (this.length
> num.length) return this.clone().iuor(num);
30102 return num.clone().iuor(this);
30105 // And `num` with `this` in-place
30106 BN.prototype.iuand = function iuand (num) {
30107 // b = min-length(num, this)
30109 if (this.length
> num.length) {
30115 for (var i =
0; i < b.length; i++) {
30116 this.words[i] = this.words[i] & num.words[i];
30119 this.length = b.length;
30121 return this.strip();
30124 BN.prototype.iand = function iand (num) {
30125 assert((this.negative | num.negative) ===
0);
30126 return this.iuand(num);
30129 // And `num` with `this`
30130 BN.prototype.and = function and (num) {
30131 if (this.length
> num.length) return this.clone().iand(num);
30132 return num.clone().iand(this);
30135 BN.prototype.uand = function uand (num) {
30136 if (this.length
> num.length) return this.clone().iuand(num);
30137 return num.clone().iuand(this);
30140 // Xor `num` with `this` in-place
30141 BN.prototype.iuxor = function iuxor (num) {
30142 // a.length
> b.length
30145 if (this.length
> num.length) {
30153 for (var i =
0; i < b.length; i++) {
30154 this.words[i] = a.words[i] ^ b.words[i];
30158 for (; i < a.length; i++) {
30159 this.words[i] = a.words[i];
30163 this.length = a.length;
30165 return this.strip();
30168 BN.prototype.ixor = function ixor (num) {
30169 assert((this.negative | num.negative) ===
0);
30170 return this.iuxor(num);
30173 // Xor `num` with `this`
30174 BN.prototype.xor = function xor (num) {
30175 if (this.length
> num.length) return this.clone().ixor(num);
30176 return num.clone().ixor(this);
30179 BN.prototype.uxor = function uxor (num) {
30180 if (this.length
> num.length) return this.clone().iuxor(num);
30181 return num.clone().iuxor(this);
30184 // Not ``this`` with ``width`` bitwidth
30185 BN.prototype.inotn = function inotn (width) {
30186 assert(typeof width === 'number' && width
>=
0);
30188 var bytesNeeded = Math.ceil(width /
26) |
0;
30189 var bitsLeft = width %
26;
30191 // Extend the buffer with leading zeroes
30192 this._expand(bytesNeeded);
30194 if (bitsLeft
> 0) {
30198 // Handle complete words
30199 for (var i =
0; i < bytesNeeded; i++) {
30200 this.words[i] = ~this.words[i] &
0x3ffffff;
30203 // Handle the residue
30204 if (bitsLeft
> 0) {
30205 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30208 // And remove leading zeroes
30209 return this.strip();
30212 BN.prototype.notn = function notn (width) {
30213 return this.clone().inotn(width);
30216 // Set `bit` of `this`
30217 BN.prototype.setn = function setn (bit, val) {
30218 assert(typeof bit === 'number' && bit
>=
0);
30220 var off = (bit /
26) |
0;
30221 var wbit = bit %
26;
30223 this._expand(off +
1);
30226 this.words[off] = this.words[off] | (
1 << wbit);
30228 this.words[off] = this.words[off] & ~(
1 << wbit);
30231 return this.strip();
30234 // Add `num` to `this` in-place
30235 BN.prototype.iadd = function iadd (num) {
30238 // negative + positive
30239 if (this.negative !==
0 && num.negative ===
0) {
30241 r = this.isub(num);
30242 this.negative ^=
1;
30243 return this._normSign();
30245 // positive + negative
30246 } else if (this.negative ===
0 && num.negative !==
0) {
30248 r = this.isub(num);
30250 return r._normSign();
30253 // a.length
> b.length
30255 if (this.length
> num.length) {
30264 for (var i =
0; i < b.length; i++) {
30265 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30266 this.words[i] = r &
0x3ffffff;
30269 for (; carry !==
0 && i < a.length; i++) {
30270 r = (a.words[i] |
0) + carry;
30271 this.words[i] = r &
0x3ffffff;
30275 this.length = a.length;
30277 this.words[this.length] = carry;
30279 // Copy the rest of the words
30280 } else if (a !== this) {
30281 for (; i < a.length; i++) {
30282 this.words[i] = a.words[i];
30289 // Add `num` to `this`
30290 BN.prototype.add = function add (num) {
30292 if (num.negative !==
0 && this.negative ===
0) {
30294 res = this.sub(num);
30297 } else if (num.negative ===
0 && this.negative !==
0) {
30299 res = num.sub(this);
30304 if (this.length
> num.length) return this.clone().iadd(num);
30306 return num.clone().iadd(this);
30309 // Subtract `num` from `this` in-place
30310 BN.prototype.isub = function isub (num) {
30311 // this - (-num) = this + num
30312 if (num.negative !==
0) {
30314 var r = this.iadd(num);
30316 return r._normSign();
30318 // -this - num = -(this + num)
30319 } else if (this.negative !==
0) {
30323 return this._normSign();
30326 // At this point both numbers are positive
30327 var cmp = this.cmp(num);
30329 // Optimization - zeroify
30348 for (var i =
0; i < b.length; i++) {
30349 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30351 this.words[i] = r &
0x3ffffff;
30353 for (; carry !==
0 && i < a.length; i++) {
30354 r = (a.words[i] |
0) + carry;
30356 this.words[i] = r &
0x3ffffff;
30359 // Copy rest of the words
30360 if (carry ===
0 && i < a.length && a !== this) {
30361 for (; i < a.length; i++) {
30362 this.words[i] = a.words[i];
30366 this.length = Math.max(this.length, i);
30372 return this.strip();
30375 // Subtract `num` from `this`
30376 BN.prototype.sub = function sub (num) {
30377 return this.clone().isub(num);
30380 function smallMulTo (self, num, out) {
30381 out.negative = num.negative ^ self.negative;
30382 var len = (self.length + num.length) |
0;
30384 len = (len -
1) |
0;
30386 // Peel one iteration (compiler can't do it, because of code complexity)
30387 var a = self.words[
0] |
0;
30388 var b = num.words[
0] |
0;
30391 var lo = r &
0x3ffffff;
30392 var carry = (r /
0x4000000) |
0;
30395 for (var k =
1; k < len; k++) {
30396 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30397 // note that ncarry could be
>=
0x3ffffff
30398 var ncarry = carry
>>> 26;
30399 var rword = carry &
0x3ffffff;
30400 var maxJ = Math.min(k, num.length -
1);
30401 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30402 var i = (k - j) |
0;
30403 a = self.words[i] |
0;
30404 b = num.words[j] |
0;
30406 ncarry += (r /
0x4000000) |
0;
30407 rword = r &
0x3ffffff;
30409 out.words[k] = rword |
0;
30410 carry = ncarry |
0;
30413 out.words[k] = carry |
0;
30418 return out.strip();
30421 // TODO(indutny): it may be reasonable to omit it for users who don't need
30422 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30423 // multiplication (like elliptic secp256k1).
30424 var comb10MulTo = function comb10MulTo (self, num, out) {
30425 var a = self.words;
30433 var al0 = a0 &
0x1fff;
30434 var ah0 = a0
>>> 13;
30436 var al1 = a1 &
0x1fff;
30437 var ah1 = a1
>>> 13;
30439 var al2 = a2 &
0x1fff;
30440 var ah2 = a2
>>> 13;
30442 var al3 = a3 &
0x1fff;
30443 var ah3 = a3
>>> 13;
30445 var al4 = a4 &
0x1fff;
30446 var ah4 = a4
>>> 13;
30448 var al5 = a5 &
0x1fff;
30449 var ah5 = a5
>>> 13;
30451 var al6 = a6 &
0x1fff;
30452 var ah6 = a6
>>> 13;
30454 var al7 = a7 &
0x1fff;
30455 var ah7 = a7
>>> 13;
30457 var al8 = a8 &
0x1fff;
30458 var ah8 = a8
>>> 13;
30460 var al9 = a9 &
0x1fff;
30461 var ah9 = a9
>>> 13;
30463 var bl0 = b0 &
0x1fff;
30464 var bh0 = b0
>>> 13;
30466 var bl1 = b1 &
0x1fff;
30467 var bh1 = b1
>>> 13;
30469 var bl2 = b2 &
0x1fff;
30470 var bh2 = b2
>>> 13;
30472 var bl3 = b3 &
0x1fff;
30473 var bh3 = b3
>>> 13;
30475 var bl4 = b4 &
0x1fff;
30476 var bh4 = b4
>>> 13;
30478 var bl5 = b5 &
0x1fff;
30479 var bh5 = b5
>>> 13;
30481 var bl6 = b6 &
0x1fff;
30482 var bh6 = b6
>>> 13;
30484 var bl7 = b7 &
0x1fff;
30485 var bh7 = b7
>>> 13;
30487 var bl8 = b8 &
0x1fff;
30488 var bh8 = b8
>>> 13;
30490 var bl9 = b9 &
0x1fff;
30491 var bh9 = b9
>>> 13;
30493 out.negative = self.negative ^ num.negative;
30496 lo = Math.imul(al0, bl0);
30497 mid = Math.imul(al0, bh0);
30498 mid = (mid + Math.imul(ah0, bl0)) |
0;
30499 hi = Math.imul(ah0, bh0);
30500 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30501 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30504 lo = Math.imul(al1, bl0);
30505 mid = Math.imul(al1, bh0);
30506 mid = (mid + Math.imul(ah1, bl0)) |
0;
30507 hi = Math.imul(ah1, bh0);
30508 lo = (lo + Math.imul(al0, bl1)) |
0;
30509 mid = (mid + Math.imul(al0, bh1)) |
0;
30510 mid = (mid + Math.imul(ah0, bl1)) |
0;
30511 hi = (hi + Math.imul(ah0, bh1)) |
0;
30512 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30513 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30516 lo = Math.imul(al2, bl0);
30517 mid = Math.imul(al2, bh0);
30518 mid = (mid + Math.imul(ah2, bl0)) |
0;
30519 hi = Math.imul(ah2, bh0);
30520 lo = (lo + Math.imul(al1, bl1)) |
0;
30521 mid = (mid + Math.imul(al1, bh1)) |
0;
30522 mid = (mid + Math.imul(ah1, bl1)) |
0;
30523 hi = (hi + Math.imul(ah1, bh1)) |
0;
30524 lo = (lo + Math.imul(al0, bl2)) |
0;
30525 mid = (mid + Math.imul(al0, bh2)) |
0;
30526 mid = (mid + Math.imul(ah0, bl2)) |
0;
30527 hi = (hi + Math.imul(ah0, bh2)) |
0;
30528 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30529 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30532 lo = Math.imul(al3, bl0);
30533 mid = Math.imul(al3, bh0);
30534 mid = (mid + Math.imul(ah3, bl0)) |
0;
30535 hi = Math.imul(ah3, bh0);
30536 lo = (lo + Math.imul(al2, bl1)) |
0;
30537 mid = (mid + Math.imul(al2, bh1)) |
0;
30538 mid = (mid + Math.imul(ah2, bl1)) |
0;
30539 hi = (hi + Math.imul(ah2, bh1)) |
0;
30540 lo = (lo + Math.imul(al1, bl2)) |
0;
30541 mid = (mid + Math.imul(al1, bh2)) |
0;
30542 mid = (mid + Math.imul(ah1, bl2)) |
0;
30543 hi = (hi + Math.imul(ah1, bh2)) |
0;
30544 lo = (lo + Math.imul(al0, bl3)) |
0;
30545 mid = (mid + Math.imul(al0, bh3)) |
0;
30546 mid = (mid + Math.imul(ah0, bl3)) |
0;
30547 hi = (hi + Math.imul(ah0, bh3)) |
0;
30548 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30549 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30552 lo = Math.imul(al4, bl0);
30553 mid = Math.imul(al4, bh0);
30554 mid = (mid + Math.imul(ah4, bl0)) |
0;
30555 hi = Math.imul(ah4, bh0);
30556 lo = (lo + Math.imul(al3, bl1)) |
0;
30557 mid = (mid + Math.imul(al3, bh1)) |
0;
30558 mid = (mid + Math.imul(ah3, bl1)) |
0;
30559 hi = (hi + Math.imul(ah3, bh1)) |
0;
30560 lo = (lo + Math.imul(al2, bl2)) |
0;
30561 mid = (mid + Math.imul(al2, bh2)) |
0;
30562 mid = (mid + Math.imul(ah2, bl2)) |
0;
30563 hi = (hi + Math.imul(ah2, bh2)) |
0;
30564 lo = (lo + Math.imul(al1, bl3)) |
0;
30565 mid = (mid + Math.imul(al1, bh3)) |
0;
30566 mid = (mid + Math.imul(ah1, bl3)) |
0;
30567 hi = (hi + Math.imul(ah1, bh3)) |
0;
30568 lo = (lo + Math.imul(al0, bl4)) |
0;
30569 mid = (mid + Math.imul(al0, bh4)) |
0;
30570 mid = (mid + Math.imul(ah0, bl4)) |
0;
30571 hi = (hi + Math.imul(ah0, bh4)) |
0;
30572 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30573 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30576 lo = Math.imul(al5, bl0);
30577 mid = Math.imul(al5, bh0);
30578 mid = (mid + Math.imul(ah5, bl0)) |
0;
30579 hi = Math.imul(ah5, bh0);
30580 lo = (lo + Math.imul(al4, bl1)) |
0;
30581 mid = (mid + Math.imul(al4, bh1)) |
0;
30582 mid = (mid + Math.imul(ah4, bl1)) |
0;
30583 hi = (hi + Math.imul(ah4, bh1)) |
0;
30584 lo = (lo + Math.imul(al3, bl2)) |
0;
30585 mid = (mid + Math.imul(al3, bh2)) |
0;
30586 mid = (mid + Math.imul(ah3, bl2)) |
0;
30587 hi = (hi + Math.imul(ah3, bh2)) |
0;
30588 lo = (lo + Math.imul(al2, bl3)) |
0;
30589 mid = (mid + Math.imul(al2, bh3)) |
0;
30590 mid = (mid + Math.imul(ah2, bl3)) |
0;
30591 hi = (hi + Math.imul(ah2, bh3)) |
0;
30592 lo = (lo + Math.imul(al1, bl4)) |
0;
30593 mid = (mid + Math.imul(al1, bh4)) |
0;
30594 mid = (mid + Math.imul(ah1, bl4)) |
0;
30595 hi = (hi + Math.imul(ah1, bh4)) |
0;
30596 lo = (lo + Math.imul(al0, bl5)) |
0;
30597 mid = (mid + Math.imul(al0, bh5)) |
0;
30598 mid = (mid + Math.imul(ah0, bl5)) |
0;
30599 hi = (hi + Math.imul(ah0, bh5)) |
0;
30600 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30601 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30604 lo = Math.imul(al6, bl0);
30605 mid = Math.imul(al6, bh0);
30606 mid = (mid + Math.imul(ah6, bl0)) |
0;
30607 hi = Math.imul(ah6, bh0);
30608 lo = (lo + Math.imul(al5, bl1)) |
0;
30609 mid = (mid + Math.imul(al5, bh1)) |
0;
30610 mid = (mid + Math.imul(ah5, bl1)) |
0;
30611 hi = (hi + Math.imul(ah5, bh1)) |
0;
30612 lo = (lo + Math.imul(al4, bl2)) |
0;
30613 mid = (mid + Math.imul(al4, bh2)) |
0;
30614 mid = (mid + Math.imul(ah4, bl2)) |
0;
30615 hi = (hi + Math.imul(ah4, bh2)) |
0;
30616 lo = (lo + Math.imul(al3, bl3)) |
0;
30617 mid = (mid + Math.imul(al3, bh3)) |
0;
30618 mid = (mid + Math.imul(ah3, bl3)) |
0;
30619 hi = (hi + Math.imul(ah3, bh3)) |
0;
30620 lo = (lo + Math.imul(al2, bl4)) |
0;
30621 mid = (mid + Math.imul(al2, bh4)) |
0;
30622 mid = (mid + Math.imul(ah2, bl4)) |
0;
30623 hi = (hi + Math.imul(ah2, bh4)) |
0;
30624 lo = (lo + Math.imul(al1, bl5)) |
0;
30625 mid = (mid + Math.imul(al1, bh5)) |
0;
30626 mid = (mid + Math.imul(ah1, bl5)) |
0;
30627 hi = (hi + Math.imul(ah1, bh5)) |
0;
30628 lo = (lo + Math.imul(al0, bl6)) |
0;
30629 mid = (mid + Math.imul(al0, bh6)) |
0;
30630 mid = (mid + Math.imul(ah0, bl6)) |
0;
30631 hi = (hi + Math.imul(ah0, bh6)) |
0;
30632 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30633 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30636 lo = Math.imul(al7, bl0);
30637 mid = Math.imul(al7, bh0);
30638 mid = (mid + Math.imul(ah7, bl0)) |
0;
30639 hi = Math.imul(ah7, bh0);
30640 lo = (lo + Math.imul(al6, bl1)) |
0;
30641 mid = (mid + Math.imul(al6, bh1)) |
0;
30642 mid = (mid + Math.imul(ah6, bl1)) |
0;
30643 hi = (hi + Math.imul(ah6, bh1)) |
0;
30644 lo = (lo + Math.imul(al5, bl2)) |
0;
30645 mid = (mid + Math.imul(al5, bh2)) |
0;
30646 mid = (mid + Math.imul(ah5, bl2)) |
0;
30647 hi = (hi + Math.imul(ah5, bh2)) |
0;
30648 lo = (lo + Math.imul(al4, bl3)) |
0;
30649 mid = (mid + Math.imul(al4, bh3)) |
0;
30650 mid = (mid + Math.imul(ah4, bl3)) |
0;
30651 hi = (hi + Math.imul(ah4, bh3)) |
0;
30652 lo = (lo + Math.imul(al3, bl4)) |
0;
30653 mid = (mid + Math.imul(al3, bh4)) |
0;
30654 mid = (mid + Math.imul(ah3, bl4)) |
0;
30655 hi = (hi + Math.imul(ah3, bh4)) |
0;
30656 lo = (lo + Math.imul(al2, bl5)) |
0;
30657 mid = (mid + Math.imul(al2, bh5)) |
0;
30658 mid = (mid + Math.imul(ah2, bl5)) |
0;
30659 hi = (hi + Math.imul(ah2, bh5)) |
0;
30660 lo = (lo + Math.imul(al1, bl6)) |
0;
30661 mid = (mid + Math.imul(al1, bh6)) |
0;
30662 mid = (mid + Math.imul(ah1, bl6)) |
0;
30663 hi = (hi + Math.imul(ah1, bh6)) |
0;
30664 lo = (lo + Math.imul(al0, bl7)) |
0;
30665 mid = (mid + Math.imul(al0, bh7)) |
0;
30666 mid = (mid + Math.imul(ah0, bl7)) |
0;
30667 hi = (hi + Math.imul(ah0, bh7)) |
0;
30668 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30669 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30672 lo = Math.imul(al8, bl0);
30673 mid = Math.imul(al8, bh0);
30674 mid = (mid + Math.imul(ah8, bl0)) |
0;
30675 hi = Math.imul(ah8, bh0);
30676 lo = (lo + Math.imul(al7, bl1)) |
0;
30677 mid = (mid + Math.imul(al7, bh1)) |
0;
30678 mid = (mid + Math.imul(ah7, bl1)) |
0;
30679 hi = (hi + Math.imul(ah7, bh1)) |
0;
30680 lo = (lo + Math.imul(al6, bl2)) |
0;
30681 mid = (mid + Math.imul(al6, bh2)) |
0;
30682 mid = (mid + Math.imul(ah6, bl2)) |
0;
30683 hi = (hi + Math.imul(ah6, bh2)) |
0;
30684 lo = (lo + Math.imul(al5, bl3)) |
0;
30685 mid = (mid + Math.imul(al5, bh3)) |
0;
30686 mid = (mid + Math.imul(ah5, bl3)) |
0;
30687 hi = (hi + Math.imul(ah5, bh3)) |
0;
30688 lo = (lo + Math.imul(al4, bl4)) |
0;
30689 mid = (mid + Math.imul(al4, bh4)) |
0;
30690 mid = (mid + Math.imul(ah4, bl4)) |
0;
30691 hi = (hi + Math.imul(ah4, bh4)) |
0;
30692 lo = (lo + Math.imul(al3, bl5)) |
0;
30693 mid = (mid + Math.imul(al3, bh5)) |
0;
30694 mid = (mid + Math.imul(ah3, bl5)) |
0;
30695 hi = (hi + Math.imul(ah3, bh5)) |
0;
30696 lo = (lo + Math.imul(al2, bl6)) |
0;
30697 mid = (mid + Math.imul(al2, bh6)) |
0;
30698 mid = (mid + Math.imul(ah2, bl6)) |
0;
30699 hi = (hi + Math.imul(ah2, bh6)) |
0;
30700 lo = (lo + Math.imul(al1, bl7)) |
0;
30701 mid = (mid + Math.imul(al1, bh7)) |
0;
30702 mid = (mid + Math.imul(ah1, bl7)) |
0;
30703 hi = (hi + Math.imul(ah1, bh7)) |
0;
30704 lo = (lo + Math.imul(al0, bl8)) |
0;
30705 mid = (mid + Math.imul(al0, bh8)) |
0;
30706 mid = (mid + Math.imul(ah0, bl8)) |
0;
30707 hi = (hi + Math.imul(ah0, bh8)) |
0;
30708 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30709 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30712 lo = Math.imul(al9, bl0);
30713 mid = Math.imul(al9, bh0);
30714 mid = (mid + Math.imul(ah9, bl0)) |
0;
30715 hi = Math.imul(ah9, bh0);
30716 lo = (lo + Math.imul(al8, bl1)) |
0;
30717 mid = (mid + Math.imul(al8, bh1)) |
0;
30718 mid = (mid + Math.imul(ah8, bl1)) |
0;
30719 hi = (hi + Math.imul(ah8, bh1)) |
0;
30720 lo = (lo + Math.imul(al7, bl2)) |
0;
30721 mid = (mid + Math.imul(al7, bh2)) |
0;
30722 mid = (mid + Math.imul(ah7, bl2)) |
0;
30723 hi = (hi + Math.imul(ah7, bh2)) |
0;
30724 lo = (lo + Math.imul(al6, bl3)) |
0;
30725 mid = (mid + Math.imul(al6, bh3)) |
0;
30726 mid = (mid + Math.imul(ah6, bl3)) |
0;
30727 hi = (hi + Math.imul(ah6, bh3)) |
0;
30728 lo = (lo + Math.imul(al5, bl4)) |
0;
30729 mid = (mid + Math.imul(al5, bh4)) |
0;
30730 mid = (mid + Math.imul(ah5, bl4)) |
0;
30731 hi = (hi + Math.imul(ah5, bh4)) |
0;
30732 lo = (lo + Math.imul(al4, bl5)) |
0;
30733 mid = (mid + Math.imul(al4, bh5)) |
0;
30734 mid = (mid + Math.imul(ah4, bl5)) |
0;
30735 hi = (hi + Math.imul(ah4, bh5)) |
0;
30736 lo = (lo + Math.imul(al3, bl6)) |
0;
30737 mid = (mid + Math.imul(al3, bh6)) |
0;
30738 mid = (mid + Math.imul(ah3, bl6)) |
0;
30739 hi = (hi + Math.imul(ah3, bh6)) |
0;
30740 lo = (lo + Math.imul(al2, bl7)) |
0;
30741 mid = (mid + Math.imul(al2, bh7)) |
0;
30742 mid = (mid + Math.imul(ah2, bl7)) |
0;
30743 hi = (hi + Math.imul(ah2, bh7)) |
0;
30744 lo = (lo + Math.imul(al1, bl8)) |
0;
30745 mid = (mid + Math.imul(al1, bh8)) |
0;
30746 mid = (mid + Math.imul(ah1, bl8)) |
0;
30747 hi = (hi + Math.imul(ah1, bh8)) |
0;
30748 lo = (lo + Math.imul(al0, bl9)) |
0;
30749 mid = (mid + Math.imul(al0, bh9)) |
0;
30750 mid = (mid + Math.imul(ah0, bl9)) |
0;
30751 hi = (hi + Math.imul(ah0, bh9)) |
0;
30752 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30753 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30756 lo = Math.imul(al9, bl1);
30757 mid = Math.imul(al9, bh1);
30758 mid = (mid + Math.imul(ah9, bl1)) |
0;
30759 hi = Math.imul(ah9, bh1);
30760 lo = (lo + Math.imul(al8, bl2)) |
0;
30761 mid = (mid + Math.imul(al8, bh2)) |
0;
30762 mid = (mid + Math.imul(ah8, bl2)) |
0;
30763 hi = (hi + Math.imul(ah8, bh2)) |
0;
30764 lo = (lo + Math.imul(al7, bl3)) |
0;
30765 mid = (mid + Math.imul(al7, bh3)) |
0;
30766 mid = (mid + Math.imul(ah7, bl3)) |
0;
30767 hi = (hi + Math.imul(ah7, bh3)) |
0;
30768 lo = (lo + Math.imul(al6, bl4)) |
0;
30769 mid = (mid + Math.imul(al6, bh4)) |
0;
30770 mid = (mid + Math.imul(ah6, bl4)) |
0;
30771 hi = (hi + Math.imul(ah6, bh4)) |
0;
30772 lo = (lo + Math.imul(al5, bl5)) |
0;
30773 mid = (mid + Math.imul(al5, bh5)) |
0;
30774 mid = (mid + Math.imul(ah5, bl5)) |
0;
30775 hi = (hi + Math.imul(ah5, bh5)) |
0;
30776 lo = (lo + Math.imul(al4, bl6)) |
0;
30777 mid = (mid + Math.imul(al4, bh6)) |
0;
30778 mid = (mid + Math.imul(ah4, bl6)) |
0;
30779 hi = (hi + Math.imul(ah4, bh6)) |
0;
30780 lo = (lo + Math.imul(al3, bl7)) |
0;
30781 mid = (mid + Math.imul(al3, bh7)) |
0;
30782 mid = (mid + Math.imul(ah3, bl7)) |
0;
30783 hi = (hi + Math.imul(ah3, bh7)) |
0;
30784 lo = (lo + Math.imul(al2, bl8)) |
0;
30785 mid = (mid + Math.imul(al2, bh8)) |
0;
30786 mid = (mid + Math.imul(ah2, bl8)) |
0;
30787 hi = (hi + Math.imul(ah2, bh8)) |
0;
30788 lo = (lo + Math.imul(al1, bl9)) |
0;
30789 mid = (mid + Math.imul(al1, bh9)) |
0;
30790 mid = (mid + Math.imul(ah1, bl9)) |
0;
30791 hi = (hi + Math.imul(ah1, bh9)) |
0;
30792 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30793 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30796 lo = Math.imul(al9, bl2);
30797 mid = Math.imul(al9, bh2);
30798 mid = (mid + Math.imul(ah9, bl2)) |
0;
30799 hi = Math.imul(ah9, bh2);
30800 lo = (lo + Math.imul(al8, bl3)) |
0;
30801 mid = (mid + Math.imul(al8, bh3)) |
0;
30802 mid = (mid + Math.imul(ah8, bl3)) |
0;
30803 hi = (hi + Math.imul(ah8, bh3)) |
0;
30804 lo = (lo + Math.imul(al7, bl4)) |
0;
30805 mid = (mid + Math.imul(al7, bh4)) |
0;
30806 mid = (mid + Math.imul(ah7, bl4)) |
0;
30807 hi = (hi + Math.imul(ah7, bh4)) |
0;
30808 lo = (lo + Math.imul(al6, bl5)) |
0;
30809 mid = (mid + Math.imul(al6, bh5)) |
0;
30810 mid = (mid + Math.imul(ah6, bl5)) |
0;
30811 hi = (hi + Math.imul(ah6, bh5)) |
0;
30812 lo = (lo + Math.imul(al5, bl6)) |
0;
30813 mid = (mid + Math.imul(al5, bh6)) |
0;
30814 mid = (mid + Math.imul(ah5, bl6)) |
0;
30815 hi = (hi + Math.imul(ah5, bh6)) |
0;
30816 lo = (lo + Math.imul(al4, bl7)) |
0;
30817 mid = (mid + Math.imul(al4, bh7)) |
0;
30818 mid = (mid + Math.imul(ah4, bl7)) |
0;
30819 hi = (hi + Math.imul(ah4, bh7)) |
0;
30820 lo = (lo + Math.imul(al3, bl8)) |
0;
30821 mid = (mid + Math.imul(al3, bh8)) |
0;
30822 mid = (mid + Math.imul(ah3, bl8)) |
0;
30823 hi = (hi + Math.imul(ah3, bh8)) |
0;
30824 lo = (lo + Math.imul(al2, bl9)) |
0;
30825 mid = (mid + Math.imul(al2, bh9)) |
0;
30826 mid = (mid + Math.imul(ah2, bl9)) |
0;
30827 hi = (hi + Math.imul(ah2, bh9)) |
0;
30828 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30829 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30832 lo = Math.imul(al9, bl3);
30833 mid = Math.imul(al9, bh3);
30834 mid = (mid + Math.imul(ah9, bl3)) |
0;
30835 hi = Math.imul(ah9, bh3);
30836 lo = (lo + Math.imul(al8, bl4)) |
0;
30837 mid = (mid + Math.imul(al8, bh4)) |
0;
30838 mid = (mid + Math.imul(ah8, bl4)) |
0;
30839 hi = (hi + Math.imul(ah8, bh4)) |
0;
30840 lo = (lo + Math.imul(al7, bl5)) |
0;
30841 mid = (mid + Math.imul(al7, bh5)) |
0;
30842 mid = (mid + Math.imul(ah7, bl5)) |
0;
30843 hi = (hi + Math.imul(ah7, bh5)) |
0;
30844 lo = (lo + Math.imul(al6, bl6)) |
0;
30845 mid = (mid + Math.imul(al6, bh6)) |
0;
30846 mid = (mid + Math.imul(ah6, bl6)) |
0;
30847 hi = (hi + Math.imul(ah6, bh6)) |
0;
30848 lo = (lo + Math.imul(al5, bl7)) |
0;
30849 mid = (mid + Math.imul(al5, bh7)) |
0;
30850 mid = (mid + Math.imul(ah5, bl7)) |
0;
30851 hi = (hi + Math.imul(ah5, bh7)) |
0;
30852 lo = (lo + Math.imul(al4, bl8)) |
0;
30853 mid = (mid + Math.imul(al4, bh8)) |
0;
30854 mid = (mid + Math.imul(ah4, bl8)) |
0;
30855 hi = (hi + Math.imul(ah4, bh8)) |
0;
30856 lo = (lo + Math.imul(al3, bl9)) |
0;
30857 mid = (mid + Math.imul(al3, bh9)) |
0;
30858 mid = (mid + Math.imul(ah3, bl9)) |
0;
30859 hi = (hi + Math.imul(ah3, bh9)) |
0;
30860 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30861 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30864 lo = Math.imul(al9, bl4);
30865 mid = Math.imul(al9, bh4);
30866 mid = (mid + Math.imul(ah9, bl4)) |
0;
30867 hi = Math.imul(ah9, bh4);
30868 lo = (lo + Math.imul(al8, bl5)) |
0;
30869 mid = (mid + Math.imul(al8, bh5)) |
0;
30870 mid = (mid + Math.imul(ah8, bl5)) |
0;
30871 hi = (hi + Math.imul(ah8, bh5)) |
0;
30872 lo = (lo + Math.imul(al7, bl6)) |
0;
30873 mid = (mid + Math.imul(al7, bh6)) |
0;
30874 mid = (mid + Math.imul(ah7, bl6)) |
0;
30875 hi = (hi + Math.imul(ah7, bh6)) |
0;
30876 lo = (lo + Math.imul(al6, bl7)) |
0;
30877 mid = (mid + Math.imul(al6, bh7)) |
0;
30878 mid = (mid + Math.imul(ah6, bl7)) |
0;
30879 hi = (hi + Math.imul(ah6, bh7)) |
0;
30880 lo = (lo + Math.imul(al5, bl8)) |
0;
30881 mid = (mid + Math.imul(al5, bh8)) |
0;
30882 mid = (mid + Math.imul(ah5, bl8)) |
0;
30883 hi = (hi + Math.imul(ah5, bh8)) |
0;
30884 lo = (lo + Math.imul(al4, bl9)) |
0;
30885 mid = (mid + Math.imul(al4, bh9)) |
0;
30886 mid = (mid + Math.imul(ah4, bl9)) |
0;
30887 hi = (hi + Math.imul(ah4, bh9)) |
0;
30888 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30889 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30892 lo = Math.imul(al9, bl5);
30893 mid = Math.imul(al9, bh5);
30894 mid = (mid + Math.imul(ah9, bl5)) |
0;
30895 hi = Math.imul(ah9, bh5);
30896 lo = (lo + Math.imul(al8, bl6)) |
0;
30897 mid = (mid + Math.imul(al8, bh6)) |
0;
30898 mid = (mid + Math.imul(ah8, bl6)) |
0;
30899 hi = (hi + Math.imul(ah8, bh6)) |
0;
30900 lo = (lo + Math.imul(al7, bl7)) |
0;
30901 mid = (mid + Math.imul(al7, bh7)) |
0;
30902 mid = (mid + Math.imul(ah7, bl7)) |
0;
30903 hi = (hi + Math.imul(ah7, bh7)) |
0;
30904 lo = (lo + Math.imul(al6, bl8)) |
0;
30905 mid = (mid + Math.imul(al6, bh8)) |
0;
30906 mid = (mid + Math.imul(ah6, bl8)) |
0;
30907 hi = (hi + Math.imul(ah6, bh8)) |
0;
30908 lo = (lo + Math.imul(al5, bl9)) |
0;
30909 mid = (mid + Math.imul(al5, bh9)) |
0;
30910 mid = (mid + Math.imul(ah5, bl9)) |
0;
30911 hi = (hi + Math.imul(ah5, bh9)) |
0;
30912 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30913 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30916 lo = Math.imul(al9, bl6);
30917 mid = Math.imul(al9, bh6);
30918 mid = (mid + Math.imul(ah9, bl6)) |
0;
30919 hi = Math.imul(ah9, bh6);
30920 lo = (lo + Math.imul(al8, bl7)) |
0;
30921 mid = (mid + Math.imul(al8, bh7)) |
0;
30922 mid = (mid + Math.imul(ah8, bl7)) |
0;
30923 hi = (hi + Math.imul(ah8, bh7)) |
0;
30924 lo = (lo + Math.imul(al7, bl8)) |
0;
30925 mid = (mid + Math.imul(al7, bh8)) |
0;
30926 mid = (mid + Math.imul(ah7, bl8)) |
0;
30927 hi = (hi + Math.imul(ah7, bh8)) |
0;
30928 lo = (lo + Math.imul(al6, bl9)) |
0;
30929 mid = (mid + Math.imul(al6, bh9)) |
0;
30930 mid = (mid + Math.imul(ah6, bl9)) |
0;
30931 hi = (hi + Math.imul(ah6, bh9)) |
0;
30932 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30933 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30936 lo = Math.imul(al9, bl7);
30937 mid = Math.imul(al9, bh7);
30938 mid = (mid + Math.imul(ah9, bl7)) |
0;
30939 hi = Math.imul(ah9, bh7);
30940 lo = (lo + Math.imul(al8, bl8)) |
0;
30941 mid = (mid + Math.imul(al8, bh8)) |
0;
30942 mid = (mid + Math.imul(ah8, bl8)) |
0;
30943 hi = (hi + Math.imul(ah8, bh8)) |
0;
30944 lo = (lo + Math.imul(al7, bl9)) |
0;
30945 mid = (mid + Math.imul(al7, bh9)) |
0;
30946 mid = (mid + Math.imul(ah7, bl9)) |
0;
30947 hi = (hi + Math.imul(ah7, bh9)) |
0;
30948 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30949 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30952 lo = Math.imul(al9, bl8);
30953 mid = Math.imul(al9, bh8);
30954 mid = (mid + Math.imul(ah9, bl8)) |
0;
30955 hi = Math.imul(ah9, bh8);
30956 lo = (lo + Math.imul(al8, bl9)) |
0;
30957 mid = (mid + Math.imul(al8, bh9)) |
0;
30958 mid = (mid + Math.imul(ah8, bl9)) |
0;
30959 hi = (hi + Math.imul(ah8, bh9)) |
0;
30960 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30961 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30964 lo = Math.imul(al9, bl9);
30965 mid = Math.imul(al9, bh9);
30966 mid = (mid + Math.imul(ah9, bl9)) |
0;
30967 hi = Math.imul(ah9, bh9);
30968 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30969 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30999 comb10MulTo = smallMulTo;
31002 function bigMulTo (self, num, out) {
31003 out.negative = num.negative ^ self.negative;
31004 out.length = self.length + num.length;
31008 for (var k =
0; k < out.length -
1; k++) {
31009 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
31010 // note that ncarry could be
>=
0x3ffffff
31011 var ncarry = hncarry;
31013 var rword = carry &
0x3ffffff;
31014 var maxJ = Math.min(k, num.length -
1);
31015 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
31017 var a = self.words[i] |
0;
31018 var b = num.words[j] |
0;
31021 var lo = r &
0x3ffffff;
31022 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
31023 lo = (lo + rword) |
0;
31024 rword = lo &
0x3ffffff;
31025 ncarry = (ncarry + (lo
>>> 26)) |
0;
31027 hncarry += ncarry
>>> 26;
31028 ncarry &=
0x3ffffff;
31030 out.words[k] = rword;
31035 out.words[k] = carry;
31040 return out.strip();
31043 function jumboMulTo (self, num, out) {
31044 var fftm = new FFTM();
31045 return fftm.mulp(self, num, out);
31048 BN.prototype.mulTo = function mulTo (num, out) {
31050 var len = this.length + num.length;
31051 if (this.length ===
10 && num.length ===
10) {
31052 res = comb10MulTo(this, num, out);
31053 } else if (len <
63) {
31054 res = smallMulTo(this, num, out);
31055 } else if (len <
1024) {
31056 res = bigMulTo(this, num, out);
31058 res = jumboMulTo(this, num, out);
31064 // Cooley-Tukey algorithm for FFT
31065 // slightly revisited to rely on looping instead of recursion
31067 function FFTM (x, y) {
31072 FFTM.prototype.makeRBT = function makeRBT (N) {
31073 var t = new Array(N);
31074 var l = BN.prototype._countBits(N) -
1;
31075 for (var i =
0; i < N; i++) {
31076 t[i] = this.revBin(i, l, N);
31082 // Returns binary-reversed representation of `x`
31083 FFTM.prototype.revBin = function revBin (x, l, N) {
31084 if (x ===
0 || x === N -
1) return x;
31087 for (var i =
0; i < l; i++) {
31088 rb |= (x &
1) << (l - i -
1);
31095 // Performs "tweedling" phase, therefore 'emulating'
31096 // behaviour of the recursive algorithm
31097 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
31098 for (var i =
0; i < N; i++) {
31099 rtws[i] = rws[rbt[i]];
31100 itws[i] = iws[rbt[i]];
31104 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
31105 this.permute(rbt, rws, iws, rtws, itws, N);
31107 for (var s =
1; s < N; s <<=
1) {
31110 var rtwdf = Math.cos(
2 * Math.PI / l);
31111 var itwdf = Math.sin(
2 * Math.PI / l);
31113 for (var p =
0; p < N; p += l) {
31114 var rtwdf_ = rtwdf;
31115 var itwdf_ = itwdf;
31117 for (var j =
0; j < s; j++) {
31118 var re = rtws[p + j];
31119 var ie = itws[p + j];
31121 var ro = rtws[p + j + s];
31122 var io = itws[p + j + s];
31124 var rx = rtwdf_ * ro - itwdf_ * io;
31126 io = rtwdf_ * io + itwdf_ * ro;
31129 rtws[p + j] = re + ro;
31130 itws[p + j] = ie + io;
31132 rtws[p + j + s] = re - ro;
31133 itws[p + j + s] = ie - io;
31135 /* jshint maxdepth : false */
31137 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31139 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31147 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31148 var N = Math.max(m, n) |
1;
31151 for (N = N /
2 |
0; N; N = N
>>> 1) {
31155 return
1 << i +
1 + odd;
31158 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31159 if (N <=
1) return;
31161 for (var i =
0; i < N /
2; i++) {
31164 rws[i] = rws[N - i -
1];
31165 rws[N - i -
1] = t;
31169 iws[i] = -iws[N - i -
1];
31170 iws[N - i -
1] = -t;
31174 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31176 for (var i =
0; i < N /
2; i++) {
31177 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31178 Math.round(ws[
2 * i] / N) +
31181 ws[i] = w &
0x3ffffff;
31183 if (w <
0x4000000) {
31186 carry = w /
0x4000000 |
0;
31193 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31195 for (var i =
0; i < len; i++) {
31196 carry = carry + (ws[i] |
0);
31198 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31199 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31203 for (i =
2 * len; i < N; ++i) {
31207 assert(carry ===
0);
31208 assert((carry & ~
0x1fff) ===
0);
31211 FFTM.prototype.stub = function stub (N) {
31212 var ph = new Array(N);
31213 for (var i =
0; i < N; i++) {
31220 FFTM.prototype.mulp = function mulp (x, y, out) {
31221 var N =
2 * this.guessLen13b(x.length, y.length);
31223 var rbt = this.makeRBT(N);
31225 var _ = this.stub(N);
31227 var rws = new Array(N);
31228 var rwst = new Array(N);
31229 var iwst = new Array(N);
31231 var nrws = new Array(N);
31232 var nrwst = new Array(N);
31233 var niwst = new Array(N);
31235 var rmws = out.words;
31238 this.convert13b(x.words, x.length, rws, N);
31239 this.convert13b(y.words, y.length, nrws, N);
31241 this.transform(rws, _, rwst, iwst, N, rbt);
31242 this.transform(nrws, _, nrwst, niwst, N, rbt);
31244 for (var i =
0; i < N; i++) {
31245 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31246 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31250 this.conjugate(rwst, iwst, N);
31251 this.transform(rwst, iwst, rmws, _, N, rbt);
31252 this.conjugate(rmws, _, N);
31253 this.normalize13b(rmws, N);
31255 out.negative = x.negative ^ y.negative;
31256 out.length = x.length + y.length;
31257 return out.strip();
31260 // Multiply `this` by `num`
31261 BN.prototype.mul = function mul (num) {
31262 var out = new BN(null);
31263 out.words = new Array(this.length + num.length);
31264 return this.mulTo(num, out);
31267 // Multiply employing FFT
31268 BN.prototype.mulf = function mulf (num) {
31269 var out = new BN(null);
31270 out.words = new Array(this.length + num.length);
31271 return jumboMulTo(this, num, out);
31274 // In-place Multiplication
31275 BN.prototype.imul = function imul (num) {
31276 return this.clone().mulTo(num, this);
31279 BN.prototype.imuln = function imuln (num) {
31280 assert(typeof num === 'number');
31281 assert(num <
0x4000000);
31285 for (var i =
0; i < this.length; i++) {
31286 var w = (this.words[i] |
0) * num;
31287 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31289 carry += (w /
0x4000000) |
0;
31290 // NOTE: lo is
27bit maximum
31291 carry += lo
>>> 26;
31292 this.words[i] = lo &
0x3ffffff;
31296 this.words[i] = carry;
31303 BN.prototype.muln = function muln (num) {
31304 return this.clone().imuln(num);
31308 BN.prototype.sqr = function sqr () {
31309 return this.mul(this);
31312 // `this` * `this` in-place
31313 BN.prototype.isqr = function isqr () {
31314 return this.imul(this.clone());
31317 // Math.pow(`this`, `num`)
31318 BN.prototype.pow = function pow (num) {
31319 var w = toBitArray(num);
31320 if (w.length ===
0) return new BN(
1);
31322 // Skip leading zeroes
31324 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31325 if (w[i] !==
0) break;
31328 if (++i < w.length) {
31329 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31330 if (w[i] ===
0) continue;
31339 // Shift-left in-place
31340 BN.prototype.iushln = function iushln (bits) {
31341 assert(typeof bits === 'number' && bits
>=
0);
31343 var s = (bits - r) /
26;
31344 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31350 for (i =
0; i < this.length; i++) {
31351 var newCarry = this.words[i] & carryMask;
31352 var c = ((this.words[i] |
0) - newCarry) << r;
31353 this.words[i] = c | carry;
31354 carry = newCarry
>>> (
26 - r);
31358 this.words[i] = carry;
31364 for (i = this.length -
1; i
>=
0; i--) {
31365 this.words[i + s] = this.words[i];
31368 for (i =
0; i < s; i++) {
31375 return this.strip();
31378 BN.prototype.ishln = function ishln (bits) {
31379 // TODO(indutny): implement me
31380 assert(this.negative ===
0);
31381 return this.iushln(bits);
31384 // Shift-right in-place
31385 // NOTE: `hint` is a lowest bit before trailing zeroes
31386 // NOTE: if `extended` is present - it will be filled with destroyed bits
31387 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31388 assert(typeof bits === 'number' && bits
>=
0);
31391 h = (hint - (hint %
26)) /
26;
31397 var s = Math.min((bits - r) /
26, this.length);
31398 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31399 var maskedWords = extended;
31402 h = Math.max(
0, h);
31404 // Extended mode, copy masked part
31406 for (var i =
0; i < s; i++) {
31407 maskedWords.words[i] = this.words[i];
31409 maskedWords.length = s;
31413 // No-op, we should not move anything at all
31414 } else if (this.length
> s) {
31416 for (i =
0; i < this.length; i++) {
31417 this.words[i] = this.words[i + s];
31425 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31426 var word = this.words[i] |
0;
31427 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31428 carry = word & mask;
31431 // Push carried bits as a mask
31432 if (maskedWords && carry !==
0) {
31433 maskedWords.words[maskedWords.length++] = carry;
31436 if (this.length ===
0) {
31441 return this.strip();
31444 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31445 // TODO(indutny): implement me
31446 assert(this.negative ===
0);
31447 return this.iushrn(bits, hint, extended);
31451 BN.prototype.shln = function shln (bits) {
31452 return this.clone().ishln(bits);
31455 BN.prototype.ushln = function ushln (bits) {
31456 return this.clone().iushln(bits);
31460 BN.prototype.shrn = function shrn (bits) {
31461 return this.clone().ishrn(bits);
31464 BN.prototype.ushrn = function ushrn (bits) {
31465 return this.clone().iushrn(bits);
31468 // Test if n bit is set
31469 BN.prototype.testn = function testn (bit) {
31470 assert(typeof bit === 'number' && bit
>=
0);
31472 var s = (bit - r) /
26;
31475 // Fast case: bit is much higher than all existing words
31476 if (this.length <= s) return false;
31478 // Check bit and return
31479 var w = this.words[s];
31484 // Return only lowers bits of number (in-place)
31485 BN.prototype.imaskn = function imaskn (bits) {
31486 assert(typeof bits === 'number' && bits
>=
0);
31488 var s = (bits - r) /
26;
31490 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31492 if (this.length <= s) {
31499 this.length = Math.min(s, this.length);
31502 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31503 this.words[this.length -
1] &= mask;
31506 return this.strip();
31509 // Return only lowers bits of number
31510 BN.prototype.maskn = function maskn (bits) {
31511 return this.clone().imaskn(bits);
31514 // Add plain number `num` to `this`
31515 BN.prototype.iaddn = function iaddn (num) {
31516 assert(typeof num === 'number');
31517 assert(num <
0x4000000);
31518 if (num <
0) return this.isubn(-num);
31520 // Possible sign change
31521 if (this.negative !==
0) {
31522 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31523 this.words[
0] = num - (this.words[
0] |
0);
31534 // Add without checks
31535 return this._iaddn(num);
31538 BN.prototype._iaddn = function _iaddn (num) {
31539 this.words[
0] += num;
31542 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31543 this.words[i] -=
0x4000000;
31544 if (i === this.length -
1) {
31545 this.words[i +
1] =
1;
31547 this.words[i +
1]++;
31550 this.length = Math.max(this.length, i +
1);
31555 // Subtract plain number `num` from `this`
31556 BN.prototype.isubn = function isubn (num) {
31557 assert(typeof num === 'number');
31558 assert(num <
0x4000000);
31559 if (num <
0) return this.iaddn(-num);
31561 if (this.negative !==
0) {
31568 this.words[
0] -= num;
31570 if (this.length ===
1 && this.words[
0] <
0) {
31571 this.words[
0] = -this.words[
0];
31575 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31576 this.words[i] +=
0x4000000;
31577 this.words[i +
1] -=
1;
31581 return this.strip();
31584 BN.prototype.addn = function addn (num) {
31585 return this.clone().iaddn(num);
31588 BN.prototype.subn = function subn (num) {
31589 return this.clone().isubn(num);
31592 BN.prototype.iabs = function iabs () {
31598 BN.prototype.abs = function abs () {
31599 return this.clone().iabs();
31602 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31603 var len = num.length + shift;
31610 for (i =
0; i < num.length; i++) {
31611 w = (this.words[i + shift] |
0) + carry;
31612 var right = (num.words[i] |
0) * mul;
31613 w -= right &
0x3ffffff;
31614 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31615 this.words[i + shift] = w &
0x3ffffff;
31617 for (; i < this.length - shift; i++) {
31618 w = (this.words[i + shift] |
0) + carry;
31620 this.words[i + shift] = w &
0x3ffffff;
31623 if (carry ===
0) return this.strip();
31625 // Subtraction overflow
31626 assert(carry === -
1);
31628 for (i =
0; i < this.length; i++) {
31629 w = -(this.words[i] |
0) + carry;
31631 this.words[i] = w &
0x3ffffff;
31635 return this.strip();
31638 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31639 var shift = this.length - num.length;
31641 var a = this.clone();
31645 var bhi = b.words[b.length -
1] |
0;
31646 var bhiBits = this._countBits(bhi);
31647 shift =
26 - bhiBits;
31649 b = b.ushln(shift);
31651 bhi = b.words[b.length -
1] |
0;
31654 // Initialize quotient
31655 var m = a.length - b.length;
31658 if (mode !== 'mod') {
31661 q.words = new Array(q.length);
31662 for (var i =
0; i < q.length; i++) {
31667 var diff = a.clone()._ishlnsubmul(b,
1, m);
31668 if (diff.negative ===
0) {
31675 for (var j = m -
1; j
>=
0; j--) {
31676 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31677 (a.words[b.length + j -
1] |
0);
31679 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31681 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31683 a._ishlnsubmul(b, qj, j);
31684 while (a.negative !==
0) {
31687 a._ishlnsubmul(b,
1, j);
31702 if (mode !== 'div' && shift !==
0) {
31712 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31713 // to `div` to request div only, or be absent to
31714 // request both div & mod
31715 //
2) `positive` is true if unsigned mod is requested
31716 BN.prototype.divmod = function divmod (num, mode, positive) {
31717 assert(!num.isZero());
31719 if (this.isZero()) {
31727 if (this.negative !==
0 && num.negative ===
0) {
31728 res = this.neg().divmod(num, mode);
31730 if (mode !== 'mod') {
31731 div = res.div.neg();
31734 if (mode !== 'div') {
31735 mod = res.mod.neg();
31736 if (positive && mod.negative !==
0) {
31747 if (this.negative ===
0 && num.negative !==
0) {
31748 res = this.divmod(num.neg(), mode);
31750 if (mode !== 'mod') {
31751 div = res.div.neg();
31760 if ((this.negative & num.negative) !==
0) {
31761 res = this.neg().divmod(num.neg(), mode);
31763 if (mode !== 'div') {
31764 mod = res.mod.neg();
31765 if (positive && mod.negative !==
0) {
31776 // Both numbers are positive at this point
31778 // Strip both numbers to approximate shift value
31779 if (num.length
> this.length || this.cmp(num) <
0) {
31786 // Very short reduction
31787 if (num.length ===
1) {
31788 if (mode === 'div') {
31790 div: this.divn(num.words[
0]),
31795 if (mode === 'mod') {
31798 mod: new BN(this.modn(num.words[
0]))
31803 div: this.divn(num.words[
0]),
31804 mod: new BN(this.modn(num.words[
0]))
31808 return this._wordDiv(num, mode);
31811 // Find `this` / `num`
31812 BN.prototype.div = function div (num) {
31813 return this.divmod(num, 'div', false).div;
31816 // Find `this` % `num`
31817 BN.prototype.mod = function mod (num) {
31818 return this.divmod(num, 'mod', false).mod;
31821 BN.prototype.umod = function umod (num) {
31822 return this.divmod(num, 'mod', true).mod;
31825 // Find Round(`this` / `num`)
31826 BN.prototype.divRound = function divRound (num) {
31827 var dm = this.divmod(num);
31829 // Fast case - exact division
31830 if (dm.mod.isZero()) return dm.div;
31832 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31834 var half = num.ushrn(
1);
31835 var r2 = num.andln(
1);
31836 var cmp = mod.cmp(half);
31839 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31842 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31845 BN.prototype.modn = function modn (num) {
31846 assert(num <=
0x3ffffff);
31847 var p = (
1 <<
26) % num;
31850 for (var i = this.length -
1; i
>=
0; i--) {
31851 acc = (p * acc + (this.words[i] |
0)) % num;
31857 // In-place division by number
31858 BN.prototype.idivn = function idivn (num) {
31859 assert(num <=
0x3ffffff);
31862 for (var i = this.length -
1; i
>=
0; i--) {
31863 var w = (this.words[i] |
0) + carry *
0x4000000;
31864 this.words[i] = (w / num) |
0;
31868 return this.strip();
31871 BN.prototype.divn = function divn (num) {
31872 return this.clone().idivn(num);
31875 BN.prototype.egcd = function egcd (p) {
31876 assert(p.negative ===
0);
31877 assert(!p.isZero());
31882 if (x.negative !==
0) {
31888 // A * x + B * y = x
31892 // C * x + D * y = y
31898 while (x.isEven() && y.isEven()) {
31904 var yp = y.clone();
31905 var xp = x.clone();
31907 while (!x.isZero()) {
31908 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31912 if (A.isOdd() || B.isOdd()) {
31922 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31926 if (C.isOdd() || D.isOdd()) {
31936 if (x.cmp(y)
>=
0) {
31954 // This is reduced incarnation of the binary EEA
31955 // above, designated to invert members of the
31956 // _prime_ fields F(p) at a maximal speed
31957 BN.prototype._invmp = function _invmp (p) {
31958 assert(p.negative ===
0);
31959 assert(!p.isZero());
31964 if (a.negative !==
0) {
31970 var x1 = new BN(
1);
31971 var x2 = new BN(
0);
31973 var delta = b.clone();
31975 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31976 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31988 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
32000 if (a.cmp(b)
>=
0) {
32010 if (a.cmpn(
1) ===
0) {
32016 if (res.cmpn(
0) <
0) {
32023 BN.prototype.gcd = function gcd (num) {
32024 if (this.isZero()) return num.abs();
32025 if (num.isZero()) return this.abs();
32027 var a = this.clone();
32028 var b = num.clone();
32032 // Remove common factor of two
32033 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
32039 while (a.isEven()) {
32042 while (b.isEven()) {
32048 // Swap `a` and `b` to make `a` always bigger than `b`
32052 } else if (r ===
0 || b.cmpn(
1) ===
0) {
32059 return b.iushln(shift);
32062 // Invert number in the field F(num)
32063 BN.prototype.invm = function invm (num) {
32064 return this.egcd(num).a.umod(num);
32067 BN.prototype.isEven = function isEven () {
32068 return (this.words[
0] &
1) ===
0;
32071 BN.prototype.isOdd = function isOdd () {
32072 return (this.words[
0] &
1) ===
1;
32075 // And first word and num
32076 BN.prototype.andln = function andln (num) {
32077 return this.words[
0] & num;
32080 // Increment at the bit position in-line
32081 BN.prototype.bincn = function bincn (bit) {
32082 assert(typeof bit === 'number');
32084 var s = (bit - r) /
26;
32087 // Fast case: bit is much higher than all existing words
32088 if (this.length <= s) {
32089 this._expand(s +
1);
32090 this.words[s] |= q;
32094 // Add bit and propagate, if needed
32096 for (var i = s; carry !==
0 && i < this.length; i++) {
32097 var w = this.words[i] |
0;
32104 this.words[i] = carry;
32110 BN.prototype.isZero = function isZero () {
32111 return this.length ===
1 && this.words[
0] ===
0;
32114 BN.prototype.cmpn = function cmpn (num) {
32115 var negative = num <
0;
32117 if (this.negative !==
0 && !negative) return -
1;
32118 if (this.negative ===
0 && negative) return
1;
32123 if (this.length
> 1) {
32130 assert(num <=
0x3ffffff, 'Number is too big');
32132 var w = this.words[
0] |
0;
32133 res = w === num ?
0 : w < num ? -
1 :
1;
32135 if (this.negative !==
0) return -res |
0;
32139 // Compare two numbers and return:
32140 //
1 - if `this`
> `num`
32141 //
0 - if `this` == `num`
32142 // -
1 - if `this` < `num`
32143 BN.prototype.cmp = function cmp (num) {
32144 if (this.negative !==
0 && num.negative ===
0) return -
1;
32145 if (this.negative ===
0 && num.negative !==
0) return
1;
32147 var res = this.ucmp(num);
32148 if (this.negative !==
0) return -res |
0;
32152 // Unsigned comparison
32153 BN.prototype.ucmp = function ucmp (num) {
32154 // At this point both numbers have the same sign
32155 if (this.length
> num.length) return
1;
32156 if (this.length < num.length) return -
1;
32159 for (var i = this.length -
1; i
>=
0; i--) {
32160 var a = this.words[i] |
0;
32161 var b = num.words[i] |
0;
32163 if (a === b) continue;
32166 } else if (a
> b) {
32174 BN.prototype.gtn = function gtn (num) {
32175 return this.cmpn(num) ===
1;
32178 BN.prototype.gt = function gt (num) {
32179 return this.cmp(num) ===
1;
32182 BN.prototype.gten = function gten (num) {
32183 return this.cmpn(num)
>=
0;
32186 BN.prototype.gte = function gte (num) {
32187 return this.cmp(num)
>=
0;
32190 BN.prototype.ltn = function ltn (num) {
32191 return this.cmpn(num) === -
1;
32194 BN.prototype.lt = function lt (num) {
32195 return this.cmp(num) === -
1;
32198 BN.prototype.lten = function lten (num) {
32199 return this.cmpn(num) <=
0;
32202 BN.prototype.lte = function lte (num) {
32203 return this.cmp(num) <=
0;
32206 BN.prototype.eqn = function eqn (num) {
32207 return this.cmpn(num) ===
0;
32210 BN.prototype.eq = function eq (num) {
32211 return this.cmp(num) ===
0;
32215 // A reduce context, could be using montgomery or something better, depending
32216 // on the `m` itself.
32218 BN.red = function red (num) {
32219 return new Red(num);
32222 BN.prototype.toRed = function toRed (ctx) {
32223 assert(!this.red, 'Already a number in reduction context');
32224 assert(this.negative ===
0, 'red works only with positives');
32225 return ctx.convertTo(this)._forceRed(ctx);
32228 BN.prototype.fromRed = function fromRed () {
32229 assert(this.red, 'fromRed works only with numbers in reduction context');
32230 return this.red.convertFrom(this);
32233 BN.prototype._forceRed = function _forceRed (ctx) {
32238 BN.prototype.forceRed = function forceRed (ctx) {
32239 assert(!this.red, 'Already a number in reduction context');
32240 return this._forceRed(ctx);
32243 BN.prototype.redAdd = function redAdd (num) {
32244 assert(this.red, 'redAdd works only with red numbers');
32245 return this.red.add(this, num);
32248 BN.prototype.redIAdd = function redIAdd (num) {
32249 assert(this.red, 'redIAdd works only with red numbers');
32250 return this.red.iadd(this, num);
32253 BN.prototype.redSub = function redSub (num) {
32254 assert(this.red, 'redSub works only with red numbers');
32255 return this.red.sub(this, num);
32258 BN.prototype.redISub = function redISub (num) {
32259 assert(this.red, 'redISub works only with red numbers');
32260 return this.red.isub(this, num);
32263 BN.prototype.redShl = function redShl (num) {
32264 assert(this.red, 'redShl works only with red numbers');
32265 return this.red.shl(this, num);
32268 BN.prototype.redMul = function redMul (num) {
32269 assert(this.red, 'redMul works only with red numbers');
32270 this.red._verify2(this, num);
32271 return this.red.mul(this, num);
32274 BN.prototype.redIMul = function redIMul (num) {
32275 assert(this.red, 'redMul works only with red numbers');
32276 this.red._verify2(this, num);
32277 return this.red.imul(this, num);
32280 BN.prototype.redSqr = function redSqr () {
32281 assert(this.red, 'redSqr works only with red numbers');
32282 this.red._verify1(this);
32283 return this.red.sqr(this);
32286 BN.prototype.redISqr = function redISqr () {
32287 assert(this.red, 'redISqr works only with red numbers');
32288 this.red._verify1(this);
32289 return this.red.isqr(this);
32292 // Square root over p
32293 BN.prototype.redSqrt = function redSqrt () {
32294 assert(this.red, 'redSqrt works only with red numbers');
32295 this.red._verify1(this);
32296 return this.red.sqrt(this);
32299 BN.prototype.redInvm = function redInvm () {
32300 assert(this.red, 'redInvm works only with red numbers');
32301 this.red._verify1(this);
32302 return this.red.invm(this);
32305 // Return negative clone of `this` % `red modulo`
32306 BN.prototype.redNeg = function redNeg () {
32307 assert(this.red, 'redNeg works only with red numbers');
32308 this.red._verify1(this);
32309 return this.red.neg(this);
32312 BN.prototype.redPow = function redPow (num) {
32313 assert(this.red && !num.red, 'redPow(normalNum)');
32314 this.red._verify1(this);
32315 return this.red.pow(this, num);
32318 // Prime numbers with efficient reduction
32326 // Pseudo-Mersenne prime
32327 function MPrime (name, p) {
32330 this.p = new BN(p,
16);
32331 this.n = this.p.bitLength();
32332 this.k = new BN(
1).iushln(this.n).isub(this.p);
32334 this.tmp = this._tmp();
32337 MPrime.prototype._tmp = function _tmp () {
32338 var tmp = new BN(null);
32339 tmp.words = new Array(Math.ceil(this.n /
13));
32343 MPrime.prototype.ireduce = function ireduce (num) {
32344 // Assumes that `num` is less than `P^
2`
32345 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32350 this.split(r, this.tmp);
32352 r = r.iadd(this.tmp);
32353 rlen = r.bitLength();
32354 } while (rlen
> this.n);
32356 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32360 } else if (cmp
> 0) {
32369 MPrime.prototype.split = function split (input, out) {
32370 input.iushrn(this.n,
0, out);
32373 MPrime.prototype.imulK = function imulK (num) {
32374 return num.imul(this.k);
32381 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32383 inherits(K256, MPrime);
32385 K256.prototype.split = function split (input, output) {
32386 //
256 =
9 *
26 +
22
32387 var mask =
0x3fffff;
32389 var outLen = Math.min(input.length,
9);
32390 for (var i =
0; i < outLen; i++) {
32391 output.words[i] = input.words[i];
32393 output.length = outLen;
32395 if (input.length <=
9) {
32396 input.words[
0] =
0;
32401 // Shift by
9 limbs
32402 var prev = input.words[
9];
32403 output.words[output.length++] = prev & mask;
32405 for (i =
10; i < input.length; i++) {
32406 var next = input.words[i] |
0;
32407 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32411 input.words[i -
10] = prev;
32412 if (prev ===
0 && input.length
> 10) {
32413 input.length -=
10;
32419 K256.prototype.imulK = function imulK (num) {
32420 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32421 num.words[num.length] =
0;
32422 num.words[num.length +
1] =
0;
32425 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32427 for (var i =
0; i < num.length; i++) {
32428 var w = num.words[i] |
0;
32430 num.words[i] = lo &
0x3ffffff;
32431 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32434 // Fast length reduction
32435 if (num.words[num.length -
1] ===
0) {
32437 if (num.words[num.length -
1] ===
0) {
32448 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32450 inherits(P224, MPrime);
32456 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32458 inherits(P192, MPrime);
32460 function P25519 () {
32465 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32467 inherits(P25519, MPrime);
32469 P25519.prototype.imulK = function imulK (num) {
32472 for (var i =
0; i < num.length; i++) {
32473 var hi = (num.words[i] |
0) *
0x13 + carry;
32474 var lo = hi &
0x3ffffff;
32481 num.words[num.length++] = carry;
32486 // Exported mostly for testing purposes, use plain name instead
32487 BN._prime = function prime (name) {
32488 // Cached version of prime
32489 if (primes[name]) return primes[name];
32492 if (name === 'k256') {
32493 prime = new K256();
32494 } else if (name === 'p224') {
32495 prime = new P224();
32496 } else if (name === 'p192') {
32497 prime = new P192();
32498 } else if (name === 'p25519') {
32499 prime = new P25519();
32501 throw new Error('Unknown prime ' + name);
32503 primes[name] = prime;
32509 // Base reduction engine
32512 if (typeof m === 'string') {
32513 var prime = BN._prime(m);
32515 this.prime = prime;
32517 assert(m.gtn(
1), 'modulus must be greater than
1');
32523 Red.prototype._verify1 = function _verify1 (a) {
32524 assert(a.negative ===
0, 'red works only with positives');
32525 assert(a.red, 'red works only with red numbers');
32528 Red.prototype._verify2 = function _verify2 (a, b) {
32529 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32530 assert(a.red && a.red === b.red,
32531 'red works only with red numbers');
32534 Red.prototype.imod = function imod (a) {
32535 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32536 return a.umod(this.m)._forceRed(this);
32539 Red.prototype.neg = function neg (a) {
32544 return this.m.sub(a)._forceRed(this);
32547 Red.prototype.add = function add (a, b) {
32548 this._verify2(a, b);
32550 var res = a.add(b);
32551 if (res.cmp(this.m)
>=
0) {
32554 return res._forceRed(this);
32557 Red.prototype.iadd = function iadd (a, b) {
32558 this._verify2(a, b);
32560 var res = a.iadd(b);
32561 if (res.cmp(this.m)
>=
0) {
32567 Red.prototype.sub = function sub (a, b) {
32568 this._verify2(a, b);
32570 var res = a.sub(b);
32571 if (res.cmpn(
0) <
0) {
32574 return res._forceRed(this);
32577 Red.prototype.isub = function isub (a, b) {
32578 this._verify2(a, b);
32580 var res = a.isub(b);
32581 if (res.cmpn(
0) <
0) {
32587 Red.prototype.shl = function shl (a, num) {
32589 return this.imod(a.ushln(num));
32592 Red.prototype.imul = function imul (a, b) {
32593 this._verify2(a, b);
32594 return this.imod(a.imul(b));
32597 Red.prototype.mul = function mul (a, b) {
32598 this._verify2(a, b);
32599 return this.imod(a.mul(b));
32602 Red.prototype.isqr = function isqr (a) {
32603 return this.imul(a, a.clone());
32606 Red.prototype.sqr = function sqr (a) {
32607 return this.mul(a, a);
32610 Red.prototype.sqrt = function sqrt (a) {
32611 if (a.isZero()) return a.clone();
32613 var mod3 = this.m.andln(
3);
32614 assert(mod3 %
2 ===
1);
32618 var pow = this.m.add(new BN(
1)).iushrn(
2);
32619 return this.pow(a, pow);
32622 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32624 // Find Q and S, that Q *
2 ^ S = (P -
1)
32625 var q = this.m.subn(
1);
32627 while (!q.isZero() && q.andln(
1) ===
0) {
32631 assert(!q.isZero());
32633 var one = new BN(
1).toRed(this);
32634 var nOne = one.redNeg();
32636 // Find quadratic non-residue
32637 // NOTE: Max is such because of generalized Riemann hypothesis.
32638 var lpow = this.m.subn(
1).iushrn(
1);
32639 var z = this.m.bitLength();
32640 z = new BN(
2 * z * z).toRed(this);
32642 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32646 var c = this.pow(z, q);
32647 var r = this.pow(a, q.addn(
1).iushrn(
1));
32648 var t = this.pow(a, q);
32650 while (t.cmp(one) !==
0) {
32652 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32653 tmp = tmp.redSqr();
32656 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32667 Red.prototype.invm = function invm (a) {
32668 var inv = a._invmp(this.m);
32669 if (inv.negative !==
0) {
32671 return this.imod(inv).redNeg();
32673 return this.imod(inv);
32677 Red.prototype.pow = function pow (a, num) {
32678 if (num.isZero()) return new BN(
1);
32679 if (num.cmpn(
1) ===
0) return a.clone();
32681 var windowSize =
4;
32682 var wnd = new Array(
1 << windowSize);
32683 wnd[
0] = new BN(
1).toRed(this);
32685 for (var i =
2; i < wnd.length; i++) {
32686 wnd[i] = this.mul(wnd[i -
1], a);
32691 var currentLen =
0;
32692 var start = num.bitLength() %
26;
32697 for (i = num.length -
1; i
>=
0; i--) {
32698 var word = num.words[i];
32699 for (var j = start -
1; j
>=
0; j--) {
32700 var bit = (word
>> j) &
1;
32701 if (res !== wnd[
0]) {
32702 res = this.sqr(res);
32705 if (bit ===
0 && current ===
0) {
32713 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32715 res = this.mul(res, wnd[current]);
32725 Red.prototype.convertTo = function convertTo (num) {
32726 var r = num.umod(this.m);
32728 return r === num ? r.clone() : r;
32731 Red.prototype.convertFrom = function convertFrom (num) {
32732 var res = num.clone();
32738 // Montgomery method engine
32741 BN.mont = function mont (num) {
32742 return new Mont(num);
32745 function Mont (m) {
32748 this.shift = this.m.bitLength();
32749 if (this.shift %
26 !==
0) {
32750 this.shift +=
26 - (this.shift %
26);
32753 this.r = new BN(
1).iushln(this.shift);
32754 this.r2 = this.imod(this.r.sqr());
32755 this.rinv = this.r._invmp(this.m);
32757 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32758 this.minv = this.minv.umod(this.r);
32759 this.minv = this.r.sub(this.minv);
32761 inherits(Mont, Red);
32763 Mont.prototype.convertTo = function convertTo (num) {
32764 return this.imod(num.ushln(this.shift));
32767 Mont.prototype.convertFrom = function convertFrom (num) {
32768 var r = this.imod(num.mul(this.rinv));
32773 Mont.prototype.imul = function imul (a, b) {
32774 if (a.isZero() || b.isZero()) {
32781 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32782 var u = t.isub(c).iushrn(this.shift);
32785 if (u.cmp(this.m)
>=
0) {
32786 res = u.isub(this.m);
32787 } else if (u.cmpn(
0) <
0) {
32788 res = u.iadd(this.m);
32791 return res._forceRed(this);
32794 Mont.prototype.mul = function mul (a, b) {
32795 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32798 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32799 var u = t.isub(c).iushrn(this.shift);
32801 if (u.cmp(this.m)
>=
0) {
32802 res = u.isub(this.m);
32803 } else if (u.cmpn(
0) <
0) {
32804 res = u.iadd(this.m);
32807 return res._forceRed(this);
32810 Mont.prototype.invm = function invm (a) {
32811 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32812 var res = this.imod(a._invmp(this.m).mul(this.r2));
32813 return res._forceRed(this);
32815 })(typeof module === 'undefined' || module, this);
32817 },{}],
34:[function(require,module,exports){
32820 module.exports = function rand(len) {
32822 r = new Rand(null);
32824 return r.generate(len);
32827 function Rand(rand) {
32830 module.exports.Rand = Rand;
32832 Rand.prototype.generate = function generate(len) {
32833 return this._rand(len);
32836 if (typeof self === 'object') {
32837 if (self.crypto && self.crypto.getRandomValues) {
32839 Rand.prototype._rand = function _rand(n) {
32840 var arr = new Uint8Array(n);
32841 self.crypto.getRandomValues(arr);
32844 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32846 Rand.prototype._rand = function _rand(n) {
32847 var arr = new Uint8Array(n);
32848 self.msCrypto.getRandomValues(arr);
32853 Rand.prototype._rand = function() {
32854 throw new Error('Not implemented yet');
32858 // Node.js or Web worker with no crypto support
32860 var crypto = require('crypto');
32862 Rand.prototype._rand = function _rand(n) {
32863 return crypto.randomBytes(n);
32866 // Emulate crypto API using randy
32867 Rand.prototype._rand = function _rand(n) {
32868 var res = new Uint8Array(n);
32869 for (var i =
0; i < res.length; i++)
32870 res[i] = this.rand.getByte();
32876 },{"crypto":
3}],
35:[function(require,module,exports){
32877 (function (Buffer){
32878 var Transform = require('stream').Transform
32879 var inherits = require('inherits')
32880 var StringDecoder = require('string_decoder').StringDecoder
32881 module.exports = CipherBase
32882 inherits(CipherBase, Transform)
32883 function CipherBase (hashMode) {
32884 Transform.call(this)
32885 this.hashMode = typeof hashMode === 'string'
32886 if (this.hashMode) {
32887 this[hashMode] = this._finalOrDigest
32889 this.final = this._finalOrDigest
32891 this._decoder = null
32892 this._encoding = null
32894 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32895 if (typeof data === 'string') {
32896 data = new Buffer(data, inputEnc)
32898 var outData = this._update(data)
32899 if (this.hashMode) {
32903 outData = this._toString(outData, outputEnc)
32908 CipherBase.prototype.setAutoPadding = function () {}
32910 CipherBase.prototype.getAuthTag = function () {
32911 throw new Error('trying to get auth tag in unsupported state')
32914 CipherBase.prototype.setAuthTag = function () {
32915 throw new Error('trying to set auth tag in unsupported state')
32918 CipherBase.prototype.setAAD = function () {
32919 throw new Error('trying to set aad in unsupported state')
32922 CipherBase.prototype._transform = function (data, _, next) {
32925 if (this.hashMode) {
32928 this.push(this._update(data))
32936 CipherBase.prototype._flush = function (done) {
32939 this.push(this._final())
32946 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32947 var outData = this._final() || new Buffer('')
32949 outData = this._toString(outData, outputEnc, true)
32954 CipherBase.prototype._toString = function (value, enc, fin) {
32955 if (!this._decoder) {
32956 this._decoder = new StringDecoder(enc)
32957 this._encoding = enc
32959 if (this._encoding !== enc) {
32960 throw new Error('can\'t switch encodings')
32962 var out = this._decoder.write(value)
32964 out += this._decoder.end()
32969 }).call(this,require("buffer").Buffer)
32970 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32971 (function (Buffer){
32973 var inherits = require('inherits')
32974 var md5 = require('./md5')
32975 var rmd160 = require('ripemd160')
32976 var sha = require('sha.js')
32978 var Base = require('cipher-base')
32980 function HashNoConstructor(hash) {
32981 Base.call(this, 'digest')
32987 inherits(HashNoConstructor, Base)
32989 HashNoConstructor.prototype._update = function (data) {
32990 this.buffers.push(data)
32993 HashNoConstructor.prototype._final = function () {
32994 var buf = Buffer.concat(this.buffers)
32995 var r = this._hash(buf)
32996 this.buffers = null
33001 function Hash(hash) {
33002 Base.call(this, 'digest')
33007 inherits(Hash, Base)
33009 Hash.prototype._update = function (data) {
33010 this._hash.update(data)
33013 Hash.prototype._final = function () {
33014 return this._hash.digest()
33017 module.exports = function createHash (alg) {
33018 alg = alg.toLowerCase()
33019 if ('md5' === alg) return new HashNoConstructor(md5)
33020 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
33022 return new Hash(sha(alg))
33025 }).call(this,require("buffer").Buffer)
33026 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
33027 (function (Buffer){
33030 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
33033 function toArray(buf, bigEndian) {
33034 if ((buf.length % intSize) !==
0) {
33035 var len = buf.length + (intSize - (buf.length % intSize));
33036 buf = Buffer.concat([buf, zeroBuffer], len);
33040 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
33041 for (var i =
0; i < buf.length; i += intSize) {
33042 arr.push(fn.call(buf, i));
33047 function toBuffer(arr, size, bigEndian) {
33048 var buf = new Buffer(size);
33049 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
33050 for (var i =
0; i < arr.length; i++) {
33051 fn.call(buf, arr[i], i *
4, true);
33056 function hash(buf, fn, hashSize, bigEndian) {
33057 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
33058 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
33059 return toBuffer(arr, hashSize, bigEndian);
33061 exports.hash = hash;
33062 }).call(this,require("buffer").Buffer)
33063 },{"buffer":
5}],
38:[function(require,module,exports){
33066 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
33067 * Digest Algorithm, as defined in RFC
1321.
33068 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
33069 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
33070 * Distributed under the BSD License
33071 * See http://pajhome.org.uk/crypt/md5 for more info.
33074 var helpers = require('./helpers');
33077 * Calculate the MD5 of an array of little-endian words, and a bit length
33079 function core_md5(x, len)
33081 /* append padding */
33082 x[len
>> 5] |=
0x80 << ((len) %
32);
33083 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
33085 var a =
1732584193;
33086 var b = -
271733879;
33087 var c = -
1732584194;
33090 for(var i =
0; i < x.length; i +=
16)
33097 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
33098 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
33099 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
33100 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
33101 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
33102 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
33103 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
33104 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
33105 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
33106 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
33107 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
33108 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
33109 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
33110 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
33111 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
33112 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33114 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33115 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33116 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33117 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33118 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33119 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33120 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33121 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33122 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33123 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33124 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33125 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33126 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33127 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33128 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33129 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33131 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33132 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33133 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33134 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33135 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33136 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33137 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33138 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33139 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33140 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33141 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33142 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33143 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33144 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33145 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33146 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33148 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33149 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33150 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33151 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33152 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33153 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33154 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33155 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33156 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33157 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33158 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33159 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33160 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33161 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33162 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33163 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33165 a = safe_add(a, olda);
33166 b = safe_add(b, oldb);
33167 c = safe_add(c, oldc);
33168 d = safe_add(d, oldd);
33170 return Array(a, b, c, d);
33175 * These functions implement the four basic operations the algorithm uses.
33177 function md5_cmn(q, a, b, x, s, t)
33179 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33181 function md5_ff(a, b, c, d, x, s, t)
33183 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33185 function md5_gg(a, b, c, d, x, s, t)
33187 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33189 function md5_hh(a, b, c, d, x, s, t)
33191 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33193 function md5_ii(a, b, c, d, x, s, t)
33195 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33199 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33200 * to work around bugs in some JS interpreters.
33202 function safe_add(x, y)
33204 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33205 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33206 return (msw <<
16) | (lsw &
0xFFFF);
33210 * Bitwise rotate a
32-bit number to the left.
33212 function bit_rol(num, cnt)
33214 return (num << cnt) | (num
>>> (
32 - cnt));
33217 module.exports = function md5(buf) {
33218 return helpers.hash(buf, core_md5,
16);
33220 },{"./helpers":
37}],
39:[function(require,module,exports){
33223 var elliptic = exports;
33225 elliptic.version = require('../package.json').version;
33226 elliptic.utils = require('./elliptic/utils');
33227 elliptic.rand = require('brorand');
33228 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33229 elliptic.curve = require('./elliptic/curve');
33230 elliptic.curves = require('./elliptic/curves');
33233 elliptic.ec = require('./elliptic/ec');
33234 elliptic.eddsa = require('./elliptic/eddsa');
33236 },{"../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){
33239 var BN = require('bn.js');
33240 var elliptic = require('../../elliptic');
33241 var utils = elliptic.utils;
33242 var getNAF = utils.getNAF;
33243 var getJSF = utils.getJSF;
33244 var assert = utils.assert;
33246 function BaseCurve(type, conf) {
33248 this.p = new BN(conf.p,
16);
33250 // Use Montgomery, when there is no fast reduction for the prime
33251 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33253 // Useful for many curves
33254 this.zero = new BN(
0).toRed(this.red);
33255 this.one = new BN(
1).toRed(this.red);
33256 this.two = new BN(
2).toRed(this.red);
33258 // Curve configuration, optional
33259 this.n = conf.n && new BN(conf.n,
16);
33260 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33262 // Temporary arrays
33263 this._wnafT1 = new Array(
4);
33264 this._wnafT2 = new Array(
4);
33265 this._wnafT3 = new Array(
4);
33266 this._wnafT4 = new Array(
4);
33268 // Generalized Greg Maxwell's trick
33269 var adjustCount = this.n && this.p.div(this.n);
33270 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33273 this._maxwellTrick = true;
33274 this.redN = this.n.toRed(this.red);
33277 module.exports = BaseCurve;
33279 BaseCurve.prototype.point = function point() {
33280 throw new Error('Not implemented');
33283 BaseCurve.prototype.validate = function validate() {
33284 throw new Error('Not implemented');
33287 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33288 assert(p.precomputed);
33289 var doubles = p._getDoubles();
33291 var naf = getNAF(k,
1);
33292 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33295 // Translate into more windowed form
33297 for (var j =
0; j < naf.length; j += doubles.step) {
33299 for (var k = j + doubles.step -
1; k
>= j; k--)
33300 nafW = (nafW <<
1) + naf[k];
33304 var a = this.jpoint(null, null, null);
33305 var b = this.jpoint(null, null, null);
33306 for (var i = I; i
> 0; i--) {
33307 for (var j =
0; j < repr.length; j++) {
33308 var nafW = repr[j];
33310 b = b.mixedAdd(doubles.points[j]);
33311 else if (nafW === -i)
33312 b = b.mixedAdd(doubles.points[j].neg());
33319 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33322 // Precompute window
33323 var nafPoints = p._getNAFPoints(w);
33325 var wnd = nafPoints.points;
33328 var naf = getNAF(k, w);
33330 // Add `this`*(N+
1) for every w-NAF index
33331 var acc = this.jpoint(null, null, null);
33332 for (var i = naf.length -
1; i
>=
0; i--) {
33334 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33344 if (p.type === 'affine') {
33347 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33349 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33353 acc = acc.add(wnd[(z -
1)
>> 1]);
33355 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33358 return p.type === 'affine' ? acc.toP() : acc;
33361 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33366 var wndWidth = this._wnafT1;
33367 var wnd = this._wnafT2;
33368 var naf = this._wnafT3;
33372 for (var i =
0; i < len; i++) {
33374 var nafPoints = p._getNAFPoints(defW);
33375 wndWidth[i] = nafPoints.wnd;
33376 wnd[i] = nafPoints.points;
33379 // Comb small window NAFs
33380 for (var i = len -
1; i
>=
1; i -=
2) {
33383 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33384 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33385 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33386 max = Math.max(naf[a].length, max);
33387 max = Math.max(naf[b].length, max);
33398 // Try to avoid Projective points, if possible
33399 if (points[a].y.cmp(points[b].y) ===
0) {
33400 comb[
1] = points[a].add(points[b]);
33401 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33402 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33403 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33404 comb[
2] = points[a].add(points[b].neg());
33406 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33407 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33422 var jsf = getJSF(coeffs[a], coeffs[b]);
33423 max = Math.max(jsf[
0].length, max);
33424 naf[a] = new Array(max);
33425 naf[b] = new Array(max);
33426 for (var j =
0; j < max; j++) {
33427 var ja = jsf[
0][j] |
0;
33428 var jb = jsf[
1][j] |
0;
33430 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33436 var acc = this.jpoint(null, null, null);
33437 var tmp = this._wnafT4;
33438 for (var i = max; i
>=
0; i--) {
33443 for (var j =
0; j < len; j++) {
33444 tmp[j] = naf[j][i] |
0;
33459 for (var j =
0; j < len; j++) {
33465 p = wnd[j][(z -
1)
>> 1];
33467 p = wnd[j][(-z -
1)
>> 1].neg();
33469 if (p.type === 'affine')
33470 acc = acc.mixedAdd(p);
33475 // Zeroify references
33476 for (var i =
0; i < len; i++)
33479 if (jacobianResult)
33485 function BasePoint(curve, type) {
33486 this.curve = curve;
33488 this.precomputed = null;
33490 BaseCurve.BasePoint = BasePoint;
33492 BasePoint.prototype.eq = function eq(/*other*/) {
33493 throw new Error('Not implemented');
33496 BasePoint.prototype.validate = function validate() {
33497 return this.curve.validate(this);
33500 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33501 bytes = utils.toArray(bytes, enc);
33503 var len = this.p.byteLength();
33505 // uncompressed, hybrid-odd, hybrid-even
33506 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33507 bytes.length -
1 ===
2 * len) {
33508 if (bytes[
0] ===
0x06)
33509 assert(bytes[bytes.length -
1] %
2 ===
0);
33510 else if (bytes[
0] ===
0x07)
33511 assert(bytes[bytes.length -
1] %
2 ===
1);
33513 var res = this.point(bytes.slice(
1,
1 + len),
33514 bytes.slice(
1 + len,
1 +
2 * len));
33517 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33518 bytes.length -
1 === len) {
33519 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33521 throw new Error('Unknown point format');
33524 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33525 return this.encode(enc, true);
33528 BasePoint.prototype._encode = function _encode(compact) {
33529 var len = this.curve.p.byteLength();
33530 var x = this.getX().toArray('be', len);
33533 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33535 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33538 BasePoint.prototype.encode = function encode(enc, compact) {
33539 return utils.encode(this._encode(compact), enc);
33542 BasePoint.prototype.precompute = function precompute(power) {
33543 if (this.precomputed)
33546 var precomputed = {
33551 precomputed.naf = this._getNAFPoints(
8);
33552 precomputed.doubles = this._getDoubles(
4, power);
33553 precomputed.beta = this._getBeta();
33554 this.precomputed = precomputed;
33559 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33560 if (!this.precomputed)
33563 var doubles = this.precomputed.doubles;
33567 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33570 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33571 if (this.precomputed && this.precomputed.doubles)
33572 return this.precomputed.doubles;
33574 var doubles = [ this ];
33576 for (var i =
0; i < power; i += step) {
33577 for (var j =
0; j < step; j++)
33587 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33588 if (this.precomputed && this.precomputed.naf)
33589 return this.precomputed.naf;
33591 var res = [ this ];
33592 var max = (
1 << wnd) -
1;
33593 var dbl = max ===
1 ? null : this.dbl();
33594 for (var i =
1; i < max; i++)
33595 res[i] = res[i -
1].add(dbl);
33602 BasePoint.prototype._getBeta = function _getBeta() {
33606 BasePoint.prototype.dblp = function dblp(k) {
33608 for (var i =
0; i < k; i++)
33613 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33616 var curve = require('../curve');
33617 var elliptic = require('../../elliptic');
33618 var BN = require('bn.js');
33619 var inherits = require('inherits');
33620 var Base = curve.base;
33622 var assert = elliptic.utils.assert;
33624 function EdwardsCurve(conf) {
33625 // NOTE: Important as we are creating point in Base.call()
33626 this.twisted = (conf.a |
0) !==
1;
33627 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33628 this.extended = this.mOneA;
33630 Base.call(this, 'edwards', conf);
33632 this.a = new BN(conf.a,
16).umod(this.red.m);
33633 this.a = this.a.toRed(this.red);
33634 this.c = new BN(conf.c,
16).toRed(this.red);
33635 this.c2 = this.c.redSqr();
33636 this.d = new BN(conf.d,
16).toRed(this.red);
33637 this.dd = this.d.redAdd(this.d);
33639 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33640 this.oneC = (conf.c |
0) ===
1;
33642 inherits(EdwardsCurve, Base);
33643 module.exports = EdwardsCurve;
33645 EdwardsCurve.prototype._mulA = function _mulA(num) {
33647 return num.redNeg();
33649 return this.a.redMul(num);
33652 EdwardsCurve.prototype._mulC = function _mulC(num) {
33656 return this.c.redMul(num);
33659 // Just for compatibility with Short curve
33660 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33661 return this.point(x, y, z, t);
33664 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33667 x = x.toRed(this.red);
33669 var x2 = x.redSqr();
33670 var rhs = this.c2.redSub(this.a.redMul(x2));
33671 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33673 var y2 = rhs.redMul(lhs.redInvm());
33674 var y = y2.redSqrt();
33675 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33676 throw new Error('invalid point');
33678 var isOdd = y.fromRed().isOdd();
33679 if (odd && !isOdd || !odd && isOdd)
33682 return this.point(x, y);
33685 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33688 y = y.toRed(this.red);
33690 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33691 var y2 = y.redSqr();
33692 var lhs = y2.redSub(this.one);
33693 var rhs = y2.redMul(this.d).redAdd(this.one);
33694 var x2 = lhs.redMul(rhs.redInvm());
33696 if (x2.cmp(this.zero) ===
0) {
33698 throw new Error('invalid point');
33700 return this.point(this.zero, y);
33703 var x = x2.redSqrt();
33704 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33705 throw new Error('invalid point');
33707 if (x.isOdd() !== odd)
33710 return this.point(x, y);
33713 EdwardsCurve.prototype.validate = function validate(point) {
33714 if (point.isInfinity())
33717 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33720 var x2 = point.x.redSqr();
33721 var y2 = point.y.redSqr();
33722 var lhs = x2.redMul(this.a).redAdd(y2);
33723 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33725 return lhs.cmp(rhs) ===
0;
33728 function Point(curve, x, y, z, t) {
33729 Base.BasePoint.call(this, curve, 'projective');
33730 if (x === null && y === null && z === null) {
33731 this.x = this.curve.zero;
33732 this.y = this.curve.one;
33733 this.z = this.curve.one;
33734 this.t = this.curve.zero;
33737 this.x = new BN(x,
16);
33738 this.y = new BN(y,
16);
33739 this.z = z ? new BN(z,
16) : this.curve.one;
33740 this.t = t && new BN(t,
16);
33742 this.x = this.x.toRed(this.curve.red);
33744 this.y = this.y.toRed(this.curve.red);
33746 this.z = this.z.toRed(this.curve.red);
33747 if (this.t && !this.t.red)
33748 this.t = this.t.toRed(this.curve.red);
33749 this.zOne = this.z === this.curve.one;
33751 // Use extended coordinates
33752 if (this.curve.extended && !this.t) {
33753 this.t = this.x.redMul(this.y);
33755 this.t = this.t.redMul(this.z.redInvm());
33759 inherits(Point, Base.BasePoint);
33761 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33762 return Point.fromJSON(this, obj);
33765 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33766 return new Point(this, x, y, z, t);
33769 Point.fromJSON = function fromJSON(curve, obj) {
33770 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33773 Point.prototype.inspect = function inspect() {
33774 if (this.isInfinity())
33775 return '
<EC Point Infinity
>';
33776 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33777 ' y: ' + this.y.fromRed().toString(
16,
2) +
33778 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33781 Point.prototype.isInfinity = function isInfinity() {
33782 // XXX This code assumes that zero is always zero in red
33783 return this.x.cmpn(
0) ===
0 &&
33784 this.y.cmp(this.z) ===
0;
33787 Point.prototype._extDbl = function _extDbl() {
33788 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33789 // #doubling-dbl-
2008-hwcd
33793 var a = this.x.redSqr();
33795 var b = this.y.redSqr();
33797 var c = this.z.redSqr();
33800 var d = this.curve._mulA(a);
33801 // E = (X1 + Y1)^
2 - A - B
33802 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33804 var g = d.redAdd(b);
33806 var f = g.redSub(c);
33808 var h = d.redSub(b);
33810 var nx = e.redMul(f);
33812 var ny = g.redMul(h);
33814 var nt = e.redMul(h);
33816 var nz = f.redMul(g);
33817 return this.curve.point(nx, ny, nz, nt);
33820 Point.prototype._projDbl = function _projDbl() {
33821 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33822 // #doubling-dbl-
2008-bbjlp
33823 // #doubling-dbl-
2007-bl
33825 // Generally
3M +
4S or
2M +
4S
33828 var b = this.x.redAdd(this.y).redSqr();
33830 var c = this.x.redSqr();
33832 var d = this.y.redSqr();
33837 if (this.curve.twisted) {
33839 var e = this.curve._mulA(c);
33841 var f = e.redAdd(d);
33843 // X3 = (B - C - D) * (F -
2)
33844 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33845 // Y3 = F * (E - D)
33846 ny = f.redMul(e.redSub(d));
33847 // Z3 = F^
2 -
2 * F
33848 nz = f.redSqr().redSub(f).redSub(f);
33851 var h = this.z.redSqr();
33853 var j = f.redSub(h).redISub(h);
33855 nx = b.redSub(c).redISub(d).redMul(j);
33856 // Y3 = F * (E - D)
33857 ny = f.redMul(e.redSub(d));
33863 var e = c.redAdd(d);
33865 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33867 var j = e.redSub(h).redSub(h);
33868 // X3 = c * (B - E) * J
33869 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33870 // Y3 = c * E * (C - D)
33871 ny = this.curve._mulC(e).redMul(c.redISub(d));
33875 return this.curve.point(nx, ny, nz);
33878 Point.prototype.dbl = function dbl() {
33879 if (this.isInfinity())
33882 // Double in extended coordinates
33883 if (this.curve.extended)
33884 return this._extDbl();
33886 return this._projDbl();
33889 Point.prototype._extAdd = function _extAdd(p) {
33890 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33891 // #addition-add-
2008-hwcd-
3
33894 // A = (Y1 - X1) * (Y2 - X2)
33895 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33896 // B = (Y1 + X1) * (Y2 + X2)
33897 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33899 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33901 var d = this.z.redMul(p.z.redAdd(p.z));
33903 var e = b.redSub(a);
33905 var f = d.redSub(c);
33907 var g = d.redAdd(c);
33909 var h = b.redAdd(a);
33911 var nx = e.redMul(f);
33913 var ny = g.redMul(h);
33915 var nt = e.redMul(h);
33917 var nz = f.redMul(g);
33918 return this.curve.point(nx, ny, nz, nt);
33921 Point.prototype._projAdd = function _projAdd(p) {
33922 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33923 // #addition-add-
2008-bbjlp
33924 // #addition-add-
2007-bl
33928 var a = this.z.redMul(p.z);
33930 var b = a.redSqr();
33932 var c = this.x.redMul(p.x);
33934 var d = this.y.redMul(p.y);
33936 var e = this.curve.d.redMul(c).redMul(d);
33938 var f = b.redSub(e);
33940 var g = b.redAdd(e);
33941 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33942 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33943 var nx = a.redMul(f).redMul(tmp);
33946 if (this.curve.twisted) {
33947 // Y3 = A * G * (D - a * C)
33948 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33952 // Y3 = A * G * (D - C)
33953 ny = a.redMul(g).redMul(d.redSub(c));
33955 nz = this.curve._mulC(f).redMul(g);
33957 return this.curve.point(nx, ny, nz);
33960 Point.prototype.add = function add(p) {
33961 if (this.isInfinity())
33963 if (p.isInfinity())
33966 if (this.curve.extended)
33967 return this._extAdd(p);
33969 return this._projAdd(p);
33972 Point.prototype.mul = function mul(k) {
33973 if (this._hasDoubles(k))
33974 return this.curve._fixedNafMul(this, k);
33976 return this.curve._wnafMul(this, k);
33979 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33980 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33983 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33984 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33987 Point.prototype.normalize = function normalize() {
33991 // Normalize coordinates
33992 var zi = this.z.redInvm();
33993 this.x = this.x.redMul(zi);
33994 this.y = this.y.redMul(zi);
33996 this.t = this.t.redMul(zi);
33997 this.z = this.curve.one;
34002 Point.prototype.neg = function neg() {
34003 return this.curve.point(this.x.redNeg(),
34006 this.t && this.t.redNeg());
34009 Point.prototype.getX = function getX() {
34011 return this.x.fromRed();
34014 Point.prototype.getY = function getY() {
34016 return this.y.fromRed();
34019 Point.prototype.eq = function eq(other) {
34020 return this === other ||
34021 this.getX().cmp(other.getX()) ===
0 &&
34022 this.getY().cmp(other.getY()) ===
0;
34025 Point.prototype.eqXToP = function eqXToP(x) {
34026 var rx = x.toRed(this.curve.red).redMul(this.z);
34027 if (this.x.cmp(rx) ===
0)
34030 var xc = x.clone();
34031 var t = this.curve.redN.redMul(this.z);
34033 xc.iadd(this.curve.n);
34034 if (xc.cmp(this.curve.p)
>=
0)
34038 if (this.x.cmp(rx) ===
0)
34044 // Compatibility with BaseCurve
34045 Point.prototype.toP = Point.prototype.normalize;
34046 Point.prototype.mixedAdd = Point.prototype.add;
34048 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
34051 var curve = exports;
34053 curve.base = require('./base');
34054 curve.short = require('./short');
34055 curve.mont = require('./mont');
34056 curve.edwards = require('./edwards');
34058 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
34061 var curve = require('../curve');
34062 var BN = require('bn.js');
34063 var inherits = require('inherits');
34064 var Base = curve.base;
34066 var elliptic = require('../../elliptic');
34067 var utils = elliptic.utils;
34069 function MontCurve(conf) {
34070 Base.call(this, 'mont', conf);
34072 this.a = new BN(conf.a,
16).toRed(this.red);
34073 this.b = new BN(conf.b,
16).toRed(this.red);
34074 this.i4 = new BN(
4).toRed(this.red).redInvm();
34075 this.two = new BN(
2).toRed(this.red);
34076 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
34078 inherits(MontCurve, Base);
34079 module.exports = MontCurve;
34081 MontCurve.prototype.validate = function validate(point) {
34082 var x = point.normalize().x;
34083 var x2 = x.redSqr();
34084 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
34085 var y = rhs.redSqrt();
34087 return y.redSqr().cmp(rhs) ===
0;
34090 function Point(curve, x, z) {
34091 Base.BasePoint.call(this, curve, 'projective');
34092 if (x === null && z === null) {
34093 this.x = this.curve.one;
34094 this.z = this.curve.zero;
34096 this.x = new BN(x,
16);
34097 this.z = new BN(z,
16);
34099 this.x = this.x.toRed(this.curve.red);
34101 this.z = this.z.toRed(this.curve.red);
34104 inherits(Point, Base.BasePoint);
34106 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
34107 return this.point(utils.toArray(bytes, enc),
1);
34110 MontCurve.prototype.point = function point(x, z) {
34111 return new Point(this, x, z);
34114 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34115 return Point.fromJSON(this, obj);
34118 Point.prototype.precompute = function precompute() {
34122 Point.prototype._encode = function _encode() {
34123 return this.getX().toArray('be', this.curve.p.byteLength());
34126 Point.fromJSON = function fromJSON(curve, obj) {
34127 return new Point(curve, obj[
0], obj[
1] || curve.one);
34130 Point.prototype.inspect = function inspect() {
34131 if (this.isInfinity())
34132 return '
<EC Point Infinity
>';
34133 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34134 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34137 Point.prototype.isInfinity = function isInfinity() {
34138 // XXX This code assumes that zero is always zero in red
34139 return this.z.cmpn(
0) ===
0;
34142 Point.prototype.dbl = function dbl() {
34143 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34147 var a = this.x.redAdd(this.z);
34149 var aa = a.redSqr();
34151 var b = this.x.redSub(this.z);
34153 var bb = b.redSqr();
34155 var c = aa.redSub(bb);
34157 var nx = aa.redMul(bb);
34158 // Z3 = C * (BB + A24 * C)
34159 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34160 return this.curve.point(nx, nz);
34163 Point.prototype.add = function add() {
34164 throw new Error('Not supported on Montgomery curve');
34167 Point.prototype.diffAdd = function diffAdd(p, diff) {
34168 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34172 var a = this.x.redAdd(this.z);
34174 var b = this.x.redSub(this.z);
34176 var c = p.x.redAdd(p.z);
34178 var d = p.x.redSub(p.z);
34180 var da = d.redMul(a);
34182 var cb = c.redMul(b);
34183 // X5 = Z1 * (DA + CB)^
2
34184 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34185 // Z5 = X1 * (DA - CB)^
2
34186 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34187 return this.curve.point(nx, nz);
34190 Point.prototype.mul = function mul(k) {
34192 var a = this; // (N /
2) * Q + Q
34193 var b = this.curve.point(null, null); // (N /
2) * Q
34196 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34197 bits.push(t.andln(
1));
34199 for (var i = bits.length -
1; i
>=
0; i--) {
34200 if (bits[i] ===
0) {
34201 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34202 a = a.diffAdd(b, c);
34203 // N * Q =
2 * ((N /
2) * Q + Q))
34206 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34207 b = a.diffAdd(b, c);
34208 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34215 Point.prototype.mulAdd = function mulAdd() {
34216 throw new Error('Not supported on Montgomery curve');
34219 Point.prototype.jumlAdd = function jumlAdd() {
34220 throw new Error('Not supported on Montgomery curve');
34223 Point.prototype.eq = function eq(other) {
34224 return this.getX().cmp(other.getX()) ===
0;
34227 Point.prototype.normalize = function normalize() {
34228 this.x = this.x.redMul(this.z.redInvm());
34229 this.z = this.curve.one;
34233 Point.prototype.getX = function getX() {
34234 // Normalize coordinates
34237 return this.x.fromRed();
34240 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34243 var curve = require('../curve');
34244 var elliptic = require('../../elliptic');
34245 var BN = require('bn.js');
34246 var inherits = require('inherits');
34247 var Base = curve.base;
34249 var assert = elliptic.utils.assert;
34251 function ShortCurve(conf) {
34252 Base.call(this, 'short', conf);
34254 this.a = new BN(conf.a,
16).toRed(this.red);
34255 this.b = new BN(conf.b,
16).toRed(this.red);
34256 this.tinv = this.two.redInvm();
34258 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34259 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34261 // If the curve is endomorphic, precalculate beta and lambda
34262 this.endo = this._getEndomorphism(conf);
34263 this._endoWnafT1 = new Array(
4);
34264 this._endoWnafT2 = new Array(
4);
34266 inherits(ShortCurve, Base);
34267 module.exports = ShortCurve;
34269 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34270 // No efficient endomorphism
34271 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34274 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34278 beta = new BN(conf.beta,
16).toRed(this.red);
34280 var betas = this._getEndoRoots(this.p);
34281 // Choose the smallest beta
34282 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34283 beta = beta.toRed(this.red);
34286 lambda = new BN(conf.lambda,
16);
34288 // Choose the lambda that is matching selected beta
34289 var lambdas = this._getEndoRoots(this.n);
34290 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34291 lambda = lambdas[
0];
34293 lambda = lambdas[
1];
34294 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34298 // Get basis vectors, used for balanced length-two representation
34301 basis = conf.basis.map(function(vec) {
34303 a: new BN(vec.a,
16),
34304 b: new BN(vec.b,
16)
34308 basis = this._getEndoBasis(lambda);
34318 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34319 // Find roots of for x^
2 + x +
1 in F
34320 // Root = (-
1 +- Sqrt(-
3)) /
2
34322 var red = num === this.p ? this.red : BN.mont(num);
34323 var tinv = new BN(
2).toRed(red).redInvm();
34324 var ntinv = tinv.redNeg();
34326 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34328 var l1 = ntinv.redAdd(s).fromRed();
34329 var l2 = ntinv.redSub(s).fromRed();
34333 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34334 // aprxSqrt
>= sqrt(this.n)
34335 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34338 // Run EGCD, until r(L +
1) < aprxSqrt
34340 var v = this.n.clone();
34341 var x1 = new BN(
1);
34342 var y1 = new BN(
0);
34343 var x2 = new BN(
0);
34344 var y2 = new BN(
1);
34346 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34360 while (u.cmpn(
0) !==
0) {
34362 r = v.sub(q.mul(u));
34363 x = x2.sub(q.mul(x1));
34364 var y = y2.sub(q.mul(y1));
34366 if (!a1 && r.cmp(aprxSqrt) <
0) {
34371 } else if (a1 && ++i ===
2) {
34386 var len1 = a1.sqr().add(b1.sqr());
34387 var len2 = a2.sqr().add(b2.sqr());
34388 if (len2.cmp(len1)
>=
0) {
34409 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34410 var basis = this.endo.basis;
34414 var c1 = v2.b.mul(k).divRound(this.n);
34415 var c2 = v1.b.neg().mul(k).divRound(this.n);
34417 var p1 = c1.mul(v1.a);
34418 var p2 = c2.mul(v2.a);
34419 var q1 = c1.mul(v1.b);
34420 var q2 = c2.mul(v2.b);
34422 // Calculate answer
34423 var k1 = k.sub(p1).sub(p2);
34424 var k2 = q1.add(q2).neg();
34425 return { k1: k1, k2: k2 };
34428 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34431 x = x.toRed(this.red);
34433 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34434 var y = y2.redSqrt();
34435 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34436 throw new Error('invalid point');
34438 // XXX Is there any way to tell if the number is odd without converting it
34439 // to non-red form?
34440 var isOdd = y.fromRed().isOdd();
34441 if (odd && !isOdd || !odd && isOdd)
34444 return this.point(x, y);
34447 ShortCurve.prototype.validate = function validate(point) {
34454 var ax = this.a.redMul(x);
34455 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34456 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34459 ShortCurve.prototype._endoWnafMulAdd =
34460 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34461 var npoints = this._endoWnafT1;
34462 var ncoeffs = this._endoWnafT2;
34463 for (var i =
0; i < points.length; i++) {
34464 var split = this._endoSplit(coeffs[i]);
34466 var beta = p._getBeta();
34468 if (split.k1.negative) {
34472 if (split.k2.negative) {
34474 beta = beta.neg(true);
34477 npoints[i *
2] = p;
34478 npoints[i *
2 +
1] = beta;
34479 ncoeffs[i *
2] = split.k1;
34480 ncoeffs[i *
2 +
1] = split.k2;
34482 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34484 // Clean-up references to points and coefficients
34485 for (var j =
0; j < i *
2; j++) {
34492 function Point(curve, x, y, isRed) {
34493 Base.BasePoint.call(this, curve, 'affine');
34494 if (x === null && y === null) {
34499 this.x = new BN(x,
16);
34500 this.y = new BN(y,
16);
34501 // Force redgomery representation when loading from JSON
34503 this.x.forceRed(this.curve.red);
34504 this.y.forceRed(this.curve.red);
34507 this.x = this.x.toRed(this.curve.red);
34509 this.y = this.y.toRed(this.curve.red);
34513 inherits(Point, Base.BasePoint);
34515 ShortCurve.prototype.point = function point(x, y, isRed) {
34516 return new Point(this, x, y, isRed);
34519 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34520 return Point.fromJSON(this, obj, red);
34523 Point.prototype._getBeta = function _getBeta() {
34524 if (!this.curve.endo)
34527 var pre = this.precomputed;
34528 if (pre && pre.beta)
34531 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34533 var curve = this.curve;
34534 var endoMul = function(p) {
34535 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34538 beta.precomputed = {
34542 points: pre.naf.points.map(endoMul)
34544 doubles: pre.doubles && {
34545 step: pre.doubles.step,
34546 points: pre.doubles.points.map(endoMul)
34553 Point.prototype.toJSON = function toJSON() {
34554 if (!this.precomputed)
34555 return [ this.x, this.y ];
34557 return [ this.x, this.y, this.precomputed && {
34558 doubles: this.precomputed.doubles && {
34559 step: this.precomputed.doubles.step,
34560 points: this.precomputed.doubles.points.slice(
1)
34562 naf: this.precomputed.naf && {
34563 wnd: this.precomputed.naf.wnd,
34564 points: this.precomputed.naf.points.slice(
1)
34569 Point.fromJSON = function fromJSON(curve, obj, red) {
34570 if (typeof obj === 'string')
34571 obj = JSON.parse(obj);
34572 var res = curve.point(obj[
0], obj[
1], red);
34576 function obj2point(obj) {
34577 return curve.point(obj[
0], obj[
1], red);
34581 res.precomputed = {
34583 doubles: pre.doubles && {
34584 step: pre.doubles.step,
34585 points: [ res ].concat(pre.doubles.points.map(obj2point))
34589 points: [ res ].concat(pre.naf.points.map(obj2point))
34595 Point.prototype.inspect = function inspect() {
34596 if (this.isInfinity())
34597 return '
<EC Point Infinity
>';
34598 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34599 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34602 Point.prototype.isInfinity = function isInfinity() {
34606 Point.prototype.add = function add(p) {
34620 if (this.neg().eq(p))
34621 return this.curve.point(null, null);
34624 if (this.x.cmp(p.x) ===
0)
34625 return this.curve.point(null, null);
34627 var c = this.y.redSub(p.y);
34628 if (c.cmpn(
0) !==
0)
34629 c = c.redMul(this.x.redSub(p.x).redInvm());
34630 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34631 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34632 return this.curve.point(nx, ny);
34635 Point.prototype.dbl = function dbl() {
34640 var ys1 = this.y.redAdd(this.y);
34641 if (ys1.cmpn(
0) ===
0)
34642 return this.curve.point(null, null);
34644 var a = this.curve.a;
34646 var x2 = this.x.redSqr();
34647 var dyinv = ys1.redInvm();
34648 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34650 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34651 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34652 return this.curve.point(nx, ny);
34655 Point.prototype.getX = function getX() {
34656 return this.x.fromRed();
34659 Point.prototype.getY = function getY() {
34660 return this.y.fromRed();
34663 Point.prototype.mul = function mul(k) {
34666 if (this._hasDoubles(k))
34667 return this.curve._fixedNafMul(this, k);
34668 else if (this.curve.endo)
34669 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34671 return this.curve._wnafMul(this, k);
34674 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34675 var points = [ this, p2 ];
34676 var coeffs = [ k1, k2 ];
34677 if (this.curve.endo)
34678 return this.curve._endoWnafMulAdd(points, coeffs);
34680 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34683 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34684 var points = [ this, p2 ];
34685 var coeffs = [ k1, k2 ];
34686 if (this.curve.endo)
34687 return this.curve._endoWnafMulAdd(points, coeffs, true);
34689 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34692 Point.prototype.eq = function eq(p) {
34693 return this === p ||
34694 this.inf === p.inf &&
34695 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34698 Point.prototype.neg = function neg(_precompute) {
34702 var res = this.curve.point(this.x, this.y.redNeg());
34703 if (_precompute && this.precomputed) {
34704 var pre = this.precomputed;
34705 var negate = function(p) {
34708 res.precomputed = {
34711 points: pre.naf.points.map(negate)
34713 doubles: pre.doubles && {
34714 step: pre.doubles.step,
34715 points: pre.doubles.points.map(negate)
34722 Point.prototype.toJ = function toJ() {
34724 return this.curve.jpoint(null, null, null);
34726 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34730 function JPoint(curve, x, y, z) {
34731 Base.BasePoint.call(this, curve, 'jacobian');
34732 if (x === null && y === null && z === null) {
34733 this.x = this.curve.one;
34734 this.y = this.curve.one;
34735 this.z = new BN(
0);
34737 this.x = new BN(x,
16);
34738 this.y = new BN(y,
16);
34739 this.z = new BN(z,
16);
34742 this.x = this.x.toRed(this.curve.red);
34744 this.y = this.y.toRed(this.curve.red);
34746 this.z = this.z.toRed(this.curve.red);
34748 this.zOne = this.z === this.curve.one;
34750 inherits(JPoint, Base.BasePoint);
34752 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34753 return new JPoint(this, x, y, z);
34756 JPoint.prototype.toP = function toP() {
34757 if (this.isInfinity())
34758 return this.curve.point(null, null);
34760 var zinv = this.z.redInvm();
34761 var zinv2 = zinv.redSqr();
34762 var ax = this.x.redMul(zinv2);
34763 var ay = this.y.redMul(zinv2).redMul(zinv);
34765 return this.curve.point(ax, ay);
34768 JPoint.prototype.neg = function neg() {
34769 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34772 JPoint.prototype.add = function add(p) {
34774 if (this.isInfinity())
34778 if (p.isInfinity())
34782 var pz2 = p.z.redSqr();
34783 var z2 = this.z.redSqr();
34784 var u1 = this.x.redMul(pz2);
34785 var u2 = p.x.redMul(z2);
34786 var s1 = this.y.redMul(pz2.redMul(p.z));
34787 var s2 = p.y.redMul(z2.redMul(this.z));
34789 var h = u1.redSub(u2);
34790 var r = s1.redSub(s2);
34791 if (h.cmpn(
0) ===
0) {
34792 if (r.cmpn(
0) !==
0)
34793 return this.curve.jpoint(null, null, null);
34798 var h2 = h.redSqr();
34799 var h3 = h2.redMul(h);
34800 var v = u1.redMul(h2);
34802 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34803 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34804 var nz = this.z.redMul(p.z).redMul(h);
34806 return this.curve.jpoint(nx, ny, nz);
34809 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34811 if (this.isInfinity())
34815 if (p.isInfinity())
34819 var z2 = this.z.redSqr();
34821 var u2 = p.x.redMul(z2);
34823 var s2 = p.y.redMul(z2).redMul(this.z);
34825 var h = u1.redSub(u2);
34826 var r = s1.redSub(s2);
34827 if (h.cmpn(
0) ===
0) {
34828 if (r.cmpn(
0) !==
0)
34829 return this.curve.jpoint(null, null, null);
34834 var h2 = h.redSqr();
34835 var h3 = h2.redMul(h);
34836 var v = u1.redMul(h2);
34838 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34839 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34840 var nz = this.z.redMul(h);
34842 return this.curve.jpoint(nx, ny, nz);
34845 JPoint.prototype.dblp = function dblp(pow) {
34848 if (this.isInfinity())
34853 if (this.curve.zeroA || this.curve.threeA) {
34855 for (var i =
0; i < pow; i++)
34860 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34861 // N =
1 =
> 6M +
6S +
9A
34862 var a = this.curve.a;
34863 var tinv = this.curve.tinv;
34868 var jz4 = jz.redSqr().redSqr();
34871 var jyd = jy.redAdd(jy);
34872 for (var i =
0; i < pow; i++) {
34873 var jx2 = jx.redSqr();
34874 var jyd2 = jyd.redSqr();
34875 var jyd4 = jyd2.redSqr();
34876 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34878 var t1 = jx.redMul(jyd2);
34879 var nx = c.redSqr().redISub(t1.redAdd(t1));
34880 var t2 = t1.redISub(nx);
34881 var dny = c.redMul(t2);
34882 dny = dny.redIAdd(dny).redISub(jyd4);
34883 var nz = jyd.redMul(jz);
34885 jz4 = jz4.redMul(jyd4);
34892 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34895 JPoint.prototype.dbl = function dbl() {
34896 if (this.isInfinity())
34899 if (this.curve.zeroA)
34900 return this._zeroDbl();
34901 else if (this.curve.threeA)
34902 return this._threeDbl();
34904 return this._dbl();
34907 JPoint.prototype._zeroDbl = function _zeroDbl() {
34913 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34914 // #doubling-mdbl-
2007-bl
34918 var xx = this.x.redSqr();
34920 var yy = this.y.redSqr();
34922 var yyyy = yy.redSqr();
34923 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34924 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34926 // M =
3 * XX + a; a =
0
34927 var m = xx.redAdd(xx).redIAdd(xx);
34929 var t = m.redSqr().redISub(s).redISub(s);
34932 var yyyy8 = yyyy.redIAdd(yyyy);
34933 yyyy8 = yyyy8.redIAdd(yyyy8);
34934 yyyy8 = yyyy8.redIAdd(yyyy8);
34938 // Y3 = M * (S - T) -
8 * YYYY
34939 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34941 nz = this.y.redAdd(this.y);
34943 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34944 // #doubling-dbl-
2009-l
34948 var a = this.x.redSqr();
34950 var b = this.y.redSqr();
34952 var c = b.redSqr();
34953 // D =
2 * ((X1 + B)^
2 - A - C)
34954 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34957 var e = a.redAdd(a).redIAdd(a);
34959 var f = e.redSqr();
34962 var c8 = c.redIAdd(c);
34963 c8 = c8.redIAdd(c8);
34964 c8 = c8.redIAdd(c8);
34967 nx = f.redISub(d).redISub(d);
34968 // Y3 = E * (D - X3) -
8 * C
34969 ny = e.redMul(d.redISub(nx)).redISub(c8);
34970 // Z3 =
2 * Y1 * Z1
34971 nz = this.y.redMul(this.z);
34972 nz = nz.redIAdd(nz);
34975 return this.curve.jpoint(nx, ny, nz);
34978 JPoint.prototype._threeDbl = function _threeDbl() {
34984 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34985 // #doubling-mdbl-
2007-bl
34989 var xx = this.x.redSqr();
34991 var yy = this.y.redSqr();
34993 var yyyy = yy.redSqr();
34994 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34995 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34998 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
35000 var t = m.redSqr().redISub(s).redISub(s);
35003 // Y3 = M * (S - T) -
8 * YYYY
35004 var yyyy8 = yyyy.redIAdd(yyyy);
35005 yyyy8 = yyyy8.redIAdd(yyyy8);
35006 yyyy8 = yyyy8.redIAdd(yyyy8);
35007 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
35009 nz = this.y.redAdd(this.y);
35011 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
35015 var delta = this.z.redSqr();
35017 var gamma = this.y.redSqr();
35018 // beta = X1 * gamma
35019 var beta = this.x.redMul(gamma);
35020 // alpha =
3 * (X1 - delta) * (X1 + delta)
35021 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
35022 alpha = alpha.redAdd(alpha).redIAdd(alpha);
35023 // X3 = alpha^
2 -
8 * beta
35024 var beta4 = beta.redIAdd(beta);
35025 beta4 = beta4.redIAdd(beta4);
35026 var beta8 = beta4.redAdd(beta4);
35027 nx = alpha.redSqr().redISub(beta8);
35028 // Z3 = (Y1 + Z1)^
2 - gamma - delta
35029 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
35030 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
35031 var ggamma8 = gamma.redSqr();
35032 ggamma8 = ggamma8.redIAdd(ggamma8);
35033 ggamma8 = ggamma8.redIAdd(ggamma8);
35034 ggamma8 = ggamma8.redIAdd(ggamma8);
35035 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
35038 return this.curve.jpoint(nx, ny, nz);
35041 JPoint.prototype._dbl = function _dbl() {
35042 var a = this.curve.a;
35048 var jz4 = jz.redSqr().redSqr();
35050 var jx2 = jx.redSqr();
35051 var jy2 = jy.redSqr();
35053 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
35055 var jxd4 = jx.redAdd(jx);
35056 jxd4 = jxd4.redIAdd(jxd4);
35057 var t1 = jxd4.redMul(jy2);
35058 var nx = c.redSqr().redISub(t1.redAdd(t1));
35059 var t2 = t1.redISub(nx);
35061 var jyd8 = jy2.redSqr();
35062 jyd8 = jyd8.redIAdd(jyd8);
35063 jyd8 = jyd8.redIAdd(jyd8);
35064 jyd8 = jyd8.redIAdd(jyd8);
35065 var ny = c.redMul(t2).redISub(jyd8);
35066 var nz = jy.redAdd(jy).redMul(jz);
35068 return this.curve.jpoint(nx, ny, nz);
35071 JPoint.prototype.trpl = function trpl() {
35072 if (!this.curve.zeroA)
35073 return this.dbl().add(this);
35075 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
35079 var xx = this.x.redSqr();
35081 var yy = this.y.redSqr();
35083 var zz = this.z.redSqr();
35085 var yyyy = yy.redSqr();
35086 // M =
3 * XX + a * ZZ2; a =
0
35087 var m = xx.redAdd(xx).redIAdd(xx);
35089 var mm = m.redSqr();
35090 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
35091 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
35093 e = e.redAdd(e).redIAdd(e);
35096 var ee = e.redSqr();
35098 var t = yyyy.redIAdd(yyyy);
35102 // U = (M + E)^
2 - MM - EE - T
35103 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
35104 // X3 =
4 * (X1 * EE -
4 * YY * U)
35105 var yyu4 = yy.redMul(u);
35106 yyu4 = yyu4.redIAdd(yyu4);
35107 yyu4 = yyu4.redIAdd(yyu4);
35108 var nx = this.x.redMul(ee).redISub(yyu4);
35109 nx = nx.redIAdd(nx);
35110 nx = nx.redIAdd(nx);
35111 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
35112 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
35113 ny = ny.redIAdd(ny);
35114 ny = ny.redIAdd(ny);
35115 ny = ny.redIAdd(ny);
35116 // Z3 = (Z1 + E)^
2 - ZZ - EE
35117 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35119 return this.curve.jpoint(nx, ny, nz);
35122 JPoint.prototype.mul = function mul(k, kbase) {
35123 k = new BN(k, kbase);
35125 return this.curve._wnafMul(this, k);
35128 JPoint.prototype.eq = function eq(p) {
35129 if (p.type === 'affine')
35130 return this.eq(p.toJ());
35135 // x1 * z2^
2 == x2 * z1^
2
35136 var z2 = this.z.redSqr();
35137 var pz2 = p.z.redSqr();
35138 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35141 // y1 * z2^
3 == y2 * z1^
3
35142 var z3 = z2.redMul(this.z);
35143 var pz3 = pz2.redMul(p.z);
35144 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35147 JPoint.prototype.eqXToP = function eqXToP(x) {
35148 var zs = this.z.redSqr();
35149 var rx = x.toRed(this.curve.red).redMul(zs);
35150 if (this.x.cmp(rx) ===
0)
35153 var xc = x.clone();
35154 var t = this.curve.redN.redMul(zs);
35156 xc.iadd(this.curve.n);
35157 if (xc.cmp(this.curve.p)
>=
0)
35161 if (this.x.cmp(rx) ===
0)
35167 JPoint.prototype.inspect = function inspect() {
35168 if (this.isInfinity())
35169 return '
<EC JPoint Infinity
>';
35170 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35171 ' y: ' + this.y.toString(
16,
2) +
35172 ' z: ' + this.z.toString(
16,
2) + '
>';
35175 JPoint.prototype.isInfinity = function isInfinity() {
35176 // XXX This code assumes that zero is always zero in red
35177 return this.z.cmpn(
0) ===
0;
35180 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35183 var curves = exports;
35185 var hash = require('hash.js');
35186 var elliptic = require('../elliptic');
35188 var assert = elliptic.utils.assert;
35190 function PresetCurve(options) {
35191 if (options.type === 'short')
35192 this.curve = new elliptic.curve.short(options);
35193 else if (options.type === 'edwards')
35194 this.curve = new elliptic.curve.edwards(options);
35196 this.curve = new elliptic.curve.mont(options);
35197 this.g = this.curve.g;
35198 this.n = this.curve.n;
35199 this.hash = options.hash;
35201 assert(this.g.validate(), 'Invalid curve');
35202 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35204 curves.PresetCurve = PresetCurve;
35206 function defineCurve(name, options) {
35207 Object.defineProperty(curves, name, {
35208 configurable: true,
35211 var curve = new PresetCurve(options);
35212 Object.defineProperty(curves, name, {
35213 configurable: true,
35222 defineCurve('p192', {
35225 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35226 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35227 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35228 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35232 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35233 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35237 defineCurve('p224', {
35240 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35241 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35242 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35243 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35247 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35248 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35252 defineCurve('p256', {
35255 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35256 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35257 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35258 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35262 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35263 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35267 defineCurve('p384', {
35270 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35271 'fffffffe ffffffff
00000000 00000000 ffffffff',
35272 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35273 'fffffffe ffffffff
00000000 00000000 fffffffc',
35274 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35275 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35276 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35277 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35281 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35282 '
5502f25d bf55296c
3a545e38
72760ab7',
35283 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35284 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35288 defineCurve('p521', {
35291 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35292 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35293 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35294 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35295 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35296 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35297 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35298 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35299 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35300 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35301 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35302 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35306 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35307 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35308 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35309 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35310 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35311 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35315 defineCurve('curve25519', {
35318 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35321 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35329 defineCurve('ed25519', {
35332 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35335 // -
121665 * (
121666^(-
1)) (mod P)
35336 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35337 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35341 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35344 '
6666666666666666666666666666666666666666666666666666666666666658'
35350 pre = require('./precomputed/secp256k1');
35355 defineCurve('secp256k1', {
35358 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35361 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35365 // Precomputed endomorphism
35366 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35367 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35370 a: '
3086d221a7d46bcde86c90e49284eb15',
35371 b: '-e4437ed6010e88286f547fa90abfe4c3'
35374 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35375 b: '
3086d221a7d46bcde86c90e49284eb15'
35381 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35382 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35387 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35390 var BN = require('bn.js');
35391 var elliptic = require('../../elliptic');
35392 var utils = elliptic.utils;
35393 var assert = utils.assert;
35395 var KeyPair = require('./key');
35396 var Signature = require('./signature');
35398 function EC(options) {
35399 if (!(this instanceof EC))
35400 return new EC(options);
35402 // Shortcut `elliptic.ec(curve-name)`
35403 if (typeof options === 'string') {
35404 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35406 options = elliptic.curves[options];
35409 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35410 if (options instanceof elliptic.curves.PresetCurve)
35411 options = { curve: options };
35413 this.curve = options.curve.curve;
35414 this.n = this.curve.n;
35415 this.nh = this.n.ushrn(
1);
35416 this.g = this.curve.g;
35419 this.g = options.curve.g;
35420 this.g.precompute(options.curve.n.bitLength() +
1);
35422 // Hash for function for DRBG
35423 this.hash = options.hash || options.curve.hash;
35425 module.exports = EC;
35427 EC.prototype.keyPair = function keyPair(options) {
35428 return new KeyPair(this, options);
35431 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35432 return KeyPair.fromPrivate(this, priv, enc);
35435 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35436 return KeyPair.fromPublic(this, pub, enc);
35439 EC.prototype.genKeyPair = function genKeyPair(options) {
35443 // Instantiate Hmac_DRBG
35444 var drbg = new elliptic.hmacDRBG({
35446 pers: options.pers,
35447 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35448 nonce: this.n.toArray()
35451 var bytes = this.n.byteLength();
35452 var ns2 = this.n.sub(new BN(
2));
35454 var priv = new BN(drbg.generate(bytes));
35455 if (priv.cmp(ns2)
> 0)
35459 return this.keyFromPrivate(priv);
35463 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35464 var delta = msg.byteLength() *
8 - this.n.bitLength();
35466 msg = msg.ushrn(delta);
35467 if (!truncOnly && msg.cmp(this.n)
>=
0)
35468 return msg.sub(this.n);
35473 EC.prototype.sign = function sign(msg, key, enc, options) {
35474 if (typeof enc === 'object') {
35481 key = this.keyFromPrivate(key, enc);
35482 msg = this._truncateToN(new BN(msg,
16));
35484 // Zero-extend key to provide enough entropy
35485 var bytes = this.n.byteLength();
35486 var bkey = key.getPrivate().toArray('be', bytes);
35488 // Zero-extend nonce to have the same byte size as N
35489 var nonce = msg.toArray('be', bytes);
35491 // Instantiate Hmac_DRBG
35492 var drbg = new elliptic.hmacDRBG({
35496 pers: options.pers,
35497 persEnc: options.persEnc
35500 // Number of bytes to generate
35501 var ns1 = this.n.sub(new BN(
1));
35503 for (var iter =
0; true; iter++) {
35504 var k = options.k ?
35506 new BN(drbg.generate(this.n.byteLength()));
35507 k = this._truncateToN(k, true);
35508 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35511 var kp = this.g.mul(k);
35512 if (kp.isInfinity())
35515 var kpX = kp.getX();
35516 var r = kpX.umod(this.n);
35517 if (r.cmpn(
0) ===
0)
35520 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35521 s = s.umod(this.n);
35522 if (s.cmpn(
0) ===
0)
35525 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35526 (kpX.cmp(r) !==
0 ?
2 :
0);
35528 // Use complement of `s`, if it is
> `n /
2`
35529 if (options.canonical && s.cmp(this.nh)
> 0) {
35531 recoveryParam ^=
1;
35534 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35538 EC.prototype.verify = function verify(msg, signature, key, enc) {
35539 msg = this._truncateToN(new BN(msg,
16));
35540 key = this.keyFromPublic(key, enc);
35541 signature = new Signature(signature, 'hex');
35543 // Perform primitive values validation
35544 var r = signature.r;
35545 var s = signature.s;
35546 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35548 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35551 // Validate signature
35552 var sinv = s.invm(this.n);
35553 var u1 = sinv.mul(msg).umod(this.n);
35554 var u2 = sinv.mul(r).umod(this.n);
35556 if (!this.curve._maxwellTrick) {
35557 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35558 if (p.isInfinity())
35561 return p.getX().umod(this.n).cmp(r) ===
0;
35564 // NOTE: Greg Maxwell's trick, inspired by:
35565 // https://git.io/vad3K
35567 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35568 if (p.isInfinity())
35571 // Compare `p.x` of Jacobian point with `r`,
35572 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35573 // inverse of `p.z^
2`
35574 return p.eqXToP(r);
35577 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35578 assert((
3 & j) === j, 'The recovery param is more than two bits');
35579 signature = new Signature(signature, enc);
35582 var e = new BN(msg);
35583 var r = signature.r;
35584 var s = signature.s;
35586 // A set LSB signifies that the y-coordinate is odd
35587 var isYOdd = j &
1;
35588 var isSecondKey = j
>> 1;
35589 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35590 throw new Error('Unable to find sencond key candinate');
35592 //
1.1. Let x = r + jn.
35594 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35596 r = this.curve.pointFromX(r, isYOdd);
35598 var rInv = signature.r.invm(n);
35599 var s1 = n.sub(e).mul(rInv).umod(n);
35600 var s2 = s.mul(rInv).umod(n);
35602 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35603 // Q = r^-
1 (sR + -eG)
35604 return this.g.mulAdd(s1, r, s2);
35607 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35608 signature = new Signature(signature, enc);
35609 if (signature.recoveryParam !== null)
35610 return signature.recoveryParam;
35612 for (var i =
0; i <
4; i++) {
35615 Qprime = this.recoverPubKey(e, signature, i);
35623 throw new Error('Unable to find valid recovery factor');
35626 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35629 var BN = require('bn.js');
35630 var elliptic = require('../../elliptic');
35631 var utils = elliptic.utils;
35632 var assert = utils.assert;
35634 function KeyPair(ec, options) {
35639 // KeyPair(ec, { priv: ..., pub: ... })
35641 this._importPrivate(options.priv, options.privEnc);
35643 this._importPublic(options.pub, options.pubEnc);
35645 module.exports = KeyPair;
35647 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35648 if (pub instanceof KeyPair)
35651 return new KeyPair(ec, {
35657 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35658 if (priv instanceof KeyPair)
35661 return new KeyPair(ec, {
35667 KeyPair.prototype.validate = function validate() {
35668 var pub = this.getPublic();
35670 if (pub.isInfinity())
35671 return { result: false, reason: 'Invalid public key' };
35672 if (!pub.validate())
35673 return { result: false, reason: 'Public key is not a point' };
35674 if (!pub.mul(this.ec.curve.n).isInfinity())
35675 return { result: false, reason: 'Public key * N != O' };
35677 return { result: true, reason: null };
35680 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35681 // compact is optional argument
35682 if (typeof compact === 'string') {
35688 this.pub = this.ec.g.mul(this.priv);
35693 return this.pub.encode(enc, compact);
35696 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35698 return this.priv.toString(
16,
2);
35703 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35704 this.priv = new BN(key, enc ||
16);
35706 // Ensure that the priv won't be bigger than n, otherwise we may fail
35707 // in fixed multiplication method
35708 this.priv = this.priv.umod(this.ec.curve.n);
35711 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35712 if (key.x || key.y) {
35713 // Montgomery points only have an `x` coordinate.
35714 // Weierstrass/Edwards points on the other hand have both `x` and
35715 // `y` coordinates.
35716 if (this.ec.curve.type === 'mont') {
35717 assert(key.x, 'Need x coordinate');
35718 } else if (this.ec.curve.type === 'short' ||
35719 this.ec.curve.type === 'edwards') {
35720 assert(key.x && key.y, 'Need both x and y coordinate');
35722 this.pub = this.ec.curve.point(key.x, key.y);
35725 this.pub = this.ec.curve.decodePoint(key, enc);
35729 KeyPair.prototype.derive = function derive(pub) {
35730 return pub.mul(this.priv).getX();
35734 KeyPair.prototype.sign = function sign(msg, enc, options) {
35735 return this.ec.sign(msg, this, enc, options);
35738 KeyPair.prototype.verify = function verify(msg, signature) {
35739 return this.ec.verify(msg, signature, this);
35742 KeyPair.prototype.inspect = function inspect() {
35743 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35744 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35747 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35750 var BN = require('bn.js');
35752 var elliptic = require('../../elliptic');
35753 var utils = elliptic.utils;
35754 var assert = utils.assert;
35756 function Signature(options, enc) {
35757 if (options instanceof Signature)
35760 if (this._importDER(options, enc))
35763 assert(options.r && options.s, 'Signature without r or s');
35764 this.r = new BN(options.r,
16);
35765 this.s = new BN(options.s,
16);
35766 if (options.recoveryParam === undefined)
35767 this.recoveryParam = null;
35769 this.recoveryParam = options.recoveryParam;
35771 module.exports = Signature;
35773 function Position() {
35777 function getLength(buf, p) {
35778 var initial = buf[p.place++];
35779 if (!(initial &
0x80)) {
35782 var octetLen = initial &
0xf;
35784 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35792 function rmPadding(buf) {
35794 var len = buf.length -
1;
35795 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35801 return buf.slice(i);
35804 Signature.prototype._importDER = function _importDER(data, enc) {
35805 data = utils.toArray(data, enc);
35806 var p = new Position();
35807 if (data[p.place++] !==
0x30) {
35810 var len = getLength(data, p);
35811 if ((len + p.place) !== data.length) {
35814 if (data[p.place++] !==
0x02) {
35817 var rlen = getLength(data, p);
35818 var r = data.slice(p.place, rlen + p.place);
35820 if (data[p.place++] !==
0x02) {
35823 var slen = getLength(data, p);
35824 if (data.length !== slen + p.place) {
35827 var s = data.slice(p.place, slen + p.place);
35828 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35831 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35835 this.r = new BN(r);
35836 this.s = new BN(s);
35837 this.recoveryParam = null;
35842 function constructLength(arr, len) {
35847 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35848 arr.push(octets |
0x80);
35850 arr.push((len
>>> (octets <<
3)) &
0xff);
35855 Signature.prototype.toDER = function toDER(enc) {
35856 var r = this.r.toArray();
35857 var s = this.s.toArray();
35861 r = [
0 ].concat(r);
35864 s = [
0 ].concat(s);
35869 while (!s[
0] && !(s[
1] &
0x80)) {
35872 var arr = [
0x02 ];
35873 constructLength(arr, r.length);
35874 arr = arr.concat(r);
35876 constructLength(arr, s.length);
35877 var backHalf = arr.concat(s);
35878 var res = [
0x30 ];
35879 constructLength(res, backHalf.length);
35880 res = res.concat(backHalf);
35881 return utils.encode(res, enc);
35884 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35887 var hash = require('hash.js');
35888 var elliptic = require('../../elliptic');
35889 var utils = elliptic.utils;
35890 var assert = utils.assert;
35891 var parseBytes = utils.parseBytes;
35892 var KeyPair = require('./key');
35893 var Signature = require('./signature');
35895 function EDDSA(curve) {
35896 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35898 if (!(this instanceof EDDSA))
35899 return new EDDSA(curve);
35901 var curve = elliptic.curves[curve].curve;
35902 this.curve = curve;
35904 this.g.precompute(curve.n.bitLength() +
1);
35906 this.pointClass = curve.point().constructor;
35907 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35908 this.hash = hash.sha512;
35911 module.exports = EDDSA;
35914 * @param {Array|String} message - message bytes
35915 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35916 * @returns {Signature} - signature
35918 EDDSA.prototype.sign = function sign(message, secret) {
35919 message = parseBytes(message);
35920 var key = this.keyFromSecret(secret);
35921 var r = this.hashInt(key.messagePrefix(), message);
35922 var R = this.g.mul(r);
35923 var Rencoded = this.encodePoint(R);
35924 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35926 var S = r.add(s_).umod(this.curve.n);
35927 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35931 * @param {Array} message - message bytes
35932 * @param {Array|String|Signature} sig - sig bytes
35933 * @param {Array|String|Point|KeyPair} pub - public key
35934 * @returns {Boolean} - true if public key matches sig of message
35936 EDDSA.prototype.verify = function verify(message, sig, pub) {
35937 message = parseBytes(message);
35938 sig = this.makeSignature(sig);
35939 var key = this.keyFromPublic(pub);
35940 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35941 var SG = this.g.mul(sig.S());
35942 var RplusAh = sig.R().add(key.pub().mul(h));
35943 return RplusAh.eq(SG);
35946 EDDSA.prototype.hashInt = function hashInt() {
35947 var hash = this.hash();
35948 for (var i =
0; i < arguments.length; i++)
35949 hash.update(arguments[i]);
35950 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35953 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35954 return KeyPair.fromPublic(this, pub);
35957 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35958 return KeyPair.fromSecret(this, secret);
35961 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35962 if (sig instanceof Signature)
35964 return new Signature(this, sig);
35968 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35970 * EDDSA defines methods for encoding and decoding points and integers. These are
35971 * helper convenience methods, that pass along to utility functions implied
35975 EDDSA.prototype.encodePoint = function encodePoint(point) {
35976 var enc = point.getY().toArray('le', this.encodingLength);
35977 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35981 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35982 bytes = utils.parseBytes(bytes);
35984 var lastIx = bytes.length -
1;
35985 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35986 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35988 var y = utils.intFromLE(normed);
35989 return this.curve.pointFromY(y, xIsOdd);
35992 EDDSA.prototype.encodeInt = function encodeInt(num) {
35993 return num.toArray('le', this.encodingLength);
35996 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35997 return utils.intFromLE(bytes);
36000 EDDSA.prototype.isPoint = function isPoint(val) {
36001 return val instanceof this.pointClass;
36004 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
36007 var elliptic = require('../../elliptic');
36008 var utils = elliptic.utils;
36009 var assert = utils.assert;
36010 var parseBytes = utils.parseBytes;
36011 var cachedProperty = utils.cachedProperty;
36014 * @param {EDDSA} eddsa - instance
36015 * @param {Object} params - public/private key parameters
36017 * @param {Array
<Byte>} [params.secret] - secret seed bytes
36018 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
36019 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
36022 function KeyPair(eddsa, params) {
36023 this.eddsa = eddsa;
36024 this._secret = parseBytes(params.secret);
36025 if (eddsa.isPoint(params.pub))
36026 this._pub = params.pub;
36028 this._pubBytes = parseBytes(params.pub);
36031 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
36032 if (pub instanceof KeyPair)
36034 return new KeyPair(eddsa, { pub: pub });
36037 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
36038 if (secret instanceof KeyPair)
36040 return new KeyPair(eddsa, { secret: secret });
36043 KeyPair.prototype.secret = function secret() {
36044 return this._secret;
36047 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
36048 return this.eddsa.encodePoint(this.pub());
36051 cachedProperty(KeyPair, 'pub', function pub() {
36052 if (this._pubBytes)
36053 return this.eddsa.decodePoint(this._pubBytes);
36054 return this.eddsa.g.mul(this.priv());
36057 cachedProperty(KeyPair, 'privBytes', function privBytes() {
36058 var eddsa = this.eddsa;
36059 var hash = this.hash();
36060 var lastIx = eddsa.encodingLength -
1;
36062 var a = hash.slice(
0, eddsa.encodingLength);
36070 cachedProperty(KeyPair, 'priv', function priv() {
36071 return this.eddsa.decodeInt(this.privBytes());
36074 cachedProperty(KeyPair, 'hash', function hash() {
36075 return this.eddsa.hash().update(this.secret()).digest();
36078 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
36079 return this.hash().slice(this.eddsa.encodingLength);
36082 KeyPair.prototype.sign = function sign(message) {
36083 assert(this._secret, 'KeyPair can only verify');
36084 return this.eddsa.sign(message, this);
36087 KeyPair.prototype.verify = function verify(message, sig) {
36088 return this.eddsa.verify(message, sig, this);
36091 KeyPair.prototype.getSecret = function getSecret(enc) {
36092 assert(this._secret, 'KeyPair is public only');
36093 return utils.encode(this.secret(), enc);
36096 KeyPair.prototype.getPublic = function getPublic(enc) {
36097 return utils.encode(this.pubBytes(), enc);
36100 module.exports = KeyPair;
36102 },{"../../elliptic":
39}],
51:[function(require,module,exports){
36105 var BN = require('bn.js');
36106 var elliptic = require('../../elliptic');
36107 var utils = elliptic.utils;
36108 var assert = utils.assert;
36109 var cachedProperty = utils.cachedProperty;
36110 var parseBytes = utils.parseBytes;
36113 * @param {EDDSA} eddsa - eddsa instance
36114 * @param {Array
<Bytes>|Object} sig -
36115 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36116 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36117 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36118 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36120 function Signature(eddsa, sig) {
36121 this.eddsa = eddsa;
36123 if (typeof sig !== 'object')
36124 sig = parseBytes(sig);
36126 if (Array.isArray(sig)) {
36128 R: sig.slice(
0, eddsa.encodingLength),
36129 S: sig.slice(eddsa.encodingLength)
36133 assert(sig.R && sig.S, 'Signature without R or S');
36135 if (eddsa.isPoint(sig.R))
36137 if (sig.S instanceof BN)
36140 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36141 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36144 cachedProperty(Signature, 'S', function S() {
36145 return this.eddsa.decodeInt(this.Sencoded());
36148 cachedProperty(Signature, 'R', function R() {
36149 return this.eddsa.decodePoint(this.Rencoded());
36152 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36153 return this.eddsa.encodePoint(this.R());
36156 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36157 return this.eddsa.encodeInt(this.S());
36160 Signature.prototype.toBytes = function toBytes() {
36161 return this.Rencoded().concat(this.Sencoded());
36164 Signature.prototype.toHex = function toHex() {
36165 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36168 module.exports = Signature;
36170 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36173 var hash = require('hash.js');
36174 var elliptic = require('../elliptic');
36175 var utils = elliptic.utils;
36176 var assert = utils.assert;
36178 function HmacDRBG(options) {
36179 if (!(this instanceof HmacDRBG))
36180 return new HmacDRBG(options);
36181 this.hash = options.hash;
36182 this.predResist = !!options.predResist;
36184 this.outLen = this.hash.outSize;
36185 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36187 this.reseed = null;
36188 this.reseedInterval = null;
36192 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36193 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36194 var pers = utils.toArray(options.pers, options.persEnc);
36195 assert(entropy.length
>= (this.minEntropy /
8),
36196 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36197 this._init(entropy, nonce, pers);
36199 module.exports = HmacDRBG;
36201 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36202 var seed = entropy.concat(nonce).concat(pers);
36204 this.K = new Array(this.outLen /
8);
36205 this.V = new Array(this.outLen /
8);
36206 for (var i =
0; i < this.V.length; i++) {
36211 this._update(seed);
36213 this.reseedInterval =
0x1000000000000; //
2^
48
36216 HmacDRBG.prototype._hmac = function hmac() {
36217 return new hash.hmac(this.hash, this.K);
36220 HmacDRBG.prototype._update = function update(seed) {
36221 var kmac = this._hmac()
36225 kmac = kmac.update(seed);
36226 this.K = kmac.digest();
36227 this.V = this._hmac().update(this.V).digest();
36231 this.K = this._hmac()
36236 this.V = this._hmac().update(this.V).digest();
36239 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36240 // Optional entropy enc
36241 if (typeof entropyEnc !== 'string') {
36247 entropy = utils.toBuffer(entropy, entropyEnc);
36248 add = utils.toBuffer(add, addEnc);
36250 assert(entropy.length
>= (this.minEntropy /
8),
36251 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36253 this._update(entropy.concat(add || []));
36257 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36258 if (this.reseed
> this.reseedInterval)
36259 throw new Error('Reseed is required');
36261 // Optional encoding
36262 if (typeof enc !== 'string') {
36268 // Optional additional data
36270 add = utils.toArray(add, addEnc);
36275 while (temp.length < len) {
36276 this.V = this._hmac().update(this.V).digest();
36277 temp = temp.concat(this.V);
36280 var res = temp.slice(
0, len);
36283 return utils.encode(res, enc);
36286 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36292 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36293 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36296 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36297 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36300 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36301 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36304 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36305 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36308 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36309 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36312 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36313 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36316 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36317 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36320 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36321 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36324 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36325 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36328 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36329 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36332 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36333 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36336 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36337 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36340 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36341 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36344 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36345 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36348 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36349 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36352 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36353 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36356 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36357 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36360 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36361 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36364 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36365 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36368 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36369 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36372 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36373 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36376 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36377 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36380 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36381 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36384 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36385 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36388 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36389 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36392 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36393 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36396 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36397 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36400 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36401 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36404 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36405 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36408 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36409 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36412 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36413 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36416 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36417 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36420 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36421 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36424 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36425 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36428 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36429 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36432 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36433 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36436 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36437 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36440 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36441 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36444 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36445 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36448 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36449 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36452 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36453 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36456 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36457 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36460 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36461 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36464 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36465 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36468 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36469 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36472 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36473 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36476 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36477 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36480 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36481 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36484 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36485 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36488 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36489 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36492 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36493 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36496 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36497 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36500 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36501 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36504 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36505 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36508 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36509 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36512 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36513 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36516 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36517 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36520 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36521 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36524 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36525 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36528 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36529 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36532 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36533 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36536 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36537 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36540 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36541 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36544 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36545 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36548 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36549 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36557 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36558 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36561 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36562 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36565 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36566 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36569 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36570 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36573 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36574 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36577 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36578 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36581 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36582 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36585 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36586 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36589 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36590 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36593 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36594 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36597 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36598 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36601 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36602 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36605 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36606 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36609 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36610 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36613 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36614 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36617 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36618 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36621 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36622 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36625 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36626 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36629 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36630 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36633 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36634 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36637 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36638 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36641 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36642 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36645 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36646 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36649 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36650 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36653 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36654 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36657 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36658 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36661 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36662 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36665 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36666 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36669 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36670 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36673 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36674 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36677 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36678 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36681 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36682 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36685 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36686 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36689 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36690 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36693 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36694 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36697 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36698 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36701 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36702 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36705 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36706 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36709 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36710 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36713 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36714 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36717 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36718 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36721 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36722 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36725 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36726 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36729 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36730 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36733 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36734 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36737 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36738 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36741 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36742 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36745 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36746 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36749 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36750 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36753 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36754 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36757 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36758 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36761 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36762 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36765 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36766 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36769 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36770 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36773 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36774 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36777 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36778 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36781 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36782 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36785 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36786 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36789 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36790 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36793 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36794 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36797 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36798 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36801 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36802 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36805 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36806 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36809 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36810 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36813 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36814 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36817 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36818 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36821 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36822 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36825 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36826 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36829 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36830 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36833 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36834 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36837 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36838 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36841 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36842 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36845 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36846 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36849 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36850 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36853 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36854 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36857 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36858 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36861 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36862 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36865 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36866 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36869 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36870 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36873 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36874 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36877 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36878 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36881 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36882 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36885 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36886 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36889 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36890 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36893 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36894 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36897 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36898 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36901 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36902 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36905 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36906 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36909 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36910 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36913 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36914 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36917 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36918 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36921 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36922 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36925 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36926 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36929 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36930 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36933 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36934 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36937 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36938 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36941 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36942 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36945 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36946 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36949 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36950 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36953 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36954 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36957 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36958 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36961 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36962 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36965 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36966 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36969 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36970 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36973 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36974 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36977 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36978 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36981 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36982 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36985 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36986 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36989 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36990 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36993 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36994 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36997 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36998 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
37001 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
37002 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
37005 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
37006 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
37009 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
37010 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
37013 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
37014 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
37017 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
37018 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
37021 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
37022 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
37025 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
37026 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
37029 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
37030 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
37033 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
37034 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
37037 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
37038 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
37041 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
37042 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
37045 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
37046 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
37049 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
37050 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
37053 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
37054 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
37057 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
37058 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
37061 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
37062 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
37068 },{}],
54:[function(require,module,exports){
37071 var utils = exports;
37072 var BN = require('bn.js');
37074 utils.assert = function assert(val, msg) {
37076 throw new Error(msg || 'Assertion failed');
37079 function toArray(msg, enc) {
37080 if (Array.isArray(msg))
37081 return msg.slice();
37085 if (typeof msg !== 'string') {
37086 for (var i =
0; i < msg.length; i++)
37087 res[i] = msg[i] |
0;
37091 for (var i =
0; i < msg.length; i++) {
37092 var c = msg.charCodeAt(i);
37100 } else if (enc === 'hex') {
37101 msg = msg.replace(/[^a-z0-
9]+/ig, '');
37102 if (msg.length %
2 !==
0)
37104 for (var i =
0; i < msg.length; i +=
2)
37105 res.push(parseInt(msg[i] + msg[i +
1],
16));
37109 utils.toArray = toArray;
37111 function zero2(word) {
37112 if (word.length ===
1)
37117 utils.zero2 = zero2;
37119 function toHex(msg) {
37121 for (var i =
0; i < msg.length; i++)
37122 res += zero2(msg[i].toString(
16));
37125 utils.toHex = toHex;
37127 utils.encode = function encode(arr, enc) {
37134 // Represent num in a w-NAF form
37135 function getNAF(num, w) {
37137 var ws =
1 << (w +
1);
37138 var k = num.clone();
37139 while (k.cmpn(
1)
>=
0) {
37142 var mod = k.andln(ws -
1);
37143 if (mod
> (ws
>> 1) -
1)
37144 z = (ws
>> 1) - mod;
37153 // Optimization, shift by word if possible
37154 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37155 for (var i =
1; i < shift; i++)
37162 utils.getNAF = getNAF;
37164 // Represent k1, k2 in a Joint Sparse Form
37165 function getJSF(k1, k2) {
37175 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37178 var m14 = (k1.andln(
3) + d1) &
3;
37179 var m24 = (k2.andln(
3) + d2) &
3;
37185 if ((m14 &
1) ===
0) {
37188 var m8 = (k1.andln(
7) + d1) &
7;
37189 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37197 if ((m24 &
1) ===
0) {
37200 var m8 = (k2.andln(
7) + d2) &
7;
37201 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37209 if (
2 * d1 === u1 +
1)
37211 if (
2 * d2 === u2 +
1)
37219 utils.getJSF = getJSF;
37221 function cachedProperty(obj, name, computer) {
37222 var key = '_' + name;
37223 obj.prototype[name] = function cachedProperty() {
37224 return this[key] !== undefined ? this[key] :
37225 this[key] = computer.call(this);
37228 utils.cachedProperty = cachedProperty;
37230 function parseBytes(bytes) {
37231 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37234 utils.parseBytes = parseBytes;
37236 function intFromLE(bytes) {
37237 return new BN(bytes, 'hex', 'le');
37239 utils.intFromLE = intFromLE;
37242 },{
"bn.js":
33}],
55:[function(require,module,exports){
37247 "raw":
"elliptic@^6.2.3",
37249 "escapedName":
"elliptic",
37250 "name":
"elliptic",
37251 "rawSpec":
"^6.2.3",
37252 "spec":
">=6.2.3 <7.0.0",
37255 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37258 "_from":
"elliptic@>=6.2.3 <7.0.0",
37259 "_id":
"elliptic@6.3.3",
37261 "_location":
"/elliptic",
37262 "_nodeVersion":
"7.0.0",
37263 "_npmOperationalInternal": {
37264 "host":
"packages-18-east.internal.npmjs.com",
37265 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37269 "email":
"fedor@indutny.com"
37271 "_npmVersion":
"3.10.8",
37272 "_phantomChildren": {},
37274 "raw":
"elliptic@^6.2.3",
37276 "escapedName":
"elliptic",
37277 "name":
"elliptic",
37278 "rawSpec":
"^6.2.3",
37279 "spec":
">=6.2.3 <7.0.0",
37283 "/browserify-sign",
37287 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37288 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37289 "_shrinkwrap": null,
37290 "_spec":
"elliptic@^6.2.3",
37291 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37293 "name":
"Fedor Indutny",
37294 "email":
"fedor@indutny.com"
37297 "url":
"https://github.com/indutny/elliptic/issues"
37301 "brorand":
"^1.0.1",
37302 "hash.js":
"^1.0.0",
37303 "inherits":
"^2.0.1"
37305 "description":
"EC cryptography",
37306 "devDependencies": {
37308 "coveralls":
"^2.11.3",
37310 "grunt-browserify":
"^5.0.0",
37311 "grunt-cli":
"^1.2.0",
37312 "grunt-contrib-connect":
"^1.0.0",
37313 "grunt-contrib-copy":
"^1.0.0",
37314 "grunt-contrib-uglify":
"^1.0.1",
37315 "grunt-mocha-istanbul":
"^3.0.1",
37316 "grunt-saucelabs":
"^8.6.2",
37317 "istanbul":
"^0.4.2",
37319 "jshint":
"^2.6.0",
37324 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37325 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37330 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37331 "homepage":
"https://github.com/indutny/elliptic",
37339 "main":
"lib/elliptic.js",
37343 "email":
"fedor@indutny.com"
37346 "name":
"elliptic",
37347 "optionalDependencies": {},
37348 "readme":
"ERROR: No README data found!",
37351 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37354 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37355 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37356 "lint":
"npm run jscs && npm run jshint",
37357 "test":
"npm run lint && npm run unit",
37358 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37359 "version":
"grunt dist && git add dist/"
37364 },{}],
56:[function(require,module,exports){
37365 (function (Buffer){
37368 var isHexPrefixed = require('is-hex-prefixed');
37369 var stripHexPrefix = require('strip-hex-prefix');
37372 * Pads a `String` to have an even length
37373 * @param {String} value
37374 * @return {String} output
37376 function padToEven(value) {
37377 var a = value; // eslint-disable-line
37379 if (typeof a !== 'string') {
37380 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37383 if (a.length %
2) {
37391 * Converts a `Number` into a hex `String`
37392 * @param {Number} i
37395 function intToHex(i) {
37396 var hex = i.toString(
16); // eslint-disable-line
37398 return '
0x' + padToEven(hex);
37402 * Converts an `Number` to a `Buffer`
37403 * @param {Number} i
37406 function intToBuffer(i) {
37407 var hex = intToHex(i);
37409 return new Buffer(hex.slice(
2), 'hex');
37413 * Get the binary size of a string
37414 * @param {String} str
37417 function getBinarySize(str) {
37418 if (typeof str !== 'string') {
37419 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37422 return Buffer.byteLength(str, 'utf8');
37426 * Returns TRUE if the first specified array contains all elements
37427 * from the second one. FALSE otherwise.
37429 * @param {array} superset
37430 * @param {array} subset
37432 * @returns {boolean}
37434 function arrayContainsArray(superset, subset, some) {
37435 if (Array.isArray(superset) !== true) {
37436 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37438 if (Array.isArray(subset) !== true) {
37439 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37442 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37443 return superset.indexOf(value)
>=
0;
37448 * Should be called to get utf8 from it's hex representation
37451 * @param {String} string in hex
37452 * @returns {String} ascii string representation of hex value
37454 function toUtf8(hex) {
37455 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37457 return bufferValue.toString('utf8');
37461 * Should be called to get ascii from it's hex representation
37464 * @param {String} string in hex
37465 * @returns {String} ascii string representation of hex value
37467 function toAscii(hex) {
37468 var str = ''; // eslint-disable-line
37470 l = hex.length; // eslint-disable-line
37472 if (hex.substring(
0,
2) === '
0x') {
37476 for (; i < l; i +=
2) {
37477 var code = parseInt(hex.substr(i,
2),
16);
37478 str += String.fromCharCode(code);
37485 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37488 * @param {String} string
37489 * @param {Number} optional padding
37490 * @returns {String} hex representation of input string
37492 function fromUtf8(stringValue) {
37493 var str = new Buffer(stringValue, 'utf8');
37495 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37499 * Should be called to get hex representation (prefixed by
0x) of ascii string
37501 * @method fromAscii
37502 * @param {String} string
37503 * @param {Number} optional padding
37504 * @returns {String} hex representation of input string
37506 function fromAscii(stringValue) {
37507 var hex = ''; // eslint-disable-line
37508 for (var i =
0; i < stringValue.length; i++) {
37509 // eslint-disable-line
37510 var code = stringValue.charCodeAt(i);
37511 var n = code.toString(
16);
37512 hex += n.length <
2 ? '
0' + n : n;
37519 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37521 * @method getKeys get specific key from inner object array of objects
37522 * @param {String} params
37523 * @param {String} key
37524 * @param {Boolean} allowEmpty
37525 * @returns {Array} output just a simple array of output keys
37527 function getKeys(params, key, allowEmpty) {
37528 if (!Array.isArray(params)) {
37529 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37531 if (typeof key !== 'string') {
37532 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37535 var result = []; // eslint-disable-line
37537 for (var i =
0; i < params.length; i++) {
37538 // eslint-disable-line
37539 var value = params[i][key]; // eslint-disable-line
37540 if (allowEmpty && !value) {
37542 } else if (typeof value !== 'string') {
37543 throw new Error('invalid abi');
37545 result.push(value);
37552 * Is the string a hex string.
37554 * @method check if string is hex string of specific length
37555 * @param {String} value
37556 * @param {Number} length
37557 * @returns {Boolean} output the string is a hex string
37559 function isHexString(value, length) {
37560 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37564 if (length && value.length !==
2 +
2 * length) {
37572 arrayContainsArray: arrayContainsArray,
37573 intToBuffer: intToBuffer,
37574 getBinarySize: getBinarySize,
37575 isHexPrefixed: isHexPrefixed,
37576 stripHexPrefix: stripHexPrefix,
37577 padToEven: padToEven,
37578 intToHex: intToHex,
37579 fromAscii: fromAscii,
37580 fromUtf8: fromUtf8,
37584 isHexString: isHexString
37586 }).call(this,require("buffer").Buffer)
37587 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37588 var hash = exports;
37590 hash.utils = require('./hash/utils');
37591 hash.common = require('./hash/common');
37592 hash.sha = require('./hash/sha');
37593 hash.ripemd = require('./hash/ripemd');
37594 hash.hmac = require('./hash/hmac');
37596 // Proxy hash functions to the main object
37597 hash.sha1 = hash.sha.sha1;
37598 hash.sha256 = hash.sha.sha256;
37599 hash.sha224 = hash.sha.sha224;
37600 hash.sha384 = hash.sha.sha384;
37601 hash.sha512 = hash.sha.sha512;
37602 hash.ripemd160 = hash.ripemd.ripemd160;
37604 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37605 var hash = require('../hash');
37606 var utils = hash.utils;
37607 var assert = utils.assert;
37609 function BlockHash() {
37610 this.pending = null;
37611 this.pendingTotal =
0;
37612 this.blockSize = this.constructor.blockSize;
37613 this.outSize = this.constructor.outSize;
37614 this.hmacStrength = this.constructor.hmacStrength;
37615 this.padLength = this.constructor.padLength /
8;
37616 this.endian = 'big';
37618 this._delta8 = this.blockSize /
8;
37619 this._delta32 = this.blockSize /
32;
37621 exports.BlockHash = BlockHash;
37623 BlockHash.prototype.update = function update(msg, enc) {
37624 // Convert message to array, pad it, and join into
32bit blocks
37625 msg = utils.toArray(msg, enc);
37627 this.pending = msg;
37629 this.pending = this.pending.concat(msg);
37630 this.pendingTotal += msg.length;
37632 // Enough data, try updating
37633 if (this.pending.length
>= this._delta8) {
37634 msg = this.pending;
37636 // Process pending data in blocks
37637 var r = msg.length % this._delta8;
37638 this.pending = msg.slice(msg.length - r, msg.length);
37639 if (this.pending.length ===
0)
37640 this.pending = null;
37642 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37643 for (var i =
0; i < msg.length; i += this._delta32)
37644 this._update(msg, i, i + this._delta32);
37650 BlockHash.prototype.digest = function digest(enc) {
37651 this.update(this._pad());
37652 assert(this.pending === null);
37654 return this._digest(enc);
37657 BlockHash.prototype._pad = function pad() {
37658 var len = this.pendingTotal;
37659 var bytes = this._delta8;
37660 var k = bytes - ((len + this.padLength) % bytes);
37661 var res = new Array(k + this.padLength);
37663 for (var i =
1; i < k; i++)
37668 if (this.endian === 'big') {
37669 for (var t =
8; t < this.padLength; t++)
37676 res[i++] = (len
>>> 24) &
0xff;
37677 res[i++] = (len
>>> 16) &
0xff;
37678 res[i++] = (len
>>> 8) &
0xff;
37679 res[i++] = len &
0xff;
37681 res[i++] = len &
0xff;
37682 res[i++] = (len
>>> 8) &
0xff;
37683 res[i++] = (len
>>> 16) &
0xff;
37684 res[i++] = (len
>>> 24) &
0xff;
37690 for (var t =
8; t < this.padLength; t++)
37697 },{
"../hash":
57}],
59:[function(require,module,exports){
37698 var hmac = exports;
37700 var hash = require('../hash');
37701 var utils = hash.utils;
37702 var assert = utils.assert;
37704 function Hmac(hash, key, enc) {
37705 if (!(this instanceof Hmac))
37706 return new Hmac(hash, key, enc);
37708 this.blockSize = hash.blockSize /
8;
37709 this.outSize = hash.outSize /
8;
37713 this._init(utils.toArray(key, enc));
37715 module.exports = Hmac;
37717 Hmac.prototype._init = function init(key) {
37718 // Shorten key, if needed
37719 if (key.length
> this.blockSize)
37720 key = new this.Hash().update(key).digest();
37721 assert(key.length <= this.blockSize);
37723 // Add padding to key
37724 for (var i = key.length; i < this.blockSize; i++)
37727 for (var i =
0; i < key.length; i++)
37729 this.inner = new this.Hash().update(key);
37731 //
0x36 ^
0x5c =
0x6a
37732 for (var i =
0; i < key.length; i++)
37734 this.outer = new this.Hash().update(key);
37737 Hmac.prototype.update = function update(msg, enc) {
37738 this.inner.update(msg, enc);
37742 Hmac.prototype.digest = function digest(enc) {
37743 this.outer.update(this.inner.digest());
37744 return this.outer.digest(enc);
37747 },{"../hash":
57}],
60:[function(require,module,exports){
37748 var hash = require('../hash');
37749 var utils = hash.utils;
37751 var rotl32 = utils.rotl32;
37752 var sum32 = utils.sum32;
37753 var sum32_3 = utils.sum32_3;
37754 var sum32_4 = utils.sum32_4;
37755 var BlockHash = hash.common.BlockHash;
37757 function RIPEMD160() {
37758 if (!(this instanceof RIPEMD160))
37759 return new RIPEMD160();
37761 BlockHash.call(this);
37763 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37764 this.endian = 'little';
37766 utils.inherits(RIPEMD160, BlockHash);
37767 exports.ripemd160 = RIPEMD160;
37769 RIPEMD160.blockSize =
512;
37770 RIPEMD160.outSize =
160;
37771 RIPEMD160.hmacStrength =
192;
37772 RIPEMD160.padLength =
64;
37774 RIPEMD160.prototype._update = function update(msg, start) {
37785 for (var j =
0; j <
80; j++) {
37788 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37798 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37803 Dh = rotl32(Ch,
10);
37807 T = sum32_3(this.h[
1], C, Dh);
37808 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37809 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37810 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37811 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37815 RIPEMD160.prototype._digest = function digest(enc) {
37817 return utils.toHex32(this.h, 'little');
37819 return utils.split32(this.h, 'little');
37822 function f(j, x, y, z) {
37826 return (x & y) | ((~x) & z);
37828 return (x | (~y)) ^ z;
37830 return (x & z) | (y & (~z));
37832 return x ^ (y | (~z));
37862 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37863 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37864 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37865 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37866 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37870 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37871 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37872 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37873 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37874 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37878 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37879 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37880 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37881 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37882 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37886 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37887 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37888 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37889 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37890 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37893 },{"../hash":
57}],
61:[function(require,module,exports){
37894 var hash = require('../hash');
37895 var utils = hash.utils;
37896 var assert = utils.assert;
37898 var rotr32 = utils.rotr32;
37899 var rotl32 = utils.rotl32;
37900 var sum32 = utils.sum32;
37901 var sum32_4 = utils.sum32_4;
37902 var sum32_5 = utils.sum32_5;
37903 var rotr64_hi = utils.rotr64_hi;
37904 var rotr64_lo = utils.rotr64_lo;
37905 var shr64_hi = utils.shr64_hi;
37906 var shr64_lo = utils.shr64_lo;
37907 var sum64 = utils.sum64;
37908 var sum64_hi = utils.sum64_hi;
37909 var sum64_lo = utils.sum64_lo;
37910 var sum64_4_hi = utils.sum64_4_hi;
37911 var sum64_4_lo = utils.sum64_4_lo;
37912 var sum64_5_hi = utils.sum64_5_hi;
37913 var sum64_5_lo = utils.sum64_5_lo;
37914 var BlockHash = hash.common.BlockHash;
37917 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37918 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37919 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37920 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37921 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37922 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37923 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37924 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37925 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37926 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37927 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37928 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37929 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37930 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37931 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37932 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37936 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37937 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37938 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37939 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37940 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37941 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37942 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37943 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37944 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37945 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37946 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37947 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37948 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37949 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37950 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37951 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37952 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37953 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37954 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37955 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37956 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37957 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37958 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37959 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37960 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37961 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37962 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37963 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37964 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37965 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37966 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37967 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37968 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37969 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37970 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37971 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37972 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37973 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37974 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37975 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37979 0x5A827999,
0x6ED9EBA1,
37980 0x8F1BBCDC,
0xCA62C1D6
37983 function SHA256() {
37984 if (!(this instanceof SHA256))
37985 return new SHA256();
37987 BlockHash.call(this);
37988 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37989 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37991 this.W = new Array(
64);
37993 utils.inherits(SHA256, BlockHash);
37994 exports.sha256 = SHA256;
37996 SHA256.blockSize =
512;
37997 SHA256.outSize =
256;
37998 SHA256.hmacStrength =
192;
37999 SHA256.padLength =
64;
38001 SHA256.prototype._update = function _update(msg, start) {
38004 for (var i =
0; i <
16; i++)
38005 W[i] = msg[start + i];
38006 for (; i < W.length; i++)
38007 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
38018 assert(this.k.length === W.length);
38019 for (var i =
0; i < W.length; i++) {
38020 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
38021 var T2 = sum32(s0_256(a), maj32(a, b, c));
38032 this.h[
0] = sum32(this.h[
0], a);
38033 this.h[
1] = sum32(this.h[
1], b);
38034 this.h[
2] = sum32(this.h[
2], c);
38035 this.h[
3] = sum32(this.h[
3], d);
38036 this.h[
4] = sum32(this.h[
4], e);
38037 this.h[
5] = sum32(this.h[
5], f);
38038 this.h[
6] = sum32(this.h[
6], g);
38039 this.h[
7] = sum32(this.h[
7], h);
38042 SHA256.prototype._digest = function digest(enc) {
38044 return utils.toHex32(this.h, 'big');
38046 return utils.split32(this.h, 'big');
38049 function SHA224() {
38050 if (!(this instanceof SHA224))
38051 return new SHA224();
38054 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
38055 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
38057 utils.inherits(SHA224, SHA256);
38058 exports.sha224 = SHA224;
38060 SHA224.blockSize =
512;
38061 SHA224.outSize =
224;
38062 SHA224.hmacStrength =
192;
38063 SHA224.padLength =
64;
38065 SHA224.prototype._digest = function digest(enc) {
38066 // Just truncate output
38068 return utils.toHex32(this.h.slice(
0,
7), 'big');
38070 return utils.split32(this.h.slice(
0,
7), 'big');
38073 function SHA512() {
38074 if (!(this instanceof SHA512))
38075 return new SHA512();
38077 BlockHash.call(this);
38078 this.h = [
0x6a09e667,
0xf3bcc908,
38079 0xbb67ae85,
0x84caa73b,
38080 0x3c6ef372,
0xfe94f82b,
38081 0xa54ff53a,
0x5f1d36f1,
38082 0x510e527f,
0xade682d1,
38083 0x9b05688c,
0x2b3e6c1f,
38084 0x1f83d9ab,
0xfb41bd6b,
38085 0x5be0cd19,
0x137e2179 ];
38087 this.W = new Array(
160);
38089 utils.inherits(SHA512, BlockHash);
38090 exports.sha512 = SHA512;
38092 SHA512.blockSize =
1024;
38093 SHA512.outSize =
512;
38094 SHA512.hmacStrength =
192;
38095 SHA512.padLength =
128;
38097 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
38100 //
32 x
32bit words
38101 for (var i =
0; i <
32; i++)
38102 W[i] = msg[start + i];
38103 for (; i < W.length; i +=
2) {
38104 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
38105 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
38106 var c1_hi = W[i -
14]; // i -
7
38107 var c1_lo = W[i -
13];
38108 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
38109 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
38110 var c3_hi = W[i -
32]; // i -
16
38111 var c3_lo = W[i -
31];
38113 W[i] = sum64_4_hi(c0_hi, c0_lo,
38117 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38124 SHA512.prototype._update = function _update(msg, start) {
38125 this._prepareBlock(msg, start);
38129 var ah = this.h[
0];
38130 var al = this.h[
1];
38131 var bh = this.h[
2];
38132 var bl = this.h[
3];
38133 var ch = this.h[
4];
38134 var cl = this.h[
5];
38135 var dh = this.h[
6];
38136 var dl = this.h[
7];
38137 var eh = this.h[
8];
38138 var el = this.h[
9];
38139 var fh = this.h[
10];
38140 var fl = this.h[
11];
38141 var gh = this.h[
12];
38142 var gl = this.h[
13];
38143 var hh = this.h[
14];
38144 var hl = this.h[
15];
38146 assert(this.k.length === W.length);
38147 for (var i =
0; i < W.length; i +=
2) {
38150 var c1_hi = s1_512_hi(eh, el);
38151 var c1_lo = s1_512_lo(eh, el);
38152 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38153 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38154 var c3_hi = this.k[i];
38155 var c3_lo = this.k[i +
1];
38157 var c4_lo = W[i +
1];
38159 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38164 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38170 var c0_hi = s0_512_hi(ah, al);
38171 var c0_lo = s0_512_lo(ah, al);
38172 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38173 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38175 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38176 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38187 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38188 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38199 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38200 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38203 sum64(this.h,
0, ah, al);
38204 sum64(this.h,
2, bh, bl);
38205 sum64(this.h,
4, ch, cl);
38206 sum64(this.h,
6, dh, dl);
38207 sum64(this.h,
8, eh, el);
38208 sum64(this.h,
10, fh, fl);
38209 sum64(this.h,
12, gh, gl);
38210 sum64(this.h,
14, hh, hl);
38213 SHA512.prototype._digest = function digest(enc) {
38215 return utils.toHex32(this.h, 'big');
38217 return utils.split32(this.h, 'big');
38220 function SHA384() {
38221 if (!(this instanceof SHA384))
38222 return new SHA384();
38225 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38226 0x629a292a,
0x367cd507,
38227 0x9159015a,
0x3070dd17,
38228 0x152fecd8,
0xf70e5939,
38229 0x67332667,
0xffc00b31,
38230 0x8eb44a87,
0x68581511,
38231 0xdb0c2e0d,
0x64f98fa7,
38232 0x47b5481d,
0xbefa4fa4 ];
38234 utils.inherits(SHA384, SHA512);
38235 exports.sha384 = SHA384;
38237 SHA384.blockSize =
1024;
38238 SHA384.outSize =
384;
38239 SHA384.hmacStrength =
192;
38240 SHA384.padLength =
128;
38242 SHA384.prototype._digest = function digest(enc) {
38244 return utils.toHex32(this.h.slice(
0,
12), 'big');
38246 return utils.split32(this.h.slice(
0,
12), 'big');
38250 if (!(this instanceof SHA1))
38253 BlockHash.call(this);
38254 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38255 0x10325476,
0xc3d2e1f0 ];
38256 this.W = new Array(
80);
38259 utils.inherits(SHA1, BlockHash);
38260 exports.sha1 = SHA1;
38262 SHA1.blockSize =
512;
38263 SHA1.outSize =
160;
38264 SHA1.hmacStrength =
80;
38265 SHA1.padLength =
64;
38267 SHA1.prototype._update = function _update(msg, start) {
38270 for (var i =
0; i <
16; i++)
38271 W[i] = msg[start + i];
38273 for(; i < W.length; i++)
38274 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38282 for (var i =
0; i < W.length; i++) {
38283 var s = ~~(i /
20);
38284 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38292 this.h[
0] = sum32(this.h[
0], a);
38293 this.h[
1] = sum32(this.h[
1], b);
38294 this.h[
2] = sum32(this.h[
2], c);
38295 this.h[
3] = sum32(this.h[
3], d);
38296 this.h[
4] = sum32(this.h[
4], e);
38299 SHA1.prototype._digest = function digest(enc) {
38301 return utils.toHex32(this.h, 'big');
38303 return utils.split32(this.h, 'big');
38306 function ch32(x, y, z) {
38307 return (x & y) ^ ((~x) & z);
38310 function maj32(x, y, z) {
38311 return (x & y) ^ (x & z) ^ (y & z);
38314 function p32(x, y, z) {
38318 function s0_256(x) {
38319 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38322 function s1_256(x) {
38323 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38326 function g0_256(x) {
38327 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38330 function g1_256(x) {
38331 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38334 function ft_1(s, x, y, z) {
38336 return ch32(x, y, z);
38337 if (s ===
1 || s ===
3)
38338 return p32(x, y, z);
38340 return maj32(x, y, z);
38343 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38344 var r = (xh & yh) ^ ((~xh) & zh);
38350 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38351 var r = (xl & yl) ^ ((~xl) & zl);
38357 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38358 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38364 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38365 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38371 function s0_512_hi(xh, xl) {
38372 var c0_hi = rotr64_hi(xh, xl,
28);
38373 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38374 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38376 var r = c0_hi ^ c1_hi ^ c2_hi;
38382 function s0_512_lo(xh, xl) {
38383 var c0_lo = rotr64_lo(xh, xl,
28);
38384 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38385 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38387 var r = c0_lo ^ c1_lo ^ c2_lo;
38393 function s1_512_hi(xh, xl) {
38394 var c0_hi = rotr64_hi(xh, xl,
14);
38395 var c1_hi = rotr64_hi(xh, xl,
18);
38396 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38398 var r = c0_hi ^ c1_hi ^ c2_hi;
38404 function s1_512_lo(xh, xl) {
38405 var c0_lo = rotr64_lo(xh, xl,
14);
38406 var c1_lo = rotr64_lo(xh, xl,
18);
38407 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38409 var r = c0_lo ^ c1_lo ^ c2_lo;
38415 function g0_512_hi(xh, xl) {
38416 var c0_hi = rotr64_hi(xh, xl,
1);
38417 var c1_hi = rotr64_hi(xh, xl,
8);
38418 var c2_hi = shr64_hi(xh, xl,
7);
38420 var r = c0_hi ^ c1_hi ^ c2_hi;
38426 function g0_512_lo(xh, xl) {
38427 var c0_lo = rotr64_lo(xh, xl,
1);
38428 var c1_lo = rotr64_lo(xh, xl,
8);
38429 var c2_lo = shr64_lo(xh, xl,
7);
38431 var r = c0_lo ^ c1_lo ^ c2_lo;
38437 function g1_512_hi(xh, xl) {
38438 var c0_hi = rotr64_hi(xh, xl,
19);
38439 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38440 var c2_hi = shr64_hi(xh, xl,
6);
38442 var r = c0_hi ^ c1_hi ^ c2_hi;
38448 function g1_512_lo(xh, xl) {
38449 var c0_lo = rotr64_lo(xh, xl,
19);
38450 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38451 var c2_lo = shr64_lo(xh, xl,
6);
38453 var r = c0_lo ^ c1_lo ^ c2_lo;
38459 },{
"../hash":
57}],
62:[function(require,module,exports){
38460 var utils = exports;
38461 var inherits = require('inherits');
38463 function toArray(msg, enc) {
38464 if (Array.isArray(msg))
38465 return msg.slice();
38469 if (typeof msg === 'string') {
38471 for (var i =
0; i < msg.length; i++) {
38472 var c = msg.charCodeAt(i);
38480 } else if (enc === 'hex') {
38481 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38482 if (msg.length %
2 !==
0)
38484 for (var i =
0; i < msg.length; i +=
2)
38485 res.push(parseInt(msg[i] + msg[i +
1],
16));
38488 for (var i =
0; i < msg.length; i++)
38489 res[i] = msg[i] |
0;
38493 utils.toArray = toArray;
38495 function toHex(msg) {
38497 for (var i =
0; i < msg.length; i++)
38498 res += zero2(msg[i].toString(
16));
38501 utils.toHex = toHex;
38503 function htonl(w) {
38504 var res = (w
>>> 24) |
38505 ((w
>>> 8) &
0xff00) |
38506 ((w <<
8) &
0xff0000) |
38507 ((w &
0xff) <<
24);
38510 utils.htonl = htonl;
38512 function toHex32(msg, endian) {
38514 for (var i =
0; i < msg.length; i++) {
38516 if (endian === 'little')
38518 res += zero8(w.toString(
16));
38522 utils.toHex32 = toHex32;
38524 function zero2(word) {
38525 if (word.length ===
1)
38530 utils.zero2 = zero2;
38532 function zero8(word) {
38533 if (word.length ===
7)
38535 else if (word.length ===
6)
38536 return '
00' + word;
38537 else if (word.length ===
5)
38538 return '
000' + word;
38539 else if (word.length ===
4)
38540 return '
0000' + word;
38541 else if (word.length ===
3)
38542 return '
00000' + word;
38543 else if (word.length ===
2)
38544 return '
000000' + word;
38545 else if (word.length ===
1)
38546 return '
0000000' + word;
38550 utils.zero8 = zero8;
38552 function join32(msg, start, end, endian) {
38553 var len = end - start;
38554 assert(len %
4 ===
0);
38555 var res = new Array(len /
4);
38556 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38558 if (endian === 'big')
38559 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38561 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38566 utils.join32 = join32;
38568 function split32(msg, endian) {
38569 var res = new Array(msg.length *
4);
38570 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38572 if (endian === 'big') {
38574 res[k +
1] = (m
>>> 16) &
0xff;
38575 res[k +
2] = (m
>>> 8) &
0xff;
38576 res[k +
3] = m &
0xff;
38578 res[k +
3] = m
>>> 24;
38579 res[k +
2] = (m
>>> 16) &
0xff;
38580 res[k +
1] = (m
>>> 8) &
0xff;
38586 utils.split32 = split32;
38588 function rotr32(w, b) {
38589 return (w
>>> b) | (w << (
32 - b));
38591 utils.rotr32 = rotr32;
38593 function rotl32(w, b) {
38594 return (w << b) | (w
>>> (
32 - b));
38596 utils.rotl32 = rotl32;
38598 function sum32(a, b) {
38599 return (a + b)
>>> 0;
38601 utils.sum32 = sum32;
38603 function sum32_3(a, b, c) {
38604 return (a + b + c)
>>> 0;
38606 utils.sum32_3 = sum32_3;
38608 function sum32_4(a, b, c, d) {
38609 return (a + b + c + d)
>>> 0;
38611 utils.sum32_4 = sum32_4;
38613 function sum32_5(a, b, c, d, e) {
38614 return (a + b + c + d + e)
>>> 0;
38616 utils.sum32_5 = sum32_5;
38618 function assert(cond, msg) {
38620 throw new Error(msg || 'Assertion failed');
38622 utils.assert = assert;
38624 utils.inherits = inherits;
38626 function sum64(buf, pos, ah, al) {
38628 var bl = buf[pos +
1];
38630 var lo = (al + bl)
>>> 0;
38631 var hi = (lo < al ?
1 :
0) + ah + bh;
38632 buf[pos] = hi
>>> 0;
38635 exports.sum64 = sum64;
38637 function sum64_hi(ah, al, bh, bl) {
38638 var lo = (al + bl)
>>> 0;
38639 var hi = (lo < al ?
1 :
0) + ah + bh;
38642 exports.sum64_hi = sum64_hi;
38644 function sum64_lo(ah, al, bh, bl) {
38648 exports.sum64_lo = sum64_lo;
38650 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38653 lo = (lo + bl)
>>> 0;
38654 carry += lo < al ?
1 :
0;
38655 lo = (lo + cl)
>>> 0;
38656 carry += lo < cl ?
1 :
0;
38657 lo = (lo + dl)
>>> 0;
38658 carry += lo < dl ?
1 :
0;
38660 var hi = ah + bh + ch + dh + carry;
38663 exports.sum64_4_hi = sum64_4_hi;
38665 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38666 var lo = al + bl + cl + dl;
38669 exports.sum64_4_lo = sum64_4_lo;
38671 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38674 lo = (lo + bl)
>>> 0;
38675 carry += lo < al ?
1 :
0;
38676 lo = (lo + cl)
>>> 0;
38677 carry += lo < cl ?
1 :
0;
38678 lo = (lo + dl)
>>> 0;
38679 carry += lo < dl ?
1 :
0;
38680 lo = (lo + el)
>>> 0;
38681 carry += lo < el ?
1 :
0;
38683 var hi = ah + bh + ch + dh + eh + carry;
38686 exports.sum64_5_hi = sum64_5_hi;
38688 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38689 var lo = al + bl + cl + dl + el;
38693 exports.sum64_5_lo = sum64_5_lo;
38695 function rotr64_hi(ah, al, num) {
38696 var r = (al << (
32 - num)) | (ah
>>> num);
38699 exports.rotr64_hi = rotr64_hi;
38701 function rotr64_lo(ah, al, num) {
38702 var r = (ah << (
32 - num)) | (al
>>> num);
38705 exports.rotr64_lo = rotr64_lo;
38707 function shr64_hi(ah, al, num) {
38710 exports.shr64_hi = shr64_hi;
38712 function shr64_lo(ah, al, num) {
38713 var r = (ah << (
32 - num)) | (al
>>> num);
38716 exports.shr64_lo = shr64_lo;
38718 },{
"inherits":
63}],
63:[function(require,module,exports){
38719 arguments[
4][
9][
0].apply(exports,arguments)
38720 },{
"dup":
9}],
64:[function(require,module,exports){
38722 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38723 * @param {String} str the string input value
38724 * @return {Boolean} a boolean if it is or is not hex prefixed
38725 * @throws if the str input is not a string
38727 module.exports = function isHexPrefixed(str) {
38728 if (typeof str !== 'string') {
38729 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38732 return str.slice(
0,
2) === '
0x';
38735 },{}],
65:[function(require,module,exports){
38737 module.exports = require('./lib/api')(require('./lib/keccak'))
38739 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38741 var createKeccak = require('./keccak')
38742 var createShake = require('./shake')
38744 module.exports = function (KeccakState) {
38745 var Keccak = createKeccak(KeccakState)
38746 var Shake = createShake(KeccakState)
38748 return function (algorithm, options) {
38749 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38751 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38752 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38753 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38754 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38756 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38757 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38758 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38759 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38761 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38762 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38764 default: throw new Error('Invald algorithm: ' + algorithm)
38769 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38770 (function (Buffer){
38772 var Transform = require('stream').Transform
38773 var inherits = require('inherits')
38775 module.exports = function (KeccakState) {
38776 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38777 Transform.call(this, options)
38780 this._capacity = capacity
38781 this._delimitedSuffix = delimitedSuffix
38782 this._hashBitLength = hashBitLength
38783 this._options = options
38785 this._state = new KeccakState()
38786 this._state.initialize(rate, capacity)
38787 this._finalized = false
38790 inherits(Keccak, Transform)
38792 Keccak.prototype._transform = function (chunk, encoding, callback) {
38795 this.update(chunk, encoding)
38803 Keccak.prototype._flush = function (callback) {
38806 this.push(this.digest())
38814 Keccak.prototype.update = function (data, encoding) {
38815 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38816 if (this._finalized) throw new Error('Digest already called')
38817 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38819 this._state.absorb(data)
38824 Keccak.prototype.digest = function (encoding) {
38825 if (this._finalized) throw new Error('Digest already called')
38826 this._finalized = true
38828 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38829 var digest = this._state.squeeze(this._hashBitLength /
8)
38830 if (encoding !== undefined) digest = digest.toString(encoding)
38837 // remove result from memory
38838 Keccak.prototype._resetState = function () {
38839 this._state.initialize(this._rate, this._capacity)
38843 // because sometimes we need hash right now and little later
38844 Keccak.prototype._clone = function () {
38845 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38846 this._state.copy(clone._state)
38847 clone._finalized = this._finalized
38855 }).call(this,require(
"buffer").Buffer)
38856 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38857 (function (Buffer){
38859 var Transform = require('stream').Transform
38860 var inherits = require('inherits')
38862 module.exports = function (KeccakState) {
38863 function Shake (rate, capacity, delimitedSuffix, options) {
38864 Transform.call(this, options)
38867 this._capacity = capacity
38868 this._delimitedSuffix = delimitedSuffix
38869 this._options = options
38871 this._state = new KeccakState()
38872 this._state.initialize(rate, capacity)
38873 this._finalized = false
38876 inherits(Shake, Transform)
38878 Shake.prototype._transform = function (chunk, encoding, callback) {
38881 this.update(chunk, encoding)
38889 Shake.prototype._flush = function () {}
38891 Shake.prototype._read = function (size) {
38892 this.push(this.squeeze(size))
38895 Shake.prototype.update = function (data, encoding) {
38896 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38897 if (this._finalized) throw new Error('Squeeze already called')
38898 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38900 this._state.absorb(data)
38905 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38906 if (!this._finalized) {
38907 this._finalized = true
38908 this._state.absorbLastFewBits(this._delimitedSuffix)
38911 var data = this._state.squeeze(dataByteLength)
38912 if (encoding !== undefined) data = data.toString(encoding)
38917 Shake.prototype._resetState = function () {
38918 this._state.initialize(this._rate, this._capacity)
38922 Shake.prototype._clone = function () {
38923 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38924 this._state.copy(clone._state)
38925 clone._finalized = this._finalized
38933 }).call(this,require(
"buffer").Buffer)
38934 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38936 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]
38938 exports.p1600 = function (s) {
38939 for (var round =
0; round <
24; ++round) {
38941 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38942 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38943 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38944 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38945 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38946 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38947 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38948 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38949 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38950 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38952 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38953 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38954 var t1slo0 = s[
0] ^ lo
38955 var t1shi0 = s[
1] ^ hi
38956 var t1slo5 = s[
10] ^ lo
38957 var t1shi5 = s[
11] ^ hi
38958 var t1slo10 = s[
20] ^ lo
38959 var t1shi10 = s[
21] ^ hi
38960 var t1slo15 = s[
30] ^ lo
38961 var t1shi15 = s[
31] ^ hi
38962 var t1slo20 = s[
40] ^ lo
38963 var t1shi20 = s[
41] ^ hi
38964 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38965 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38966 var t1slo1 = s[
2] ^ lo
38967 var t1shi1 = s[
3] ^ hi
38968 var t1slo6 = s[
12] ^ lo
38969 var t1shi6 = s[
13] ^ hi
38970 var t1slo11 = s[
22] ^ lo
38971 var t1shi11 = s[
23] ^ hi
38972 var t1slo16 = s[
32] ^ lo
38973 var t1shi16 = s[
33] ^ hi
38974 var t1slo21 = s[
42] ^ lo
38975 var t1shi21 = s[
43] ^ hi
38976 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38977 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38978 var t1slo2 = s[
4] ^ lo
38979 var t1shi2 = s[
5] ^ hi
38980 var t1slo7 = s[
14] ^ lo
38981 var t1shi7 = s[
15] ^ hi
38982 var t1slo12 = s[
24] ^ lo
38983 var t1shi12 = s[
25] ^ hi
38984 var t1slo17 = s[
34] ^ lo
38985 var t1shi17 = s[
35] ^ hi
38986 var t1slo22 = s[
44] ^ lo
38987 var t1shi22 = s[
45] ^ hi
38988 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38989 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38990 var t1slo3 = s[
6] ^ lo
38991 var t1shi3 = s[
7] ^ hi
38992 var t1slo8 = s[
16] ^ lo
38993 var t1shi8 = s[
17] ^ hi
38994 var t1slo13 = s[
26] ^ lo
38995 var t1shi13 = s[
27] ^ hi
38996 var t1slo18 = s[
36] ^ lo
38997 var t1shi18 = s[
37] ^ hi
38998 var t1slo23 = s[
46] ^ lo
38999 var t1shi23 = s[
47] ^ hi
39000 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
39001 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
39002 var t1slo4 = s[
8] ^ lo
39003 var t1shi4 = s[
9] ^ hi
39004 var t1slo9 = s[
18] ^ lo
39005 var t1shi9 = s[
19] ^ hi
39006 var t1slo14 = s[
28] ^ lo
39007 var t1shi14 = s[
29] ^ hi
39008 var t1slo19 = s[
38] ^ lo
39009 var t1shi19 = s[
39] ^ hi
39010 var t1slo24 = s[
48] ^ lo
39011 var t1shi24 = s[
49] ^ hi
39014 var t2slo0 = t1slo0
39015 var t2shi0 = t1shi0
39016 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
39017 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
39018 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
39019 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
39020 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
39021 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
39022 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
39023 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
39024 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
39025 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
39026 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
39027 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
39028 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
39029 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
39030 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
39031 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
39032 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
39033 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
39034 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
39035 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
39036 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
39037 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
39038 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
39039 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
39040 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
39041 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
39042 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
39043 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
39044 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
39045 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
39046 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
39047 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
39048 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
39049 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
39050 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
39051 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
39052 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
39053 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
39054 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
39055 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
39056 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
39057 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
39058 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
39059 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
39060 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
39061 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
39062 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
39063 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
39066 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
39067 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
39068 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
39069 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
39070 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
39071 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
39072 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
39073 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
39074 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
39075 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
39076 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
39077 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
39078 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
39079 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
39080 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
39081 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
39082 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
39083 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
39084 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
39085 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
39086 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
39087 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
39088 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
39089 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
39090 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
39091 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
39092 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
39093 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
39094 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
39095 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
39096 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
39097 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
39098 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
39099 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
39100 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
39101 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
39102 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
39103 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
39104 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
39105 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
39106 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
39107 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
39108 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
39109 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
39110 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
39111 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
39112 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
39113 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39114 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39115 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39118 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39119 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39123 },{}],
70:[function(require,module,exports){
39124 (function (Buffer){
39126 var keccakState = require('./keccak-state-unroll')
39128 function Keccak () {
39129 // much faster than `new Array(
50)`
39138 this.blockSize = null
39140 this.squeezing = false
39143 Keccak.prototype.initialize = function (rate, capacity) {
39144 for (var i =
0; i <
50; ++i) this.state[i] =
0
39145 this.blockSize = rate /
8
39147 this.squeezing = false
39150 Keccak.prototype.absorb = function (data) {
39151 for (var i =
0; i < data.length; ++i) {
39152 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39154 if (this.count === this.blockSize) {
39155 keccakState.p1600(this.state)
39161 Keccak.prototype.absorbLastFewBits = function (bits) {
39162 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39163 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39164 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39165 keccakState.p1600(this.state)
39167 this.squeezing = true
39170 Keccak.prototype.squeeze = function (length) {
39171 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39173 var output = Buffer.allocUnsafe(length)
39174 for (var i =
0; i < length; ++i) {
39175 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39177 if (this.count === this.blockSize) {
39178 keccakState.p1600(this.state)
39186 Keccak.prototype.copy = function (dest) {
39187 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39188 dest.blockSize = this.blockSize
39189 dest.count = this.count
39190 dest.squeezing = this.squeezing
39193 module.exports = Keccak
39195 }).call(this,require("buffer").Buffer)
39196 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39197 (function (Buffer){
39200 code.google.com/p/crypto-js
39201 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39202 code.google.com/p/crypto-js/wiki/License
39205 (c)
2012 by Cédric Mesnil. All rights reserved.
39207 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39209 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39210 - 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.
39212 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.
39217 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39218 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39219 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39220 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39221 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39225 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39226 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39227 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39228 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39229 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39233 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39234 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39235 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39236 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39237 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39241 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39242 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39243 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39244 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39245 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39248 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39249 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39251 function bytesToWords (bytes) {
39253 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39254 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39259 function wordsToBytes (words) {
39261 for (var b =
0; b < words.length *
32; b +=
8) {
39262 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39267 function processBlock (H, M, offset) {
39269 for (var i =
0; i <
16; i++) {
39270 var offset_i = offset + i
39271 var M_offset_i = M[offset_i]
39275 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39276 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39280 // Working variables
39281 var al, bl, cl, dl, el
39282 var ar, br, cr, dr, er
39292 for (i =
0; i <
80; i +=
1) {
39293 t = (al + M[offset + zl[i]]) |
0
39295 t += f1(bl, cl, dl) + hl[
0]
39296 } else if (i <
32) {
39297 t += f2(bl, cl, dl) + hl[
1]
39298 } else if (i <
48) {
39299 t += f3(bl, cl, dl) + hl[
2]
39300 } else if (i <
64) {
39301 t += f4(bl, cl, dl) + hl[
3]
39302 } else {// if (i
<80) {
39303 t += f5(bl, cl, dl) + hl[
4]
39314 t = (ar + M[offset + zr[i]]) |
0
39316 t += f5(br, cr, dr) + hr[
0]
39317 } else if (i <
32) {
39318 t += f4(br, cr, dr) + hr[
1]
39319 } else if (i <
48) {
39320 t += f3(br, cr, dr) + hr[
2]
39321 } else if (i <
64) {
39322 t += f2(br, cr, dr) + hr[
3]
39323 } else {// if (i
<80) {
39324 t += f1(br, cr, dr) + hr[
4]
39337 // intermediate hash value
39338 t = (H[
1] + cl + dr) |
0
39339 H[
1] = (H[
2] + dl + er) |
0
39340 H[
2] = (H[
3] + el + ar) |
0
39341 H[
3] = (H[
4] + al + br) |
0
39342 H[
4] = (H[
0] + bl + cr) |
0
39346 function f1 (x, y, z) {
39347 return ((x) ^ (y) ^ (z))
39350 function f2 (x, y, z) {
39351 return (((x) & (y)) | ((~x) & (z)))
39354 function f3 (x, y, z) {
39355 return (((x) | (~(y))) ^ (z))
39358 function f4 (x, y, z) {
39359 return (((x) & (z)) | ((y) & (~(z))))
39362 function f5 (x, y, z) {
39363 return ((x) ^ ((y) | (~(z))))
39366 function rotl (x, n) {
39367 return (x << n) | (x
>>> (
32 - n))
39370 function ripemd160 (message) {
39371 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39373 if (typeof message === 'string') {
39374 message = new Buffer(message, 'utf8')
39377 var m = bytesToWords(message)
39379 var nBitsLeft = message.length *
8
39380 var nBitsTotal = message.length *
8
39383 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39384 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39385 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39386 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39389 for (var i =
0; i < m.length; i +=
16) {
39390 processBlock(H, m, i)
39394 for (i =
0; i <
5; i++) {
39399 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39400 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39403 var digestbytes = wordsToBytes(H)
39404 return new Buffer(digestbytes)
39407 module.exports = ripemd160
39409 }).call(this,require(
"buffer").Buffer)
39410 },{
"buffer":
5}],
72:[function(require,module,exports){
39411 (function (Buffer){
39412 const assert = require('assert')
39414 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39415 * This function takes in a data, convert it to buffer if not, and a length for recursion
39417 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39418 * @returns {Buffer} - returns buffer of encoded data
39420 exports.encode = function (input) {
39421 if (input instanceof Array) {
39423 for (var i =
0; i < input.length; i++) {
39424 output.push(exports.encode(input[i]))
39426 var buf = Buffer.concat(output)
39427 return Buffer.concat([encodeLength(buf.length,
192), buf])
39429 input = toBuffer(input)
39430 if (input.length ===
1 && input[
0] <
128) {
39433 return Buffer.concat([encodeLength(input.length,
128), input])
39438 function safeParseInt (v, base) {
39439 if (v.slice(
0,
2) === '
00') {
39440 throw (new Error('invalid RLP: extra zeros'))
39443 return parseInt(v, base)
39446 function encodeLength (len, offset) {
39448 return new Buffer([len + offset])
39450 var hexLength = intToHex(len)
39451 var lLength = hexLength.length /
2
39452 var firstByte = intToHex(offset +
55 + lLength)
39453 return new Buffer(firstByte + hexLength, 'hex')
39458 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39459 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39460 * @returns {Array} - returns decode Array of Buffers containg the original message
39462 exports.decode = function (input, stream) {
39463 if (!input || input.length ===
0) {
39464 return new Buffer([])
39467 input = toBuffer(input)
39468 var decoded = _decode(input)
39474 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39475 return decoded.data
39478 exports.getLength = function (input) {
39479 if (!input || input.length ===
0) {
39480 return new Buffer([])
39483 input = toBuffer(input)
39484 var firstByte = input[
0]
39485 if (firstByte <=
0x7f) {
39486 return input.length
39487 } else if (firstByte <=
0xb7) {
39488 return firstByte -
0x7f
39489 } else if (firstByte <=
0xbf) {
39490 return firstByte -
0xb6
39491 } else if (firstByte <=
0xf7) {
39492 // a list between
0-
55 bytes long
39493 return firstByte -
0xbf
39495 // a list over
55 bytes long
39496 var llength = firstByte -
0xf6
39497 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39498 return llength + length
39502 function _decode (input) {
39503 var length, llength, data, innerRemainder, d
39505 var firstByte = input[
0]
39507 if (firstByte <=
0x7f) {
39508 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39510 data: input.slice(
0,
1),
39511 remainder: input.slice(
1)
39513 } else if (firstByte <=
0xb7) {
39514 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39515 // The range of the first byte is [
0x80,
0xb7]
39516 length = firstByte -
0x7f
39518 // set
0x80 null to
0
39519 if (firstByte ===
0x80) {
39520 data = new Buffer([])
39522 data = input.slice(
1, length)
39525 if (length ===
2 && data[
0] <
0x80) {
39526 throw new Error('invalid rlp encoding: byte must be less
0x80')
39531 remainder: input.slice(length)
39533 } else if (firstByte <=
0xbf) {
39534 llength = firstByte -
0xb6
39535 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39536 data = input.slice(llength, length + llength)
39537 if (data.length < length) {
39538 throw (new Error('invalid RLP'))
39543 remainder: input.slice(length + llength)
39545 } else if (firstByte <=
0xf7) {
39546 // a list between
0-
55 bytes long
39547 length = firstByte -
0xbf
39548 innerRemainder = input.slice(
1, length)
39549 while (innerRemainder.length) {
39550 d = _decode(innerRemainder)
39551 decoded.push(d.data)
39552 innerRemainder = d.remainder
39557 remainder: input.slice(length)
39560 // a list over
55 bytes long
39561 llength = firstByte -
0xf6
39562 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39563 var totalLength = llength + length
39564 if (totalLength
> input.length) {
39565 throw new Error('invalid rlp: total length is larger than the data')
39568 innerRemainder = input.slice(llength, totalLength)
39569 if (innerRemainder.length ===
0) {
39570 throw new Error('invalid rlp, List has a invalid length')
39573 while (innerRemainder.length) {
39574 d = _decode(innerRemainder)
39575 decoded.push(d.data)
39576 innerRemainder = d.remainder
39580 remainder: input.slice(totalLength)
39585 function isHexPrefixed (str) {
39586 return str.slice(
0,
2) === '
0x'
39589 // Removes
0x from a given String
39590 function stripHexPrefix (str) {
39591 if (typeof str !== 'string') {
39594 return isHexPrefixed(str) ? str.slice(
2) : str
39597 function intToHex (i) {
39598 var hex = i.toString(
16)
39599 if (hex.length %
2) {
39606 function padToEven (a) {
39607 if (a.length %
2) a = '
0' + a
39611 function intToBuffer (i) {
39612 var hex = intToHex(i)
39613 return new Buffer(hex, 'hex')
39616 function toBuffer (v) {
39617 if (!Buffer.isBuffer(v)) {
39618 if (typeof v === 'string') {
39619 if (isHexPrefixed(v)) {
39620 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39624 } else if (typeof v === 'number') {
39630 } else if (v === null || v === undefined) {
39632 } else if (v.toArray) {
39633 // converts a BN to a Buffer
39634 v = new Buffer(v.toArray())
39636 throw new Error('invalid type')
39642 }).call(this,require("buffer").Buffer)
39643 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39645 module.exports = require('./lib')(require('./lib/elliptic'))
39647 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39648 (function (Buffer){
39650 var toString = Object.prototype.toString
39653 exports.isArray = function (value, message) {
39654 if (!Array.isArray(value)) throw TypeError(message)
39657 exports.isBoolean = function (value, message) {
39658 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39661 exports.isBuffer = function (value, message) {
39662 if (!Buffer.isBuffer(value)) throw TypeError(message)
39665 exports.isFunction = function (value, message) {
39666 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39669 exports.isNumber = function (value, message) {
39670 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39673 exports.isObject = function (value, message) {
39674 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39678 exports.isBufferLength = function (buffer, length, message) {
39679 if (buffer.length !== length) throw RangeError(message)
39682 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39683 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39686 exports.isLengthGTZero = function (value, message) {
39687 if (value.length ===
0) throw RangeError(message)
39690 exports.isNumberInInterval = function (number, x, y, message) {
39691 if (number <= x || number
>= y) throw RangeError(message)
39694 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39695 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39696 (function (Buffer){
39698 var bip66 = require('bip66')
39700 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39702 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39704 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39705 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39707 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39708 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39709 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39710 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39711 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39712 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39713 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39714 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39715 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39717 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39718 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39722 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39724 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39726 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39727 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39729 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39730 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39731 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39732 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39733 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39734 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39735 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39736 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39737 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39738 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39739 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39741 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39742 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39743 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39744 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39748 var ZERO_BUFFER_32 = new Buffer([
39749 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39750 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39753 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39754 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39755 privateKey.copy(result, compressed ?
8 :
9)
39756 publicKey.copy(result, compressed ?
181 :
214)
39760 exports.privateKeyImport = function (privateKey) {
39761 var length = privateKey.length
39765 if (length < index +
1 || privateKey[index] !==
0x30) return
39768 // sequence length constructor
39769 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39771 var lenb = privateKey[index] &
0x7f
39773 if (lenb <
1 || lenb
> 2) return
39774 if (length < index + lenb) return
39777 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39779 if (length < index + len) return
39781 // sequence element
0: version number (=
1)
39782 if (length < index +
3 ||
39783 privateKey[index] !==
0x02 ||
39784 privateKey[index +
1] !==
0x01 ||
39785 privateKey[index +
2] !==
0x01) {
39790 // sequence element
1: octet string, up to
32 bytes
39791 if (length < index +
2 ||
39792 privateKey[index] !==
0x04 ||
39793 privateKey[index +
1]
> 0x20 ||
39794 length < index +
2 + privateKey[index +
1]) {
39798 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39801 exports.signatureExport = function (sigObj) {
39802 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39803 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39805 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39806 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39808 return bip66.encode(r.slice(posR), s.slice(posS))
39811 exports.signatureImport = function (sig) {
39812 var r = new Buffer(ZERO_BUFFER_32)
39813 var s = new Buffer(ZERO_BUFFER_32)
39816 var sigObj = bip66.decode(sig)
39817 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39818 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39819 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39820 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39825 sigObj.r.copy(r,
32 - sigObj.r.length)
39826 sigObj.s.copy(s,
32 - sigObj.s.length)
39828 return { r: r, s: s }
39831 exports.signatureImportLax = function (sig) {
39832 var r = new Buffer(ZERO_BUFFER_32)
39833 var s = new Buffer(ZERO_BUFFER_32)
39835 var length = sig.length
39838 // sequence tag byte
39839 if (sig[index++] !==
0x30) return
39841 // sequence length byte
39842 var lenbyte = sig[index++]
39843 if (lenbyte &
0x80) {
39844 index += lenbyte -
0x80
39845 if (index
> length) return
39848 // sequence tag byte for r
39849 if (sig[index++] !==
0x02) return
39852 var rlen = sig[index++]
39854 lenbyte = rlen -
0x80
39855 if (index + lenbyte
> length) return
39856 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39857 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39859 if (rlen
> length - index) return
39863 // sequence tag byte for s
39864 if (sig[index++] !==
0x02) return
39867 var slen = sig[index++]
39869 lenbyte = slen -
0x80
39870 if (index + lenbyte
> length) return
39871 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39872 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39874 if (slen
> length - index) return
39878 // ignore leading zeros in r
39879 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39881 if (rlen
> 32) return
39882 var rvalue = sig.slice(rindex, rindex + rlen)
39883 rvalue.copy(r,
32 - rvalue.length)
39885 // ignore leading zeros in s
39886 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39888 if (slen
> 32) return
39889 var svalue = sig.slice(sindex, sindex + slen)
39890 svalue.copy(s,
32 - svalue.length)
39892 return { r: r, s: s }
39895 }).call(this,require(
"buffer").Buffer)
39896 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39897 (function (Buffer){
39899 var createHash = require('create-hash')
39900 var BN = require('bn.js')
39901 var EC = require('elliptic').ec
39903 var messages = require('../messages.json')
39905 var ec = new EC('secp256k1')
39906 var ecparams = ec.curve
39908 function loadCompressedPublicKey (first, xBuffer) {
39909 var x = new BN(xBuffer)
39912 if (x.cmp(ecparams.p)
>=
0) return null
39913 x = x.toRed(ecparams.red)
39915 // compute corresponding Y
39916 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39917 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39919 return ec.keyPair({ pub: { x: x, y: y } })
39922 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39923 var x = new BN(xBuffer)
39924 var y = new BN(yBuffer)
39927 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39929 x = x.toRed(ecparams.red)
39930 y = y.toRed(ecparams.red)
39933 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39936 var x3 = x.redSqr().redIMul(x)
39937 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39939 return ec.keyPair({ pub: { x: x, y: y } })
39942 function loadPublicKey (publicKey) {
39943 var first = publicKey[
0]
39947 if (publicKey.length !==
33) return null
39948 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39952 if (publicKey.length !==
65) return null
39953 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39959 exports.privateKeyVerify = function (privateKey) {
39960 var bn = new BN(privateKey)
39961 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39964 exports.privateKeyExport = function (privateKey, compressed) {
39965 var d = new BN(privateKey)
39966 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39968 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39971 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39972 var bn = new BN(tweak)
39973 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39975 bn.iadd(new BN(privateKey))
39976 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39977 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39979 return bn.toArrayLike(Buffer, 'be',
32)
39982 exports.privateKeyTweakMul = function (privateKey, tweak) {
39983 var bn = new BN(tweak)
39984 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39986 bn.imul(new BN(privateKey))
39987 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39989 return bn.toArrayLike(Buffer, 'be',
32)
39992 exports.publicKeyCreate = function (privateKey, compressed) {
39993 var d = new BN(privateKey)
39994 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39996 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39999 exports.publicKeyConvert = function (publicKey, compressed) {
40000 var pair = loadPublicKey(publicKey)
40001 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40003 return new Buffer(pair.getPublic(compressed, true))
40006 exports.publicKeyVerify = function (publicKey) {
40007 return loadPublicKey(publicKey) !== null
40010 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
40011 var pair = loadPublicKey(publicKey)
40012 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40014 tweak = new BN(tweak)
40015 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
40017 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
40020 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
40021 var pair = loadPublicKey(publicKey)
40022 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40024 tweak = new BN(tweak)
40025 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
40027 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
40030 exports.publicKeyCombine = function (publicKeys, compressed) {
40031 var pairs = new Array(publicKeys.length)
40032 for (var i =
0; i < publicKeys.length; ++i) {
40033 pairs[i] = loadPublicKey(publicKeys[i])
40034 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40037 var point = pairs[
0].pub
40038 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
40039 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
40041 return new Buffer(point.encode(true, compressed))
40044 exports.signatureNormalize = function (signature) {
40045 var r = new BN(signature.slice(
0,
32))
40046 var s = new BN(signature.slice(
32,
64))
40047 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40049 var result = new Buffer(signature)
40050 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
40055 exports.signatureExport = function (signature) {
40056 var r = signature.slice(
0,
32)
40057 var s = signature.slice(
32,
64)
40058 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40060 return { r: r, s: s }
40063 exports.signatureImport = function (sigObj) {
40064 var r = new BN(sigObj.r)
40065 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
40067 var s = new BN(sigObj.s)
40068 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
40070 return Buffer.concat([
40071 r.toArrayLike(Buffer, 'be',
32),
40072 s.toArrayLike(Buffer, 'be',
32)
40076 exports.sign = function (message, privateKey, noncefn, data) {
40077 if (typeof noncefn === 'function') {
40078 var getNonce = noncefn
40079 noncefn = function (counter) {
40080 var nonce = getNonce(message, privateKey, null, data, counter)
40081 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
40083 return new BN(nonce)
40087 var d = new BN(privateKey)
40088 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
40090 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
40092 signature: Buffer.concat([
40093 result.r.toArrayLike(Buffer, 'be',
32),
40094 result.s.toArrayLike(Buffer, 'be',
32)
40096 recovery: result.recoveryParam
40100 exports.verify = function (message, signature, publicKey) {
40101 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40103 var sigr = new BN(sigObj.r)
40104 var sigs = new BN(sigObj.s)
40105 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40106 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
40108 var pair = loadPublicKey(publicKey)
40109 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40111 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40114 exports.recover = function (message, signature, recovery, compressed) {
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)
40122 if (sigr.isZero() || sigs.isZero()) throw new Error()
40124 var point = ec.recoverPubKey(message, sigObj, recovery)
40125 return new Buffer(point.encode(true, compressed))
40127 throw new Error(messages.ECDSA_RECOVER_FAIL)
40131 exports.ecdh = function (publicKey, privateKey) {
40132 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40133 return createHash('sha256').update(shared).digest()
40136 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40137 var pair = loadPublicKey(publicKey)
40138 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40140 var scalar = new BN(privateKey)
40141 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40143 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40146 }).call(this,require("buffer").Buffer)
40147 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40149 var assert = require('./assert')
40150 var der = require('./der')
40151 var messages = require('./messages.json')
40153 function initCompressedValue (value, defaultValue) {
40154 if (value === undefined) return defaultValue
40156 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40160 module.exports = function (secp256k1) {
40162 privateKeyVerify: function (privateKey) {
40163 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40164 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40167 privateKeyExport: function (privateKey, compressed) {
40168 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40169 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40171 compressed = initCompressedValue(compressed, true)
40172 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40174 return der.privateKeyExport(privateKey, publicKey, compressed)
40177 privateKeyImport: function (privateKey) {
40178 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40180 privateKey = der.privateKeyImport(privateKey)
40181 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40183 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40186 privateKeyTweakAdd: function (privateKey, tweak) {
40187 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40188 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40190 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40191 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40193 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40196 privateKeyTweakMul: function (privateKey, tweak) {
40197 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40198 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40200 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40201 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40203 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40206 publicKeyCreate: function (privateKey, compressed) {
40207 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40208 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40210 compressed = initCompressedValue(compressed, true)
40212 return secp256k1.publicKeyCreate(privateKey, compressed)
40215 publicKeyConvert: function (publicKey, compressed) {
40216 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40217 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40219 compressed = initCompressedValue(compressed, true)
40221 return secp256k1.publicKeyConvert(publicKey, compressed)
40224 publicKeyVerify: function (publicKey) {
40225 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40226 return secp256k1.publicKeyVerify(publicKey)
40229 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40230 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40231 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40233 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40234 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40236 compressed = initCompressedValue(compressed, true)
40238 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40241 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40242 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40243 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40245 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40246 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40248 compressed = initCompressedValue(compressed, true)
40250 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40253 publicKeyCombine: function (publicKeys, compressed) {
40254 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40255 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40256 for (var i =
0; i < publicKeys.length; ++i) {
40257 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40258 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40261 compressed = initCompressedValue(compressed, true)
40263 return secp256k1.publicKeyCombine(publicKeys, compressed)
40266 signatureNormalize: function (signature) {
40267 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40268 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40270 return secp256k1.signatureNormalize(signature)
40273 signatureExport: function (signature) {
40274 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40275 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40277 var sigObj = secp256k1.signatureExport(signature)
40278 return der.signatureExport(sigObj)
40281 signatureImport: function (sig) {
40282 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40283 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40285 var sigObj = der.signatureImport(sig)
40286 if (sigObj) return secp256k1.signatureImport(sigObj)
40288 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40291 signatureImportLax: function (sig) {
40292 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40293 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40295 var sigObj = der.signatureImportLax(sig)
40296 if (sigObj) return secp256k1.signatureImport(sigObj)
40298 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40301 sign: function (message, privateKey, options) {
40302 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40303 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40305 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40306 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40310 if (options !== undefined) {
40311 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40313 if (options.data !== undefined) {
40314 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40315 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40316 data = options.data
40319 if (options.noncefn !== undefined) {
40320 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40321 noncefn = options.noncefn
40325 return secp256k1.sign(message, privateKey, noncefn, data)
40328 verify: function (message, signature, publicKey) {
40329 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40330 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40332 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40333 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40335 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40336 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40338 return secp256k1.verify(message, signature, publicKey)
40341 recover: function (message, signature, recovery, compressed) {
40342 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40343 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40345 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40346 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40348 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40349 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40351 compressed = initCompressedValue(compressed, true)
40353 return secp256k1.recover(message, signature, recovery, compressed)
40356 ecdh: function (publicKey, privateKey) {
40357 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40358 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40360 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40361 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40363 return secp256k1.ecdh(publicKey, privateKey)
40366 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40367 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40368 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40370 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40371 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40373 compressed = initCompressedValue(compressed, true)
40375 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40380 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40382 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40383 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40384 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40385 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40386 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40387 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40388 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40389 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40390 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40391 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40392 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40393 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40394 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40395 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40396 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40397 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40398 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40399 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40400 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40401 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40402 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40403 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40404 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40405 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40406 "MSG32_TYPE_INVALID": "message should be a Buffer",
40407 "MSG32_LENGTH_INVALID": "message length is invalid",
40408 "OPTIONS_TYPE_INVALID": "options should be an Object",
40409 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40410 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40411 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40412 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40413 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40414 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40415 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40418 },{}],
79:[function(require,module,exports){
40419 (function (Buffer){
40420 // prototype class for hash functions
40421 function Hash (blockSize, finalSize) {
40422 this._block = new Buffer(blockSize)
40423 this._finalSize = finalSize
40424 this._blockSize = blockSize
40429 Hash.prototype.update = function (data, enc) {
40430 if (typeof data === 'string') {
40431 enc = enc || 'utf8'
40432 data = new Buffer(data, enc)
40435 var l = this._len += data.length
40436 var s = this._s ||
0
40438 var buffer = this._block
40441 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40444 for (var i =
0; i < ch; i++) {
40445 buffer[(s % this._blockSize) + i] = data[i + f]
40451 if ((s % this._blockSize) ===
0) {
40452 this._update(buffer)
40460 Hash.prototype.digest = function (enc) {
40461 // Suppose the length of the message M, in bits, is l
40462 var l = this._len *
8
40464 // Append the bit
1 to the end of the message
40465 this._block[this._len % this._blockSize] =
0x80
40467 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40468 this._block.fill(
0, this._len % this._blockSize +
1)
40470 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40471 this._update(this._block)
40472 this._block.fill(
0)
40475 // to this append the block which is equal to the number l written in binary
40476 // TODO: handle case where l is
> Math.pow(
2,
29)
40477 this._block.writeInt32BE(l, this._blockSize -
4)
40479 var hash = this._update(this._block) || this._hash()
40481 return enc ? hash.toString(enc) : hash
40484 Hash.prototype._update = function () {
40485 throw new Error('_update must be implemented by subclass')
40488 module.exports = Hash
40490 }).call(this,require("buffer").Buffer)
40491 },{"buffer":
5}],
80:[function(require,module,exports){
40492 var exports = module.exports = function SHA (algorithm) {
40493 algorithm = algorithm.toLowerCase()
40495 var Algorithm = exports[algorithm]
40496 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40498 return new Algorithm()
40501 exports.sha = require('./sha')
40502 exports.sha1 = require('./sha1')
40503 exports.sha224 = require('./sha224')
40504 exports.sha256 = require('./sha256')
40505 exports.sha384 = require('./sha384')
40506 exports.sha512 = require('./sha512')
40508 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40509 (function (Buffer){
40511 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40512 * in FIPS PUB
180-
1
40513 * This source code is derived from sha1.js of the same repository.
40514 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40515 * operation was added.
40518 var inherits = require('inherits')
40519 var Hash = require('./hash')
40522 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40525 var W = new Array(
80)
40531 Hash.call(this,
64,
56)
40534 inherits(Sha, Hash)
40536 Sha.prototype.init = function () {
40537 this._a =
0x67452301
40538 this._b =
0xefcdab89
40539 this._c =
0x98badcfe
40540 this._d =
0x10325476
40541 this._e =
0xc3d2e1f0
40546 function rotl5 (num) {
40547 return (num <<
5) | (num
>>> 27)
40550 function rotl30 (num) {
40551 return (num <<
30) | (num
>>> 2)
40554 function ft (s, b, c, d) {
40555 if (s ===
0) return (b & c) | ((~b) & d)
40556 if (s ===
2) return (b & c) | (b & d) | (c & d)
40560 Sha.prototype._update = function (M) {
40563 var a = this._a |
0
40564 var b = this._b |
0
40565 var c = this._c |
0
40566 var d = this._d |
0
40567 var e = this._e |
0
40569 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40570 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40572 for (var j =
0; j <
80; ++j) {
40574 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40583 this._a = (a + this._a) |
0
40584 this._b = (b + this._b) |
0
40585 this._c = (c + this._c) |
0
40586 this._d = (d + this._d) |
0
40587 this._e = (e + this._e) |
0
40590 Sha.prototype._hash = function () {
40591 var H = new Buffer(
20)
40593 H.writeInt32BE(this._a |
0,
0)
40594 H.writeInt32BE(this._b |
0,
4)
40595 H.writeInt32BE(this._c |
0,
8)
40596 H.writeInt32BE(this._d |
0,
12)
40597 H.writeInt32BE(this._e |
0,
16)
40602 module.exports = Sha
40604 }).call(this,require(
"buffer").Buffer)
40605 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40606 (function (Buffer){
40608 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40609 * in FIPS PUB
180-
1
40610 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40611 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40612 * Distributed under the BSD License
40613 * See http://pajhome.org.uk/crypt/md5 for details.
40616 var inherits = require('inherits')
40617 var Hash = require('./hash')
40620 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40623 var W = new Array(
80)
40629 Hash.call(this,
64,
56)
40632 inherits(Sha1, Hash)
40634 Sha1.prototype.init = function () {
40635 this._a =
0x67452301
40636 this._b =
0xefcdab89
40637 this._c =
0x98badcfe
40638 this._d =
0x10325476
40639 this._e =
0xc3d2e1f0
40644 function rotl1 (num) {
40645 return (num <<
1) | (num
>>> 31)
40648 function rotl5 (num) {
40649 return (num <<
5) | (num
>>> 27)
40652 function rotl30 (num) {
40653 return (num <<
30) | (num
>>> 2)
40656 function ft (s, b, c, d) {
40657 if (s ===
0) return (b & c) | ((~b) & d)
40658 if (s ===
2) return (b & c) | (b & d) | (c & d)
40662 Sha1.prototype._update = function (M) {
40665 var a = this._a |
0
40666 var b = this._b |
0
40667 var c = this._c |
0
40668 var d = this._d |
0
40669 var e = this._e |
0
40671 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40672 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40674 for (var j =
0; j <
80; ++j) {
40676 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40685 this._a = (a + this._a) |
0
40686 this._b = (b + this._b) |
0
40687 this._c = (c + this._c) |
0
40688 this._d = (d + this._d) |
0
40689 this._e = (e + this._e) |
0
40692 Sha1.prototype._hash = function () {
40693 var H = new Buffer(
20)
40695 H.writeInt32BE(this._a |
0,
0)
40696 H.writeInt32BE(this._b |
0,
4)
40697 H.writeInt32BE(this._c |
0,
8)
40698 H.writeInt32BE(this._d |
0,
12)
40699 H.writeInt32BE(this._e |
0,
16)
40704 module.exports = Sha1
40706 }).call(this,require(
"buffer").Buffer)
40707 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40708 (function (Buffer){
40710 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40712 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40713 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40717 var inherits = require('inherits')
40718 var Sha256 = require('./sha256')
40719 var Hash = require('./hash')
40721 var W = new Array(
64)
40723 function Sha224 () {
40726 this._w = W // new Array(
64)
40728 Hash.call(this,
64,
56)
40731 inherits(Sha224, Sha256)
40733 Sha224.prototype.init = function () {
40734 this._a =
0xc1059ed8
40735 this._b =
0x367cd507
40736 this._c =
0x3070dd17
40737 this._d =
0xf70e5939
40738 this._e =
0xffc00b31
40739 this._f =
0x68581511
40740 this._g =
0x64f98fa7
40741 this._h =
0xbefa4fa4
40746 Sha224.prototype._hash = function () {
40747 var H = new Buffer(
28)
40749 H.writeInt32BE(this._a,
0)
40750 H.writeInt32BE(this._b,
4)
40751 H.writeInt32BE(this._c,
8)
40752 H.writeInt32BE(this._d,
12)
40753 H.writeInt32BE(this._e,
16)
40754 H.writeInt32BE(this._f,
20)
40755 H.writeInt32BE(this._g,
24)
40760 module.exports = Sha224
40762 }).call(this,require(
"buffer").Buffer)
40763 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40764 (function (Buffer){
40766 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40768 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40769 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40773 var inherits = require('inherits')
40774 var Hash = require('./hash')
40777 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40778 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40779 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40780 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40781 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40782 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40783 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40784 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40785 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40786 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40787 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40788 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40789 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40790 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40791 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40792 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40795 var W = new Array(
64)
40797 function Sha256 () {
40800 this._w = W // new Array(
64)
40802 Hash.call(this,
64,
56)
40805 inherits(Sha256, Hash)
40807 Sha256.prototype.init = function () {
40808 this._a =
0x6a09e667
40809 this._b =
0xbb67ae85
40810 this._c =
0x3c6ef372
40811 this._d =
0xa54ff53a
40812 this._e =
0x510e527f
40813 this._f =
0x9b05688c
40814 this._g =
0x1f83d9ab
40815 this._h =
0x5be0cd19
40820 function ch (x, y, z) {
40821 return z ^ (x & (y ^ z))
40824 function maj (x, y, z) {
40825 return (x & y) | (z & (x | y))
40828 function sigma0 (x) {
40829 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40832 function sigma1 (x) {
40833 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40836 function gamma0 (x) {
40837 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40840 function gamma1 (x) {
40841 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40844 Sha256.prototype._update = function (M) {
40847 var a = this._a |
0
40848 var b = this._b |
0
40849 var c = this._c |
0
40850 var d = this._d |
0
40851 var e = this._e |
0
40852 var f = this._f |
0
40853 var g = this._g |
0
40854 var h = this._h |
0
40856 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40857 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40859 for (var j =
0; j <
64; ++j) {
40860 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40861 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40873 this._a = (a + this._a) |
0
40874 this._b = (b + this._b) |
0
40875 this._c = (c + this._c) |
0
40876 this._d = (d + this._d) |
0
40877 this._e = (e + this._e) |
0
40878 this._f = (f + this._f) |
0
40879 this._g = (g + this._g) |
0
40880 this._h = (h + this._h) |
0
40883 Sha256.prototype._hash = function () {
40884 var H = new Buffer(
32)
40886 H.writeInt32BE(this._a,
0)
40887 H.writeInt32BE(this._b,
4)
40888 H.writeInt32BE(this._c,
8)
40889 H.writeInt32BE(this._d,
12)
40890 H.writeInt32BE(this._e,
16)
40891 H.writeInt32BE(this._f,
20)
40892 H.writeInt32BE(this._g,
24)
40893 H.writeInt32BE(this._h,
28)
40898 module.exports = Sha256
40900 }).call(this,require(
"buffer").Buffer)
40901 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40902 (function (Buffer){
40903 var inherits = require('inherits')
40904 var SHA512 = require('./sha512')
40905 var Hash = require('./hash')
40907 var W = new Array(
160)
40909 function Sha384 () {
40913 Hash.call(this,
128,
112)
40916 inherits(Sha384, SHA512)
40918 Sha384.prototype.init = function () {
40919 this._ah =
0xcbbb9d5d
40920 this._bh =
0x629a292a
40921 this._ch =
0x9159015a
40922 this._dh =
0x152fecd8
40923 this._eh =
0x67332667
40924 this._fh =
0x8eb44a87
40925 this._gh =
0xdb0c2e0d
40926 this._hh =
0x47b5481d
40928 this._al =
0xc1059ed8
40929 this._bl =
0x367cd507
40930 this._cl =
0x3070dd17
40931 this._dl =
0xf70e5939
40932 this._el =
0xffc00b31
40933 this._fl =
0x68581511
40934 this._gl =
0x64f98fa7
40935 this._hl =
0xbefa4fa4
40940 Sha384.prototype._hash = function () {
40941 var H = new Buffer(
48)
40943 function writeInt64BE (h, l, offset) {
40944 H.writeInt32BE(h, offset)
40945 H.writeInt32BE(l, offset +
4)
40948 writeInt64BE(this._ah, this._al,
0)
40949 writeInt64BE(this._bh, this._bl,
8)
40950 writeInt64BE(this._ch, this._cl,
16)
40951 writeInt64BE(this._dh, this._dl,
24)
40952 writeInt64BE(this._eh, this._el,
32)
40953 writeInt64BE(this._fh, this._fl,
40)
40958 module.exports = Sha384
40960 }).call(this,require(
"buffer").Buffer)
40961 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40962 (function (Buffer){
40963 var inherits = require('inherits')
40964 var Hash = require('./hash')
40967 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40968 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40969 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40970 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40971 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40972 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40973 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40974 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40975 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40976 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40977 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40978 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40979 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40980 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40981 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40982 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40983 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40984 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40985 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40986 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40987 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40988 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40989 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40990 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40991 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40992 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40993 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40994 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40995 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40996 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40997 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40998 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40999 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
41000 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41001 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
41002 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41003 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
41004 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41005 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
41006 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
41009 var W = new Array(
160)
41011 function Sha512 () {
41015 Hash.call(this,
128,
112)
41018 inherits(Sha512, Hash)
41020 Sha512.prototype.init = function () {
41021 this._ah =
0x6a09e667
41022 this._bh =
0xbb67ae85
41023 this._ch =
0x3c6ef372
41024 this._dh =
0xa54ff53a
41025 this._eh =
0x510e527f
41026 this._fh =
0x9b05688c
41027 this._gh =
0x1f83d9ab
41028 this._hh =
0x5be0cd19
41030 this._al =
0xf3bcc908
41031 this._bl =
0x84caa73b
41032 this._cl =
0xfe94f82b
41033 this._dl =
0x5f1d36f1
41034 this._el =
0xade682d1
41035 this._fl =
0x2b3e6c1f
41036 this._gl =
0xfb41bd6b
41037 this._hl =
0x137e2179
41042 function Ch (x, y, z) {
41043 return z ^ (x & (y ^ z))
41046 function maj (x, y, z) {
41047 return (x & y) | (z & (x | y))
41050 function sigma0 (x, xl) {
41051 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
41054 function sigma1 (x, xl) {
41055 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
41058 function Gamma0 (x, xl) {
41059 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
41062 function Gamma0l (x, xl) {
41063 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
41066 function Gamma1 (x, xl) {
41067 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
41070 function Gamma1l (x, xl) {
41071 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
41074 function getCarry (a, b) {
41075 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
41078 Sha512.prototype._update = function (M) {
41081 var ah = this._ah |
0
41082 var bh = this._bh |
0
41083 var ch = this._ch |
0
41084 var dh = this._dh |
0
41085 var eh = this._eh |
0
41086 var fh = this._fh |
0
41087 var gh = this._gh |
0
41088 var hh = this._hh |
0
41090 var al = this._al |
0
41091 var bl = this._bl |
0
41092 var cl = this._cl |
0
41093 var dl = this._dl |
0
41094 var el = this._el |
0
41095 var fl = this._fl |
0
41096 var gl = this._gl |
0
41097 var hl = this._hl |
0
41099 for (var i =
0; i <
32; i +=
2) {
41100 W[i] = M.readInt32BE(i *
4)
41101 W[i +
1] = M.readInt32BE(i *
4 +
4)
41103 for (; i <
160; i +=
2) {
41104 var xh = W[i -
15 *
2]
41105 var xl = W[i -
15 *
2 +
1]
41106 var gamma0 = Gamma0(xh, xl)
41107 var gamma0l = Gamma0l(xl, xh)
41110 xl = W[i -
2 *
2 +
1]
41111 var gamma1 = Gamma1(xh, xl)
41112 var gamma1l = Gamma1l(xl, xh)
41114 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41115 var Wi7h = W[i -
7 *
2]
41116 var Wi7l = W[i -
7 *
2 +
1]
41118 var Wi16h = W[i -
16 *
2]
41119 var Wi16l = W[i -
16 *
2 +
1]
41121 var Wil = (gamma0l + Wi7l) |
0
41122 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41123 Wil = (Wil + gamma1l) |
0
41124 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41125 Wil = (Wil + Wi16l) |
0
41126 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41132 for (var j =
0; j <
160; j +=
2) {
41136 var majh = maj(ah, bh, ch)
41137 var majl = maj(al, bl, cl)
41139 var sigma0h = sigma0(ah, al)
41140 var sigma0l = sigma0(al, ah)
41141 var sigma1h = sigma1(eh, el)
41142 var sigma1l = sigma1(el, eh)
41144 // t1 = h + sigma1 + ch + K[j] + W[j]
41148 var chh = Ch(eh, fh, gh)
41149 var chl = Ch(el, fl, gl)
41151 var t1l = (hl + sigma1l) |
0
41152 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41153 t1l = (t1l + chl) |
0
41154 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41155 t1l = (t1l + Kil) |
0
41156 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41157 t1l = (t1l + Wil) |
0
41158 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41160 // t2 = sigma0 + maj
41161 var t2l = (sigma0l + majl) |
0
41162 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41170 el = (dl + t1l) |
0
41171 eh = (dh + t1h + getCarry(el, dl)) |
0
41178 al = (t1l + t2l) |
0
41179 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41182 this._al = (this._al + al) |
0
41183 this._bl = (this._bl + bl) |
0
41184 this._cl = (this._cl + cl) |
0
41185 this._dl = (this._dl + dl) |
0
41186 this._el = (this._el + el) |
0
41187 this._fl = (this._fl + fl) |
0
41188 this._gl = (this._gl + gl) |
0
41189 this._hl = (this._hl + hl) |
0
41191 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41192 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41193 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41194 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41195 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41196 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41197 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41198 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41201 Sha512.prototype._hash = function () {
41202 var H = new Buffer(
64)
41204 function writeInt64BE (h, l, offset) {
41205 H.writeInt32BE(h, offset)
41206 H.writeInt32BE(l, offset +
4)
41209 writeInt64BE(this._ah, this._al,
0)
41210 writeInt64BE(this._bh, this._bl,
8)
41211 writeInt64BE(this._ch, this._cl,
16)
41212 writeInt64BE(this._dh, this._dl,
24)
41213 writeInt64BE(this._eh, this._el,
32)
41214 writeInt64BE(this._fh, this._fl,
40)
41215 writeInt64BE(this._gh, this._gl,
48)
41216 writeInt64BE(this._hh, this._hl,
56)
41221 module.exports = Sha512
41223 }).call(this,require(
"buffer").Buffer)
41224 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41225 var isHexPrefixed = require('is-hex-prefixed');
41228 * Removes '
0x' from a given `String` is present
41229 * @param {String} str the string value
41230 * @return {String|Optional} a string by pass if necessary
41232 module.exports = function stripHexPrefix(str) {
41233 if (typeof str !== 'string') {
41237 return isHexPrefixed(str) ? str.slice(
2) : str;
41240 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41242 <script>function convertRippleAdrr(address) {
41243 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41244 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41248 function convertRipplePriv(priv) {
41249 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41253 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41257 /** @fileOverview Javascript cryptography implementation.
41259 * Crush to remove comments, shorten variable names and
41260 * generally reduce transmission size.
41262 * @author Emily Stark
41263 * @author Mike Hamburg
41264 * @author Dan Boneh
41268 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41269 /*global document, window, escape, unescape, module, require, Uint32Array */
41271 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41273 /** @namespace Symmetric ciphers. */
41276 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41279 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41282 /** @namespace Block cipher modes of operation. */
41285 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41289 * @namespace Bit array encoders and decoders.
41292 * The members of this namespace are functions which translate between
41293 * SJCL's bitArrays and other objects (usually strings). Because it
41294 * isn't always clear which direction is encoding and which is decoding,
41295 * the method names are "fromBits" and "toBits".
41299 /** @namespace Exceptions. */
41301 /** @constructor Ciphertext is corrupt. */
41302 corrupt: function(message) {
41303 this.toString = function() { return "CORRUPT: "+this.message; };
41304 this.message = message;
41307 /** @constructor Invalid parameter. */
41308 invalid: function(message) {
41309 this.toString = function() { return "INVALID: "+this.message; };
41310 this.message = message;
41313 /** @constructor Bug or missing feature in SJCL. @constructor */
41314 bug: function(message) {
41315 this.toString = function() { return "BUG: "+this.message; };
41316 this.message = message;
41319 /** @constructor Something isn't ready. */
41320 notReady: function(message) {
41321 this.toString = function() { return "NOT READY: "+this.message; };
41322 this.message = message;
41327 if(typeof module !== 'undefined' && module.exports){
41328 module.exports = sjcl;
41330 if (typeof define === "function") {
41331 define([], function () {
41339 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41341 * @author Emily Stark
41342 * @author Mike Hamburg
41343 * @author Dan Boneh
41346 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41350 * These objects are the currency accepted by SJCL's crypto functions.
41354 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41355 * but many of them can take arguments that are not a multiple of
4 bytes.
41356 * This library encodes arrays of bits (whose size need not be a multiple of
8
41357 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41358 * array of words,
32 bits at a time. Since the words are double-precision
41359 * floating point numbers, they fit some extra data. We use this (in a private,
41360 * possibly-changing manner) to encode the number of bits actually present
41361 * in the last word of the array.
41365 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41366 * to ciphers like AES which want arrays of words.
41371 * Array slices in units of bits.
41372 * @param {bitArray} a The array to slice.
41373 * @param {Number} bstart The offset to the start of the slice, in bits.
41374 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41375 * slice until the end of the array.
41376 * @return {bitArray} The requested slice.
41378 bitSlice: function (a, bstart, bend) {
41379 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41380 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41384 * Extract a number packed into a bit array.
41385 * @param {bitArray} a The array to slice.
41386 * @param {Number} bstart The offset to the start of the slice, in bits.
41387 * @param {Number} length The length of the number to extract.
41388 * @return {Number} The requested slice.
41390 extract: function(a, bstart, blength) {
41391 // FIXME: this Math.floor is not necessary at all, but for some reason
41392 // seems to suppress a bug in the Chromium JIT.
41393 var x, sh = Math.floor((-bstart-blength) &
31);
41394 if ((bstart + blength -
1 ^ bstart) & -
32) {
41395 // it crosses a boundary
41396 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41398 // within a single word
41399 x = a[bstart/
32|
0]
>>> sh;
41401 return x & ((
1<
<blength) -
1);
41405 * Concatenate two bit arrays.
41406 * @param {bitArray} a1 The first array.
41407 * @param {bitArray} a2 The second array.
41408 * @return {bitArray} The concatenation of a1 and a2.
41410 concat: function (a1, a2) {
41411 if (a1.length ===
0 || a2.length ===
0) {
41412 return a1.concat(a2);
41415 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41416 if (shift ===
32) {
41417 return a1.concat(a2);
41419 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41424 * Find the length of an array of bits.
41425 * @param {bitArray} a The array.
41426 * @return {Number} The length of a, in bits.
41428 bitLength: function (a) {
41429 var l = a.length, x;
41430 if (l ===
0) { return
0; }
41432 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41436 * Truncate an array.
41437 * @param {bitArray} a The array.
41438 * @param {Number} len The length to truncate to, in bits.
41439 * @return {bitArray} A new array, truncated to len bits.
41441 clamp: function (a, len) {
41442 if (a.length *
32 < len) { return a; }
41443 a = a.slice(
0, Math.ceil(len /
32));
41446 if (l
> 0 && len) {
41447 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41453 * Make a partial word for a bit array.
41454 * @param {Number} len The number of bits in the word.
41455 * @param {Number} x The bits.
41456 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41457 * @return {Number} The partial word.
41459 partial: function (len, x, _end) {
41460 if (len ===
32) { return x; }
41461 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41465 * Get the number of bits used by a partial word.
41466 * @param {Number} x The partial word.
41467 * @return {Number} The number of bits used by the partial word.
41469 getPartial: function (x) {
41470 return Math.round(x/
0x10000000000) ||
32;
41474 * Compare two arrays for equality in a predictable amount of time.
41475 * @param {bitArray} a The first array.
41476 * @param {bitArray} b The second array.
41477 * @return {boolean} true if a == b; false otherwise.
41479 equal: function (a, b) {
41480 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41484 for (i=
0; i
<a.length; i++) {
41490 /** Shift an array right.
41491 * @param {bitArray} a The array to shift.
41492 * @param {Number} shift The number of bits to shift.
41493 * @param {Number} [carry=
0] A byte to carry in
41494 * @param {bitArray} [out=[]] An array to prepend to the output.
41497 _shiftRight: function (a, shift, carry, out) {
41498 var i, last2=
0, shift2;
41499 if (out === undefined) { out = []; }
41501 for (; shift
>=
32; shift -=
32) {
41506 return out.concat(a);
41509 for (i=
0; i
<a.length; i++) {
41510 out.push(carry | a[i]
>>>shift);
41511 carry = a[i] << (
32-shift);
41513 last2 = a.length ? a[a.length-
1] :
0;
41514 shift2 = sjcl.bitArray.getPartial(last2);
41515 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41519 /** xor a block of
4 words together.
41522 _xor4: function(x,y) {
41523 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41526 /** byteswap a word array inplace.
41527 * (does not handle partial words)
41528 * @param {sjcl.bitArray} a word array
41529 * @return {sjcl.bitArray} byteswapped array
41531 byteswapM: function(a) {
41532 var i, v, m =
0xff00;
41533 for (i =
0; i < a.length; ++i) {
41535 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41542 //// codecString.js
41544 /** @fileOverview Bit array codec implementations.
41546 * @author Emily Stark
41547 * @author Mike Hamburg
41548 * @author Dan Boneh
41551 /** @namespace UTF-
8 strings */
41552 sjcl.codec.utf8String = {
41553 /** Convert from a bitArray to a UTF-
8 string. */
41554 fromBits: function (arr) {
41555 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41556 for (i=
0; i
<bl/
8; i++) {
41560 out += String.fromCharCode(tmp
>>> 24);
41563 return decodeURIComponent(escape(out));
41566 /** Convert from a UTF-
8 string to a bitArray. */
41567 toBits: function (str) {
41568 str = unescape(encodeURIComponent(str));
41569 var out = [], i, tmp=
0;
41570 for (i=
0; i
<str.length; i++) {
41571 tmp = tmp <<
8 | str.charCodeAt(i);
41578 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41587 /** @fileOverview Bit array codec implementations.
41589 * @author Emily Stark
41590 * @author Mike Hamburg
41591 * @author Dan Boneh
41594 /** @namespace Hexadecimal */
41596 /** Convert from a bitArray to a hex string. */
41597 fromBits: function (arr) {
41599 for (i=
0; i
<arr.length; i++) {
41600 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41602 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41604 /** Convert from a hex string to a bitArray. */
41605 toBits: function (str) {
41606 var i, out=[], len;
41607 str = str.replace(/\s|
0x/g,
"");
41609 str = str +
"00000000";
41610 for (i=
0; i
<str.length; i+=
8) {
41611 out.push(parseInt(str.substr(i,
8),
16)^
0);
41613 return sjcl.bitArray.clamp(out, len*
4);
41620 /** @fileOverview Javascript SHA-
512 implementation.
41622 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41623 * SJCL by Stefan Thomas.
41625 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41626 * Released with New BSD License
41628 * @author Emily Stark
41629 * @author Mike Hamburg
41630 * @author Dan Boneh
41631 * @author Jeff Mott
41632 * @author Stefan Thomas
41636 * Context for a SHA-
512 operation in progress.
41638 * @class Secure Hash Algorithm,
512 bits.
41640 sjcl.hash.sha512 = function (hash) {
41641 if (!this._key[
0]) { this._precompute(); }
41643 this._h = hash._h.slice(
0);
41644 this._buffer = hash._buffer.slice(
0);
41645 this._length = hash._length;
41652 * Hash a string or an array of words.
41654 * @param {bitArray|String} data the data to hash.
41655 * @return {bitArray} The hash value, an array of
16 big-endian words.
41657 sjcl.hash.sha512.hash = function (data) {
41658 return (new sjcl.hash.sha512()).update(data).finalize();
41661 sjcl.hash.sha512.prototype = {
41663 * The hash's block size, in bits.
41669 * Reset the hash state.
41672 reset:function () {
41673 this._h = this._init.slice(
0);
41680 * Input several words to the hash.
41681 * @param {bitArray|String} data the data to hash.
41684 update: function (data) {
41685 if (typeof data ===
"string") {
41686 data = sjcl.codec.utf8String.toBits(data);
41688 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41690 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41691 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41692 this._block(b.splice(
0,
32));
41698 * Complete hashing and output the hash value.
41699 * @return {bitArray} The hash value, an array of
16 big-endian words.
41701 finalize:function () {
41702 var i, b = this._buffer, h = this._h;
41704 // Round out and push the buffer
41705 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41707 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41708 for (i = b.length +
4; i &
31; i++) {
41712 // append the length
41715 b.push(Math.floor(this._length /
0x100000000));
41716 b.push(this._length |
0);
41719 this._block(b.splice(
0,
32));
41727 * The SHA-
512 initialization vector, to be precomputed.
41733 * Least significant
24 bits of SHA512 initialization values.
41735 * Javascript only has
53 bits of precision, so we compute the
40 most
41736 * significant bits and add the remaining
24 bits as constants.
41740 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41744 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41745 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41749 * The SHA-
512 hash key, to be precomputed.
41755 * Least significant
24 bits of SHA512 key values.
41759 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41760 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41761 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41762 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41763 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41764 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41765 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41766 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41767 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41768 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41772 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41773 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41774 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41775 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41776 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41777 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41778 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41779 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41780 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41781 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41782 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41783 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41784 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41785 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41786 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41787 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41788 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41789 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41790 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41791 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41795 * Function to precompute _init and _key.
41798 _precompute: function () {
41799 // XXX: This code is for precomputing the SHA256 constants, change for
41800 // SHA512 and re-enable.
41801 var i =
0, prime =
2, factor;
41803 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41804 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41806 outer: for (; i
<80; prime++) {
41807 for (factor=
2; factor*factor <= prime; factor++) {
41808 if (prime % factor ===
0) {
41815 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41816 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41818 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41819 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41825 * Perform one cycle of SHA-
512.
41826 * @param {bitArray} words one block of words.
41829 _block:function (words) {
41831 w = words.slice(
0),
41834 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41835 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41836 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41837 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41839 // Working variables
41840 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41841 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41842 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41843 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41845 for (i=
0; i
<80; i++) {
41846 // load up the input word for this round
41849 wrl = w[i *
2 +
1];
41852 var gamma0xh = w[(i-
15) *
2];
41853 var gamma0xl = w[(i-
15) *
2 +
1];
41855 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41856 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41859 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41860 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41861 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41864 var gamma1xh = w[(i-
2) *
2];
41865 var gamma1xl = w[(i-
2) *
2 +
1];
41867 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41868 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41871 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41872 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41873 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41876 var wr7h = w[(i-
7) *
2];
41877 var wr7l = w[(i-
7) *
2 +
1];
41879 var wr16h = w[(i-
16) *
2];
41880 var wr16l = w[(i-
16) *
2 +
1];
41882 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41883 wrl = gamma0l + wr7l;
41884 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41886 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41888 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41892 w[i*
2 +
1] = wrl |=
0;
41895 var chh = (eh & fh) ^ (~eh & gh);
41896 var chl = (el & fl) ^ (~el & gl);
41899 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41900 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41903 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41904 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41907 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41908 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41912 var krl = k[i*
2+
1];
41914 // t1 = h + sigma1 + ch + K(round) + W(round)
41915 var t1l = hl + sigma1l;
41916 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41918 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41920 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41921 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41922 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41924 // t2 = sigma0 + maj
41925 var t2l = sigma0l + majl;
41926 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41928 // Update working variables
41935 el = (dl + t1l) |
0;
41936 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41943 al = (t1l + t2l) |
0;
41944 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41947 // Intermediate hash
41948 h0l = h[
1] = (h0l + al) |
0;
41949 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41950 h1l = h[
3] = (h1l + bl) |
0;
41951 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41952 h2l = h[
5] = (h2l + cl) |
0;
41953 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41954 h3l = h[
7] = (h3l + dl) |
0;
41955 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41956 h4l = h[
9] = (h4l + el) |
0;
41957 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41958 h5l = h[
11] = (h5l + fl) |
0;
41959 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41960 h6l = h[
13] = (h6l + gl) |
0;
41961 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41962 h7l = h[
15] = (h7l + hl) |
0;
41963 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41970 /** @fileOverview HMAC implementation.
41972 * @author Emily Stark
41973 * @author Mike Hamburg
41974 * @author Dan Boneh
41977 /** HMAC with the specified hash function.
41979 * @param {bitArray} key the key for HMAC.
41980 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41982 sjcl.misc.hmac = function (key, Hash) {
41983 this._hash = Hash = Hash || sjcl.hash.sha256;
41984 var exKey = [[],[]], i,
41985 bs = Hash.prototype.blockSize /
32;
41986 this._baseHash = [new Hash(), new Hash()];
41988 if (key.length
> bs) {
41989 key = Hash.hash(key);
41992 for (i=
0; i
<bs; i++) {
41993 exKey[
0][i] = key[i]^
0x36363636;
41994 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41997 this._baseHash[
0].update(exKey[
0]);
41998 this._baseHash[
1].update(exKey[
1]);
41999 this._resultHash = new Hash(this._baseHash[
0]);
42002 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
42003 * @param {bitArray|String} data The data to mac.
42005 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
42006 if (!this._updated) {
42008 return this.digest(data);
42010 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
42014 sjcl.misc.hmac.prototype.reset = function () {
42015 this._resultHash = new this._hash(this._baseHash[
0]);
42016 this._updated = false;
42019 sjcl.misc.hmac.prototype.update = function (data) {
42020 this._updated = true;
42021 this._resultHash.update(data);
42024 sjcl.misc.hmac.prototype.digest = function () {
42025 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
42036 /** @fileOverview Password-based key-derivation function, version
2.0.
42038 * @author Emily Stark
42039 * @author Mike Hamburg
42040 * @author Dan Boneh
42043 /** Password-Based Key-Derivation Function, version
2.0.
42045 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
42047 * This is the method specified by RSA's PKCS #
5 standard.
42049 * @param {bitArray|String} password The password.
42050 * @param {bitArray|String} salt The salt. Should have lots of entropy.
42051 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
42052 * @param {Number} [length] The length of the derived key. Defaults to the
42053 output size of the hash function.
42054 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
42055 * @return {bitArray} the derived key.
42057 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
42058 count = count ||
1000;
42060 if (length <
0 || count <
0) {
42061 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
42064 if (typeof password ===
"string") {
42065 password = sjcl.codec.utf8String.toBits(password);
42068 if (typeof salt ===
"string") {
42069 salt = sjcl.codec.utf8String.toBits(salt);
42072 Prff = Prff || sjcl.misc.hmac;
42074 var prf = new Prff(password),
42075 u, ui, i, j, k, out = [], b = sjcl.bitArray;
42077 for (k =
1;
32 * out.length < (length ||
1); k++) {
42078 u = ui = prf.encrypt(b.concat(salt,[k]));
42080 for (i=
1; i
<count; i++) {
42081 ui = prf.encrypt(ui);
42082 for (j=
0; j
<ui.length; j++) {
42087 out = out.concat(u);
42090 if (length) { out = b.clamp(out, length); }
42098 /** @fileOverview Javascript SHA-
256 implementation.
42100 * An older version of this implementation is available in the public
42101 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
42102 * Stanford University
2008-
2010 and BSD-licensed for liability
42105 * Special thanks to Aldo Cortesi for pointing out several bugs in
42108 * @author Emily Stark
42109 * @author Mike Hamburg
42110 * @author Dan Boneh
42114 * Context for a SHA-
256 operation in progress.
42116 * @class Secure Hash Algorithm,
256 bits.
42118 sjcl.hash.sha256 = function (hash) {
42119 if (!this._key[
0]) { this._precompute(); }
42121 this._h = hash._h.slice(
0);
42122 this._buffer = hash._buffer.slice(
0);
42123 this._length = hash._length;
42130 * Hash a string or an array of words.
42132 * @param {bitArray|String} data the data to hash.
42133 * @return {bitArray} The hash value, an array of
16 big-endian words.
42135 sjcl.hash.sha256.hash = function (data) {
42136 return (new sjcl.hash.sha256()).update(data).finalize();
42139 sjcl.hash.sha256.prototype = {
42141 * The hash's block size, in bits.
42147 * Reset the hash state.
42150 reset:function () {
42151 this._h = this._init.slice(
0);
42158 * Input several words to the hash.
42159 * @param {bitArray|String} data the data to hash.
42162 update: function (data) {
42163 if (typeof data ===
"string") {
42164 data = sjcl.codec.utf8String.toBits(data);
42166 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42168 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42169 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42170 this._block(b.splice(
0,
16));
42176 * Complete hashing and output the hash value.
42177 * @return {bitArray} The hash value, an array of
8 big-endian words.
42179 finalize:function () {
42180 var i, b = this._buffer, h = this._h;
42182 // Round out and push the buffer
42183 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42185 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42186 for (i = b.length +
2; i &
15; i++) {
42190 // append the length
42191 b.push(Math.floor(this._length /
0x100000000));
42192 b.push(this._length |
0);
42195 this._block(b.splice(
0,
16));
42203 * The SHA-
256 initialization vector, to be precomputed.
42208 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42212 * The SHA-
256 hash key, to be precomputed.
42218 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42219 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42220 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42221 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42222 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42223 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42224 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42225 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42230 * Function to precompute _init and _key.
42233 _precompute: function () {
42234 var i =
0, prime =
2, factor;
42236 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42238 outer: for (; i
<64; prime++) {
42239 for (factor=
2; factor*factor <= prime; factor++) {
42240 if (prime % factor ===
0) {
42247 this._init[i] = frac(Math.pow(prime,
1/
2));
42249 this._key[i] = frac(Math.pow(prime,
1/
3));
42255 * Perform one cycle of SHA-
256.
42256 * @param {bitArray} words one block of words.
42259 _block:function (words) {
42261 w = words.slice(
0),
42264 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42265 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42267 /* Rationale for placement of |
0 :
42268 * If a value can overflow is original
32 bits by a factor of more than a few
42269 * million (
2^
23 ish), there is a possibility that it might overflow the
42270 *
53-bit mantissa and lose precision.
42272 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42273 * propagates around the loop, and on the hash state h[]. I don't believe
42274 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42275 * (for h4 anyway), and better safe than sorry.
42277 * The clamps on h[] are necessary for the output to be correct even in the
42278 * common case and for short inputs.
42280 for (i=
0; i
<64; i++) {
42281 // load up the input word for this round
42285 a = w[(i+
1 ) &
15];
42286 b = w[(i+
14) &
15];
42287 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42288 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42289 w[i&
15] + w[(i+
9) &
15]) |
0;
42292 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42295 h7 = h6; h6 = h5; h5 = h4;
42297 h3 = h2; h2 = h1; h1 = h0;
42299 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42302 h[
0] = h[
0]+h0 |
0;
42303 h[
1] = h[
1]+h1 |
0;
42304 h[
2] = h[
2]+h2 |
0;
42305 h[
3] = h[
3]+h3 |
0;
42306 h[
4] = h[
4]+h4 |
0;
42307 h[
5] = h[
5]+h5 |
0;
42308 h[
6] = h[
6]+h6 |
0;
42309 h[
7] = h[
7]+h7 |
0;
42313 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42314 WORDLISTS["english"] = [
42315 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42316 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42317 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42318 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42319 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42320 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42321 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42322 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42323 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42324 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42325 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42326 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42327 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42328 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42329 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42330 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42331 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42332 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42333 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42334 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42335 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42336 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42337 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42338 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42339 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42340 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42341 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42342 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42343 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42344 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42345 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42346 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42347 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42348 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42349 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42350 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42351 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42352 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42353 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42354 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42355 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42356 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42357 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42358 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42359 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42360 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42361 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42362 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42363 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42364 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42365 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42366 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42367 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42368 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42369 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42370 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42371 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42372 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42373 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42374 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42375 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42376 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42377 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42378 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42379 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42380 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42381 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42382 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42383 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42384 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42385 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42386 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42387 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42388 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42389 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42390 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42391 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42392 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42393 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42394 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42395 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42396 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42397 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42398 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42399 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42400 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42401 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42402 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42403 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42404 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42405 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42406 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42407 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42408 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42409 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42410 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42411 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42412 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42413 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42414 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42415 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42416 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42417 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42418 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42419 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42420 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42421 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42422 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42423 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42424 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42425 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42426 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42427 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42428 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42429 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42430 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42431 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42432 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42433 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42434 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42435 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42436 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42437 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42438 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42439 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42440 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42441 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42442 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42443 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42444 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42445 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42446 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42447 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42448 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42449 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42450 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42451 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42452 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42453 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42454 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42455 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42456 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42457 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42458 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42459 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42460 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42461 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42462 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42463 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42464 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42465 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42466 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42467 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42468 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42469 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42470 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42471 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42472 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42473 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42474 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42475 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42476 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42477 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42478 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42479 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42480 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42481 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42482 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42483 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42484 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42485 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42486 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42487 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42488 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42489 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42490 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42491 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42492 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42493 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42494 "thank","that","theme","then","theory","there","they","thing","this","thought",
42495 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42496 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42497 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42498 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42499 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42500 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42501 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42502 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42503 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42504 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42505 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42506 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42507 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42508 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42509 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42510 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42511 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42512 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42513 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42514 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42515 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42516 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42517 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42518 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42519 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42521 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42522 WORDLISTS["japanese"] = [
42523 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42524 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42525 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42526 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42527 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42528 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42529 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42530 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42531 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42532 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42533 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42534 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42535 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42536 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
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 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42729 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42730 WORDLISTS["spanish"] = [
42731 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42732 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42733 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42734 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42735 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42736 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42737 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42738 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42739 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42740 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42741 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42742 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42743 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42744 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42745 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42746 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42747 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42748 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42749 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42750 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42751 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42752 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42753 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42754 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42755 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42756 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42757 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42758 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42759 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42760 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42761 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42762 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42763 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42764 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42765 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42766 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42767 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42768 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42769 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42770 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42771 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42772 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42773 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42774 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42775 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42776 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42777 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42778 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42779 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42780 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42781 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42782 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42783 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42784 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42785 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42786 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42787 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42788 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42789 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42790 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42791 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42792 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42793 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42794 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42795 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42796 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42797 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42798 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42799 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42800 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42801 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42802 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42803 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42804 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42805 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42806 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42807 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42808 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42809 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42810 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42811 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42812 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42813 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42814 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42815 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42816 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42817 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42818 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42819 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42820 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42821 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42822 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42823 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42824 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42825 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42826 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42827 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42828 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42829 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42830 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42831 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42832 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42833 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42834 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42835 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42836 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42837 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42838 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42839 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42840 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42841 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42842 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42843 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42844 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42845 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42846 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42847 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42848 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42849 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42850 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42851 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42852 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42853 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42854 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42855 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42856 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42857 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42858 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42859 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42860 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42861 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42862 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42863 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42864 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
42865 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
42866 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
42867 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
42868 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
42869 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
42870 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
42871 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
42872 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
42873 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
42874 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
42875 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
42876 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
42877 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
42878 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
42879 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
42880 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
42881 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
42882 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
42883 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
42884 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
42885 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
42886 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
42887 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
42888 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
42889 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
42890 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
42891 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
42892 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
42893 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
42894 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
42895 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
42896 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
42897 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
42898 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
42899 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
42900 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
42901 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
42902 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
42903 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
42904 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
42905 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
42906 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
42907 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
42908 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
42909 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
42910 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
42911 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
42912 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
42913 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
42914 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
42915 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
42916 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
42917 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
42918 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
42919 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
42920 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
42921 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
42922 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
42923 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
42924 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
42925 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
42926 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
42927 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
42928 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
42929 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
42930 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
42931 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
42932 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
42933 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
42934 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
42935 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
42937 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42938 WORDLISTS["chinese_simplified"] = [
42939 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
42940 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
42941 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
42942 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
42943 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
42944 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
42945 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
42946 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
42947 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
42948 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
42949 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
42950 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
42951 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
42952 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
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 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43145 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43146 WORDLISTS["chinese_traditional"] = [
43147 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43148 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43149 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43150 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43151 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43152 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43153 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43154 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43155 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43156 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43157 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43158 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43159 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43160 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
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 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43353 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43354 WORDLISTS["french"] = [
43355 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43356 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43357 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43358 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43359 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43360 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43361 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43362 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43363 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43364 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43365 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43366 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43367 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43368 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43369 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43370 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43371 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43372 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43373 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43374 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43375 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43376 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43377 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43378 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43379 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43380 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43381 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43382 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43383 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43384 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43385 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43386 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43387 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43388 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43389 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43390 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43391 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43392 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43393 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43394 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43395 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43396 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43397 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43398 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43399 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43400 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43401 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43402 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43403 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43404 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43405 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43406 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43407 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43408 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43409 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43410 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43411 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43412 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43413 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43414 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43415 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43416 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43417 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43418 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43419 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43420 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43421 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43422 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43423 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43424 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43425 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43426 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43427 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43428 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43429 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43430 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43431 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43432 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43433 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43434 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43435 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43436 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43437 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43438 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43439 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43440 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43441 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43442 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43443 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43444 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43445 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43446 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43447 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43448 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43449 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43450 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43451 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43452 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43453 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43454 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43455 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43456 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43457 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43458 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43459 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43460 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43461 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43462 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43463 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43464 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43465 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43466 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43467 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43468 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43469 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43470 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43471 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43472 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43473 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43474 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43475 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43476 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43477 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43478 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43479 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43480 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43481 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43482 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43483 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43484 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43485 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43486 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43487 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43488 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43489 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43490 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43491 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43492 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43493 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43494 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43495 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43496 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43497 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43498 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43499 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43500 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43501 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43502 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43503 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43504 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43505 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43506 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43507 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43508 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43509 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43510 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43511 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43512 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43513 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43514 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43515 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43516 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43517 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43518 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43519 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43520 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43521 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43522 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43523 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43524 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43525 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43526 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43527 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43528 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43529 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43530 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43531 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43532 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43533 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43534 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43535 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43536 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43537 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43538 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43539 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43540 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43541 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43542 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43543 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43544 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43545 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43546 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43547 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43548 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43549 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43550 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43551 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43552 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43553 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43554 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43555 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43556 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43557 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43558 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43559 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43561 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43562 WORDLISTS["italian"] = [
43563 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43564 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43565 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43566 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43567 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43568 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43569 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43570 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43571 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43572 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43573 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43574 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43575 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43576 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43577 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43578 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43579 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43580 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43581 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43582 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43583 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43584 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43585 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43586 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43587 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43588 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43589 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43590 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43591 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43592 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43593 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43594 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43595 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43596 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43597 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43598 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43599 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43600 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43601 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43602 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43603 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43604 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43605 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43606 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43607 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43608 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43609 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43610 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43611 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43612 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43613 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43614 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43615 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43616 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43617 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43618 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43619 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43620 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43621 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43622 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43623 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43624 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43625 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43626 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43627 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43628 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43629 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43630 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43631 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43632 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43633 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43634 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43635 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43636 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43637 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43638 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43639 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43640 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43641 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43642 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43643 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43644 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43645 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43646 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43647 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43648 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43649 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43650 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43651 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43652 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43653 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43654 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43655 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43656 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43657 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43658 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43659 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43660 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43661 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43662 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43663 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43664 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43665 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43666 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43667 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43668 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43669 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43670 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43671 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43672 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43673 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43674 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43675 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43676 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43677 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43678 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43679 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43680 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43681 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43682 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43683 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43684 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43685 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43686 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43687 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43688 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43689 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43690 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43691 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43692 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43693 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43694 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43695 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43696 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43697 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43698 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43699 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43700 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43701 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43702 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43703 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43704 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43705 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43706 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43707 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43708 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43709 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43710 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43711 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43712 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43713 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43714 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43715 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43716 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43717 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43718 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43719 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43720 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43721 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43722 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43723 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43724 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43725 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43726 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43727 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43728 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43729 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43730 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43731 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43732 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43733 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43734 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43735 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43736 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43737 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43738 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43739 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43740 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43741 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43742 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43743 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43744 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43745 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43746 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43747 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43748 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43749 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43750 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43751 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43752 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43753 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43754 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43755 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43756 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43757 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43758 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43759 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43760 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43761 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43762 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43763 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43764 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43765 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43766 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43767 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43770 * Copyright (c)
2013 Pavol Rusnak
43772 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43773 * this software and associated documentation files (the "Software"), to deal in
43774 * the Software without restriction, including without limitation the rights to
43775 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43776 * of the Software, and to permit persons to whom the Software is furnished to do
43777 * so, subject to the following conditions:
43779 * The above copyright notice and this permission notice shall be included in all
43780 * copies or substantial portions of the Software.
43782 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43783 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43784 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43785 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43786 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43787 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43791 * Javascript port from python by Ian Coleman
43793 * Requires code from sjcl
43794 * https://github.com/bitwiseshiftleft/sjcl
43797 var Mnemonic = function(language) {
43799 var PBKDF2_ROUNDS =
2048;
43805 var hmacSHA512 = function(key) {
43806 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43807 this.encrypt = function() {
43808 return hasher.encrypt.apply(hasher, arguments);
43813 wordlist = WORDLISTS[language];
43814 if (wordlist.length != RADIX) {
43815 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43820 self.generate = function(strength) {
43821 strength = strength ||
128;
43822 var r = strength %
32;
43824 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43826 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43827 if (!hasStrongCrypto) {
43828 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43830 var buffer = new Uint8Array(strength /
8);
43831 var data = crypto.getRandomValues(buffer);
43832 return self.toMnemonic(data);
43835 self.toMnemonic = function(byteArray) {
43836 if (byteArray.length %
4 > 0) {
43837 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43840 //h = hashlib.sha256(data).hexdigest()
43841 var data = byteArrayToWordArray(byteArray);
43842 var hash = sjcl.hash.sha256.hash(data);
43843 var h = sjcl.codec.hex.fromBits(hash);
43845 // b is a binary string, eg '
00111010101100...'
43846 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43847 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43849 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43850 // c = bin(int(h,
16))[
2:].zfill(
256)
43851 // d = c[:len(data) *
8 /
32]
43852 var a = byteArrayToBinaryString(byteArray);
43853 var c = zfill(hexStringToBinaryString(h),
256);
43854 var d = c.substring(
0, byteArray.length *
8 /
32);
43855 // b = line1 + line2
43859 var blen = b.length /
11;
43860 for (var i=
0; i
<blen; i++) {
43861 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43862 result.push(wordlist[idx]);
43864 return self.joinWords(result);
43867 self.check = function(mnemonic) {
43868 var mnemonic = self.splitWords(mnemonic);
43869 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
43872 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
43874 for (var i=
0; i
<mnemonic.length; i++) {
43875 var word = mnemonic[i];
43876 var wordIndex = wordlist.indexOf(word);
43877 if (wordIndex == -
1) {
43880 var binaryIndex = zfill(wordIndex.toString(
2),
11);
43881 idx.push(binaryIndex);
43883 var b = idx.join('');
43885 //d = b[:l /
33 *
32]
43887 var d = b.substring(
0, l /
33 *
32);
43888 var h = b.substring(l - l /
33, l);
43889 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
43890 var nd = binaryStringToWordArray(d);
43891 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
43892 var ndHash = sjcl.hash.sha256.hash(nd);
43893 var ndHex = sjcl.codec.hex.fromBits(ndHash);
43894 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
43895 var nh = ndBstr.substring(
0,l/
33);
43899 self.toSeed = function(mnemonic, passphrase) {
43900 passphrase = passphrase || '';
43901 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
43902 var mnemonicNormalized = self.normalizeString(mnemonic);
43903 passphrase = self.normalizeString(passphrase)
43904 passphrase =
"mnemonic" + passphrase;
43905 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
43906 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
43907 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
43908 var hashHex = sjcl.codec.hex.fromBits(result);
43912 self.splitWords = function(mnemonic) {
43913 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
43916 self.joinWords = function(words) {
43917 // Set space correctly depending on the language
43918 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
43920 if (language ==
"japanese") {
43921 space =
"\u3000"; // ideographic space
43923 return words.join(space);
43926 self.normalizeString = function(str) {
43927 if (typeof str.normalize ==
"function") {
43928 return str.normalize(
"NFKD");
43931 // TODO decide how to handle this in the future.
43932 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
43937 function byteArrayToWordArray(data) {
43939 for (var i=
0; i
<data.length/
4; i++) {
43941 v += data[i*
4 +
0] <<
8 *
3;
43942 v += data[i*
4 +
1] <<
8 *
2;
43943 v += data[i*
4 +
2] <<
8 *
1;
43944 v += data[i*
4 +
3] <<
8 *
0;
43950 function byteArrayToBinaryString(data) {
43952 for (var i=
0; i
<data.length; i++) {
43953 bin += zfill(data[i].toString(
2),
8);
43958 function hexStringToBinaryString(hexString) {
43960 for (var i=
0; i
<hexString.length; i++) {
43961 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
43963 return binaryString;
43966 function binaryStringToWordArray(binary) {
43967 var aLen = binary.length /
32;
43969 for (var i=
0; i
<aLen; i++) {
43970 var valueStr = binary.substring(
0,
32);
43971 var value = parseInt(valueStr,
2);
43973 binary = binary.slice(
32);
43978 // Pad a numeric string on the left with zero digits until the given width
43980 // Note this differs to the python implementation because it does not
43981 // handle numbers starting with a sign.
43982 function zfill(source, length) {
43983 source = source.toString();
43984 while (source.length < length) {
43985 source = '
0' + source;
43995 JavaScript BigInteger library version
0.9.1
43996 http://silentmatt.com/biginteger/
43998 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
43999 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44000 Licensed under the MIT license.
44002 Support for arbitrary internal representation base was added by
44007 File: biginteger.js
44013 (function(exports) {
44017 An arbitrarily-large integer.
44019 <BigInteger> objects should be considered immutable. None of the "built-in"
44020 methods modify *this* or their arguments. All properties should be
44021 considered private.
44023 All the methods of
<BigInteger> instances can be called "statically". The
44024 static versions are convenient if you don't already have a
<BigInteger>
44027 As an example, these calls are equivalent.
44029 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44030 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44033 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44036 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44039 Constructor: BigInteger()
44040 Convert a value to a
<BigInteger>.
44042 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44043 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44044 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44045 without a radix argument.
44047 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44048 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44049 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44050 > var n3 = BigInteger(n2); // Return n2, unchanged
44052 The constructor form only takes an array and a sign. *n* must be an
44053 array of numbers in little-endian order, where each digit is between
0
44054 and BigInteger.base. The second parameter sets the sign: -
1 for
44055 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44056 may be modified*. If the array contains only zeros, the sign parameter
44057 is ignored and is forced to zero.
44059 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44063 n - Value to convert to a
<BigInteger>.
44067 A
<BigInteger> value.
44071 <parse>,
<BigInteger>
44073 function BigInteger(n, s, token) {
44074 if (token !== CONSTRUCT) {
44075 if (n instanceof BigInteger) {
44078 else if (typeof n === "undefined") {
44081 return BigInteger.parse(n);
44084 n = n || []; // Provide the nullary constructor for subclasses.
44085 while (n.length && !n[n.length -
1]) {
44089 this._s = n.length ? (s ||
1) :
0;
44092 BigInteger._construct = function(n, s) {
44093 return new BigInteger(n, s, CONSTRUCT);
44096 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44097 // require base to be a power of
10.
10^
7 is the largest such power
44098 // that won't cause a precision loss when digits are multiplied.
44099 var BigInteger_base =
10000000;
44100 var BigInteger_base_log10 =
7;
44102 BigInteger.base = BigInteger_base;
44103 BigInteger.base_log10 = BigInteger_base_log10;
44105 var ZERO = new BigInteger([],
0, CONSTRUCT);
44108 BigInteger.ZERO = ZERO;
44110 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44113 BigInteger.ONE = ONE;
44115 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44117 //
<BigInteger> -
1.
44118 BigInteger.M_ONE = M_ONE;
44121 // Shortcut for
<ZERO>.
44122 BigInteger._0 = ZERO;
44125 // Shortcut for
<ONE>.
44126 BigInteger._1 = ONE;
44130 Array of
<BigIntegers> from
0 to
36.
44132 These are used internally for parsing, but useful when you need a "small"
44137 <ZERO>,
<ONE>,
<_0>,
<_1>
44139 BigInteger.small = [
44142 /* Assuming BigInteger_base
> 36 */
44143 new BigInteger( [
2],
1, CONSTRUCT),
44144 new BigInteger( [
3],
1, CONSTRUCT),
44145 new BigInteger( [
4],
1, CONSTRUCT),
44146 new BigInteger( [
5],
1, CONSTRUCT),
44147 new BigInteger( [
6],
1, CONSTRUCT),
44148 new BigInteger( [
7],
1, CONSTRUCT),
44149 new BigInteger( [
8],
1, CONSTRUCT),
44150 new BigInteger( [
9],
1, CONSTRUCT),
44151 new BigInteger([
10],
1, CONSTRUCT),
44152 new BigInteger([
11],
1, CONSTRUCT),
44153 new BigInteger([
12],
1, CONSTRUCT),
44154 new BigInteger([
13],
1, CONSTRUCT),
44155 new BigInteger([
14],
1, CONSTRUCT),
44156 new BigInteger([
15],
1, CONSTRUCT),
44157 new BigInteger([
16],
1, CONSTRUCT),
44158 new BigInteger([
17],
1, CONSTRUCT),
44159 new BigInteger([
18],
1, CONSTRUCT),
44160 new BigInteger([
19],
1, CONSTRUCT),
44161 new BigInteger([
20],
1, CONSTRUCT),
44162 new BigInteger([
21],
1, CONSTRUCT),
44163 new BigInteger([
22],
1, CONSTRUCT),
44164 new BigInteger([
23],
1, CONSTRUCT),
44165 new BigInteger([
24],
1, CONSTRUCT),
44166 new BigInteger([
25],
1, CONSTRUCT),
44167 new BigInteger([
26],
1, CONSTRUCT),
44168 new BigInteger([
27],
1, CONSTRUCT),
44169 new BigInteger([
28],
1, CONSTRUCT),
44170 new BigInteger([
29],
1, CONSTRUCT),
44171 new BigInteger([
30],
1, CONSTRUCT),
44172 new BigInteger([
31],
1, CONSTRUCT),
44173 new BigInteger([
32],
1, CONSTRUCT),
44174 new BigInteger([
33],
1, CONSTRUCT),
44175 new BigInteger([
34],
1, CONSTRUCT),
44176 new BigInteger([
35],
1, CONSTRUCT),
44177 new BigInteger([
36],
1, CONSTRUCT)
44180 // Used for parsing/radix conversion
44181 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44185 Convert a
<BigInteger> to a string.
44187 When *base* is greater than
10, letters are upper case.
44191 base - Optional base to represent the number in (default is base
10).
44192 Must be between
2 and
36 inclusive, or an Error will be thrown.
44196 The string representation of the
<BigInteger>.
44198 BigInteger.prototype.toString = function(base) {
44199 base = +base ||
10;
44200 if (base <
2 || base
> 36) {
44201 throw new Error(
"illegal radix " + base +
".");
44203 if (this._s ===
0) {
44207 var str = this._s <
0 ?
"-" :
"";
44208 str += this._d[this._d.length -
1].toString();
44209 for (var i = this._d.length -
2; i
>=
0; i--) {
44210 var group = this._d[i].toString();
44211 while (group.length < BigInteger_base_log10) group = '
0' + group;
44217 var numerals = BigInteger.digits;
44218 base = BigInteger.small[base];
44219 var sign = this._s;
44221 var n = this.abs();
44225 while (n._s !==
0) {
44226 var divmod = n.divRem(base);
44229 // TODO: This could be changed to unshift instead of reversing at the end.
44230 // Benchmark both to compare speeds.
44231 digits.push(numerals[digit.valueOf()]);
44233 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44237 // Verify strings for parsing
44238 BigInteger.radixRegex = [
44280 Parse a string into a
<BigInteger>.
44282 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44283 *base* is not provided, it will be guessed based on the leading characters
44286 - "
0x" or "
0X": *base* =
16
44287 - "
0c" or "
0C": *base* =
8
44288 - "
0b" or "
0B": *base* =
2
44289 - else: *base* =
10
44291 If no base is provided, or *base* is
10, the number can be in exponential
44292 form. For example, these are all valid:
44294 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44295 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44296 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44298 If any characters fall outside the range defined by the radix, an exception
44303 s - The string to parse.
44304 base - Optional radix (default is to guess based on *s*).
44308 a
<BigInteger> instance.
44310 BigInteger.parse = function(s, base) {
44311 // Expands a number in exponential form to decimal form.
44312 // expandExponential("-
13.441*
10^
5") === "
1344100";
44313 // expandExponential("
1.12300e-1") === "
0.112300";
44314 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44315 function expandExponential(str) {
44316 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44318 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44321 var i = n.length + c;
44322 x = (l ? n : f).length;
44323 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44324 var z = (new Array(c +
1)).join("
0");
44326 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44331 if (typeof base === "undefined" || +base ===
10) {
44332 s = expandExponential(s);
44336 if (typeof base === "undefined") {
44337 prefixRE = '
0[xcb]';
44339 else if (base ==
16) {
44342 else if (base ==
8) {
44345 else if (base ==
2) {
44351 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44353 var sign = parts[
1] || "+";
44354 var baseSection = parts[
2] || "";
44355 var digits = parts[
3] || "";
44357 if (typeof base === "undefined") {
44359 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44362 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44365 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44372 else if (base <
2 || base
> 36) {
44373 throw new Error(
"Illegal radix " + base +
".");
44378 // Check for digits outside the range
44379 if (!(BigInteger.radixRegex[base].test(digits))) {
44380 throw new Error(
"Bad digit for radix " + base);
44383 // Strip leading zeros, and convert to array
44384 digits = digits.replace(/^
0+/,
"").split(
"");
44385 if (digits.length ===
0) {
44389 // Get the sign (we know it's not zero)
44390 sign = (sign ===
"-") ? -
1 :
1;
44395 while (digits.length
>= BigInteger_base_log10) {
44396 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44398 d.push(parseInt(digits.join(''),
10));
44399 return new BigInteger(d, sign, CONSTRUCT);
44402 // Do the conversion
44404 base = BigInteger.small[base];
44405 var small = BigInteger.small;
44406 for (var i =
0; i < digits.length; i++) {
44407 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44409 return new BigInteger(d._d, sign, CONSTRUCT);
44412 throw new Error("Invalid BigInteger format: " + s);
44418 Add two
<BigIntegers>.
44422 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44426 The numbers added together.
44430 <subtract>,
<multiply>,
<quotient>,
<next>
44432 BigInteger.prototype.add = function(n) {
44433 if (this._s ===
0) {
44434 return BigInteger(n);
44441 if (this._s !== n._s) {
44443 return this.subtract(n);
44450 var sum = new Array(Math.max(al, bl) +
1);
44451 var size = Math.min(al, bl);
44455 for (var i =
0; i < size; i++) {
44456 digit = a[i] + b[i] + carry;
44457 sum[i] = digit % BigInteger_base;
44458 carry = (digit / BigInteger_base) |
0;
44464 for (i = size; carry && i < al; i++) {
44465 digit = a[i] + carry;
44466 sum[i] = digit % BigInteger_base;
44467 carry = (digit / BigInteger_base) |
0;
44473 for ( ; i < al; i++) {
44477 return new BigInteger(sum, this._s, CONSTRUCT);
44482 Get the additive inverse of a
<BigInteger>.
44486 A
<BigInteger> with the same magnatude, but with the opposite sign.
44492 BigInteger.prototype.negate = function() {
44493 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44498 Get the absolute value of a
<BigInteger>.
44502 A
<BigInteger> with the same magnatude, but always positive (or zero).
44508 BigInteger.prototype.abs = function() {
44509 return (this._s <
0) ? this.negate() : this;
44514 Subtract two
<BigIntegers>.
44518 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44522 The *n* subtracted from *this*.
44526 <add>,
<multiply>,
<quotient>,
<prev>
44528 BigInteger.prototype.subtract = function(n) {
44529 if (this._s ===
0) {
44530 return BigInteger(n).negate();
44537 if (this._s !== n._s) {
44539 return this.add(n);
44543 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44545 m = new BigInteger(n._d,
1, CONSTRUCT);
44546 n = new BigInteger(this._d,
1, CONSTRUCT);
44549 // Both are positive =
> a - b
44550 var sign = m.compareAbs(n);
44554 else if (sign <
0) {
44566 var diff = new Array(al); // al
>= bl since a
> b
44571 for (i =
0; i < bl; i++) {
44572 digit = a[i] - borrow - b[i];
44574 digit += BigInteger_base;
44582 for (i = bl; i < al; i++) {
44583 digit = a[i] - borrow;
44585 digit += BigInteger_base;
44593 for ( ; i < al; i++) {
44597 return new BigInteger(diff, sign, CONSTRUCT);
44601 function addOne(n, sign) {
44603 var sum = a.slice();
44608 var digit = (a[i] ||
0) +
1;
44609 sum[i] = digit % BigInteger_base;
44610 if (digit <= BigInteger_base -
1) {
44616 return new BigInteger(sum, sign, CONSTRUCT);
44619 function subtractOne(n, sign) {
44621 var sum = a.slice();
44626 var digit = (a[i] ||
0) -
1;
44628 sum[i] = digit + BigInteger_base;
44637 return new BigInteger(sum, sign, CONSTRUCT);
44642 Get the next
<BigInteger> (add one).
44652 BigInteger.prototype.next = function() {
44657 return subtractOne(this, -
1);
44660 return addOne(this,
1);
44666 Get the previous
<BigInteger> (subtract one).
44676 BigInteger.prototype.prev = function() {
44681 return addOne(this, -
1);
44684 return subtractOne(this,
1);
44690 Function: compareAbs
44691 Compare the absolute value of two
<BigIntegers>.
44693 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44697 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44701 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44707 BigInteger.prototype.compareAbs = function(n) {
44712 if (!(n instanceof BigInteger)) {
44713 if (!isFinite(n)) {
44714 return(isNaN(n) ? n : -
1);
44719 if (this._s ===
0) {
44720 return (n._s !==
0) ? -
1 :
0;
44726 var l = this._d.length;
44727 var nl = n._d.length;
44737 for (var i = l-
1; i
>=
0; i--) {
44738 if (a[i] !== b[i]) {
44739 return a[i] < b[i] ? -
1 :
1;
44748 Compare two
<BigIntegers>.
44752 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44756 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44760 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44762 BigInteger.prototype.compare = function(n) {
44769 if (this._s ===
0) {
44773 if (this._s === n._s) { // both positive or both negative
44774 var cmp = this.compareAbs(n);
44775 return cmp * this._s;
44784 Return true iff *this* is either
1 or -
1.
44788 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44792 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44793 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44795 BigInteger.prototype.isUnit = function() {
44796 return this === ONE ||
44798 (this._d.length ===
1 && this._d[
0] ===
1);
44803 Multiply two
<BigIntegers>.
44807 n - The number to multiply *this* by. Will be converted to a
44812 The numbers multiplied together.
44816 <add>,
<subtract>,
<quotient>,
<square>
44818 BigInteger.prototype.multiply = function(n) {
44819 // TODO: Consider adding Karatsuba multiplication for large numbers
44820 if (this._s ===
0) {
44828 if (this.isUnit()) {
44836 return this.negate();
44841 return this.square();
44844 var r = (this._d.length
>= n._d.length);
44845 var a = (r ? this : n)._d; // a will be longer than b
44846 var b = (r ? n : this)._d;
44851 var partial = new Array(pl);
44853 for (i =
0; i < pl; i++) {
44857 for (i =
0; i < bl; i++) {
44860 var jlimit = al + i;
44862 for (var j = i; j < jlimit; j++) {
44863 digit = partial[j] + bi * a[j - i] + carry;
44864 carry = (digit / BigInteger_base) |
0;
44865 partial[j] = (digit % BigInteger_base) |
0;
44868 digit = partial[j] + carry;
44869 carry = (digit / BigInteger_base) |
0;
44870 partial[j] = digit % BigInteger_base;
44873 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
44876 // Multiply a BigInteger by a single-digit native number
44877 // Assumes that this and n are
>=
0
44878 // This is not really intended to be used outside the library itself
44879 BigInteger.prototype.multiplySingleDigit = function(n) {
44880 if (n ===
0 || this._s ===
0) {
44888 if (this._d.length ===
1) {
44889 digit = this._d[
0] * n;
44890 if (digit
>= BigInteger_base) {
44891 return new BigInteger([(digit % BigInteger_base)|
0,
44892 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
44894 return new BigInteger([digit],
1, CONSTRUCT);
44898 return this.add(this);
44900 if (this.isUnit()) {
44901 return new BigInteger([n],
1, CONSTRUCT);
44908 var partial = new Array(pl);
44909 for (var i =
0; i < pl; i++) {
44914 for (var j =
0; j < al; j++) {
44915 digit = n * a[j] + carry;
44916 carry = (digit / BigInteger_base) |
0;
44917 partial[j] = (digit % BigInteger_base) |
0;
44920 partial[j] = carry;
44923 return new BigInteger(partial,
1, CONSTRUCT);
44928 Multiply a
<BigInteger> by itself.
44930 This is slightly faster than regular multiplication, since it removes the
44931 duplicated multiplcations.
44935 > this.multiply(this)
44940 BigInteger.prototype.square = function() {
44941 // Normally, squaring a
10-digit number would take
100 multiplications.
44942 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
44943 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
44944 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
44946 if (this._s ===
0) {
44949 if (this.isUnit()) {
44953 var digits = this._d;
44954 var length = digits.length;
44955 var imult1 = new Array(length + length +
1);
44956 var product, carry, k;
44959 // Calculate diagonal
44960 for (i =
0; i < length; i++) {
44962 product = digits[i] * digits[i];
44963 carry = (product / BigInteger_base) |
0;
44964 imult1[k] = product % BigInteger_base;
44965 imult1[k +
1] = carry;
44968 // Calculate repeating part
44969 for (i =
0; i < length; i++) {
44972 for (var j = i +
1; j < length; j++, k++) {
44973 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
44974 carry = (product / BigInteger_base) |
0;
44975 imult1[k] = product % BigInteger_base;
44978 var digit = carry + imult1[k];
44979 carry = (digit / BigInteger_base) |
0;
44980 imult1[k] = digit % BigInteger_base;
44981 imult1[k +
1] += carry;
44984 return new BigInteger(imult1,
1, CONSTRUCT);
44989 Divide two
<BigIntegers> and truncate towards zero.
44991 <quotient> throws an exception if *n* is zero.
44995 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
44999 The *this* / *n*, truncated to an integer.
45003 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45005 BigInteger.prototype.quotient = function(n) {
45006 return this.divRem(n)[
0];
45011 Deprecated synonym for
<quotient>.
45013 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45016 Function: remainder
45017 Calculate the remainder of two
<BigIntegers>.
45019 <remainder> throws an exception if *n* is zero.
45023 n - The remainder after *this* is divided *this* by *n*. Will be
45024 converted to a
<BigInteger>.
45032 <divRem>,
<quotient>
45034 BigInteger.prototype.remainder = function(n) {
45035 return this.divRem(n)[
1];
45040 Calculate the integer quotient and remainder of two
<BigIntegers>.
45042 <divRem> throws an exception if *n* is zero.
45046 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45050 A two-element array containing the quotient and the remainder.
45054 is exactly equivalent to
45056 > [a.quotient(b), a.remainder(b)]
45058 except it is faster, because they are calculated at the same time.
45062 <quotient>,
<remainder>
45064 BigInteger.prototype.divRem = function(n) {
45067 throw new Error("Divide by zero");
45069 if (this._s ===
0) {
45070 return [ZERO, ZERO];
45072 if (n._d.length ===
1) {
45073 return this.divRemSmall(n._s * n._d[
0]);
45076 // Test for easy cases -- |n1| <= |n2|
45077 switch (this.compareAbs(n)) {
45078 case
0: // n1 == n2
45079 return [this._s === n._s ? ONE : M_ONE, ZERO];
45080 case -
1: // |n1| < |n2|
45081 return [ZERO, this];
45084 var sign = this._s * n._s;
45086 var b_digits = this._d;
45087 var b_index = b_digits.length;
45088 var digits = n._d.length;
45092 var part = new BigInteger([],
0, CONSTRUCT);
45095 part._d.unshift(b_digits[--b_index]);
45096 part = new BigInteger(part._d,
1, CONSTRUCT);
45098 if (part.compareAbs(n) <
0) {
45102 if (part._s ===
0) {
45106 var xlen = part._d.length, ylen = a._d.length;
45107 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45108 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45109 if (part._d.length
> a._d.length) {
45110 // The length of part._d can either match a._d length,
45111 // or exceed it by one.
45112 highx = (highx+
1)*BigInteger_base;
45114 guess = Math.ceil(highx/highy);
45117 var check = a.multiplySingleDigit(guess);
45118 if (check.compareAbs(part) <=
0) {
45128 var diff = part.subtract(check);
45129 part._d = diff._d.slice();
45132 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45133 new BigInteger(part._d, this._s, CONSTRUCT)];
45136 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45137 // [
1, BigInteger.base). It's not necessary to call this, since the
45138 // other division functions will call it if they are able to.
45139 BigInteger.prototype.divRemSmall = function(n) {
45143 throw new Error("Divide by zero");
45146 var n_s = n <
0 ? -
1 :
1;
45147 var sign = this._s * n_s;
45150 if (n <
1 || n
>= BigInteger_base) {
45151 throw new Error("Argument out of range");
45154 if (this._s ===
0) {
45155 return [ZERO, ZERO];
45158 if (n ===
1 || n === -
1) {
45159 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45162 //
2 <= n < BigInteger_base
45164 // divide a single digit by a single digit
45165 if (this._d.length ===
1) {
45166 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45167 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45177 var digits = this._d.slice();
45178 var quot = new Array(digits.length);
45184 while (digits.length) {
45185 part = part * BigInteger_base + digits[digits.length -
1];
45189 diff = BigInteger_base * diff + part;
45196 guess = (part / n) |
0;
45199 var check = n * guess;
45200 diff = part - check;
45211 r = new BigInteger([diff],
1, CONSTRUCT);
45215 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45220 Return true iff *this* is divisible by two.
45222 Note that
<BigInteger.ZERO
> is even.
45226 true if *this* is even, false otherwise.
45232 BigInteger.prototype.isEven = function() {
45233 var digits = this._d;
45234 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45239 Return true iff *this* is not divisible by two.
45243 true if *this* is odd, false otherwise.
45249 BigInteger.prototype.isOdd = function() {
45250 return !this.isEven();
45255 Get the sign of a
<BigInteger>.
45265 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45267 BigInteger.prototype.sign = function() {
45272 Function: isPositive
45273 Return true iff *this*
> 0.
45277 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45281 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45283 BigInteger.prototype.isPositive = function() {
45284 return this._s
> 0;
45288 Function: isNegative
45289 Return true iff *this* <
0.
45293 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45297 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45299 BigInteger.prototype.isNegative = function() {
45300 return this._s <
0;
45305 Return true iff *this* ==
0.
45309 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45313 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45315 BigInteger.prototype.isZero = function() {
45316 return this._s ===
0;
45321 Multiply a
<BigInteger> by a power of
10.
45323 This is equivalent to, but faster than
45326 > return this.multiply(BigInteger("
1e" + n));
45329 > return this.quotient(BigInteger("
1e" + -n));
45334 n - The power of
10 to multiply *this* by. *n* is converted to a
45335 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45336 (
0x7FFFFFFF), or an exception will be thrown.
45340 *this* * (
10 ** *n*), truncated to an integer if necessary.
45346 BigInteger.prototype.exp10 = function(n) {
45351 if (Math.abs(n)
> Number(MAX_EXP)) {
45352 throw new Error("exponent too large in BigInteger.exp10");
45354 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45355 if (this._s ===
0) {
45359 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45361 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45367 k = k.multiplySingleDigit(Math.pow(
10, n));
45368 return (this._s <
0 ? k.negate() : k);
45369 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45372 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45374 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45377 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45383 Raise a
<BigInteger> to a power.
45385 In this implementation,
0**
0 is
1.
45389 n - The exponent to raise *this* by. *n* must be no greater than
45390 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45394 *this* raised to the *nth* power.
45400 BigInteger.prototype.pow = function(n) {
45401 if (this.isUnit()) {
45406 return BigInteger(n).isOdd() ? this : this.negate();
45414 else if (n._s <
0) {
45415 if (this._s ===
0) {
45416 throw new Error(
"Divide by zero");
45422 if (this._s ===
0) {
45429 if (n.compareAbs(MAX_EXP)
> 0) {
45430 throw new Error(
"exponent too large in BigInteger.pow");
45434 var two = BigInteger.small[
2];
45436 while (n.isPositive()) {
45438 aux = aux.multiply(x);
45444 n = n.quotient(two);
45452 Raise a
<BigInteger> to a power (mod m).
45454 Because it is reduced by a modulus,
<modPow> is not limited by
45455 <BigInteger.MAX_EXP
> like
<pow>.
45459 exponent - The exponent to raise *this* by. Must be positive.
45460 modulus - The modulus.
45464 *this* ^ *exponent* (mod *modulus*).
45470 BigInteger.prototype.modPow = function(exponent, modulus) {
45474 while (exponent.isPositive()) {
45475 if (exponent.isOdd()) {
45476 result = result.multiply(base).remainder(modulus);
45479 exponent = exponent.quotient(BigInteger.small[
2]);
45480 if (exponent.isPositive()) {
45481 base = base.square().remainder(modulus);
45490 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45492 This is equivalent to
45494 > Math.log(this.toJSValue())
45496 but handles values outside of the native number range.
45506 BigInteger.prototype.log = function() {
45508 case
0: return -Infinity;
45509 case -
1: return NaN;
45510 default: // Fall through.
45513 var l = this._d.length;
45515 if (l*BigInteger_base_log10 <
30) {
45516 return Math.log(this.valueOf());
45519 var N = Math.ceil(
30/BigInteger_base_log10);
45520 var firstNdigits = this._d.slice(l - N);
45521 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45526 Convert a
<BigInteger> to a native JavaScript integer.
45528 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45533 > parseInt(this.toString(),
10)
45537 <toString>,
<toJSValue>
45539 BigInteger.prototype.valueOf = function() {
45540 return parseInt(this.toString(),
10);
45544 Function: toJSValue
45545 Convert a
<BigInteger> to a native JavaScript integer.
45547 This is the same as valueOf, but more explicitly named.
45551 > parseInt(this.toString(),
10)
45555 <toString>,
<valueOf>
45557 BigInteger.prototype.toJSValue = function() {
45558 return parseInt(this.toString(),
10);
45561 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45562 // Constant: MAX_EXP
45563 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45564 BigInteger.MAX_EXP = MAX_EXP;
45567 function makeUnary(fn) {
45568 return function(a) {
45569 return fn.call(BigInteger(a));
45573 function makeBinary(fn) {
45574 return function(a, b) {
45575 return fn.call(BigInteger(a), BigInteger(b));
45579 function makeTrinary(fn) {
45580 return function(a, b, c) {
45581 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45587 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45588 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45589 var trinary = ["modPow"];
45591 for (i =
0; i < unary.length; i++) {
45593 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45596 for (i =
0; i < binary.length; i++) {
45598 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45601 for (i =
0; i < trinary.length; i++) {
45603 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45606 BigInteger.exp10 = function(x, n) {
45607 return BigInteger(x).exp10(n);
45612 exports.BigInteger = BigInteger;
45613 })(typeof exports !== 'undefined' ? exports : this);
45615 <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){
45616 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;
45618 },{}],
2:[function(require,module,exports){
45619 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;
45621 },{"./scoring":
6}],
3:[function(require,module,exports){
45622 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(","),
45623 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(","),
45624 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(","),
45625 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(","),
45626 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;
45628 },{}],
4:[function(require,module,exports){
45629 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;
45631 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45632 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;
45634 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45635 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;
45637 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45638 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;
45645 * Detects entropy from a string.
45652 * hexadecimal [
0-
9A-F]
45653 * card [A2-
9TJQK][CDHS]
45655 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45656 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45660 window.Entropy = new (function() {
45662 var TWO = new BigInteger(
2);
45664 // matchers returns an array of the matched events for each type of entropy.
45666 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45667 // matchers.binary("a10") returns ["
1", "
0"]
45668 // matchers.hex("a10") returns ["a", "
1", "
0"]
45670 binary: function(str) {
45671 return str.match(/[
0-
1]/gi) || [];
45673 base6: function(str) {
45674 return str.match(/[
0-
5]/gi) || [];
45676 dice: function(str) {
45677 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45679 base10: function(str) {
45680 return str.match(/[
0-
9]/gi) || [];
45682 hex: function(str) {
45683 return str.match(/[
0-
9A-F]/gi) || [];
45685 card: function(str) {
45686 // Format is NumberSuit, eg
45687 // AH ace of hearts
45688 //
8C eight of clubs
45689 // TD ten of diamonds
45690 // JS jack of spades
45691 // QH queen of hearts
45692 // KC king of clubs
45693 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45697 // Convert array of cards from ["ac", "
4d", "ks"]
45698 // to numbers between
0 and
51 [
0,
16,
51]
45699 function convertCardsToInts(cards) {
45701 var values = "a23456789tjqk";
45702 var suits = "cdhs";
45703 for (var i=
0; i
<cards.length; i++) {
45704 var card = cards[i].toLowerCase();
45705 var value = card[
0];
45706 var suit = card[
1];
45707 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45713 this.fromString = function(rawEntropyStr) {
45714 // Find type of entropy being used (binary, hex, dice etc)
45715 var base = getBase(rawEntropyStr);
45716 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45717 // This is done by changing all
6s to
0s
45718 if (base.str ==
"dice") {
45721 for (var i=
0; i
<base.parts.length; i++) {
45722 var c = base.parts[i];
45723 if (
"12345".indexOf(c)
> -
1) {
45724 newParts[i] = base.parts[i];
45725 newInts[i] = base.ints[i];
45732 base.str = "base
6 (dice)";
45733 base.ints = newInts;
45734 base.parts = newParts;
45735 base.matcher = matchers.base6;
45737 // Detect empty entropy
45738 if (base.parts.length ==
0) {
45746 // Convert base.ints to BigInteger.
45747 // Due to using unusual bases, eg cards of base52, this is not as simple as
45748 // using BigInteger.parse()
45749 var entropyInt = BigInteger.ZERO;
45750 for (var i=base.ints.length-
1; i
>=
0; i--) {
45751 var thisInt = BigInteger.parse(base.ints[i]);
45752 var power = (base.ints.length -
1) - i;
45753 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45754 entropyInt = entropyInt.add(additionalEntropy);
45756 // Convert entropy to binary
45757 var entropyBin = entropyInt.toString(
2);
45758 // If the first integer is small, it must be padded with zeros.
45759 // Otherwise the chance of the first bit being
1 is
100%, which is
45760 // obviously incorrect.
45761 // This is not perfect for non-
2^n bases.
45762 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45763 while (entropyBin.length < expectedBits) {
45764 entropyBin = "
0" + entropyBin;
45766 // Calculate the number of bits per event
45767 var bitsPerEvent = Math.log2(base.asInt);
45768 // Cards binary must be handled differently, since they're not replaced
45769 if (base.asInt ==
52) {
45770 var cardEntropy = processCardEntropy(base.parts);
45771 entropyBin = cardEntropy.binaryStr;
45772 bitsPerEvent = cardEntropy.bitsPerEvent;
45774 // Supply a 'filtered' entropy string for display purposes
45775 var entropyClean = base.parts.join("");
45776 var entropyHtml = base.parts.join("");
45777 if (base.asInt ==
52) {
45778 entropyClean = base.parts.join(" ").toUpperCase();
45779 entropyClean = entropyClean.replace(/C/g, "\u2663");
45780 entropyClean = entropyClean.replace(/D/g, "\u2666");
45781 entropyClean = entropyClean.replace(/H/g, "\u2665");
45782 entropyClean = entropyClean.replace(/S/g, "\u2660");
45783 entropyHtml = base.parts.join(" ").toUpperCase();
45784 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45785 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45786 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45787 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45789 // Return the result
45791 binaryStr: entropyBin,
45792 cleanStr: entropyClean,
45793 cleanHtml: entropyHtml,
45794 bitsPerEvent: bitsPerEvent,
45800 function getSortedDeck() {
45802 var suits = "CDHS
";
45803 var values = "A23456789TJQK
";
45804 for (var i=0; i<suits.length; i++) {
45805 for (var j=0; j<values.length; j++) {
45806 s.push(values[j]+suits[i]);
45812 function getBase(str) {
45813 // Need to get the lowest base for the supplied entropy.
45814 // This prevents interpreting, say, dice rolls as hexadecimal.
45815 var binaryMatches = matchers.binary(str);
45816 var hexMatches = matchers.hex(str);
45817 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45818 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45819 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45822 parts: binaryMatches,
45823 matcher: matchers.binary,
45828 var cardMatches = matchers.card(str);
45829 if (cardMatches.length >= hexMatches.length / 2) {
45830 var ints = convertCardsToInts(cardMatches);
45833 parts: cardMatches,
45834 matcher: matchers.card,
45839 var diceMatches = matchers.dice(str);
45840 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45841 var ints = diceMatches.map(function(i) { return parseInt(i) });
45844 parts: diceMatches,
45845 matcher: matchers.dice,
45850 var base6Matches = matchers.base6(str);
45851 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45852 var ints = base6Matches.map(function(i) { return parseInt(i) });
45855 parts: base6Matches,
45856 matcher: matchers.base6,
45861 var base10Matches = matchers.base10(str);
45862 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45863 var ints = base10Matches.map(function(i) { return parseInt(i) });
45866 parts: base10Matches,
45867 matcher: matchers.base10,
45872 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
45876 matcher: matchers.hex,
45878 str:
"hexadecimal",
45882 // Assume cards are NOT replaced.
45883 // Additional entropy decreases as more cards are used. This means
45884 // total possible entropy is measured using n!, not base^n.
45885 // eg the second last card can be only one of two, not one of fifty two
45886 // so the added entropy for that card is only one bit at most
45887 function processCardEntropy(cards) {
45888 // Track how many instances of each card have been used, and thus
45889 // how many decks are in use.
45890 var cardCounts = {};
45891 var numberOfDecks =
0;
45892 // Work out number of decks by max(duplicates)
45893 for (var i=
0; i
<cards.length; i++) {
45894 // Get the card that was drawn
45895 var cardLower = cards[i];
45896 var card = cardLower.toUpperCase();
45897 // Initialize the count for this card if needed
45898 if (!(card in cardCounts)) {
45899 cardCounts[card] =
0;
45901 cardCounts[card] +=
1;
45902 // See if this is max(duplicates)
45903 if (cardCounts[card]
> numberOfDecks) {
45904 numberOfDecks = cardCounts[card];
45907 // Work out the total number of bits for this many decks
45908 // See http://crypto.stackexchange.com/q/
41886
45909 var gainedBits =
0;
45910 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
45911 // which becomes infinity for numberOfDecks
> 4
45912 for (var i=
1; i<=
52*numberOfDecks; i++) {
45913 gainedBits = gainedBits + Math.log2(i);
45915 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
45916 var maxBits = gainedBits - lostBits;
45917 // Convert the drawn cards to a binary representation.
45918 // The exact technique for doing this is unclear.
45920 // http://crypto.stackexchange.com/a/
41896
45921 //
"I even doubt that this is well defined (only the average entropy
45922 // is, I believe)."
45924 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
45925 //
"The binary representation can be the first log(permutations,2) bits
45926 // of the sha-2 hash of the normalized deck string."
45928 // In this specific implementation, the first N bits of the hash of the
45929 // normalized cards string is being used. Uppercase, no spaces; eg
45930 // sha256(
"AH8DQSTC2H")
45931 var totalCards = numberOfDecks *
52;
45932 var percentUsed = cards.length / totalCards;
45933 // Calculate the average number of bits of entropy for the number of
45935 var numberOfBits = Math.floor(maxBits * percentUsed);
45936 // Create a normalized string of the selected cards
45937 var normalizedCards = cards.join(
"").toUpperCase();
45938 // Convert to binary using the SHA256 hash of the normalized cards.
45939 // If the number of bits is more than
256, multiple hashes
45940 // are used until the required number of bits is reached.
45941 var entropyBin =
"";
45942 var iterations =
0;
45943 while (entropyBin.length < numberOfBits) {
45944 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
45945 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
45946 for (var i=
0; i
<hashHex.length; i++) {
45947 var decimal = parseInt(hashHex[i],
16);
45948 var binary = decimal.toString(
2);
45949 while (binary.length <
4) {
45950 binary =
"0" + binary;
45952 entropyBin = entropyBin + binary;
45954 iterations = iterations +
1;
45956 // Truncate to the appropriate number of bits.
45957 entropyBin = entropyBin.substring(
0, numberOfBits);
45958 // Get the number of bits per event
45959 bitsPerEvent = maxBits / totalCards;
45961 binaryStr: entropyBin,
45962 bitsPerEvent: bitsPerEvent,
45966 // Polyfill for Math.log2
45967 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
45968 Math.log2 = Math.log2 || function(x) {
45969 // The polyfill isn't good enough because of the poor accuracy of
45971 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
45972 // So instead use the BigInteger library to get it right.
45973 return BigInteger.log(x) / BigInteger.log(
2);
45976 // Depends on BigInteger
45977 function factorial(n) {
45981 f = BigInteger.ONE;
45982 for (var i=
1; i<=n; i++) {
45983 f = f.multiply(new BigInteger(i));
45990 <script>(function() {
45992 // mnemonics is populated as required by getLanguage
45993 var mnemonics = { "english": new Mnemonic("english") };
45994 var mnemonic = mnemonics["english"];
45996 var bip32RootKey = null;
45997 var bip32ExtendedKey = null;
45998 var network = bitcoinjs.bitcoin.networks.bitcoin;
45999 var addressRowTemplate = $("#address-row-template");
46001 var showIndex = true;
46002 var showAddress = true;
46003 var showPubKey = true;
46004 var showPrivKey = true;
46005 var showQr = false;
46006 var litecoinUseLtub = false;
46008 var entropyChangeTimeoutEvent = null;
46009 var phraseChangeTimeoutEvent = null;
46010 var rootKeyChangedTimeoutEvent = null;
46012 var generationProcesses = [];
46015 DOM.network = $(".network");
46016 DOM.bip32Client = $("#bip32-client");
46017 DOM.phraseNetwork = $("#network-phrase");
46018 DOM.useEntropy = $(".use-entropy");
46019 DOM.entropyContainer = $(".entropy-container");
46020 DOM.entropy = $(".entropy");
46021 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46022 DOM.entropyType = DOM.entropyContainer.find(".type");
46023 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46024 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46025 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46026 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46027 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46028 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46029 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46030 DOM.entropyFilterWarning = DOM.entropyContainer.find(".filter-warning");
46031 DOM.phrase = $(".phrase");
46032 DOM.passphrase = $(".passphrase");
46033 DOM.generateContainer = $(".generate-container");
46034 DOM.generate = $(".generate");
46035 DOM.seed = $(".seed");
46036 DOM.rootKey = $(".root-key");
46037 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46038 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46039 DOM.extendedPrivKey = $(".extended-priv-key");
46040 DOM.extendedPubKey = $(".extended-pub-key");
46041 DOM.bip32tab = $("#bip32-tab");
46042 DOM.bip44tab = $("#bip44-tab");
46043 DOM.bip49tab = $("#bip49-tab");
46044 DOM.bip32panel = $("#bip32");
46045 DOM.bip44panel = $("#bip44");
46046 DOM.bip49panel = $("#bip49");
46047 DOM.bip32path = $("#bip32-path");
46048 DOM.bip44path = $("#bip44-path");
46049 DOM.bip44purpose = $("#bip44 .purpose");
46050 DOM.bip44coin = $("#bip44 .coin");
46051 DOM.bip44account = $("#bip44 .account");
46052 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46053 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46054 DOM.bip44change = $("#bip44 .change");
46055 DOM.bip49unavailable = $("#bip49 .unavailable");
46056 DOM.bip49available = $("#bip49 .available");
46057 DOM.bip49path = $("#bip49-path");
46058 DOM.bip49purpose = $("#bip49 .purpose");
46059 DOM.bip49coin = $("#bip49 .coin");
46060 DOM.bip49account = $("#bip49 .account");
46061 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46062 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46063 DOM.bip49change = $("#bip49 .change");
46064 DOM.generatedStrength = $(".generate-container .strength");
46065 DOM.hardenedAddresses = $(".hardened-addresses");
46066 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
46067 DOM.useBitpayAddressesContainer = $(".use-bitpay-addresses-container");
46068 DOM.useBitpayAddresses = $(".use-bitpay-addresses");
46069 DOM.addresses = $(".addresses");
46070 DOM.rowsToAdd = $(".rows-to-add");
46071 DOM.more = $(".more");
46072 DOM.feedback = $(".feedback");
46073 DOM.tab = $(".derivation-type a");
46074 DOM.indexToggle = $(".index-toggle");
46075 DOM.addressToggle = $(".address-toggle");
46076 DOM.publicKeyToggle = $(".public-key-toggle");
46077 DOM.privateKeyToggle = $(".private-key-toggle");
46078 DOM.languages = $(".languages a");
46079 DOM.qrContainer = $(".qr-container");
46080 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46081 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46082 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46083 DOM.showQrEls = $("[data-show-qr]");
46087 DOM.network.on("change", networkChanged);
46088 DOM.bip32Client.on("change", bip32ClientChanged);
46089 DOM.useEntropy.on("change", setEntropyVisibility);
46090 DOM.entropy.on("input", delayedEntropyChanged);
46091 DOM.entropyMnemonicLength.on("change", entropyChanged);
46092 DOM.phrase.on("input", delayedPhraseChanged);
46093 DOM.passphrase.on("input", delayedPhraseChanged);
46094 DOM.generate.on("click", generateClicked);
46095 DOM.more.on("click", showMore);
46096 DOM.rootKey.on("input", delayedRootKeyChanged);
46097 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46098 DOM.bip32path.on("input", calcForDerivationPath);
46099 DOM.bip44account.on("input", calcForDerivationPath);
46100 DOM.bip44change.on("input", calcForDerivationPath);
46101 DOM.bip49account.on("input", calcForDerivationPath);
46102 DOM.bip49change.on("input", calcForDerivationPath);
46103 DOM.tab.on("shown.bs.tab", tabChanged);
46104 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46105 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46106 DOM.indexToggle.on("click", toggleIndexes);
46107 DOM.addressToggle.on("click", toggleAddresses);
46108 DOM.publicKeyToggle.on("click", togglePublicKeys);
46109 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46110 DOM.languages.on("click", languageChanged);
46111 DOM.useBitpayAddresses.on("change", useBitpayAddressesChange);
46112 setQrEvents(DOM.showQrEls);
46115 hideValidationError();
46116 populateNetworkSelect();
46117 populateClientSelect();
46122 function networkChanged(e) {
46123 clearDerivedKeys();
46124 clearAddressesList();
46125 DOM.litecoinLtubContainer.addClass("hidden");
46126 DOM.useBitpayAddressesContainer.addClass("hidden");
46127 var networkIndex = e.target.value;
46128 var network = networks[networkIndex];
46129 network.onSelect();
46130 if (network.p2wpkhNestedInP2shAvailable) {
46131 showP2wpkhNestedInP2shAvailable();
46134 showP2wpkhNestedInP2shUnavailable();
46136 if (seed != null) {
46144 function bip32ClientChanged(e) {
46145 var clientIndex = DOM.bip32Client.val();
46146 if (clientIndex == "custom") {
46147 DOM.bip32path.prop("readonly", false);
46150 DOM.bip32path.prop("readonly", true);
46151 clients[clientIndex].onSelect();
46152 if (seed != null) {
46161 function setEntropyVisibility() {
46162 if (isUsingOwnEntropy()) {
46163 DOM.entropyContainer.removeClass("hidden");
46164 DOM.generateContainer.addClass("hidden");
46165 DOM.phrase.prop("readonly", true);
46166 DOM.entropy.focus();
46170 DOM.entropyContainer.addClass("hidden");
46171 DOM.generateContainer.removeClass("hidden");
46172 DOM.phrase.prop("readonly", false);
46177 function delayedPhraseChanged() {
46178 hideValidationError();
46180 bip32RootKey = null;
46181 bip32ExtendedKey = null;
46182 clearAddressesList();
46184 if (phraseChangeTimeoutEvent != null) {
46185 clearTimeout(phraseChangeTimeoutEvent);
46187 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46190 function phraseChanged() {
46192 setMnemonicLanguage();
46193 // Get the mnemonic phrase
46194 var phrase = DOM.phrase.val();
46195 var errorText = findPhraseErrors(phrase);
46197 showValidationError(errorText);
46200 // Calculate and display
46201 var passphrase = DOM.passphrase.val();
46202 calcBip32RootKeyFromSeed(phrase, passphrase);
46203 calcForDerivationPath();
46206 function tabChanged() {
46208 adjustNetworkForBip49();
46209 var phrase = DOM.phrase.val();
46210 if (phrase != "") {
46211 // Calculate and display for mnemonic
46212 var errorText = findPhraseErrors(phrase);
46214 showValidationError(errorText);
46217 // Calculate and display
46218 var passphrase = DOM.passphrase.val();
46219 calcBip32RootKeyFromSeed(phrase, passphrase);
46222 // Calculate and display for root key
46223 var rootKeyBase58 = DOM.rootKey.val();
46224 var errorText = validateRootKey(rootKeyBase58);
46226 showValidationError(errorText);
46229 // Calculate and display
46230 calcBip32RootKeyFromBase58(rootKeyBase58);
46232 calcForDerivationPath();
46235 function delayedEntropyChanged() {
46236 hideValidationError();
46238 if (entropyChangeTimeoutEvent != null) {
46239 clearTimeout(entropyChangeTimeoutEvent);
46241 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46244 function entropyChanged() {
46245 // If blank entropy, clear mnemonic, addresses, errors
46246 if (DOM.entropy.val().trim().length ==
0) {
46248 clearEntropyFeedback();
46249 DOM.phrase.val("");
46250 showValidationError("Blank entropy");
46253 // Get the current phrase to detect changes
46254 var phrase = DOM.phrase.val();
46255 // Set the phrase from the entropy
46256 setMnemonicFromEntropy();
46257 // Recalc addresses if the phrase has changed
46258 var newPhrase = DOM.phrase.val();
46259 if (newPhrase != phrase) {
46260 if (newPhrase.length ==
0) {
46272 function delayedRootKeyChanged() {
46273 // Warn if there is an existing mnemonic or passphrase.
46274 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46275 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46276 DOM.rootKey.val(bip32RootKey);
46280 hideValidationError();
46282 // Clear existing mnemonic and passphrase
46283 DOM.phrase.val(
"");
46284 DOM.passphrase.val(
"");
46286 if (rootKeyChangedTimeoutEvent != null) {
46287 clearTimeout(rootKeyChangedTimeoutEvent);
46289 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46292 function rootKeyChanged() {
46294 hideValidationError();
46295 var rootKeyBase58 = DOM.rootKey.val();
46296 var errorText = validateRootKey(rootKeyBase58);
46298 showValidationError(errorText);
46301 // Calculate and display
46302 calcBip32RootKeyFromBase58(rootKeyBase58);
46303 calcForDerivationPath();
46306 function litecoinUseLtubChanged() {
46307 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46308 if (litecoinUseLtub) {
46309 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46312 network = bitcoinjs.bitcoin.networks.litecoin;
46317 function calcForDerivationPath() {
46318 clearDerivedKeys();
46319 clearAddressesList();
46321 // Don't show bip49 if it's selected but network doesn't support it
46322 if (bip49TabSelected() && !networkHasBip49()) {
46325 // Get the derivation path
46326 var derivationPath = getDerivationPath();
46327 var errorText = findDerivationPathErrors(derivationPath);
46329 showValidationError(errorText);
46332 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46333 if (bip44TabSelected()) {
46334 displayBip44Info();
46336 if (bip49TabSelected()) {
46337 displayBip49Info();
46339 displayBip32Info();
46342 function generateClicked() {
46343 if (isUsingOwnEntropy()) {
46348 setTimeout(function() {
46349 setMnemonicLanguage();
46350 var phrase = generateRandomPhrase();
46358 function languageChanged() {
46359 setTimeout(function() {
46360 setMnemonicLanguage();
46361 if (DOM.phrase.val().length
> 0) {
46362 var newPhrase = convertPhraseToNewLanguage();
46363 DOM.phrase.val(newPhrase);
46367 DOM.generate.trigger(
"click");
46372 function useBitpayAddressesChange() {
46373 setBitcoinCashNetworkValues();
46377 function toggleIndexes() {
46378 showIndex = !showIndex;
46379 $(
"td.index span").toggleClass(
"invisible");
46382 function toggleAddresses() {
46383 showAddress = !showAddress;
46384 $(
"td.address span").toggleClass(
"invisible");
46387 function togglePublicKeys() {
46388 showPubKey = !showPubKey;
46389 $(
"td.pubkey span").toggleClass(
"invisible");
46392 function togglePrivateKeys() {
46393 showPrivKey = !showPrivKey;
46394 $(
"td.privkey span").toggleClass(
"invisible");
46399 function generateRandomPhrase() {
46400 if (!hasStrongRandom()) {
46401 var errorText =
"This browser does not support strong randomness";
46402 showValidationError(errorText);
46405 var numWords = parseInt(DOM.generatedStrength.val());
46406 var strength = numWords /
3 *
32;
46407 var words = mnemonic.generate(strength);
46408 DOM.phrase.val(words);
46412 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46413 seed = mnemonic.toSeed(phrase, passphrase);
46414 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46417 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46418 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46421 function calcBip32ExtendedKey(path) {
46422 // Check there's a root key to derive from
46423 if (!bip32RootKey) {
46424 return bip32RootKey;
46426 var extendedKey = bip32RootKey;
46427 // Derive the key from the path
46428 var pathBits = path.split(
"/");
46429 for (var i=
0; i
<pathBits.length; i++) {
46430 var bit = pathBits[i];
46431 var index = parseInt(bit);
46432 if (isNaN(index)) {
46435 var hardened = bit[bit.length-
1] ==
"'";
46436 var isPriv = !(extendedKey.isNeutered());
46437 var invalidDerivationPath = hardened && !isPriv;
46438 if (invalidDerivationPath) {
46439 extendedKey = null;
46441 else if (hardened) {
46442 extendedKey = extendedKey.deriveHardened(index);
46445 extendedKey = extendedKey.derive(index);
46451 function showValidationError(errorText) {
46457 function hideValidationError() {
46463 function findPhraseErrors(phrase) {
46464 // Preprocess the words
46465 phrase = mnemonic.normalizeString(phrase);
46466 var words = phraseToWordArray(phrase);
46467 // Detect blank phrase
46468 if (words.length ==
0) {
46469 return
"Blank mnemonic";
46472 for (var i=
0; i
<words.length; i++) {
46473 var word = words[i];
46474 var language = getLanguage();
46475 if (WORDLISTS[language].indexOf(word) == -
1) {
46476 console.log(
"Finding closest match to " + word);
46477 var nearestWord = findNearestWord(word);
46478 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46481 // Check the words are valid
46482 var properPhrase = wordArrayToPhrase(words);
46483 var isValid = mnemonic.check(properPhrase);
46485 return
"Invalid mnemonic";
46490 function validateRootKey(rootKeyBase58) {
46492 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46495 return
"Invalid root key";
46500 function getDerivationPath() {
46501 if (bip44TabSelected()) {
46502 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46503 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46504 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46505 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46507 path += purpose +
"'/";
46508 path += coin +
"'/";
46509 path += account +
"'/";
46511 DOM.bip44path.val(path);
46512 var derivationPath = DOM.bip44path.val();
46513 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46514 return derivationPath;
46516 if (bip49TabSelected()) {
46517 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46518 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46519 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46520 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46522 path += purpose +
"'/";
46523 path += coin +
"'/";
46524 path += account +
"'/";
46526 DOM.bip49path.val(path);
46527 var derivationPath = DOM.bip49path.val();
46528 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46529 return derivationPath;
46531 else if (bip32TabSelected()) {
46532 var derivationPath = DOM.bip32path.val();
46533 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46534 return derivationPath;
46537 console.log(
"Unknown derivation path");
46541 function findDerivationPathErrors(path) {
46542 // TODO is not perfect but is better than nothing
46544 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46546 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46547 var maxDepth =
255; // TODO verify this!!
46548 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46549 if (path[
0] !=
"m") {
46550 return
"First character must be 'm'";
46552 if (path.length
> 1) {
46553 if (path[
1] !=
"/") {
46554 return
"Separator must be '/'";
46556 var indexes = path.split(
"/");
46557 if (indexes.length
> maxDepth) {
46558 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46560 for (var depth =
1; depth
<indexes.length; depth++) {
46561 var index = indexes[depth];
46562 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46563 if (invalidChars.length
> 0) {
46564 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46566 var indexValue = parseInt(index.replace(
"'",
""));
46567 if (isNaN(depth)) {
46568 return
"Invalid number at depth " + depth;
46570 if (indexValue
> maxIndexValue) {
46571 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46575 // Check root key exists or else derivation path is useless!
46576 if (!bip32RootKey) {
46577 return "No root key";
46579 // Check no hardened derivation path when using xpub keys
46580 var hardenedPath = path.indexOf("'")
> -
1;
46581 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46582 var hardened = hardenedPath || hardenedAddresses;
46583 var isXpubkey = bip32RootKey.isNeutered();
46584 if (hardened && isXpubkey) {
46585 return "Hardened derivation path is invalid with xpub key";
46590 function displayBip44Info() {
46591 // Get the derivation path for the account
46592 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46593 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46594 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46596 path += purpose + "'/";
46597 path += coin + "'/";
46598 path += account + "'/";
46599 // Calculate the account extended keys
46600 var accountExtendedKey = calcBip32ExtendedKey(path);
46601 var accountXprv = accountExtendedKey.toBase58();
46602 var accountXpub = accountExtendedKey.neutered().toBase58();
46603 // Display the extended keys
46604 DOM.bip44accountXprv.val(accountXprv);
46605 DOM.bip44accountXpub.val(accountXpub);
46608 function displayBip49Info() {
46609 // Get the derivation path for the account
46610 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46611 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46612 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46614 path += purpose + "'/";
46615 path += coin + "'/";
46616 path += account + "'/";
46617 // Calculate the account extended keys
46618 var accountExtendedKey = calcBip32ExtendedKey(path);
46619 var accountXprv = accountExtendedKey.toBase58();
46620 var accountXpub = accountExtendedKey.neutered().toBase58();
46621 // Display the extended keys
46622 DOM.bip49accountXprv.val(accountXprv);
46623 DOM.bip49accountXpub.val(accountXpub);
46626 function displayBip32Info() {
46628 DOM.seed.val(seed);
46629 var rootKey = bip32RootKey.toBase58();
46630 DOM.rootKey.val(rootKey);
46631 var xprvkeyB58 = "NA";
46632 if (!bip32ExtendedKey.isNeutered()) {
46633 xprvkeyB58 = bip32ExtendedKey.toBase58();
46635 var extendedPrivKey = xprvkeyB58;
46636 DOM.extendedPrivKey.val(extendedPrivKey);
46637 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46638 DOM.extendedPubKey.val(extendedPubKey);
46639 // Display the addresses and privkeys
46640 clearAddressesList();
46641 displayAddresses(
0,
20);
46644 function displayAddresses(start, total) {
46645 generationProcesses.push(new (function() {
46649 this.stop = function() {
46650 for (var i=
0; i
<rows.length; i++) {
46651 rows[i].shouldGenerate = false;
46656 for (var i=
0; i
<total; i++) {
46657 var index = i + start;
46658 var isLast = i == total -
1;
46659 rows.push(new TableRow(index, isLast));
46665 function P2wpkhNestedInP2shSelected() {
46666 return bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46669 function TableRow(index, isLast) {
46672 this.shouldGenerate = true;
46673 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46674 var isP2wpkhNestedInP2sh = P2wpkhNestedInP2shSelected();
46675 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46681 function calculateValues() {
46682 setTimeout(function() {
46683 if (!self.shouldGenerate) {
46687 if (useHardenedAddresses) {
46688 key = bip32ExtendedKey.deriveHardened(index);
46691 key = bip32ExtendedKey.derive(index);
46693 var address = key.getAddress().toString();
46694 var privkey =
"NA";
46695 if (!key.isNeutered()) {
46696 privkey = key.keyPair.toWIF(network);
46698 var pubkey = key.getPublicKeyBuffer().toString('hex');
46699 var indexText = getDerivationPath() +
"/" + index;
46700 if (useHardenedAddresses) {
46701 indexText = indexText +
"'";
46703 // Ethereum values are different
46704 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46705 var privKeyBuffer = key.keyPair.d.toBuffer();
46706 privkey = privKeyBuffer.toString('hex');
46707 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46708 var hexAddress = addressBuffer.toString('hex');
46709 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46710 address = ethUtil.addHexPrefix(checksumAddress);
46711 privkey = ethUtil.addHexPrefix(privkey);
46712 pubkey = ethUtil.addHexPrefix(pubkey);
46714 // Ripple values are different
46715 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46716 privkey = convertRipplePriv(privkey);
46717 address = convertRippleAdrr(address);
46719 // BIP49 addresses are different
46720 if (isP2wpkhNestedInP2sh) {
46721 if (!p2wpkhNestedInP2shAvailable) {
46724 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46725 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46726 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46727 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46728 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46730 addAddressToList(indexText, address, pubkey, privkey);
46741 function showMore() {
46742 var start = DOM.addresses.children().length;
46743 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46744 if (isNaN(rowsToAdd)) {
46746 DOM.rowsToAdd.val(
"20");
46748 if (rowsToAdd
> 200) {
46749 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46750 msg +=
"Do you want to continue?";
46751 if (!confirm(msg)) {
46755 displayAddresses(start, rowsToAdd);
46758 function clearDisplay() {
46759 clearAddressesList();
46761 hideValidationError();
46764 function clearAddressesList() {
46765 DOM.addresses.empty();
46769 function stopGenerating() {
46770 while (generationProcesses.length
> 0) {
46771 var generation = generationProcesses.shift();
46776 function clearKeys() {
46778 clearDerivedKeys();
46781 function clearRootKey() {
46782 DOM.rootKey.val(
"");
46785 function clearDerivedKeys() {
46786 DOM.extendedPrivKey.val(
"");
46787 DOM.extendedPubKey.val(
"");
46788 DOM.bip44accountXprv.val(
"");
46789 DOM.bip44accountXpub.val(
"");
46792 function addAddressToList(indexText, address, pubkey, privkey) {
46793 var row = $(addressRowTemplate.html());
46795 var indexCell = row.find(
".index span");
46796 var addressCell = row.find(
".address span");
46797 var pubkeyCell = row.find(
".pubkey span");
46798 var privkeyCell = row.find(
".privkey span");
46800 indexCell.text(indexText);
46801 addressCell.text(address);
46802 pubkeyCell.text(pubkey);
46803 privkeyCell.text(privkey);
46806 indexCell.addClass(
"invisible");
46808 if (!showAddress) {
46809 addressCell.addClass(
"invisible");
46812 pubkeyCell.addClass(
"invisible");
46814 if (!showPrivKey) {
46815 privkeyCell.addClass(
"invisible");
46817 DOM.addresses.append(row);
46818 var rowShowQrEls = row.find(
"[data-show-qr]");
46819 setQrEvents(rowShowQrEls);
46822 function hasStrongRandom() {
46823 return 'crypto' in window && window['crypto'] !== null;
46826 function disableForms() {
46827 $(
"form").on(
"submit", function(e) {
46828 e.preventDefault();
46832 function parseIntNoNaN(val, defaultVal) {
46833 var v = parseInt(val);
46840 function showPending() {
46842 .text(
"Calculating...")
46846 function findNearestWord(word) {
46847 var language = getLanguage();
46848 var words = WORDLISTS[language];
46849 var minDistance =
99;
46850 var closestWord = words[
0];
46851 for (var i=
0; i
<words.length; i++) {
46852 var comparedTo = words[i];
46853 if (comparedTo.indexOf(word) ==
0) {
46856 var distance = Levenshtein.get(word, comparedTo);
46857 if (distance < minDistance) {
46858 closestWord = comparedTo;
46859 minDistance = distance;
46862 return closestWord;
46865 function hidePending() {
46871 function populateNetworkSelect() {
46872 for (var i=
0; i
<networks.length; i++) {
46873 var network = networks[i];
46874 var option = $(
"<option>");
46875 option.attr(
"value", i);
46876 option.text(network.name);
46877 if (network.name ==
"BTC - Bitcoin") {
46878 option.prop(
"selected", true);
46880 DOM.phraseNetwork.append(option);
46884 function populateClientSelect() {
46885 for (var i=
0; i
<clients.length; i++) {
46886 var client = clients[i];
46887 var option = $(
"<option>");
46888 option.attr(
"value", i);
46889 option.text(client.name);
46890 DOM.bip32Client.append(option);
46894 function getLanguage() {
46895 var defaultLanguage =
"english";
46896 // Try to get from existing phrase
46897 var language = getLanguageFromPhrase();
46898 // Try to get from url if not from phrase
46899 if (language.length ==
0) {
46900 language = getLanguageFromUrl();
46902 // Default to English if no other option
46903 if (language.length ==
0) {
46904 language = defaultLanguage;
46909 function getLanguageFromPhrase(phrase) {
46910 // Check if how many words from existing phrase match a language.
46913 phrase = DOM.phrase.val();
46915 if (phrase.length
> 0) {
46916 var words = phraseToWordArray(phrase);
46917 var languageMatches = {};
46918 for (l in WORDLISTS) {
46919 // Track how many words match in this language
46920 languageMatches[l] =
0;
46921 for (var i=
0; i
<words.length; i++) {
46922 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
46923 if (wordInLanguage) {
46924 languageMatches[l]++;
46927 // Find languages with most word matches.
46928 // This is made difficult due to commonalities between Chinese
46929 // simplified vs traditional.
46930 var mostMatches =
0;
46931 var mostMatchedLanguages = [];
46932 for (var l in languageMatches) {
46933 var numMatches = languageMatches[l];
46934 if (numMatches
> mostMatches) {
46935 mostMatches = numMatches;
46936 mostMatchedLanguages = [l];
46938 else if (numMatches == mostMatches) {
46939 mostMatchedLanguages.push(l);
46943 if (mostMatchedLanguages.length
> 0) {
46944 // Use first language and warn if multiple detected
46945 language = mostMatchedLanguages[
0];
46946 if (mostMatchedLanguages.length
> 1) {
46947 console.warn(
"Multiple possible languages");
46948 console.warn(mostMatchedLanguages);
46955 function getLanguageFromUrl() {
46956 for (var language in WORDLISTS) {
46957 if (window.location.hash.indexOf(language)
> -
1) {
46964 function setMnemonicLanguage() {
46965 var language = getLanguage();
46966 // Load the bip39 mnemonic generator for this language if required
46967 if (!(language in mnemonics)) {
46968 mnemonics[language] = new Mnemonic(language);
46970 mnemonic = mnemonics[language];
46973 function convertPhraseToNewLanguage() {
46974 var oldLanguage = getLanguageFromPhrase();
46975 var newLanguage = getLanguageFromUrl();
46976 var oldPhrase = DOM.phrase.val();
46977 var oldWords = phraseToWordArray(oldPhrase);
46979 for (var i=
0; i
<oldWords.length; i++) {
46980 var oldWord = oldWords[i];
46981 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
46982 var newWord = WORDLISTS[newLanguage][index];
46983 newWords.push(newWord);
46985 newPhrase = wordArrayToPhrase(newWords);
46989 // TODO look at jsbip39 - mnemonic.splitWords
46990 function phraseToWordArray(phrase) {
46991 var words = phrase.split(/\s/g);
46993 for (var i=
0; i
<words.length; i++) {
46994 var word = words[i];
46995 if (word.length
> 0) {
46996 noBlanks.push(word);
47002 // TODO look at jsbip39 - mnemonic.joinWords
47003 function wordArrayToPhrase(words) {
47004 var phrase = words.join(
" ");
47005 var language = getLanguageFromPhrase(phrase);
47006 if (language ==
"japanese") {
47007 phrase = words.join(
"\u3000");
47012 function isUsingOwnEntropy() {
47013 return DOM.useEntropy.prop(
"checked");
47016 function setMnemonicFromEntropy() {
47017 clearEntropyFeedback();
47018 // Get entropy value
47019 var entropyStr = DOM.entropy.val();
47020 // Work out minimum base for entropy
47021 var entropy = Entropy.fromString(entropyStr);
47022 if (entropy.binaryStr.length ==
0) {
47025 // Show entropy details
47026 showEntropyFeedback(entropy);
47027 // Use entropy hash if not using raw entropy
47028 var bits = entropy.binaryStr;
47029 var mnemonicLength = DOM.entropyMnemonicLength.val();
47030 if (mnemonicLength !=
"raw") {
47031 // Get bits by hashing entropy with SHA256
47032 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47033 var hex = sjcl.codec.hex.fromBits(hash);
47034 bits = BigInteger.parse(hex,
16).toString(
2);
47035 while (bits.length %
256 !=
0) {
47038 // Truncate hash to suit number of words
47039 mnemonicLength = parseInt(mnemonicLength);
47040 var numberOfBits =
32 * mnemonicLength /
3;
47041 bits = bits.substring(
0, numberOfBits);
47043 // Discard trailing entropy
47044 var bitsToUse = Math.floor(bits.length /
32) *
32;
47045 var start = bits.length - bitsToUse;
47046 var binaryStr = bits.substring(start);
47047 // Convert entropy string to numeric array
47048 var entropyArr = [];
47049 for (var i=
0; i
<binaryStr.length /
8; i++) {
47050 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47051 var entropyByte = parseInt(byteAsBits,
2);
47052 entropyArr.push(entropyByte)
47054 // Convert entropy array to mnemonic
47055 var phrase = mnemonic.toMnemonic(entropyArr);
47056 // Set the mnemonic in the UI
47057 DOM.phrase.val(phrase);
47060 function clearEntropyFeedback() {
47061 DOM.entropyCrackTime.text(
"...");
47062 DOM.entropyType.text(
"");
47063 DOM.entropyWordCount.text(
"0");
47064 DOM.entropyEventCount.text(
"0");
47065 DOM.entropyBitsPerEvent.text(
"0");
47066 DOM.entropyBits.text(
"0");
47067 DOM.entropyFiltered.html(
" ");
47068 DOM.entropyBinary.html(
" ");
47071 function showEntropyFeedback(entropy) {
47072 var numberOfBits = entropy.binaryStr.length;
47073 var timeToCrack =
"unknown";
47075 var z = zxcvbn(entropy.base.parts.join(
""));
47076 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47077 if (z.feedback.warning !=
"") {
47078 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47082 console.log(
"Error detecting entropy strength with zxcvbn:");
47085 var entropyTypeStr = getEntropyTypeStr(entropy);
47086 var wordCount = Math.floor(numberOfBits /
32) *
3;
47087 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47088 DOM.entropyFiltered.html(entropy.cleanHtml);
47089 DOM.entropyType.text(entropyTypeStr);
47090 DOM.entropyCrackTime.text(timeToCrack);
47091 DOM.entropyEventCount.text(entropy.base.ints.length);
47092 DOM.entropyBits.text(numberOfBits);
47093 DOM.entropyWordCount.text(wordCount);
47094 DOM.entropyBinary.text(entropy.binaryStr);
47095 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47096 // detect and warn of filtering
47097 var rawNoSpaces = DOM.entropy.val().replace(/\s/g,
"");
47098 var cleanNoSpaces = entropy.cleanStr.replace(/\s/g,
"");
47099 var isFiltered = rawNoSpaces.length != cleanNoSpaces.length;
47101 DOM.entropyFilterWarning.removeClass('hidden');
47104 DOM.entropyFilterWarning.addClass('hidden');
47108 function getEntropyTypeStr(entropy) {
47109 var typeStr = entropy.base.str;
47110 // Add some detail if these are cards
47111 if (entropy.base.asInt ==
52) {
47112 var cardDetail = []; // array of message strings
47113 // Detect duplicates
47115 var dupeTracker = {};
47116 for (var i=
0; i
<entropy.base.parts.length; i++) {
47117 var card = entropy.base.parts[i];
47118 var cardUpper = card.toUpperCase();
47119 if (cardUpper in dupeTracker) {
47122 dupeTracker[cardUpper] = true;
47124 if (dupes.length
> 0) {
47125 var dupeWord =
"duplicates";
47126 if (dupes.length ==
1) {
47127 dupeWord =
"duplicate";
47129 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47130 if (dupes.length
> 3) {
47133 cardDetail.push(msg);
47135 // Detect full deck
47136 var uniqueCards = [];
47137 for (var uniqueCard in dupeTracker) {
47138 uniqueCards.push(uniqueCard);
47140 if (uniqueCards.length ==
52) {
47141 cardDetail.unshift(
"full deck");
47143 // Detect missing cards
47144 var values =
"A23456789TJQK";
47145 var suits =
"CDHS";
47146 var missingCards = [];
47147 for (var i=
0; i
<suits.length; i++) {
47148 for (var j=
0; j
<values.length; j++) {
47149 var card = values[j] + suits[i];
47150 if (!(card in dupeTracker)) {
47151 missingCards.push(card);
47155 // Display missing cards if six or less, ie clearly going for full deck
47156 if (missingCards.length
> 0 && missingCards.length <=
6) {
47157 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47158 if (missingCards.length
> 3) {
47161 cardDetail.push(msg);
47163 // Add card details to typeStr
47164 if (cardDetail.length
> 0) {
47165 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47171 function setQrEvents(els) {
47172 els.on(
"mouseenter", createQr);
47173 els.on(
"mouseleave", destroyQr);
47174 els.on(
"click", toggleQr);
47177 function createQr(e) {
47178 var content = e.target.textContent || e.target.value;
47181 DOM.qrImage.qrcode({width: size, height: size, text: content});
47183 DOM.qrHider.addClass(
"hidden");
47186 DOM.qrHider.removeClass(
"hidden");
47188 DOM.qrContainer.removeClass(
"hidden");
47192 function destroyQr() {
47193 DOM.qrImage.text(
"");
47194 DOM.qrContainer.addClass(
"hidden");
47197 function toggleQr() {
47199 DOM.qrHider.toggleClass(
"hidden");
47200 DOM.qrHint.toggleClass(
"hidden");
47203 function bip44TabSelected() {
47204 return DOM.bip44tab.hasClass(
"active");
47207 function bip32TabSelected() {
47208 return DOM.bip32tab.hasClass(
"active");
47211 function useP2wpkhNestedInP2sh() {
47212 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47215 function networkHasBip49() {
47216 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47219 function bip49TabSelected() {
47220 return DOM.bip49tab.hasClass(
"active");
47223 function setHdCoin(coinValue) {
47224 DOM.bip44coin.val(coinValue);
47225 DOM.bip49coin.val(coinValue);
47228 function showP2wpkhNestedInP2shAvailable() {
47229 DOM.bip49unavailable.addClass(
"hidden");
47230 DOM.bip49available.removeClass(
"hidden");
47231 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47234 function showP2wpkhNestedInP2shUnavailable() {
47235 DOM.bip49available.addClass(
"hidden");
47236 DOM.bip49unavailable.removeClass(
"hidden");
47237 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47238 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47241 function useBitpayAddresses() {
47242 return !(DOM.useBitpayAddresses.prop(
"checked"));
47245 function setBitcoinCashNetworkValues() {
47246 if (useBitpayAddresses()) {
47247 network = bitcoinjs.bitcoin.networks.bitcoin;
47250 network = bitcoinjs.bitcoin.networks.bitcoinCashBitbpay;
47254 function adjustNetworkForBip49() {
47255 // If bip49 is selected the xpub/xprv prefixes need to be adjusted
47256 // to avoid accidentally importing BIP49 xpub to BIP44 watch only
47258 // See https://github.com/iancoleman/bip39/issues/
125
47259 if (P2wpkhNestedInP2shSelected()) {
47260 if (network == bitcoinjs.bitcoin.networks.bitcoin) {
47261 network = bitcoinjs.bitcoin.networks.bitcoinBip49;
47263 else if (network == bitcoinjs.bitcoin.networks.testnet) {
47264 network = bitcoinjs.bitcoin.networks.testnetBip49;
47266 else if (network == bitcoinjs.bitcoin.networks.litecoin) {
47267 network = bitcoinjs.bitcoin.networks.litecoinBip49;
47271 if (network == bitcoinjs.bitcoin.networks.bitcoinBip49) {
47272 network = bitcoinjs.bitcoin.networks.bitcoin;
47274 else if (network == bitcoinjs.bitcoin.networks.testnetBip49) {
47275 network = bitcoinjs.bitcoin.networks.testnet;
47277 else if (network == bitcoinjs.bitcoin.networks.litecoinBip49) {
47278 network = bitcoinjs.bitcoin.networks.litecoin;
47285 name:
"BCH - Bitcoin Cash",
47286 p2wpkhNestedInP2shAvailable: false,
47287 onSelect: function() {
47288 DOM.useBitpayAddressesContainer.removeClass(
"hidden");
47289 setBitcoinCashNetworkValues();
47294 name:
"BTC - Bitcoin",
47295 p2wpkhNestedInP2shAvailable: true,
47296 onSelect: function() {
47297 network = bitcoinjs.bitcoin.networks.bitcoin;
47302 name:
"BTC - Bitcoin Testnet",
47303 p2wpkhNestedInP2shAvailable: true,
47304 onSelect: function() {
47305 network = bitcoinjs.bitcoin.networks.testnet;
47310 name:
"BTG - Bitcoin Gold",
47311 p2wpkhNestedInP2shAvailable: true,
47312 onSelect: function() {
47313 network = bitcoinjs.bitcoin.networks.bgold;
47318 name:
"CLAM - Clams",
47319 p2wpkhNestedInP2shAvailable: false,
47320 onSelect: function() {
47321 network = bitcoinjs.bitcoin.networks.clam;
47326 name:
"CRW - Crown",
47327 p2wpkhNestedInP2shAvailable: false,
47328 onSelect: function() {
47329 network = bitcoinjs.bitcoin.networks.crown;
47334 name:
"DASH - Dash",
47335 p2wpkhNestedInP2shAvailable: false,
47336 onSelect: function() {
47337 network = bitcoinjs.bitcoin.networks.dash;
47342 name:
"DASH - Dash Testnet",
47343 p2wpkhNestedInP2shAvailable: false,
47344 onSelect: function() {
47345 network = bitcoinjs.bitcoin.networks.dashtn;
47350 name:
"DOGE - Dogecoin",
47351 p2wpkhNestedInP2shAvailable: false,
47352 onSelect: function() {
47353 network = bitcoinjs.bitcoin.networks.dogecoin;
47358 name:
"ETH - Ethereum",
47359 p2wpkhNestedInP2shAvailable: false,
47360 onSelect: function() {
47361 network = bitcoinjs.bitcoin.networks.bitcoin;
47366 name:
"FJC - Fujicoin",
47367 p2wpkhNestedInP2shAvailable: false,
47368 onSelect: function() {
47369 network = bitcoinjs.bitcoin.networks.fujicoin;
47374 name:
"GAME - GameCredits",
47375 p2wpkhNestedInP2shAvailable: false,
47376 onSelect: function() {
47377 network = bitcoinjs.bitcoin.networks.game;
47382 name:
"JBS - Jumbucks",
47383 p2wpkhNestedInP2shAvailable: false,
47384 onSelect: function() {
47385 network = bitcoinjs.bitcoin.networks.jumbucks;
47390 name:
"LTC - Litecoin",
47391 p2wpkhNestedInP2shAvailable: true,
47392 onSelect: function() {
47393 network = bitcoinjs.bitcoin.networks.litecoin;
47395 DOM.litecoinLtubContainer.removeClass(
"hidden");
47399 name:
"MAZA - Maza",
47400 p2wpkhNestedInP2shAvailable: false,
47401 onSelect: function() {
47402 network = bitcoinjs.bitcoin.networks.maza;
47408 name:
"NMC - Namecoin",
47409 p2wpkhNestedInP2shAvailable: false,
47410 onSelect: function() {
47411 network = bitcoinjs.bitcoin.networks.namecoin;
47416 name:
"PIVX - PIVX",
47417 p2wpkhNestedInP2shAvailable: false,
47418 onSelect: function() {
47419 network = bitcoinjs.bitcoin.networks.pivx;
47424 name:
"PIVX - PIVX Testnet",
47425 p2wpkhNestedInP2shAvailable: false,
47426 onSelect: function() {
47427 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47432 name:
"PPC - Peercoin",
47433 p2wpkhNestedInP2shAvailable: false,
47434 onSelect: function() {
47435 network = bitcoinjs.bitcoin.networks.peercoin;
47440 name:
"SDC - ShadowCash",
47441 p2wpkhNestedInP2shAvailable: false,
47442 onSelect: function() {
47443 network = bitcoinjs.bitcoin.networks.shadow;
47448 name:
"SDC - ShadowCash Testnet",
47449 p2wpkhNestedInP2shAvailable: false,
47450 onSelect: function() {
47451 network = bitcoinjs.bitcoin.networks.shadowtn;
47456 name:
"SLM - Slimcoin",
47457 p2wpkhNestedInP2shAvailable: false,
47458 onSelect: function() {
47459 network = bitcoinjs.bitcoin.networks.slimcoin;
47464 name:
"SLM - Slimcoin Testnet",
47465 p2wpkhNestedInP2shAvailable: false,
47466 onSelect: function() {
47467 network = bitcoinjs.bitcoin.networks.slimcointn;
47472 name:
"USNBT - NuBits",
47473 p2wpkhNestedInP2shAvailable: false,
47474 onSelect: function() {
47475 network = bitcoinjs.bitcoin.networks.nubits;
47480 name:
"VIA - Viacoin",
47481 p2wpkhNestedInP2shAvailable: false,
47482 onSelect: function() {
47483 network = bitcoinjs.bitcoin.networks.viacoin;
47488 name:
"VIA - Viacoin Testnet",
47489 p2wpkhNestedInP2shAvailable: false,
47490 onSelect: function() {
47491 network = bitcoinjs.bitcoin.networks.viacointestnet;
47496 name:
"XMY - Myriadcoin",
47497 p2wpkhNestedInP2shAvailable: false,
47498 onSelect: function() {
47499 network = bitcoinjs.bitcoin.networks.myriadcoin;
47504 name:
"XRP - Ripple",
47505 p2wpkhNestedInP2shAvailable: false,
47506 onSelect: function() {
47507 network = bitcoinjs.bitcoin.networks.bitcoin;
47515 name:
"Bitcoin Core",
47516 onSelect: function() {
47517 DOM.bip32path.val(
"m/0'/0'");
47518 DOM.hardenedAddresses.prop('checked', true);
47522 name:
"blockchain.info",
47523 onSelect: function() {
47524 DOM.bip32path.val(
"m/44'/0'/0'");
47525 DOM.hardenedAddresses.prop('checked', false);
47529 name:
"MultiBit HD",
47530 onSelect: function() {
47531 DOM.bip32path.val(
"m/0'/0");
47532 DOM.hardenedAddresses.prop('checked', false);