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
.6</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 data-translate
>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>
131 <p data-translate-html
>
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 data-translate
>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>
154 <span data-translate
>words
</span>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes" data-translate
>Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>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" data-translate-placeholder
></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" data-translate
><span class=
"more-info" data-translate-title
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" data-translate
>Event Count
</label>
182 <div class=
"event-count col-sm-3 form-control-static"></div>
185 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
186 <div class=
"type col-sm-3 form-control-static"></div>
187 <label class=
"col-sm-3 control-label" data-translate
>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" data-translate
>Raw Entropy Words
</label>
192 <div class=
"word-count col-sm-3 form-control-static"></div>
193 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
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" data-translate
>Filtered Entropy
</label>
197 <div class=
"filtered col-sm-9 form-control-static"></div>
198 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
199 <div class=
"binary col-sm-9 form-control-static"></div>
200 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
201 <div class=
"col-sm-9">
202 <select class=
"mnemonic-length form-control">
203 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
204 <option value=
"12">12 <span data-translate
>Words
</span></option>
205 <option value=
"15">15 <span data-translate
>Words
</option>
206 <option value=
"18">18 <span data-translate
>Words
</span></option>
207 <option value=
"21">21 <span data-translate
>Words
</span></option>
208 <option value=
"24">24 <span data-translate
>Words
</span></option>
212 <div class=
"col-sm-3">
213 <p data-translate
>Valid entropy values include:
</p>
215 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
216 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
217 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
218 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
219 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
220 <li><strong data-translate
>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 data-translate
>Supply my own source of entropy
</span>
234 <div class=
"form-group">
235 <label class=
"col-sm-2 control-label" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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">
315 <p data-translate-html
>
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" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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 data-translate
>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 data-translate
>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 data-translate
>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 data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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 data-translate
>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 data-translate
>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" data-translate
>Bitcoin Core
</label>
431 <div class=
"col-sm-10">
432 <p class=
"form-control no-border" data-translate-html
>
433 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
435 <p class=
"form-control no-border" data-translate-html
>
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" data-translate
>Multibit
</label>
443 <div class=
"col-sm-10">
444 <p class=
"form-control no-border">
445 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
447 <p class=
"form-control no-border">
448 <span data-translate
>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" data-translate
>Block Explorers
</label>
455 <div class=
"col-sm-10">
456 <p class=
"form-control no-border">
457 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
458 <span data-translate-html
>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 data-translate
>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 data-translate
>BIP49 is unavailable for this coin.
</p>
479 <div class=
"available">
480 <div class=
"col-sm-2"></div>
481 <div class=
"col-sm-10">
482 <p data-translate-html
>
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" data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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 data-translate
>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 data-translate
>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 data-translate
>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 data-translate
>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" data-translate
>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" data-translate
>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" data-translate
>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 data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
582 <table class=
"table table-striped">
585 <div class=
"input-group">
586 <span data-translate
>Path
</span>
587 <button class=
"index-toggle" data-translate
>Toggle
</button>
591 <div class=
"input-group">
592 <span data-translate
>Address
</span>
593 <button class=
"address-toggle" data-translate
>Toggle
</button>
597 <div class=
"input-group">
598 <span data-translate
>Public Key
</span>
599 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
603 <div class=
"input-group">
604 <span data-translate
>Private Key
</span>
605 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
609 <tbody class=
"addresses monospace">
610 <tr><td> </td><td> </td><td> </td><td> </td></tr>
611 <tr><td> </td><td> </td><td> </td><td> </td></tr>
612 <tr><td> </td><td> </td><td> </td><td> </td></tr>
613 <tr><td> </td><td> </td><td> </td><td> </td></tr>
614 <tr><td> </td><td> </td><td> </td><td> </td></tr>
619 <span data-translate
>Show more rows
</span>:
620 <input type=
"number" class=
"rows-to-add" value=
"20">
621 <button class=
"more" data-translate
>Show
</button>
626 <div class=
"col-md-12">
627 <h2 data-translate
>More info
</h2>
628 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
629 <p data-translate-html
>
631 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
633 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
634 <p data-translate-html
>
636 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
638 <p data-translate-html
>
640 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
642 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
643 <p data-translate-html
>
645 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
647 <h3>BIP49
<span class=
"small" data-translate
>Derivation scheme for P2WPKH-nested-in-P2SH based accounts
</span></h3>
648 <p data-translate-html
>
650 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">official BIP49 spec
</a>
652 <h3 data-translate
>Private Keys
</h3>
654 <span data-translate-html
>
656 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
658 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
660 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
662 <span data-translate-html
>
663 Entropy values must be sourced from a
664 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
666 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
667 <span data-translate-html
>
668 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
669 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
670 random enough for the needs of this tool.
674 <strong><span data-translate
>Do not store entropy.
</span></strong>
677 <span data-translate
>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
678 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
679 <span data-translate-html
><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
682 <span data-translate-html
>
683 The random mnemonic generator on this page uses a
684 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
686 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
687 <span data-translate
>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
688 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
691 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
693 <h3 data-translate
>License
</h3>
695 <span data-translate-html
>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
698 <p data-translate
>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>
705 <div class=
"col-md-12">
707 <h2 data-translate
>Offline Usage
</h2>
710 You can use this tool without having to be online.
713 In your browser, select file save-as, and save this page
717 Double-click that file to open it in a browser
718 on any offline computer.
721 <span data-translate
>Alternatively, download the file from the repository
</span>
723 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
732 <div class=
"col-md-12">
734 <h2 data-translate
>This project is
100% open-source code
</h2>
737 <span data-translate
>Get the source code from the repository
</span>
739 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
740 https://github.com/iancoleman/bip39
744 <h3 data-translate
>Libraries
</h3>
747 <span>BitcoinJS -
</span>
748 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
749 https://github.com/bitcoinjs/bitcoinjs-lib
754 <span>jsBIP39 -
</span>
755 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
756 https://github.com/iancoleman/jsbip39
762 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
763 https://github.com/bitwiseshiftleft/sjcl
768 <span>jQuery -
</span>
769 <a href=
"https://jquery.com/" target=
"_blank">
775 <span>Twitter Bootstrap -
</span>
776 <a href=
"http://getbootstrap.com/" target=
"_blank">
777 http://getbootstrap.com/
786 <div class=
"qr-container hidden">
787 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
788 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
789 <div class=
"qr-hider hidden">
790 <div class=
"qr-image"></div>
791 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
795 <div class=
"feedback-container">
796 <div class=
"feedback">Loading...
</div>
799 <script type=
"text/template" id=
"address-row-template">
801 <td class=
"index"><span></span></td>
802 <td class=
"address"><span data-show-qr
></span></td>
803 <td class=
"pubkey"><span data-show-qr
></span></td>
804 <td class=
"privkey"><span data-show-qr
></span></td>
808 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
809 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
810 // but is not required in any modern browsers.
811 // For more information, see
812 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
814 //----------------------------------------------------------------------
816 // ECMAScript
2015 Polyfills
818 //----------------------------------------------------------------------
823 // Set this to always override native implementations, for testing
824 // the polyfill in browsers with partial/full ES2015 support.
825 var OVERRIDE_NATIVE_FOR_TESTING = false;
827 var undefined = (void
0); // Paranoia
832 return o === global ? undefined : o;
835 function hook(o, p, f) {
837 console.assert(typeof op === 'function', 'Hooking a non-function');
839 var o = strict(this);
840 var r = f.apply(o, arguments);
841 return r !== undefined ? r : op.apply(o, arguments);
845 function isSymbol(s) {
846 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
849 function getPropertyDescriptor(target, name) {
850 var desc = Object.getOwnPropertyDescriptor(target, name);
851 var proto = Object.getPrototypeOf(target);
852 while (!desc && proto) {
853 desc = Object.getOwnPropertyDescriptor(proto, name);
854 proto = Object.getPrototypeOf(proto);
859 var enqueue = (function(nativePromise, nativeSetImmediate) {
861 return function(job) { nativePromise.resolve().then(function() { job(); }); };
862 if (nativeSetImmediate)
863 return function(job) { nativeSetImmediate(job); };
864 return function(job) { setTimeout(job,
0); };
865 }(global['Promise'], global['setImmediate']));
867 function define(o, p, v, override) {
868 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
871 if (typeof v === 'function') {
872 // Sanity check that functions are appropriately named (where possible)
873 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
874 Object.defineProperty(o, p, {
881 Object.defineProperty(o, p, {
890 function set_internal(o, p, v) {
891 Object.defineProperty(o, p, {
899 // Snapshot intrinsic functions
900 var $isNaN = global.isNaN,
901 $parseInt = global.parseInt,
902 $parseFloat = global.parseFloat;
905 LOG10E = Math.LOG10E,
915 random = Math.random,
918 var orig_match = String.prototype.match,
919 orig_replace = String.prototype.replace,
920 orig_search = String.prototype.search,
921 orig_split = String.prototype.split;
923 // These are used for implementing the polyfills, but not exported.
925 // Inspired by https://gist.github.com/
1638059
927 function EphemeronTable() {
928 var secretKey = ObjectCreate(null);
930 function conceal(o) {
931 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
932 Object.defineProperty(o, 'valueOf', {
933 value: (function(secretKey) {
934 return function (k) {
935 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
946 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
947 return v === o ? null : v;
952 secretKey = ObjectCreate(null);
954 remove: function(key) {
955 var secrets = reveal(key);
956 if (secrets && HasOwnProperty(secrets, 'value')) {
957 delete secrets.value;
962 get: function(key, defaultValue) {
963 var secrets = reveal(key);
964 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
967 var secrets = reveal(key);
968 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
970 set: function(key, value) {
971 var secrets = reveal(key) || conceal(key);
972 secrets.value = value;
977 var empty = Object.create(null);
979 //----------------------------------------------------------------------
982 // http://www.ecma-international.org/ecma-
262/
6.0/
984 //----------------------------------------------------------------------
986 // ---------------------------------------
987 //
19.4 Symbol Objects
988 // ---------------------------------------
990 // NOTE: Symbols are defined here - out of spec order - since we need the
991 // properties and prototype to be populated for other polyfills.
993 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
997 var secret = Object.create(null);
999 symbolForKey = function(k) {
1000 return symbolMap[k];
1003 var GlobalSymbolRegistry = [];
1005 function unique(bits) {
1006 return Array(bits +
1).join('x').replace(/x/g, function() {
1007 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
1011 //
19.4.1 The Symbol Constructor
1012 //
19.4.1.1 Symbol ( description=undefined )
1013 function Symbol(description) {
1014 if (!(this instanceof Symbol)) return new Symbol(description, secret);
1015 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
1017 var descString = description === undefined ? undefined : String(description);
1019 set_internal(this, '[[SymbolData]]', unique(
128));
1020 set_internal(this, '[[Description]]', descString);
1022 symbolMap[this] = this;
1026 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
1027 global.Symbol = Symbol;
1029 //
19.4.2 Properties of the Symbol Constructor
1031 //
19.4.2.1 Symbol.for (key)
1032 define(Symbol, 'for', function for_(key) {
1033 var stringKey = String(key);
1034 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1035 var e = GlobalSymbolRegistry[i];
1036 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1038 var newSymbol = Symbol(key);
1039 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1043 //
19.4.2.2 Symbol.hasInstance
1044 //
19.4.2.3 Symbol.isConcatSpreadable
1046 //
19.4.2.4 Symbol.iterator
1047 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1049 //
19.4.2.5 Symbol.keyFor (sym)
1050 define(Symbol, 'keyFor', function keyFor(sym) {
1051 if (!(sym instanceof Symbol)) throw TypeError();
1052 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1053 var e = GlobalSymbolRegistry[i];
1054 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1059 //
19.4.2.6 Symbol.match
1060 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1062 //
19.4.2.7 Symbol.prototype
1064 //
19.4.2.8 Symbol.replace
1065 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1067 //
19.4.2.9 Symbol.search
1068 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1070 //
19.4.2.10 Symbol.species
1072 //
19.4.2.11 Symbol.search
1073 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1075 //
19.4.2.12 Symbol.toPrimitive
1077 //
19.4.2.13 Symbol.toStringTag
1078 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1080 //
19.4.2.14 Symbol.unscopables
1082 //
19.4.3 Properties of the Symbol Prototype Object
1083 //
19.4.3.1 Symbol.prototype.constructor
1085 //
19.4.3.2 Symbol.prototype.toString ( )
1086 Object.defineProperty(Symbol.prototype, 'toString', {
1087 value: function toString() {
1088 var s = strict(this);
1089 var desc = s['[[Description]]'];
1090 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1092 configurable: true, writeable: true, enumerable: false });
1094 //
19.4.3.3 Symbol.prototype.valueOf ( )
1095 Object.defineProperty(Symbol.prototype, 'valueOf', {
1096 value: function valueOf() {
1097 // To prevent automatic string conversion:
1100 // Spec has approximately the following:
1101 //var s = strict(this);
1102 //if (Type(s) === 'symbol') return s;
1103 //if (Type(s) !== 'object') throw TypeError();
1104 //if (!('[[SymbolData]]' in s)) throw TypeError();
1105 //return s['[[SymbolData]]'];
1107 configurable: true, writeable: true, enumerable: false });
1109 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1110 // (Done later to polyfill partial implementations)
1112 //
19.4.4 Properties of Symbol Instances
1115 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1117 // Defined here so that other prototypes can reference it
1118 //
25.1.2 The %IteratorPrototype% Object
1119 var $IteratorPrototype$ = {};
1121 //----------------------------------------
1122 //
6 ECMAScript Data Types and Values
1123 //----------------------------------------
1125 //
6.1 ECMAScript Language Types
1127 // "Type(x)" is used as shorthand for "the type of x"...
1130 case 'undefined': return 'undefined';
1131 case 'boolean': return 'boolean';
1132 case 'number': return 'number';
1133 case 'string': return 'string';
1134 case 'symbol': return 'symbol';
1136 if (v === null) return 'null';
1137 if (v instanceof global.Symbol) return 'symbol';
1142 //
6.1.5.1 Well-Known Symbols
1143 var $$iterator = global.Symbol.iterator,
1144 $$match = global.Symbol.match,
1145 $$replace = global.Symbol.replace,
1146 $$search = global.Symbol.search,
1147 $$split = global.Symbol.split,
1148 $$toStringTag = global.Symbol.toStringTag;
1150 //----------------------------------------
1151 //
7 Abstract Operations
1152 //----------------------------------------
1154 //----------------------------------------
1155 //
7.1 Type Conversion
1156 //----------------------------------------
1158 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1159 // just use valueOf()
1161 //
7.1.2 ToBoolean ( argument )
1162 // just use Boolean()
1164 //
7.1.3 ToNumber ( argument )
1165 // just use Number()
1167 //
7.1.4 ToInteger ( argument )
1168 function ToInteger(n) {
1170 if ($isNaN(n)) return
0;
1171 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1172 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1175 //
7.1.5 ToInt32 ( argument )
1176 function ToInt32(v) { return v
>> 0; }
1178 //
7.1.6 ToUint32 ( argument )
1179 function ToUint32(v) { return v
>>> 0; }
1181 //
7.1.7 ToInt16 ( argument )
1182 function ToInt16(v) { return (v <<
16)
>> 16; }
1184 //
7.1.8 ToUint16 ( argument )
1185 function ToUint16(v) { return v &
0xFFFF; }
1187 //
7.1.9 ToInt8 ( argument )
1188 function ToInt8(v) { return (v <<
24)
>> 24; }
1190 //
7.1.10 ToUint8 ( argument )
1191 function ToUint8(v) { return v &
0xFF; }
1193 //
7.1.11 ToUint8Clamp ( argument )
1194 function ToUint8Clamp(argument) {
1195 var number = Number(argument);
1196 if ($isNaN(number)) return
0;
1197 if (number <=
0) return
0;
1198 if (number
>=
255) return
255;
1199 var f = floor(number);
1200 if ((f +
0.5) < number) return f +
1;
1201 if (number < (f +
0.5)) return f;
1202 if (f %
2) return f +
1;
1206 //
7.1.12 ToString ( argument )
1207 // just use String()
1209 //
7.1.13 ToObject ( argument )
1210 function ToObject(v) {
1211 if (v === null || v === undefined) throw TypeError();
1215 //
7.1.14 ToPropertyKey ( argument )
1216 function ToPropertyKey(v) {
1220 //
7.1.15 ToLength ( argument )
1221 function ToLength(v) {
1222 var len = ToInteger(v);
1223 if (len <=
0) return
0;
1224 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1225 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1228 //
7.1.16 CanonicalNumericIndexString ( argument )
1230 //----------------------------------------
1231 //
7.2 Testing and Comparison Operations
1232 //----------------------------------------
1234 //
7.2.1 RequireObjectCoercible ( argument )
1235 //
7.2.2 IsArray ( argument )
1237 //
7.2.3 IsCallable ( argument )
1238 function IsCallable(o) { return typeof o === 'function'; }
1240 //
7.2.4 IsConstructor ( argument )
1241 function IsConstructor(o) {
1242 // Hacks for Safari
7 TypedArray XXXConstructor objects
1243 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1244 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1245 // TODO: Can this be improved on?
1246 return typeof o === 'function';
1249 //
7.2.5 IsExtensible (O)
1250 //
7.2.6 IsInteger ( argument )
1252 //
7.2.7 IsPropertyKey ( argument )
1253 function IsPropertyKey(argument) {
1254 if (Type(argument) === 'string') return true;
1255 if (Type(argument) === 'symbol') return true;
1259 //
7.2.8 IsRegExp ( argument )
1260 //
7.2.5 IsConstructor ( argument )
1262 //
7.2.9 SameValue(x, y)
1263 function SameValue(x, y) {
1264 if (typeof x !== typeof y) return false;
1269 if (x !== x && y !== y) return true;
1270 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1280 //
7.2.10 SameValueZero(x, y)
1281 function SameValueZero(x, y) {
1282 if (typeof x !== typeof y) return false;
1287 if (x !== x && y !== y) return true;
1297 //----------------------------------------
1298 //
7.3 Operations on Objects
1299 //----------------------------------------
1302 // - just use o.p or o[p]
1304 //
7.3.2 GetV (V, P)
1305 function GetV(v, p) {
1306 var o = ToObject(v);
1310 //
7.3.3 Set (O, P, V, Throw)
1311 // - just use o.p = v or o[p] = v
1316 //
7.3.9 GetMethod (O, P)
1317 function GetMethod(o, p) {
1318 var func = GetV(o, p);
1319 if (func === undefined || func === null) return undefined;
1320 if (!IsCallable(func)) throw TypeError();
1324 //
7.3.10 HasProperty (O, P)
1325 function HasProperty(o, p) {
1327 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1328 if (Type(o) !== 'object') return false;
1329 o = Object.getPrototypeOf(o);
1334 //
7.3.11 HasOwnProperty (O, P)
1335 function HasOwnProperty(o, p) {
1336 return Object.prototype.hasOwnProperty.call(o, p);
1339 //----------------------------------------
1340 //
7.4 Operations on Iterator Objects
1341 //----------------------------------------
1343 //
7.4.1 GetIterator ( obj, method )
1344 function GetIterator(obj, method) {
1345 if (arguments.length <
2)
1346 method = GetMethod(obj, $$iterator);
1347 var iterator = method.call(obj);
1348 if (Type(iterator) !== 'object') throw TypeError();
1352 //
7.4.2 IteratorNext ( iterator, value )
1353 function IteratorNext(iterator, value) {
1354 if (arguments.length <
2)
1355 var result = iterator.next();
1357 result = iterator.next(value);
1358 if (Type(result) !== 'object') throw TypeError();
1362 //
7.4.3 IteratorComplete ( iterResult )
1363 function IteratorComplete(iterResult) {
1364 console.assert(Type(iterResult) === 'object');
1365 return Boolean(iterResult.done);
1368 //
7.4.4 IteratorValue ( iterResult )
1369 function IteratorValue(iterResult) {
1370 console.assert(Type(iterResult) === 'object');
1371 return iterResult.value;
1374 //
7.4.5 IteratorStep ( iterator )
1375 function IteratorStep( iterator, value ) {
1376 var result = IteratorNext(iterator, value);
1377 var done = result['done'];
1378 if (Boolean(done) === true) return false;
1382 //
7.4.6 IteratorClose( iterator, completion )
1383 function IteratorClose( iterator, completion ) {
1384 console.assert(Type(iterator) === 'object');
1385 var _return = GetMethod(iterator, 'return');
1386 if (_return === undefined) return completion;
1388 var innerResult = _return[iterator]();
1390 // TODO: If completion.[[type]] is throw, return completion
1393 if (Type(innerResult) !== 'object') throw TypeError();
1397 //
7.4.7 CreateIterResultObject (value, done)
1398 function CreateIterResultObject(value, done) {
1399 console.assert(Type(done) === 'boolean');
1401 obj["value"] = value;
1406 //
7.4.8 CreateListIterator (list)
1407 //
7.4.8.1 ListIterator next( )
1408 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1409 //
7.4.9.1 CompoundIterator next( )
1411 //----------------------------------------
1412 //
8 Executable Code and Execution Contexts
1413 //----------------------------------------
1415 //----------------------------------------
1416 //
8.4 Jobs and Job Queues
1417 //----------------------------------------
1419 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1420 function EnqueueJob(queueName, job, args) {
1421 var fn = function() { job.apply(undefined, args); };
1425 //
8.4.2 NextJob result
1426 function NextJob(result) {
1430 //----------------------------------------
1431 //
9 Ordinary and Exotic Objects Behaviors
1432 //----------------------------------------
1434 //
9.1.11 [[Enumerate]] ()
1435 function Enumerate(obj) {
1437 if (Object(obj) !== obj) return e;
1438 var visited = new Set;
1439 while (obj !== null) {
1440 Object.getOwnPropertyNames(obj).forEach(function(name) {
1441 if (!visited.has(name)) {
1442 var desc = Object.getOwnPropertyDescriptor(obj, name);
1445 if (desc.enumerable) e.push(name);
1449 obj = Object.getPrototypeOf(obj);
1451 return e[$$iterator]();
1454 //
9.1.12 [[OwnPropertyKeys]] ( )
1455 function OwnPropertyKeys(o) {
1456 return Object.getOwnPropertyNames(o);
1459 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1460 function ObjectCreate(proto, internalSlotsList) {
1461 return Object.create(proto, internalSlotsList);
1464 // ---------------------------------------
1465 //
19 Fundamental Objects
1466 // ---------------------------------------
1468 // ---------------------------------------
1469 //
19.1 Object Objects
1470 // ---------------------------------------
1472 //
19.1.1 The Object Constructor
1473 //
19.1.1.1 Object ( [ value ] )
1474 //
19.1.2 Properties of the Object Constructor
1475 //
19.1.2.1 Object.assign ( target, ...sources )
1478 function assign(target, /*...*/sources) {
1479 var to = ToObject(target);
1480 if (arguments.length <
2) return to;
1482 var sourcesIndex =
1;
1483 while (sourcesIndex < arguments.length) {
1484 var nextSource = arguments[sourcesIndex++];
1485 if (nextSource === undefined || nextSource === null) {
1488 var from = ToObject(nextSource);
1489 keys = OwnPropertyKeys(from);
1491 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1492 var nextKey = keys[keysIndex];
1493 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1494 if (desc !== undefined && desc.enumerable) {
1495 var propValue = from[nextKey];
1496 to[nextKey] = propValue;
1503 //
19.1.2.2 Object.create ( O [ , Properties ] )
1504 //
19.1.2.3 Object.defineProperties ( O, Properties )
1505 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1506 //
19.1.2.5 Object.freeze ( O )
1507 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1510 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1511 $getOwnPropertyNames = Object.getOwnPropertyNames,
1512 $keys = Object.keys,
1513 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1515 function isStringKey(k) { return !symbolForKey(k); }
1517 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1519 Object, 'getOwnPropertyNames',
1520 function getOwnPropertyNames(o) {
1521 if (Object.prototype.toString.call(o) === '[object Window]') {
1522 // Workaround for cross-realm calling by IE itself.
1523 // https://github.com/inexorabletash/polyfill/issues/
96
1525 return $getOwnPropertyNames(o).filter(isStringKey);
1527 return $window_names.slice();
1530 return $getOwnPropertyNames(o).filter(isStringKey);
1533 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1535 Object, 'getOwnPropertySymbols',
1536 function getOwnPropertySymbols(o) {
1537 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1540 //
19.1.2.14 Object.keys ( O )
1544 return $keys(o).filter(isStringKey);
1548 //
19.1.2.9 Object.getPrototypeOf ( O )
1549 //
19.1.2.10 Object.is ( value1, value2 )
1552 function is(value1, value2) {
1553 return SameValue(value1, value2);
1556 //
19.1.2.11 Object.isExtensible ( O )
1557 //
19.1.2.12 Object.isFrozen ( O )
1558 //
19.1.2.13 Object.isSealed ( O )
1560 //
19.1.2.14 Object.keys ( O )
1563 //
19.1.2.15 Object.preventExtensions ( O )
1564 //
19.1.2.16 Object.prototype
1565 //
19.1.2.17 Object.seal ( O )
1567 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1569 Object, 'setPrototypeOf',
1570 function setPrototypeOf(o, proto) {
1571 if (Type(o) !== 'object') throw TypeError();
1572 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1573 o.__proto__ = proto;
1578 //
19.1.3 Properties of the Object Prototype Object
1579 //
19.1.3.1 Object.prototype.constructor
1580 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1581 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1582 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1583 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1584 //
19.1.3.6 Object.prototype.toString ( )
1585 hook(Object.prototype, 'toString',
1587 var o = strict(this);
1588 if (o === Object(o) && $$toStringTag in o) {
1589 return '[object ' + o[$$toStringTag] + ']';
1594 //
19.1.3.7 Object.prototype.valueOf ( )
1595 //
19.1.4 Properties of Object Instances
1597 // ---------------------------------------
1598 //
19.2 Function Objects
1599 // ---------------------------------------
1601 //
19.2.1 The Function Constructor
1602 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1603 //
19.2.2 Properties of the Function Constructor
1604 //
19.2.2.1 Function.length
1605 //
19.2.2.2 Function.prototype
1606 //
19.2.3 Properties of the Function Prototype Object
1607 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1608 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1609 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1610 //
19.2.3.4 Function.prototype.constructor
1611 //
19.2.3.5 Function.prototype.toString ( )
1612 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1613 //
19.2.4 Function Instances
1616 //
19.2.4.3 prototype
1618 // (No polyfillable changes from ES5)
1620 // ---------------------------------------
1621 //
19.3 Boolean Objects
1622 // ---------------------------------------
1624 //
19.3.1 The Boolean Constructor
1625 //
19.3.1.1 Boolean ( value )
1626 //
19.3.2 Properties of the Boolean Constructor
1627 //
19.3.2.1 Boolean.prototype
1628 //
19.3.3 Properties of the Boolean Prototype Object
1629 //
19.3.3.1 Boolean.prototype.constructor
1630 //
19.3.3.2 Boolean.prototype.toString ( )
1631 //
19.3.3.3 Boolean.prototype.valueOf ( )
1632 //
19.3.4 Properties of Boolean Instances
1634 // (No polyfillable changes from ES5)
1636 // ---------------------------------------
1637 //
19.4 Symbol Objects
1638 // ---------------------------------------
1640 // Moved earlier in this script, so that other polyfills can depend on them.
1642 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1643 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1645 // ---------------------------------------
1646 //
19.5 Error Objects
1647 // ---------------------------------------
1649 //
19.5.1 The Error Constructor
1650 //
19.5.1.1 Error ( message )
1651 //
19.5.1.2 new Error( ...argumentsList )
1652 //
19.5.2 Properties of the Error Constructor
1653 //
19.5.2.1 Error.prototype
1654 //
19.5.3 Properties of the Error Prototype Object
1655 //
19.5.3.1 Error.prototype.constructor
1656 //
19.5.3.2 Error.prototype.message
1657 //
19.5.3.3 Error.prototype.name
1658 //
19.5.3.4 Error.prototype.toString ( )
1659 //
19.5.4 Properties of Error Instances
1660 //
19.5.5 Native Error Types Used in This Standard
1661 //
19.5.5.1 EvalError
1662 //
19.5.5.2 RangeError
1663 //
19.5.5.3 ReferenceError
1664 //
19.5.5.4 SyntaxError
1665 //
19.5.5.5 TypeError
1666 //
19.5.5.6 URIError
1667 //
19.5.6 NativeError Object Structure
1668 //
19.5.6.1 NativeError Constructors
1669 //
19.5.6.1.1 NativeError ( message )
1670 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1671 //
19.5.6.2 Properties of the NativeError Constructors
1672 //
19.5.6.2.1 NativeError.prototype
1673 //
19.5.6.3 Properties of the NativeError Prototype Objects
1674 //
19.5.6.4 Properties of NativeError Instances
1676 // (No polyfillable changes from ES5)
1678 // ---------------------------------------
1679 //
20 Numbers and Dates
1680 // ---------------------------------------
1682 // ---------------------------------------
1683 //
20.1 Number Objects
1684 // ---------------------------------------
1686 //
20.1.1 The Number Constructor
1687 //
20.1.1.1 Number ( [ value ] )
1688 //
20.1.1.2 new Number ( ...argumentsList )
1689 //
20.1.2 Properties of the Number Constructor
1691 //
20.1.2.1 Number.EPSILON
1696 for (next =
1;
1 + next !==
1; next = next /
2)
1701 //
20.1.2.2 Number.isFinite ( number )
1704 function isFinite(number) {
1705 if (Type(number) !== 'number') return false;
1706 if (number !== number || number === +Infinity || number === -Infinity) return false;
1710 //
20.1.2.3 Number.isInteger ( number )
1712 Number, 'isInteger',
1713 function isInteger(number) {
1714 if (Type(number) !== 'number') return false;
1715 if (number !== number || number === +Infinity || number === -Infinity) return false;
1716 var integer = ToInteger(number);
1717 if (integer !== number) return false;
1721 //
20.1.2.4 Number.isNaN ( number )
1724 function isNaN(number) {
1725 if (Type(number) !== 'number') return false;
1726 if (number !== number) return true;
1730 //
20.1.2.5 Number.isSafeInteger ( number )
1732 Number, 'isSafeInteger',
1733 function isSafeInteger(number) {
1734 if (Type(number) !== 'number') return false;
1735 if (number !== number || number === +Infinity || number === -Infinity) return false;
1736 var integer = ToInteger(number);
1737 if (integer !== number) return false;
1738 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1743 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1745 Number, 'MAX_SAFE_INTEGER',
1746 9007199254740991); //
2^
53-
1
1748 //
20.1.2.7 Number.MAX_VALUE
1750 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1752 Number, 'MIN_SAFE_INTEGER',
1753 -
9007199254740991); // -
2^
53+
1
1755 //
20.1.2.9 Number.MIN_VALUE
1756 //
20.1.2.10 Number.NaN
1757 //
20.1.2.11 Number.NEGATIVE_INFINITY
1759 //
20.1.2.12 Number.parseFloat ( string )
1760 define(Number, 'parseFloat', $parseFloat);
1762 //
20.1.2.13 Number.parseInt ( string, radix )
1763 define(Number, 'parseInt', $parseInt);
1765 //
20.1.2.14 Number.POSITIVE_INFINITY
1766 //
20.1.2.15 Number.prototype
1768 //
20.1.3 Properties of the Number Prototype Object
1769 //
20.1.3.1 Number.prototype.constructor
1770 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1771 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1772 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1773 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1774 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1775 //
20.1.3.7 Number.prototype.valueOf ( )
1776 //
20.1.4 Properties of Number Instances
1778 // ---------------------------------------
1779 //
20.2 The Math Object
1780 // ---------------------------------------
1782 //
20.2.1 Value Properties of the Math Object
1784 //
20.2.1.2 Math.LN10
1785 //
20.2.1.3 Math.LN2
1786 //
20.2.1.4 Math.LOG10E
1787 //
20.2.1.5 Math.LOG2E
1789 //
20.2.1.7 Math.SQRT1_2
1790 //
20.2.1.8 Math.SQRT2
1792 //
20.2.1.9 Math [ @@toStringTag ]
1793 define(Math, $$toStringTag, 'Math');
1795 //
20.2.2 Function Properties of the Math Object
1796 //
20.2.2.1 Math.abs ( x )
1797 //
20.2.2.2 Math.acos ( x )
1799 //
20.2.2.3 Math.acosh(x)
1804 return log(x + sqrt(x * x -
1));
1807 //
20.2.2.4 Math.asin ( x )
1809 //
20.2.2.5 Math.asinh( x )
1814 if (SameValue(x, -
0)) {
1817 var s = sqrt(x * x +
1);
1818 return (s === -x) ? log(
0) : log(x + s);
1821 //
20.2.2.6 Math.atan ( x )
1823 //
20.2.2.7 Math.atanh( x )
1828 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1831 //
20.2.2.8 Math.atan2 ( y, x )
1833 //
20.2.2.9 Math.cbrt ( x )
1841 var r = pow(abs(x),
1/
3);
1843 return r + (r * (t-r) / (
2*r + t));
1846 //
20.2.2.10 Math.ceil ( x )
1848 //
20.2.2.11 Math.clz32 ( x )
1853 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1854 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1857 return x &
0xff000000 ? clz8(x
>> 24) :
1858 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1859 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1864 //
20.2.2.12 Math.cos ( x )
1866 //
20.2.2.13 Math.cosh ( x )
1871 return (pow(E, x) + pow(E, -x)) /
2;
1874 //
20.2.2.14 Math.exp ( x )
1876 //
20.2.2.15 Math.expm1 ( x )
1881 // from: http://www.johndcook.com/cpp_log1p.html
1882 if (SameValue(x, -
0)) {
1884 } else if (abs(x) <
1e-5) {
1885 return x +
0.5 * x * x; // two terms of Taylor expansion
1891 //
20.2.2.16 Math.floor ( x )
1893 //
20.2.2.17 Math.fround ( x )
1896 function fround(x) {
1900 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1903 return (new Float32Array([x]))[
0];
1906 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1911 var m =
0, sawNaN = false;
1912 for (var i =
0; i < arguments.length; ++i) {
1913 var n = abs(Number(arguments[i]));
1914 if (n === Infinity) return n;
1915 if (n !== n) sawNaN = true;
1919 if (sawNaN) return NaN;
1920 if (m ===
0) return +
0;
1922 for (i =
0; i < values.length; ++i) {
1923 var r = values[i] / m;
1926 return m * sqrt(sum);
1929 //
20.2.2.19 Math.imul ( x, y )
1932 function imul(x, y) {
1933 var a = ToUint32(x);
1934 var b = ToUint32(y);
1935 // (slow but accurate)
1936 var ah = (a
>>> 16) &
0xffff;
1937 var al = a &
0xffff;
1938 var bh = (b
>>> 16) &
0xffff;
1939 var bl = b &
0xffff;
1940 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1941 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1944 //
20.2.2.20 Math.log ( x )
1946 //
20.2.2.21 Math.log1p ( x )
1951 // from: http://www.johndcook.com/cpp_expm1.html
1954 } else if (SameValue(x, -
0)) {
1956 } else if (abs(x)
> 1e-4) {
1959 return (-
0.5 * x +
1) * x;
1963 //
20.2.2.22 Math.log10 ( x )
1968 return log(x) * LOG10E;
1971 //
20.2.2.23 Math.log2 ( x )
1976 return log(x) * LOG2E;
1979 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1980 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1981 //
20.2.2.26 Math.pow ( x, y )
1982 //
20.2.2.27 Math.random ( )
1983 //
20.2.2.28 Math.round ( x )
1985 //
20.2.2.29 Math.sign(x)
1990 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1993 //
20.2.2.30 Math.sin ( x )
1995 //
20.2.2.31 Math.sinh( x )
2000 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
2003 //
20.2.2.32 Math.sqrt ( x )
2004 //
20.2.2.33 Math.tan ( x )
2006 //
20.2.2.34 Math.tanh ( x )
2011 var n = pow(E,
2 * x) -
1,
2012 d = pow(E,
2 * x) +
1;
2013 if (SameValue(x, -
0))
2015 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
2018 //
20.2.2.35 Math.trunc ( x )
2023 return $isNaN(x) ? NaN :
2024 x <
0 ? ceil(x) : floor(x);
2027 // ---------------------------------------
2028 //
20.3 Date Objects
2029 // ---------------------------------------
2031 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2032 //
20.3.1.1 Time Values and Time Range
2033 //
20.3.1.2 Day Number and Time within Day
2034 //
20.3.1.3 Year Number
2035 //
20.3.1.4 Month Number
2036 //
20.3.1.5 Date Number
2037 //
20.3.1.6 Week Day
2038 //
20.3.1.7 Local Time Zone Adjustment
2039 //
20.3.1.8 Daylight Saving Time Adjustment
2040 //
20.3.1.9 Local Time
2041 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2042 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2043 //
20.3.1.12 MakeDay (year, month, date)
2044 //
20.3.1.13 MakeDate (day, time)
2045 //
20.3.1.14 TimeClip (time)
2046 //
20.3.1.15 Date Time String Format
2047 //
20.3.1.15.1 Extended years
2048 //
20.3.2 The Date Constructor
2049 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2050 //
20.3.2.2 Date ( value )
2051 //
20.3.2.3 Date ( )
2052 //
20.3.3 Properties of the Date Constructor
2053 //
20.3.3.1 Date.now ( )
2054 //
20.3.3.2 Date.parse (string)
2055 //
20.3.3.3 Date.prototype
2056 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2057 //
20.3.4 Properties of the Date Prototype Object
2058 //
20.3.4.1 Date.prototype.constructor
2059 //
20.3.4.2 Date.prototype.getDate ( )
2060 //
20.3.4.3 Date.prototype.getDay ( )
2061 //
20.3.4.4 Date.prototype.getFullYear ( )
2062 //
20.3.4.5 Date.prototype.getHours ( )
2063 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2064 //
20.3.4.7 Date.prototype.getMinutes ( )
2065 //
20.3.4.8 Date.prototype.getMonth ( )
2066 //
20.3.4.9 Date.prototype.getSeconds ( )
2067 //
20.3.4.10 Date.prototype.getTime ( )
2068 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2069 //
20.3.4.12 Date.prototype.getUTCDate ( )
2070 //
20.3.4.13 Date.prototype.getUTCDay ( )
2071 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2072 //
20.3.4.15 Date.prototype.getUTCHours ( )
2073 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2074 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2075 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2076 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2077 //
20.3.4.20 Date.prototype.setDate ( date )
2078 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2079 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2080 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2081 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2082 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2083 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2084 //
20.3.4.27 Date.prototype.setTime ( time )
2085 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2086 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2087 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2088 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2089 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2090 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2091 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2092 //
20.3.4.35 Date.prototype.toDateString ( )
2093 //
20.3.4.36 Date.prototype.toISOString ( )
2094 //
20.3.4.37 Date.prototype.toJSON ( key )
2095 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2096 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2097 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2098 //
20.3.4.41 Date.prototype.toString ( )
2099 //
20.3.4.42 Date.prototype.toTimeString ( )
2100 //
20.3.4.43 Date.prototype.toUTCString ( )
2101 //
20.3.4.44 Date.prototype.valueOf ( )
2102 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2103 //
20.3.5 Properties of Date Instances
2105 // (No polyfillable changes from ES5)
2107 // ---------------------------------------
2108 //
21 Text Processing
2109 // ---------------------------------------
2111 var string_regexp_dispatch = (function() {
2112 var faux = {}, secret = Symbol();
2113 faux[Symbol.match] = function() { return secret; };
2114 return (
"").match(faux) === secret;
2117 //
21.1 String Objects
2118 //
21.1.1 The String Constructor
2119 //
21.1.1.1 String ( value )
2120 //
21.1.2 Properties of the String Constructor
2121 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2123 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2125 String, 'fromCodePoint',
2126 function fromCodePoint(/*...codePoints*/) {
2127 var codePoints = arguments,
2128 length = codePoints.length,
2131 while (nextIndex < length) {
2132 var next = codePoints[nextIndex];
2133 var nextCP = Number(next);
2134 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2135 nextCP <
0 || nextCP
> 0x10FFFF) {
2136 throw RangeError('Invalid code point ' + nextCP);
2138 if (nextCP <
0x10000) {
2139 elements.push(String.fromCharCode(nextCP));
2142 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2143 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2147 return elements.join('');
2150 //
21.1.2.3 String.prototype
2152 //
21.1.2.4 String.raw ( template , ...substitutions )
2155 function raw(template /*, ...substitutions*/) {
2156 var substitutions = [].slice.call(arguments,
1);
2158 var cooked = Object(template);
2159 var rawValue = cooked['raw'];
2160 var raw = Object(rawValue);
2161 var len = raw['length'];
2162 var literalSegments = ToLength(len);
2163 if (literalSegments <=
0) return '';
2164 var stringElements = [];
2167 var next = raw[nextIndex];
2168 var nextSeg = String(next);
2169 stringElements.push(nextSeg);
2170 if (nextIndex +
1 === literalSegments)
2171 return stringElements.join('');
2172 next = substitutions[nextIndex];
2173 var nextSub = String(next);
2174 stringElements.push(nextSub);
2175 nextIndex = nextIndex +
1;
2179 // See https://githib.com/inexorabletash/uate for a more useful version.
2181 //
21.1.3 Properties of the String Prototype Object
2182 //
21.1.3.1 String.prototype.charAt ( pos )
2183 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2185 //
21.1.3.3 String.prototype.codePointAt ( pos )
2187 String.prototype, 'codePointAt',
2188 function codePointAt(pos) {
2189 var o = strict(this);
2191 var position = ToInteger(pos);
2192 var size = s.length;
2193 if (position <
0 || position
>= size) return undefined;
2194 var first = s.charCodeAt(position);
2195 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2196 var second = s.charCodeAt(position +
1);
2197 if (second <
0xDC00 || second
> 0xDFFF) return first;
2198 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2201 //
21.1.3.4 String.prototype.concat ( ...args )
2202 //
21.1.3.5 String.prototype.constructor
2204 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2206 String.prototype, 'endsWith',
2207 function endsWith(searchString) {
2208 var endPosition = arguments[
1];
2210 var o = strict(this);
2212 var searchStr = String(searchString);
2214 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2215 var end = min(max(pos,
0), len);
2216 var searchLength = searchStr.length;
2217 var start = end - searchLength;
2218 if (start <
0) return false;
2219 if (s.substring(start, start + searchLength) === searchStr) return true;
2223 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2225 String.prototype, 'includes',
2226 function includes(searchString) {
2227 var position = arguments[
1];
2229 var o = strict(this);
2231 var searchStr = String(searchString);
2232 var pos = ToInteger(position);
2234 var start = min(max(pos,
0), len);
2235 return s.indexOf(searchStr, start) !== -
1;
2238 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2239 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2240 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2241 //
21.1.3.11 String.prototype.match ( regexp )
2243 String.prototype, 'match',
2244 function match(regexp) {
2245 var o = strict(this);
2247 if (HasProperty(regexp, $$match)) var rx = regexp;
2248 else rx = new RegExp(regexp);
2249 return rx[$$match](s);
2250 }, !string_regexp_dispatch);
2252 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2254 // Not practical due to table sizes; if needed, pull in:
2255 // https://github.com/walling/unorm/
2257 //
21.1.3.13 String.prototype.repeat ( count )
2259 String.prototype, 'repeat',
2260 function repeat(count) {
2261 var o = strict(this);
2263 var n = ToInteger(count);
2264 if (n <
0) throw RangeError();
2265 if (n === Infinity) throw RangeError();
2266 var t = new Array(n +
1).join(s);
2270 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2272 String.prototype, 'replace',
2273 function replace(searchValue, replaceValue) {
2274 var o = strict(this);
2275 if (HasProperty(searchValue, $$replace))
2276 return searchValue[$$replace](o, replaceValue);
2277 return orig_replace.call(o, searchValue, replaceValue);
2278 }, !string_regexp_dispatch);
2280 //
21.1.3.15 String.prototype.search ( regexp )
2282 String.prototype, 'search',
2283 function search(regexp) {
2284 var o = strict(this);
2285 var string = String(o);
2286 if (HasProperty(regexp, $$search)) var rx = regexp;
2287 else rx = new RegExp(regexp);
2288 return rx[$$search](string);
2289 }, !string_regexp_dispatch);
2291 //
21.1.3.16 String.prototype.slice ( start, end )
2292 //
21.1.3.17 String.prototype.split ( separator, limit )
2294 String.prototype, 'split',
2295 function split(separator, limit) {
2296 var o = strict(this);
2297 if (HasProperty(separator, $$split))
2298 return separator[$$split](o, limit);
2299 return orig_split.call(o, separator, limit);
2300 }, !string_regexp_dispatch);
2302 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2304 String.prototype, 'startsWith',
2305 function startsWith(searchString) {
2306 var position = arguments[
1];
2308 var o = strict(this);
2310 var searchStr = String(searchString);
2311 var pos = ToInteger(position);
2313 var start = min(max(pos,
0), len);
2314 var searchLength = searchStr.length;
2315 if (searchLength + start
> len) return false;
2316 if (s.substring(start, start + searchLength) === searchStr) return true;
2320 //
21.1.3.19 String.prototype.substring ( start, end )
2321 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2322 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2323 //
21.1.3.22 String.prototype.toLowerCase ( )
2324 //
21.1.3.23 String.prototype.toString ( )
2325 //
21.1.3.24 String.prototype.toUpperCase ( )
2326 //
21.1.3.25 String.prototype.trim ( )
2327 //
21.1.3.26 String.prototype.valueOf ( )
2329 //
21.1.3.27 String.prototype [ @@iterator ]( )
2331 String.prototype, $$iterator,
2332 function entries() {
2333 return CreateStringIterator(this, 'value');
2336 //
21.1.4 Properties of String Instances
2339 //
21.1.5 String Iterator Objects
2341 function StringIterator() {}
2343 //
21.1.5.1 CreateStringIterator Abstract Operation
2344 function CreateStringIterator(string, kind) {
2345 var s = String(string);
2346 var iterator = new StringIterator;
2347 set_internal(iterator, '[[IteratedString]]', s);
2348 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2349 set_internal(iterator, '[[StringIterationKind]]', kind);
2353 //
21.1.5.2 The %StringIteratorPrototype% Object
2354 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2355 StringIterator.prototype = $StringIteratorPrototype$;
2357 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2359 $StringIteratorPrototype$, 'next',
2361 var o = ToObject(this);
2362 var s = String(o['[[IteratedString]]']),
2363 index = o['[[StringIteratorNextIndex]]'],
2366 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2367 return CreateIterResultObject(undefined, true);
2369 var cp = s.codePointAt(index);
2370 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2371 return CreateIterResultObject(String.fromCodePoint(cp), false);
2374 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2375 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2377 //
21.1.5.3 Properties of String Iterator Instances
2379 // ---------------------------------------
2380 //
21.2 RegExp (Regular Expression) Objects
2381 // ---------------------------------------
2384 //
21.2.2 Pattern Semantics
2385 //
21.2.2.1 Notation
2387 //
21.2.2.3 Disjunction
2388 //
21.2.2.4 Alternative
2390 //
21.2.2.6 Assertion
2391 //
21.2.2.7 Quantifier
2393 //
21.2.2.9 AtomEscape
2394 //
21.2.2.10 CharacterEscape
2395 //
21.2.2.11 DecimalEscape
2396 //
21.2.2.12 CharacterClassEscape
2397 //
21.2.2.13 CharacterClass
2398 //
21.2.2.14 ClassRanges
2399 //
21.2.2.15 NonemptyClassRanges
2400 //
21.2.2.16 NonemptyClassRangesNoDash
2401 //
21.2.2.17 ClassAtom
2402 //
21.2.2.18 ClassAtomNoDash
2403 //
21.2.2.19 ClassEscape
2404 //
21.2.3 The RegExp Constructor
2405 //
21.2.3.1 RegExp ( pattern, flags )
2406 //
21.2.3.2 new RegExp( ...argumentsList )
2407 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2408 //
21.2.4 Properties of the RegExp Constructor
2409 //
21.2.4.1 RegExp.prototype
2410 //
21.2.5 Properties of the RegExp Prototype Object
2411 //
21.2.5.1 RegExp.prototype.constructor
2412 //
21.2.5.2 RegExp.prototype.exec ( string )
2414 //
21.2.5.3 get RegExp.prototype.flags
2415 if (!('flags' in RegExp.prototype)) {
2416 Object.defineProperty(
2417 RegExp.prototype, 'flags', {
2419 var s = String(this);
2420 return s.substring(s.lastIndexOf('/') +
1);
2425 //
21.2.5.4 get RegExp.prototype.global
2426 //
21.2.5.5 get RegExp.prototype.ignoreCase
2428 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2429 define(RegExp.prototype, $$match, function(string) {
2430 var o = strict(this);
2431 return orig_match.call(string, o);
2434 //
21.2.5.7 get RegExp.prototype.multiline
2436 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2437 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2438 var o = strict(this);
2439 return orig_replace.call(string, o, replaceValue);
2442 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2443 define(RegExp.prototype, $$search, function(string) {
2444 var o = strict(this);
2445 return orig_search.call(string, o);
2448 //
21.2.5.10 get RegExp.prototype.source
2450 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2451 define(RegExp.prototype, $$split, function(string, limit) {
2452 var o = strict(this);
2453 return orig_split.call(string, o, limit);
2456 //
21.2.5.12 get RegExp.prototype.sticky
2457 //
21.2.5.13 RegExp.prototype.test( S )
2458 //
21.2.5.14 RegExp.prototype.toString ( )
2459 //
21.2.5.15 get RegExp.prototype.unicode
2461 //
21.2.6 Properties of RegExp Instances
2462 //
21.2.6.1 lastIndex
2464 // (No polyfillable changes from ES5)
2466 // ---------------------------------------
2467 //
22 Indexed Collections
2468 // ---------------------------------------
2470 // ---------------------------------------
2471 //
22.1 Array Objects
2472 // ---------------------------------------
2474 //
22.1.1 The Array Constructor
2475 //
22.1.1.1 Array ( )
2476 //
22.1.1.2 Array (len)
2477 //
22.1.1.3 Array (...items )
2479 //
22.1.2 Properties of the Array Constructor
2481 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2484 function from(items) {
2485 var mapfn = arguments[
1];
2486 var thisArg = arguments[
2];
2488 var c = strict(this);
2489 if (mapfn === undefined) {
2490 var mapping = false;
2492 if (!IsCallable(mapfn)) throw TypeError();
2496 var usingIterator = GetMethod(items, $$iterator);
2497 if (usingIterator !== undefined) {
2498 if (IsConstructor(c)) {
2503 var iterator = GetIterator(items, usingIterator);
2506 var next = IteratorStep(iterator);
2507 if (next === false) {
2511 var nextValue = IteratorValue(next);
2513 var mappedValue = mapfn.call(t, nextValue);
2515 mappedValue = nextValue;
2520 var arrayLike = ToObject(items);
2521 var lenValue = arrayLike.length;
2522 var len = ToLength(lenValue);
2523 if (IsConstructor(c)) {
2530 var kValue = arrayLike[k];
2532 mappedValue = mapfn.call(t, kValue, k);
2534 mappedValue = kValue;
2542 //
22.1.2.2 Array.isArray ( arg )
2544 //
22.1.2.3 Array.of ( ...items )
2548 var items = arguments;
2550 var lenValue = items.length;
2551 var len = ToUint32(lenValue);
2552 var c = strict(this), a;
2553 if (IsConstructor(c)) {
2568 //
22.1.2.4 Array.prototype
2569 //
22.1.2.5 get Array [ @@species ]
2570 //
22.1.3 Properties of the Array Prototype Object
2571 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2572 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2573 //
22.1.3.2 Array.prototype.constructor
2574 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2576 Array.prototype, 'copyWithin',
2577 function copyWithin(target, start/*, end*/) {
2578 var end = arguments[
2];
2580 var o = ToObject(this);
2581 var lenVal = o.length;
2582 var len = ToLength(lenVal);
2584 var relativeTarget = ToInteger(target);
2586 if (relativeTarget <
0)
2587 to = max(len + relativeTarget,
0);
2589 to = min(relativeTarget, len);
2590 var relativeStart = ToInteger(start);
2592 if (relativeStart <
0)
2593 from = max(len + relativeStart,
0);
2595 from = min(relativeStart, len);
2597 if (end === undefined)
2600 relativeEnd = ToInteger(end);
2602 if (relativeEnd <
0)
2603 final = max(len + relativeEnd,
0);
2605 final = min(relativeEnd, len);
2606 var count = min(final - from, len - to);
2608 if (from < to && to < from + count) {
2610 from = from + count -
1;
2611 to = to + count -
1;
2616 var fromKey = String(from);
2617 var toKey = String(to);
2618 var fromPresent = HasProperty(o, fromKey);
2620 var fromVal = o[fromKey];
2625 from = from + direction;
2626 to = to + direction;
2632 //
22.1.3.4 Array.prototype.entries ( )
2633 var nativeArrayIteratorMethods =
2634 ('entries' in Array.prototype && 'next' in [].entries());
2637 Array.prototype, 'entries',
2638 function entries() {
2639 return CreateArrayIterator(this, 'key+value');
2640 }, !nativeArrayIteratorMethods);
2642 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2644 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2646 Array.prototype, 'fill',
2647 function fill(value/*, start, end*/) {
2648 var start = arguments[
1],
2651 var o = ToObject(this);
2652 var lenVal = o.length;
2653 var len = ToLength(lenVal);
2655 var relativeStart = ToInteger(start);
2657 if (relativeStart <
0)
2658 k = max((len + relativeStart),
0);
2660 k = min(relativeStart, len);
2662 if (end === undefined)
2665 relativeEnd = ToInteger(end);
2667 if (relativeEnd <
0)
2668 final = max((len + relativeEnd),
0);
2670 final = min(relativeEnd, len);
2679 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2681 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2683 Array.prototype, 'find',
2684 function find(predicate) {
2685 var o = ToObject(this);
2686 var lenValue = o.length;
2687 var len = ToInteger(lenValue);
2688 if (!IsCallable(predicate)) throw TypeError();
2689 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2693 var kPresent = HasProperty(o, pk);
2696 var testResult = predicate.call(t, kValue, k, o);
2697 if (Boolean(testResult)) {
2706 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2708 Array.prototype, 'findIndex',
2709 function findIndex(predicate) {
2710 var o = ToObject(this);
2711 var lenValue = o.length;
2712 var len = ToLength(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.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2732 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2733 //
22.1.3.12 Array.prototype.join (separator)
2735 //
22.1.3.13 Array.prototype.keys ( )
2737 Array.prototype, 'keys',
2739 return CreateArrayIterator(this, 'key');
2740 }, !nativeArrayIteratorMethods);
2742 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2743 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2744 //
22.1.3.16 Array.prototype.pop ( )
2745 //
22.1.3.17 Array.prototype.push ( ...items )
2746 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2747 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2748 //
22.1.3.20 Array.prototype.reverse ( )
2749 //
22.1.3.21 Array.prototype.shift ( )
2750 //
22.1.3.22 Array.prototype.slice (start, end)
2751 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2752 //
22.1.3.24 Array.prototype.sort (comparefn)
2753 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2754 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2755 //
22.1.3.27 Array.prototype.toString ( )
2756 //
22.1.3.28 Array.prototype.unshift ( ...items )
2758 //
22.1.3.29 Array.prototype.values ( )
2760 Array.prototype, 'values',
2762 return CreateArrayIterator(this, 'value');
2763 }, !nativeArrayIteratorMethods);
2765 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2767 Array.prototype, $$iterator,
2768 Array.prototype.values
2771 //
22.1.3.31 Array.prototype [ @@unscopables ]
2772 //
22.1.4 Properties of Array Instances
2775 //
22.1.5 Array Iterator Objects
2776 function ArrayIterator() {}
2778 //
22.1.5.1 CreateArrayIterator Abstract Operation
2779 function CreateArrayIterator(array, kind) {
2780 var o = ToObject(array);
2781 var iterator = new ArrayIterator;
2782 set_internal(iterator, '[[IteratedObject]]', o);
2783 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2784 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2788 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2789 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2790 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2792 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2794 $ArrayIteratorPrototype$, 'next',
2796 var o = strict(this);
2797 if (Type(o) !== 'object') throw TypeError();
2798 var a = o['[[IteratedObject]]'],
2799 index = o['[[ArrayIteratorNextIndex]]'],
2800 itemKind = o['[[ArrayIterationKind]]'],
2801 lenValue = a.length,
2802 len = ToUint32(lenValue),
2805 if (itemKind.indexOf('sparse') !== -
1) {
2807 while (!found && index < len) {
2808 elementKey = String(index);
2809 found = HasProperty(a, elementKey);
2816 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2817 return CreateIterResultObject(undefined, true);
2820 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2821 if (itemKind.indexOf('value') !== -
1)
2822 elementValue = a[elementKey];
2823 if (itemKind.indexOf('key+value') !== -
1)
2824 return CreateIterResultObject([elementKey, elementValue], false);
2825 if (itemKind.indexOf('key') !== -
1)
2826 return CreateIterResultObject(elementKey, false);
2827 if (itemKind === 'value')
2828 return CreateIterResultObject(elementValue, false);
2829 throw Error('Internal error');
2832 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2833 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2835 //
22.1.5.3 Properties of Array Iterator Instances
2838 // ---------------------------------------
2839 //
22.2 TypedArray Objects
2840 // ---------------------------------------
2842 // See typedarray.js for TypedArray polyfill
2844 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2845 'Int16Array', 'Uint16Array',
2846 'Int32Array', 'Uint32Array',
2847 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2848 if (!($TypedArrayName$ in global))
2850 var $TypedArray$ = global[$TypedArrayName$];
2852 //
22.2.1 The %TypedArray% Intrinsic Object
2853 //
22.2.1.1 %TypedArray% ( length )
2854 //
22.2.1.2 %TypedArray% ( typedArray )
2855 //
22.2.1.3 %TypedArray% ( object )
2856 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2857 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2858 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2860 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2862 $TypedArray$, 'from',
2863 function from(source) {
2864 var mapfn = arguments[
1];
2865 var thisArg = arguments[
2];
2867 var c = strict(this);
2868 if (!IsConstructor(c)) throw TypeError();
2869 if (mapfn === undefined) {
2870 var mapping = false;
2872 if (IsCallable(mapfn)) throw TypeError();
2876 var usingIterator = GetMethod(source, $$iterator);
2877 if (usingIterator !== undefined) {
2878 var iterator = GetIterator(source, usingIterator);
2881 while (next !== false) {
2882 next = IteratorStep(iterator);
2883 if (next !== false) {
2884 var nextValue = IteratorValue(next);
2885 values.push(nextValue);
2888 var len = values.length;
2889 var newObj = new c(len);
2892 var kValue = values.shift();
2894 var mappedValue = mapfn.call(t, kValue);
2896 mappedValue = kValue;
2898 newObj[k] = mappedValue;
2901 console.assert(values.length ===
0);
2904 var arrayLike = ToObject(source);
2905 var lenValue = arrayLike.length;
2906 len = ToLength(lenValue);
2907 newObj = new c(len);
2910 kValue = arrayLike[k];
2912 mappedValue = mapfn.call(t, kValue, k);
2914 mappedValue = kValue;
2916 newObj[k] = mappedValue;
2922 //
22.2.2.2 %TypedArray%.of ( ...items )
2926 var items = arguments;
2928 var len = items.length;
2929 var c = strict(this);
2930 var newObj = new c(len);
2933 newObj[k] = items[k];
2939 //
22.2.2.3 %TypedArray%.prototype
2940 //
22.2.2.4 get %TypedArray% [ @@species ]
2941 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2942 //
22.2.3.1 get %TypedArray%.prototype.buffer
2943 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2944 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2945 //
22.2.3.4 %TypedArray%.prototype.constructor
2947 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2948 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2950 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2951 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2953 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2954 define($TypedArray$.prototype, 'every', Array.prototype.every);
2956 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2958 $TypedArray$.prototype, 'fill',
2959 //Array.prototype.fill // Doesn't work in Safari
7
2960 function fill(value/*, start, end*/) {
2961 var start = arguments[
1],
2964 var o = ToObject(this);
2965 var lenVal = o.length;
2966 var len = ToLength(lenVal);
2968 var relativeStart = ToInteger(start);
2970 if (relativeStart <
0) k = max((len + relativeStart),
0);
2971 else k = min(relativeStart, len);
2973 if (end === undefined) relativeEnd = len;
2974 else relativeEnd = ToInteger(end);
2976 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2977 else final = min(relativeEnd, len);
2986 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2988 $TypedArray$.prototype, 'filter',
2989 function filter(callbackfn) {
2990 var thisArg = arguments[
1];
2992 var o = ToObject(this);
2993 var lenVal = o.length;
2994 var len = ToLength(lenVal);
2995 if (!IsCallable(callbackfn)) throw TypeError();
2997 var c = o.constructor;
3003 var selected = callbackfn.call(t, kValue, k, o);
3010 var a = new c(captured);
3012 for (var i =
0; i < kept.length; ++i) {
3020 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
3021 define($TypedArray$.prototype, 'find', Array.prototype.find);
3023 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
3024 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
3026 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
3027 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3029 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3030 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3032 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3033 define($TypedArray$.prototype, 'join', Array.prototype.join);
3035 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3036 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3038 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3039 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3041 //
22.2.3.17 get %TypedArray%.prototype.length
3043 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3045 $TypedArray$.prototype, 'map',
3046 function map(callbackfn) {
3047 var thisArg = arguments[
1];
3049 var o = ToObject(this);
3050 var lenValue = o.length;
3051 var len = ToLength(lenValue);
3052 if (!IsCallable(callbackfn)) throw TypeError();
3055 var c = o.constructor;
3056 if (IsConstructor(c))
3058 if (a === undefined)
3062 var kPresent = HasProperty(o, k);
3065 var mappedValue = callbackfn.call(t, kValue, k, o);
3073 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3074 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3076 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3077 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3079 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3080 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3082 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3083 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3084 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3086 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3088 $TypedArray$.prototype, 'slice',
3089 function slice(start, end) {
3090 var o = ToObject(this);
3091 var lenVal = o.length;
3092 var len = ToLength(lenVal);
3093 var relativeStart = ToInteger(start);
3094 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3095 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3096 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3097 var count = final - k;
3098 var c = o.constructor;
3099 if (IsConstructor(c)) {
3100 var a = new c(count);
3114 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3115 define($TypedArray$.prototype, 'some', Array.prototype.some);
3117 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3119 $TypedArray$.prototype, 'sort',
3121 var comparefn = arguments[
0];
3123 function sortCompare(x, y) {
3124 console.assert(Type(x) === 'number' && Type(y) === 'number');
3125 if (x !== x && y !== y) return +
0;
3126 if (x !== x) return
1;
3127 if (y !== y) return -
1;
3128 if (comparefn !== undefined) {
3129 return comparefn(x, y);
3131 if (x < y) return -
1;
3132 if (x
> y) return
1;
3135 return Array.prototype.sort.call(this, sortCompare);
3138 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3139 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3140 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3142 //
22.2.3.29 %TypedArray%.prototype.values ( )
3143 define($TypedArray$.prototype, 'values', Array.prototype.values);
3145 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3147 $TypedArray$.prototype, $$iterator,
3148 $TypedArray$.prototype.values
3151 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3152 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3154 //
22.2.4 The TypedArray Constructors
3155 //
22.2.4.1TypedArray( ... argumentsList)
3156 //
22.2.5 Properties of the TypedArray Constructors
3157 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3158 //
22.2.5.2 TypedArray.prototype
3159 //
22.2.6 Properties of TypedArray Prototype Objects
3160 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3161 //
22.2.6.2 TypedArray.prototype.constructor
3162 //
22.2.7 Properties of TypedArray Instances
3165 // ---------------------------------------
3166 //
23 Keyed Collection
3167 // ---------------------------------------
3169 // ---------------------------------------
3171 // ---------------------------------------
3174 //
23.1.1 The Map Constructor
3176 //
23.1.1.1 Map ( [ iterable ] )
3178 function Map(/*iterable*/) {
3179 var map = strict(this);
3180 var iterable = arguments[
0];
3182 if (Type(map) !== 'object') throw TypeError();
3183 if ('[[MapData]]' in map) throw TypeError();
3185 if (iterable !== undefined) {
3186 var adder = map['set'];
3187 if (!IsCallable(adder)) throw TypeError();
3188 var iter = GetIterator(ToObject(iterable));
3190 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3191 if (iter === undefined) return map;
3193 var next = IteratorStep(iter);
3196 var nextItem = IteratorValue(next);
3197 if (Type(nextItem) !== 'object') throw TypeError();
3198 var k = nextItem[
0];
3199 var v = nextItem[
1];
3200 adder.call(map, k, v);
3206 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3207 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3208 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3209 (new global.Map([['a',
1]]).size !==
1))
3213 function MapDataIndexOf(mapData, key) {
3215 if (key === key) return mapData.keys.indexOf(key);
3216 // Slow case for NaN
3217 for (i =
0; i < mapData.keys.length; i +=
1)
3218 if (SameValueZero(mapData.keys[i], key)) return i;
3222 //
23.1.1.2 new Map ( ... argumentsList )
3223 //
23.1.2 Properties of the Map Constructor
3224 //
23.1.2.1 Map.prototype
3225 var $MapPrototype$ = {};
3226 Map.prototype = $MapPrototype$;
3228 //
23.1.2.2 get Map [ @@species ]
3230 //
23.1.3 Properties of the Map Prototype Object
3231 //
23.1.3.1 Map.prototype.clear ()
3233 Map.prototype, 'clear',
3235 var m = strict(this);
3236 if (Type(m) !== 'object') throw TypeError();
3237 if (!('[[MapData]]' in m)) throw TypeError();
3238 if (m['[[MapData]]'] === undefined) throw TypeError();
3239 var entries = m['[[MapData]]'];
3240 entries.keys.length =
0;
3241 entries.values.length =
0;
3245 //
23.1.3.2 Map.prototype.constructor
3247 //
23.1.3.3 Map.prototype.delete ( key )
3249 Map.prototype, 'delete',
3250 function delete_(key) {
3251 var m = strict(this);
3252 if (Type(m) !== 'object') throw TypeError();
3253 if (!('[[MapData]]' in m)) throw TypeError();
3254 if (m['[[MapData]]'] === undefined) throw TypeError();
3255 var entries = m['[[MapData]]'];
3256 var i = MapDataIndexOf(entries, key);
3257 if (i <
0) return false;
3258 entries.keys[i] = empty;
3259 entries.values[i] = empty;
3263 //
23.1.3.4 Map.prototype.entries ( )
3265 Map.prototype, 'entries',
3266 function entries() {
3267 var m = strict(this);
3268 if (Type(m) !== 'object') throw TypeError();
3269 return CreateMapIterator(m, 'key+value');
3272 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3274 Map.prototype, 'forEach',
3275 function forEach(callbackfn /*, thisArg*/) {
3276 var thisArg = arguments[
1];
3278 var m = strict(this);
3279 if (Type(m) !== 'object') throw TypeError();
3280 if (!('[[MapData]]' in m)) throw TypeError();
3281 if (m['[[MapData]]'] === undefined) throw TypeError();
3282 var entries = m['[[MapData]]'];
3284 if (!IsCallable(callbackfn)) {
3285 throw TypeError('First argument to forEach is not callable.');
3287 for (var i =
0; i < entries.keys.length; ++i) {
3288 if (entries.keys[i] !== empty) {
3289 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3295 //
23.1.3.6 Map.prototype.get ( key )
3297 Map.prototype, 'get',
3299 var m = strict(this);
3300 if (Type(m) !== 'object') throw TypeError();
3301 if (!('[[MapData]]' in m)) throw TypeError();
3302 if (m['[[MapData]]'] === undefined) throw TypeError();
3303 var entries = m['[[MapData]]'];
3304 var i = MapDataIndexOf(entries, key);
3305 if (i
>=
0) return entries.values[i];
3309 //
23.1.3.7 Map.prototype.has ( key )
3311 Map.prototype, 'has',
3313 var m = strict(this);
3314 if (Type(m) !== 'object') throw TypeError();
3315 if (!('[[MapData]]' in m)) throw TypeError();
3316 if (m['[[MapData]]'] === undefined) throw TypeError();
3317 var entries = m['[[MapData]]'];
3318 if (MapDataIndexOf(entries, key)
>=
0) return true;
3322 //
23.1.3.8 Map.prototype.keys ( )
3324 Map.prototype, 'keys',
3326 var m = strict(this);
3327 if (Type(m) !== 'object') throw TypeError();
3328 return CreateMapIterator(m, 'key');
3331 //
23.1.3.9 Map.prototype.set ( key , value )
3333 Map.prototype, 'set',
3334 function set(key, value) {
3335 var m = strict(this);
3336 if (Type(m) !== 'object') throw TypeError();
3337 if (!('[[MapData]]' in m)) throw TypeError();
3338 if (m['[[MapData]]'] === undefined) throw TypeError();
3339 var entries = m['[[MapData]]'];
3340 var i = MapDataIndexOf(entries, key);
3341 if (i <
0) i = entries.keys.length;
3342 if (SameValue(key, -
0)) key =
0;
3343 entries.keys[i] = key;
3344 entries.values[i] = value;
3348 //
23.1.3.10 get Map.prototype.size
3349 Object.defineProperty(
3350 Map.prototype, 'size', {
3352 var m = strict(this);
3353 if (Type(m) !== 'object') throw TypeError();
3354 if (!('[[MapData]]' in m)) throw TypeError();
3355 if (m['[[MapData]]'] === undefined) throw TypeError();
3356 var entries = m['[[MapData]]'];
3358 for (var i =
0; i < entries.keys.length; ++i) {
3359 if (entries.keys[i] !== empty)
3366 //
23.1.3.11 Map.prototype.values ( )
3368 Map.prototype, 'values',
3370 var m = strict(this);
3371 if (Type(m) !== 'object') throw TypeError();
3372 return CreateMapIterator(m, 'value');
3375 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3377 Map.prototype, $$iterator,
3379 var m = strict(this);
3380 if (Type(m) !== 'object') throw TypeError();
3381 return CreateMapIterator(m, 'key+value');
3384 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3385 define(global.Map.prototype, $$toStringTag, 'Map');
3387 //
23.1.4 Properties of Map Instances
3388 //
23.1.5 Map Iterator Objects
3391 function MapIterator() {}
3393 //
23.1.5.1 CreateMapIterator Abstract Operation
3394 function CreateMapIterator(map, kind) {
3395 if (Type(map) !== 'object') throw TypeError();
3396 if (!('[[MapData]]' in map)) throw TypeError();
3397 if (map['[[MapData]]'] === undefined) throw TypeError();
3398 var iterator = new MapIterator;
3399 set_internal(iterator, '[[Map]]', map);
3400 set_internal(iterator, '[[MapNextIndex]]',
0);
3401 set_internal(iterator, '[[MapIterationKind]]', kind);
3405 //
23.1.5.2 The %MapIteratorPrototype% Object
3406 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3407 MapIterator.prototype = $MapIteratorPrototype$;
3409 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3411 $MapIteratorPrototype$, 'next',
3413 var o = strict(this);
3414 if (Type(o) !== 'object') throw TypeError();
3415 var m = o['[[Map]]'],
3416 index = o['[[MapNextIndex]]'],
3417 itemKind = o['[[MapIterationKind]]'],
3418 entries = m['[[MapData]]'];
3419 while (index < entries.keys.length) {
3420 var e = {key: entries.keys[index], value: entries.values[index]};
3422 set_internal(o, '[[MapNextIndex]]', index);
3423 if (e.key !== empty) {
3424 if (itemKind === 'key') {
3425 return CreateIterResultObject(e.key, false);
3426 } else if (itemKind === 'value') {
3427 return CreateIterResultObject(e.value, false);
3429 return CreateIterResultObject([e.key, e.value], false);
3433 return CreateIterResultObject(undefined, true);
3436 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3437 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3439 //
23.1.5.3 Properties of Map Iterator Instances
3442 // ---------------------------------------
3444 // ---------------------------------------
3447 //
23.2.1 The Set Constructor
3448 //
23.2.1.1 Set ( [ iterable ] )
3451 function Set(/*iterable*/) {
3452 var set = strict(this);
3453 var iterable = arguments[
0];
3455 if (Type(set) !== 'object') throw TypeError();
3456 if ('[[SetData]]' in set) throw TypeError();
3458 if (iterable !== undefined) {
3459 var adder = set['add'];
3460 if (!IsCallable(adder)) throw TypeError();
3461 var iter = GetIterator(ToObject(iterable));
3463 set_internal(set, '[[SetData]]', []);
3464 if (iter === undefined) return set;
3466 var next = IteratorStep(iter);
3469 var nextValue = IteratorValue(next);
3470 adder.call(set, nextValue);
3476 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3477 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3478 (new global.Set([
1]).size !==
1))
3481 function SetDataIndexOf(setData, key) {
3484 return setData.indexOf(key);
3485 // Slow case for NaN
3486 for (i =
0; i < setData.length; i +=
1)
3487 if (SameValueZero(setData[i], key)) return i;
3491 //
23.2.1.2 new Set ( ...argumentsList )
3492 //
23.2.2 Properties of the Set Constructor
3494 //
23.2.2.1 Set.prototype
3495 var $SetPrototype$ = {};
3496 Set.prototype = $SetPrototype$;
3498 //
23.2.2.2 get Set [ @@species ]
3499 //
23.2.3 Properties of the Set Prototype Object
3501 //
23.2.3.1 Set.prototype.add (value )
3503 Set.prototype, 'add',
3504 function add(value) {
3505 var s = strict(this);
3506 if (Type(s) !== 'object') throw TypeError();
3507 if (!('[[SetData]]' in s)) throw TypeError();
3508 if (s['[[SetData]]'] === undefined) throw TypeError();
3509 if (SameValue(value, -
0)) value =
0;
3510 var entries = s['[[SetData]]'];
3511 var i = SetDataIndexOf(entries, value);
3512 if (i <
0) i = s['[[SetData]]'].length;
3513 s['[[SetData]]'][i] = value;
3518 //
23.2.3.2 Set.prototype.clear ()
3520 Set.prototype, 'clear',
3522 var s = strict(this);
3523 if (Type(s) !== 'object') throw TypeError();
3524 if (!('[[SetData]]' in s)) throw TypeError();
3525 if (s['[[SetData]]'] === undefined) throw TypeError();
3526 var entries = s['[[SetData]]'];
3531 //
23.2.3.3 Set.prototype.constructor
3532 //
23.2.3.4 Set.prototype.delete ( value )
3534 Set.prototype, 'delete',
3535 function delete_(value) {
3536 var s = strict(this);
3537 if (Type(s) !== 'object') throw TypeError();
3538 if (!('[[SetData]]' in s)) throw TypeError();
3539 if (s['[[SetData]]'] === undefined) throw TypeError();
3540 var entries = s['[[SetData]]'];
3541 var i = SetDataIndexOf(entries, value);
3542 if (i <
0) return false;
3547 //
23.2.3.5 Set.prototype.entries ( )
3549 Set.prototype, 'entries',
3550 function entries() {
3551 var s = strict(this);
3552 if (Type(s) !== 'object') throw TypeError();
3553 return CreateSetIterator(s, 'key+value');
3556 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3558 Set.prototype, 'forEach',
3559 function forEach(callbackfn/*, thisArg*/) {
3560 var thisArg = arguments[
1];
3562 var s = strict(this);
3563 if (Type(s) !== 'object') throw TypeError();
3564 if (!('[[SetData]]' in s)) throw TypeError();
3565 if (s['[[SetData]]'] === undefined) throw TypeError();
3566 var entries = s['[[SetData]]'];
3568 if (!IsCallable(callbackfn)) {
3569 throw TypeError('First argument to forEach is not callable.');
3571 for (var i =
0; i < entries.length; ++i) {
3572 if (entries[i] !== empty) {
3573 callbackfn.call(thisArg, entries[i], entries[i], s);
3578 //
23.2.3.7 Set.prototype.has ( value )
3580 Set.prototype, 'has',
3582 var s = strict(this);
3583 if (Type(s) !== 'object') throw TypeError();
3584 if (!('[[SetData]]' in s)) throw TypeError();
3585 if (s['[[SetData]]'] === undefined) throw TypeError();
3586 var entries = s['[[SetData]]'];
3587 return SetDataIndexOf(entries, key) !== -
1;
3590 //
23.2.3.8 Set.prototype.keys ( )
3591 // See Set.prototype.values
3593 //
23.2.3.9 get Set.prototype.size
3594 Object.defineProperty(
3595 Set.prototype, 'size', {
3597 var s = strict(this);
3598 if (Type(s) !== 'object') throw TypeError();
3599 if (!('[[SetData]]' in s)) throw TypeError();
3600 if (s['[[SetData]]'] === undefined) throw TypeError();
3601 var entries = s['[[SetData]]'];
3603 for (var i =
0; i < entries.length; ++i) {
3604 if (entries[i] !== empty)
3611 //
23.2.3.10 Set.prototype.values ( )
3613 Set.prototype, 'values',
3615 var s = strict(this);
3616 if (Type(s) !== 'object') throw TypeError();
3617 return CreateSetIterator(s, 'value');
3619 // NOTE: function name is still 'values':
3620 Set.prototype.keys = Set.prototype.values;
3622 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3624 Set.prototype, $$iterator,
3626 var s = strict(this);
3627 if (Type(s) !== 'object') throw TypeError();
3628 return CreateSetIterator(s);
3631 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3632 define(global.Set.prototype, $$toStringTag, 'Set');
3634 //
23.2.4 Properties of Set Instances
3635 //
23.2.5 Set Iterator Objects
3637 function SetIterator() {}
3639 //
23.2.5.1 CreateSetIterator Abstract Operation
3640 function CreateSetIterator(set, kind) {
3641 if (Type(set) !== 'object') throw TypeError();
3642 if (!('[[SetData]]' in set)) throw TypeError();
3643 if (set['[[SetData]]'] === undefined) throw TypeError();
3644 var iterator = new SetIterator;
3645 set_internal(iterator, '[[IteratedSet]]', set);
3646 set_internal(iterator, '[[SetNextIndex]]',
0);
3647 set_internal(iterator, '[[SetIterationKind]]', kind);
3651 //
23.2.5.2 The %SetIteratorPrototype% Object
3652 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3653 SetIterator.prototype = $SetIteratorPrototype$;
3655 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3657 $SetIteratorPrototype$, 'next',
3659 var o = strict(this);
3660 if (Type(o) !== 'object') throw TypeError();
3661 var s = o['[[IteratedSet]]'],
3662 index = o['[[SetNextIndex]]'],
3663 itemKind = o['[[SetIterationKind]]'],
3664 entries = s['[[SetData]]'];
3665 while (index < entries.length) {
3666 var e = entries[index];
3668 set_internal(o, '[[SetNextIndex]]', index);
3670 if (itemKind === 'key+value')
3671 return CreateIterResultObject([e, e], false);
3672 return CreateIterResultObject(e, false);
3675 return CreateIterResultObject(undefined, true);
3678 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3679 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3681 //
23.2.5.3 Properties of Set Iterator Instances
3685 // ---------------------------------------
3686 //
23.3 WeakMap Objects
3687 // ---------------------------------------
3690 //
23.3.1 The WeakMap Constructor
3691 //
23.3.1.1 WeakMap ( [ iterable ] )
3693 function WeakMap(/*iterable*/) {
3694 var map = strict(this);
3695 var iterable = arguments[
0];
3697 if (Type(map) !== 'object') throw TypeError();
3698 if ('[[WeakMapData]]' in map) throw TypeError();
3700 if (iterable !== undefined) {
3701 var adder = map['set'];
3702 if (!IsCallable(adder)) throw TypeError();
3703 var iter = GetIterator(ToObject(iterable));
3705 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3706 if (iter === undefined) return map;
3708 var next = IteratorStep(iter);
3711 var nextValue = IteratorValue(next);
3712 if (Type(nextValue) !== 'object') throw TypeError();
3713 var k = nextValue[
0];
3714 var v = nextValue[
1];
3715 adder.call(map, k, v);
3721 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3722 global.WeakMap = WeakMap;
3724 //
23.3.2 Properties of the WeakMap Constructor
3725 //
23.3.2.1 WeakMap.prototype
3726 var $WeakMapPrototype$ = {};
3727 WeakMap.prototype = $WeakMapPrototype$;
3731 //
23.3.2.2 WeakMap[ @@create ] ( )
3732 //
23.3.3 Properties of the WeakMap Prototype Object
3734 //
23.3.3.1 WeakMap.prototype.constructor
3736 //
23.3.3.2 WeakMap.prototype.delete ( key )
3738 WeakMap.prototype, 'delete',
3739 function delete_(key) {
3740 var M = strict(this);
3741 if (Type(M) !== 'object') throw TypeError();
3742 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3743 if (Type(key) !== 'object') throw TypeError('Expected object');
3744 return M['[[WeakMapData]]'].remove(key);
3747 //
23.3.3.3 WeakMap.prototype.get ( key )
3749 WeakMap.prototype, 'get',
3750 function get(key, defaultValue) {
3751 var M = strict(this);
3752 if (Type(M) !== 'object') throw TypeError();
3753 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3754 if (Type(key) !== 'object') throw TypeError('Expected object');
3755 return M['[[WeakMapData]]'].get(key, defaultValue);
3758 //
23.3.3.4 WeakMap.prototype.has ( key )
3760 WeakMap.prototype, 'has',
3762 var M = strict(this);
3763 if (Type(M) !== 'object') throw TypeError();
3764 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3765 if (Type(key) !== 'object') throw TypeError('Expected object');
3766 return M['[[WeakMapData]]'].has(key);
3769 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3771 WeakMap.prototype, 'set',
3772 function set(key, value) {
3773 var M = strict(this);
3774 if (Type(M) !== 'object') throw TypeError();
3775 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3776 if (Type(key) !== 'object') throw TypeError('Expected object');
3777 M['[[WeakMapData]]'].set(key, value);
3781 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3782 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3784 //
23.3.4 Properties of WeakMap Instances
3786 // Polyfills for incomplete native implementations:
3788 var wm = new global.WeakMap();
3789 var orig = global.WeakMap.prototype.set;
3790 define(global.WeakMap.prototype, 'set', function set() {
3791 orig.apply(this, arguments);
3793 }, wm.set({},
0) !== wm);
3797 // ---------------------------------------
3798 //
23.4 WeakSet Objects
3799 // ---------------------------------------
3802 //
23.4.1 The WeakSet Constructor
3803 //
23.4.1.1 WeakSet ( [ iterable ] )
3805 function WeakSet(/*iterable*/) {
3806 var set = strict(this);
3807 var iterable = arguments[
0];
3809 if (Type(set) !== 'object') throw TypeError();
3810 if ('[[WeakSetData]]' in set) throw TypeError();
3812 if (iterable !== undefined) {
3813 var adder = set['add'];
3814 if (!IsCallable(adder)) throw TypeError();
3815 var iter = GetIterator(ToObject(iterable));
3817 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3818 if (iter === undefined) return set;
3820 var next = IteratorStep(iter);
3823 var nextValue = IteratorValue(next);
3824 adder.call(set, nextValue);
3830 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3831 global.WeakSet = WeakSet;
3833 //
23.4.2 Properties of the WeakSet Constructor
3834 //
23.4.2.1 WeakSet.prototype
3835 var $WeakSetPrototype$ = {};
3836 WeakSet.prototype = $WeakSetPrototype$;
3838 //
23.4.3 Properties of the WeakSet Prototype Object
3839 //
23.4.3.1 WeakSet.prototype.add (value )
3841 WeakSet.prototype, 'add',
3842 function add(value) {
3843 var S = strict(this);
3844 if (Type(S) !== 'object') throw TypeError();
3845 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3846 if (Type(value) !== 'object') throw TypeError('Expected object');
3847 S['[[WeakSetData]]'].set(value, true);
3851 //
23.4.3.2 WeakSet.prototype.constructor
3852 //
23.4.3.3 WeakSet.prototype.delete ( value )
3854 WeakSet.prototype, 'delete',
3855 function delete_(value) {
3856 var S = strict(this);
3857 if (Type(S) !== 'object') throw TypeError();
3858 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3859 if (Type(value) !== 'object') throw TypeError('Expected object');
3860 return S['[[WeakSetData]]'].remove(value);
3863 //
23.4.3.4 WeakSet.prototype.has ( value )
3865 WeakSet.prototype, 'has',
3867 var S = strict(this);
3868 if (Type(S) !== 'object') throw TypeError();
3869 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3870 if (Type(key) !== 'object') throw TypeError('Expected object');
3871 return S['[[WeakSetData]]'].has(key);
3874 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3875 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3877 //
23.4.4 Properties of WeakSet Instances
3879 // Polyfills for incomplete native implementations:
3881 var ws = new global.WeakSet();
3882 var orig = global.WeakSet.prototype.add;
3883 define(global.WeakSet.prototype, 'add', function add() {
3884 orig.apply(this, arguments);
3886 }, ws.add({}) !== ws);
3890 // ---------------------------------------
3891 //
24 Structured Data
3892 // ---------------------------------------
3894 // ---------------------------------------
3895 //
24.1 ArrayBuffer Objects
3896 // ---------------------------------------
3898 // See typedarray.js for TypedArray polyfill
3901 if (!('ArrayBuffer' in global))
3904 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3905 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3906 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3907 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3908 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3909 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3910 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3911 //
24.1.2 The ArrayBuffer Constructor
3912 //
24.1.2.1 ArrayBuffer( length )
3913 //
24.1.3 Properties of the ArrayBuffer Constructor
3915 //
24.1.3.1 ArrayBuffer.isView ( arg )
3917 ArrayBuffer, 'isView',
3918 function isView(arg) {
3919 if (Type(arg) !== 'object') return false;
3920 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3924 //
24.1.3.2 ArrayBuffer.prototype
3925 //
24.1.3.3 get ArrayBuffer [ @@species ]
3926 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3927 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3928 //
24.1.4.2 ArrayBuffer.prototype.constructor
3929 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3931 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3932 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3934 //
24.1.5 Properties of the ArrayBuffer Instances
3937 // ---------------------------------------
3938 //
24.2 DataView Objects
3939 // ---------------------------------------
3941 // See typedarray.js for TypedArray polyfill
3944 if (!('DataView' in global))
3947 //
24.2.1 Abstract Operations For DataView Objects
3948 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3949 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3950 //
24.2.2 The DataView Constructor
3951 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3952 //
24.2.3 Properties of the DataView Constructor
3953 //
24.2.3.1 DataView.prototype
3954 //
24.2.4 Properties of the DataView Prototype Object
3955 //
24.2.4.1 get DataView.prototype.buffer
3956 //
24.2.4.2 get DataView.prototype.byteLength
3957 //
24.2.4.3 get DataView.prototype.byteOffset
3958 //
24.2.4.4 DataView.prototype.constructor
3959 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3960 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3961 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3962 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3963 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3964 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3965 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3966 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3967 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3968 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3969 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3970 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3971 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3972 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3973 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3974 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3976 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3977 define(DataView.prototype, $$toStringTag, 'DataView');
3979 //
24.2.5 Properties of DataView Instances
3982 // ---------------------------------------
3983 //
24.3 The JSON Object
3984 // ---------------------------------------
3986 //
24.3.1 JSON.parse ( text [ , reviver ] )
3987 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3988 //
24.3.3 JSON [ @@toStringTag ]
3989 define(JSON, $$toStringTag, 'JSON');
3991 // ---------------------------------------
3993 // ---------------------------------------
3995 //
25.1.1 Common Iteration Interfaces
3996 //
25.1.1.1 The Iterable Interface
3997 //
25.1.1.2 The Iterator Interface
3998 //
25.1.1.3 The IteratorResult Interface
4000 //
25.1.2 The %IteratorPrototype% Object
4001 // Defined earlier, so other prototypes can reference it.
4002 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
4003 define($IteratorPrototype$, $$iterator, function() {
4008 // ---------------------------------------
4009 //
25.4 Promise Objects
4010 // ---------------------------------------
4013 //
25.4 Promise Objects
4015 //
25.4.1 Promise Abstract Operations
4017 //
25.4.1.1 PromiseCapability Records
4018 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
4020 function IfAbruptRejectPromise(value, capability) {
4021 var rejectResult = capability['[[Reject]]'].call(undefined, value);
4022 return capability['[[Promise]]'];
4025 //
25.4.1.2 PromiseReaction Records
4027 //
25.4.1.3 CreateResolvingFunctions ( promise )
4029 function CreateResolvingFunctions(promise) {
4030 var alreadyResolved = {'[[value]]': false};
4031 var resolve = PromiseResolveFunction();
4032 set_internal(resolve, '[[Promise]]', promise);
4033 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4034 var reject = PromiseRejectFunction();
4035 set_internal(reject, '[[Promise]]', promise);
4036 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4037 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4040 //
25.4.1.3.1 Promise Reject Functions
4042 function PromiseRejectFunction() {
4043 var F = function(reason) {
4044 console.assert(Type(F['[[Promise]]']) === 'object');
4045 var promise = F['[[Promise]]'];
4046 var alreadyResolved = F['[[AlreadyResolved]]'];
4047 if (alreadyResolved['[[value]]']) return undefined;
4048 set_internal(alreadyResolved, '[[value]]', true);
4049 return RejectPromise(promise, reason);
4054 //
25.4.1.3.2 Promise Resolve Functions
4056 function PromiseResolveFunction() {
4057 var F = function(resolution) {
4058 console.assert(Type(F['[[Promise]]']) === 'object');
4059 var promise = F['[[Promise]]'];
4060 var alreadyResolved = F['[[AlreadyResolved]]'];
4061 if (alreadyResolved['[[value]]']) return undefined;
4062 set_internal(alreadyResolved, '[[value]]', true);
4064 if (SameValue(resolution, promise)) {
4065 var selfResolutionError = TypeError();
4066 return RejectPromise(promise, selfResolutionError);
4068 if (Type(resolution) !== 'object')
4069 return FulfillPromise(promise, resolution);
4071 var then = resolution['then'];
4073 return RejectPromise(promise, then);
4075 if (!IsCallable(then))
4076 return FulfillPromise(promise, resolution);
4077 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4083 //
25.4.1.4 FulfillPromise ( promise, value )
4085 function FulfillPromise(promise, value) {
4086 console.assert(promise['[[PromiseState]]'] === 'pending');
4087 var reactions = promise['[[PromiseFulfillReactions]]'];
4088 set_internal(promise, '[[PromiseResult]]', value);
4089 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4090 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4091 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4092 return TriggerPromiseReactions(reactions, value);
4095 //
25.4.1.5 NewPromiseCapability ( C )
4097 function NewPromiseCapability(c) {
4098 // To keep Promise hermetic, this doesn't look much like the spec.
4099 return CreatePromiseCapabilityRecord(undefined, c);
4102 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4104 function CreatePromiseCapabilityRecord(promise, constructor) {
4105 // To keep Promise hermetic, this doesn't look much like the spec.
4106 console.assert(IsConstructor(constructor));
4107 var promiseCapability = {};
4108 set_internal(promiseCapability, '[[Promise]]', promise);
4109 set_internal(promiseCapability, '[[Resolve]]', undefined);
4110 set_internal(promiseCapability, '[[Reject]]', undefined);
4111 var executor = GetCapabilitiesExecutor();
4112 set_internal(executor, '[[Capability]]', promiseCapability);
4114 // NOTE: Differs from spec; object is constructed here
4115 var constructorResult = promise = new constructor(executor);
4116 set_internal(promiseCapability, '[[Promise]]', promise);
4118 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4119 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4120 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4121 return promiseCapability;
4124 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4126 function GetCapabilitiesExecutor() {
4127 var F = function(resolve, reject) {
4128 console.assert(F['[[Capability]]']);
4129 var promiseCapability = F['[[Capability]]'];
4130 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4131 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4132 set_internal(promiseCapability, '[[Resolve]]', resolve);
4133 set_internal(promiseCapability, '[[Reject]]', reject);
4139 //
25.4.1.6 IsPromise ( x )
4141 function IsPromise(x) {
4142 if (Type(x) !== 'object') return false;
4143 if (!('[[PromiseState]]' in x)) return false;
4144 if (x['[[PromiseState]]'] === undefined) return false;
4148 //
25.4.1.7 RejectPromise ( promise, reason )
4150 function RejectPromise(promise, reason) {
4151 console.assert(promise['[[PromiseState]]'] === 'pending');
4152 var reactions = promise['[[PromiseRejectReactions]]'];
4153 set_internal(promise, '[[PromiseResult]]', reason);
4154 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4155 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4156 set_internal(promise, '[[PromiseState]]', 'rejected');
4157 return TriggerPromiseReactions(reactions, reason);
4160 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4162 function TriggerPromiseReactions(reactions, argument) {
4163 for (var i =
0, len = reactions.length; i < len; ++i)
4164 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4168 //
25.4.2 Promise Jobs
4170 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4172 function PromiseReactionJob(reaction, argument) {
4173 var promiseCapability = reaction['[[Capabilities]]'];
4174 var handler = reaction['[[Handler]]'];
4175 var handlerResult, status;
4177 if (handler === 'Identity') handlerResult = argument;
4178 else if (handler === 'Thrower') throw argument;
4179 else handlerResult = handler.call(undefined, argument);
4180 } catch (handlerResult) {
4181 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4182 NextJob(status); return;
4184 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4188 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4190 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4191 // SPEC BUG: promise vs. promiseToResolve
4192 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4194 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4195 resolvingFunctions['[[Reject]]']);
4196 } catch (thenCallResult) {
4197 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4198 NextJob(status); return;
4200 NextJob(thenCallResult);
4203 //
25.4.3 The Promise Constructor
4205 //
25.4.3.1 Promise ( executor )
4207 function Promise(executor) {
4208 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4209 Object.defineProperty(this, '[[PromiseState]]', config);
4210 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4211 Object.defineProperty(this, '[[PromiseResult]]', config);
4212 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4213 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4216 if (Type(promise) !== 'object') throw new TypeError();
4217 if (!('[[PromiseState]]' in promise)) throw TypeError();
4218 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4219 if (!IsCallable(executor)) throw TypeError();
4221 set_internal(promise, '[[PromiseConstructor]]', Promise);
4223 return InitializePromise(promise, executor);
4226 //
25.4.3.1.1 InitializePromise ( promise, executor )
4228 function InitializePromise(promise, executor) {
4229 console.assert('[[PromiseState]]' in promise);
4230 console.assert(IsCallable(executor));
4231 set_internal(promise, '[[PromiseState]]', 'pending');
4232 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4233 set_internal(promise, '[[PromiseRejectReactions]]', []);
4234 var resolvingFunctions = CreateResolvingFunctions(promise);
4236 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4237 resolvingFunctions['[[Reject]]']);
4238 } catch (completion) {
4239 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4244 //
25.4.4 Properties of the Promise Constructor
4245 //
25.4.4.1 Promise.all ( iterable )
4247 define(Promise, 'all', function all(iterable) {
4248 var c = strict(this);
4249 var promiseCapability = NewPromiseCapability(c);
4251 var iterator = GetIterator(iterable);
4253 promiseCapability['[[Reject]]'].call(undefined, value);
4254 return promiseCapability['[[Promise]]'];
4257 var remainingElementsCount = { value:
1 };
4261 var next = IteratorStep(iterator);
4263 promiseCapability['[[Reject]]'].call(undefined, value);
4264 return promiseCapability['[[Promise]]'];
4267 remainingElementsCount.value -=
1;
4268 if (remainingElementsCount.value ===
0) {
4269 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4273 return promiseCapability['[[Promise]]'];
4276 var nextValue = IteratorValue(next);
4278 promiseCapability['[[Reject]]'].call(undefined, value);
4279 return promiseCapability['[[Promise]]'];
4282 var nextPromise = c.resolve(nextValue);
4284 promiseCapability['[[Reject]]'].call(undefined, value);
4285 return promiseCapability['[[Promise]]'];
4287 var resolveElement = PromiseAllResolveElementFunction();
4288 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4289 set_internal(resolveElement, '[[Index]]', index);
4290 set_internal(resolveElement, '[[Values]]', values);
4291 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4292 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4293 remainingElementsCount.value +=
1;
4295 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4297 promiseCapability['[[Reject]]'].call(undefined, value);
4298 return promiseCapability['[[Promise]]'];
4304 //
25.4.4.1.1 Promise.all Resolve Element Functions
4306 function PromiseAllResolveElementFunction() {
4307 var F = function(x) {
4308 var alreadyCalled = F['[[AlreadyCalled]]'];
4309 if (alreadyCalled.value) return undefined;
4310 alreadyCalled.value = true;
4311 var index = F['[[Index]]'];
4312 var values = F['[[Values]]'];
4313 var promiseCapability = F['[[Capabilities]]'];
4314 var remainingElementsCount = F['[[RemainingElements]]'];
4318 promiseCapability['[[Reject]]'].call(undefined, result);
4319 return promiseCapability['[[Promise]]'];
4321 remainingElementsCount.value -=
1;
4322 if (remainingElementsCount.value ===
0)
4323 return promiseCapability['[[Resolve]]'].call(undefined, values);
4329 //
25.4.4.2 Promise.prototype
4331 Promise.prototype = {};
4333 //
25.4.4.3 Promise.race ( iterable )
4335 define(Promise, 'race', function race(iterable) {
4336 var c = strict(this);
4337 var promiseCapability = NewPromiseCapability(c);
4339 var iterator = GetIterator(iterable);
4341 promiseCapability['[[Reject]]'].call(undefined, value);
4342 return promiseCapability['[[Promise]]'];
4346 var next = IteratorStep(iterator);
4348 promiseCapability['[[Reject]]'].call(undefined, value);
4349 return promiseCapability['[[Promise]]'];
4351 if (!next) return promiseCapability['[[Promise]]'];
4353 var nextValue = IteratorValue(next);
4355 promiseCapability['[[Reject]]'].call(undefined, value);
4356 return promiseCapability['[[Promise]]'];
4359 var nextPromise = c.resolve(nextValue);
4361 promiseCapability['[[Reject]]'].call(undefined, value);
4362 return promiseCapability['[[Promise]]'];
4365 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4367 promiseCapability['[[Reject]]'].call(undefined, value);
4368 return promiseCapability['[[Promise]]'];
4373 //
25.4.4.4 Promise.reject ( r )
4375 define(Promise, 'reject', function reject(r) {
4376 var c = strict(this);
4377 var promiseCapability = NewPromiseCapability(c);
4378 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4379 return promiseCapability['[[Promise]]'];
4382 //
25.4.4.5 Promise.resolve ( x )
4384 define(Promise, 'resolve', function resolve(x) {
4385 var c = strict(this);
4387 var constructor = x['[[PromiseConstructor]]'];
4388 if (SameValue(constructor, c)) return x;
4390 var promiseCapability = NewPromiseCapability(c);
4391 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4392 return promiseCapability['[[Promise]]'];
4395 //
25.4.4.6 Promise [ @@create ] ( )
4396 //
25.4.4.6.1 AllocatePromise ( constructor )
4397 //
25.4.5 Properties of the Promise Prototype Object
4398 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4400 define(Promise.prototype, 'catch', function catch_(onRejected) {
4402 return promise.then(undefined, onRejected);
4405 //
25.4.5.2 Promise.prototype.constructor
4407 Promise.prototype.constructor = Promise;
4409 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4411 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4413 if (!IsPromise(promise)) throw TypeError();
4414 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4415 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4416 var c = promise.constructor;
4417 var promiseCapability = NewPromiseCapability(c);
4418 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4419 '[[Handler]]': onFulfilled };
4420 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4421 '[[Handler]]': onRejected };
4422 if (promise['[[PromiseState]]'] === 'pending') {
4423 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4424 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4425 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4426 var value = promise['[[PromiseResult]]'];
4427 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4428 } else if (promise['[[PromiseState]]'] === 'rejected') {
4429 var reason = promise['[[PromiseResult]]'];
4430 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4432 return promiseCapability['[[Promise]]'];
4435 //
25.4.6 Properties of Promise Instances
4437 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4438 global.Promise = Promise;
4440 // Patch early Promise.cast vs. Promise.resolve implementations
4441 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4444 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4445 define(Promise.prototype, $$toStringTag, 'Promise');
4447 // ---------------------------------------
4449 // ---------------------------------------
4452 //
26.1 The Reflect Object
4453 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4454 global.Reflect = {};
4456 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4459 function apply(target, thisArgument, argumentsList) {
4460 if (!IsCallable(target)) throw TypeError();
4461 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4464 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4466 Reflect, 'construct',
4467 function construct(target, argumentsList) {
4468 return __cons(target, argumentsList);
4471 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4473 Reflect, 'defineProperty',
4474 function defineProperty(target, propertyKey, attributes) {
4476 Object.defineProperty(target, propertyKey, attributes);
4483 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4485 Reflect, 'deleteProperty',
4486 function deleteProperty(target,name) {
4488 delete target[name];
4489 return !HasOwnProperty(target, name);
4495 //
26.1.5 Reflect.enumerate ( target )
4497 Reflect, 'enumerate',
4498 function enumerate(target) {
4499 target = ToObject(target);
4500 var iterator = Enumerate(target);
4504 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4507 function get(target, name, receiver) {
4508 target = ToObject(target);
4509 name = String(name);
4510 receiver = (receiver === undefined) ? target : ToObject(receiver);
4511 var desc = getPropertyDescriptor(target, name);
4512 if (desc && 'get' in desc)
4513 return Function.prototype.call.call(desc['get'], receiver);
4514 return target[name];
4517 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4519 Reflect, 'getOwnPropertyDescriptor',
4520 Object.getOwnPropertyDescriptor);
4522 //
26.1.8 Reflect.getPrototypeOf ( target )
4524 Reflect, 'getPrototypeOf',
4525 Object.getPrototypeOf);
4527 //
26.1.9 Reflect.has ( target, propertyKey )
4530 function has(target,name) {
4531 return String(name) in ToObject(target);
4534 //
26.1.10 Reflect.isExtensible (target)
4536 Reflect, 'isExtensible',
4537 Object.isExtensible);
4539 //
26.1.11 Reflect.ownKeys ( target )
4542 function ownKeys(target) {
4543 var obj = ToObject(target);
4544 return Object.getOwnPropertyNames(obj);
4547 //
26.1.12 Reflect.preventExtensions ( target )
4549 Reflect, 'preventExtensions',
4550 function preventExtensions(target) {
4551 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4554 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4557 function set(target, name, value, receiver) {
4558 target = ToObject(target);
4559 name = String(name);
4560 receiver = (receiver === undefined) ? target : ToObject(receiver);
4561 var desc = getPropertyDescriptor(target, name);
4563 if (desc && 'set' in desc)
4564 Function.prototype.call.call(desc['set'], receiver, value);
4566 target[name] = value;
4573 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4575 Reflect, 'setPrototypeOf',
4576 function setPrototypeOf(target, proto) {
4578 target.__proto__ = proto;
4579 return Reflect.getPrototypeOf(target) === proto;
4587 // ---------------------------------------
4588 //
26.2 Proxy Objects
4589 // ---------------------------------------
4591 // Not polyfillable.
4595 // This helper is defined outside the main scope so that the use of
4596 // 'eval' does not taint the scope for minifiers.
4597 function __cons(t, a) {
4598 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4601 <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){
4604 exports.byteLength = byteLength
4605 exports.toByteArray = toByteArray
4606 exports.fromByteArray = fromByteArray
4610 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4612 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4613 for (var i =
0, len = code.length; i < len; ++i) {
4615 revLookup[code.charCodeAt(i)] = i
4618 revLookup['-'.charCodeAt(
0)] =
62
4619 revLookup['_'.charCodeAt(
0)] =
63
4621 function placeHoldersCount (b64) {
4622 var len = b64.length
4624 throw new Error('Invalid string. Length must be a multiple of
4')
4627 // the number of equal signs (place holders)
4628 // if there are two placeholders, than the two characters before it
4629 // represent one byte
4630 // if there is only one, then the three characters before it represent
2 bytes
4631 // this is just a cheap hack to not do indexOf twice
4632 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4635 function byteLength (b64) {
4636 // base64 is
4/
3 + up to two characters of the original data
4637 return b64.length *
3 /
4 - placeHoldersCount(b64)
4640 function toByteArray (b64) {
4641 var i, j, l, tmp, placeHolders, arr
4642 var len = b64.length
4643 placeHolders = placeHoldersCount(b64)
4645 arr = new Arr(len *
3 /
4 - placeHolders)
4647 // if there are placeholders, only get up to the last complete
4 chars
4648 l = placeHolders
> 0 ? len -
4 : len
4652 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4653 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4654 arr[L++] = (tmp
>> 16) &
0xFF
4655 arr[L++] = (tmp
>> 8) &
0xFF
4656 arr[L++] = tmp &
0xFF
4659 if (placeHolders ===
2) {
4660 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4661 arr[L++] = tmp &
0xFF
4662 } else if (placeHolders ===
1) {
4663 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4664 arr[L++] = (tmp
>> 8) &
0xFF
4665 arr[L++] = tmp &
0xFF
4671 function tripletToBase64 (num) {
4672 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4675 function encodeChunk (uint8, start, end) {
4678 for (var i = start; i < end; i +=
3) {
4679 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4680 output.push(tripletToBase64(tmp))
4682 return output.join('')
4685 function fromByteArray (uint8) {
4687 var len = uint8.length
4688 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4691 var maxChunkLength =
16383 // must be multiple of
3
4693 // go through the array every three bytes, we'll deal with trailing stuff later
4694 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4695 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4698 // pad the end with zeros, but make sure to not forget the extra bytes
4699 if (extraBytes ===
1) {
4700 tmp = uint8[len -
1]
4701 output += lookup[tmp
>> 2]
4702 output += lookup[(tmp <<
4) &
0x3F]
4704 } else if (extraBytes ===
2) {
4705 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4706 output += lookup[tmp
>> 10]
4707 output += lookup[(tmp
>> 4) &
0x3F]
4708 output += lookup[(tmp <<
2) &
0x3F]
4714 return parts.join('')
4717 },{}],
2:[function(require,module,exports){
4719 * The buffer module from node.js, for the browser.
4721 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4724 /* eslint-disable no-proto */
4728 var base64 = require('base64-js')
4729 var ieee754 = require('ieee754')
4731 exports.Buffer = Buffer
4732 exports.SlowBuffer = SlowBuffer
4733 exports.INSPECT_MAX_BYTES =
50
4735 var K_MAX_LENGTH =
0x7fffffff
4736 exports.kMaxLength = K_MAX_LENGTH
4739 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4740 * === true Use Uint8Array implementation (fastest)
4741 * === false Print warning and recommend using `buffer` v4.x which has an Object
4742 * implementation (most compatible, even IE6)
4744 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4745 * Opera
11.6+, iOS
4.2+.
4747 * We report that the browser does not support typed arrays if the are not subclassable
4748 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4749 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4750 * for __proto__ and has a buggy typed array implementation.
4752 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4754 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4755 typeof console.error === 'function') {
4757 'This browser lacks typed array (Uint8Array) support which is required by ' +
4758 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4762 function typedArraySupport () {
4763 // Can typed array instances can be augmented?
4765 var arr = new Uint8Array(
1)
4766 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4767 return arr.foo() ===
42
4773 function createBuffer (length) {
4774 if (length
> K_MAX_LENGTH) {
4775 throw new RangeError('Invalid typed array length')
4777 // Return an augmented `Uint8Array` instance
4778 var buf = new Uint8Array(length)
4779 buf.__proto__ = Buffer.prototype
4784 * The Buffer constructor returns instances of `Uint8Array` that have their
4785 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4786 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4787 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4788 * returns a single octet.
4790 * The `Uint8Array` prototype remains unmodified.
4793 function Buffer (arg, encodingOrOffset, length) {
4795 if (typeof arg === 'number') {
4796 if (typeof encodingOrOffset === 'string') {
4798 'If encoding is specified then the first argument must be a string'
4801 return allocUnsafe(arg)
4803 return from(arg, encodingOrOffset, length)
4806 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4807 if (typeof Symbol !== 'undefined' && Symbol.species &&
4808 Buffer[Symbol.species] === Buffer) {
4809 Object.defineProperty(Buffer, Symbol.species, {
4817 Buffer.poolSize =
8192 // not used by this implementation
4819 function from (value, encodingOrOffset, length) {
4820 if (typeof value === 'number') {
4821 throw new TypeError('"value" argument must not be a number')
4824 if (value instanceof ArrayBuffer) {
4825 return fromArrayBuffer(value, encodingOrOffset, length)
4828 if (typeof value === 'string') {
4829 return fromString(value, encodingOrOffset)
4832 return fromObject(value)
4836 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4837 * if value is a number.
4838 * Buffer.from(str[, encoding])
4839 * Buffer.from(array)
4840 * Buffer.from(buffer)
4841 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4843 Buffer.from = function (value, encodingOrOffset, length) {
4844 return from(value, encodingOrOffset, length)
4847 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4848 // https://github.com/feross/buffer/pull/
148
4849 Buffer.prototype.__proto__ = Uint8Array.prototype
4850 Buffer.__proto__ = Uint8Array
4852 function assertSize (size) {
4853 if (typeof size !== 'number') {
4854 throw new TypeError('"size" argument must be a number')
4855 } else if (size <
0) {
4856 throw new RangeError('"size" argument must not be negative')
4860 function alloc (size, fill, encoding) {
4863 return createBuffer(size)
4865 if (fill !== undefined) {
4866 // Only pay attention to encoding if it's a string. This
4867 // prevents accidentally sending in a number that would
4868 // be interpretted as a start offset.
4869 return typeof encoding === 'string'
4870 ? createBuffer(size).fill(fill, encoding)
4871 : createBuffer(size).fill(fill)
4873 return createBuffer(size)
4877 * Creates a new filled Buffer instance.
4878 * alloc(size[, fill[, encoding]])
4880 Buffer.alloc = function (size, fill, encoding) {
4881 return alloc(size, fill, encoding)
4884 function allocUnsafe (size) {
4886 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4890 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4892 Buffer.allocUnsafe = function (size) {
4893 return allocUnsafe(size)
4896 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4898 Buffer.allocUnsafeSlow = function (size) {
4899 return allocUnsafe(size)
4902 function fromString (string, encoding) {
4903 if (typeof encoding !== 'string' || encoding === '') {
4907 if (!Buffer.isEncoding(encoding)) {
4908 throw new TypeError('"encoding" must be a valid string encoding')
4911 var length = byteLength(string, encoding) |
0
4912 var buf = createBuffer(length)
4914 var actual = buf.write(string, encoding)
4916 if (actual !== length) {
4917 // Writing a hex string, for example, that contains invalid characters will
4918 // cause everything after the first invalid character to be ignored. (e.g.
4919 // 'abxxcd' will be treated as 'ab')
4920 buf = buf.slice(
0, actual)
4926 function fromArrayLike (array) {
4927 var length = array.length <
0 ?
0 : checked(array.length) |
0
4928 var buf = createBuffer(length)
4929 for (var i =
0; i < length; i +=
1) {
4930 buf[i] = array[i] &
255
4935 function fromArrayBuffer (array, byteOffset, length) {
4936 if (byteOffset <
0 || array.byteLength < byteOffset) {
4937 throw new RangeError('\'offset\' is out of bounds')
4940 if (array.byteLength < byteOffset + (length ||
0)) {
4941 throw new RangeError('\'length\' is out of bounds')
4945 if (byteOffset === undefined && length === undefined) {
4946 buf = new Uint8Array(array)
4947 } else if (length === undefined) {
4948 buf = new Uint8Array(array, byteOffset)
4950 buf = new Uint8Array(array, byteOffset, length)
4953 // Return an augmented `Uint8Array` instance
4954 buf.__proto__ = Buffer.prototype
4958 function fromObject (obj) {
4959 if (Buffer.isBuffer(obj)) {
4960 var len = checked(obj.length) |
0
4961 var buf = createBuffer(len)
4963 if (buf.length ===
0) {
4967 obj.copy(buf,
0,
0, len)
4972 if (isArrayBufferView(obj) || 'length' in obj) {
4973 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4974 return createBuffer(
0)
4976 return fromArrayLike(obj)
4979 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4980 return fromArrayLike(obj.data)
4984 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4987 function checked (length) {
4988 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4989 // length is NaN (which is otherwise coerced to zero.)
4990 if (length
>= K_MAX_LENGTH) {
4991 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4992 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4997 function SlowBuffer (length) {
4998 if (+length != length) { // eslint-disable-line eqeqeq
5001 return Buffer.alloc(+length)
5004 Buffer.isBuffer = function isBuffer (b) {
5005 return b != null && b._isBuffer === true
5008 Buffer.compare = function compare (a, b) {
5009 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5010 throw new TypeError('Arguments must be Buffers')
5013 if (a === b) return
0
5018 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
5019 if (a[i] !== b[i]) {
5026 if (x < y) return -
1
5031 Buffer.isEncoding = function isEncoding (encoding) {
5032 switch (String(encoding).toLowerCase()) {
5050 Buffer.concat = function concat (list, length) {
5051 if (!Array.isArray(list)) {
5052 throw new TypeError('"list" argument must be an Array of Buffers')
5055 if (list.length ===
0) {
5056 return Buffer.alloc(
0)
5060 if (length === undefined) {
5062 for (i =
0; i < list.length; ++i) {
5063 length += list[i].length
5067 var buffer = Buffer.allocUnsafe(length)
5069 for (i =
0; i < list.length; ++i) {
5071 if (!Buffer.isBuffer(buf)) {
5072 throw new TypeError('"list" argument must be an Array of Buffers')
5074 buf.copy(buffer, pos)
5080 function byteLength (string, encoding) {
5081 if (Buffer.isBuffer(string)) {
5082 return string.length
5084 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5085 return string.byteLength
5087 if (typeof string !== 'string') {
5088 string = '' + string
5091 var len = string.length
5092 if (len ===
0) return
0
5094 // Use a for loop to avoid recursion
5095 var loweredCase = false
5105 return utf8ToBytes(string).length
5114 return base64ToBytes(string).length
5116 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5117 encoding = ('' + encoding).toLowerCase()
5122 Buffer.byteLength = byteLength
5124 function slowToString (encoding, start, end) {
5125 var loweredCase = false
5127 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5128 // property of a typed array.
5130 // This behaves neither like String nor Uint8Array in that we set start/end
5131 // to their upper/lower bounds if the value passed is out of range.
5132 // undefined is handled specially as per ECMA-
262 6th Edition,
5133 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5134 if (start === undefined || start <
0) {
5137 // Return early if start
> this.length. Done here to prevent potential uint32
5138 // coercion fail below.
5139 if (start
> this.length) {
5143 if (end === undefined || end
> this.length) {
5151 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5159 if (!encoding) encoding = 'utf8'
5164 return hexSlice(this, start, end)
5168 return utf8Slice(this, start, end)
5171 return asciiSlice(this, start, end)
5175 return latin1Slice(this, start, end)
5178 return base64Slice(this, start, end)
5184 return utf16leSlice(this, start, end)
5187 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5188 encoding = (encoding + '').toLowerCase()
5194 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5195 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5196 // reliably in a browserify context because there could be multiple different
5197 // copies of the 'buffer' package in use. This method works even for Buffer
5198 // instances that were created from another copy of the `buffer` package.
5199 // See: https://github.com/feross/buffer/issues/
154
5200 Buffer.prototype._isBuffer = true
5202 function swap (b, n, m) {
5208 Buffer.prototype.swap16 = function swap16 () {
5209 var len = this.length
5210 if (len %
2 !==
0) {
5211 throw new RangeError('Buffer size must be a multiple of
16-bits')
5213 for (var i =
0; i < len; i +=
2) {
5214 swap(this, i, i +
1)
5219 Buffer.prototype.swap32 = function swap32 () {
5220 var len = this.length
5221 if (len %
4 !==
0) {
5222 throw new RangeError('Buffer size must be a multiple of
32-bits')
5224 for (var i =
0; i < len; i +=
4) {
5225 swap(this, i, i +
3)
5226 swap(this, i +
1, i +
2)
5231 Buffer.prototype.swap64 = function swap64 () {
5232 var len = this.length
5233 if (len %
8 !==
0) {
5234 throw new RangeError('Buffer size must be a multiple of
64-bits')
5236 for (var i =
0; i < len; i +=
8) {
5237 swap(this, i, i +
7)
5238 swap(this, i +
1, i +
6)
5239 swap(this, i +
2, i +
5)
5240 swap(this, i +
3, i +
4)
5245 Buffer.prototype.toString = function toString () {
5246 var length = this.length
5247 if (length ===
0) return ''
5248 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5249 return slowToString.apply(this, arguments)
5252 Buffer.prototype.equals = function equals (b) {
5253 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5254 if (this === b) return true
5255 return Buffer.compare(this, b) ===
0
5258 Buffer.prototype.inspect = function inspect () {
5260 var max = exports.INSPECT_MAX_BYTES
5261 if (this.length
> 0) {
5262 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5263 if (this.length
> max) str += ' ... '
5265 return '
<Buffer ' + str + '
>'
5268 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5269 if (!Buffer.isBuffer(target)) {
5270 throw new TypeError('Argument must be a Buffer')
5273 if (start === undefined) {
5276 if (end === undefined) {
5277 end = target ? target.length :
0
5279 if (thisStart === undefined) {
5282 if (thisEnd === undefined) {
5283 thisEnd = this.length
5286 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5287 throw new RangeError('out of range index')
5290 if (thisStart
>= thisEnd && start
>= end) {
5293 if (thisStart
>= thisEnd) {
5305 if (this === target) return
0
5307 var x = thisEnd - thisStart
5309 var len = Math.min(x, y)
5311 var thisCopy = this.slice(thisStart, thisEnd)
5312 var targetCopy = target.slice(start, end)
5314 for (var i =
0; i < len; ++i) {
5315 if (thisCopy[i] !== targetCopy[i]) {
5322 if (x < y) return -
1
5327 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5328 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5331 // - buffer - a Buffer to search
5332 // - val - a string, Buffer, or number
5333 // - byteOffset - an index into `buffer`; will be clamped to an int32
5334 // - encoding - an optional encoding, relevant is val is a string
5335 // - dir - true for indexOf, false for lastIndexOf
5336 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5337 // Empty buffer means no match
5338 if (buffer.length ===
0) return -
1
5340 // Normalize byteOffset
5341 if (typeof byteOffset === 'string') {
5342 encoding = byteOffset
5344 } else if (byteOffset
> 0x7fffffff) {
5345 byteOffset =
0x7fffffff
5346 } else if (byteOffset < -
0x80000000) {
5347 byteOffset = -
0x80000000
5349 byteOffset = +byteOffset // Coerce to Number.
5350 if (numberIsNaN(byteOffset)) {
5351 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5352 byteOffset = dir ?
0 : (buffer.length -
1)
5355 // Normalize byteOffset: negative offsets start from the end of the buffer
5356 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5357 if (byteOffset
>= buffer.length) {
5359 else byteOffset = buffer.length -
1
5360 } else if (byteOffset <
0) {
5361 if (dir) byteOffset =
0
5366 if (typeof val === 'string') {
5367 val = Buffer.from(val, encoding)
5370 // Finally, search either indexOf (if dir is true) or lastIndexOf
5371 if (Buffer.isBuffer(val)) {
5372 // Special case: looking for empty string/buffer always fails
5373 if (val.length ===
0) {
5376 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5377 } else if (typeof val === 'number') {
5378 val = val &
0xFF // Search for a byte value [
0-
255]
5379 if (typeof Uint8Array.prototype.indexOf === 'function') {
5381 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5383 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5386 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5389 throw new TypeError('val must be string, number or Buffer')
5392 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5394 var arrLength = arr.length
5395 var valLength = val.length
5397 if (encoding !== undefined) {
5398 encoding = String(encoding).toLowerCase()
5399 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5400 encoding === 'utf16le' || encoding === 'utf-
16le') {
5401 if (arr.length <
2 || val.length <
2) {
5411 function read (buf, i) {
5412 if (indexSize ===
1) {
5415 return buf.readUInt16BE(i * indexSize)
5422 for (i = byteOffset; i < arrLength; i++) {
5423 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5424 if (foundIndex === -
1) foundIndex = i
5425 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5427 if (foundIndex !== -
1) i -= i - foundIndex
5432 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5433 for (i = byteOffset; i
>=
0; i--) {
5435 for (var j =
0; j < valLength; j++) {
5436 if (read(arr, i + j) !== read(val, j)) {
5448 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5449 return this.indexOf(val, byteOffset, encoding) !== -
1
5452 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5453 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5456 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5457 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5460 function hexWrite (buf, string, offset, length) {
5461 offset = Number(offset) ||
0
5462 var remaining = buf.length - offset
5466 length = Number(length)
5467 if (length
> remaining) {
5472 // must be an even number of digits
5473 var strLen = string.length
5474 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5476 if (length
> strLen /
2) {
5479 for (var i =
0; i < length; ++i) {
5480 var parsed = parseInt(string.substr(i *
2,
2),
16)
5481 if (numberIsNaN(parsed)) return i
5482 buf[offset + i] = parsed
5487 function utf8Write (buf, string, offset, length) {
5488 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5491 function asciiWrite (buf, string, offset, length) {
5492 return blitBuffer(asciiToBytes(string), buf, offset, length)
5495 function latin1Write (buf, string, offset, length) {
5496 return asciiWrite(buf, string, offset, length)
5499 function base64Write (buf, string, offset, length) {
5500 return blitBuffer(base64ToBytes(string), buf, offset, length)
5503 function ucs2Write (buf, string, offset, length) {
5504 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5507 Buffer.prototype.write = function write (string, offset, length, encoding) {
5508 // Buffer#write(string)
5509 if (offset === undefined) {
5511 length = this.length
5513 // Buffer#write(string, encoding)
5514 } else if (length === undefined && typeof offset === 'string') {
5516 length = this.length
5518 // Buffer#write(string, offset[, length][, encoding])
5519 } else if (isFinite(offset)) {
5520 offset = offset
>>> 0
5521 if (isFinite(length)) {
5522 length = length
>>> 0
5523 if (encoding === undefined) encoding = 'utf8'
5530 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5534 var remaining = this.length - offset
5535 if (length === undefined || length
> remaining) length = remaining
5537 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5538 throw new RangeError('Attempt to write outside buffer bounds')
5541 if (!encoding) encoding = 'utf8'
5543 var loweredCase = false
5547 return hexWrite(this, string, offset, length)
5551 return utf8Write(this, string, offset, length)
5554 return asciiWrite(this, string, offset, length)
5558 return latin1Write(this, string, offset, length)
5561 // Warning: maxLength not taken into account in base64Write
5562 return base64Write(this, string, offset, length)
5568 return ucs2Write(this, string, offset, length)
5571 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5572 encoding = ('' + encoding).toLowerCase()
5578 Buffer.prototype.toJSON = function toJSON () {
5581 data: Array.prototype.slice.call(this._arr || this,
0)
5585 function base64Slice (buf, start, end) {
5586 if (start ===
0 && end === buf.length) {
5587 return base64.fromByteArray(buf)
5589 return base64.fromByteArray(buf.slice(start, end))
5593 function utf8Slice (buf, start, end) {
5594 end = Math.min(buf.length, end)
5599 var firstByte = buf[i]
5600 var codePoint = null
5601 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5602 : (firstByte
> 0xDF) ?
3
5603 : (firstByte
> 0xBF) ?
2
5606 if (i + bytesPerSequence <= end) {
5607 var secondByte, thirdByte, fourthByte, tempCodePoint
5609 switch (bytesPerSequence) {
5611 if (firstByte <
0x80) {
5612 codePoint = firstByte
5616 secondByte = buf[i +
1]
5617 if ((secondByte &
0xC0) ===
0x80) {
5618 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5619 if (tempCodePoint
> 0x7F) {
5620 codePoint = tempCodePoint
5625 secondByte = buf[i +
1]
5626 thirdByte = buf[i +
2]
5627 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5628 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5629 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5630 codePoint = tempCodePoint
5635 secondByte = buf[i +
1]
5636 thirdByte = buf[i +
2]
5637 fourthByte = buf[i +
3]
5638 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5639 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5640 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5641 codePoint = tempCodePoint
5647 if (codePoint === null) {
5648 // we did not generate a valid codePoint so insert a
5649 // replacement char (U+FFFD) and advance only
1 byte
5651 bytesPerSequence =
1
5652 } else if (codePoint
> 0xFFFF) {
5653 // encode to utf16 (surrogate pair dance)
5654 codePoint -=
0x10000
5655 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5656 codePoint =
0xDC00 | codePoint &
0x3FF
5660 i += bytesPerSequence
5663 return decodeCodePointsArray(res)
5666 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5667 // the lowest limit is Chrome, with
0x10000 args.
5668 // We go
1 magnitude less, for safety
5669 var MAX_ARGUMENTS_LENGTH =
0x1000
5671 function decodeCodePointsArray (codePoints) {
5672 var len = codePoints.length
5673 if (len <= MAX_ARGUMENTS_LENGTH) {
5674 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5677 // Decode in chunks to avoid
"call stack size exceeded".
5681 res += String.fromCharCode.apply(
5683 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5689 function asciiSlice (buf, start, end) {
5691 end = Math.min(buf.length, end)
5693 for (var i = start; i < end; ++i) {
5694 ret += String.fromCharCode(buf[i] &
0x7F)
5699 function latin1Slice (buf, start, end) {
5701 end = Math.min(buf.length, end)
5703 for (var i = start; i < end; ++i) {
5704 ret += String.fromCharCode(buf[i])
5709 function hexSlice (buf, start, end) {
5710 var len = buf.length
5712 if (!start || start <
0) start =
0
5713 if (!end || end <
0 || end
> len) end = len
5716 for (var i = start; i < end; ++i) {
5717 out += toHex(buf[i])
5722 function utf16leSlice (buf, start, end) {
5723 var bytes = buf.slice(start, end)
5725 for (var i =
0; i < bytes.length; i +=
2) {
5726 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5731 Buffer.prototype.slice = function slice (start, end) {
5732 var len = this.length
5734 end = end === undefined ? len : ~~end
5738 if (start <
0) start =
0
5739 } else if (start
> len) {
5745 if (end <
0) end =
0
5746 } else if (end
> len) {
5750 if (end < start) end = start
5752 var newBuf = this.subarray(start, end)
5753 // Return an augmented `Uint8Array` instance
5754 newBuf.__proto__ = Buffer.prototype
5759 * Need to make sure that buffer isn't trying to write out of bounds.
5761 function checkOffset (offset, ext, length) {
5762 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5763 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5766 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5767 offset = offset
>>> 0
5768 byteLength = byteLength
>>> 0
5769 if (!noAssert) checkOffset(offset, byteLength, this.length)
5771 var val = this[offset]
5774 while (++i < byteLength && (mul *=
0x100)) {
5775 val += this[offset + i] * mul
5781 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5782 offset = offset
>>> 0
5783 byteLength = byteLength
>>> 0
5785 checkOffset(offset, byteLength, this.length)
5788 var val = this[offset + --byteLength]
5790 while (byteLength
> 0 && (mul *=
0x100)) {
5791 val += this[offset + --byteLength] * mul
5797 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
1, this.length)
5803 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
2, this.length)
5806 return this[offset] | (this[offset +
1] <<
8)
5809 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5810 offset = offset
>>> 0
5811 if (!noAssert) checkOffset(offset,
2, this.length)
5812 return (this[offset] <<
8) | this[offset +
1]
5815 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5816 offset = offset
>>> 0
5817 if (!noAssert) checkOffset(offset,
4, this.length)
5819 return ((this[offset]) |
5820 (this[offset +
1] <<
8) |
5821 (this[offset +
2] <<
16)) +
5822 (this[offset +
3] *
0x1000000)
5825 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5826 offset = offset
>>> 0
5827 if (!noAssert) checkOffset(offset,
4, this.length)
5829 return (this[offset] *
0x1000000) +
5830 ((this[offset +
1] <<
16) |
5831 (this[offset +
2] <<
8) |
5835 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5836 offset = offset
>>> 0
5837 byteLength = byteLength
>>> 0
5838 if (!noAssert) checkOffset(offset, byteLength, this.length)
5840 var val = this[offset]
5843 while (++i < byteLength && (mul *=
0x100)) {
5844 val += this[offset + i] * mul
5848 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5853 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5854 offset = offset
>>> 0
5855 byteLength = byteLength
>>> 0
5856 if (!noAssert) checkOffset(offset, byteLength, this.length)
5860 var val = this[offset + --i]
5861 while (i
> 0 && (mul *=
0x100)) {
5862 val += this[offset + --i] * mul
5866 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5871 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5872 offset = offset
>>> 0
5873 if (!noAssert) checkOffset(offset,
1, this.length)
5874 if (!(this[offset] &
0x80)) return (this[offset])
5875 return ((
0xff - this[offset] +
1) * -
1)
5878 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5879 offset = offset
>>> 0
5880 if (!noAssert) checkOffset(offset,
2, this.length)
5881 var val = this[offset] | (this[offset +
1] <<
8)
5882 return (val &
0x8000) ? val |
0xFFFF0000 : val
5885 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5886 offset = offset
>>> 0
5887 if (!noAssert) checkOffset(offset,
2, this.length)
5888 var val = this[offset +
1] | (this[offset] <<
8)
5889 return (val &
0x8000) ? val |
0xFFFF0000 : val
5892 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5893 offset = offset
>>> 0
5894 if (!noAssert) checkOffset(offset,
4, this.length)
5896 return (this[offset]) |
5897 (this[offset +
1] <<
8) |
5898 (this[offset +
2] <<
16) |
5899 (this[offset +
3] <<
24)
5902 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5903 offset = offset
>>> 0
5904 if (!noAssert) checkOffset(offset,
4, this.length)
5906 return (this[offset] <<
24) |
5907 (this[offset +
1] <<
16) |
5908 (this[offset +
2] <<
8) |
5912 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5913 offset = offset
>>> 0
5914 if (!noAssert) checkOffset(offset,
4, this.length)
5915 return ieee754.read(this, offset, true,
23,
4)
5918 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5919 offset = offset
>>> 0
5920 if (!noAssert) checkOffset(offset,
4, this.length)
5921 return ieee754.read(this, offset, false,
23,
4)
5924 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5925 offset = offset
>>> 0
5926 if (!noAssert) checkOffset(offset,
8, this.length)
5927 return ieee754.read(this, offset, true,
52,
8)
5930 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5931 offset = offset
>>> 0
5932 if (!noAssert) checkOffset(offset,
8, this.length)
5933 return ieee754.read(this, offset, false,
52,
8)
5936 function checkInt (buf, value, offset, ext, max, min) {
5937 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5938 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5939 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5942 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5944 offset = offset
>>> 0
5945 byteLength = byteLength
>>> 0
5947 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5948 checkInt(this, value, offset, byteLength, maxBytes,
0)
5953 this[offset] = value &
0xFF
5954 while (++i < byteLength && (mul *=
0x100)) {
5955 this[offset + i] = (value / mul) &
0xFF
5958 return offset + byteLength
5961 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5963 offset = offset
>>> 0
5964 byteLength = byteLength
>>> 0
5966 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5967 checkInt(this, value, offset, byteLength, maxBytes,
0)
5970 var i = byteLength -
1
5972 this[offset + i] = value &
0xFF
5973 while (--i
>=
0 && (mul *=
0x100)) {
5974 this[offset + i] = (value / mul) &
0xFF
5977 return offset + byteLength
5980 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5982 offset = offset
>>> 0
5983 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5984 this[offset] = (value &
0xff)
5988 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5990 offset = offset
>>> 0
5991 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5992 this[offset] = (value &
0xff)
5993 this[offset +
1] = (value
>>> 8)
5997 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5999 offset = offset
>>> 0
6000 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
6001 this[offset] = (value
>>> 8)
6002 this[offset +
1] = (value &
0xff)
6006 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6008 offset = offset
>>> 0
6009 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6010 this[offset +
3] = (value
>>> 24)
6011 this[offset +
2] = (value
>>> 16)
6012 this[offset +
1] = (value
>>> 8)
6013 this[offset] = (value &
0xff)
6017 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6019 offset = offset
>>> 0
6020 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
6021 this[offset] = (value
>>> 24)
6022 this[offset +
1] = (value
>>> 16)
6023 this[offset +
2] = (value
>>> 8)
6024 this[offset +
3] = (value &
0xff)
6028 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6030 offset = offset
>>> 0
6032 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6034 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6040 this[offset] = value &
0xFF
6041 while (++i < byteLength && (mul *=
0x100)) {
6042 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6045 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6048 return offset + byteLength
6051 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6053 offset = offset
>>> 0
6055 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6057 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6060 var i = byteLength -
1
6063 this[offset + i] = value &
0xFF
6064 while (--i
>=
0 && (mul *=
0x100)) {
6065 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6068 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6071 return offset + byteLength
6074 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6076 offset = offset
>>> 0
6077 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6078 if (value <
0) value =
0xff + value +
1
6079 this[offset] = (value &
0xff)
6083 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6085 offset = offset
>>> 0
6086 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6087 this[offset] = (value &
0xff)
6088 this[offset +
1] = (value
>>> 8)
6092 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6094 offset = offset
>>> 0
6095 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6096 this[offset] = (value
>>> 8)
6097 this[offset +
1] = (value &
0xff)
6101 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6103 offset = offset
>>> 0
6104 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6105 this[offset] = (value &
0xff)
6106 this[offset +
1] = (value
>>> 8)
6107 this[offset +
2] = (value
>>> 16)
6108 this[offset +
3] = (value
>>> 24)
6112 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6114 offset = offset
>>> 0
6115 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6116 if (value <
0) value =
0xffffffff + value +
1
6117 this[offset] = (value
>>> 24)
6118 this[offset +
1] = (value
>>> 16)
6119 this[offset +
2] = (value
>>> 8)
6120 this[offset +
3] = (value &
0xff)
6124 function checkIEEE754 (buf, value, offset, ext, max, min) {
6125 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6126 if (offset <
0) throw new RangeError('Index out of range')
6129 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6131 offset = offset
>>> 0
6133 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6135 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6139 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6140 return writeFloat(this, value, offset, true, noAssert)
6143 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6144 return writeFloat(this, value, offset, false, noAssert)
6147 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6149 offset = offset
>>> 0
6151 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6153 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6157 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6158 return writeDouble(this, value, offset, true, noAssert)
6161 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6162 return writeDouble(this, value, offset, false, noAssert)
6165 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6166 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6167 if (!start) start =
0
6168 if (!end && end !==
0) end = this.length
6169 if (targetStart
>= target.length) targetStart = target.length
6170 if (!targetStart) targetStart =
0
6171 if (end
> 0 && end < start) end = start
6173 // Copy
0 bytes; we're done
6174 if (end === start) return
0
6175 if (target.length ===
0 || this.length ===
0) return
0
6177 // Fatal error conditions
6178 if (targetStart <
0) {
6179 throw new RangeError('targetStart out of bounds')
6181 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6182 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6185 if (end
> this.length) end = this.length
6186 if (target.length - targetStart < end - start) {
6187 end = target.length - targetStart + start
6190 var len = end - start
6193 if (this === target && start < targetStart && targetStart < end) {
6194 // descending copy from end
6195 for (i = len -
1; i
>=
0; --i) {
6196 target[i + targetStart] = this[i + start]
6198 } else if (len <
1000) {
6199 // ascending copy from start
6200 for (i =
0; i < len; ++i) {
6201 target[i + targetStart] = this[i + start]
6204 Uint8Array.prototype.set.call(
6206 this.subarray(start, start + len),
6215 // buffer.fill(number[, offset[, end]])
6216 // buffer.fill(buffer[, offset[, end]])
6217 // buffer.fill(string[, offset[, end]][, encoding])
6218 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6219 // Handle string cases:
6220 if (typeof val === 'string') {
6221 if (typeof start === 'string') {
6225 } else if (typeof end === 'string') {
6229 if (val.length ===
1) {
6230 var code = val.charCodeAt(
0)
6235 if (encoding !== undefined && typeof encoding !== 'string') {
6236 throw new TypeError('encoding must be a string')
6238 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6239 throw new TypeError('Unknown encoding: ' + encoding)
6241 } else if (typeof val === 'number') {
6245 // Invalid ranges are not set to a default, so can range check early.
6246 if (start <
0 || this.length < start || this.length < end) {
6247 throw new RangeError('Out of range index')
6255 end = end === undefined ? this.length : end
>>> 0
6260 if (typeof val === 'number') {
6261 for (i = start; i < end; ++i) {
6265 var bytes = Buffer.isBuffer(val)
6267 : new Buffer(val, encoding)
6268 var len = bytes.length
6269 for (i =
0; i < end - start; ++i) {
6270 this[i + start] = bytes[i % len]
6280 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6282 function base64clean (str) {
6283 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6284 str = str.trim().replace(INVALID_BASE64_RE, '')
6285 // Node converts strings with length <
2 to ''
6286 if (str.length <
2) return ''
6287 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6288 while (str.length %
4 !==
0) {
6294 function toHex (n) {
6295 if (n <
16) return '
0' + n.toString(
16)
6296 return n.toString(
16)
6299 function utf8ToBytes (string, units) {
6300 units = units || Infinity
6302 var length = string.length
6303 var leadSurrogate = null
6306 for (var i =
0; i < length; ++i) {
6307 codePoint = string.charCodeAt(i)
6309 // is surrogate component
6310 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6311 // last char was a lead
6312 if (!leadSurrogate) {
6314 if (codePoint
> 0xDBFF) {
6316 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6318 } else if (i +
1 === length) {
6320 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6325 leadSurrogate = codePoint
6331 if (codePoint <
0xDC00) {
6332 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6333 leadSurrogate = codePoint
6337 // valid surrogate pair
6338 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6339 } else if (leadSurrogate) {
6340 // valid bmp char, but last char was a lead
6341 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6344 leadSurrogate = null
6347 if (codePoint <
0x80) {
6348 if ((units -=
1) <
0) break
6349 bytes.push(codePoint)
6350 } else if (codePoint <
0x800) {
6351 if ((units -=
2) <
0) break
6353 codePoint
>> 0x6 |
0xC0,
6354 codePoint &
0x3F |
0x80
6356 } else if (codePoint <
0x10000) {
6357 if ((units -=
3) <
0) break
6359 codePoint
>> 0xC |
0xE0,
6360 codePoint
>> 0x6 &
0x3F |
0x80,
6361 codePoint &
0x3F |
0x80
6363 } else if (codePoint <
0x110000) {
6364 if ((units -=
4) <
0) break
6366 codePoint
>> 0x12 |
0xF0,
6367 codePoint
>> 0xC &
0x3F |
0x80,
6368 codePoint
>> 0x6 &
0x3F |
0x80,
6369 codePoint &
0x3F |
0x80
6372 throw new Error('Invalid code point')
6379 function asciiToBytes (str) {
6381 for (var i =
0; i < str.length; ++i) {
6382 // Node's code seems to be doing this and not &
0x7F..
6383 byteArray.push(str.charCodeAt(i) &
0xFF)
6388 function utf16leToBytes (str, units) {
6391 for (var i =
0; i < str.length; ++i) {
6392 if ((units -=
2) <
0) break
6394 c = str.charCodeAt(i)
6404 function base64ToBytes (str) {
6405 return base64.toByteArray(base64clean(str))
6408 function blitBuffer (src, dst, offset, length) {
6409 for (var i =
0; i < length; ++i) {
6410 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6411 dst[i + offset] = src[i]
6416 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6417 function isArrayBufferView (obj) {
6418 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6421 function numberIsNaN (obj) {
6422 return obj !== obj // eslint-disable-line no-self-compare
6425 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6426 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6428 var eLen = nBytes *
8 - mLen -
1
6429 var eMax = (
1 << eLen) -
1
6430 var eBias = eMax
>> 1
6432 var i = isLE ? (nBytes -
1) :
0
6433 var d = isLE ? -
1 :
1
6434 var s = buffer[offset + i]
6438 e = s & ((
1 << (-nBits)) -
1)
6441 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6443 m = e & ((
1 << (-nBits)) -
1)
6446 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6450 } else if (e === eMax) {
6451 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6453 m = m + Math.pow(
2, mLen)
6456 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6459 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6461 var eLen = nBytes *
8 - mLen -
1
6462 var eMax = (
1 << eLen) -
1
6463 var eBias = eMax
>> 1
6464 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6465 var i = isLE ?
0 : (nBytes -
1)
6466 var d = isLE ?
1 : -
1
6467 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6469 value = Math.abs(value)
6471 if (isNaN(value) || value === Infinity) {
6472 m = isNaN(value) ?
1 :
0
6475 e = Math.floor(Math.log(value) / Math.LN2)
6476 if (value * (c = Math.pow(
2, -e)) <
1) {
6480 if (e + eBias
>=
1) {
6483 value += rt * Math.pow(
2,
1 - eBias)
6485 if (value * c
>=
2) {
6490 if (e + eBias
>= eMax) {
6493 } else if (e + eBias
>=
1) {
6494 m = (value * c -
1) * Math.pow(
2, mLen)
6497 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6502 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6506 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6508 buffer[offset + i - d] |= s *
128
6511 },{}],
4:[function(require,module,exports){
6512 window.basex = require('base-x')
6513 },{
"base-x":
5}],
5:[function(require,module,exports){
6515 // Forked from https://github.com/cryptocoinjs/bs58
6516 // Originally written by Mike Hearn for BitcoinJ
6517 // Copyright (c)
2011 Google Inc
6518 // Ported to JavaScript by Stefan Thomas
6519 // Merged Buffer refactorings from base58-native by Stephen Pair
6520 // Copyright (c)
2013 BitPay Inc
6522 var Buffer = require('safe-buffer').Buffer
6524 module.exports = function base (ALPHABET) {
6525 var ALPHABET_MAP = {}
6526 var BASE = ALPHABET.length
6527 var LEADER = ALPHABET.charAt(
0)
6529 // pre-compute lookup table
6530 for (var z =
0; z < ALPHABET.length; z++) {
6531 var x = ALPHABET.charAt(z)
6533 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6537 function encode (source) {
6538 if (source.length ===
0) return ''
6541 for (var i =
0; i < source.length; ++i) {
6542 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6543 carry += digits[j] <<
8
6544 digits[j] = carry % BASE
6545 carry = (carry / BASE) |
0
6549 digits.push(carry % BASE)
6550 carry = (carry / BASE) |
0
6556 // deal with leading zeros
6557 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6558 // convert digits to a string
6559 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6564 function decodeUnsafe (string) {
6565 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6568 for (var i =
0; i < string.length; i++) {
6569 var value = ALPHABET_MAP[string[i]]
6570 if (value === undefined) return
6572 for (var j =
0, carry = value; j < bytes.length; ++j) {
6573 carry += bytes[j] * BASE
6574 bytes[j] = carry &
0xff
6579 bytes.push(carry &
0xff)
6584 // deal with leading zeros
6585 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6589 return Buffer.from(bytes.reverse())
6592 function decode (string) {
6593 var buffer = decodeUnsafe(string)
6594 if (buffer) return buffer
6596 throw new Error('Non-base' + BASE + ' character')
6601 decodeUnsafe: decodeUnsafe,
6606 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6607 module.exports = require('buffer')
6609 },{"buffer":
2}]},{},[
4])(
4)
6611 <script>(function (root) {
6614 /***** unorm.js *****/
6617 * UnicodeNormalizer
1.0.0
6618 * Copyright (c)
2008 Matsuza
6619 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6620 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6624 var DEFAULT_FEATURE = [null,
0, {}];
6625 var CACHE_THRESHOLD =
10;
6626 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6627 var NCount = VCount * TCount; //
588
6628 var SCount = LCount * NCount; //
11172
6630 var UChar = function(cp, feature){
6631 this.codepoint = cp;
6632 this.feature = feature;
6637 var cacheCounter = [];
6638 for (var i =
0; i <=
0xFF; ++i){
6639 cacheCounter[i] =
0;
6642 function fromCache(next, cp, needFeature){
6643 var ret = cache[cp];
6645 ret = next(cp, needFeature);
6646 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6653 function fromData(next, cp, needFeature){
6654 var hash = cp &
0xFF00;
6655 var dunit = UChar.udata[hash] || {};
6657 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6659 function fromCpOnly(next, cp, needFeature){
6660 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6662 function fromRuleBasedJamo(next, cp, needFeature){
6664 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6665 return next(cp, needFeature);
6667 if(LBase <= cp && cp < LBase + LCount){
6669 var base = (cp - LBase) * VCount;
6670 for (j =
0; j < VCount; ++j){
6671 c[VBase + j] = SBase + TCount * (j + base);
6673 return new UChar(cp, [,,c]);
6676 var SIndex = cp - SBase;
6677 var TIndex = SIndex % TCount;
6680 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6682 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6684 for (j =
1; j < TCount; ++j){
6685 feature[
2][TBase + j] = cp + j;
6688 return new UChar(cp, feature);
6690 function fromCpFilter(next, cp, needFeature){
6691 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6694 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6696 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6697 return function (cp, needFeature) {
6698 return strategy(next, cp, needFeature);
6702 UChar.isHighSurrogate = function(cp){
6703 return cp
>=
0xD800 && cp <=
0xDBFF;
6705 UChar.isLowSurrogate = function(cp){
6706 return cp
>=
0xDC00 && cp <=
0xDFFF;
6709 UChar.prototype.prepFeature = function(){
6711 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6715 UChar.prototype.toString = function(){
6716 if(this.codepoint <
0x10000){
6717 return String.fromCharCode(this.codepoint);
6719 var x = this.codepoint -
0x10000;
6720 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6724 UChar.prototype.getDecomp = function(){
6726 return this.feature[
0] || null;
6729 UChar.prototype.isCompatibility = function(){
6731 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6733 UChar.prototype.isExclude = function(){
6735 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6737 UChar.prototype.getCanonicalClass = function(){
6739 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6741 UChar.prototype.getComposite = function(following){
6743 if(!this.feature[
2]){
6746 var cp = this.feature[
2][following.codepoint];
6747 return cp ? UChar.fromCharCode(cp) : null;
6750 var UCharIterator = function(str){
6754 UCharIterator.prototype.next = function(){
6755 if(!!this.str && this.cursor < this.str.length){
6756 var cp = this.str.charCodeAt(this.cursor++);
6758 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6759 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6762 return UChar.fromCharCode(cp);
6769 var RecursDecompIterator = function(it, cano){
6771 this.canonical = cano;
6775 RecursDecompIterator.prototype.next = function(){
6776 function recursiveDecomp(cano, uchar){
6777 var decomp = uchar.getDecomp();
6778 if(!!decomp && !(cano && uchar.isCompatibility())){
6780 for(var i =
0; i < decomp.length; ++i){
6781 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6782 ret = ret.concat(a);
6789 if(this.resBuf.length ===
0){
6790 var uchar = this.it.next();
6794 this.resBuf = recursiveDecomp(this.canonical, uchar);
6796 return this.resBuf.shift();
6799 var DecompIterator = function(it){
6804 DecompIterator.prototype.next = function(){
6806 if(this.resBuf.length ===
0){
6808 var uchar = this.it.next();
6812 cc = uchar.getCanonicalClass();
6813 var inspt = this.resBuf.length;
6815 for(; inspt
> 0; --inspt){
6816 var uchar2 = this.resBuf[inspt -
1];
6817 var cc2 = uchar2.getCanonicalClass();
6823 this.resBuf.splice(inspt,
0, uchar);
6826 return this.resBuf.shift();
6829 var CompIterator = function(it){
6833 this.lastClass = null;
6836 CompIterator.prototype.next = function(){
6837 while(this.resBuf.length ===
0){
6838 var uchar = this.it.next();
6840 this.resBuf = this.procBuf;
6844 if(this.procBuf.length ===
0){
6845 this.lastClass = uchar.getCanonicalClass();
6846 this.procBuf.push(uchar);
6848 var starter = this.procBuf[
0];
6849 var composite = starter.getComposite(uchar);
6850 var cc = uchar.getCanonicalClass();
6851 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6852 this.procBuf[
0] = composite;
6855 this.resBuf = this.procBuf;
6858 this.lastClass = cc;
6859 this.procBuf.push(uchar);
6863 return this.resBuf.shift();
6866 var createIterator = function(mode, str){
6869 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6871 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6873 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6875 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6877 throw mode +
" is invalid";
6879 var normalize = function(mode, str){
6880 var it = createIterator(mode, str);
6883 while(!!(uchar = it.next())){
6884 ret += uchar.toString();
6891 return normalize(
"NFD", str);
6895 return normalize(
"NFKD", str);
6899 return normalize(
"NFC", str);
6903 return normalize(
"NFKC", str);
6908 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]]},
6909 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]},
6910 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]},
6911 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]},
6912 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]]},
6913 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]},
6914 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]},
6915 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]},
6916 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]},
6917 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]},
6918 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]},
6919 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]},
6920 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]},
6921 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]]},
6922 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]},
6923 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]},
6924 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]},
6925 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]},
6926 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6927 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]},
6928 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6929 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6930 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6931 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6933 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6934 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]},
6935 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]},
6936 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]},
6937 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]},
6938 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]]},
6939 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}]},
6940 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]},
6941 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}]},
6942 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]]},
6943 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6944 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]},
6945 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]},
6946 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6947 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]},
6948 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6949 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]},
6950 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]},
6951 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]},
6952 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]},
6953 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]},
6954 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6955 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6956 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]},
6957 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6958 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]},
6959 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6960 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6961 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6962 48128:{
113822:[,
1]},
6963 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]},
6964 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6965 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]},
6966 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]},
6967 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]},
6968 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]},
6969 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6970 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]},
6971 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]},
6972 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]},
6973 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]]},
6974 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]]},
6975 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]]},
6976 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]},
6977 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]},
6978 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]},
6979 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]},
6980 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]}
6984 /***** Module to export */
6992 /*globals module:true,define:true*/
6995 if (typeof module ===
"object") {
6996 module.exports = unorm;
6999 } else if (typeof define ===
"function" && define.amd) {
7000 define(
"unorm", function () {
7009 /***** Export as shim for String::normalize method *****/
7011 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
7013 21.1.3.12 String.prototype.normalize(
form=
"NFC")
7014 When the normalize method is called with one argument form, the following steps are taken:
7016 1. Let O be CheckObjectCoercible(this value).
7017 2. Let S be ToString(O).
7018 3. ReturnIfAbrupt(S).
7019 4. If form is not provided or undefined let form be
"NFC".
7020 5. Let f be ToString(form).
7021 6. ReturnIfAbrupt(f).
7022 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
7023 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.
7026 The length property of the normalize method is
0.
7028 *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.
7030 unorm.shimApplied = false;
7032 if (!String.prototype.normalize) {
7033 String.prototype.normalize = function(form) {
7034 var str =
"" + this;
7035 form = form === undefined ?
"NFC" : form;
7037 if (form ===
"NFC") {
7038 return unorm.nfc(str);
7039 } else if (form ===
"NFD") {
7040 return unorm.nfd(str);
7041 } else if (form ===
"NFKC") {
7042 return unorm.nfkc(str);
7043 } else if (form ===
"NFKD") {
7044 return unorm.nfkd(str);
7046 throw new RangeError(
"Invalid normalization form: " + form);
7050 unorm.shimApplied = true;
7054 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7055 !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)
7056 },_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))
7057 },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});
7060 * Bootstrap v3.2.0 (http://getbootstrap.com)
7061 * Copyright 2011-2014 Twitter, Inc.
7062 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7064 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>
7065 <script>(function() {
7069 * Extend an Object with another Object's properties.
7071 * The source objects are specified as additional arguments.
7073 * @param dst Object the object to extend.
7075 * @return Object the final object.
7077 var _extend = function(dst) {
7078 var sources = Array.prototype.slice.call(arguments,
1);
7079 for (var i=
0; i
<sources.length; ++i) {
7080 var src = sources[i];
7081 for (var p in src) {
7082 if (src.hasOwnProperty(p)) dst[p] = src[p];
7090 * Defer execution of given function.
7091 * @param {Function} func
7093 var _defer = function(func) {
7094 if (typeof setImmediate === 'function') {
7095 return setImmediate(func);
7097 return setTimeout(func,
0);
7102 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7106 * Calculate levenshtein distance of the two strings.
7108 * @param str1 String the first string.
7109 * @param str2 String the second string.
7110 * @return Integer the levenshtein distance (
0 and above).
7112 get: function(str1, str2) {
7114 if (str1 === str2) return
0;
7115 if (str1.length ===
0) return str2.length;
7116 if (str2.length ===
0) return str1.length;
7119 var prevRow = new Array(str2.length +
1),
7120 curCol, nextCol, i, j, tmp;
7122 // initialise previous row
7123 for (i=
0; i
<prevRow.length; ++i) {
7127 // calculate current row distance from previous row
7128 for (i=
0; i
<str1.length; ++i) {
7131 for (j=
0; j
<str2.length; ++j) {
7135 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7138 if (nextCol
> tmp) {
7142 tmp = prevRow[j +
1] +
1;
7143 if (nextCol
> tmp) {
7147 // copy current col value into previous (in preparation for next iteration)
7148 prevRow[j] = curCol;
7151 // copy last col value into previous (in preparation for next iteration)
7152 prevRow[j] = nextCol;
7159 * Asynchronously calculate levenshtein distance of the two strings.
7161 * @param str1 String the first string.
7162 * @param str2 String the second string.
7163 * @param cb Function callback function with signature: function(Error err, int distance)
7164 * @param [options] Object additional options.
7165 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7167 getAsync: function(str1, str2, cb, options) {
7168 options = _extend({}, {
7173 if (str1 === str2) return cb(null,
0);
7174 if (str1.length ===
0) return cb(null, str2.length);
7175 if (str2.length ===
0) return cb(null, str1.length);
7178 var prevRow = new Array(str2.length +
1),
7181 startTime, currentTime;
7183 // initialise previous row
7184 for (i=
0; i
<prevRow.length; ++i) {
7192 var __calculate = function() {
7194 startTime = new Date().valueOf();
7195 currentTime = startTime;
7197 // keep going until one second has elapsed
7198 while (currentTime - startTime <
1000) {
7199 // reached end of current row?
7200 if (str2.length <= (++j)) {
7201 // copy current into previous (in preparation for next iteration)
7202 prevRow[j] = nextCol;
7204 // if already done all chars
7205 if (str1.length <= (++i)) {
7206 return cb(null, nextCol);
7208 // else if we have more left to do
7219 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7222 if (nextCol
> tmp) {
7226 tmp = prevRow[j +
1] +
1;
7227 if (nextCol
> tmp) {
7231 // copy current into previous (in preparation for next iteration)
7232 prevRow[j] = curCol;
7235 currentTime = new Date().valueOf();
7238 // send a progress update?
7239 if (null !== options.progress) {
7241 options.progress.call(null, (i *
100.0/ str1.length));
7243 return cb('Progress callback: ' + err.toString());
7248 _defer(__calculate);
7257 if (typeof define !== "undefined" && define !== null && define.amd) {
7263 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7264 module.exports = Levenshtein;
7267 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7268 self.Levenshtein = Levenshtein;
7270 // browser main thread
7271 else if (typeof window !== "undefined" && window !== null) {
7272 window.Levenshtein = Levenshtein;
7277 <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},
7278 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;
7279 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-
7280 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]=
7281 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},
7282 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=
7283 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-
7284 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,
7285 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=
7286 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&&
7287 (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,
7288 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)-
7289 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:"+
7290 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:"+
7291 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+
7292 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),
7293 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>
7294 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],
7295 [
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,
7296 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,
7297 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,
7298 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,
7299 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,
7300 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*
7301 (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,
7302 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),
7303 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",
7304 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7306 <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){
7310 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7314 * The buffer module from node.js, for the browser.
7316 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7319 function compare(a, b) {
7327 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7328 if (a[i] !== b[i]) {
7343 function isBuffer(b) {
7344 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7345 return global.Buffer.isBuffer(b);
7347 return !!(b != null && b._isBuffer);
7350 // based on node assert, original notice:
7352 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7354 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7356 // Originally from narwhal.js (http://narwhaljs.org)
7357 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7359 // Permission is hereby granted, free of charge, to any person obtaining a copy
7360 // of this software and associated documentation files (the 'Software'), to
7361 // deal in the Software without restriction, including without limitation the
7362 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7363 // sell copies of the Software, and to permit persons to whom the Software is
7364 // furnished to do so, subject to the following conditions:
7366 // The above copyright notice and this permission notice shall be included in
7367 // all copies or substantial portions of the Software.
7369 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7370 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7371 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7372 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7373 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7374 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7376 var util = require('util/');
7377 var hasOwn = Object.prototype.hasOwnProperty;
7378 var pSlice = Array.prototype.slice;
7379 var functionsHaveNames = (function () {
7380 return function foo() {}.name === 'foo';
7382 function pToString (obj) {
7383 return Object.prototype.toString.call(obj);
7385 function isView(arrbuf) {
7386 if (isBuffer(arrbuf)) {
7389 if (typeof global.ArrayBuffer !== 'function') {
7392 if (typeof ArrayBuffer.isView === 'function') {
7393 return ArrayBuffer.isView(arrbuf);
7398 if (arrbuf instanceof DataView) {
7401 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7406 //
1. The assert module provides functions that throw
7407 // AssertionError's when particular conditions are not met. The
7408 // assert module must conform to the following interface.
7410 var assert = module.exports = ok;
7412 //
2. The AssertionError is defined in assert.
7413 // new assert.AssertionError({ message: message,
7415 // expected: expected })
7417 var regex = /\s*function\s+([^\(\s]*)\s*/;
7418 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7419 function getName(func) {
7420 if (!util.isFunction(func)) {
7423 if (functionsHaveNames) {
7426 var str = func.toString();
7427 var match = str.match(regex);
7428 return match && match[
1];
7430 assert.AssertionError = function AssertionError(options) {
7431 this.name = 'AssertionError';
7432 this.actual = options.actual;
7433 this.expected = options.expected;
7434 this.operator = options.operator;
7435 if (options.message) {
7436 this.message = options.message;
7437 this.generatedMessage = false;
7439 this.message = getMessage(this);
7440 this.generatedMessage = true;
7442 var stackStartFunction = options.stackStartFunction || fail;
7443 if (Error.captureStackTrace) {
7444 Error.captureStackTrace(this, stackStartFunction);
7446 // non v8 browsers so we can have a stacktrace
7447 var err = new Error();
7449 var out = err.stack;
7451 // try to strip useless frames
7452 var fn_name = getName(stackStartFunction);
7453 var idx = out.indexOf('\n' + fn_name);
7455 // once we have located the function frame
7456 // we need to strip out everything before it (and its line)
7457 var next_line = out.indexOf('\n', idx +
1);
7458 out = out.substring(next_line +
1);
7466 // assert.AssertionError instanceof Error
7467 util.inherits(assert.AssertionError, Error);
7469 function truncate(s, n) {
7470 if (typeof s === 'string') {
7471 return s.length < n ? s : s.slice(
0, n);
7476 function inspect(something) {
7477 if (functionsHaveNames || !util.isFunction(something)) {
7478 return util.inspect(something);
7480 var rawname = getName(something);
7481 var name = rawname ? ': ' + rawname : '';
7482 return '[Function' + name + ']';
7484 function getMessage(self) {
7485 return truncate(inspect(self.actual),
128) + ' ' +
7486 self.operator + ' ' +
7487 truncate(inspect(self.expected),
128);
7490 // At present only the three keys mentioned above are used and
7491 // understood by the spec. Implementations or sub modules can pass
7492 // other keys to the AssertionError's constructor - they will be
7495 //
3. All of the following functions must throw an AssertionError
7496 // when a corresponding condition is not met, with a message that
7497 // may be undefined if not provided. All assertion methods provide
7498 // both the actual and expected values to the assertion error for
7499 // display purposes.
7501 function fail(actual, expected, message, operator, stackStartFunction) {
7502 throw new assert.AssertionError({
7507 stackStartFunction: stackStartFunction
7511 // EXTENSION! allows for well behaved errors defined elsewhere.
7514 //
4. Pure assertion tests whether a value is truthy, as determined
7516 // assert.ok(guard, message_opt);
7517 // This statement is equivalent to assert.equal(true, !!guard,
7518 // message_opt);. To test strictly for the value true, use
7519 // assert.strictEqual(true, guard, message_opt);.
7521 function ok(value, message) {
7522 if (!value) fail(value, true, message, '==', assert.ok);
7526 //
5. The equality assertion tests shallow, coercive equality with
7528 // assert.equal(actual, expected, message_opt);
7530 assert.equal = function equal(actual, expected, message) {
7531 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7534 //
6. The non-equality assertion tests for whether two objects are not equal
7535 // with != assert.notEqual(actual, expected, message_opt);
7537 assert.notEqual = function notEqual(actual, expected, message) {
7538 if (actual == expected) {
7539 fail(actual, expected, message, '!=', assert.notEqual);
7543 //
7. The equivalence assertion tests a deep equality relation.
7544 // assert.deepEqual(actual, expected, message_opt);
7546 assert.deepEqual = function deepEqual(actual, expected, message) {
7547 if (!_deepEqual(actual, expected, false)) {
7548 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7552 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7553 if (!_deepEqual(actual, expected, true)) {
7554 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7558 function _deepEqual(actual, expected, strict, memos) {
7559 //
7.1. All identical values are equivalent, as determined by ===.
7560 if (actual === expected) {
7562 } else if (isBuffer(actual) && isBuffer(expected)) {
7563 return compare(actual, expected) ===
0;
7565 //
7.2. If the expected value is a Date object, the actual value is
7566 // equivalent if it is also a Date object that refers to the same time.
7567 } else if (util.isDate(actual) && util.isDate(expected)) {
7568 return actual.getTime() === expected.getTime();
7570 //
7.3 If the expected value is a RegExp object, the actual value is
7571 // equivalent if it is also a RegExp object with the same source and
7572 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7573 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7574 return actual.source === expected.source &&
7575 actual.global === expected.global &&
7576 actual.multiline === expected.multiline &&
7577 actual.lastIndex === expected.lastIndex &&
7578 actual.ignoreCase === expected.ignoreCase;
7580 //
7.4. Other pairs that do not both pass typeof value == 'object',
7581 // equivalence is determined by ==.
7582 } else if ((actual === null || typeof actual !== 'object') &&
7583 (expected === null || typeof expected !== 'object')) {
7584 return strict ? actual === expected : actual == expected;
7586 // If both values are instances of typed arrays, wrap their underlying
7587 // ArrayBuffers in a Buffer each to increase performance
7588 // This optimization requires the arrays to have the same type as checked by
7589 // Object.prototype.toString (aka pToString). Never perform binary
7590 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7591 // bit patterns are not identical.
7592 } else if (isView(actual) && isView(expected) &&
7593 pToString(actual) === pToString(expected) &&
7594 !(actual instanceof Float32Array ||
7595 actual instanceof Float64Array)) {
7596 return compare(new Uint8Array(actual.buffer),
7597 new Uint8Array(expected.buffer)) ===
0;
7599 //
7.5 For all other Object pairs, including Array objects, equivalence is
7600 // determined by having the same number of owned properties (as verified
7601 // with Object.prototype.hasOwnProperty.call), the same set of keys
7602 // (although not necessarily the same order), equivalent values for every
7603 // corresponding key, and an identical 'prototype' property. Note: this
7604 // accounts for both named and indexed properties on Arrays.
7605 } else if (isBuffer(actual) !== isBuffer(expected)) {
7608 memos = memos || {actual: [], expected: []};
7610 var actualIndex = memos.actual.indexOf(actual);
7611 if (actualIndex !== -
1) {
7612 if (actualIndex === memos.expected.indexOf(expected)) {
7617 memos.actual.push(actual);
7618 memos.expected.push(expected);
7620 return objEquiv(actual, expected, strict, memos);
7624 function isArguments(object) {
7625 return Object.prototype.toString.call(object) == '[object Arguments]';
7628 function objEquiv(a, b, strict, actualVisitedObjects) {
7629 if (a === null || a === undefined || b === null || b === undefined)
7631 // if one is a primitive, the other must be same
7632 if (util.isPrimitive(a) || util.isPrimitive(b))
7634 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7636 var aIsArgs = isArguments(a);
7637 var bIsArgs = isArguments(b);
7638 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7643 return _deepEqual(a, b, strict);
7645 var ka = objectKeys(a);
7646 var kb = objectKeys(b);
7648 // having the same number of owned properties (keys incorporates
7650 if (ka.length !== kb.length)
7652 //the same set of keys (although not necessarily the same order),
7656 for (i = ka.length -
1; i
>=
0; i--) {
7657 if (ka[i] !== kb[i])
7660 //equivalent values for every corresponding key, and
7661 //~~~possibly expensive deep test
7662 for (i = ka.length -
1; i
>=
0; i--) {
7664 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7670 //
8. The non-equivalence assertion tests for any deep inequality.
7671 // assert.notDeepEqual(actual, expected, message_opt);
7673 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7674 if (_deepEqual(actual, expected, false)) {
7675 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7679 assert.notDeepStrictEqual = notDeepStrictEqual;
7680 function notDeepStrictEqual(actual, expected, message) {
7681 if (_deepEqual(actual, expected, true)) {
7682 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7687 //
9. The strict equality assertion tests strict equality, as determined by ===.
7688 // assert.strictEqual(actual, expected, message_opt);
7690 assert.strictEqual = function strictEqual(actual, expected, message) {
7691 if (actual !== expected) {
7692 fail(actual, expected, message, '===', assert.strictEqual);
7696 //
10. The strict non-equality assertion tests for strict inequality, as
7697 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7699 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7700 if (actual === expected) {
7701 fail(actual, expected, message, '!==', assert.notStrictEqual);
7705 function expectedException(actual, expected) {
7706 if (!actual || !expected) {
7710 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7711 return expected.test(actual);
7715 if (actual instanceof expected) {
7719 // Ignore. The instanceof check doesn't work for arrow functions.
7722 if (Error.isPrototypeOf(expected)) {
7726 return expected.call({}, actual) === true;
7729 function _tryBlock(block) {
7739 function _throws(shouldThrow, block, expected, message) {
7742 if (typeof block !== 'function') {
7743 throw new TypeError('"block" argument must be a function');
7746 if (typeof expected === 'string') {
7751 actual = _tryBlock(block);
7753 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7754 (message ? ' ' + message : '.');
7756 if (shouldThrow && !actual) {
7757 fail(actual, expected, 'Missing expected exception' + message);
7760 var userProvidedMessage = typeof message === 'string';
7761 var isUnwantedException = !shouldThrow && util.isError(actual);
7762 var isUnexpectedException = !shouldThrow && actual && !expected;
7764 if ((isUnwantedException &&
7765 userProvidedMessage &&
7766 expectedException(actual, expected)) ||
7767 isUnexpectedException) {
7768 fail(actual, expected, 'Got unwanted exception' + message);
7771 if ((shouldThrow && actual && expected &&
7772 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7777 //
11. Expected to throw an error:
7778 // assert.throws(block, Error_opt, message_opt);
7780 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7781 _throws(true, block, error, message);
7784 // EXTENSION! This is annoying to write outside this module.
7785 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7786 _throws(false, block, error, message);
7789 assert.ifError = function(err) { if (err) throw err; };
7791 var objectKeys = Object.keys || function (obj) {
7793 for (var key in obj) {
7794 if (hasOwn.call(obj, key)) keys.push(key);
7799 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7800 },{"util/":
32}],
2:[function(require,module,exports){
7803 exports.byteLength = byteLength
7804 exports.toByteArray = toByteArray
7805 exports.fromByteArray = fromByteArray
7809 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7811 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7812 for (var i =
0, len = code.length; i < len; ++i) {
7814 revLookup[code.charCodeAt(i)] = i
7817 revLookup['-'.charCodeAt(
0)] =
62
7818 revLookup['_'.charCodeAt(
0)] =
63
7820 function placeHoldersCount (b64) {
7821 var len = b64.length
7823 throw new Error('Invalid string. Length must be a multiple of
4')
7826 // the number of equal signs (place holders)
7827 // if there are two placeholders, than the two characters before it
7828 // represent one byte
7829 // if there is only one, then the three characters before it represent
2 bytes
7830 // this is just a cheap hack to not do indexOf twice
7831 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7834 function byteLength (b64) {
7835 // base64 is
4/
3 + up to two characters of the original data
7836 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7839 function toByteArray (b64) {
7840 var i, l, tmp, placeHolders, arr
7841 var len = b64.length
7842 placeHolders = placeHoldersCount(b64)
7844 arr = new Arr((len *
3 /
4) - placeHolders)
7846 // if there are placeholders, only get up to the last complete
4 chars
7847 l = placeHolders
> 0 ? len -
4 : len
7851 for (i =
0; i < l; i +=
4) {
7852 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7853 arr[L++] = (tmp
>> 16) &
0xFF
7854 arr[L++] = (tmp
>> 8) &
0xFF
7855 arr[L++] = tmp &
0xFF
7858 if (placeHolders ===
2) {
7859 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7860 arr[L++] = tmp &
0xFF
7861 } else if (placeHolders ===
1) {
7862 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7863 arr[L++] = (tmp
>> 8) &
0xFF
7864 arr[L++] = tmp &
0xFF
7870 function tripletToBase64 (num) {
7871 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7874 function encodeChunk (uint8, start, end) {
7877 for (var i = start; i < end; i +=
3) {
7878 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7879 output.push(tripletToBase64(tmp))
7881 return output.join('')
7884 function fromByteArray (uint8) {
7886 var len = uint8.length
7887 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7890 var maxChunkLength =
16383 // must be multiple of
3
7892 // go through the array every three bytes, we'll deal with trailing stuff later
7893 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7894 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7897 // pad the end with zeros, but make sure to not forget the extra bytes
7898 if (extraBytes ===
1) {
7899 tmp = uint8[len -
1]
7900 output += lookup[tmp
>> 2]
7901 output += lookup[(tmp <<
4) &
0x3F]
7903 } else if (extraBytes ===
2) {
7904 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7905 output += lookup[tmp
>> 10]
7906 output += lookup[(tmp
>> 4) &
0x3F]
7907 output += lookup[(tmp <<
2) &
0x3F]
7913 return parts.join('')
7916 },{}],
3:[function(require,module,exports){
7918 },{}],
4:[function(require,module,exports){
7920 * The buffer module from node.js, for the browser.
7922 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7925 /* eslint-disable no-proto */
7929 var base64 = require('base64-js')
7930 var ieee754 = require('ieee754')
7932 exports.Buffer = Buffer
7933 exports.SlowBuffer = SlowBuffer
7934 exports.INSPECT_MAX_BYTES =
50
7936 var K_MAX_LENGTH =
0x7fffffff
7937 exports.kMaxLength = K_MAX_LENGTH
7940 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7941 * === true Use Uint8Array implementation (fastest)
7942 * === false Print warning and recommend using `buffer` v4.x which has an Object
7943 * implementation (most compatible, even IE6)
7945 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7946 * Opera
11.6+, iOS
4.2+.
7948 * We report that the browser does not support typed arrays if the are not subclassable
7949 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7950 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7951 * for __proto__ and has a buggy typed array implementation.
7953 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7955 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7956 typeof console.error === 'function') {
7958 'This browser lacks typed array (Uint8Array) support which is required by ' +
7959 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7963 function typedArraySupport () {
7964 // Can typed array instances can be augmented?
7966 var arr = new Uint8Array(
1)
7967 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7968 return arr.foo() ===
42
7974 function createBuffer (length) {
7975 if (length
> K_MAX_LENGTH) {
7976 throw new RangeError('Invalid typed array length')
7978 // Return an augmented `Uint8Array` instance
7979 var buf = new Uint8Array(length)
7980 buf.__proto__ = Buffer.prototype
7985 * The Buffer constructor returns instances of `Uint8Array` that have their
7986 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
7987 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
7988 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
7989 * returns a single octet.
7991 * The `Uint8Array` prototype remains unmodified.
7994 function Buffer (arg, encodingOrOffset, length) {
7996 if (typeof arg === 'number') {
7997 if (typeof encodingOrOffset === 'string') {
7999 'If encoding is specified then the first argument must be a string'
8002 return allocUnsafe(arg)
8004 return from(arg, encodingOrOffset, length)
8007 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
8008 if (typeof Symbol !== 'undefined' && Symbol.species &&
8009 Buffer[Symbol.species] === Buffer) {
8010 Object.defineProperty(Buffer, Symbol.species, {
8018 Buffer.poolSize =
8192 // not used by this implementation
8020 function from (value, encodingOrOffset, length) {
8021 if (typeof value === 'number') {
8022 throw new TypeError('"value" argument must not be a number')
8025 if (value instanceof ArrayBuffer) {
8026 return fromArrayBuffer(value, encodingOrOffset, length)
8029 if (typeof value === 'string') {
8030 return fromString(value, encodingOrOffset)
8033 return fromObject(value)
8037 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8038 * if value is a number.
8039 * Buffer.from(str[, encoding])
8040 * Buffer.from(array)
8041 * Buffer.from(buffer)
8042 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8044 Buffer.from = function (value, encodingOrOffset, length) {
8045 return from(value, encodingOrOffset, length)
8048 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8049 // https://github.com/feross/buffer/pull/
148
8050 Buffer.prototype.__proto__ = Uint8Array.prototype
8051 Buffer.__proto__ = Uint8Array
8053 function assertSize (size) {
8054 if (typeof size !== 'number') {
8055 throw new TypeError('"size" argument must be a number')
8056 } else if (size <
0) {
8057 throw new RangeError('"size" argument must not be negative')
8061 function alloc (size, fill, encoding) {
8064 return createBuffer(size)
8066 if (fill !== undefined) {
8067 // Only pay attention to encoding if it's a string. This
8068 // prevents accidentally sending in a number that would
8069 // be interpretted as a start offset.
8070 return typeof encoding === 'string'
8071 ? createBuffer(size).fill(fill, encoding)
8072 : createBuffer(size).fill(fill)
8074 return createBuffer(size)
8078 * Creates a new filled Buffer instance.
8079 * alloc(size[, fill[, encoding]])
8081 Buffer.alloc = function (size, fill, encoding) {
8082 return alloc(size, fill, encoding)
8085 function allocUnsafe (size) {
8087 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8091 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8093 Buffer.allocUnsafe = function (size) {
8094 return allocUnsafe(size)
8097 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8099 Buffer.allocUnsafeSlow = function (size) {
8100 return allocUnsafe(size)
8103 function fromString (string, encoding) {
8104 if (typeof encoding !== 'string' || encoding === '') {
8108 if (!Buffer.isEncoding(encoding)) {
8109 throw new TypeError('"encoding" must be a valid string encoding')
8112 var length = byteLength(string, encoding) |
0
8113 var buf = createBuffer(length)
8115 var actual = buf.write(string, encoding)
8117 if (actual !== length) {
8118 // Writing a hex string, for example, that contains invalid characters will
8119 // cause everything after the first invalid character to be ignored. (e.g.
8120 // 'abxxcd' will be treated as 'ab')
8121 buf = buf.slice(
0, actual)
8127 function fromArrayLike (array) {
8128 var length = array.length <
0 ?
0 : checked(array.length) |
0
8129 var buf = createBuffer(length)
8130 for (var i =
0; i < length; i +=
1) {
8131 buf[i] = array[i] &
255
8136 function fromArrayBuffer (array, byteOffset, length) {
8137 if (byteOffset <
0 || array.byteLength < byteOffset) {
8138 throw new RangeError('\'offset\' is out of bounds')
8141 if (array.byteLength < byteOffset + (length ||
0)) {
8142 throw new RangeError('\'length\' is out of bounds')
8146 if (byteOffset === undefined && length === undefined) {
8147 buf = new Uint8Array(array)
8148 } else if (length === undefined) {
8149 buf = new Uint8Array(array, byteOffset)
8151 buf = new Uint8Array(array, byteOffset, length)
8154 // Return an augmented `Uint8Array` instance
8155 buf.__proto__ = Buffer.prototype
8159 function fromObject (obj) {
8160 if (Buffer.isBuffer(obj)) {
8161 var len = checked(obj.length) |
0
8162 var buf = createBuffer(len)
8164 if (buf.length ===
0) {
8168 obj.copy(buf,
0,
0, len)
8173 if (isArrayBufferView(obj) || 'length' in obj) {
8174 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8175 return createBuffer(
0)
8177 return fromArrayLike(obj)
8180 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8181 return fromArrayLike(obj.data)
8185 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8188 function checked (length) {
8189 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8190 // length is NaN (which is otherwise coerced to zero.)
8191 if (length
>= K_MAX_LENGTH) {
8192 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8193 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8198 function SlowBuffer (length) {
8199 if (+length != length) { // eslint-disable-line eqeqeq
8202 return Buffer.alloc(+length)
8205 Buffer.isBuffer = function isBuffer (b) {
8206 return b != null && b._isBuffer === true
8209 Buffer.compare = function compare (a, b) {
8210 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8211 throw new TypeError('Arguments must be Buffers')
8214 if (a === b) return
0
8219 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8220 if (a[i] !== b[i]) {
8227 if (x < y) return -
1
8232 Buffer.isEncoding = function isEncoding (encoding) {
8233 switch (String(encoding).toLowerCase()) {
8251 Buffer.concat = function concat (list, length) {
8252 if (!Array.isArray(list)) {
8253 throw new TypeError('"list" argument must be an Array of Buffers')
8256 if (list.length ===
0) {
8257 return Buffer.alloc(
0)
8261 if (length === undefined) {
8263 for (i =
0; i < list.length; ++i) {
8264 length += list[i].length
8268 var buffer = Buffer.allocUnsafe(length)
8270 for (i =
0; i < list.length; ++i) {
8272 if (!Buffer.isBuffer(buf)) {
8273 throw new TypeError('"list" argument must be an Array of Buffers')
8275 buf.copy(buffer, pos)
8281 function byteLength (string, encoding) {
8282 if (Buffer.isBuffer(string)) {
8283 return string.length
8285 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8286 return string.byteLength
8288 if (typeof string !== 'string') {
8289 string = '' + string
8292 var len = string.length
8293 if (len ===
0) return
0
8295 // Use a for loop to avoid recursion
8296 var loweredCase = false
8306 return utf8ToBytes(string).length
8315 return base64ToBytes(string).length
8317 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8318 encoding = ('' + encoding).toLowerCase()
8323 Buffer.byteLength = byteLength
8325 function slowToString (encoding, start, end) {
8326 var loweredCase = false
8328 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8329 // property of a typed array.
8331 // This behaves neither like String nor Uint8Array in that we set start/end
8332 // to their upper/lower bounds if the value passed is out of range.
8333 // undefined is handled specially as per ECMA-
262 6th Edition,
8334 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8335 if (start === undefined || start <
0) {
8338 // Return early if start
> this.length. Done here to prevent potential uint32
8339 // coercion fail below.
8340 if (start
> this.length) {
8344 if (end === undefined || end
> this.length) {
8352 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8360 if (!encoding) encoding = 'utf8'
8365 return hexSlice(this, start, end)
8369 return utf8Slice(this, start, end)
8372 return asciiSlice(this, start, end)
8376 return latin1Slice(this, start, end)
8379 return base64Slice(this, start, end)
8385 return utf16leSlice(this, start, end)
8388 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8389 encoding = (encoding + '').toLowerCase()
8395 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8396 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8397 // reliably in a browserify context because there could be multiple different
8398 // copies of the 'buffer' package in use. This method works even for Buffer
8399 // instances that were created from another copy of the `buffer` package.
8400 // See: https://github.com/feross/buffer/issues/
154
8401 Buffer.prototype._isBuffer = true
8403 function swap (b, n, m) {
8409 Buffer.prototype.swap16 = function swap16 () {
8410 var len = this.length
8411 if (len %
2 !==
0) {
8412 throw new RangeError('Buffer size must be a multiple of
16-bits')
8414 for (var i =
0; i < len; i +=
2) {
8415 swap(this, i, i +
1)
8420 Buffer.prototype.swap32 = function swap32 () {
8421 var len = this.length
8422 if (len %
4 !==
0) {
8423 throw new RangeError('Buffer size must be a multiple of
32-bits')
8425 for (var i =
0; i < len; i +=
4) {
8426 swap(this, i, i +
3)
8427 swap(this, i +
1, i +
2)
8432 Buffer.prototype.swap64 = function swap64 () {
8433 var len = this.length
8434 if (len %
8 !==
0) {
8435 throw new RangeError('Buffer size must be a multiple of
64-bits')
8437 for (var i =
0; i < len; i +=
8) {
8438 swap(this, i, i +
7)
8439 swap(this, i +
1, i +
6)
8440 swap(this, i +
2, i +
5)
8441 swap(this, i +
3, i +
4)
8446 Buffer.prototype.toString = function toString () {
8447 var length = this.length
8448 if (length ===
0) return ''
8449 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8450 return slowToString.apply(this, arguments)
8453 Buffer.prototype.equals = function equals (b) {
8454 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8455 if (this === b) return true
8456 return Buffer.compare(this, b) ===
0
8459 Buffer.prototype.inspect = function inspect () {
8461 var max = exports.INSPECT_MAX_BYTES
8462 if (this.length
> 0) {
8463 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8464 if (this.length
> max) str += ' ... '
8466 return '
<Buffer ' + str + '
>'
8469 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8470 if (!Buffer.isBuffer(target)) {
8471 throw new TypeError('Argument must be a Buffer')
8474 if (start === undefined) {
8477 if (end === undefined) {
8478 end = target ? target.length :
0
8480 if (thisStart === undefined) {
8483 if (thisEnd === undefined) {
8484 thisEnd = this.length
8487 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8488 throw new RangeError('out of range index')
8491 if (thisStart
>= thisEnd && start
>= end) {
8494 if (thisStart
>= thisEnd) {
8506 if (this === target) return
0
8508 var x = thisEnd - thisStart
8510 var len = Math.min(x, y)
8512 var thisCopy = this.slice(thisStart, thisEnd)
8513 var targetCopy = target.slice(start, end)
8515 for (var i =
0; i < len; ++i) {
8516 if (thisCopy[i] !== targetCopy[i]) {
8523 if (x < y) return -
1
8528 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8529 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8532 // - buffer - a Buffer to search
8533 // - val - a string, Buffer, or number
8534 // - byteOffset - an index into `buffer`; will be clamped to an int32
8535 // - encoding - an optional encoding, relevant is val is a string
8536 // - dir - true for indexOf, false for lastIndexOf
8537 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8538 // Empty buffer means no match
8539 if (buffer.length ===
0) return -
1
8541 // Normalize byteOffset
8542 if (typeof byteOffset === 'string') {
8543 encoding = byteOffset
8545 } else if (byteOffset
> 0x7fffffff) {
8546 byteOffset =
0x7fffffff
8547 } else if (byteOffset < -
0x80000000) {
8548 byteOffset = -
0x80000000
8550 byteOffset = +byteOffset // Coerce to Number.
8551 if (numberIsNaN(byteOffset)) {
8552 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8553 byteOffset = dir ?
0 : (buffer.length -
1)
8556 // Normalize byteOffset: negative offsets start from the end of the buffer
8557 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8558 if (byteOffset
>= buffer.length) {
8560 else byteOffset = buffer.length -
1
8561 } else if (byteOffset <
0) {
8562 if (dir) byteOffset =
0
8567 if (typeof val === 'string') {
8568 val = Buffer.from(val, encoding)
8571 // Finally, search either indexOf (if dir is true) or lastIndexOf
8572 if (Buffer.isBuffer(val)) {
8573 // Special case: looking for empty string/buffer always fails
8574 if (val.length ===
0) {
8577 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8578 } else if (typeof val === 'number') {
8579 val = val &
0xFF // Search for a byte value [
0-
255]
8580 if (typeof Uint8Array.prototype.indexOf === 'function') {
8582 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8584 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8587 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8590 throw new TypeError('val must be string, number or Buffer')
8593 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8595 var arrLength = arr.length
8596 var valLength = val.length
8598 if (encoding !== undefined) {
8599 encoding = String(encoding).toLowerCase()
8600 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8601 encoding === 'utf16le' || encoding === 'utf-
16le') {
8602 if (arr.length <
2 || val.length <
2) {
8612 function read (buf, i) {
8613 if (indexSize ===
1) {
8616 return buf.readUInt16BE(i * indexSize)
8623 for (i = byteOffset; i < arrLength; i++) {
8624 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8625 if (foundIndex === -
1) foundIndex = i
8626 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8628 if (foundIndex !== -
1) i -= i - foundIndex
8633 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8634 for (i = byteOffset; i
>=
0; i--) {
8636 for (var j =
0; j < valLength; j++) {
8637 if (read(arr, i + j) !== read(val, j)) {
8649 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8650 return this.indexOf(val, byteOffset, encoding) !== -
1
8653 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8654 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8657 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8658 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8661 function hexWrite (buf, string, offset, length) {
8662 offset = Number(offset) ||
0
8663 var remaining = buf.length - offset
8667 length = Number(length)
8668 if (length
> remaining) {
8673 // must be an even number of digits
8674 var strLen = string.length
8675 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8677 if (length
> strLen /
2) {
8680 for (var i =
0; i < length; ++i) {
8681 var parsed = parseInt(string.substr(i *
2,
2),
16)
8682 if (numberIsNaN(parsed)) return i
8683 buf[offset + i] = parsed
8688 function utf8Write (buf, string, offset, length) {
8689 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8692 function asciiWrite (buf, string, offset, length) {
8693 return blitBuffer(asciiToBytes(string), buf, offset, length)
8696 function latin1Write (buf, string, offset, length) {
8697 return asciiWrite(buf, string, offset, length)
8700 function base64Write (buf, string, offset, length) {
8701 return blitBuffer(base64ToBytes(string), buf, offset, length)
8704 function ucs2Write (buf, string, offset, length) {
8705 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8708 Buffer.prototype.write = function write (string, offset, length, encoding) {
8709 // Buffer#write(string)
8710 if (offset === undefined) {
8712 length = this.length
8714 // Buffer#write(string, encoding)
8715 } else if (length === undefined && typeof offset === 'string') {
8717 length = this.length
8719 // Buffer#write(string, offset[, length][, encoding])
8720 } else if (isFinite(offset)) {
8721 offset = offset
>>> 0
8722 if (isFinite(length)) {
8723 length = length
>>> 0
8724 if (encoding === undefined) encoding = 'utf8'
8731 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8735 var remaining = this.length - offset
8736 if (length === undefined || length
> remaining) length = remaining
8738 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8739 throw new RangeError('Attempt to write outside buffer bounds')
8742 if (!encoding) encoding = 'utf8'
8744 var loweredCase = false
8748 return hexWrite(this, string, offset, length)
8752 return utf8Write(this, string, offset, length)
8755 return asciiWrite(this, string, offset, length)
8759 return latin1Write(this, string, offset, length)
8762 // Warning: maxLength not taken into account in base64Write
8763 return base64Write(this, string, offset, length)
8769 return ucs2Write(this, string, offset, length)
8772 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8773 encoding = ('' + encoding).toLowerCase()
8779 Buffer.prototype.toJSON = function toJSON () {
8782 data: Array.prototype.slice.call(this._arr || this,
0)
8786 function base64Slice (buf, start, end) {
8787 if (start ===
0 && end === buf.length) {
8788 return base64.fromByteArray(buf)
8790 return base64.fromByteArray(buf.slice(start, end))
8794 function utf8Slice (buf, start, end) {
8795 end = Math.min(buf.length, end)
8800 var firstByte = buf[i]
8801 var codePoint = null
8802 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8803 : (firstByte
> 0xDF) ?
3
8804 : (firstByte
> 0xBF) ?
2
8807 if (i + bytesPerSequence <= end) {
8808 var secondByte, thirdByte, fourthByte, tempCodePoint
8810 switch (bytesPerSequence) {
8812 if (firstByte <
0x80) {
8813 codePoint = firstByte
8817 secondByte = buf[i +
1]
8818 if ((secondByte &
0xC0) ===
0x80) {
8819 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8820 if (tempCodePoint
> 0x7F) {
8821 codePoint = tempCodePoint
8826 secondByte = buf[i +
1]
8827 thirdByte = buf[i +
2]
8828 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8829 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8830 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8831 codePoint = tempCodePoint
8836 secondByte = buf[i +
1]
8837 thirdByte = buf[i +
2]
8838 fourthByte = buf[i +
3]
8839 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8840 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8841 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8842 codePoint = tempCodePoint
8848 if (codePoint === null) {
8849 // we did not generate a valid codePoint so insert a
8850 // replacement char (U+FFFD) and advance only
1 byte
8852 bytesPerSequence =
1
8853 } else if (codePoint
> 0xFFFF) {
8854 // encode to utf16 (surrogate pair dance)
8855 codePoint -=
0x10000
8856 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8857 codePoint =
0xDC00 | codePoint &
0x3FF
8861 i += bytesPerSequence
8864 return decodeCodePointsArray(res)
8867 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8868 // the lowest limit is Chrome, with
0x10000 args.
8869 // We go
1 magnitude less, for safety
8870 var MAX_ARGUMENTS_LENGTH =
0x1000
8872 function decodeCodePointsArray (codePoints) {
8873 var len = codePoints.length
8874 if (len <= MAX_ARGUMENTS_LENGTH) {
8875 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8878 // Decode in chunks to avoid
"call stack size exceeded".
8882 res += String.fromCharCode.apply(
8884 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8890 function asciiSlice (buf, start, end) {
8892 end = Math.min(buf.length, end)
8894 for (var i = start; i < end; ++i) {
8895 ret += String.fromCharCode(buf[i] &
0x7F)
8900 function latin1Slice (buf, start, end) {
8902 end = Math.min(buf.length, end)
8904 for (var i = start; i < end; ++i) {
8905 ret += String.fromCharCode(buf[i])
8910 function hexSlice (buf, start, end) {
8911 var len = buf.length
8913 if (!start || start <
0) start =
0
8914 if (!end || end <
0 || end
> len) end = len
8917 for (var i = start; i < end; ++i) {
8918 out += toHex(buf[i])
8923 function utf16leSlice (buf, start, end) {
8924 var bytes = buf.slice(start, end)
8926 for (var i =
0; i < bytes.length; i +=
2) {
8927 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8932 Buffer.prototype.slice = function slice (start, end) {
8933 var len = this.length
8935 end = end === undefined ? len : ~~end
8939 if (start <
0) start =
0
8940 } else if (start
> len) {
8946 if (end <
0) end =
0
8947 } else if (end
> len) {
8951 if (end < start) end = start
8953 var newBuf = this.subarray(start, end)
8954 // Return an augmented `Uint8Array` instance
8955 newBuf.__proto__ = Buffer.prototype
8960 * Need to make sure that buffer isn't trying to write out of bounds.
8962 function checkOffset (offset, ext, length) {
8963 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8964 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8967 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8968 offset = offset
>>> 0
8969 byteLength = byteLength
>>> 0
8970 if (!noAssert) checkOffset(offset, byteLength, this.length)
8972 var val = this[offset]
8975 while (++i < byteLength && (mul *=
0x100)) {
8976 val += this[offset + i] * mul
8982 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8983 offset = offset
>>> 0
8984 byteLength = byteLength
>>> 0
8986 checkOffset(offset, byteLength, this.length)
8989 var val = this[offset + --byteLength]
8991 while (byteLength
> 0 && (mul *=
0x100)) {
8992 val += this[offset + --byteLength] * mul
8998 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8999 offset = offset
>>> 0
9000 if (!noAssert) checkOffset(offset,
1, this.length)
9004 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
9005 offset = offset
>>> 0
9006 if (!noAssert) checkOffset(offset,
2, this.length)
9007 return this[offset] | (this[offset +
1] <<
8)
9010 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
9011 offset = offset
>>> 0
9012 if (!noAssert) checkOffset(offset,
2, this.length)
9013 return (this[offset] <<
8) | this[offset +
1]
9016 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
9017 offset = offset
>>> 0
9018 if (!noAssert) checkOffset(offset,
4, this.length)
9020 return ((this[offset]) |
9021 (this[offset +
1] <<
8) |
9022 (this[offset +
2] <<
16)) +
9023 (this[offset +
3] *
0x1000000)
9026 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
9027 offset = offset
>>> 0
9028 if (!noAssert) checkOffset(offset,
4, this.length)
9030 return (this[offset] *
0x1000000) +
9031 ((this[offset +
1] <<
16) |
9032 (this[offset +
2] <<
8) |
9036 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9037 offset = offset
>>> 0
9038 byteLength = byteLength
>>> 0
9039 if (!noAssert) checkOffset(offset, byteLength, this.length)
9041 var val = this[offset]
9044 while (++i < byteLength && (mul *=
0x100)) {
9045 val += this[offset + i] * mul
9049 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9054 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9055 offset = offset
>>> 0
9056 byteLength = byteLength
>>> 0
9057 if (!noAssert) checkOffset(offset, byteLength, this.length)
9061 var val = this[offset + --i]
9062 while (i
> 0 && (mul *=
0x100)) {
9063 val += this[offset + --i] * mul
9067 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9072 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9073 offset = offset
>>> 0
9074 if (!noAssert) checkOffset(offset,
1, this.length)
9075 if (!(this[offset] &
0x80)) return (this[offset])
9076 return ((
0xff - this[offset] +
1) * -
1)
9079 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9080 offset = offset
>>> 0
9081 if (!noAssert) checkOffset(offset,
2, this.length)
9082 var val = this[offset] | (this[offset +
1] <<
8)
9083 return (val &
0x8000) ? val |
0xFFFF0000 : val
9086 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9087 offset = offset
>>> 0
9088 if (!noAssert) checkOffset(offset,
2, this.length)
9089 var val = this[offset +
1] | (this[offset] <<
8)
9090 return (val &
0x8000) ? val |
0xFFFF0000 : val
9093 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9094 offset = offset
>>> 0
9095 if (!noAssert) checkOffset(offset,
4, this.length)
9097 return (this[offset]) |
9098 (this[offset +
1] <<
8) |
9099 (this[offset +
2] <<
16) |
9100 (this[offset +
3] <<
24)
9103 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9104 offset = offset
>>> 0
9105 if (!noAssert) checkOffset(offset,
4, this.length)
9107 return (this[offset] <<
24) |
9108 (this[offset +
1] <<
16) |
9109 (this[offset +
2] <<
8) |
9113 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9114 offset = offset
>>> 0
9115 if (!noAssert) checkOffset(offset,
4, this.length)
9116 return ieee754.read(this, offset, true,
23,
4)
9119 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9120 offset = offset
>>> 0
9121 if (!noAssert) checkOffset(offset,
4, this.length)
9122 return ieee754.read(this, offset, false,
23,
4)
9125 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9126 offset = offset
>>> 0
9127 if (!noAssert) checkOffset(offset,
8, this.length)
9128 return ieee754.read(this, offset, true,
52,
8)
9131 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9132 offset = offset
>>> 0
9133 if (!noAssert) checkOffset(offset,
8, this.length)
9134 return ieee754.read(this, offset, false,
52,
8)
9137 function checkInt (buf, value, offset, ext, max, min) {
9138 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9139 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9140 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9143 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9145 offset = offset
>>> 0
9146 byteLength = byteLength
>>> 0
9148 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9149 checkInt(this, value, offset, byteLength, maxBytes,
0)
9154 this[offset] = value &
0xFF
9155 while (++i < byteLength && (mul *=
0x100)) {
9156 this[offset + i] = (value / mul) &
0xFF
9159 return offset + byteLength
9162 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9164 offset = offset
>>> 0
9165 byteLength = byteLength
>>> 0
9167 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9168 checkInt(this, value, offset, byteLength, maxBytes,
0)
9171 var i = byteLength -
1
9173 this[offset + i] = value &
0xFF
9174 while (--i
>=
0 && (mul *=
0x100)) {
9175 this[offset + i] = (value / mul) &
0xFF
9178 return offset + byteLength
9181 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9183 offset = offset
>>> 0
9184 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9185 this[offset] = (value &
0xff)
9189 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9191 offset = offset
>>> 0
9192 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9193 this[offset] = (value &
0xff)
9194 this[offset +
1] = (value
>>> 8)
9198 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9200 offset = offset
>>> 0
9201 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9202 this[offset] = (value
>>> 8)
9203 this[offset +
1] = (value &
0xff)
9207 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9209 offset = offset
>>> 0
9210 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9211 this[offset +
3] = (value
>>> 24)
9212 this[offset +
2] = (value
>>> 16)
9213 this[offset +
1] = (value
>>> 8)
9214 this[offset] = (value &
0xff)
9218 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9220 offset = offset
>>> 0
9221 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9222 this[offset] = (value
>>> 24)
9223 this[offset +
1] = (value
>>> 16)
9224 this[offset +
2] = (value
>>> 8)
9225 this[offset +
3] = (value &
0xff)
9229 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9231 offset = offset
>>> 0
9233 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9235 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9241 this[offset] = value &
0xFF
9242 while (++i < byteLength && (mul *=
0x100)) {
9243 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9246 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9249 return offset + byteLength
9252 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9254 offset = offset
>>> 0
9256 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9258 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9261 var i = byteLength -
1
9264 this[offset + i] = value &
0xFF
9265 while (--i
>=
0 && (mul *=
0x100)) {
9266 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9269 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9272 return offset + byteLength
9275 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9277 offset = offset
>>> 0
9278 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9279 if (value <
0) value =
0xff + value +
1
9280 this[offset] = (value &
0xff)
9284 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9286 offset = offset
>>> 0
9287 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9288 this[offset] = (value &
0xff)
9289 this[offset +
1] = (value
>>> 8)
9293 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9295 offset = offset
>>> 0
9296 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9297 this[offset] = (value
>>> 8)
9298 this[offset +
1] = (value &
0xff)
9302 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9304 offset = offset
>>> 0
9305 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9306 this[offset] = (value &
0xff)
9307 this[offset +
1] = (value
>>> 8)
9308 this[offset +
2] = (value
>>> 16)
9309 this[offset +
3] = (value
>>> 24)
9313 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9315 offset = offset
>>> 0
9316 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9317 if (value <
0) value =
0xffffffff + value +
1
9318 this[offset] = (value
>>> 24)
9319 this[offset +
1] = (value
>>> 16)
9320 this[offset +
2] = (value
>>> 8)
9321 this[offset +
3] = (value &
0xff)
9325 function checkIEEE754 (buf, value, offset, ext, max, min) {
9326 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9327 if (offset <
0) throw new RangeError('Index out of range')
9330 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9332 offset = offset
>>> 0
9334 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9336 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9340 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9341 return writeFloat(this, value, offset, true, noAssert)
9344 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9345 return writeFloat(this, value, offset, false, noAssert)
9348 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9350 offset = offset
>>> 0
9352 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9354 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9358 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9359 return writeDouble(this, value, offset, true, noAssert)
9362 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9363 return writeDouble(this, value, offset, false, noAssert)
9366 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9367 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9368 if (!start) start =
0
9369 if (!end && end !==
0) end = this.length
9370 if (targetStart
>= target.length) targetStart = target.length
9371 if (!targetStart) targetStart =
0
9372 if (end
> 0 && end < start) end = start
9374 // Copy
0 bytes; we're done
9375 if (end === start) return
0
9376 if (target.length ===
0 || this.length ===
0) return
0
9378 // Fatal error conditions
9379 if (targetStart <
0) {
9380 throw new RangeError('targetStart out of bounds')
9382 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9383 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9386 if (end
> this.length) end = this.length
9387 if (target.length - targetStart < end - start) {
9388 end = target.length - targetStart + start
9391 var len = end - start
9394 if (this === target && start < targetStart && targetStart < end) {
9395 // descending copy from end
9396 for (i = len -
1; i
>=
0; --i) {
9397 target[i + targetStart] = this[i + start]
9399 } else if (len <
1000) {
9400 // ascending copy from start
9401 for (i =
0; i < len; ++i) {
9402 target[i + targetStart] = this[i + start]
9405 Uint8Array.prototype.set.call(
9407 this.subarray(start, start + len),
9416 // buffer.fill(number[, offset[, end]])
9417 // buffer.fill(buffer[, offset[, end]])
9418 // buffer.fill(string[, offset[, end]][, encoding])
9419 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9420 // Handle string cases:
9421 if (typeof val === 'string') {
9422 if (typeof start === 'string') {
9426 } else if (typeof end === 'string') {
9430 if (val.length ===
1) {
9431 var code = val.charCodeAt(
0)
9436 if (encoding !== undefined && typeof encoding !== 'string') {
9437 throw new TypeError('encoding must be a string')
9439 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9440 throw new TypeError('Unknown encoding: ' + encoding)
9442 } else if (typeof val === 'number') {
9446 // Invalid ranges are not set to a default, so can range check early.
9447 if (start <
0 || this.length < start || this.length < end) {
9448 throw new RangeError('Out of range index')
9456 end = end === undefined ? this.length : end
>>> 0
9461 if (typeof val === 'number') {
9462 for (i = start; i < end; ++i) {
9466 var bytes = Buffer.isBuffer(val)
9468 : new Buffer(val, encoding)
9469 var len = bytes.length
9470 for (i =
0; i < end - start; ++i) {
9471 this[i + start] = bytes[i % len]
9481 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9483 function base64clean (str) {
9484 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9485 str = str.trim().replace(INVALID_BASE64_RE, '')
9486 // Node converts strings with length <
2 to ''
9487 if (str.length <
2) return ''
9488 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9489 while (str.length %
4 !==
0) {
9495 function toHex (n) {
9496 if (n <
16) return '
0' + n.toString(
16)
9497 return n.toString(
16)
9500 function utf8ToBytes (string, units) {
9501 units = units || Infinity
9503 var length = string.length
9504 var leadSurrogate = null
9507 for (var i =
0; i < length; ++i) {
9508 codePoint = string.charCodeAt(i)
9510 // is surrogate component
9511 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9512 // last char was a lead
9513 if (!leadSurrogate) {
9515 if (codePoint
> 0xDBFF) {
9517 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9519 } else if (i +
1 === length) {
9521 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9526 leadSurrogate = codePoint
9532 if (codePoint <
0xDC00) {
9533 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9534 leadSurrogate = codePoint
9538 // valid surrogate pair
9539 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9540 } else if (leadSurrogate) {
9541 // valid bmp char, but last char was a lead
9542 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9545 leadSurrogate = null
9548 if (codePoint <
0x80) {
9549 if ((units -=
1) <
0) break
9550 bytes.push(codePoint)
9551 } else if (codePoint <
0x800) {
9552 if ((units -=
2) <
0) break
9554 codePoint
>> 0x6 |
0xC0,
9555 codePoint &
0x3F |
0x80
9557 } else if (codePoint <
0x10000) {
9558 if ((units -=
3) <
0) break
9560 codePoint
>> 0xC |
0xE0,
9561 codePoint
>> 0x6 &
0x3F |
0x80,
9562 codePoint &
0x3F |
0x80
9564 } else if (codePoint <
0x110000) {
9565 if ((units -=
4) <
0) break
9567 codePoint
>> 0x12 |
0xF0,
9568 codePoint
>> 0xC &
0x3F |
0x80,
9569 codePoint
>> 0x6 &
0x3F |
0x80,
9570 codePoint &
0x3F |
0x80
9573 throw new Error('Invalid code point')
9580 function asciiToBytes (str) {
9582 for (var i =
0; i < str.length; ++i) {
9583 // Node's code seems to be doing this and not &
0x7F..
9584 byteArray.push(str.charCodeAt(i) &
0xFF)
9589 function utf16leToBytes (str, units) {
9592 for (var i =
0; i < str.length; ++i) {
9593 if ((units -=
2) <
0) break
9595 c = str.charCodeAt(i)
9605 function base64ToBytes (str) {
9606 return base64.toByteArray(base64clean(str))
9609 function blitBuffer (src, dst, offset, length) {
9610 for (var i =
0; i < length; ++i) {
9611 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9612 dst[i + offset] = src[i]
9617 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9618 function isArrayBufferView (obj) {
9619 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9622 function numberIsNaN (obj) {
9623 return obj !== obj // eslint-disable-line no-self-compare
9626 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9628 // Copyright Joyent, Inc. and other Node contributors.
9630 // Permission is hereby granted, free of charge, to any person obtaining a
9631 // copy of this software and associated documentation files (the
9632 // "Software"), to deal in the Software without restriction, including
9633 // without limitation the rights to use, copy, modify, merge, publish,
9634 // distribute, sublicense, and/or sell copies of the Software, and to permit
9635 // persons to whom the Software is furnished to do so, subject to the
9636 // following conditions:
9638 // The above copyright notice and this permission notice shall be included
9639 // in all copies or substantial portions of the Software.
9641 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9642 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9643 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9644 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9645 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9646 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9647 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9649 // NOTE: These type checking functions intentionally don't use `instanceof`
9650 // because it is fragile and can be easily faked with `Object.create()`.
9652 function isArray(arg) {
9653 if (Array.isArray) {
9654 return Array.isArray(arg);
9656 return objectToString(arg) === '[object Array]';
9658 exports.isArray = isArray;
9660 function isBoolean(arg) {
9661 return typeof arg === 'boolean';
9663 exports.isBoolean = isBoolean;
9665 function isNull(arg) {
9666 return arg === null;
9668 exports.isNull = isNull;
9670 function isNullOrUndefined(arg) {
9673 exports.isNullOrUndefined = isNullOrUndefined;
9675 function isNumber(arg) {
9676 return typeof arg === 'number';
9678 exports.isNumber = isNumber;
9680 function isString(arg) {
9681 return typeof arg === 'string';
9683 exports.isString = isString;
9685 function isSymbol(arg) {
9686 return typeof arg === 'symbol';
9688 exports.isSymbol = isSymbol;
9690 function isUndefined(arg) {
9691 return arg === void
0;
9693 exports.isUndefined = isUndefined;
9695 function isRegExp(re) {
9696 return objectToString(re) === '[object RegExp]';
9698 exports.isRegExp = isRegExp;
9700 function isObject(arg) {
9701 return typeof arg === 'object' && arg !== null;
9703 exports.isObject = isObject;
9705 function isDate(d) {
9706 return objectToString(d) === '[object Date]';
9708 exports.isDate = isDate;
9710 function isError(e) {
9711 return (objectToString(e) === '[object Error]' || e instanceof Error);
9713 exports.isError = isError;
9715 function isFunction(arg) {
9716 return typeof arg === 'function';
9718 exports.isFunction = isFunction;
9720 function isPrimitive(arg) {
9721 return arg === null ||
9722 typeof arg === 'boolean' ||
9723 typeof arg === 'number' ||
9724 typeof arg === 'string' ||
9725 typeof arg === 'symbol' || // ES6 symbol
9726 typeof arg === 'undefined';
9728 exports.isPrimitive = isPrimitive;
9730 exports.isBuffer = Buffer.isBuffer;
9732 function objectToString(o) {
9733 return Object.prototype.toString.call(o);
9736 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9737 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9738 // Copyright Joyent, Inc. and other Node contributors.
9740 // Permission is hereby granted, free of charge, to any person obtaining a
9741 // copy of this software and associated documentation files (the
9742 // "Software"), to deal in the Software without restriction, including
9743 // without limitation the rights to use, copy, modify, merge, publish,
9744 // distribute, sublicense, and/or sell copies of the Software, and to permit
9745 // persons to whom the Software is furnished to do so, subject to the
9746 // following conditions:
9748 // The above copyright notice and this permission notice shall be included
9749 // in all copies or substantial portions of the Software.
9751 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9752 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9753 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9754 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9755 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9756 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9757 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9759 function EventEmitter() {
9760 this._events = this._events || {};
9761 this._maxListeners = this._maxListeners || undefined;
9763 module.exports = EventEmitter;
9765 // Backwards-compat with node
0.10.x
9766 EventEmitter.EventEmitter = EventEmitter;
9768 EventEmitter.prototype._events = undefined;
9769 EventEmitter.prototype._maxListeners = undefined;
9771 // By default EventEmitters will print a warning if more than
10 listeners are
9772 // added to it. This is a useful default which helps finding memory leaks.
9773 EventEmitter.defaultMaxListeners =
10;
9775 // Obviously not all Emitters should be limited to
10. This function allows
9776 // that to be increased. Set to zero for unlimited.
9777 EventEmitter.prototype.setMaxListeners = function(n) {
9778 if (!isNumber(n) || n <
0 || isNaN(n))
9779 throw TypeError('n must be a positive number');
9780 this._maxListeners = n;
9784 EventEmitter.prototype.emit = function(type) {
9785 var er, handler, len, args, i, listeners;
9790 // If there is no 'error' event listener then throw.
9791 if (type === 'error') {
9792 if (!this._events.error ||
9793 (isObject(this._events.error) && !this._events.error.length)) {
9795 if (er instanceof Error) {
9796 throw er; // Unhandled 'error' event
9798 // At least give some kind of context to the user
9799 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9806 handler = this._events[type];
9808 if (isUndefined(handler))
9811 if (isFunction(handler)) {
9812 switch (arguments.length) {
9818 handler.call(this, arguments[
1]);
9821 handler.call(this, arguments[
1], arguments[
2]);
9825 args = Array.prototype.slice.call(arguments,
1);
9826 handler.apply(this, args);
9828 } else if (isObject(handler)) {
9829 args = Array.prototype.slice.call(arguments,
1);
9830 listeners = handler.slice();
9831 len = listeners.length;
9832 for (i =
0; i < len; i++)
9833 listeners[i].apply(this, args);
9839 EventEmitter.prototype.addListener = function(type, listener) {
9842 if (!isFunction(listener))
9843 throw TypeError('listener must be a function');
9848 // To avoid recursion in the case that type === "newListener"! Before
9849 // adding it to the listeners, first emit "newListener".
9850 if (this._events.newListener)
9851 this.emit('newListener', type,
9852 isFunction(listener.listener) ?
9853 listener.listener : listener);
9855 if (!this._events[type])
9856 // Optimize the case of one listener. Don't need the extra array object.
9857 this._events[type] = listener;
9858 else if (isObject(this._events[type]))
9859 // If we've already got an array, just append.
9860 this._events[type].push(listener);
9862 // Adding the second element, need to change to array.
9863 this._events[type] = [this._events[type], listener];
9865 // Check for listener leak
9866 if (isObject(this._events[type]) && !this._events[type].warned) {
9867 if (!isUndefined(this._maxListeners)) {
9868 m = this._maxListeners;
9870 m = EventEmitter.defaultMaxListeners;
9873 if (m && m
> 0 && this._events[type].length
> m) {
9874 this._events[type].warned = true;
9875 console.error('(node) warning: possible EventEmitter memory ' +
9876 'leak detected. %d listeners added. ' +
9877 'Use emitter.setMaxListeners() to increase limit.',
9878 this._events[type].length);
9879 if (typeof console.trace === 'function') {
9880 // not supported in IE
10
9889 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9891 EventEmitter.prototype.once = function(type, listener) {
9892 if (!isFunction(listener))
9893 throw TypeError('listener must be a function');
9898 this.removeListener(type, g);
9902 listener.apply(this, arguments);
9906 g.listener = listener;
9912 // emits a 'removeListener' event iff the listener was removed
9913 EventEmitter.prototype.removeListener = function(type, listener) {
9914 var list, position, length, i;
9916 if (!isFunction(listener))
9917 throw TypeError('listener must be a function');
9919 if (!this._events || !this._events[type])
9922 list = this._events[type];
9923 length = list.length;
9926 if (list === listener ||
9927 (isFunction(list.listener) && list.listener === listener)) {
9928 delete this._events[type];
9929 if (this._events.removeListener)
9930 this.emit('removeListener', type, listener);
9932 } else if (isObject(list)) {
9933 for (i = length; i--
> 0;) {
9934 if (list[i] === listener ||
9935 (list[i].listener && list[i].listener === listener)) {
9944 if (list.length ===
1) {
9946 delete this._events[type];
9948 list.splice(position,
1);
9951 if (this._events.removeListener)
9952 this.emit('removeListener', type, listener);
9958 EventEmitter.prototype.removeAllListeners = function(type) {
9964 // not listening for removeListener, no need to emit
9965 if (!this._events.removeListener) {
9966 if (arguments.length ===
0)
9968 else if (this._events[type])
9969 delete this._events[type];
9973 // emit removeListener for all listeners on all events
9974 if (arguments.length ===
0) {
9975 for (key in this._events) {
9976 if (key === 'removeListener') continue;
9977 this.removeAllListeners(key);
9979 this.removeAllListeners('removeListener');
9984 listeners = this._events[type];
9986 if (isFunction(listeners)) {
9987 this.removeListener(type, listeners);
9988 } else if (listeners) {
9990 while (listeners.length)
9991 this.removeListener(type, listeners[listeners.length -
1]);
9993 delete this._events[type];
9998 EventEmitter.prototype.listeners = function(type) {
10000 if (!this._events || !this._events[type])
10002 else if (isFunction(this._events[type]))
10003 ret = [this._events[type]];
10005 ret = this._events[type].slice();
10009 EventEmitter.prototype.listenerCount = function(type) {
10010 if (this._events) {
10011 var evlistener = this._events[type];
10013 if (isFunction(evlistener))
10015 else if (evlistener)
10016 return evlistener.length;
10021 EventEmitter.listenerCount = function(emitter, type) {
10022 return emitter.listenerCount(type);
10025 function isFunction(arg) {
10026 return typeof arg === 'function';
10029 function isNumber(arg) {
10030 return typeof arg === 'number';
10033 function isObject(arg) {
10034 return typeof arg === 'object' && arg !== null;
10037 function isUndefined(arg) {
10038 return arg === void
0;
10041 },{}],
7:[function(require,module,exports){
10042 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10044 var eLen = nBytes *
8 - mLen -
1
10045 var eMax = (
1 << eLen) -
1
10046 var eBias = eMax
>> 1
10048 var i = isLE ? (nBytes -
1) :
0
10049 var d = isLE ? -
1 :
1
10050 var s = buffer[offset + i]
10054 e = s & ((
1 << (-nBits)) -
1)
10057 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10059 m = e & ((
1 << (-nBits)) -
1)
10062 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10066 } else if (e === eMax) {
10067 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10069 m = m + Math.pow(
2, mLen)
10072 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10075 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10077 var eLen = nBytes *
8 - mLen -
1
10078 var eMax = (
1 << eLen) -
1
10079 var eBias = eMax
>> 1
10080 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10081 var i = isLE ?
0 : (nBytes -
1)
10082 var d = isLE ?
1 : -
1
10083 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10085 value = Math.abs(value)
10087 if (isNaN(value) || value === Infinity) {
10088 m = isNaN(value) ?
1 :
0
10091 e = Math.floor(Math.log(value) / Math.LN2)
10092 if (value * (c = Math.pow(
2, -e)) <
1) {
10096 if (e + eBias
>=
1) {
10099 value += rt * Math.pow(
2,
1 - eBias)
10101 if (value * c
>=
2) {
10106 if (e + eBias
>= eMax) {
10109 } else if (e + eBias
>=
1) {
10110 m = (value * c -
1) * Math.pow(
2, mLen)
10113 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10118 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10120 e = (e << mLen) | m
10122 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10124 buffer[offset + i - d] |= s *
128
10127 },{}],
8:[function(require,module,exports){
10128 if (typeof Object.create === 'function') {
10129 // implementation from standard node.js 'util' module
10130 module.exports = function inherits(ctor, superCtor) {
10131 ctor.super_ = superCtor
10132 ctor.prototype = Object.create(superCtor.prototype, {
10142 // old school shim for old browsers
10143 module.exports = function inherits(ctor, superCtor) {
10144 ctor.super_ = superCtor
10145 var TempCtor = function () {}
10146 TempCtor.prototype = superCtor.prototype
10147 ctor.prototype = new TempCtor()
10148 ctor.prototype.constructor = ctor
10152 },{}],
9:[function(require,module,exports){
10154 * Determine if an object is a Buffer
10156 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10160 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10161 // Object.prototype.constructor. Remove this eventually
10162 module.exports = function (obj) {
10163 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10166 function isBuffer (obj) {
10167 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10170 // For Node v0.10 support. Remove this eventually.
10171 function isSlowBuffer (obj) {
10172 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10175 },{}],
10:[function(require,module,exports){
10176 var toString = {}.toString;
10178 module.exports = Array.isArray || function (arr) {
10179 return toString.call(arr) == '[object Array]';
10182 },{}],
11:[function(require,module,exports){
10183 (function (process){
10186 if (!process.version ||
10187 process.version.indexOf('v0.') ===
0 ||
10188 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10189 module.exports = nextTick;
10191 module.exports = process.nextTick;
10194 function nextTick(fn, arg1, arg2, arg3) {
10195 if (typeof fn !== 'function') {
10196 throw new TypeError('"callback" argument must be a function');
10198 var len = arguments.length;
10203 return process.nextTick(fn);
10205 return process.nextTick(function afterTickOne() {
10206 fn.call(null, arg1);
10209 return process.nextTick(function afterTickTwo() {
10210 fn.call(null, arg1, arg2);
10213 return process.nextTick(function afterTickThree() {
10214 fn.call(null, arg1, arg2, arg3);
10217 args = new Array(len -
1);
10219 while (i < args.length) {
10220 args[i++] = arguments[i];
10222 return process.nextTick(function afterTick() {
10223 fn.apply(null, args);
10228 }).call(this,require('_process'))
10229 },{"_process":
12}],
12:[function(require,module,exports){
10230 // shim for using process in browser
10231 var process = module.exports = {};
10233 // cached from whatever global is present so that test runners that stub it
10234 // don't break things. But we need to wrap it in a try catch in case it is
10235 // wrapped in strict mode code which doesn't define any globals. It's inside a
10236 // function because try/catches deoptimize in certain engines.
10238 var cachedSetTimeout;
10239 var cachedClearTimeout;
10241 function defaultSetTimout() {
10242 throw new Error('setTimeout has not been defined');
10244 function defaultClearTimeout () {
10245 throw new Error('clearTimeout has not been defined');
10249 if (typeof setTimeout === 'function') {
10250 cachedSetTimeout = setTimeout;
10252 cachedSetTimeout = defaultSetTimout;
10255 cachedSetTimeout = defaultSetTimout;
10258 if (typeof clearTimeout === 'function') {
10259 cachedClearTimeout = clearTimeout;
10261 cachedClearTimeout = defaultClearTimeout;
10264 cachedClearTimeout = defaultClearTimeout;
10267 function runTimeout(fun) {
10268 if (cachedSetTimeout === setTimeout) {
10269 //normal enviroments in sane situations
10270 return setTimeout(fun,
0);
10272 // if setTimeout wasn't available but was latter defined
10273 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10274 cachedSetTimeout = setTimeout;
10275 return setTimeout(fun,
0);
10278 // when when somebody has screwed with setTimeout but no I.E. maddness
10279 return cachedSetTimeout(fun,
0);
10282 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10283 return cachedSetTimeout.call(null, fun,
0);
10285 // 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
10286 return cachedSetTimeout.call(this, fun,
0);
10292 function runClearTimeout(marker) {
10293 if (cachedClearTimeout === clearTimeout) {
10294 //normal enviroments in sane situations
10295 return clearTimeout(marker);
10297 // if clearTimeout wasn't available but was latter defined
10298 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10299 cachedClearTimeout = clearTimeout;
10300 return clearTimeout(marker);
10303 // when when somebody has screwed with setTimeout but no I.E. maddness
10304 return cachedClearTimeout(marker);
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 cachedClearTimeout.call(null, marker);
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 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10312 return cachedClearTimeout.call(this, marker);
10320 var draining = false;
10322 var queueIndex = -
1;
10324 function cleanUpNextTick() {
10325 if (!draining || !currentQueue) {
10329 if (currentQueue.length) {
10330 queue = currentQueue.concat(queue);
10334 if (queue.length) {
10339 function drainQueue() {
10343 var timeout = runTimeout(cleanUpNextTick);
10346 var len = queue.length;
10348 currentQueue = queue;
10350 while (++queueIndex < len) {
10351 if (currentQueue) {
10352 currentQueue[queueIndex].run();
10356 len = queue.length;
10358 currentQueue = null;
10360 runClearTimeout(timeout);
10363 process.nextTick = function (fun) {
10364 var args = new Array(arguments.length -
1);
10365 if (arguments.length
> 1) {
10366 for (var i =
1; i < arguments.length; i++) {
10367 args[i -
1] = arguments[i];
10370 queue.push(new Item(fun, args));
10371 if (queue.length ===
1 && !draining) {
10372 runTimeout(drainQueue);
10376 // v8 likes predictible objects
10377 function Item(fun, array) {
10379 this.array = array;
10381 Item.prototype.run = function () {
10382 this.fun.apply(null, this.array);
10384 process.title = 'browser';
10385 process.browser = true;
10388 process.version = ''; // empty string to avoid regexp issues
10389 process.versions = {};
10394 process.addListener = noop;
10395 process.once = noop;
10396 process.off = noop;
10397 process.removeListener = noop;
10398 process.removeAllListeners = noop;
10399 process.emit = noop;
10400 process.prependListener = noop;
10401 process.prependOnceListener = noop;
10403 process.listeners = function (name) { return [] }
10405 process.binding = function (name) {
10406 throw new Error('process.binding is not supported');
10409 process.cwd = function () { return '/' };
10410 process.chdir = function (dir) {
10411 throw new Error('process.chdir is not supported');
10413 process.umask = function() { return
0; };
10415 },{}],
13:[function(require,module,exports){
10416 module.exports = require('./lib/_stream_duplex.js');
10418 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10419 // Copyright Joyent, Inc. and other Node contributors.
10421 // Permission is hereby granted, free of charge, to any person obtaining a
10422 // copy of this software and associated documentation files (the
10423 //
"Software"), to deal in the Software without restriction, including
10424 // without limitation the rights to use, copy, modify, merge, publish,
10425 // distribute, sublicense, and/or sell copies of the Software, and to permit
10426 // persons to whom the Software is furnished to do so, subject to the
10427 // following conditions:
10429 // The above copyright notice and this permission notice shall be included
10430 // in all copies or substantial portions of the Software.
10432 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10433 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10434 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10435 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10436 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10437 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10438 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10440 // a duplex stream is just a stream that is both readable and writable.
10441 // Since JS doesn't have multiple prototypal inheritance, this class
10442 // prototypally inherits from Readable, and then parasitically from
10449 var processNextTick = require('process-nextick-args');
10453 var objectKeys = Object.keys || function (obj) {
10455 for (var key in obj) {
10461 module.exports = Duplex;
10464 var util = require('core-util-is');
10465 util.inherits = require('inherits');
10468 var Readable = require('./_stream_readable');
10469 var Writable = require('./_stream_writable');
10471 util.inherits(Duplex, Readable);
10473 var keys = objectKeys(Writable.prototype);
10474 for (var v =
0; v < keys.length; v++) {
10475 var method = keys[v];
10476 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10479 function Duplex(options) {
10480 if (!(this instanceof Duplex)) return new Duplex(options);
10482 Readable.call(this, options);
10483 Writable.call(this, options);
10485 if (options && options.readable === false) this.readable = false;
10487 if (options && options.writable === false) this.writable = false;
10489 this.allowHalfOpen = true;
10490 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10492 this.once('end', onend);
10495 // the no-half-open enforcer
10497 // if we allow half-open state, or if the writable side ended,
10499 if (this.allowHalfOpen || this._writableState.ended) return;
10501 // no more data can be written.
10502 // But allow more writes to happen in this tick.
10503 processNextTick(onEndNT, this);
10506 function onEndNT(self) {
10510 Object.defineProperty(Duplex.prototype, 'destroyed', {
10512 if (this._readableState === undefined || this._writableState === undefined) {
10515 return this._readableState.destroyed && this._writableState.destroyed;
10517 set: function (value) {
10518 // we ignore the value if the stream
10519 // has not been initialized yet
10520 if (this._readableState === undefined || this._writableState === undefined) {
10524 // backward compatibility, the user is explicitly
10525 // managing destroyed
10526 this._readableState.destroyed = value;
10527 this._writableState.destroyed = value;
10531 Duplex.prototype._destroy = function (err, cb) {
10535 processNextTick(cb, err);
10538 function forEach(xs, f) {
10539 for (var i =
0, l = xs.length; i < l; i++) {
10543 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10544 // Copyright Joyent, Inc. and other Node contributors.
10546 // Permission is hereby granted, free of charge, to any person obtaining a
10547 // copy of this software and associated documentation files (the
10548 // "Software"), to deal in the Software without restriction, including
10549 // without limitation the rights to use, copy, modify, merge, publish,
10550 // distribute, sublicense, and/or sell copies of the Software, and to permit
10551 // persons to whom the Software is furnished to do so, subject to the
10552 // following conditions:
10554 // The above copyright notice and this permission notice shall be included
10555 // in all copies or substantial portions of the Software.
10557 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10558 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10559 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10560 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10561 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10562 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10563 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10565 // a passthrough stream.
10566 // basically just the most minimal sort of Transform stream.
10567 // Every written chunk gets output as-is.
10571 module.exports = PassThrough;
10573 var Transform = require('./_stream_transform');
10576 var util = require('core-util-is');
10577 util.inherits = require('inherits');
10580 util.inherits(PassThrough, Transform);
10582 function PassThrough(options) {
10583 if (!(this instanceof PassThrough)) return new PassThrough(options);
10585 Transform.call(this, options);
10588 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10591 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10592 (function (process,global){
10593 // Copyright Joyent, Inc. and other Node contributors.
10595 // Permission is hereby granted, free of charge, to any person obtaining a
10596 // copy of this software and associated documentation files (the
10597 // "Software"), to deal in the Software without restriction, including
10598 // without limitation the rights to use, copy, modify, merge, publish,
10599 // distribute, sublicense, and/or sell copies of the Software, and to permit
10600 // persons to whom the Software is furnished to do so, subject to the
10601 // following conditions:
10603 // The above copyright notice and this permission notice shall be included
10604 // in all copies or substantial portions of the Software.
10606 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10607 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10608 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10609 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10610 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10611 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10612 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10618 var processNextTick = require('process-nextick-args');
10621 module.exports = Readable;
10624 var isArray = require('isarray');
10631 Readable.ReadableState = ReadableState;
10634 var EE = require('events').EventEmitter;
10636 var EElistenerCount = function (emitter, type) {
10637 return emitter.listeners(type).length;
10642 var Stream = require('./internal/streams/stream');
10645 // TODO(bmeurer): Change this back to const once hole checks are
10646 // properly optimized away early in Ignition+TurboFan.
10648 var Buffer = require('safe-buffer').Buffer;
10649 var OurUint8Array = global.Uint8Array || function () {};
10650 function _uint8ArrayToBuffer(chunk) {
10651 return Buffer.from(chunk);
10653 function _isUint8Array(obj) {
10654 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10659 var util = require('core-util-is');
10660 util.inherits = require('inherits');
10664 var debugUtil = require('util');
10665 var debug = void
0;
10666 if (debugUtil && debugUtil.debuglog) {
10667 debug = debugUtil.debuglog('stream');
10669 debug = function () {};
10673 var BufferList = require('./internal/streams/BufferList');
10674 var destroyImpl = require('./internal/streams/destroy');
10677 util.inherits(Readable, Stream);
10679 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10681 function prependListener(emitter, event, fn) {
10682 // Sadly this is not cacheable as some libraries bundle their own
10683 // event emitter implementation with them.
10684 if (typeof emitter.prependListener === 'function') {
10685 return emitter.prependListener(event, fn);
10687 // This is a hack to make sure that our error handler is attached before any
10688 // userland ones. NEVER DO THIS. This is here only because this code needs
10689 // to continue to work with older versions of Node.js that do not include
10690 // the prependListener() method. The goal is to eventually remove this hack.
10691 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]];
10695 function ReadableState(options, stream) {
10696 Duplex = Duplex || require('./_stream_duplex');
10698 options = options || {};
10700 // object stream flag. Used to make read(n) ignore n and to
10701 // make all the buffer merging and length checks go away
10702 this.objectMode = !!options.objectMode;
10704 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10706 // the point at which it stops calling _read() to fill the buffer
10707 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10708 var hwm = options.highWaterMark;
10709 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10710 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10713 this.highWaterMark = Math.floor(this.highWaterMark);
10715 // A linked list is used to store data chunks instead of an array because the
10716 // linked list can remove elements from the beginning faster than
10718 this.buffer = new BufferList();
10721 this.pipesCount =
0;
10722 this.flowing = null;
10723 this.ended = false;
10724 this.endEmitted = false;
10725 this.reading = false;
10727 // a flag to be able to tell if the event 'readable'/'data' is emitted
10728 // immediately, or on a later tick. We set this to true at first, because
10729 // any actions that shouldn't happen until "later" should generally also
10730 // not happen before the first read call.
10733 // whenever we return null, then we set a flag to say
10734 // that we're awaiting a 'readable' event emission.
10735 this.needReadable = false;
10736 this.emittedReadable = false;
10737 this.readableListening = false;
10738 this.resumeScheduled = false;
10740 // has it been destroyed
10741 this.destroyed = false;
10743 // Crypto is kind of old and crusty. Historically, its default string
10744 // encoding is 'binary' so we have to make this configurable.
10745 // Everything else in the universe uses 'utf8', though.
10746 this.defaultEncoding = options.defaultEncoding || 'utf8';
10748 // the number of writers that are awaiting a drain event in .pipe()s
10749 this.awaitDrain =
0;
10751 // if true, a maybeReadMore has been scheduled
10752 this.readingMore = false;
10754 this.decoder = null;
10755 this.encoding = null;
10756 if (options.encoding) {
10757 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10758 this.decoder = new StringDecoder(options.encoding);
10759 this.encoding = options.encoding;
10763 function Readable(options) {
10764 Duplex = Duplex || require('./_stream_duplex');
10766 if (!(this instanceof Readable)) return new Readable(options);
10768 this._readableState = new ReadableState(options, this);
10771 this.readable = true;
10774 if (typeof options.read === 'function') this._read = options.read;
10776 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10782 Object.defineProperty(Readable.prototype, 'destroyed', {
10784 if (this._readableState === undefined) {
10787 return this._readableState.destroyed;
10789 set: function (value) {
10790 // we ignore the value if the stream
10791 // has not been initialized yet
10792 if (!this._readableState) {
10796 // backward compatibility, the user is explicitly
10797 // managing destroyed
10798 this._readableState.destroyed = value;
10802 Readable.prototype.destroy = destroyImpl.destroy;
10803 Readable.prototype._undestroy = destroyImpl.undestroy;
10804 Readable.prototype._destroy = function (err, cb) {
10809 // Manually shove something into the read() buffer.
10810 // This returns true if the highWaterMark has not been hit yet,
10811 // similar to how Writable.write() returns true if you should
10812 // write() some more.
10813 Readable.prototype.push = function (chunk, encoding) {
10814 var state = this._readableState;
10815 var skipChunkCheck;
10817 if (!state.objectMode) {
10818 if (typeof chunk === 'string') {
10819 encoding = encoding || state.defaultEncoding;
10820 if (encoding !== state.encoding) {
10821 chunk = Buffer.from(chunk, encoding);
10824 skipChunkCheck = true;
10827 skipChunkCheck = true;
10830 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10833 // Unshift should *always* be something directly out of read()
10834 Readable.prototype.unshift = function (chunk) {
10835 return readableAddChunk(this, chunk, null, true, false);
10838 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10839 var state = stream._readableState;
10840 if (chunk === null) {
10841 state.reading = false;
10842 onEofChunk(stream, state);
10845 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10847 stream.emit('error', er);
10848 } else if (state.objectMode || chunk && chunk.length
> 0) {
10849 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10850 chunk = _uint8ArrayToBuffer(chunk);
10854 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10855 } else if (state.ended) {
10856 stream.emit('error', new Error('stream.push() after EOF'));
10858 state.reading = false;
10859 if (state.decoder && !encoding) {
10860 chunk = state.decoder.write(chunk);
10861 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10863 addChunk(stream, state, chunk, false);
10866 } else if (!addToFront) {
10867 state.reading = false;
10871 return needMoreData(state);
10874 function addChunk(stream, state, chunk, addToFront) {
10875 if (state.flowing && state.length ===
0 && !state.sync) {
10876 stream.emit('data', chunk);
10879 // update the buffer info.
10880 state.length += state.objectMode ?
1 : chunk.length;
10881 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10883 if (state.needReadable) emitReadable(stream);
10885 maybeReadMore(stream, state);
10888 function chunkInvalid(state, chunk) {
10890 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10891 er = new TypeError('Invalid non-string/buffer chunk');
10896 // if it's past the high water mark, we can push in some more.
10897 // Also, if we have no data yet, we can stand some
10898 // more bytes. This is to work around cases where hwm=
0,
10899 // such as the repl. Also, if the push() triggered a
10900 // readable event, and the user called read(largeNumber) such that
10901 // needReadable was set, then we ought to push more, so that another
10902 // 'readable' event will be triggered.
10903 function needMoreData(state) {
10904 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10907 Readable.prototype.isPaused = function () {
10908 return this._readableState.flowing === false;
10911 // backwards compatibility.
10912 Readable.prototype.setEncoding = function (enc) {
10913 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10914 this._readableState.decoder = new StringDecoder(enc);
10915 this._readableState.encoding = enc;
10919 // Don't raise the hwm
> 8MB
10920 var MAX_HWM =
0x800000;
10921 function computeNewHighWaterMark(n) {
10922 if (n
>= MAX_HWM) {
10925 // Get the next highest power of
2 to prevent increasing hwm excessively in
10938 // This function is designed to be inlinable, so please take care when making
10939 // changes to the function body.
10940 function howMuchToRead(n, state) {
10941 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10942 if (state.objectMode) return
1;
10944 // Only flow one buffer at a time
10945 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10947 // If we're asking for more than the current hwm, then raise the hwm.
10948 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10949 if (n <= state.length) return n;
10950 // Don't have enough
10951 if (!state.ended) {
10952 state.needReadable = true;
10955 return state.length;
10958 // you can override either this method, or the async _read(n) below.
10959 Readable.prototype.read = function (n) {
10961 n = parseInt(n,
10);
10962 var state = this._readableState;
10965 if (n !==
0) state.emittedReadable = false;
10967 // if we're doing read(
0) to trigger a readable event, but we
10968 // already have a bunch of data in the buffer, then just trigger
10969 // the 'readable' event and move on.
10970 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10971 debug('read: emitReadable', state.length, state.ended);
10972 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10976 n = howMuchToRead(n, state);
10978 // if we've ended, and we're now clear, then finish it up.
10979 if (n ===
0 && state.ended) {
10980 if (state.length ===
0) endReadable(this);
10984 // All the actual chunk generation logic needs to be
10985 // *below* the call to _read. The reason is that in certain
10986 // synthetic stream cases, such as passthrough streams, _read
10987 // may be a completely synchronous operation which may change
10988 // the state of the read buffer, providing enough data when
10989 // before there was *not* enough.
10991 // So, the steps are:
10992 //
1. Figure out what the state of things will be after we do
10993 // a read from the buffer.
10995 //
2. If that resulting state will trigger a _read, then call _read.
10996 // Note that this may be asynchronous, or synchronous. Yes, it is
10997 // deeply ugly to write APIs this way, but that still doesn't mean
10998 // that the Readable class should behave improperly, as streams are
10999 // designed to be sync/async agnostic.
11000 // Take note if the _read call is sync or async (ie, if the read call
11001 // has returned yet), so that we know whether or not it's safe to emit
11004 //
3. Actually pull the requested chunks out of the buffer and return.
11006 // if we need a readable event, then we need to do some reading.
11007 var doRead = state.needReadable;
11008 debug('need readable', doRead);
11010 // if we currently have less than the highWaterMark, then also read some
11011 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11013 debug('length less than watermark', doRead);
11016 // however, if we've ended, then there's no point, and if we're already
11017 // reading, then it's unnecessary.
11018 if (state.ended || state.reading) {
11020 debug('reading or ended', doRead);
11021 } else if (doRead) {
11023 state.reading = true;
11025 // if the length is currently zero, then we *need* a readable event.
11026 if (state.length ===
0) state.needReadable = true;
11027 // call internal read method
11028 this._read(state.highWaterMark);
11029 state.sync = false;
11030 // If _read pushed data synchronously, then `reading` will be false,
11031 // and we need to re-evaluate how much data we can return to the user.
11032 if (!state.reading) n = howMuchToRead(nOrig, state);
11036 if (n
> 0) ret = fromList(n, state);else ret = null;
11038 if (ret === null) {
11039 state.needReadable = true;
11045 if (state.length ===
0) {
11046 // If we have nothing in the buffer, then we want to know
11047 // as soon as we *do* get something into the buffer.
11048 if (!state.ended) state.needReadable = true;
11050 // If we tried to read() past the EOF, then emit end on the next tick.
11051 if (nOrig !== n && state.ended) endReadable(this);
11054 if (ret !== null) this.emit('data', ret);
11059 function onEofChunk(stream, state) {
11060 if (state.ended) return;
11061 if (state.decoder) {
11062 var chunk = state.decoder.end();
11063 if (chunk && chunk.length) {
11064 state.buffer.push(chunk);
11065 state.length += state.objectMode ?
1 : chunk.length;
11068 state.ended = true;
11070 // emit 'readable' now to make sure it gets picked up.
11071 emitReadable(stream);
11074 // Don't emit readable right away in sync mode, because this can trigger
11075 // another read() call =
> stack overflow. This way, it might trigger
11076 // a nextTick recursion warning, but that's not so bad.
11077 function emitReadable(stream) {
11078 var state = stream._readableState;
11079 state.needReadable = false;
11080 if (!state.emittedReadable) {
11081 debug('emitReadable', state.flowing);
11082 state.emittedReadable = true;
11083 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11087 function emitReadable_(stream) {
11088 debug('emit readable');
11089 stream.emit('readable');
11093 // at this point, the user has presumably seen the 'readable' event,
11094 // and called read() to consume some data. that may have triggered
11095 // in turn another _read(n) call, in which case reading = true if
11096 // it's in progress.
11097 // However, if we're not ended, or reading, and the length < hwm,
11098 // then go ahead and try to read some more preemptively.
11099 function maybeReadMore(stream, state) {
11100 if (!state.readingMore) {
11101 state.readingMore = true;
11102 processNextTick(maybeReadMore_, stream, state);
11106 function maybeReadMore_(stream, state) {
11107 var len = state.length;
11108 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11109 debug('maybeReadMore read
0');
11111 if (len === state.length)
11112 // didn't get any data, stop spinning.
11113 break;else len = state.length;
11115 state.readingMore = false;
11118 // abstract method. to be overridden in specific implementation classes.
11119 // call cb(er, data) where data is <= n in length.
11120 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11121 // arbitrary, and perhaps not very meaningful.
11122 Readable.prototype._read = function (n) {
11123 this.emit('error', new Error('_read() is not implemented'));
11126 Readable.prototype.pipe = function (dest, pipeOpts) {
11128 var state = this._readableState;
11130 switch (state.pipesCount) {
11132 state.pipes = dest;
11135 state.pipes = [state.pipes, dest];
11138 state.pipes.push(dest);
11141 state.pipesCount +=
1;
11142 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11144 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11146 var endFn = doEnd ? onend : unpipe;
11147 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11149 dest.on('unpipe', onunpipe);
11150 function onunpipe(readable, unpipeInfo) {
11152 if (readable === src) {
11153 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11154 unpipeInfo.hasUnpiped = true;
11165 // when the dest drains, it reduces the awaitDrain counter
11166 // on the source. This would be more elegant with a .once()
11167 // handler in flow(), but adding and removing repeatedly is
11169 var ondrain = pipeOnDrain(src);
11170 dest.on('drain', ondrain);
11172 var cleanedUp = false;
11173 function cleanup() {
11175 // cleanup event handlers once the pipe is broken
11176 dest.removeListener('close', onclose);
11177 dest.removeListener('finish', onfinish);
11178 dest.removeListener('drain', ondrain);
11179 dest.removeListener('error', onerror);
11180 dest.removeListener('unpipe', onunpipe);
11181 src.removeListener('end', onend);
11182 src.removeListener('end', unpipe);
11183 src.removeListener('data', ondata);
11187 // if the reader is waiting for a drain event from this
11188 // specific writer, then it would cause it to never start
11190 // So, if this is awaiting a drain, then we just call it now.
11191 // If we don't know, then assume that we are waiting for one.
11192 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11195 // If the user pushes more data while we're writing to dest then we'll end up
11196 // in ondata again. However, we only want to increase awaitDrain once because
11197 // dest will only emit one 'drain' event for the multiple writes.
11198 // =
> Introduce a guard on increasing awaitDrain.
11199 var increasedAwaitDrain = false;
11200 src.on('data', ondata);
11201 function ondata(chunk) {
11203 increasedAwaitDrain = false;
11204 var ret = dest.write(chunk);
11205 if (false === ret && !increasedAwaitDrain) {
11206 // If the user unpiped during `dest.write()`, it is possible
11207 // to get stuck in a permanently paused state if that write
11208 // also returned false.
11209 // =
> Check whether `dest` is still a piping destination.
11210 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11211 debug('false write response, pause', src._readableState.awaitDrain);
11212 src._readableState.awaitDrain++;
11213 increasedAwaitDrain = true;
11219 // if the dest has an error, then stop piping into it.
11220 // however, don't suppress the throwing behavior for this.
11221 function onerror(er) {
11222 debug('onerror', er);
11224 dest.removeListener('error', onerror);
11225 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11228 // Make sure our error handler is attached before userland ones.
11229 prependListener(dest, 'error', onerror);
11231 // Both close and finish should trigger unpipe, but only once.
11232 function onclose() {
11233 dest.removeListener('finish', onfinish);
11236 dest.once('close', onclose);
11237 function onfinish() {
11239 dest.removeListener('close', onclose);
11242 dest.once('finish', onfinish);
11244 function unpipe() {
11249 // tell the dest that it's being piped to
11250 dest.emit('pipe', src);
11252 // start the flow if it hasn't been started already.
11253 if (!state.flowing) {
11254 debug('pipe resume');
11261 function pipeOnDrain(src) {
11262 return function () {
11263 var state = src._readableState;
11264 debug('pipeOnDrain', state.awaitDrain);
11265 if (state.awaitDrain) state.awaitDrain--;
11266 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11267 state.flowing = true;
11273 Readable.prototype.unpipe = function (dest) {
11274 var state = this._readableState;
11275 var unpipeInfo = { hasUnpiped: false };
11277 // if we're not piping anywhere, then do nothing.
11278 if (state.pipesCount ===
0) return this;
11280 // just one destination. most common case.
11281 if (state.pipesCount ===
1) {
11282 // passed in one, but it's not the right one.
11283 if (dest && dest !== state.pipes) return this;
11285 if (!dest) dest = state.pipes;
11288 state.pipes = null;
11289 state.pipesCount =
0;
11290 state.flowing = false;
11291 if (dest) dest.emit('unpipe', this, unpipeInfo);
11295 // slow case. multiple pipe destinations.
11299 var dests = state.pipes;
11300 var len = state.pipesCount;
11301 state.pipes = null;
11302 state.pipesCount =
0;
11303 state.flowing = false;
11305 for (var i =
0; i < len; i++) {
11306 dests[i].emit('unpipe', this, unpipeInfo);
11310 // try to find the right one.
11311 var index = indexOf(state.pipes, dest);
11312 if (index === -
1) return this;
11314 state.pipes.splice(index,
1);
11315 state.pipesCount -=
1;
11316 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11318 dest.emit('unpipe', this, unpipeInfo);
11323 // set up data events if they are asked for
11324 // Ensure readable listeners eventually get something
11325 Readable.prototype.on = function (ev, fn) {
11326 var res = Stream.prototype.on.call(this, ev, fn);
11328 if (ev === 'data') {
11329 // Start flowing on next tick if stream isn't explicitly paused
11330 if (this._readableState.flowing !== false) this.resume();
11331 } else if (ev === 'readable') {
11332 var state = this._readableState;
11333 if (!state.endEmitted && !state.readableListening) {
11334 state.readableListening = state.needReadable = true;
11335 state.emittedReadable = false;
11336 if (!state.reading) {
11337 processNextTick(nReadingNextTick, this);
11338 } else if (state.length) {
11339 emitReadable(this);
11346 Readable.prototype.addListener = Readable.prototype.on;
11348 function nReadingNextTick(self) {
11349 debug('readable nexttick read
0');
11353 // pause() and resume() are remnants of the legacy readable stream API
11354 // If the user uses them, then switch into old mode.
11355 Readable.prototype.resume = function () {
11356 var state = this._readableState;
11357 if (!state.flowing) {
11359 state.flowing = true;
11360 resume(this, state);
11365 function resume(stream, state) {
11366 if (!state.resumeScheduled) {
11367 state.resumeScheduled = true;
11368 processNextTick(resume_, stream, state);
11372 function resume_(stream, state) {
11373 if (!state.reading) {
11374 debug('resume read
0');
11378 state.resumeScheduled = false;
11379 state.awaitDrain =
0;
11380 stream.emit('resume');
11382 if (state.flowing && !state.reading) stream.read(
0);
11385 Readable.prototype.pause = function () {
11386 debug('call pause flowing=%j', this._readableState.flowing);
11387 if (false !== this._readableState.flowing) {
11389 this._readableState.flowing = false;
11390 this.emit('pause');
11395 function flow(stream) {
11396 var state = stream._readableState;
11397 debug('flow', state.flowing);
11398 while (state.flowing && stream.read() !== null) {}
11401 // wrap an old-style stream as the async data source.
11402 // This is *not* part of the readable stream interface.
11403 // It is an ugly unfortunate mess of history.
11404 Readable.prototype.wrap = function (stream) {
11405 var state = this._readableState;
11406 var paused = false;
11409 stream.on('end', function () {
11410 debug('wrapped end');
11411 if (state.decoder && !state.ended) {
11412 var chunk = state.decoder.end();
11413 if (chunk && chunk.length) self.push(chunk);
11419 stream.on('data', function (chunk) {
11420 debug('wrapped data');
11421 if (state.decoder) chunk = state.decoder.write(chunk);
11423 // don't skip over falsy values in objectMode
11424 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11426 var ret = self.push(chunk);
11433 // proxy all the other methods.
11434 // important when wrapping filters and duplexes.
11435 for (var i in stream) {
11436 if (this[i] === undefined && typeof stream[i] === 'function') {
11437 this[i] = function (method) {
11438 return function () {
11439 return stream[method].apply(stream, arguments);
11445 // proxy certain important events.
11446 for (var n =
0; n < kProxyEvents.length; n++) {
11447 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11450 // when we try to consume some more bytes, simply unpause the
11451 // underlying stream.
11452 self._read = function (n) {
11453 debug('wrapped _read', n);
11463 // exposed for testing purposes only.
11464 Readable._fromList = fromList;
11466 // Pluck off n bytes from an array of buffers.
11467 // Length is the combined lengths of all the buffers in the list.
11468 // This function is designed to be inlinable, so please take care when making
11469 // changes to the function body.
11470 function fromList(n, state) {
11471 // nothing buffered
11472 if (state.length ===
0) return null;
11475 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11476 // read it all, truncate the list
11477 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);
11478 state.buffer.clear();
11480 // read part of list
11481 ret = fromListPartial(n, state.buffer, state.decoder);
11487 // Extracts only enough buffered data to satisfy the amount requested.
11488 // This function is designed to be inlinable, so please take care when making
11489 // changes to the function body.
11490 function fromListPartial(n, list, hasStrings) {
11492 if (n < list.head.data.length) {
11493 // slice is the same for buffers and strings
11494 ret = list.head.data.slice(
0, n);
11495 list.head.data = list.head.data.slice(n);
11496 } else if (n === list.head.data.length) {
11497 // first chunk is a perfect match
11498 ret = list.shift();
11500 // result spans more than one buffer
11501 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11506 // Copies a specified amount of characters from the list of buffered data
11508 // This function is designed to be inlinable, so please take care when making
11509 // changes to the function body.
11510 function copyFromBufferString(n, list) {
11515 while (p = p.next) {
11517 var nb = n
> str.length ? str.length : n;
11518 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11521 if (nb === str.length) {
11523 if (p.next) list.head = p.next;else list.head = list.tail = null;
11526 p.data = str.slice(nb);
11536 // Copies a specified amount of bytes from the list of buffered data chunks.
11537 // This function is designed to be inlinable, so please take care when making
11538 // changes to the function body.
11539 function copyFromBuffer(n, list) {
11540 var ret = Buffer.allocUnsafe(n);
11544 n -= p.data.length;
11545 while (p = p.next) {
11547 var nb = n
> buf.length ? buf.length : n;
11548 buf.copy(ret, ret.length - n,
0, nb);
11551 if (nb === buf.length) {
11553 if (p.next) list.head = p.next;else list.head = list.tail = null;
11556 p.data = buf.slice(nb);
11566 function endReadable(stream) {
11567 var state = stream._readableState;
11569 // If we get here before consuming all the bytes, then that is a
11570 // bug in node. Should never happen.
11571 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11573 if (!state.endEmitted) {
11574 state.ended = true;
11575 processNextTick(endReadableNT, state, stream);
11579 function endReadableNT(state, stream) {
11580 // Check that we didn't get one last unshift.
11581 if (!state.endEmitted && state.length ===
0) {
11582 state.endEmitted = true;
11583 stream.readable = false;
11584 stream.emit('end');
11588 function forEach(xs, f) {
11589 for (var i =
0, l = xs.length; i < l; i++) {
11594 function indexOf(xs, x) {
11595 for (var i =
0, l = xs.length; i < l; i++) {
11596 if (xs[i] === x) return i;
11600 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11601 },{
"./_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){
11602 // Copyright Joyent, Inc. and other Node contributors.
11604 // Permission is hereby granted, free of charge, to any person obtaining a
11605 // copy of this software and associated documentation files (the
11606 //
"Software"), to deal in the Software without restriction, including
11607 // without limitation the rights to use, copy, modify, merge, publish,
11608 // distribute, sublicense, and/or sell copies of the Software, and to permit
11609 // persons to whom the Software is furnished to do so, subject to the
11610 // following conditions:
11612 // The above copyright notice and this permission notice shall be included
11613 // in all copies or substantial portions of the Software.
11615 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11616 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11617 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11618 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11619 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11620 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11621 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11623 // a transform stream is a readable/writable stream where you do
11624 // something with the data. Sometimes it's called a
"filter",
11625 // but that's not a great name for it, since that implies a thing where
11626 // some bits pass through, and others are simply ignored. (That would
11627 // be a valid example of a transform, of course.)
11629 // While the output is causally related to the input, it's not a
11630 // necessarily symmetric or synchronous transformation. For example,
11631 // a zlib stream might take multiple plain-text writes(), and then
11632 // emit a single compressed chunk some time in the future.
11634 // Here's how this works:
11636 // The Transform stream has all the aspects of the readable and writable
11637 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11638 // internally, and returns false if there's a lot of pending writes
11639 // buffered up. When you call read(), that calls _read(n) until
11640 // there's enough pending readable data buffered up.
11642 // In a transform stream, the written data is placed in a buffer. When
11643 // _read(n) is called, it transforms the queued up data, calling the
11644 // buffered _write cb's as it consumes chunks. If consuming a single
11645 // written chunk would result in multiple output chunks, then the first
11646 // outputted bit calls the readcb, and subsequent chunks just go into
11647 // the read buffer, and will cause it to emit 'readable' if necessary.
11649 // This way, back-pressure is actually determined by the reading side,
11650 // since _read has to be called to start processing a new chunk. However,
11651 // a pathological inflate type of transform can cause excessive buffering
11652 // here. For example, imagine a stream where every byte of input is
11653 // interpreted as an integer from
0-
255, and then results in that many
11654 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11655 //
1kb of data being output. In this case, you could write a very small
11656 // amount of input, and end up with a very large amount of output. In
11657 // such a pathological inflating mechanism, there'd be no way to tell
11658 // the system to stop doing the transform. A single
4MB write could
11659 // cause the system to run out of memory.
11661 // However, even in such a pathological case, only a single written chunk
11662 // would be consumed, and then the rest would wait (un-transformed) until
11663 // the results of the previous transformed chunk were consumed.
11667 module.exports = Transform;
11669 var Duplex = require('./_stream_duplex');
11672 var util = require('core-util-is');
11673 util.inherits = require('inherits');
11676 util.inherits(Transform, Duplex);
11678 function TransformState(stream) {
11679 this.afterTransform = function (er, data) {
11680 return afterTransform(stream, er, data);
11683 this.needTransform = false;
11684 this.transforming = false;
11685 this.writecb = null;
11686 this.writechunk = null;
11687 this.writeencoding = null;
11690 function afterTransform(stream, er, data) {
11691 var ts = stream._transformState;
11692 ts.transforming = false;
11694 var cb = ts.writecb;
11697 return stream.emit('error', new Error('write callback called multiple times'));
11700 ts.writechunk = null;
11703 if (data !== null && data !== undefined) stream.push(data);
11707 var rs = stream._readableState;
11708 rs.reading = false;
11709 if (rs.needReadable || rs.length < rs.highWaterMark) {
11710 stream._read(rs.highWaterMark);
11714 function Transform(options) {
11715 if (!(this instanceof Transform)) return new Transform(options);
11717 Duplex.call(this, options);
11719 this._transformState = new TransformState(this);
11723 // start out asking for a readable event once data is transformed.
11724 this._readableState.needReadable = true;
11726 // we have implemented the _read method, and done the other things
11727 // that Readable wants before the first _read call, so unset the
11728 // sync guard flag.
11729 this._readableState.sync = false;
11732 if (typeof options.transform === 'function') this._transform = options.transform;
11734 if (typeof options.flush === 'function') this._flush = options.flush;
11737 // When the writable side finishes, then flush out anything remaining.
11738 this.once('prefinish', function () {
11739 if (typeof this._flush === 'function') this._flush(function (er, data) {
11740 done(stream, er, data);
11741 });else done(stream);
11745 Transform.prototype.push = function (chunk, encoding) {
11746 this._transformState.needTransform = false;
11747 return Duplex.prototype.push.call(this, chunk, encoding);
11750 // This is the part where you do stuff!
11751 // override this function in implementation classes.
11752 // 'chunk' is an input chunk.
11754 // Call `push(newChunk)` to pass along transformed output
11755 // to the readable side. You may call 'push' zero or more times.
11757 // Call `cb(err)` when you are done with this chunk. If you pass
11758 // an error, then that'll put the hurt on the whole operation. If you
11759 // never call cb(), then you'll never get another chunk.
11760 Transform.prototype._transform = function (chunk, encoding, cb) {
11761 throw new Error('_transform() is not implemented');
11764 Transform.prototype._write = function (chunk, encoding, cb) {
11765 var ts = this._transformState;
11767 ts.writechunk = chunk;
11768 ts.writeencoding = encoding;
11769 if (!ts.transforming) {
11770 var rs = this._readableState;
11771 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11775 // Doesn't matter what the args are here.
11776 // _transform does all the work.
11777 // That we got here means that the readable side wants more data.
11778 Transform.prototype._read = function (n) {
11779 var ts = this._transformState;
11781 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11782 ts.transforming = true;
11783 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11785 // mark that we need a transform, so that any data that comes in
11786 // will get processed, now that we've asked for it.
11787 ts.needTransform = true;
11791 Transform.prototype._destroy = function (err, cb) {
11794 Duplex.prototype._destroy.call(this, err, function (err2) {
11796 _this.emit('close');
11800 function done(stream, er, data) {
11801 if (er) return stream.emit('error', er);
11803 if (data !== null && data !== undefined) stream.push(data);
11805 // if there's nothing in the write buffer, then that means
11806 // that nothing more will ever be provided
11807 var ws = stream._writableState;
11808 var ts = stream._transformState;
11810 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11812 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11814 return stream.push(null);
11816 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11817 (function (process,global){
11818 // Copyright Joyent, Inc. and other Node contributors.
11820 // Permission is hereby granted, free of charge, to any person obtaining a
11821 // copy of this software and associated documentation files (the
11822 // "Software"), to deal in the Software without restriction, including
11823 // without limitation the rights to use, copy, modify, merge, publish,
11824 // distribute, sublicense, and/or sell copies of the Software, and to permit
11825 // persons to whom the Software is furnished to do so, subject to the
11826 // following conditions:
11828 // The above copyright notice and this permission notice shall be included
11829 // in all copies or substantial portions of the Software.
11831 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11832 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11833 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11834 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11835 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11836 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11837 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11839 // A bit simpler than readable streams.
11840 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11841 // the drain event emission and buffering.
11847 var processNextTick = require('process-nextick-args');
11850 module.exports = Writable;
11852 /*
<replacement> */
11853 function WriteReq(chunk, encoding, cb) {
11854 this.chunk = chunk;
11855 this.encoding = encoding;
11856 this.callback = cb;
11860 // It seems a linked list but it is not
11861 // there will be only
2 of these for each stream
11862 function CorkedRequest(state) {
11867 this.finish = function () {
11868 onCorkedFinish(_this, state);
11871 /*
</replacement> */
11874 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11881 Writable.WritableState = WritableState;
11884 var util = require('core-util-is');
11885 util.inherits = require('inherits');
11889 var internalUtil = {
11890 deprecate: require('util-deprecate')
11895 var Stream = require('./internal/streams/stream');
11899 var Buffer = require('safe-buffer').Buffer;
11900 var OurUint8Array = global.Uint8Array || function () {};
11901 function _uint8ArrayToBuffer(chunk) {
11902 return Buffer.from(chunk);
11904 function _isUint8Array(obj) {
11905 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11909 var destroyImpl = require('./internal/streams/destroy');
11911 util.inherits(Writable, Stream);
11915 function WritableState(options, stream) {
11916 Duplex = Duplex || require('./_stream_duplex');
11918 options = options || {};
11920 // object stream flag to indicate whether or not this stream
11921 // contains buffers or objects.
11922 this.objectMode = !!options.objectMode;
11924 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11926 // the point at which write() starts returning false
11927 // Note:
0 is a valid value, means that we always return false if
11928 // the entire buffer is not flushed immediately on write()
11929 var hwm = options.highWaterMark;
11930 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11931 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11934 this.highWaterMark = Math.floor(this.highWaterMark);
11936 // if _final has been called
11937 this.finalCalled = false;
11939 // drain event flag.
11940 this.needDrain = false;
11941 // at the start of calling end()
11942 this.ending = false;
11943 // when end() has been called, and returned
11944 this.ended = false;
11945 // when 'finish' is emitted
11946 this.finished = false;
11948 // has it been destroyed
11949 this.destroyed = false;
11951 // should we decode strings into buffers before passing to _write?
11952 // this is here so that some node-core streams can optimize string
11953 // handling at a lower level.
11954 var noDecode = options.decodeStrings === false;
11955 this.decodeStrings = !noDecode;
11957 // Crypto is kind of old and crusty. Historically, its default string
11958 // encoding is 'binary' so we have to make this configurable.
11959 // Everything else in the universe uses 'utf8', though.
11960 this.defaultEncoding = options.defaultEncoding || 'utf8';
11962 // not an actual buffer we keep track of, but a measurement
11963 // of how much we're waiting to get pushed to some underlying
11967 // a flag to see when we're in the middle of a write.
11968 this.writing = false;
11970 // when true all writes will be buffered until .uncork() call
11973 // a flag to be able to tell if the onwrite cb is called immediately,
11974 // or on a later tick. We set this to true at first, because any
11975 // actions that shouldn't happen until "later" should generally also
11976 // not happen before the first write call.
11979 // a flag to know if we're processing previously buffered items, which
11980 // may call the _write() callback in the same tick, so that we don't
11981 // end up in an overlapped onwrite situation.
11982 this.bufferProcessing = false;
11984 // the callback that's passed to _write(chunk,cb)
11985 this.onwrite = function (er) {
11986 onwrite(stream, er);
11989 // the callback that the user supplies to write(chunk,encoding,cb)
11990 this.writecb = null;
11992 // the amount that is being written when _write is called.
11995 this.bufferedRequest = null;
11996 this.lastBufferedRequest = null;
11998 // number of pending user-supplied write callbacks
11999 // this must be
0 before 'finish' can be emitted
12000 this.pendingcb =
0;
12002 // emit prefinish if the only thing we're waiting for is _write cbs
12003 // This is relevant for synchronous Transform streams
12004 this.prefinished = false;
12006 // True if the error was already emitted and should not be thrown again
12007 this.errorEmitted = false;
12009 // count buffered requests
12010 this.bufferedRequestCount =
0;
12012 // allocate the first CorkedRequest, there is always
12013 // one allocated and free to use, and we maintain at most two
12014 this.corkedRequestsFree = new CorkedRequest(this);
12017 WritableState.prototype.getBuffer = function getBuffer() {
12018 var current = this.bufferedRequest;
12022 current = current.next;
12029 Object.defineProperty(WritableState.prototype, 'buffer', {
12030 get: internalUtil.deprecate(function () {
12031 return this.getBuffer();
12032 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12037 // Test _writableState for inheritance to account for Duplex streams,
12038 // whose prototype chain only points to Readable.
12039 var realHasInstance;
12040 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12041 realHasInstance = Function.prototype[Symbol.hasInstance];
12042 Object.defineProperty(Writable, Symbol.hasInstance, {
12043 value: function (object) {
12044 if (realHasInstance.call(this, object)) return true;
12046 return object && object._writableState instanceof WritableState;
12050 realHasInstance = function (object) {
12051 return object instanceof this;
12055 function Writable(options) {
12056 Duplex = Duplex || require('./_stream_duplex');
12058 // Writable ctor is applied to Duplexes, too.
12059 // `realHasInstance` is necessary because using plain `instanceof`
12060 // would return false, as no `_writableState` property is attached.
12062 // Trying to use the custom `instanceof` for Writable here will also break the
12063 // Node.js LazyTransform implementation, which has a non-trivial getter for
12064 // `_writableState` that would lead to infinite recursion.
12065 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12066 return new Writable(options);
12069 this._writableState = new WritableState(options, this);
12072 this.writable = true;
12075 if (typeof options.write === 'function') this._write = options.write;
12077 if (typeof options.writev === 'function') this._writev = options.writev;
12079 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12081 if (typeof options.final === 'function') this._final = options.final;
12087 // Otherwise people can pipe Writable streams, which is just wrong.
12088 Writable.prototype.pipe = function () {
12089 this.emit('error', new Error('Cannot pipe, not readable'));
12092 function writeAfterEnd(stream, cb) {
12093 var er = new Error('write after end');
12094 // TODO: defer error events consistently everywhere, not just the cb
12095 stream.emit('error', er);
12096 processNextTick(cb, er);
12099 // Checks that a user-supplied chunk is valid, especially for the particular
12100 // mode the stream is in. Currently this means that `null` is never accepted
12101 // and undefined/non-string values are only allowed in object mode.
12102 function validChunk(stream, state, chunk, cb) {
12106 if (chunk === null) {
12107 er = new TypeError('May not write null values to stream');
12108 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12109 er = new TypeError('Invalid non-string/buffer chunk');
12112 stream.emit('error', er);
12113 processNextTick(cb, er);
12119 Writable.prototype.write = function (chunk, encoding, cb) {
12120 var state = this._writableState;
12122 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12124 if (isBuf && !Buffer.isBuffer(chunk)) {
12125 chunk = _uint8ArrayToBuffer(chunk);
12128 if (typeof encoding === 'function') {
12133 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12135 if (typeof cb !== 'function') cb = nop;
12137 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12139 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12145 Writable.prototype.cork = function () {
12146 var state = this._writableState;
12151 Writable.prototype.uncork = function () {
12152 var state = this._writableState;
12154 if (state.corked) {
12157 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12161 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12162 // node::ParseEncoding() requires lower case.
12163 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12164 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);
12165 this._writableState.defaultEncoding = encoding;
12169 function decodeChunk(state, chunk, encoding) {
12170 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12171 chunk = Buffer.from(chunk, encoding);
12176 // if we're already writing something, then just put this
12177 // in the queue, and wait our turn. Otherwise, call _write
12178 // If we return false, then we need a drain event, so set that flag.
12179 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12181 var newChunk = decodeChunk(state, chunk, encoding);
12182 if (chunk !== newChunk) {
12184 encoding = 'buffer';
12188 var len = state.objectMode ?
1 : chunk.length;
12190 state.length += len;
12192 var ret = state.length < state.highWaterMark;
12193 // we must ensure that previous needDrain will not be reset to false.
12194 if (!ret) state.needDrain = true;
12196 if (state.writing || state.corked) {
12197 var last = state.lastBufferedRequest;
12198 state.lastBufferedRequest = {
12200 encoding: encoding,
12206 last.next = state.lastBufferedRequest;
12208 state.bufferedRequest = state.lastBufferedRequest;
12210 state.bufferedRequestCount +=
1;
12212 doWrite(stream, state, false, len, chunk, encoding, cb);
12218 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12219 state.writelen = len;
12220 state.writecb = cb;
12221 state.writing = true;
12223 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12224 state.sync = false;
12227 function onwriteError(stream, state, sync, er, cb) {
12231 // defer the callback if we are being called synchronously
12232 // to avoid piling up things on the stack
12233 processNextTick(cb, er);
12234 // this can emit finish, and it will always happen
12236 processNextTick(finishMaybe, stream, state);
12237 stream._writableState.errorEmitted = true;
12238 stream.emit('error', er);
12240 // the caller expect this to happen before if
12243 stream._writableState.errorEmitted = true;
12244 stream.emit('error', er);
12245 // this can emit finish, but finish must
12246 // always follow error
12247 finishMaybe(stream, state);
12251 function onwriteStateUpdate(state) {
12252 state.writing = false;
12253 state.writecb = null;
12254 state.length -= state.writelen;
12255 state.writelen =
0;
12258 function onwrite(stream, er) {
12259 var state = stream._writableState;
12260 var sync = state.sync;
12261 var cb = state.writecb;
12263 onwriteStateUpdate(state);
12265 if (er) onwriteError(stream, state, sync, er, cb);else {
12266 // Check if we're actually ready to finish, but don't emit yet
12267 var finished = needFinish(state);
12269 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12270 clearBuffer(stream, state);
12275 asyncWrite(afterWrite, stream, state, finished, cb);
12278 afterWrite(stream, state, finished, cb);
12283 function afterWrite(stream, state, finished, cb) {
12284 if (!finished) onwriteDrain(stream, state);
12287 finishMaybe(stream, state);
12290 // Must force callback to be called on nextTick, so that we don't
12291 // emit 'drain' before the write() consumer gets the 'false' return
12292 // value, and has a chance to attach a 'drain' listener.
12293 function onwriteDrain(stream, state) {
12294 if (state.length ===
0 && state.needDrain) {
12295 state.needDrain = false;
12296 stream.emit('drain');
12300 // if there's something in the buffer waiting, then process it
12301 function clearBuffer(stream, state) {
12302 state.bufferProcessing = true;
12303 var entry = state.bufferedRequest;
12305 if (stream._writev && entry && entry.next) {
12306 // Fast case, write everything using _writev()
12307 var l = state.bufferedRequestCount;
12308 var buffer = new Array(l);
12309 var holder = state.corkedRequestsFree;
12310 holder.entry = entry;
12313 var allBuffers = true;
12315 buffer[count] = entry;
12316 if (!entry.isBuf) allBuffers = false;
12317 entry = entry.next;
12320 buffer.allBuffers = allBuffers;
12322 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12324 // doWrite is almost always async, defer these to save a bit of time
12325 // as the hot path ends with doWrite
12327 state.lastBufferedRequest = null;
12329 state.corkedRequestsFree = holder.next;
12330 holder.next = null;
12332 state.corkedRequestsFree = new CorkedRequest(state);
12335 // Slow case, write chunks one-by-one
12337 var chunk = entry.chunk;
12338 var encoding = entry.encoding;
12339 var cb = entry.callback;
12340 var len = state.objectMode ?
1 : chunk.length;
12342 doWrite(stream, state, false, len, chunk, encoding, cb);
12343 entry = entry.next;
12344 // if we didn't call the onwrite immediately, then
12345 // it means that we need to wait until it does.
12346 // also, that means that the chunk and cb are currently
12347 // being processed, so move the buffer counter past them.
12348 if (state.writing) {
12353 if (entry === null) state.lastBufferedRequest = null;
12356 state.bufferedRequestCount =
0;
12357 state.bufferedRequest = entry;
12358 state.bufferProcessing = false;
12361 Writable.prototype._write = function (chunk, encoding, cb) {
12362 cb(new Error('_write() is not implemented'));
12365 Writable.prototype._writev = null;
12367 Writable.prototype.end = function (chunk, encoding, cb) {
12368 var state = this._writableState;
12370 if (typeof chunk === 'function') {
12374 } else if (typeof encoding === 'function') {
12379 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12381 // .end() fully uncorks
12382 if (state.corked) {
12387 // ignore unnecessary end() calls.
12388 if (!state.ending && !state.finished) endWritable(this, state, cb);
12391 function needFinish(state) {
12392 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12394 function callFinal(stream, state) {
12395 stream._final(function (err) {
12398 stream.emit('error', err);
12400 state.prefinished = true;
12401 stream.emit('prefinish');
12402 finishMaybe(stream, state);
12405 function prefinish(stream, state) {
12406 if (!state.prefinished && !state.finalCalled) {
12407 if (typeof stream._final === 'function') {
12409 state.finalCalled = true;
12410 processNextTick(callFinal, stream, state);
12412 state.prefinished = true;
12413 stream.emit('prefinish');
12418 function finishMaybe(stream, state) {
12419 var need = needFinish(state);
12421 prefinish(stream, state);
12422 if (state.pendingcb ===
0) {
12423 state.finished = true;
12424 stream.emit('finish');
12430 function endWritable(stream, state, cb) {
12431 state.ending = true;
12432 finishMaybe(stream, state);
12434 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12436 state.ended = true;
12437 stream.writable = false;
12440 function onCorkedFinish(corkReq, state, err) {
12441 var entry = corkReq.entry;
12442 corkReq.entry = null;
12444 var cb = entry.callback;
12447 entry = entry.next;
12449 if (state.corkedRequestsFree) {
12450 state.corkedRequestsFree.next = corkReq;
12452 state.corkedRequestsFree = corkReq;
12456 Object.defineProperty(Writable.prototype, 'destroyed', {
12458 if (this._writableState === undefined) {
12461 return this._writableState.destroyed;
12463 set: function (value) {
12464 // we ignore the value if the stream
12465 // has not been initialized yet
12466 if (!this._writableState) {
12470 // backward compatibility, the user is explicitly
12471 // managing destroyed
12472 this._writableState.destroyed = value;
12476 Writable.prototype.destroy = destroyImpl.destroy;
12477 Writable.prototype._undestroy = destroyImpl.undestroy;
12478 Writable.prototype._destroy = function (err, cb) {
12482 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12483 },{"./_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){
12488 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12490 var Buffer = require('safe-buffer').Buffer;
12493 function copyBuffer(src, target, offset) {
12494 src.copy(target, offset);
12497 module.exports = function () {
12498 function BufferList() {
12499 _classCallCheck(this, BufferList);
12506 BufferList.prototype.push = function push(v) {
12507 var entry = { data: v, next: null };
12508 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12513 BufferList.prototype.unshift = function unshift(v) {
12514 var entry = { data: v, next: this.head };
12515 if (this.length ===
0) this.tail = entry;
12520 BufferList.prototype.shift = function shift() {
12521 if (this.length ===
0) return;
12522 var ret = this.head.data;
12523 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12528 BufferList.prototype.clear = function clear() {
12529 this.head = this.tail = null;
12533 BufferList.prototype.join = function join(s) {
12534 if (this.length ===
0) return '';
12536 var ret = '' + p.data;
12537 while (p = p.next) {
12542 BufferList.prototype.concat = function concat(n) {
12543 if (this.length ===
0) return Buffer.alloc(
0);
12544 if (this.length ===
1) return this.head.data;
12545 var ret = Buffer.allocUnsafe(n
>>> 0);
12549 copyBuffer(p.data, ret, i);
12550 i += p.data.length;
12558 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12563 var processNextTick = require('process-nextick-args');
12566 // undocumented cb() API, needed for core, not for public API
12567 function destroy(err, cb) {
12570 var readableDestroyed = this._readableState && this._readableState.destroyed;
12571 var writableDestroyed = this._writableState && this._writableState.destroyed;
12573 if (readableDestroyed || writableDestroyed) {
12576 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12577 processNextTick(emitErrorNT, this, err);
12582 // we set destroyed to true before firing error callbacks in order
12583 // to make it re-entrance safe in case destroy() is called within callbacks
12585 if (this._readableState) {
12586 this._readableState.destroyed = true;
12589 // if this is a duplex stream mark the writable part as destroyed as well
12590 if (this._writableState) {
12591 this._writableState.destroyed = true;
12594 this._destroy(err || null, function (err) {
12596 processNextTick(emitErrorNT, _this, err);
12597 if (_this._writableState) {
12598 _this._writableState.errorEmitted = true;
12606 function undestroy() {
12607 if (this._readableState) {
12608 this._readableState.destroyed = false;
12609 this._readableState.reading = false;
12610 this._readableState.ended = false;
12611 this._readableState.endEmitted = false;
12614 if (this._writableState) {
12615 this._writableState.destroyed = false;
12616 this._writableState.ended = false;
12617 this._writableState.ending = false;
12618 this._writableState.finished = false;
12619 this._writableState.errorEmitted = false;
12623 function emitErrorNT(self, err) {
12624 self.emit('error', err);
12629 undestroy: undestroy
12631 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12632 module.exports = require('events').EventEmitter;
12634 },{"events":
6}],
22:[function(require,module,exports){
12635 module.exports = require('./readable').PassThrough
12637 },{"./readable":
23}],
23:[function(require,module,exports){
12638 exports = module.exports = require('./lib/_stream_readable.js');
12639 exports.Stream = exports;
12640 exports.Readable = exports;
12641 exports.Writable = require('./lib/_stream_writable.js');
12642 exports.Duplex = require('./lib/_stream_duplex.js');
12643 exports.Transform = require('./lib/_stream_transform.js');
12644 exports.PassThrough = require('./lib/_stream_passthrough.js');
12646 },{"./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){
12647 module.exports = require('./readable').Transform
12649 },{"./readable":
23}],
25:[function(require,module,exports){
12650 module.exports = require('./lib/_stream_writable.js');
12652 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12653 /* eslint-disable node/no-deprecated-api */
12654 var buffer = require('buffer')
12655 var Buffer = buffer.Buffer
12657 // alternative to using Object.keys for old browsers
12658 function copyProps (src, dst) {
12659 for (var key in src) {
12660 dst[key] = src[key]
12663 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12664 module.exports = buffer
12666 // Copy properties from require('buffer')
12667 copyProps(buffer, exports)
12668 exports.Buffer = SafeBuffer
12671 function SafeBuffer (arg, encodingOrOffset, length) {
12672 return Buffer(arg, encodingOrOffset, length)
12675 // Copy static methods from Buffer
12676 copyProps(Buffer, SafeBuffer)
12678 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12679 if (typeof arg === 'number') {
12680 throw new TypeError('Argument must not be a number')
12682 return Buffer(arg, encodingOrOffset, length)
12685 SafeBuffer.alloc = function (size, fill, encoding) {
12686 if (typeof size !== 'number') {
12687 throw new TypeError('Argument must be a number')
12689 var buf = Buffer(size)
12690 if (fill !== undefined) {
12691 if (typeof encoding === 'string') {
12692 buf.fill(fill, encoding)
12702 SafeBuffer.allocUnsafe = function (size) {
12703 if (typeof size !== 'number') {
12704 throw new TypeError('Argument must be a number')
12706 return Buffer(size)
12709 SafeBuffer.allocUnsafeSlow = function (size) {
12710 if (typeof size !== 'number') {
12711 throw new TypeError('Argument must be a number')
12713 return buffer.SlowBuffer(size)
12716 },{"buffer":
4}],
27:[function(require,module,exports){
12717 // Copyright Joyent, Inc. and other Node contributors.
12719 // Permission is hereby granted, free of charge, to any person obtaining a
12720 // copy of this software and associated documentation files (the
12721 // "Software"), to deal in the Software without restriction, including
12722 // without limitation the rights to use, copy, modify, merge, publish,
12723 // distribute, sublicense, and/or sell copies of the Software, and to permit
12724 // persons to whom the Software is furnished to do so, subject to the
12725 // following conditions:
12727 // The above copyright notice and this permission notice shall be included
12728 // in all copies or substantial portions of the Software.
12730 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12731 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12732 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12733 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12734 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12735 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12736 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12738 module.exports = Stream;
12740 var EE = require('events').EventEmitter;
12741 var inherits = require('inherits');
12743 inherits(Stream, EE);
12744 Stream.Readable = require('readable-stream/readable.js');
12745 Stream.Writable = require('readable-stream/writable.js');
12746 Stream.Duplex = require('readable-stream/duplex.js');
12747 Stream.Transform = require('readable-stream/transform.js');
12748 Stream.PassThrough = require('readable-stream/passthrough.js');
12750 // Backwards-compat with node
0.4.x
12751 Stream.Stream = Stream;
12755 // old-style streams. Note that the pipe method (the only relevant
12756 // part of this class) is overridden in the Readable class.
12758 function Stream() {
12762 Stream.prototype.pipe = function(dest, options) {
12765 function ondata(chunk) {
12766 if (dest.writable) {
12767 if (false === dest.write(chunk) && source.pause) {
12773 source.on('data', ondata);
12775 function ondrain() {
12776 if (source.readable && source.resume) {
12781 dest.on('drain', ondrain);
12783 // If the 'end' option is not supplied, dest.end() will be called when
12784 // source gets the 'end' or 'close' events. Only dest.end() once.
12785 if (!dest._isStdio && (!options || options.end !== false)) {
12786 source.on('end', onend);
12787 source.on('close', onclose);
12790 var didOnEnd = false;
12792 if (didOnEnd) return;
12799 function onclose() {
12800 if (didOnEnd) return;
12803 if (typeof dest.destroy === 'function') dest.destroy();
12806 // don't leave dangling pipes when there are errors.
12807 function onerror(er) {
12809 if (EE.listenerCount(this, 'error') ===
0) {
12810 throw er; // Unhandled stream error in pipe.
12814 source.on('error', onerror);
12815 dest.on('error', onerror);
12817 // remove all the event listeners that were added.
12818 function cleanup() {
12819 source.removeListener('data', ondata);
12820 dest.removeListener('drain', ondrain);
12822 source.removeListener('end', onend);
12823 source.removeListener('close', onclose);
12825 source.removeListener('error', onerror);
12826 dest.removeListener('error', onerror);
12828 source.removeListener('end', cleanup);
12829 source.removeListener('close', cleanup);
12831 dest.removeListener('close', cleanup);
12834 source.on('end', cleanup);
12835 source.on('close', cleanup);
12837 dest.on('close', cleanup);
12839 dest.emit('pipe', source);
12841 // Allow for unix-like usage: A.pipe(B).pipe(C)
12845 },{"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){
12848 var Buffer = require('safe-buffer').Buffer;
12850 var isEncoding = Buffer.isEncoding || function (encoding) {
12851 encoding = '' + encoding;
12852 switch (encoding && encoding.toLowerCase()) {
12853 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':
12860 function _normalizeEncoding(enc) {
12861 if (!enc) return 'utf8';
12881 if (retried) return; // undefined
12882 enc = ('' + enc).toLowerCase();
12888 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12889 // modules monkey-patch it to support additional encodings
12890 function normalizeEncoding(enc) {
12891 var nenc = _normalizeEncoding(enc);
12892 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12893 return nenc || enc;
12896 // StringDecoder provides an interface for efficiently splitting a series of
12897 // buffers into a series of JS strings without breaking apart multi-byte
12899 exports.StringDecoder = StringDecoder;
12900 function StringDecoder(encoding) {
12901 this.encoding = normalizeEncoding(encoding);
12903 switch (this.encoding) {
12905 this.text = utf16Text;
12906 this.end = utf16End;
12910 this.fillLast = utf8FillLast;
12914 this.text = base64Text;
12915 this.end = base64End;
12919 this.write = simpleWrite;
12920 this.end = simpleEnd;
12924 this.lastTotal =
0;
12925 this.lastChar = Buffer.allocUnsafe(nb);
12928 StringDecoder.prototype.write = function (buf) {
12929 if (buf.length ===
0) return '';
12932 if (this.lastNeed) {
12933 r = this.fillLast(buf);
12934 if (r === undefined) return '';
12940 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12944 StringDecoder.prototype.end = utf8End;
12946 // Returns only complete characters in a Buffer
12947 StringDecoder.prototype.text = utf8Text;
12949 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12950 StringDecoder.prototype.fillLast = function (buf) {
12951 if (this.lastNeed <= buf.length) {
12952 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12953 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12955 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12956 this.lastNeed -= buf.length;
12959 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12960 // continuation byte.
12961 function utf8CheckByte(byte) {
12962 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;
12966 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12967 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12968 // needed to complete the UTF-
8 character (if applicable) are returned.
12969 function utf8CheckIncomplete(self, buf, i) {
12970 var j = buf.length -
1;
12971 if (j < i) return
0;
12972 var nb = utf8CheckByte(buf[j]);
12974 if (nb
> 0) self.lastNeed = nb -
1;
12977 if (--j < i) return
0;
12978 nb = utf8CheckByte(buf[j]);
12980 if (nb
> 0) self.lastNeed = nb -
2;
12983 if (--j < i) return
0;
12984 nb = utf8CheckByte(buf[j]);
12987 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
12994 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
12995 // needed or are available. If we see a non-continuation byte where we expect
12996 // one, we
"replace" the validated continuation bytes we've seen so far with
12997 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
12998 // behavior. The continuation byte check is included three times in the case
12999 // where all of the continuation bytes for a character exist in the same buffer.
13000 // It is also done this way as a slight performance increase instead of using a
13002 function utf8CheckExtraBytes(self, buf, p) {
13003 if ((buf[
0] &
0xC0) !==
0x80) {
13005 return '\ufffd'.repeat(p);
13007 if (self.lastNeed
> 1 && buf.length
> 1) {
13008 if ((buf[
1] &
0xC0) !==
0x80) {
13010 return '\ufffd'.repeat(p +
1);
13012 if (self.lastNeed
> 2 && buf.length
> 2) {
13013 if ((buf[
2] &
0xC0) !==
0x80) {
13015 return '\ufffd'.repeat(p +
2);
13021 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
13022 function utf8FillLast(buf) {
13023 var p = this.lastTotal - this.lastNeed;
13024 var r = utf8CheckExtraBytes(this, buf, p);
13025 if (r !== undefined) return r;
13026 if (this.lastNeed <= buf.length) {
13027 buf.copy(this.lastChar, p,
0, this.lastNeed);
13028 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13030 buf.copy(this.lastChar, p,
0, buf.length);
13031 this.lastNeed -= buf.length;
13034 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13035 // partial character, the character's bytes are buffered until the required
13036 // number of bytes are available.
13037 function utf8Text(buf, i) {
13038 var total = utf8CheckIncomplete(this, buf, i);
13039 if (!this.lastNeed) return buf.toString('utf8', i);
13040 this.lastTotal = total;
13041 var end = buf.length - (total - this.lastNeed);
13042 buf.copy(this.lastChar,
0, end);
13043 return buf.toString('utf8', i, end);
13046 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13047 // character needs to be added to the output.
13048 function utf8End(buf) {
13049 var r = buf && buf.length ? this.write(buf) : '';
13050 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13054 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13055 // number of bytes available, we need to check if we end on a leading/high
13056 // surrogate. In that case, we need to wait for the next two bytes in order to
13057 // decode the last character properly.
13058 function utf16Text(buf, i) {
13059 if ((buf.length - i) %
2 ===
0) {
13060 var r = buf.toString('utf16le', i);
13062 var c = r.charCodeAt(r.length -
1);
13063 if (c
>=
0xD800 && c <=
0xDBFF) {
13065 this.lastTotal =
4;
13066 this.lastChar[
0] = buf[buf.length -
2];
13067 this.lastChar[
1] = buf[buf.length -
1];
13068 return r.slice(
0, -
1);
13074 this.lastTotal =
2;
13075 this.lastChar[
0] = buf[buf.length -
1];
13076 return buf.toString('utf16le', i, buf.length -
1);
13079 // For UTF-
16LE we do not explicitly append special replacement characters if we
13080 // end on a partial character, we simply let v8 handle that.
13081 function utf16End(buf) {
13082 var r = buf && buf.length ? this.write(buf) : '';
13083 if (this.lastNeed) {
13084 var end = this.lastTotal - this.lastNeed;
13085 return r + this.lastChar.toString('utf16le',
0, end);
13090 function base64Text(buf, i) {
13091 var n = (buf.length - i) %
3;
13092 if (n ===
0) return buf.toString('base64', i);
13093 this.lastNeed =
3 - n;
13094 this.lastTotal =
3;
13096 this.lastChar[
0] = buf[buf.length -
1];
13098 this.lastChar[
0] = buf[buf.length -
2];
13099 this.lastChar[
1] = buf[buf.length -
1];
13101 return buf.toString('base64', i, buf.length - n);
13104 function base64End(buf) {
13105 var r = buf && buf.length ? this.write(buf) : '';
13106 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13110 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13111 function simpleWrite(buf) {
13112 return buf.toString(this.encoding);
13115 function simpleEnd(buf) {
13116 return buf && buf.length ? this.write(buf) : '';
13118 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13119 (function (global){
13125 module.exports = deprecate;
13128 * Mark that a method should not be used.
13129 * Returns a modified function which warns once by default.
13131 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13133 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13134 * will throw an Error when invoked.
13136 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13137 * will invoke `console.trace()` instead of `console.error()`.
13139 * @param {Function} fn - the function to deprecate
13140 * @param {String} msg - the string to print to the console when `fn` is invoked
13141 * @returns {Function} a new "deprecated" version of `fn`
13145 function deprecate (fn, msg) {
13146 if (config('noDeprecation')) {
13150 var warned = false;
13151 function deprecated() {
13153 if (config('throwDeprecation')) {
13154 throw new Error(msg);
13155 } else if (config('traceDeprecation')) {
13156 console.trace(msg);
13162 return fn.apply(this, arguments);
13169 * Checks `localStorage` for boolean values for the given `name`.
13171 * @param {String} name
13172 * @returns {Boolean}
13176 function config (name) {
13177 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13179 if (!global.localStorage) return false;
13183 var val = global.localStorage[name];
13184 if (null == val) return false;
13185 return String(val).toLowerCase() === 'true';
13188 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13189 },{}],
30:[function(require,module,exports){
13190 arguments[
4][
8][
0].apply(exports,arguments)
13191 },{"dup":
8}],
31:[function(require,module,exports){
13192 module.exports = function isBuffer(arg) {
13193 return arg && typeof arg === 'object'
13194 && typeof arg.copy === 'function'
13195 && typeof arg.fill === 'function'
13196 && typeof arg.readUInt8 === 'function';
13198 },{}],
32:[function(require,module,exports){
13199 (function (process,global){
13200 // Copyright Joyent, Inc. and other Node contributors.
13202 // Permission is hereby granted, free of charge, to any person obtaining a
13203 // copy of this software and associated documentation files (the
13204 // "Software"), to deal in the Software without restriction, including
13205 // without limitation the rights to use, copy, modify, merge, publish,
13206 // distribute, sublicense, and/or sell copies of the Software, and to permit
13207 // persons to whom the Software is furnished to do so, subject to the
13208 // following conditions:
13210 // The above copyright notice and this permission notice shall be included
13211 // in all copies or substantial portions of the Software.
13213 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13214 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13215 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13216 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13217 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13218 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13219 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13221 var formatRegExp = /%[sdj%]/g;
13222 exports.format = function(f) {
13223 if (!isString(f)) {
13225 for (var i =
0; i < arguments.length; i++) {
13226 objects.push(inspect(arguments[i]));
13228 return objects.join(' ');
13232 var args = arguments;
13233 var len = args.length;
13234 var str = String(f).replace(formatRegExp, function(x) {
13235 if (x === '%%') return '%';
13236 if (i
>= len) return x;
13238 case '%s': return String(args[i++]);
13239 case '%d': return Number(args[i++]);
13242 return JSON.stringify(args[i++]);
13244 return '[Circular]';
13250 for (var x = args[i]; i < len; x = args[++i]) {
13251 if (isNull(x) || !isObject(x)) {
13254 str += ' ' + inspect(x);
13261 // Mark that a method should not be used.
13262 // Returns a modified function which warns once by default.
13263 // If --no-deprecation is set, then it is a no-op.
13264 exports.deprecate = function(fn, msg) {
13265 // Allow for deprecating things in the process of starting up.
13266 if (isUndefined(global.process)) {
13267 return function() {
13268 return exports.deprecate(fn, msg).apply(this, arguments);
13272 if (process.noDeprecation === true) {
13276 var warned = false;
13277 function deprecated() {
13279 if (process.throwDeprecation) {
13280 throw new Error(msg);
13281 } else if (process.traceDeprecation) {
13282 console.trace(msg);
13284 console.error(msg);
13288 return fn.apply(this, arguments);
13297 exports.debuglog = function(set) {
13298 if (isUndefined(debugEnviron))
13299 debugEnviron = process.env.NODE_DEBUG || '';
13300 set = set.toUpperCase();
13301 if (!debugs[set]) {
13302 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13303 var pid = process.pid;
13304 debugs[set] = function() {
13305 var msg = exports.format.apply(exports, arguments);
13306 console.error('%s %d: %s', set, pid, msg);
13309 debugs[set] = function() {};
13312 return debugs[set];
13317 * Echos the value of a value. Trys to print the value out
13318 * in the best way possible given the different types.
13320 * @param {Object} obj The object to print out.
13321 * @param {Object} opts Optional options object that alters the output.
13323 /* legacy: obj, showHidden, depth, colors*/
13324 function inspect(obj, opts) {
13328 stylize: stylizeNoColor
13331 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13332 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13333 if (isBoolean(opts)) {
13335 ctx.showHidden = opts;
13337 // got an "options" object
13338 exports._extend(ctx, opts);
13340 // set default options
13341 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13342 if (isUndefined(ctx.depth)) ctx.depth =
2;
13343 if (isUndefined(ctx.colors)) ctx.colors = false;
13344 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13345 if (ctx.colors) ctx.stylize = stylizeWithColor;
13346 return formatValue(ctx, obj, ctx.depth);
13348 exports.inspect = inspect;
13351 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13354 'italic' : [
3,
23],
13355 'underline' : [
4,
24],
13356 'inverse' : [
7,
27],
13357 'white' : [
37,
39],
13359 'black' : [
30,
39],
13362 'green' : [
32,
39],
13363 'magenta' : [
35,
39],
13365 'yellow' : [
33,
39]
13368 // Don't use 'blue' not visible on cmd.exe
13371 'number': 'yellow',
13372 'boolean': 'yellow',
13373 'undefined': 'grey',
13377 // "name": intentionally not styling
13382 function stylizeWithColor(str, styleType) {
13383 var style = inspect.styles[styleType];
13386 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13387 '\u001b[' + inspect.colors[style][
1] + 'm';
13394 function stylizeNoColor(str, styleType) {
13399 function arrayToHash(array) {
13402 array.forEach(function(val, idx) {
13410 function formatValue(ctx, value, recurseTimes) {
13411 // Provide a hook for user-specified inspect functions.
13412 // Check that value is an object with an inspect function on it
13413 if (ctx.customInspect &&
13415 isFunction(value.inspect) &&
13416 // Filter out the util module, it's inspect function is special
13417 value.inspect !== exports.inspect &&
13418 // Also filter out any prototype objects using the circular check.
13419 !(value.constructor && value.constructor.prototype === value)) {
13420 var ret = value.inspect(recurseTimes, ctx);
13421 if (!isString(ret)) {
13422 ret = formatValue(ctx, ret, recurseTimes);
13427 // Primitive types cannot have properties
13428 var primitive = formatPrimitive(ctx, value);
13433 // Look up the keys of the object.
13434 var keys = Object.keys(value);
13435 var visibleKeys = arrayToHash(keys);
13437 if (ctx.showHidden) {
13438 keys = Object.getOwnPropertyNames(value);
13441 // IE doesn't make error fields non-enumerable
13442 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13444 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13445 return formatError(value);
13448 // Some type of object without properties can be shortcutted.
13449 if (keys.length ===
0) {
13450 if (isFunction(value)) {
13451 var name = value.name ? ': ' + value.name : '';
13452 return ctx.stylize('[Function' + name + ']', 'special');
13454 if (isRegExp(value)) {
13455 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13457 if (isDate(value)) {
13458 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13460 if (isError(value)) {
13461 return formatError(value);
13465 var base = '', array = false, braces = ['{', '}'];
13467 // Make Array say that they are Array
13468 if (isArray(value)) {
13470 braces = ['[', ']'];
13473 // Make functions say that they are functions
13474 if (isFunction(value)) {
13475 var n = value.name ? ': ' + value.name : '';
13476 base = ' [Function' + n + ']';
13479 // Make RegExps say that they are RegExps
13480 if (isRegExp(value)) {
13481 base = ' ' + RegExp.prototype.toString.call(value);
13484 // Make dates with properties first say the date
13485 if (isDate(value)) {
13486 base = ' ' + Date.prototype.toUTCString.call(value);
13489 // Make error with message first say the error
13490 if (isError(value)) {
13491 base = ' ' + formatError(value);
13494 if (keys.length ===
0 && (!array || value.length ==
0)) {
13495 return braces[
0] + base + braces[
1];
13498 if (recurseTimes <
0) {
13499 if (isRegExp(value)) {
13500 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13502 return ctx.stylize('[Object]', 'special');
13506 ctx.seen.push(value);
13510 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13512 output = keys.map(function(key) {
13513 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13519 return reduceToSingleString(output, base, braces);
13523 function formatPrimitive(ctx, value) {
13524 if (isUndefined(value))
13525 return ctx.stylize('undefined', 'undefined');
13526 if (isString(value)) {
13527 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13528 .replace(/'/g, "\\'")
13529 .replace(/\\"/g, '"') + '\'';
13530 return ctx.stylize(simple, 'string');
13532 if (isNumber(value))
13533 return ctx.stylize('' + value, 'number');
13534 if (isBoolean(value))
13535 return ctx.stylize('' + value, 'boolean');
13536 // For some reason typeof null is "object", so special case here.
13538 return ctx.stylize('null', 'null');
13542 function formatError(value) {
13543 return '[' + Error.prototype.toString.call(value) + ']';
13547 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13549 for (var i =
0, l = value.length; i < l; ++i) {
13550 if (hasOwnProperty(value, String(i))) {
13551 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13557 keys.forEach(function(key) {
13558 if (!key.match(/^\d+$/)) {
13559 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13567 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13568 var name, str, desc;
13569 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13572 str = ctx.stylize('[Getter/Setter]', 'special');
13574 str = ctx.stylize('[Getter]', 'special');
13578 str = ctx.stylize('[Setter]', 'special');
13581 if (!hasOwnProperty(visibleKeys, key)) {
13582 name = '[' + key + ']';
13585 if (ctx.seen.indexOf(desc.value) <
0) {
13586 if (isNull(recurseTimes)) {
13587 str = formatValue(ctx, desc.value, null);
13589 str = formatValue(ctx, desc.value, recurseTimes -
1);
13591 if (str.indexOf('\n')
> -
1) {
13593 str = str.split('\n').map(function(line) {
13595 }).join('\n').substr(
2);
13597 str = '\n' + str.split('\n').map(function(line) {
13603 str = ctx.stylize('[Circular]', 'special');
13606 if (isUndefined(name)) {
13607 if (array && key.match(/^\d+$/)) {
13610 name = JSON.stringify('' + key);
13611 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13612 name = name.substr(
1, name.length -
2);
13613 name = ctx.stylize(name, 'name');
13615 name = name.replace(/'/g, "\\'")
13616 .replace(/\\"/g, '"')
13617 .replace(/(^"|"$)/g, "'");
13618 name = ctx.stylize(name, 'string');
13622 return name + ': ' + str;
13626 function reduceToSingleString(output, base, braces) {
13627 var numLinesEst =
0;
13628 var length = output.reduce(function(prev, cur) {
13630 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13631 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13636 (base === '' ? '' : base + '\n ') +
13638 output.join(',\n ') +
13643 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13647 // NOTE: These type checking functions intentionally don't use `instanceof`
13648 // because it is fragile and can be easily faked with `Object.create()`.
13649 function isArray(ar) {
13650 return Array.isArray(ar);
13652 exports.isArray = isArray;
13654 function isBoolean(arg) {
13655 return typeof arg === 'boolean';
13657 exports.isBoolean = isBoolean;
13659 function isNull(arg) {
13660 return arg === null;
13662 exports.isNull = isNull;
13664 function isNullOrUndefined(arg) {
13665 return arg == null;
13667 exports.isNullOrUndefined = isNullOrUndefined;
13669 function isNumber(arg) {
13670 return typeof arg === 'number';
13672 exports.isNumber = isNumber;
13674 function isString(arg) {
13675 return typeof arg === 'string';
13677 exports.isString = isString;
13679 function isSymbol(arg) {
13680 return typeof arg === 'symbol';
13682 exports.isSymbol = isSymbol;
13684 function isUndefined(arg) {
13685 return arg === void
0;
13687 exports.isUndefined = isUndefined;
13689 function isRegExp(re) {
13690 return isObject(re) && objectToString(re) === '[object RegExp]';
13692 exports.isRegExp = isRegExp;
13694 function isObject(arg) {
13695 return typeof arg === 'object' && arg !== null;
13697 exports.isObject = isObject;
13699 function isDate(d) {
13700 return isObject(d) && objectToString(d) === '[object Date]';
13702 exports.isDate = isDate;
13704 function isError(e) {
13705 return isObject(e) &&
13706 (objectToString(e) === '[object Error]' || e instanceof Error);
13708 exports.isError = isError;
13710 function isFunction(arg) {
13711 return typeof arg === 'function';
13713 exports.isFunction = isFunction;
13715 function isPrimitive(arg) {
13716 return arg === null ||
13717 typeof arg === 'boolean' ||
13718 typeof arg === 'number' ||
13719 typeof arg === 'string' ||
13720 typeof arg === 'symbol' || // ES6 symbol
13721 typeof arg === 'undefined';
13723 exports.isPrimitive = isPrimitive;
13725 exports.isBuffer = require('./support/isBuffer');
13727 function objectToString(o) {
13728 return Object.prototype.toString.call(o);
13733 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13737 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13738 'Oct', 'Nov', 'Dec'];
13741 function timestamp() {
13742 var d = new Date();
13743 var time = [pad(d.getHours()),
13744 pad(d.getMinutes()),
13745 pad(d.getSeconds())].join(':');
13746 return [d.getDate(), months[d.getMonth()], time].join(' ');
13750 // log is just a thin wrapper to console.log that prepends a timestamp
13751 exports.log = function() {
13752 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13757 * Inherit the prototype methods from one constructor into another.
13759 * The Function.prototype.inherits from lang.js rewritten as a standalone
13760 * function (not on Function.prototype). NOTE: If this file is to be loaded
13761 * during bootstrapping this function needs to be rewritten using some native
13762 * functions as prototype setup using normal JavaScript does not work as
13763 * expected during bootstrapping (see mirror.js in r114903).
13765 * @param {function} ctor Constructor function which needs to inherit the
13767 * @param {function} superCtor Constructor function to inherit prototype from.
13769 exports.inherits = require('inherits');
13771 exports._extend = function(origin, add) {
13772 // Don't do anything if add isn't an object
13773 if (!add || !isObject(add)) return origin;
13775 var keys = Object.keys(add);
13776 var i = keys.length;
13778 origin[keys[i]] = add[keys[i]];
13783 function hasOwnProperty(obj, prop) {
13784 return Object.prototype.hasOwnProperty.call(obj, prop);
13787 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13788 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13790 base58: require('bs58'),
13791 bitcoin: require('bitcoinjs-lib'),
13792 ecurve: require('ecurve'),
13793 BigInteger: require('bigi')
13796 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13798 // Forked from https://github.com/cryptocoinjs/bs58
13799 // Originally written by Mike Hearn for BitcoinJ
13800 // Copyright (c)
2011 Google Inc
13801 // Ported to JavaScript by Stefan Thomas
13802 // Merged Buffer refactorings from base58-native by Stephen Pair
13803 // Copyright (c)
2013 BitPay Inc
13805 var Buffer = require('safe-buffer').Buffer
13807 module.exports = function base (ALPHABET) {
13808 var ALPHABET_MAP = {}
13809 var BASE = ALPHABET.length
13810 var LEADER = ALPHABET.charAt(
0)
13812 // pre-compute lookup table
13813 for (var z =
0; z < ALPHABET.length; z++) {
13814 var x = ALPHABET.charAt(z)
13816 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13817 ALPHABET_MAP[x] = z
13820 function encode (source) {
13821 if (source.length ===
0) return ''
13824 for (var i =
0; i < source.length; ++i) {
13825 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13826 carry += digits[j] <<
8
13827 digits[j] = carry % BASE
13828 carry = (carry / BASE) |
0
13831 while (carry
> 0) {
13832 digits.push(carry % BASE)
13833 carry = (carry / BASE) |
0
13839 // deal with leading zeros
13840 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13841 // convert digits to a string
13842 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13847 function decodeUnsafe (string) {
13848 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13851 for (var i =
0; i < string.length; i++) {
13852 var value = ALPHABET_MAP[string[i]]
13853 if (value === undefined) return
13855 for (var j =
0, carry = value; j < bytes.length; ++j) {
13856 carry += bytes[j] * BASE
13857 bytes[j] = carry &
0xff
13861 while (carry
> 0) {
13862 bytes.push(carry &
0xff)
13867 // deal with leading zeros
13868 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13872 return Buffer.from(bytes.reverse())
13875 function decode (string) {
13876 var buffer = decodeUnsafe(string)
13877 if (buffer) return buffer
13879 throw new Error('Non-base' + BASE + ' character')
13884 decodeUnsafe: decodeUnsafe,
13889 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13890 // (public) Constructor
13891 function BigInteger(a, b, c) {
13892 if (!(this instanceof BigInteger))
13893 return new BigInteger(a, b, c)
13896 if ("number" == typeof a) this.fromNumber(a, b, c)
13897 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13898 else this.fromString(a, b)
13902 var proto = BigInteger.prototype
13904 // duck-typed isBigInteger
13905 proto.__bigi = require('../package.json').version
13906 BigInteger.isBigInteger = function (obj, check_ver) {
13907 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13913 // am: Compute w_j += (x*this_i), propagate carries,
13914 // c is initial carry, returns final carry.
13915 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13916 // We need to select the fastest one that works in this environment.
13918 // am1: use a single mult and divide to get the high bits,
13919 // max digit bits should be
26 because
13920 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13921 function am1(i, x, w, j, c, n) {
13923 var v = x * this[i++] + w[j] + c
13924 c = Math.floor(v /
0x4000000)
13925 w[j++] = v &
0x3ffffff
13929 // am2 avoids a big mult-and-extract completely.
13930 // Max digit bits should be <=
30 because we do bitwise ops
13931 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13932 function am2(i, x, w, j, c, n) {
13933 var xl = x &
0x7fff,
13936 var l = this[i] &
0x7fff
13937 var h = this[i++]
>> 15
13938 var m = xh * l + h * xl
13939 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13940 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13941 w[j++] = l &
0x3fffffff
13945 // Alternately, set max digit bits to
28 since some
13946 // browsers slow down when dealing with
32-bit numbers.
13947 function am3(i, x, w, j, c, n) {
13948 var xl = x &
0x3fff,
13951 var l = this[i] &
0x3fff
13952 var h = this[i++]
>> 14
13953 var m = xh * l + h * xl
13954 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13955 c = (l
>> 28) + (m
>> 14) + xh * h
13956 w[j++] = l &
0xfffffff
13962 BigInteger.prototype.am = am1
13965 BigInteger.prototype.DB = dbits
13966 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13967 var DV = BigInteger.prototype.DV = (
1 << dbits)
13970 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13971 BigInteger.prototype.F1 = BI_FP - dbits
13972 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13974 // Digit conversions
13975 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13976 var BI_RC = new Array()
13978 rr =
"0".charCodeAt(
0)
13979 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13980 rr =
"a".charCodeAt(
0)
13981 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13982 rr =
"A".charCodeAt(
0)
13983 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13985 function int2char(n) {
13986 return BI_RM.charAt(n)
13989 function intAt(s, i) {
13990 var c = BI_RC[s.charCodeAt(i)]
13991 return (c == null) ? -
1 : c
13994 // (protected) copy this to r
13995 function bnpCopyTo(r) {
13996 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
14001 // (protected) set from integer value x, -DV <= x < DV
14002 function bnpFromInt(x) {
14004 this.s = (x <
0) ? -
1 :
0
14005 if (x
> 0) this[
0] = x
14006 else if (x < -
1) this[
0] = x + DV
14010 // return bigint initialized to value
14012 var r = new BigInteger()
14017 // (protected) set from string and radix
14018 function bnpFromString(s, b) {
14023 else if (b ==
8) k =
3
14024 else if (b ==
256) k =
8; // byte array
14025 else if (b ==
2) k =
1
14026 else if (b ==
32) k =
5
14027 else if (b ==
4) k =
2
14029 self.fromRadix(s, b)
14038 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14040 if (s.charAt(i) == "-") mi = true
14046 else if (sh + k
> self.DB) {
14047 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14048 self[self.t++] = (x
>> (self.DB - sh))
14050 self[self.t -
1] |= x << sh
14052 if (sh
>= self.DB) sh -= self.DB
14054 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14056 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14059 if (mi) BigInteger.ZERO.subTo(self, self)
14062 // (protected) clamp off excess high words
14063 function bnpClamp() {
14064 var c = this.s & this.DM
14065 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14068 // (public) return string representation in given radix
14069 function bnToString(b) {
14071 if (self.s <
0) return
"-" + self.negate()
14075 else if (b ==
8) k =
3
14076 else if (b ==
2) k =
1
14077 else if (b ==
32) k =
5
14078 else if (b ==
4) k =
2
14079 else return self.toRadix(b)
14080 var km = (
1 << k) -
1,
14084 var p = self.DB - (i * self.DB) % k
14086 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14092 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14093 d |= self[--i]
>> (p += self.DB - k)
14095 d = (self[i]
>> (p -= k)) & km
14101 if (d
> 0) m = true
14102 if (m) r += int2char(d)
14109 function bnNegate() {
14110 var r = new BigInteger()
14111 BigInteger.ZERO.subTo(this, r)
14117 return (this.s <
0) ? this.negate() : this
14120 // (public) return + if this
> a, - if this < a,
0 if equal
14121 function bnCompareTo(a) {
14122 var r = this.s - a.s
14123 if (r !=
0) return r
14126 if (r !=
0) return (this.s <
0) ? -r : r
14128 if ((r = this[i] - a[i]) !=
0) return r
14132 // returns bit length of the integer x
14133 function nbits(x) {
14136 if ((t = x
>>> 16) !=
0) {
14140 if ((t = x
>> 8) !=
0) {
14144 if ((t = x
>> 4) !=
0) {
14148 if ((t = x
>> 2) !=
0) {
14152 if ((t = x
>> 1) !=
0) {
14159 // (public) return the number of bits in
"this"
14160 function bnBitLength() {
14161 if (this.t <=
0) return
0
14162 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14165 // (public) return the number of bytes in
"this"
14166 function bnByteLength() {
14167 return this.bitLength()
>> 3
14170 // (protected) r = this << n*DB
14171 function bnpDLShiftTo(n, r) {
14173 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14174 for (i = n -
1; i
>=
0; --i) r[i] =
0
14179 // (protected) r = this
>> n*DB
14180 function bnpDRShiftTo(n, r) {
14181 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14182 r.t = Math.max(this.t - n,
0)
14186 // (protected) r = this << n
14187 function bnpLShiftTo(n, r) {
14189 var bs = n % self.DB
14190 var cbs = self.DB - bs
14191 var bm = (
1 << cbs) -
1
14192 var ds = Math.floor(n / self.DB),
14193 c = (self.s << bs) & self.DM,
14195 for (i = self.t -
1; i
>=
0; --i) {
14196 r[i + ds +
1] = (self[i]
>> cbs) | c
14197 c = (self[i] & bm) << bs
14199 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14201 r.t = self.t + ds +
1
14206 // (protected) r = this
>> n
14207 function bnpRShiftTo(n, r) {
14210 var ds = Math.floor(n / self.DB)
14211 if (ds
>= self.t) {
14215 var bs = n % self.DB
14216 var cbs = self.DB - bs
14217 var bm = (
1 << bs) -
1
14218 r[
0] = self[ds]
>> bs
14219 for (var i = ds +
1; i < self.t; ++i) {
14220 r[i - ds -
1] |= (self[i] & bm) << cbs
14221 r[i - ds] = self[i]
>> bs
14223 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14228 // (protected) r = this - a
14229 function bnpSubTo(a, r) {
14233 m = Math.min(a.t, self.t)
14235 c += self[i] - a[i]
14236 r[i++] = c & self.DM
14239 if (a.t < self.t) {
14241 while (i < self.t) {
14243 r[i++] = c & self.DM
14251 r[i++] = c & self.DM
14256 r.s = (c <
0) ? -
1 :
0
14257 if (c < -
1) r[i++] = self.DV + c
14258 else if (c
> 0) r[i++] = c
14263 // (protected) r = this * a, r != this,a (HAC
14.12)
14264 //
"this" should be the larger one if appropriate.
14265 function bnpMultiplyTo(a, r) {
14266 var x = this.abs(),
14270 while (--i
>=
0) r[i] =
0
14271 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14274 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14277 // (protected) r = this^
2, r != this (HAC
14.16)
14278 function bnpSquareTo(r) {
14280 var i = r.t =
2 * x.t
14281 while (--i
>=
0) r[i] =
0
14282 for (i =
0; i < x.t -
1; ++i) {
14283 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14284 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14289 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14294 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14295 // r != q, this != m. q or r may be null.
14296 function bnpDivRemTo(m, q, r) {
14299 if (pm.t <=
0) return
14300 var pt = self.abs()
14302 if (q != null) q.fromInt(
0)
14303 if (r != null) self.copyTo(r)
14306 if (r == null) r = new BigInteger()
14307 var y = new BigInteger(),
14310 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14312 pm.lShiftTo(nsh, y)
14313 pt.lShiftTo(nsh, r)
14320 if (y0 ==
0) return
14321 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14322 var d1 = self.FV / yt,
14323 d2 = (
1 << self.F1) / yt,
14327 t = (q == null) ? new BigInteger() : q
14329 if (r.compareTo(t)
>=
0) {
14333 BigInteger.ONE.dlShiftTo(ys, t)
14334 t.subTo(y, y); // "negative" y so we can replace sub with am later
14335 while (y.t < ys) y[y.t++] =
0
14337 // Estimate quotient digit
14338 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14339 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14342 while (r[i] < --qd) r.subTo(t, r)
14347 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14351 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14352 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14355 // (public) this mod a
14356 function bnMod(a) {
14357 var r = new BigInteger()
14359 .divRemTo(a, null, r)
14360 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14364 // Modular reduction using
"classic" algorithm
14365 function Classic(m) {
14369 function cConvert(x) {
14370 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14374 function cRevert(x) {
14378 function cReduce(x) {
14379 x.divRemTo(this.m, null, x)
14382 function cMulTo(x, y, r) {
14387 function cSqrTo(x, r) {
14392 Classic.prototype.convert = cConvert
14393 Classic.prototype.revert = cRevert
14394 Classic.prototype.reduce = cReduce
14395 Classic.prototype.mulTo = cMulTo
14396 Classic.prototype.sqrTo = cSqrTo
14398 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14402 // xy(
2-xy) = (
1+km)(
1-km)
14403 // x[y(
2-xy)] =
1-k^
2m^
2
14404 // x[y(
2-xy)] ==
1 (mod m^
2)
14405 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14406 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14407 // JS multiply "overflows" differently from C/C++, so care is needed here.
14408 function bnpInvDigit() {
14409 if (this.t <
1) return
0
14411 if ((x &
1) ==
0) return
0
14412 var y = x &
3; // y ==
1/x mod
2^
2
14413 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14414 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14415 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14416 // last step - calculate inverse mod DV directly
14417 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14418 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14419 // we really want the negative inverse, and -DV < y < DV
14420 return (y
> 0) ? this.DV - y : -y
14423 // Montgomery reduction
14424 function Montgomery(m) {
14426 this.mp = m.invDigit()
14427 this.mpl = this.mp &
0x7fff
14428 this.mph = this.mp
>> 15
14429 this.um = (
1 << (m.DB -
15)) -
1
14434 function montConvert(x) {
14435 var r = new BigInteger()
14437 .dlShiftTo(this.m.t, r)
14438 r.divRemTo(this.m, null, r)
14439 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14444 function montRevert(x) {
14445 var r = new BigInteger()
14451 // x = x/R mod m (HAC
14.32)
14452 function montReduce(x) {
14453 while (x.t <= this.mt2) // pad x so am has enough room later
14455 for (var i =
0; i < this.m.t; ++i) {
14456 // faster way of calculating u0 = x[i]*mp mod DV
14457 var j = x[i] &
0x7fff
14458 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14459 // use am to combine the multiply-shift-add into one call
14461 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14463 while (x[j]
>= x.DV) {
14469 x.drShiftTo(this.m.t, x)
14470 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14473 // r = "x^
2/R mod m"; x != r
14474 function montSqrTo(x, r) {
14479 // r = "xy/R mod m"; x,y != r
14480 function montMulTo(x, y, r) {
14485 Montgomery.prototype.convert = montConvert
14486 Montgomery.prototype.revert = montRevert
14487 Montgomery.prototype.reduce = montReduce
14488 Montgomery.prototype.mulTo = montMulTo
14489 Montgomery.prototype.sqrTo = montSqrTo
14491 // (protected) true iff this is even
14492 function bnpIsEven() {
14493 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14496 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14497 function bnpExp(e, z) {
14498 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14499 var r = new BigInteger(),
14500 r2 = new BigInteger(),
14501 g = z.convert(this),
14506 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14516 // (public) this^e % m,
0 <= e <
2^
32
14517 function bnModPowInt(e, m) {
14519 if (e <
256 || m.isEven()) z = new Classic(m)
14520 else z = new Montgomery(m)
14521 return this.exp(e, z)
14525 proto.copyTo = bnpCopyTo
14526 proto.fromInt = bnpFromInt
14527 proto.fromString = bnpFromString
14528 proto.clamp = bnpClamp
14529 proto.dlShiftTo = bnpDLShiftTo
14530 proto.drShiftTo = bnpDRShiftTo
14531 proto.lShiftTo = bnpLShiftTo
14532 proto.rShiftTo = bnpRShiftTo
14533 proto.subTo = bnpSubTo
14534 proto.multiplyTo = bnpMultiplyTo
14535 proto.squareTo = bnpSquareTo
14536 proto.divRemTo = bnpDivRemTo
14537 proto.invDigit = bnpInvDigit
14538 proto.isEven = bnpIsEven
14542 proto.toString = bnToString
14543 proto.negate = bnNegate
14545 proto.compareTo = bnCompareTo
14546 proto.bitLength = bnBitLength
14547 proto.byteLength = bnByteLength
14549 proto.modPowInt = bnModPowInt
14552 function bnClone() {
14553 var r = new BigInteger()
14558 // (public) return value as integer
14559 function bnIntValue() {
14561 if (this.t ==
1) return this[
0] - this.DV
14562 else if (this.t ==
0) return -
1
14563 } else if (this.t ==
1) return this[
0]
14564 else if (this.t ==
0) return
0
14565 // assumes
16 < DB <
32
14566 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14569 // (public) return value as byte
14570 function bnByteValue() {
14571 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14574 // (public) return value as short (assumes DB
>=
16)
14575 function bnShortValue() {
14576 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14579 // (protected) return x s.t. r^x < DV
14580 function bnpChunkSize(r) {
14581 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14584 // (public)
0 if this ==
0,
1 if this
> 0
14585 function bnSigNum() {
14586 if (this.s <
0) return -
1
14587 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14591 // (protected) convert to radix string
14592 function bnpToRadix(b) {
14593 if (b == null) b =
10
14594 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14595 var cs = this.chunkSize(b)
14596 var a = Math.pow(b, cs)
14598 y = new BigInteger(),
14599 z = new BigInteger(),
14601 this.divRemTo(d, y, z)
14602 while (y.signum()
> 0) {
14603 r = (a + z.intValue())
14606 y.divRemTo(d, y, z)
14608 return z.intValue()
14612 // (protected) convert from radix string
14613 function bnpFromRadix(s, b) {
14616 if (b == null) b =
10
14617 var cs = self.chunkSize(b)
14618 var d = Math.pow(b, cs),
14622 for (var i =
0; i < s.length; ++i) {
14623 var x = intAt(s, i)
14625 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14631 self.dAddOffset(w,
0)
14637 self.dMultiply(Math.pow(b, j))
14638 self.dAddOffset(w,
0)
14640 if (mi) BigInteger.ZERO.subTo(self, self)
14643 // (protected) alternate constructor
14644 function bnpFromNumber(a, b, c) {
14646 if (
"number" == typeof b) {
14647 // new BigInteger(int,int,RNG)
14648 if (a <
2) self.fromInt(
1)
14650 self.fromNumber(a, c)
14651 if (!self.testBit(a -
1)) // force MSB set
14652 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14653 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14654 while (!self.isProbablePrime(b)) {
14655 self.dAddOffset(
2,
0)
14656 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14660 // new BigInteger(int,RNG)
14661 var x = new Array(),
14663 x.length = (a
>> 3) +
1
14665 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14667 self.fromString(x,
256)
14671 // (public) convert to bigendian byte array
14672 function bnToByteArray() {
14677 var p = self.DB - (i * self.DB) %
8,
14680 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14681 r[k++] = d | (self.s << (self.DB - p))
14684 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14685 d |= self[--i]
>> (p += self.DB -
8)
14687 d = (self[i]
>> (p -=
8)) &
0xff
14693 if ((d &
0x80) !=
0) d |= -
256
14694 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14695 if (k
> 0 || d != self.s) r[k++] = d
14701 function bnEquals(a) {
14702 return (this.compareTo(a) ==
0)
14705 function bnMin(a) {
14706 return (this.compareTo(a) <
0) ? this : a
14709 function bnMax(a) {
14710 return (this.compareTo(a)
> 0) ? this : a
14713 // (protected) r = this op a (bitwise)
14714 function bnpBitwiseTo(a, op, r) {
14716 var i, f, m = Math.min(a.t, self.t)
14717 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14718 if (a.t < self.t) {
14720 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14723 f = self.s & self.DM
14724 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14727 r.s = op(self.s, a.s)
14731 // (public) this & a
14732 function op_and(x, y) {
14736 function bnAnd(a) {
14737 var r = new BigInteger()
14738 this.bitwiseTo(a, op_and, r)
14742 // (public) this | a
14743 function op_or(x, y) {
14748 var r = new BigInteger()
14749 this.bitwiseTo(a, op_or, r)
14753 // (public) this ^ a
14754 function op_xor(x, y) {
14758 function bnXor(a) {
14759 var r = new BigInteger()
14760 this.bitwiseTo(a, op_xor, r)
14764 // (public) this & ~a
14765 function op_andnot(x, y) {
14769 function bnAndNot(a) {
14770 var r = new BigInteger()
14771 this.bitwiseTo(a, op_andnot, r)
14777 var r = new BigInteger()
14778 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14784 // (public) this << n
14785 function bnShiftLeft(n) {
14786 var r = new BigInteger()
14787 if (n <
0) this.rShiftTo(-n, r)
14788 else this.lShiftTo(n, r)
14792 // (public) this
>> n
14793 function bnShiftRight(n) {
14794 var r = new BigInteger()
14795 if (n <
0) this.lShiftTo(-n, r)
14796 else this.rShiftTo(n, r)
14800 // return index of lowest
1-bit in x, x <
2^
31
14802 if (x ==
0) return -
1
14804 if ((x &
0xffff) ==
0) {
14808 if ((x &
0xff) ==
0) {
14812 if ((x &
0xf) ==
0) {
14816 if ((x &
3) ==
0) {
14820 if ((x &
1) ==
0)++r
14824 // (public) returns index of lowest
1-bit (or -
1 if none)
14825 function bnGetLowestSetBit() {
14826 for (var i =
0; i < this.t; ++i)
14827 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14828 if (this.s <
0) return this.t * this.DB
14832 // return number of
1 bits in x
14842 // (public) return number of set bits
14843 function bnBitCount() {
14845 x = this.s & this.DM
14846 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14850 // (public) true iff nth bit is set
14851 function bnTestBit(n) {
14852 var j = Math.floor(n / this.DB)
14853 if (j
>= this.t) return (this.s !=
0)
14854 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14857 // (protected) this op (
1<
<n)
14858 function bnpChangeBit(n, op) {
14859 var r = BigInteger.ONE.shiftLeft(n)
14860 this.bitwiseTo(r, op, r)
14864 // (public) this | (
1<
<n)
14865 function bnSetBit(n) {
14866 return this.changeBit(n, op_or)
14869 // (public) this & ~(
1<
<n)
14870 function bnClearBit(n) {
14871 return this.changeBit(n, op_andnot)
14874 // (public) this ^ (
1<
<n)
14875 function bnFlipBit(n) {
14876 return this.changeBit(n, op_xor)
14879 // (protected) r = this + a
14880 function bnpAddTo(a, r) {
14885 m = Math.min(a.t, self.t)
14887 c += self[i] + a[i]
14888 r[i++] = c & self.DM
14891 if (a.t < self.t) {
14893 while (i < self.t) {
14895 r[i++] = c & self.DM
14903 r[i++] = c & self.DM
14908 r.s = (c <
0) ? -
1 :
0
14909 if (c
> 0) r[i++] = c
14910 else if (c < -
1) r[i++] = self.DV + c
14915 // (public) this + a
14916 function bnAdd(a) {
14917 var r = new BigInteger()
14922 // (public) this - a
14923 function bnSubtract(a) {
14924 var r = new BigInteger()
14929 // (public) this * a
14930 function bnMultiply(a) {
14931 var r = new BigInteger()
14932 this.multiplyTo(a, r)
14937 function bnSquare() {
14938 var r = new BigInteger()
14943 // (public) this / a
14944 function bnDivide(a) {
14945 var r = new BigInteger()
14946 this.divRemTo(a, r, null)
14950 // (public) this % a
14951 function bnRemainder(a) {
14952 var r = new BigInteger()
14953 this.divRemTo(a, null, r)
14957 // (public) [this/a,this%a]
14958 function bnDivideAndRemainder(a) {
14959 var q = new BigInteger(),
14960 r = new BigInteger()
14961 this.divRemTo(a, q, r)
14962 return new Array(q, r)
14965 // (protected) this *= n, this
>=
0,
1 < n < DV
14966 function bnpDMultiply(n) {
14967 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14972 // (protected) this += n << w words, this
>=
0
14973 function bnpDAddOffset(n, w) {
14975 while (this.t <= w) this[this.t++] =
0
14977 while (this[w]
>= this.DV) {
14979 if (++w
>= this.t) this[this.t++] =
0
14984 // A "null" reducer
14985 function NullExp() {}
14991 function nMulTo(x, y, r) {
14995 function nSqrTo(x, r) {
14999 NullExp.prototype.convert = nNop
15000 NullExp.prototype.revert = nNop
15001 NullExp.prototype.mulTo = nMulTo
15002 NullExp.prototype.sqrTo = nSqrTo
15005 function bnPow(e) {
15006 return this.exp(e, new NullExp())
15009 // (protected) r = lower n words of "this * a", a.t <= n
15010 // "this" should be the larger one if appropriate.
15011 function bnpMultiplyLowerTo(a, n, r) {
15012 var i = Math.min(this.t + a.t, n)
15013 r.s =
0; // assumes a,this
>=
0
15015 while (i
> 0) r[--i] =
0
15017 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
15018 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
15022 // (protected) r =
"this * a" without lower n words, n
> 0
15023 //
"this" should be the larger one if appropriate.
15024 function bnpMultiplyUpperTo(a, n, r) {
15026 var i = r.t = this.t + a.t - n
15027 r.s =
0; // assumes a,this
>=
0
15028 while (--i
>=
0) r[i] =
0
15029 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15030 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15035 // Barrett modular reduction
15036 function Barrett(m) {
15038 this.r2 = new BigInteger()
15039 this.q3 = new BigInteger()
15040 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15041 this.mu = this.r2.divide(m)
15045 function barrettConvert(x) {
15046 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15047 else if (x.compareTo(this.m) <
0) return x
15049 var r = new BigInteger()
15056 function barrettRevert(x) {
15060 // x = x mod m (HAC
14.42)
15061 function barrettReduce(x) {
15063 x.drShiftTo(self.m.t -
1, self.r2)
15064 if (x.t
> self.m.t +
1) {
15068 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15069 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15070 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15071 x.subTo(self.r2, x)
15072 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15075 // r = x^
2 mod m; x != r
15076 function barrettSqrTo(x, r) {
15081 // r = x*y mod m; x,y != r
15082 function barrettMulTo(x, y, r) {
15087 Barrett.prototype.convert = barrettConvert
15088 Barrett.prototype.revert = barrettRevert
15089 Barrett.prototype.reduce = barrettReduce
15090 Barrett.prototype.mulTo = barrettMulTo
15091 Barrett.prototype.sqrTo = barrettSqrTo
15093 // (public) this^e % m (HAC
14.85)
15094 function bnModPow(e, m) {
15095 var i = e.bitLength(),
15098 if (i <=
0) return r
15099 else if (i <
18) k =
1
15100 else if (i <
48) k =
3
15101 else if (i <
144) k =
4
15102 else if (i <
768) k =
5
15106 else if (m.isEven())
15109 z = new Montgomery(m)
15112 var g = new Array(),
15116 g[
1] = z.convert(this)
15118 var g2 = new BigInteger()
15121 g[n] = new BigInteger()
15122 z.mulTo(g2, g[n -
2], g[n])
15129 r2 = new BigInteger(),
15131 i = nbits(e[j]) -
1
15133 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15135 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15136 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15140 while ((w &
1) ==
0) {
15144 if ((i -= n) <
0) {
15148 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15157 if (n
> 0) z.sqrTo(r, r2)
15163 z.mulTo(r2, g[w], r)
15166 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15180 // (public) gcd(this,a) (HAC
14.54)
15181 function bnGCD(a) {
15182 var x = (this.s <
0) ? this.negate() : this.clone()
15183 var y = (a.s <
0) ? a.negate() : a.clone()
15184 if (x.compareTo(y) <
0) {
15189 var i = x.getLowestSetBit(),
15190 g = y.getLowestSetBit()
15191 if (g <
0) return x
15197 while (x.signum()
> 0) {
15198 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15199 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15200 if (x.compareTo(y)
>=
0) {
15208 if (g
> 0) y.lShiftTo(g, y)
15212 // (protected) this % n, n <
2^
26
15213 function bnpModInt(n) {
15214 if (n <=
0) return
0
15215 var d = this.DV % n,
15216 r = (this.s <
0) ? n -
1 :
0
15218 if (d ==
0) r = this[
0] % n
15220 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15224 // (public)
1/this % m (HAC
14.61)
15225 function bnModInverse(m) {
15226 var ac = m.isEven()
15227 if (this.signum() ===
0) throw new Error('division by zero')
15228 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15235 while (u.signum() !=
0) {
15236 while (u.isEven()) {
15239 if (!a.isEven() || !b.isEven()) {
15244 } else if (!b.isEven()) b.subTo(m, b)
15247 while (v.isEven()) {
15250 if (!c.isEven() || !d.isEven()) {
15255 } else if (!d.isEven()) d.subTo(m, d)
15258 if (u.compareTo(v)
>=
0) {
15260 if (ac) a.subTo(c, a)
15264 if (ac) c.subTo(a, c)
15268 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15269 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15270 while (d.signum() <
0) d.addTo(m, d)
15275 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15276 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15277 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15278 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15279 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15280 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15281 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15282 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15283 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15284 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15285 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15288 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15290 // (public) test primality with certainty
>=
1-
.5^t
15291 function bnIsProbablePrime(t) {
15292 var i, x = this.abs()
15293 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15294 for (i =
0; i < lowprimes.length; ++i)
15295 if (x[
0] == lowprimes[i]) return true
15298 if (x.isEven()) return false
15300 while (i < lowprimes.length) {
15301 var m = lowprimes[i],
15303 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15305 while (i < j) if (m % lowprimes[i++] ==
0) return false
15307 return x.millerRabin(t)
15310 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15311 function bnpMillerRabin(t) {
15312 var n1 = this.subtract(BigInteger.ONE)
15313 var k = n1.getLowestSetBit()
15314 if (k <=
0) return false
15315 var r = n1.shiftRight(k)
15317 if (t
> lowprimes.length) t = lowprimes.length
15318 var a = new BigInteger(null)
15320 for (var i =
0; i < t; ++i) {
15322 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15323 if (bases.indexOf(j) == -
1) break
15327 var y = a.modPow(r, this)
15328 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15330 while (j++ < k && y.compareTo(n1) !=
0) {
15331 y = y.modPowInt(
2, this)
15332 if (y.compareTo(BigInteger.ONE) ==
0) return false
15334 if (y.compareTo(n1) !=
0) return false
15341 proto.chunkSize = bnpChunkSize
15342 proto.toRadix = bnpToRadix
15343 proto.fromRadix = bnpFromRadix
15344 proto.fromNumber = bnpFromNumber
15345 proto.bitwiseTo = bnpBitwiseTo
15346 proto.changeBit = bnpChangeBit
15347 proto.addTo = bnpAddTo
15348 proto.dMultiply = bnpDMultiply
15349 proto.dAddOffset = bnpDAddOffset
15350 proto.multiplyLowerTo = bnpMultiplyLowerTo
15351 proto.multiplyUpperTo = bnpMultiplyUpperTo
15352 proto.modInt = bnpModInt
15353 proto.millerRabin = bnpMillerRabin
15356 proto.clone = bnClone
15357 proto.intValue = bnIntValue
15358 proto.byteValue = bnByteValue
15359 proto.shortValue = bnShortValue
15360 proto.signum = bnSigNum
15361 proto.toByteArray = bnToByteArray
15362 proto.equals = bnEquals
15368 proto.andNot = bnAndNot
15370 proto.shiftLeft = bnShiftLeft
15371 proto.shiftRight = bnShiftRight
15372 proto.getLowestSetBit = bnGetLowestSetBit
15373 proto.bitCount = bnBitCount
15374 proto.testBit = bnTestBit
15375 proto.setBit = bnSetBit
15376 proto.clearBit = bnClearBit
15377 proto.flipBit = bnFlipBit
15379 proto.subtract = bnSubtract
15380 proto.multiply = bnMultiply
15381 proto.divide = bnDivide
15382 proto.remainder = bnRemainder
15383 proto.divideAndRemainder = bnDivideAndRemainder
15384 proto.modPow = bnModPow
15385 proto.modInverse = bnModInverse
15388 proto.isProbablePrime = bnIsProbablePrime
15390 // JSBN-specific extension
15391 proto.square = bnSquare
15394 BigInteger.ZERO = nbv(
0)
15395 BigInteger.ONE = nbv(
1)
15396 BigInteger.valueOf = nbv
15398 module.exports = BigInteger
15400 },{"../package.json":
38}],
36:[function(require,module,exports){
15401 (function (Buffer){
15402 // FIXME: Kind of a weird way to throw exceptions, consider removing
15403 var assert = require('assert')
15404 var BigInteger = require('./bigi')
15407 * Turns a byte array into a big integer.
15409 * This function will interpret a byte array as a big integer in big
15412 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15413 // BigInteger expects a DER integer conformant byte array
15414 if (byteArray[
0] &
0x80) {
15415 return new BigInteger([
0].concat(byteArray))
15418 return new BigInteger(byteArray)
15422 * Returns a byte array representation of the big integer.
15424 * This returns the absolute of the contained value in big endian
15425 * form. A value of zero results in an empty array.
15427 BigInteger.prototype.toByteArrayUnsigned = function() {
15428 var byteArray = this.toByteArray()
15429 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15432 BigInteger.fromDERInteger = function(byteArray) {
15433 return new BigInteger(byteArray)
15437 * Converts BigInteger to a DER integer representation.
15439 * The format for this value uses the most significant bit as a sign
15440 * bit. If the most significant bit is already set and the integer is
15441 * positive, a
0x00 is prepended.
15456 *
62300 =
> 0x00f35c
15457 * -
62300 =
> 0xff0ca4
15459 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15461 BigInteger.fromBuffer = function(buffer) {
15462 // BigInteger expects a DER integer conformant byte array
15463 if (buffer[
0] &
0x80) {
15464 var byteArray = Array.prototype.slice.call(buffer)
15466 return new BigInteger([
0].concat(byteArray))
15469 return new BigInteger(buffer)
15472 BigInteger.fromHex = function(hex) {
15473 if (hex === '') return BigInteger.ZERO
15475 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15476 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15477 return new BigInteger(hex,
16)
15480 BigInteger.prototype.toBuffer = function(size) {
15481 var byteArray = this.toByteArrayUnsigned()
15484 var padding = size - byteArray.length
15485 while (zeros.length < padding) zeros.push(
0)
15487 return new Buffer(zeros.concat(byteArray))
15490 BigInteger.prototype.toHex = function(size) {
15491 return this.toBuffer(size).toString('hex')
15494 }).call(this,require(
"buffer").Buffer)
15495 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15496 var BigInteger = require('./bigi')
15499 require('./convert')
15501 module.exports = BigInteger
15502 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15507 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15510 "_from":
"bigi@latest",
15511 "_id":
"bigi@1.4.2",
15513 "_installable": true,
15514 "_location":
"/bigi",
15515 "_nodeVersion":
"6.1.0",
15516 "_npmOperationalInternal": {
15517 "host":
"packages-12-west.internal.npmjs.com",
15518 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15521 "email":
"jprichardson@gmail.com",
15522 "name":
"jprichardson"
15524 "_npmVersion":
"3.8.6",
15525 "_phantomChildren": {},
15539 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15540 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15541 "_shrinkwrap": null,
15543 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15545 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15547 "dependencies": {},
15548 "description":
"Big integers.",
15549 "devDependencies": {
15550 "coveralls":
"^2.11.2",
15551 "istanbul":
"^0.3.5",
15552 "jshint":
"^2.5.1",
15554 "mochify":
"^2.1.0"
15558 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15559 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15561 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15562 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15580 "main":
"./lib/index.js",
15583 "email":
"boydb@midnightdesign.ws",
15584 "name":
"midnightlightning"
15587 "email":
"sidazhang89@gmail.com",
15588 "name":
"sidazhang"
15591 "email":
"npm@shesek.info",
15595 "email":
"jprichardson@gmail.com",
15596 "name":
"jprichardson"
15600 "optionalDependencies": {},
15601 "readme":
"ERROR: No README data found!",
15604 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15607 "browser-test":
"mochify --wd -R spec",
15608 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15609 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15610 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15611 "test":
"_mocha -- test/*.js",
15619 "safari/6.0..latest",
15620 "iphone/6.0..latest",
15621 "android-browser/4.2..latest"
15623 "files":
"test/*.js",
15629 },{}],
39:[function(require,module,exports){
15630 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15631 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15632 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15634 var Buffer = require('safe-buffer').Buffer
15636 function check (buffer) {
15637 if (buffer.length <
8) return false
15638 if (buffer.length
> 72) return false
15639 if (buffer[
0] !==
0x30) return false
15640 if (buffer[
1] !== buffer.length -
2) return false
15641 if (buffer[
2] !==
0x02) return false
15643 var lenR = buffer[
3]
15644 if (lenR ===
0) return false
15645 if (
5 + lenR
>= buffer.length) return false
15646 if (buffer[
4 + lenR] !==
0x02) return false
15648 var lenS = buffer[
5 + lenR]
15649 if (lenS ===
0) return false
15650 if ((
6 + lenR + lenS) !== buffer.length) return false
15652 if (buffer[
4] &
0x80) return false
15653 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15655 if (buffer[lenR +
6] &
0x80) return false
15656 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15660 function decode (buffer) {
15661 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15662 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15663 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15664 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15665 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15667 var lenR = buffer[
3]
15668 if (lenR ===
0) throw new Error('R length is zero')
15669 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15670 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15672 var lenS = buffer[
5 + lenR]
15673 if (lenS ===
0) throw new Error('S length is zero')
15674 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15676 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15677 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15679 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15680 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15682 // non-BIP66 - extract R, S values
15684 r: buffer.slice(
4,
4 + lenR),
15685 s: buffer.slice(
6 + lenR)
15690 * Expects r and s to be positive DER integers.
15692 * The DER format uses the most significant bit as a sign bit (&
0x80).
15693 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15708 *
62300 =
> 0x00f35c
15709 * -
62300 =
> 0xff0ca4
15711 function encode (r, s) {
15712 var lenR = r.length
15713 var lenS = s.length
15714 if (lenR ===
0) throw new Error('R length is zero')
15715 if (lenS ===
0) throw new Error('S length is zero')
15716 if (lenR
> 33) throw new Error('R length is too long')
15717 if (lenS
> 33) throw new Error('S length is too long')
15718 if (r[
0] &
0x80) throw new Error('R value is negative')
15719 if (s[
0] &
0x80) throw new Error('S value is negative')
15720 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15721 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15723 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15725 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15726 signature[
0] =
0x30
15727 signature[
1] = signature.length -
2
15728 signature[
2] =
0x02
15729 signature[
3] = r.length
15730 r.copy(signature,
4)
15731 signature[
4 + lenR] =
0x02
15732 signature[
5 + lenR] = s.length
15733 s.copy(signature,
6 + lenR)
15744 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15748 "OP_PUSHDATA1":
76,
15749 "OP_PUSHDATA2":
77,
15750 "OP_PUSHDATA4":
78,
15776 "OP_VERNOTIF":
102,
15782 "OP_TOALTSTACK":
107,
15783 "OP_FROMALTSTACK":
108,
15813 "OP_EQUALVERIFY":
136,
15814 "OP_RESERVED1":
137,
15815 "OP_RESERVED2":
138,
15824 "OP_0NOTEQUAL":
146,
15835 "OP_NUMEQUAL":
156,
15836 "OP_NUMEQUALVERIFY":
157,
15837 "OP_NUMNOTEQUAL":
158,
15838 "OP_LESSTHAN":
159,
15839 "OP_GREATERTHAN":
160,
15840 "OP_LESSTHANOREQUAL":
161,
15841 "OP_GREATERTHANOREQUAL":
162,
15847 "OP_RIPEMD160":
166,
15852 "OP_CODESEPARATOR":
171,
15853 "OP_CHECKSIG":
172,
15854 "OP_CHECKSIGVERIFY":
173,
15855 "OP_CHECKMULTISIG":
174,
15856 "OP_CHECKMULTISIGVERIFY":
175,
15860 "OP_CHECKLOCKTIMEVERIFY":
177,
15871 "OP_PUBKEYHASH":
253,
15873 "OP_INVALIDOPCODE":
255
15876 },{}],
41:[function(require,module,exports){
15877 var OPS = require('./index.json')
15880 for (var op in OPS) {
15885 module.exports = map
15887 },{
"./index.json":
40}],
42:[function(require,module,exports){
15888 var Buffer = require('safe-buffer').Buffer
15889 var bs58check = require('bs58check')
15890 var bscript = require('./script')
15891 var networks = require('./networks')
15892 var typeforce = require('typeforce')
15893 var types = require('./types')
15895 function fromBase58Check (address) {
15896 var payload = bs58check.decode(address)
15897 if (payload.length <
21) throw new TypeError(address + ' is too short')
15898 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15900 var version = payload.readUInt8(
0)
15901 var hash = payload.slice(
1)
15903 return { hash: hash, version: version }
15906 function toBase58Check (hash, version) {
15907 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15909 var payload = Buffer.allocUnsafe(
21)
15910 payload.writeUInt8(version,
0)
15911 hash.copy(payload,
1)
15913 return bs58check.encode(payload)
15916 function fromOutputScript (outputScript, network) {
15917 network = network || networks.bitcoin
15919 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15920 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15922 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15925 function toOutputScript (address, network) {
15926 network = network || networks.bitcoin
15928 var decode = fromBase58Check(address)
15929 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15930 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15932 throw new Error(address + ' has no matching Script')
15936 fromBase58Check: fromBase58Check,
15937 fromOutputScript: fromOutputScript,
15938 toBase58Check: toBase58Check,
15939 toOutputScript: toOutputScript
15942 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15943 var Buffer = require('safe-buffer').Buffer
15944 var bcrypto = require('./crypto')
15945 var fastMerkleRoot = require('merkle-lib/fastRoot')
15946 var typeforce = require('typeforce')
15947 var types = require('./types')
15948 var varuint = require('varuint-bitcoin')
15950 var Transaction = require('./transaction')
15952 function Block () {
15954 this.prevHash = null
15955 this.merkleRoot = null
15961 Block.fromBuffer = function (buffer) {
15962 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15965 function readSlice (n) {
15967 return buffer.slice(offset - n, offset)
15970 function readUInt32 () {
15971 var i = buffer.readUInt32LE(offset)
15976 function readInt32 () {
15977 var i = buffer.readInt32LE(offset)
15982 var block = new Block()
15983 block.version = readInt32()
15984 block.prevHash = readSlice(
32)
15985 block.merkleRoot = readSlice(
32)
15986 block.timestamp = readUInt32()
15987 block.bits = readUInt32()
15988 block.nonce = readUInt32()
15990 if (buffer.length ===
80) return block
15992 function readVarInt () {
15993 var vi = varuint.decode(buffer, offset)
15994 offset += varuint.decode.bytes
15998 function readTransaction () {
15999 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16000 offset += tx.byteLength()
16004 var nTransactions = readVarInt()
16005 block.transactions = []
16007 for (var i =
0; i < nTransactions; ++i) {
16008 var tx = readTransaction()
16009 block.transactions.push(tx)
16015 Block.prototype.byteLength = function (headersOnly) {
16016 if (headersOnly || !this.transactions) return
80
16018 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
16019 return a + x.byteLength()
16023 Block.fromHex = function (hex) {
16024 return Block.fromBuffer(Buffer.from(hex, 'hex'))
16027 Block.prototype.getHash = function () {
16028 return bcrypto.hash256(this.toBuffer(true))
16031 Block.prototype.getId = function () {
16032 return this.getHash().reverse().toString('hex')
16035 Block.prototype.getUTCDate = function () {
16036 var date = new Date(
0) // epoch
16037 date.setUTCSeconds(this.timestamp)
16042 // TODO: buffer, offset compatibility
16043 Block.prototype.toBuffer = function (headersOnly) {
16044 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16047 function writeSlice (slice) {
16048 slice.copy(buffer, offset)
16049 offset += slice.length
16052 function writeInt32 (i) {
16053 buffer.writeInt32LE(i, offset)
16056 function writeUInt32 (i) {
16057 buffer.writeUInt32LE(i, offset)
16061 writeInt32(this.version)
16062 writeSlice(this.prevHash)
16063 writeSlice(this.merkleRoot)
16064 writeUInt32(this.timestamp)
16065 writeUInt32(this.bits)
16066 writeUInt32(this.nonce)
16068 if (headersOnly || !this.transactions) return buffer
16070 varuint.encode(this.transactions.length, buffer, offset)
16071 offset += varuint.encode.bytes
16073 this.transactions.forEach(function (tx) {
16074 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16075 tx.toBuffer(buffer, offset)
16082 Block.prototype.toHex = function (headersOnly) {
16083 return this.toBuffer(headersOnly).toString('hex')
16086 Block.calculateTarget = function (bits) {
16087 var exponent = ((bits &
0xff000000)
>> 24) -
3
16088 var mantissa = bits &
0x007fffff
16089 var target = Buffer.alloc(
32,
0)
16090 target.writeUInt32BE(mantissa,
28 - exponent)
16094 Block.calculateMerkleRoot = function (transactions) {
16095 typeforce([{ getHash: types.Function }], transactions)
16096 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16098 var hashes = transactions.map(function (transaction) {
16099 return transaction.getHash()
16102 return fastMerkleRoot(hashes, bcrypto.hash256)
16105 Block.prototype.checkMerkleRoot = function () {
16106 if (!this.transactions) return false
16108 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16109 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16112 Block.prototype.checkProofOfWork = function () {
16113 var hash = this.getHash().reverse()
16114 var target = Block.calculateTarget(this.bits)
16116 return hash.compare(target) <=
0
16119 module.exports = Block
16121 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16122 var pushdata = require('pushdata-bitcoin')
16123 var varuint = require('varuint-bitcoin')
16125 // https://github.com/feross/buffer/blob/master/index.js#L1127
16126 function verifuint (value, max) {
16127 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16128 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16129 if (value
> max) throw new Error('RangeError: value out of range')
16130 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16133 function readUInt64LE (buffer, offset) {
16134 var a = buffer.readUInt32LE(offset)
16135 var b = buffer.readUInt32LE(offset +
4)
16138 verifuint(b + a,
0x001fffffffffffff)
16143 function writeUInt64LE (buffer, value, offset) {
16144 verifuint(value,
0x001fffffffffffff)
16146 buffer.writeInt32LE(value & -
1, offset)
16147 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16151 // TODO: remove in
4.0.0?
16152 function readVarInt (buffer, offset) {
16153 var result = varuint.decode(buffer, offset)
16157 size: varuint.decode.bytes
16161 // TODO: remove in
4.0.0?
16162 function writeVarInt (buffer, number, offset) {
16163 varuint.encode(number, buffer, offset)
16164 return varuint.encode.bytes
16168 pushDataSize: pushdata.encodingLength,
16169 readPushDataInt: pushdata.decode,
16170 readUInt64LE: readUInt64LE,
16171 readVarInt: readVarInt,
16172 varIntBuffer: varuint.encode,
16173 varIntSize: varuint.encodingLength,
16174 writePushDataInt: pushdata.encode,
16175 writeUInt64LE: writeUInt64LE,
16176 writeVarInt: writeVarInt
16179 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16180 var createHash = require('create-hash')
16182 function ripemd160 (buffer) {
16183 return createHash('rmd160').update(buffer).digest()
16186 function sha1 (buffer) {
16187 return createHash('sha1').update(buffer).digest()
16190 function sha256 (buffer) {
16191 return createHash('sha256').update(buffer).digest()
16194 function hash160 (buffer) {
16195 return ripemd160(sha256(buffer))
16198 function hash256 (buffer) {
16199 return sha256(sha256(buffer))
16205 ripemd160: ripemd160,
16210 },{"create-hash":
82}],
46:[function(require,module,exports){
16211 var Buffer = require('safe-buffer').Buffer
16212 var createHmac = require('create-hmac')
16213 var typeforce = require('typeforce')
16214 var types = require('./types')
16216 var BigInteger = require('bigi')
16217 var ECSignature = require('./ecsignature')
16219 var ZERO = Buffer.alloc(
1,
0)
16220 var ONE = Buffer.alloc(
1,
1)
16222 var ecurve = require('ecurve')
16223 var secp256k1 = ecurve.getCurveByName('secp256k1')
16225 // https://tools.ietf.org/html/rfc6979#section-
3.2
16226 function deterministicGenerateK (hash, x, checkSig) {
16227 typeforce(types.tuple(
16229 types.Buffer256bit,
16233 // Step A, ignored as hash already provided
16236 var k = Buffer.alloc(
32,
0)
16237 var v = Buffer.alloc(
32,
1)
16240 k = createHmac('sha256', k)
16248 v = createHmac('sha256', k).update(v).digest()
16251 k = createHmac('sha256', k)
16259 v = createHmac('sha256', k).update(v).digest()
16261 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16263 v = createHmac('sha256', k).update(v).digest()
16265 var T = BigInteger.fromBuffer(v)
16267 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16268 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16269 k = createHmac('sha256', k)
16274 v = createHmac('sha256', k).update(v).digest()
16276 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16278 v = createHmac('sha256', k).update(v).digest()
16279 T = BigInteger.fromBuffer(v)
16285 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16287 function sign (hash, d) {
16288 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16290 var x = d.toBuffer(
32)
16291 var e = BigInteger.fromBuffer(hash)
16292 var n = secp256k1.n
16293 var G = secp256k1.G
16296 deterministicGenerateK(hash, x, function (k) {
16297 var Q = G.multiply(k)
16299 if (secp256k1.isInfinity(Q)) return false
16301 r = Q.affineX.mod(n)
16302 if (r.signum() ===
0) return false
16304 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16305 if (s.signum() ===
0) return false
16310 // enforce low S values, see bip62: 'low s values in signatures'
16311 if (s.compareTo(N_OVER_TWO)
> 0) {
16315 return new ECSignature(r, s)
16318 function verify (hash, signature, Q) {
16319 typeforce(types.tuple(
16325 var n = secp256k1.n
16326 var G = secp256k1.G
16328 var r = signature.r
16329 var s = signature.s
16331 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16332 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16333 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16335 //
1.4.2 H = Hash(M), already done by the user
16337 var e = BigInteger.fromBuffer(hash)
16340 var sInv = s.modInverse(n)
16342 //
1.4.4 Compute u1 = es^−
1 mod n
16343 // u2 = rs^−
1 mod n
16344 var u1 = e.multiply(sInv).mod(n)
16345 var u2 = r.multiply(sInv).mod(n)
16347 //
1.4.5 Compute R = (xR, yR)
16349 var R = G.multiplyTwo(u1, Q, u2)
16351 //
1.4.5 (cont.) Enforce R is not at infinity
16352 if (secp256k1.isInfinity(R)) return false
16354 //
1.4.6 Convert the field element R.x to an integer
16357 //
1.4.7 Set v = xR mod n
16360 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16365 deterministicGenerateK: deterministicGenerateK,
16373 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16374 var baddress = require('./address')
16375 var bcrypto = require('./crypto')
16376 var ecdsa = require('./ecdsa')
16377 var randomBytes = require('randombytes')
16378 var typeforce = require('typeforce')
16379 var types = require('./types')
16380 var wif = require('wif')
16382 var NETWORKS = require('./networks')
16383 var BigInteger = require('bigi')
16385 var ecurve = require('ecurve')
16386 var secp256k1 = ecdsa.__curve
16388 function ECPair (d, Q, options) {
16391 compressed: types.maybe(types.Boolean),
16392 network: types.maybe(types.Network)
16396 options = options || {}
16399 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16400 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16401 if (Q) throw new TypeError('Unexpected publicKey parameter')
16405 typeforce(types.ECPoint, Q)
16410 this.compressed = options.compressed === undefined ? true : options.compressed
16411 this.network = options.network || NETWORKS.bitcoin
16414 Object.defineProperty(ECPair.prototype, 'Q', {
16416 if (!this.__Q && this.d) {
16417 this.__Q = secp256k1.G.multiply(this.d)
16424 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16425 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16427 return new ECPair(null, Q, {
16428 compressed: Q.compressed,
16433 ECPair.fromWIF = function (string, network) {
16434 var decoded = wif.decode(string)
16435 var version = decoded.version
16437 // list of networks?
16438 if (types.Array(network)) {
16439 network = network.filter(function (x) {
16440 return version === x.wif
16443 if (!network) throw new Error('Unknown network version')
16445 // otherwise, assume a network object (or default to bitcoin)
16447 network = network || NETWORKS.bitcoin
16449 if (version !== network.wif) throw new Error('Invalid network version')
16452 var d = BigInteger.fromBuffer(decoded.privateKey)
16454 return new ECPair(d, null, {
16455 compressed: decoded.compressed,
16460 ECPair.makeRandom = function (options) {
16461 options = options || {}
16463 var rng = options.rng || randomBytes
16467 var buffer = rng(
32)
16468 typeforce(types.Buffer256bit, buffer)
16470 d = BigInteger.fromBuffer(buffer)
16471 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16473 return new ECPair(d, null, options)
16476 ECPair.prototype.getAddress = function () {
16477 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16480 ECPair.prototype.getNetwork = function () {
16481 return this.network
16484 ECPair.prototype.getPublicKeyBuffer = function () {
16485 return this.Q.getEncoded(this.compressed)
16488 ECPair.prototype.sign = function (hash) {
16489 if (!this.d) throw new Error('Missing private key')
16491 return ecdsa.sign(hash, this.d)
16494 ECPair.prototype.toWIF = function () {
16495 if (!this.d) throw new Error('Missing private key')
16497 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16500 ECPair.prototype.verify = function (hash, signature) {
16501 return ecdsa.verify(hash, signature, this.Q)
16504 module.exports = ECPair
16506 },{"./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){
16507 (function (Buffer){
16508 var bip66 = require('bip66')
16509 var typeforce = require('typeforce')
16510 var types = require('./types')
16512 var BigInteger = require('bigi')
16514 function ECSignature (r, s) {
16515 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16521 ECSignature.parseCompact = function (buffer) {
16522 if (buffer.length !==
65) throw new Error('Invalid signature length')
16524 var flagByte = buffer.readUInt8(
0) -
27
16525 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16527 var compressed = !!(flagByte &
4)
16528 var recoveryParam = flagByte &
3
16530 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16531 var s = BigInteger.fromBuffer(buffer.slice(
33))
16534 compressed: compressed,
16536 signature: new ECSignature(r, s)
16540 ECSignature.fromDER = function (buffer) {
16541 var decode = bip66.decode(buffer)
16542 var r = BigInteger.fromDERInteger(decode.r)
16543 var s = BigInteger.fromDERInteger(decode.s)
16545 return new ECSignature(r, s)
16548 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16549 ECSignature.parseScriptSignature = function (buffer) {
16550 var hashType = buffer.readUInt8(buffer.length -
1)
16551 var hashTypeMod = hashType & ~
0x80
16553 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16556 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16561 ECSignature.prototype.toCompact = function (i, compressed) {
16568 var buffer = Buffer.alloc(
65)
16569 buffer.writeUInt8(i,
0)
16570 this.r.toBuffer(
32).copy(buffer,
1)
16571 this.s.toBuffer(
32).copy(buffer,
33)
16576 ECSignature.prototype.toDER = function () {
16577 var r = Buffer.from(this.r.toDERInteger())
16578 var s = Buffer.from(this.s.toDERInteger())
16580 return bip66.encode(r, s)
16583 ECSignature.prototype.toScriptSignature = function (hashType) {
16584 var hashTypeMod = hashType & ~
0x80
16585 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16587 var hashTypeBuffer = Buffer.alloc(
1)
16588 hashTypeBuffer.writeUInt8(hashType,
0)
16590 return Buffer.concat([this.toDER(), hashTypeBuffer])
16593 module.exports = ECSignature
16595 }).call(this,require("buffer").Buffer)
16596 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16597 var Buffer = require('safe-buffer').Buffer
16598 var base58check = require('bs58check')
16599 var bcrypto = require('./crypto')
16600 var createHmac = require('create-hmac')
16601 var typeforce = require('typeforce')
16602 var types = require('./types')
16603 var NETWORKS = require('./networks')
16605 var BigInteger = require('bigi')
16606 var ECPair = require('./ecpair')
16608 var ecurve = require('ecurve')
16609 var curve = ecurve.getCurveByName('secp256k1')
16611 function HDNode (keyPair, chainCode) {
16612 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16614 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16616 this.keyPair = keyPair
16617 this.chainCode = chainCode
16620 this.parentFingerprint =
0x00000000
16623 HDNode.HIGHEST_BIT =
0x80000000
16625 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16627 HDNode.fromSeedBuffer = function (seed, network) {
16628 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16630 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16631 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16633 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16634 var IL = I.slice(
0,
32)
16635 var IR = I.slice(
32)
16637 // In case IL is
0 or
>= n, the master key is invalid
16638 // This is handled by the ECPair constructor
16639 var pIL = BigInteger.fromBuffer(IL)
16640 var keyPair = new ECPair(pIL, null, {
16644 return new HDNode(keyPair, IR)
16647 HDNode.fromSeedHex = function (hex, network) {
16648 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16651 HDNode.fromBase58 = function (string, networks) {
16652 var buffer = base58check.decode(string)
16653 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16655 //
4 bytes: version bytes
16656 var version = buffer.readUInt32BE(
0)
16659 // list of networks?
16660 if (Array.isArray(networks)) {
16661 network = networks.filter(function (x) {
16662 return version === x.bip32.private ||
16663 version === x.bip32.public
16666 if (!network) throw new Error('Unknown network version')
16668 // otherwise, assume a network object (or default to bitcoin)
16670 network = networks || NETWORKS.bitcoin
16673 if (version !== network.bip32.private &&
16674 version !== network.bip32.public) throw new Error('Invalid network version')
16676 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16677 var depth = buffer[
4]
16679 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16680 var parentFingerprint = buffer.readUInt32BE(
5)
16682 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16685 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16686 // This is encoded in MSB order. (
0x00000000 if master key)
16687 var index = buffer.readUInt32BE(
9)
16688 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16690 //
32 bytes: the chain code
16691 var chainCode = buffer.slice(
13,
45)
16694 //
33 bytes: private key data (
0x00 + k)
16695 if (version === network.bip32.private) {
16696 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16698 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16699 keyPair = new ECPair(d, null, { network: network })
16701 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16703 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16704 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16706 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16707 // If not, the extended public key is invalid.
16710 keyPair = new ECPair(null, Q, { network: network })
16713 var hd = new HDNode(keyPair, chainCode)
16716 hd.parentFingerprint = parentFingerprint
16721 HDNode.prototype.getAddress = function () {
16722 return this.keyPair.getAddress()
16725 HDNode.prototype.getIdentifier = function () {
16726 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16729 HDNode.prototype.getFingerprint = function () {
16730 return this.getIdentifier().slice(
0,
4)
16733 HDNode.prototype.getNetwork = function () {
16734 return this.keyPair.getNetwork()
16737 HDNode.prototype.getPublicKeyBuffer = function () {
16738 return this.keyPair.getPublicKeyBuffer()
16741 HDNode.prototype.neutered = function () {
16742 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16743 network: this.keyPair.network
16746 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16747 neutered.depth = this.depth
16748 neutered.index = this.index
16749 neutered.parentFingerprint = this.parentFingerprint
16754 HDNode.prototype.sign = function (hash) {
16755 return this.keyPair.sign(hash)
16758 HDNode.prototype.verify = function (hash, signature) {
16759 return this.keyPair.verify(hash, signature)
16762 HDNode.prototype.toBase58 = function (__isPrivate) {
16763 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16766 var network = this.keyPair.network
16767 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16768 var buffer = Buffer.allocUnsafe(
78)
16770 //
4 bytes: version bytes
16771 buffer.writeUInt32BE(version,
0)
16773 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16774 buffer.writeUInt8(this.depth,
4)
16776 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16777 buffer.writeUInt32BE(this.parentFingerprint,
5)
16779 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16780 // This is encoded in big endian. (
0x00000000 if master key)
16781 buffer.writeUInt32BE(this.index,
9)
16783 //
32 bytes: the chain code
16784 this.chainCode.copy(buffer,
13)
16786 //
33 bytes: the public key or private key data
16787 if (!this.isNeutered()) {
16788 //
0x00 + k for private keys
16789 buffer.writeUInt8(
0,
45)
16790 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16792 //
33 bytes: the public key
16794 // X9.62 encoding for public keys
16795 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16798 return base58check.encode(buffer)
16801 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16802 HDNode.prototype.derive = function (index) {
16803 typeforce(types.UInt32, index)
16805 var isHardened = index
>= HDNode.HIGHEST_BIT
16806 var data = Buffer.allocUnsafe(
37)
16810 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16812 // data =
0x00 || ser256(kpar) || ser32(index)
16814 this.keyPair.d.toBuffer(
32).copy(data,
1)
16815 data.writeUInt32BE(index,
33)
16819 // data = serP(point(kpar)) || ser32(index)
16820 // = serP(Kpar) || ser32(index)
16821 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16822 data.writeUInt32BE(index,
33)
16825 var I = createHmac('sha512', this.chainCode).update(data).digest()
16826 var IL = I.slice(
0,
32)
16827 var IR = I.slice(
32)
16829 var pIL = BigInteger.fromBuffer(IL)
16831 // In case parse256(IL)
>= n, proceed with the next value for i
16832 if (pIL.compareTo(curve.n)
>=
0) {
16833 return this.derive(index +
1)
16836 // Private parent key -
> private child key
16838 if (!this.isNeutered()) {
16839 // ki = parse256(IL) + kpar (mod n)
16840 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16842 // In case ki ==
0, proceed with the next value for i
16843 if (ki.signum() ===
0) {
16844 return this.derive(index +
1)
16847 derivedKeyPair = new ECPair(ki, null, {
16848 network: this.keyPair.network
16851 // Public parent key -
> public child key
16853 // Ki = point(parse256(IL)) + Kpar
16855 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16857 // In case Ki is the point at infinity, proceed with the next value for i
16858 if (curve.isInfinity(Ki)) {
16859 return this.derive(index +
1)
16862 derivedKeyPair = new ECPair(null, Ki, {
16863 network: this.keyPair.network
16867 var hd = new HDNode(derivedKeyPair, IR)
16868 hd.depth = this.depth +
1
16870 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16875 HDNode.prototype.deriveHardened = function (index) {
16876 typeforce(types.UInt31, index)
16878 // Only derives hardened private keys by default
16879 return this.derive(index + HDNode.HIGHEST_BIT)
16882 // Private === not neutered
16883 // Public === neutered
16884 HDNode.prototype.isNeutered = function () {
16885 return !(this.keyPair.d)
16888 HDNode.prototype.derivePath = function (path) {
16889 typeforce(types.BIP32Path, path)
16891 var splitPath = path.split('/')
16892 if (splitPath[
0] === 'm') {
16893 if (this.parentFingerprint) {
16894 throw new Error('Not a master node')
16897 splitPath = splitPath.slice(
1)
16900 return splitPath.reduce(function (prevHd, indexStr) {
16902 if (indexStr.slice(-
1) === "'") {
16903 index = parseInt(indexStr.slice(
0, -
1),
10)
16904 return prevHd.deriveHardened(index)
16906 index = parseInt(indexStr,
10)
16907 return prevHd.derive(index)
16912 module.exports = HDNode
16914 },{"./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){
16916 Block: require('./block'),
16917 ECPair: require('./ecpair'),
16918 ECSignature: require('./ecsignature'),
16919 HDNode: require('./hdnode'),
16920 Transaction: require('./transaction'),
16921 TransactionBuilder: require('./transaction_builder'),
16923 address: require('./address'),
16924 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16925 crypto: require('./crypto'),
16926 networks: require('./networks'),
16927 opcodes: require('bitcoin-ops'),
16928 script: require('./script')
16931 },{"./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){
16932 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16933 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16937 messagePrefix: '\x18Bitcoin Signed Message:\n',
16939 public:
0x0488b21e,
16940 private:
0x0488ade4
16947 messagePrefix: '\x18Bitcoin Signed Message:\n',
16949 public:
0x043587cf,
16950 private:
0x04358394
16957 messagePrefix: '\x19Litecoin Signed Message:\n',
16959 public:
0x0488b21e,
16960 private:
0x0488ade4,
16967 messagePrefix: '\x19Litecoin Signed Message:\n',
16969 public:
0x019da462,
16970 private:
0x019d9cfe
16978 },{}],
52:[function(require,module,exports){
16979 var Buffer = require('safe-buffer').Buffer
16980 var bip66 = require('bip66')
16981 var pushdata = require('pushdata-bitcoin')
16982 var typeforce = require('typeforce')
16983 var types = require('./types')
16984 var scriptNumber = require('./script_number')
16986 var OPS = require('bitcoin-ops')
16987 var REVERSE_OPS = require('bitcoin-ops/map')
16988 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
16990 function isOPInt (value) {
16991 return types.Number(value) &&
16992 ((value === OPS.OP_0) ||
16993 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
16994 (value === OPS.OP_1NEGATE))
16997 function isPushOnlyChunk (value) {
16998 return types.Buffer(value) || isOPInt(value)
17001 function isPushOnly (value) {
17002 return types.Array(value) && value.every(isPushOnlyChunk)
17005 function compile (chunks) {
17007 if (Buffer.isBuffer(chunks)) return chunks
17009 typeforce(types.Array, chunks)
17011 var bufferSize = chunks.reduce(function (accum, chunk) {
17013 if (Buffer.isBuffer(chunk)) {
17014 // adhere to BIP62.3, minimal push policy
17015 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
17019 return accum + pushdata.encodingLength(chunk.length) + chunk.length
17026 var buffer = Buffer.allocUnsafe(bufferSize)
17029 chunks.forEach(function (chunk) {
17031 if (Buffer.isBuffer(chunk)) {
17032 // adhere to BIP62.3, minimal push policy
17033 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
17034 var opcode = OP_INT_BASE + chunk[
0]
17035 buffer.writeUInt8(opcode, offset)
17040 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17041 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17046 offset += pushdata.encode(buffer, chunk.length, offset)
17048 chunk.copy(buffer, offset)
17049 offset += chunk.length
17053 buffer.writeUInt8(chunk, offset)
17058 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17062 function decompile (buffer) {
17064 if (types.Array(buffer)) return buffer
17066 typeforce(types.Buffer, buffer)
17071 while (i < buffer.length) {
17072 var opcode = buffer[i]
17075 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17076 var d = pushdata.decode(buffer, i)
17078 // did reading a pushDataInt fail? empty script
17079 if (d === null) return []
17082 // attempt to read too much data? empty script
17083 if (i + d.number
> buffer.length) return []
17085 var data = buffer.slice(i, i + d.number)
17092 chunks.push(opcode)
17101 function toASM (chunks) {
17102 if (Buffer.isBuffer(chunks)) {
17103 chunks = decompile(chunks)
17106 return chunks.map(function (chunk) {
17108 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17111 return REVERSE_OPS[chunk]
17115 function fromASM (asm) {
17116 typeforce(types.String, asm)
17118 return compile(asm.split(' ').map(function (chunkStr) {
17120 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17121 typeforce(types.Hex, chunkStr)
17124 return Buffer.from(chunkStr, 'hex')
17128 function toStack (chunks) {
17129 chunks = decompile(chunks)
17130 typeforce(isPushOnly, chunks)
17132 return chunks.map(function (op) {
17133 if (Buffer.isBuffer(op)) return op
17134 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17136 return scriptNumber.encode(op - OP_INT_BASE)
17140 function isCanonicalPubKey (buffer) {
17141 if (!Buffer.isBuffer(buffer)) return false
17142 if (buffer.length <
33) return false
17144 switch (buffer[
0]) {
17147 return buffer.length ===
33
17149 return buffer.length ===
65
17155 function isDefinedHashType (hashType) {
17156 var hashTypeMod = hashType & ~
0x80
17158 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17159 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17162 function isCanonicalSignature (buffer) {
17163 if (!Buffer.isBuffer(buffer)) return false
17164 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17166 return bip66.check(buffer.slice(
0, -
1))
17171 decompile: decompile,
17176 number: require('./script_number'),
17178 isCanonicalPubKey: isCanonicalPubKey,
17179 isCanonicalSignature: isCanonicalSignature,
17180 isPushOnly: isPushOnly,
17181 isDefinedHashType: isDefinedHashType
17184 var templates = require('./templates')
17185 for (var key in templates) {
17186 module.exports[key] = templates[key]
17189 },{
"./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){
17190 var Buffer = require('safe-buffer').Buffer
17192 function decode (buffer, maxLength, minimal) {
17193 maxLength = maxLength ||
4
17194 minimal = minimal === undefined ? true : minimal
17196 var length = buffer.length
17197 if (length ===
0) return
0
17198 if (length
> maxLength) throw new TypeError('Script number overflow')
17200 if ((buffer[length -
1] &
0x7f) ===
0) {
17201 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17206 if (length ===
5) {
17207 var a = buffer.readUInt32LE(
0)
17208 var b = buffer.readUInt8(
4)
17210 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17211 return (b *
0x100000000) + a
17216 //
32-bit /
24-bit /
16-bit /
8-bit
17217 for (var i =
0; i < length; ++i) {
17218 result |= buffer[i] << (
8 * i)
17221 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17225 function scriptNumSize (i) {
17226 return i
> 0x7fffffff ?
5
17234 function encode (number) {
17235 var value = Math.abs(number)
17236 var size = scriptNumSize(value)
17237 var buffer = Buffer.allocUnsafe(size)
17238 var negative = number <
0
17240 for (var i =
0; i < size; ++i) {
17241 buffer.writeUInt8(value &
0xff, i)
17245 if (buffer[size -
1] &
0x80) {
17246 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17247 } else if (negative) {
17248 buffer[size -
1] |=
0x80
17259 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17260 var decompile = require('../script').decompile
17261 var multisig = require('./multisig')
17262 var nullData = require('./nulldata')
17263 var pubKey = require('./pubkey')
17264 var pubKeyHash = require('./pubkeyhash')
17265 var scriptHash = require('./scripthash')
17266 var witnessPubKeyHash = require('./witnesspubkeyhash')
17267 var witnessScriptHash = require('./witnessscripthash')
17268 var witnessCommitment = require('./witnesscommitment')
17271 MULTISIG: 'multisig',
17272 NONSTANDARD: 'nonstandard',
17273 NULLDATA: 'nulldata',
17275 P2PKH: 'pubkeyhash',
17276 P2SH: 'scripthash',
17277 P2WPKH: 'witnesspubkeyhash',
17278 P2WSH: 'witnessscripthash',
17279 WITNESS_COMMITMENT: 'witnesscommitment'
17282 function classifyOutput (script) {
17283 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17284 if (witnessScriptHash.output.check(script)) return types.P2WSH
17285 if (pubKeyHash.output.check(script)) return types.P2PKH
17286 if (scriptHash.output.check(script)) return types.P2SH
17288 // XXX: optimization, below functions .decompile before use
17289 var chunks = decompile(script)
17290 if (multisig.output.check(chunks)) return types.MULTISIG
17291 if (pubKey.output.check(chunks)) return types.P2PK
17292 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17293 if (nullData.output.check(chunks)) return types.NULLDATA
17295 return types.NONSTANDARD
17298 function classifyInput (script, allowIncomplete) {
17299 // XXX: optimization, below functions .decompile before use
17300 var chunks = decompile(script)
17302 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17303 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17304 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17305 if (pubKey.input.check(chunks)) return types.P2PK
17307 return types.NONSTANDARD
17310 function classifyWitness (script, allowIncomplete) {
17311 // XXX: optimization, below functions .decompile before use
17312 var chunks = decompile(script)
17314 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17315 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17317 return types.NONSTANDARD
17321 classifyInput: classifyInput,
17322 classifyOutput: classifyOutput,
17323 classifyWitness: classifyWitness,
17324 multisig: multisig,
17325 nullData: nullData,
17327 pubKeyHash: pubKeyHash,
17328 scriptHash: scriptHash,
17329 witnessPubKeyHash: witnessPubKeyHash,
17330 witnessScriptHash: witnessScriptHash,
17331 witnessCommitment: witnessCommitment,
17335 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17337 input: require('./input'),
17338 output: require('./output')
17341 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17342 // OP_0 [signatures ...]
17344 var Buffer = require('safe-buffer').Buffer
17345 var bscript = require('../../script')
17346 var typeforce = require('typeforce')
17347 var OPS = require('bitcoin-ops')
17349 function partialSignature (value) {
17350 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17353 function check (script, allowIncomplete) {
17354 var chunks = bscript.decompile(script)
17355 if (chunks.length <
2) return false
17356 if (chunks[
0] !== OPS.OP_0) return false
17358 if (allowIncomplete) {
17359 return chunks.slice(
1).every(partialSignature)
17362 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17364 check.toJSON = function () { return 'multisig input' }
17366 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17368 function encodeStack (signatures, scriptPubKey) {
17369 typeforce([partialSignature], signatures)
17371 if (scriptPubKey) {
17372 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17374 if (signatures.length < scriptData.m) {
17375 throw new TypeError('Not enough signatures provided')
17378 if (signatures.length
> scriptData.pubKeys.length) {
17379 throw new TypeError('Too many signatures provided')
17383 return [].concat(EMPTY_BUFFER, signatures)
17386 function encode (signatures, scriptPubKey) {
17387 return bscript.compile(encodeStack(signatures, scriptPubKey))
17390 function decodeStack (stack, allowIncomplete) {
17391 typeforce(check, stack, allowIncomplete)
17392 return stack.slice(
1)
17395 function decode (buffer, allowIncomplete) {
17396 var stack = bscript.decompile(buffer)
17397 return decodeStack(stack, allowIncomplete)
17403 decodeStack: decodeStack,
17405 encodeStack: encodeStack
17408 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17409 // m [pubKeys ...] n OP_CHECKMULTISIG
17411 var bscript = require('../../script')
17412 var types = require('../../types')
17413 var typeforce = require('typeforce')
17414 var OPS = require('bitcoin-ops')
17415 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17417 function check (script, allowIncomplete) {
17418 var chunks = bscript.decompile(script)
17420 if (chunks.length <
4) return false
17421 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17422 if (!types.Number(chunks[
0])) return false
17423 if (!types.Number(chunks[chunks.length -
2])) return false
17424 var m = chunks[
0] - OP_INT_BASE
17425 var n = chunks[chunks.length -
2] - OP_INT_BASE
17427 if (m <=
0) return false
17428 if (n
> 16) return false
17429 if (m
> n) return false
17430 if (n !== chunks.length -
3) return false
17431 if (allowIncomplete) return true
17433 var keys = chunks.slice(
1, -
2)
17434 return keys.every(bscript.isCanonicalPubKey)
17436 check.toJSON = function () { return 'multi-sig output' }
17438 function encode (m, pubKeys) {
17441 pubKeys: [bscript.isCanonicalPubKey]
17447 var n = pubKeys.length
17448 if (n < m) throw new TypeError('Not enough pubKeys provided')
17450 return bscript.compile([].concat(
17454 OPS.OP_CHECKMULTISIG
17458 function decode (buffer, allowIncomplete) {
17459 var chunks = bscript.decompile(buffer)
17460 typeforce(check, chunks, allowIncomplete)
17463 m: chunks[
0] - OP_INT_BASE,
17464 pubKeys: chunks.slice(
1, -
2)
17474 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17475 // OP_RETURN {data}
17477 var bscript = require('../script')
17478 var types = require('../types')
17479 var typeforce = require('typeforce')
17480 var OPS = require('bitcoin-ops')
17482 function check (script) {
17483 var buffer = bscript.compile(script)
17485 return buffer.length
> 1 &&
17486 buffer[
0] === OPS.OP_RETURN
17488 check.toJSON = function () { return 'null data output' }
17490 function encode (data) {
17491 typeforce(types.Buffer, data)
17493 return bscript.compile([OPS.OP_RETURN, data])
17496 function decode (buffer) {
17497 typeforce(check, buffer)
17499 return buffer.slice(
2)
17510 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17511 arguments[
4][
55][
0].apply(exports,arguments)
17512 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17515 var bscript = require('../../script')
17516 var types = require('../../types')
17517 var typeforce = require('typeforce')
17519 function check (script) {
17520 var chunks = bscript.decompile(script)
17522 return chunks.length ===
1 &&
17523 bscript.isCanonicalSignature(chunks[
0])
17525 check.toJSON = function () { return 'pubKey input' }
17527 function encodeStack (signature) {
17528 typeforce(types.Buffer, signature)
17532 function encode (signature) {
17533 return bscript.compile(encodeStack(signature))
17536 function decodeStack (stack) {
17537 typeforce(check, stack)
17541 function decode (buffer) {
17542 var stack = bscript.decompile(buffer)
17543 return decodeStack(stack)
17549 decodeStack: decodeStack,
17551 encodeStack: encodeStack
17554 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17555 // {pubKey} OP_CHECKSIG
17557 var bscript = require('../../script')
17558 var typeforce = require('typeforce')
17559 var OPS = require('bitcoin-ops')
17561 function check (script) {
17562 var chunks = bscript.decompile(script)
17564 return chunks.length ===
2 &&
17565 bscript.isCanonicalPubKey(chunks[
0]) &&
17566 chunks[
1] === OPS.OP_CHECKSIG
17568 check.toJSON = function () { return 'pubKey output' }
17570 function encode (pubKey) {
17571 typeforce(bscript.isCanonicalPubKey, pubKey)
17573 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17576 function decode (buffer) {
17577 var chunks = bscript.decompile(buffer)
17578 typeforce(check, chunks)
17589 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17590 arguments[
4][
55][
0].apply(exports,arguments)
17591 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17592 // {signature} {pubKey}
17594 var bscript = require('../../script')
17595 var types = require('../../types')
17596 var typeforce = require('typeforce')
17598 function check (script) {
17599 var chunks = bscript.decompile(script)
17601 return chunks.length ===
2 &&
17602 bscript.isCanonicalSignature(chunks[
0]) &&
17603 bscript.isCanonicalPubKey(chunks[
1])
17605 check.toJSON = function () { return 'pubKeyHash input' }
17607 function encodeStack (signature, pubKey) {
17609 signature: types.Buffer, pubKey: types.Buffer
17611 signature: signature, pubKey: pubKey
17614 return [signature, pubKey]
17617 function encode (signature, pubKey) {
17618 return bscript.compile(encodeStack(signature, pubKey))
17621 function decodeStack (stack) {
17622 typeforce(check, stack)
17625 signature: stack[
0],
17630 function decode (buffer) {
17631 var stack = bscript.decompile(buffer)
17632 return decodeStack(stack)
17638 decodeStack: decodeStack,
17640 encodeStack: encodeStack
17643 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17644 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17646 var bscript = require('../../script')
17647 var types = require('../../types')
17648 var typeforce = require('typeforce')
17649 var OPS = require('bitcoin-ops')
17651 function check (script) {
17652 var buffer = bscript.compile(script)
17654 return buffer.length ===
25 &&
17655 buffer[
0] === OPS.OP_DUP &&
17656 buffer[
1] === OPS.OP_HASH160 &&
17657 buffer[
2] ===
0x14 &&
17658 buffer[
23] === OPS.OP_EQUALVERIFY &&
17659 buffer[
24] === OPS.OP_CHECKSIG
17661 check.toJSON = function () { return 'pubKeyHash output' }
17663 function encode (pubKeyHash) {
17664 typeforce(types.Hash160bit, pubKeyHash)
17666 return bscript.compile([
17670 OPS.OP_EQUALVERIFY,
17675 function decode (buffer) {
17676 typeforce(check, buffer)
17678 return buffer.slice(
3,
23)
17687 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17688 arguments[
4][
55][
0].apply(exports,arguments)
17689 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17690 //
<scriptSig> {serialized scriptPubKey script}
17692 var Buffer = require('safe-buffer').Buffer
17693 var bscript = require('../../script')
17694 var typeforce = require('typeforce')
17696 function check (script, allowIncomplete) {
17697 var chunks = bscript.decompile(script)
17698 if (chunks.length <
1) return false
17700 var lastChunk = chunks[chunks.length -
1]
17701 if (!Buffer.isBuffer(lastChunk)) return false
17703 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17704 var redeemScriptChunks = bscript.decompile(lastChunk)
17706 // is redeemScript a valid script?
17707 if (redeemScriptChunks.length ===
0) return false
17709 // is redeemScriptSig push only?
17710 if (!bscript.isPushOnly(scriptSigChunks)) return false
17712 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17713 var outputType = bscript.classifyOutput(redeemScriptChunks)
17714 if (chunks.length ===
1) {
17715 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17717 return inputType === outputType
17719 check.toJSON = function () { return 'scriptHash input' }
17721 function encodeStack (redeemScriptStack, redeemScript) {
17722 var serializedScriptPubKey = bscript.compile(redeemScript)
17724 return [].concat(redeemScriptStack, serializedScriptPubKey)
17727 function encode (redeemScriptSig, redeemScript) {
17728 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17730 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17733 function decodeStack (stack) {
17734 typeforce(check, stack)
17737 redeemScriptStack: stack.slice(
0, -
1),
17738 redeemScript: stack[stack.length -
1]
17742 function decode (buffer) {
17743 var stack = bscript.decompile(buffer)
17744 var result = decodeStack(stack)
17745 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17746 delete result.redeemScriptStack
17753 decodeStack: decodeStack,
17755 encodeStack: encodeStack
17758 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17759 // OP_HASH160 {scriptHash} OP_EQUAL
17761 var bscript = require('../../script')
17762 var types = require('../../types')
17763 var typeforce = require('typeforce')
17764 var OPS = require('bitcoin-ops')
17766 function check (script) {
17767 var buffer = bscript.compile(script)
17769 return buffer.length ===
23 &&
17770 buffer[
0] === OPS.OP_HASH160 &&
17771 buffer[
1] ===
0x14 &&
17772 buffer[
22] === OPS.OP_EQUAL
17774 check.toJSON = function () { return 'scriptHash output' }
17776 function encode (scriptHash) {
17777 typeforce(types.Hash160bit, scriptHash)
17779 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17782 function decode (buffer) {
17783 typeforce(check, buffer)
17785 return buffer.slice(
2,
22)
17794 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17796 output: require('./output')
17799 },{"./output":
69}],
69:[function(require,module,exports){
17800 // OP_RETURN {aa21a9ed} {commitment}
17802 var Buffer = require('safe-buffer').Buffer
17803 var bscript = require('../../script')
17804 var types = require('../../types')
17805 var typeforce = require('typeforce')
17806 var OPS = require('bitcoin-ops')
17808 var HEADER = Buffer.from('aa21a9ed', 'hex')
17810 function check (script) {
17811 var buffer = bscript.compile(script)
17813 return buffer.length
> 37 &&
17814 buffer[
0] === OPS.OP_RETURN &&
17815 buffer[
1] ===
0x24 &&
17816 buffer.slice(
2,
6).equals(HEADER)
17819 check.toJSON = function () { return 'Witness commitment output' }
17821 function encode (commitment) {
17822 typeforce(types.Hash256bit, commitment)
17824 var buffer = Buffer.allocUnsafe(
36)
17825 HEADER.copy(buffer,
0)
17826 commitment.copy(buffer,
4)
17828 return bscript.compile([OPS.OP_RETURN, buffer])
17831 function decode (buffer) {
17832 typeforce(check, buffer)
17834 return bscript.decompile(buffer)[
1].slice(
4,
36)
17843 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17844 arguments[
4][
55][
0].apply(exports,arguments)
17845 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17846 // {signature} {pubKey}
17848 var pkh = require('../pubkeyhash/input')
17852 decodeStack: pkh.decodeStack,
17853 encodeStack: pkh.encodeStack
17856 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17857 // OP_0 {pubKeyHash}
17859 var bscript = require('../../script')
17860 var types = require('../../types')
17861 var typeforce = require('typeforce')
17862 var OPS = require('bitcoin-ops')
17864 function check (script) {
17865 var buffer = bscript.compile(script)
17867 return buffer.length ===
22 &&
17868 buffer[
0] === OPS.OP_0 &&
17871 check.toJSON = function () { return 'Witness pubKeyHash output' }
17873 function encode (pubKeyHash) {
17874 typeforce(types.Hash160bit, pubKeyHash)
17876 return bscript.compile([OPS.OP_0, pubKeyHash])
17879 function decode (buffer) {
17880 typeforce(check, buffer)
17882 return buffer.slice(
2)
17891 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17892 arguments[
4][
55][
0].apply(exports,arguments)
17893 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17894 // {signature} {pubKey}
17896 var p2sh = require('../scripthash/input')
17900 decodeStack: p2sh.decodeStack,
17901 encodeStack: p2sh.encodeStack
17904 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17905 // OP_0 {scriptHash}
17907 var bscript = require('../../script')
17908 var types = require('../../types')
17909 var typeforce = require('typeforce')
17910 var OPS = require('bitcoin-ops')
17912 function check (script) {
17913 var buffer = bscript.compile(script)
17915 return buffer.length ===
34 &&
17916 buffer[
0] === OPS.OP_0 &&
17919 check.toJSON = function () { return 'Witness scriptHash output' }
17921 function encode (scriptHash) {
17922 typeforce(types.Hash256bit, scriptHash)
17924 return bscript.compile([OPS.OP_0, scriptHash])
17927 function decode (buffer) {
17928 typeforce(check, buffer)
17930 return buffer.slice(
2)
17939 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17940 var Buffer = require('safe-buffer').Buffer
17941 var bcrypto = require('./crypto')
17942 var bscript = require('./script')
17943 var bufferutils = require('./bufferutils')
17944 var opcodes = require('bitcoin-ops')
17945 var typeforce = require('typeforce')
17946 var types = require('./types')
17947 var varuint = require('varuint-bitcoin')
17949 function varSliceSize (someScript) {
17950 var length = someScript.length
17952 return varuint.encodingLength(length) + length
17955 function vectorSize (someVector) {
17956 var length = someVector.length
17958 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17959 return sum + varSliceSize(witness)
17963 function Transaction () {
17970 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17971 Transaction.SIGHASH_ALL =
0x01
17972 Transaction.SIGHASH_NONE =
0x02
17973 Transaction.SIGHASH_SINGLE =
0x03
17974 Transaction.SIGHASH_ANYONECANPAY =
0x80
17975 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17976 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17978 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17979 var EMPTY_WITNESS = []
17980 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17981 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17982 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17983 var BLANK_OUTPUT = {
17984 script: EMPTY_SCRIPT,
17985 valueBuffer: VALUE_UINT64_MAX
17988 Transaction.fromBuffer = function (buffer, __noStrict) {
17990 function readSlice (n) {
17992 return buffer.slice(offset - n, offset)
17995 function readUInt32 () {
17996 var i = buffer.readUInt32LE(offset)
18001 function readInt32 () {
18002 var i = buffer.readInt32LE(offset)
18007 function readUInt64 () {
18008 var i = bufferutils.readUInt64LE(buffer, offset)
18013 function readVarInt () {
18014 var vi = varuint.decode(buffer, offset)
18015 offset += varuint.decode.bytes
18019 function readVarSlice () {
18020 return readSlice(readVarInt())
18023 function readVector () {
18024 var count = readVarInt()
18026 for (var i =
0; i < count; i++) vector.push(readVarSlice())
18030 var tx = new Transaction()
18031 tx.version = readInt32()
18033 var marker = buffer.readUInt8(offset)
18034 var flag = buffer.readUInt8(offset +
1)
18036 var hasWitnesses = false
18037 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18038 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18040 hasWitnesses = true
18043 var vinLen = readVarInt()
18044 for (var i =
0; i < vinLen; ++i) {
18046 hash: readSlice(
32),
18047 index: readUInt32(),
18048 script: readVarSlice(),
18049 sequence: readUInt32(),
18050 witness: EMPTY_WITNESS
18054 var voutLen = readVarInt()
18055 for (i =
0; i < voutLen; ++i) {
18057 value: readUInt64(),
18058 script: readVarSlice()
18062 if (hasWitnesses) {
18063 for (i =
0; i < vinLen; ++i) {
18064 tx.ins[i].witness = readVector()
18067 // was this pointless?
18068 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18071 tx.locktime = readUInt32()
18073 if (__noStrict) return tx
18074 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18079 Transaction.fromHex = function (hex) {
18080 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18083 Transaction.isCoinbaseHash = function (buffer) {
18084 typeforce(types.Hash256bit, buffer)
18085 for (var i =
0; i <
32; ++i) {
18086 if (buffer[i] !==
0) return false
18091 Transaction.prototype.isCoinbase = function () {
18092 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18095 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18096 typeforce(types.tuple(
18099 types.maybe(types.UInt32),
18100 types.maybe(types.Buffer)
18103 if (types.Null(sequence)) {
18104 sequence = Transaction.DEFAULT_SEQUENCE
18107 // Add the input and return the input's index
18108 return (this.ins.push({
18111 script: scriptSig || EMPTY_SCRIPT,
18112 sequence: sequence,
18113 witness: EMPTY_WITNESS
18117 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18118 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18120 // Add the output and return the output's index
18121 return (this.outs.push({
18122 script: scriptPubKey,
18127 Transaction.prototype.hasWitnesses = function () {
18128 return this.ins.some(function (x) {
18129 return x.witness.length !==
0
18133 Transaction.prototype.weight = function () {
18134 var base = this.__byteLength(false)
18135 var total = this.__byteLength(true)
18136 return base *
3 + total
18139 Transaction.prototype.virtualSize = function () {
18140 return Math.ceil(this.weight() /
4)
18143 Transaction.prototype.byteLength = function () {
18144 return this.__byteLength(true)
18147 Transaction.prototype.__byteLength = function (__allowWitness) {
18148 var hasWitnesses = __allowWitness && this.hasWitnesses()
18151 (hasWitnesses ?
10 :
8) +
18152 varuint.encodingLength(this.ins.length) +
18153 varuint.encodingLength(this.outs.length) +
18154 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18155 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18156 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18160 Transaction.prototype.clone = function () {
18161 var newTx = new Transaction()
18162 newTx.version = this.version
18163 newTx.locktime = this.locktime
18165 newTx.ins = this.ins.map(function (txIn) {
18169 script: txIn.script,
18170 sequence: txIn.sequence,
18171 witness: txIn.witness
18175 newTx.outs = this.outs.map(function (txOut) {
18177 script: txOut.script,
18186 * Hash transaction for signing a specific input.
18188 * Bitcoin uses a different hash for each signed transaction input.
18189 * This method copies the transaction, makes the necessary changes based on the
18190 * hashType, and then hashes the result.
18191 * This hash can then be used to sign the provided transaction input.
18193 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18194 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18196 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18197 if (inIndex
>= this.ins.length) return ONE
18199 // ignore OP_CODESEPARATOR
18200 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18201 return x !== opcodes.OP_CODESEPARATOR
18204 var txTmp = this.clone()
18206 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18207 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18210 // ignore sequence numbers (except at inIndex)
18211 txTmp.ins.forEach(function (input, i) {
18212 if (i === inIndex) return
18217 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18218 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18219 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18220 if (inIndex
>= this.outs.length) return ONE
18222 // truncate outputs after
18223 txTmp.outs.length = inIndex +
1
18225 // "blank" outputs before
18226 for (var i =
0; i < inIndex; i++) {
18227 txTmp.outs[i] = BLANK_OUTPUT
18230 // ignore sequence numbers (except at inIndex)
18231 txTmp.ins.forEach(function (input, y) {
18232 if (y === inIndex) return
18238 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18239 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18240 txTmp.ins = [txTmp.ins[inIndex]]
18241 txTmp.ins[
0].script = ourScript
18243 // SIGHASH_ALL: only ignore input scripts
18245 // "blank" others input scripts
18246 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18247 txTmp.ins[inIndex].script = ourScript
18250 // serialize and hash
18251 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18252 buffer.writeInt32LE(hashType, buffer.length -
4)
18253 txTmp.__toBuffer(buffer,
0, false)
18255 return bcrypto.hash256(buffer)
18258 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18259 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18261 var tbuffer, toffset
18262 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18263 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18264 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18265 function writeVarInt (i) {
18266 varuint.encode(i, tbuffer, toffset)
18267 toffset += varuint.encode.bytes
18269 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18271 var hashOutputs = ZERO
18272 var hashPrevouts = ZERO
18273 var hashSequence = ZERO
18275 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18276 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18279 this.ins.forEach(function (txIn) {
18280 writeSlice(txIn.hash)
18281 writeUInt32(txIn.index)
18284 hashPrevouts = bcrypto.hash256(tbuffer)
18287 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18288 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18289 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18290 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18293 this.ins.forEach(function (txIn) {
18294 writeUInt32(txIn.sequence)
18297 hashSequence = bcrypto.hash256(tbuffer)
18300 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18301 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18302 var txOutsSize = this.outs.reduce(function (sum, output) {
18303 return sum +
8 + varSliceSize(output.script)
18306 tbuffer = Buffer.allocUnsafe(txOutsSize)
18309 this.outs.forEach(function (out) {
18310 writeUInt64(out.value)
18311 writeVarSlice(out.script)
18314 hashOutputs = bcrypto.hash256(tbuffer)
18315 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18316 var output = this.outs[inIndex]
18318 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18320 writeUInt64(output.value)
18321 writeVarSlice(output.script)
18323 hashOutputs = bcrypto.hash256(tbuffer)
18326 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18329 var input = this.ins[inIndex]
18330 writeUInt32(this.version)
18331 writeSlice(hashPrevouts)
18332 writeSlice(hashSequence)
18333 writeSlice(input.hash)
18334 writeUInt32(input.index)
18335 writeVarSlice(prevOutScript)
18337 writeUInt32(input.sequence)
18338 writeSlice(hashOutputs)
18339 writeUInt32(this.locktime)
18340 writeUInt32(hashType)
18341 return bcrypto.hash256(tbuffer)
18344 Transaction.prototype.getHash = function () {
18345 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18348 Transaction.prototype.getId = function () {
18349 // transaction hash's are displayed in reverse order
18350 return this.getHash().reverse().toString('hex')
18353 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18354 return this.__toBuffer(buffer, initialOffset, true)
18357 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18358 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18360 var offset = initialOffset ||
0
18361 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18362 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18363 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18364 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18365 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18366 function writeVarInt (i) {
18367 varuint.encode(i, buffer, offset)
18368 offset += varuint.encode.bytes
18370 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18371 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18373 writeInt32(this.version)
18375 var hasWitnesses = __allowWitness && this.hasWitnesses()
18377 if (hasWitnesses) {
18378 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18379 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18382 writeVarInt(this.ins.length)
18384 this.ins.forEach(function (txIn) {
18385 writeSlice(txIn.hash)
18386 writeUInt32(txIn.index)
18387 writeVarSlice(txIn.script)
18388 writeUInt32(txIn.sequence)
18391 writeVarInt(this.outs.length)
18392 this.outs.forEach(function (txOut) {
18393 if (!txOut.valueBuffer) {
18394 writeUInt64(txOut.value)
18396 writeSlice(txOut.valueBuffer)
18399 writeVarSlice(txOut.script)
18402 if (hasWitnesses) {
18403 this.ins.forEach(function (input) {
18404 writeVector(input.witness)
18408 writeUInt32(this.locktime)
18410 // avoid slicing unless necessary
18411 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18415 Transaction.prototype.toHex = function () {
18416 return this.toBuffer().toString('hex')
18419 Transaction.prototype.setInputScript = function (index, scriptSig) {
18420 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18422 this.ins[index].script = scriptSig
18425 Transaction.prototype.setWitness = function (index, witness) {
18426 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18428 this.ins[index].witness = witness
18431 module.exports = Transaction
18433 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18434 var Buffer = require('safe-buffer').Buffer
18435 var baddress = require('./address')
18436 var bcrypto = require('./crypto')
18437 var bscript = require('./script')
18438 var networks = require('./networks')
18439 var ops = require('bitcoin-ops')
18440 var typeforce = require('typeforce')
18441 var types = require('./types')
18442 var scriptTypes = bscript.types
18443 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18444 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18446 var ECPair = require('./ecpair')
18447 var ECSignature = require('./ecsignature')
18448 var Transaction = require('./transaction')
18450 function extractChunks (type, chunks, script) {
18452 var signatures = []
18454 case scriptTypes.P2PKH:
18455 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18456 pubKeys = chunks.slice(
1)
18457 signatures = chunks.slice(
0,
1)
18460 case scriptTypes.P2PK:
18461 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18462 signatures = chunks.slice(
0,
1)
18465 case scriptTypes.MULTISIG:
18467 var multisig = bscript.multisig.output.decode(script)
18468 pubKeys = multisig.pubKeys
18471 signatures = chunks.slice(
1).map(function (chunk) {
18472 return chunk.length ===
0 ? undefined : chunk
18479 signatures: signatures
18482 function expandInput (scriptSig, witnessStack) {
18483 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18491 var witnessScriptType
18492 var redeemScriptType
18493 var witness = false
18499 var scriptSigChunks = bscript.decompile(scriptSig)
18500 var sigType = bscript.classifyInput(scriptSigChunks, true)
18501 if (sigType === scriptTypes.P2SH) {
18503 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18504 redeemScriptType = bscript.classifyOutput(redeemScript)
18505 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18506 prevOutType = scriptTypes.P2SH
18507 script = redeemScript
18510 var classifyWitness = bscript.classifyWitness(witnessStack)
18511 if (classifyWitness === scriptTypes.P2WSH) {
18512 witnessScript = witnessStack[witnessStack.length -
1]
18513 witnessScriptType = bscript.classifyOutput(witnessScript)
18515 if (scriptSig.length ===
0) {
18516 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18517 prevOutType = scriptTypes.P2WSH
18518 if (typeof redeemScript !== 'undefined') {
18519 throw new Error('Redeem script given when unnecessary')
18523 if (!redeemScript) {
18524 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18526 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18527 if (!redeemScript.equals(witnessProgram)) {
18528 throw new Error('Redeem script didn\'t match witnessScript')
18532 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18533 throw new Error('unsupported witness script')
18535 script = witnessScript
18536 scriptType = witnessScriptType
18537 chunks = witnessStack.slice(
0, -
1)
18538 } else if (classifyWitness === scriptTypes.P2WPKH) {
18539 var key = witnessStack[witnessStack.length -
1]
18540 var keyHash = bcrypto.hash160(key)
18541 if (scriptSig.length ===
0) {
18542 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18543 prevOutType = scriptTypes.P2WPKH
18544 if (typeof redeemScript !== 'undefined') {
18545 throw new Error('Redeem script given when unnecessary')
18548 if (!redeemScript) {
18549 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18551 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18552 if (!redeemScript.equals(witnessProgram)) {
18553 throw new Error('Redeem script did not have the right witness program')
18557 scriptType = scriptTypes.P2PKH
18558 chunks = witnessStack
18559 } else if (redeemScript) {
18560 if (P2SH.indexOf(redeemScriptType) === -
1) {
18561 throw new Error('Bad redeemscript!')
18564 script = redeemScript
18565 scriptType = redeemScriptType
18566 chunks = scriptSigChunks.slice(
0, -
1)
18568 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18569 chunks = scriptSigChunks
18572 var expanded = extractChunks(scriptType, chunks, script)
18575 pubKeys: expanded.pubKeys,
18576 signatures: expanded.signatures,
18577 prevOutScript: prevOutScript,
18578 prevOutType: prevOutType,
18579 signType: scriptType,
18580 signScript: script,
18581 witness: Boolean(witness)
18585 result.redeemScript = redeemScript
18586 result.redeemScriptType = redeemScriptType
18590 result.witnessScript = witnessScript
18591 result.witnessScriptType = witnessScriptType
18597 // could be done in expandInput, but requires the original Transaction for hashForSignature
18598 function fixMultisigOrder (input, transaction, vin) {
18599 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18600 if (input.pubKeys.length === input.signatures.length) return
18602 var unmatched = input.signatures.concat()
18604 input.signatures = input.pubKeys.map(function (pubKey) {
18605 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18608 // check for a signature
18609 unmatched.some(function (signature, i) {
18610 // skip if undefined || OP_0
18611 if (!signature) return false
18613 // TODO: avoid O(n) hashForSignature
18614 var parsed = ECSignature.parseScriptSignature(signature)
18615 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18617 // skip if signature does not match pubKey
18618 if (!keyPair.verify(hash, parsed.signature)) return false
18620 // remove matched signature from unmatched
18621 unmatched[i] = undefined
18631 function expandOutput (script, scriptType, ourPubKey) {
18632 typeforce(types.Buffer, script)
18634 var scriptChunks = bscript.decompile(script)
18636 scriptType = bscript.classifyOutput(script)
18641 switch (scriptType) {
18642 // does our hash160(pubKey) match the output scripts?
18643 case scriptTypes.P2PKH:
18644 if (!ourPubKey) break
18646 var pkh1 = scriptChunks[
2]
18647 var pkh2 = bcrypto.hash160(ourPubKey)
18648 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18651 // does our hash160(pubKey) match the output scripts?
18652 case scriptTypes.P2WPKH:
18653 if (!ourPubKey) break
18655 var wpkh1 = scriptChunks[
1]
18656 var wpkh2 = bcrypto.hash160(ourPubKey)
18657 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18660 case scriptTypes.P2PK:
18661 pubKeys = scriptChunks.slice(
0,
1)
18664 case scriptTypes.MULTISIG:
18665 pubKeys = scriptChunks.slice(
1, -
2)
18668 default: return { scriptType: scriptType }
18673 scriptType: scriptType,
18674 signatures: pubKeys.map(function () { return undefined })
18678 function checkP2shInput (input, redeemScriptHash) {
18679 if (input.prevOutType) {
18680 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18682 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18683 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18687 function checkP2WSHInput (input, witnessScriptHash) {
18688 if (input.prevOutType) {
18689 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18691 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18692 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18696 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18703 var redeemScriptHash
18705 var witness = false
18708 var witnessScriptHash
18713 if (redeemScript && witnessScript) {
18714 redeemScriptHash = bcrypto.hash160(redeemScript)
18715 witnessScriptHash = bcrypto.sha256(witnessScript)
18716 checkP2shInput(input, redeemScriptHash)
18718 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18720 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18721 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18722 prevOutType = bscript.types.P2SH
18723 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18724 p2sh = witness = p2wsh = true
18725 p2shType = bscript.types.P2WSH
18726 signType = witnessType = expanded.scriptType
18727 signScript = witnessScript
18728 } else if (redeemScript) {
18729 redeemScriptHash = bcrypto.hash160(redeemScript)
18730 checkP2shInput(input, redeemScriptHash)
18732 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18733 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18735 prevOutType = bscript.types.P2SH
18736 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18738 signType = p2shType = expanded.scriptType
18739 signScript = redeemScript
18740 witness = signType === bscript.types.P2WPKH
18741 } else if (witnessScript) {
18742 witnessScriptHash = bcrypto.sha256(witnessScript)
18743 checkP2WSHInput(input, witnessScriptHash)
18745 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18746 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18748 prevOutType = bscript.types.P2WSH
18749 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18750 witness = p2wsh = true
18751 signType = witnessType = expanded.scriptType
18752 signScript = witnessScript
18753 } else if (input.prevOutType) {
18754 // embedded scripts are not possible without a redeemScript
18755 if (input.prevOutType === scriptTypes.P2SH ||
18756 input.prevOutType === scriptTypes.P2WSH) {
18757 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18760 prevOutType = input.prevOutType
18761 prevOutScript = input.prevOutScript
18762 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18763 if (!expanded.pubKeys) return
18765 witness = (input.prevOutType === scriptTypes.P2WPKH)
18766 signType = prevOutType
18767 signScript = prevOutScript
18769 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18770 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18771 prevOutType = scriptTypes.P2PKH
18773 signType = prevOutType
18774 signScript = prevOutScript
18777 if (witness && !types.Satoshi(witnessValue)) {
18778 throw new Error('Input was witness but not given witness value')
18781 if (signType === scriptTypes.P2WPKH) {
18782 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18786 input.redeemScript = redeemScript
18787 input.redeemScriptType = p2shType
18791 input.witnessScript = witnessScript
18792 input.witnessScriptType = witnessType
18795 input.pubKeys = expanded.pubKeys
18796 input.signatures = expanded.signatures
18797 input.signScript = signScript
18798 input.signType = signType
18799 input.prevOutScript = prevOutScript
18800 input.prevOutType = prevOutType
18801 input.witness = witness
18804 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18805 if (type === scriptTypes.P2PKH) {
18806 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18807 } else if (type === scriptTypes.P2PK) {
18808 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18809 } else if (type === scriptTypes.MULTISIG) {
18810 if (signatures.length
> 0) {
18811 signatures = signatures.map(function (signature) {
18812 return signature || ops.OP_0
18814 if (!allowIncomplete) {
18815 // remove blank signatures
18816 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18819 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18822 throw new Error('Not yet supported')
18825 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18830 function buildInput (input, allowIncomplete) {
18831 var scriptType = input.prevOutType
18834 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18835 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18839 if (scriptType === bscript.types.P2SH) {
18840 // We can remove this error later when we have a guarantee prepareInput
18841 // rejects unsignable scripts - it MUST be signable at this point.
18842 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18843 throw new Error('Impossible to sign this type')
18846 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18847 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18849 // If it wasn't SIGNABLE, it's witness, defer to that
18850 scriptType = input.redeemScriptType
18853 if (scriptType === bscript.types.P2WPKH) {
18854 // P2WPKH is a special case of P2PKH
18855 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18856 } else if (scriptType === bscript.types.P2WSH) {
18857 // We can remove this check later
18858 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18859 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18860 witness.push(input.witnessScript)
18862 // We can remove this error later when we have a guarantee prepareInput
18863 // rejects unsignble scripts - it MUST be signable at this point.
18867 scriptType = input.witnessScriptType
18870 // append redeemScript if necessary
18872 sig.push(input.redeemScript)
18877 script: bscript.compile(sig),
18882 function TransactionBuilder (network, maximumFeeRate) {
18883 this.prevTxMap = {}
18884 this.network = network || networks.bitcoin
18886 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18887 this.maximumFeeRate = maximumFeeRate ||
1000
18890 this.tx = new Transaction()
18893 TransactionBuilder.prototype.setLockTime = function (locktime) {
18894 typeforce(types.UInt32, locktime)
18896 // if any signatures exist, throw
18897 if (this.inputs.some(function (input) {
18898 if (!input.signatures) return false
18900 return input.signatures.some(function (s) { return s })
18902 throw new Error('No, this would invalidate signatures')
18905 this.tx.locktime = locktime
18908 TransactionBuilder.prototype.setVersion = function (version) {
18909 typeforce(types.UInt32, version)
18911 // XXX: this might eventually become more complex depending on what the versions represent
18912 this.tx.version = version
18915 TransactionBuilder.fromTransaction = function (transaction, network) {
18916 var txb = new TransactionBuilder(network)
18918 // Copy transaction fields
18919 txb.setVersion(transaction.version)
18920 txb.setLockTime(transaction.locktime)
18922 // Copy outputs (done first to avoid signature invalidation)
18923 transaction.outs.forEach(function (txOut) {
18924 txb.addOutput(txOut.script, txOut.value)
18928 transaction.ins.forEach(function (txIn) {
18929 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18930 sequence: txIn.sequence,
18931 script: txIn.script,
18932 witness: txIn.witness
18936 // fix some things not possible through the public API
18937 txb.inputs.forEach(function (input, i) {
18938 fixMultisigOrder(input, transaction, i)
18944 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18945 if (!this.__canModifyInputs()) {
18946 throw new Error('No, this would invalidate signatures')
18951 // is it a hex string?
18952 if (typeof txHash === 'string') {
18953 // transaction hashs's are displayed in reverse order, un-reverse it
18954 txHash = Buffer.from(txHash, 'hex').reverse()
18956 // is it a Transaction object?
18957 } else if (txHash instanceof Transaction) {
18958 var txOut = txHash.outs[vout]
18959 prevOutScript = txOut.script
18960 value = txOut.value
18962 txHash = txHash.getHash()
18965 return this.__addInputUnsafe(txHash, vout, {
18966 sequence: sequence,
18967 prevOutScript: prevOutScript,
18972 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18973 if (Transaction.isCoinbaseHash(txHash)) {
18974 throw new Error('coinbase inputs not supported')
18977 var prevTxOut = txHash.toString('hex') + ':' + vout
18978 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18982 // derive what we can from the scriptSig
18983 if (options.script !== undefined) {
18984 input = expandInput(options.script, options.witness || [])
18987 // if an input value was given, retain it
18988 if (options.value !== undefined) {
18989 input.value = options.value
18992 // derive what we can from the previous transactions output script
18993 if (!input.prevOutScript && options.prevOutScript) {
18996 if (!input.pubKeys && !input.signatures) {
18997 var expanded = expandOutput(options.prevOutScript)
18999 if (expanded.pubKeys) {
19000 input.pubKeys = expanded.pubKeys
19001 input.signatures = expanded.signatures
19004 prevOutType = expanded.scriptType
19007 input.prevOutScript = options.prevOutScript
19008 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
19011 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
19012 this.inputs[vin] = input
19013 this.prevTxMap[prevTxOut] = vin
19018 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19019 if (!this.__canModifyOutputs()) {
19020 throw new Error('No, this would invalidate signatures')
19023 // Attempt to get a script if it's a base58 address string
19024 if (typeof scriptPubKey === 'string') {
19025 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
19028 return this.tx.addOutput(scriptPubKey, value)
19031 TransactionBuilder.prototype.build = function () {
19032 return this.__build(false)
19034 TransactionBuilder.prototype.buildIncomplete = function () {
19035 return this.__build(true)
19038 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19039 if (!allowIncomplete) {
19040 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19041 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19044 var tx = this.tx.clone()
19045 // Create script signatures from inputs
19046 this.inputs.forEach(function (input, i) {
19047 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19048 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19049 var result = buildInput(input, allowIncomplete)
19051 // skip if no result
19052 if (!allowIncomplete) {
19053 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19054 throw new Error(result.type + ' not supported')
19058 tx.setInputScript(i, result.script)
19059 tx.setWitness(i, result.witness)
19062 if (!allowIncomplete) {
19063 // do not rely on this, its merely a last resort
19064 if (this.__overMaximumFees(tx.byteLength())) {
19065 throw new Error('Transaction has absurd fees')
19072 function canSign (input) {
19073 return input.prevOutScript !== undefined &&
19074 input.signScript !== undefined &&
19075 input.pubKeys !== undefined &&
19076 input.signatures !== undefined &&
19077 input.signatures.length === input.pubKeys.length &&
19078 input.pubKeys.length
> 0 &&
19079 input.witness !== undefined
19082 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19083 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19084 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19085 hashType = hashType || Transaction.SIGHASH_ALL
19087 var input = this.inputs[vin]
19089 // if redeemScript was previously provided, enforce consistency
19090 if (input.redeemScript !== undefined &&
19092 !input.redeemScript.equals(redeemScript)) {
19093 throw new Error('Inconsistent redeemScript')
19096 var kpPubKey = keyPair.getPublicKeyBuffer()
19097 if (!canSign(input)) {
19098 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19099 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19104 if (input.witness) {
19105 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19107 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19109 // enforce in order signing of public keys
19110 var signed = input.pubKeys.some(function (pubKey, i) {
19111 if (!kpPubKey.equals(pubKey)) return false
19112 if (input.signatures[i]) throw new Error('Signature already exists')
19114 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19118 if (!signed) throw new Error('Key pair cannot sign for this input')
19121 function signatureHashType (buffer) {
19122 return buffer.readUInt8(buffer.length -
1)
19125 TransactionBuilder.prototype.__canModifyInputs = function () {
19126 return this.inputs.every(function (input) {
19128 if (input.signatures === undefined) return true
19130 return input.signatures.every(function (signature) {
19131 if (!signature) return true
19132 var hashType = signatureHashType(signature)
19134 // if SIGHASH_ANYONECANPAY is set, signatures would not
19135 // be invalidated by more inputs
19136 return hashType & Transaction.SIGHASH_ANYONECANPAY
19141 TransactionBuilder.prototype.__canModifyOutputs = function () {
19142 var nInputs = this.tx.ins.length
19143 var nOutputs = this.tx.outs.length
19145 return this.inputs.every(function (input) {
19146 if (input.signatures === undefined) return true
19148 return input.signatures.every(function (signature) {
19149 if (!signature) return true
19150 var hashType = signatureHashType(signature)
19152 var hashTypeMod = hashType &
0x1f
19153 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19154 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19155 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19156 // some signatures would be invalidated by the addition
19158 return nInputs <= nOutputs
19164 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19165 // not all inputs will have .value defined
19166 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19168 // but all outputs do, and if we have any input value
19169 // we can immediately determine if the outputs are too small
19170 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19171 var fee = incoming - outgoing
19172 var feeRate = fee / bytes
19174 return feeRate
> this.maximumFeeRate
19177 module.exports = TransactionBuilder
19179 },{"./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){
19180 var typeforce = require('typeforce')
19182 var UINT31_MAX = Math.pow(
2,
31) -
1
19183 function UInt31 (value) {
19184 return typeforce.UInt32(value) && value <= UINT31_MAX
19187 function BIP32Path (value) {
19188 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19190 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19192 var SATOSHI_MAX =
21 *
1e14
19193 function Satoshi (value) {
19194 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19197 // external dependent types
19198 var BigInt = typeforce.quacksLike('BigInteger')
19199 var ECPoint = typeforce.quacksLike('Point')
19201 // exposed, external API
19202 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19203 var Network = typeforce.compile({
19204 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19206 public: typeforce.UInt32,
19207 private: typeforce.UInt32
19209 pubKeyHash: typeforce.UInt8,
19210 scriptHash: typeforce.UInt8,
19211 wif: typeforce.UInt8
19214 // extend typeforce types with ours
19217 BIP32Path: BIP32Path,
19218 Buffer256bit: typeforce.BufferN(
32),
19220 ECSignature: ECSignature,
19221 Hash160bit: typeforce.BufferN(
20),
19222 Hash256bit: typeforce.BufferN(
32),
19228 for (var typeName in typeforce) {
19229 types[typeName] = typeforce[typeName]
19232 module.exports = types
19234 },{"typeforce":
109}],
79:[function(require,module,exports){
19235 var basex = require('base-x')
19236 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19238 module.exports = basex(ALPHABET)
19240 },{"base-x":
34}],
80:[function(require,module,exports){
19241 (function (Buffer){
19244 var base58 = require('bs58')
19245 var createHash = require('create-hash')
19247 // SHA256(SHA256(buffer))
19248 function sha256x2 (buffer) {
19249 var tmp = createHash('sha256').update(buffer).digest()
19250 return createHash('sha256').update(tmp).digest()
19253 // Encode a buffer as a base58-check encoded string
19254 function encode (payload) {
19255 var checksum = sha256x2(payload)
19257 return base58.encode(Buffer.concat([
19260 ], payload.length +
4))
19263 function decodeRaw (buffer) {
19264 var payload = buffer.slice(
0, -
4)
19265 var checksum = buffer.slice(-
4)
19266 var newChecksum = sha256x2(payload)
19268 if (checksum[
0] ^ newChecksum[
0] |
19269 checksum[
1] ^ newChecksum[
1] |
19270 checksum[
2] ^ newChecksum[
2] |
19271 checksum[
3] ^ newChecksum[
3]) return
19276 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19277 function decodeUnsafe (string) {
19278 var buffer = base58.decodeUnsafe(string)
19279 if (!buffer) return
19281 return decodeRaw(buffer)
19284 function decode (string) {
19285 var buffer = base58.decode(string)
19286 var payload = decodeRaw(buffer)
19287 if (!payload) throw new Error('Invalid checksum')
19294 decodeUnsafe: decodeUnsafe
19297 }).call(this,require("buffer").Buffer)
19298 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19299 var Buffer = require('safe-buffer').Buffer
19300 var Transform = require('stream').Transform
19301 var StringDecoder = require('string_decoder').StringDecoder
19302 var inherits = require('inherits')
19304 function CipherBase (hashMode) {
19305 Transform.call(this)
19306 this.hashMode = typeof hashMode === 'string'
19307 if (this.hashMode) {
19308 this[hashMode] = this._finalOrDigest
19310 this.final = this._finalOrDigest
19313 this.__final = this._final
19316 this._decoder = null
19317 this._encoding = null
19319 inherits(CipherBase, Transform)
19321 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19322 if (typeof data === 'string') {
19323 data = Buffer.from(data, inputEnc)
19326 var outData = this._update(data)
19327 if (this.hashMode) return this
19330 outData = this._toString(outData, outputEnc)
19336 CipherBase.prototype.setAutoPadding = function () {}
19337 CipherBase.prototype.getAuthTag = function () {
19338 throw new Error('trying to get auth tag in unsupported state')
19341 CipherBase.prototype.setAuthTag = function () {
19342 throw new Error('trying to set auth tag in unsupported state')
19345 CipherBase.prototype.setAAD = function () {
19346 throw new Error('trying to set aad in unsupported state')
19349 CipherBase.prototype._transform = function (data, _, next) {
19352 if (this.hashMode) {
19355 this.push(this._update(data))
19363 CipherBase.prototype._flush = function (done) {
19366 this.push(this.__final())
19373 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19374 var outData = this.__final() || Buffer.alloc(
0)
19376 outData = this._toString(outData, outputEnc, true)
19381 CipherBase.prototype._toString = function (value, enc, fin) {
19382 if (!this._decoder) {
19383 this._decoder = new StringDecoder(enc)
19384 this._encoding = enc
19387 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19389 var out = this._decoder.write(value)
19391 out += this._decoder.end()
19397 module.exports = CipherBase
19399 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19400 (function (Buffer){
19402 var inherits = require('inherits')
19403 var md5 = require('./md5')
19404 var RIPEMD160 = require('ripemd160')
19405 var sha = require('sha.js')
19407 var Base = require('cipher-base')
19409 function HashNoConstructor (hash) {
19410 Base.call(this, 'digest')
19416 inherits(HashNoConstructor, Base)
19418 HashNoConstructor.prototype._update = function (data) {
19419 this.buffers.push(data)
19422 HashNoConstructor.prototype._final = function () {
19423 var buf = Buffer.concat(this.buffers)
19424 var r = this._hash(buf)
19425 this.buffers = null
19430 function Hash (hash) {
19431 Base.call(this, 'digest')
19436 inherits(Hash, Base)
19438 Hash.prototype._update = function (data) {
19439 this._hash.update(data)
19442 Hash.prototype._final = function () {
19443 return this._hash.digest()
19446 module.exports = function createHash (alg) {
19447 alg = alg.toLowerCase()
19448 if (alg === 'md5') return new HashNoConstructor(md5)
19449 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19451 return new Hash(sha(alg))
19454 }).call(this,require("buffer").Buffer)
19455 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19456 (function (Buffer){
19459 var zeroBuffer = new Buffer(intSize)
19465 function toArray (buf) {
19466 if ((buf.length % intSize) !==
0) {
19467 var len = buf.length + (intSize - (buf.length % intSize))
19468 buf = Buffer.concat([buf, zeroBuffer], len)
19471 var arr = new Array(buf.length
>>> 2)
19472 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19473 arr[j] = buf.readInt32LE(i)
19479 module.exports = function hash (buf, fn) {
19480 var arr = fn(toArray(buf), buf.length * charSize)
19481 buf = new Buffer(hashSize)
19482 for (var i =
0; i < arr.length; i++) {
19483 buf.writeInt32LE(arr[i], i <<
2, true)
19488 }).call(this,require(
"buffer").Buffer)
19489 },{
"buffer":
4}],
84:[function(require,module,exports){
19492 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19493 * Digest Algorithm, as defined in RFC
1321.
19494 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19495 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19496 * Distributed under the BSD License
19497 * See http://pajhome.org.uk/crypt/md5 for more info.
19500 var makeHash = require('./make-hash')
19503 * Calculate the MD5 of an array of little-endian words, and a bit length
19505 function core_md5 (x, len) {
19506 /* append padding */
19507 x[len
>> 5] |=
0x80 << ((len) %
32)
19508 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19512 var c = -
1732584194
19515 for (var i =
0; i < x.length; i +=
16) {
19521 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19522 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19523 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19524 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19525 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19526 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19527 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19528 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19529 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19530 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19531 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19532 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19533 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19534 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19535 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19536 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19538 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19539 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19540 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19541 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19542 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19543 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19544 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19545 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19546 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19547 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19548 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19549 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19550 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19551 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19552 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19553 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19555 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19556 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19557 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19558 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19559 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19560 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19561 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19562 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19563 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19564 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19565 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19566 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19567 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19568 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19569 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19570 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19572 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19573 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19574 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19575 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19576 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19577 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19578 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19579 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19580 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19581 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19582 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19583 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19584 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19585 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19586 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19587 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19589 a = safe_add(a, olda)
19590 b = safe_add(b, oldb)
19591 c = safe_add(c, oldc)
19592 d = safe_add(d, oldd)
19595 return [a, b, c, d]
19599 * These functions implement the four basic operations the algorithm uses.
19601 function md5_cmn (q, a, b, x, s, t) {
19602 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19605 function md5_ff (a, b, c, d, x, s, t) {
19606 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19609 function md5_gg (a, b, c, d, x, s, t) {
19610 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19613 function md5_hh (a, b, c, d, x, s, t) {
19614 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19617 function md5_ii (a, b, c, d, x, s, t) {
19618 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19622 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19623 * to work around bugs in some JS interpreters.
19625 function safe_add (x, y) {
19626 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19627 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19628 return (msw <<
16) | (lsw &
0xFFFF)
19632 * Bitwise rotate a
32-bit number to the left.
19634 function bit_rol (num, cnt) {
19635 return (num << cnt) | (num
>>> (
32 - cnt))
19638 module.exports = function md5 (buf) {
19639 return makeHash(buf, core_md5)
19642 },{"./make-hash":
83}],
85:[function(require,module,exports){
19644 var inherits = require('inherits')
19645 var Legacy = require('./legacy')
19646 var Base = require('cipher-base')
19647 var Buffer = require('safe-buffer').Buffer
19648 var md5 = require('create-hash/md5')
19649 var RIPEMD160 = require('ripemd160')
19651 var sha = require('sha.js')
19653 var ZEROS = Buffer.alloc(
128)
19655 function Hmac (alg, key) {
19656 Base.call(this, 'digest')
19657 if (typeof key === 'string') {
19658 key = Buffer.from(key)
19661 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19665 if (key.length
> blocksize) {
19666 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19667 key = hash.update(key).digest()
19668 } else if (key.length < blocksize) {
19669 key = Buffer.concat([key, ZEROS], blocksize)
19672 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19673 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19675 for (var i =
0; i < blocksize; i++) {
19676 ipad[i] = key[i] ^
0x36
19677 opad[i] = key[i] ^
0x5C
19679 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19680 this._hash.update(ipad)
19683 inherits(Hmac, Base)
19685 Hmac.prototype._update = function (data) {
19686 this._hash.update(data)
19689 Hmac.prototype._final = function () {
19690 var h = this._hash.digest()
19691 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19692 return hash.update(this._opad).update(h).digest()
19695 module.exports = function createHmac (alg, key) {
19696 alg = alg.toLowerCase()
19697 if (alg === 'rmd160' || alg === 'ripemd160') {
19698 return new Hmac('rmd160', key)
19700 if (alg === 'md5') {
19701 return new Legacy(md5, key)
19703 return new Hmac(alg, key)
19706 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19708 var inherits = require('inherits')
19709 var Buffer = require('safe-buffer').Buffer
19711 var Base = require('cipher-base')
19713 var ZEROS = Buffer.alloc(
128)
19716 function Hmac (alg, key) {
19717 Base.call(this, 'digest')
19718 if (typeof key === 'string') {
19719 key = Buffer.from(key)
19725 if (key.length
> blocksize) {
19727 } else if (key.length < blocksize) {
19728 key = Buffer.concat([key, ZEROS], blocksize)
19731 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19732 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19734 for (var i =
0; i < blocksize; i++) {
19735 ipad[i] = key[i] ^
0x36
19736 opad[i] = key[i] ^
0x5C
19739 this._hash = [ipad]
19742 inherits(Hmac, Base)
19744 Hmac.prototype._update = function (data) {
19745 this._hash.push(data)
19748 Hmac.prototype._final = function () {
19749 var h = this._alg(Buffer.concat(this._hash))
19750 return this._alg(Buffer.concat([this._opad, h]))
19752 module.exports = Hmac
19754 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19755 var assert = require('assert')
19756 var BigInteger = require('bigi')
19758 var Point = require('./point')
19760 function Curve (p, a, b, Gx, Gy, n, h) {
19764 this.G = Point.fromAffine(this, Gx, Gy)
19768 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19771 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19773 // determine size of p in bytes
19774 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19777 Curve.prototype.pointFromX = function (isOdd, x) {
19778 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19779 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19782 if (beta.isEven() ^ !isOdd) {
19783 y = this.p.subtract(y) // -y % p
19786 return Point.fromAffine(this, x, y)
19789 Curve.prototype.isInfinity = function (Q) {
19790 if (Q === this.infinity) return true
19792 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19795 Curve.prototype.isOnCurve = function (Q) {
19796 if (this.isInfinity(Q)) return true
19804 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19805 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19806 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19808 // and check that y^
2 = x^
3 + ax + b (mod p)
19809 var lhs = y.square().mod(p)
19810 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19811 return lhs.equals(rhs)
19815 * Validate an elliptic curve point.
19817 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19819 Curve.prototype.validate = function (Q) {
19821 assert(!this.isInfinity(Q), 'Point is at infinity')
19822 assert(this.isOnCurve(Q), 'Point is not on the curve')
19824 // Check nQ = O (where Q is a scalar multiple of G)
19825 var nQ = Q.multiply(this.n)
19826 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19831 module.exports = Curve
19833 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19836 "p": "fffffffdffffffffffffffffffffffff",
19837 "a": "fffffffdfffffffffffffffffffffffc",
19838 "b": "e87579c11079f43dd824993c2cee5ed3",
19839 "n": "fffffffe0000000075a30d1b9038a115",
19841 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19842 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19845 "p": "fffffffffffffffffffffffffffffffeffffac73",
19848 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19850 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19851 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19854 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19855 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19856 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19857 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19859 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19860 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19863 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19866 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19868 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19869 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19872 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19873 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19874 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19875 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19877 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19878 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19881 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19884 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19886 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19887 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19890 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19891 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19892 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19893 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19895 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19896 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19900 },{}],
89:[function(require,module,exports){
19901 var Point = require('./point')
19902 var Curve = require('./curve')
19904 var getCurveByName = require('./names')
19909 getCurveByName: getCurveByName
19912 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19913 var BigInteger = require('bigi')
19915 var curves = require('./curves.json')
19916 var Curve = require('./curve')
19918 function getCurveByName (name) {
19919 var curve = curves[name]
19920 if (!curve) return null
19922 var p = new BigInteger(curve.p,
16)
19923 var a = new BigInteger(curve.a,
16)
19924 var b = new BigInteger(curve.b,
16)
19925 var n = new BigInteger(curve.n,
16)
19926 var h = new BigInteger(curve.h,
16)
19927 var Gx = new BigInteger(curve.Gx,
16)
19928 var Gy = new BigInteger(curve.Gy,
16)
19930 return new Curve(p, a, b, Gx, Gy, n, h)
19933 module.exports = getCurveByName
19935 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19936 (function (Buffer){
19937 var assert = require('assert')
19938 var BigInteger = require('bigi')
19940 var THREE = BigInteger.valueOf(
3)
19942 function Point (curve, x, y, z) {
19943 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19951 this.compressed = true
19954 Object.defineProperty(Point.prototype, 'zInv', {
19956 if (this._zInv === null) {
19957 this._zInv = this.z.modInverse(this.curve.p)
19964 Object.defineProperty(Point.prototype, 'affineX', {
19966 return this.x.multiply(this.zInv).mod(this.curve.p)
19970 Object.defineProperty(Point.prototype, 'affineY', {
19972 return this.y.multiply(this.zInv).mod(this.curve.p)
19976 Point.fromAffine = function (curve, x, y) {
19977 return new Point(curve, x, y, BigInteger.ONE)
19980 Point.prototype.equals = function (other) {
19981 if (other === this) return true
19982 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19983 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
19985 // u = Y2 * Z1 - Y1 * Z2
19986 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
19988 if (u.signum() !==
0) return false
19990 // v = X2 * Z1 - X1 * Z2
19991 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
19993 return v.signum() ===
0
19996 Point.prototype.negate = function () {
19997 var y = this.curve.p.subtract(this.y)
19999 return new Point(this.curve, this.x, y, this.z)
20002 Point.prototype.add = function (b) {
20003 if (this.curve.isInfinity(this)) return b
20004 if (this.curve.isInfinity(b)) return this
20011 // u = Y2 * Z1 - Y1 * Z2
20012 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
20013 // v = X2 * Z1 - X1 * Z2
20014 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
20016 if (v.signum() ===
0) {
20017 if (u.signum() ===
0) {
20018 return this.twice() // this == b, so double
20021 return this.curve.infinity // this = -b, so infinity
20024 var v2 = v.square()
20025 var v3 = v2.multiply(v)
20026 var x1v2 = x1.multiply(v2)
20027 var zu2 = u.square().multiply(this.z)
20029 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
20030 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
20031 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
20032 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)
20033 // z3 = v^
3 * z1 * z2
20034 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
20036 return new Point(this.curve, x3, y3, z3)
20039 Point.prototype.twice = function () {
20040 if (this.curve.isInfinity(this)) return this
20041 if (this.y.signum() ===
0) return this.curve.infinity
20046 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20047 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20048 var a = this.curve.a
20050 // w =
3 * x1^
2 + a * z1^
2
20051 var w = x1.square().multiply(THREE)
20053 if (a.signum() !==
0) {
20054 w = w.add(this.z.square().multiply(a))
20057 w = w.mod(this.curve.p)
20058 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20059 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20060 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20061 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20062 // z3 =
8 * (y1 * z1)^
3
20063 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20065 return new Point(this.curve, x3, y3, z3)
20068 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20069 // TODO: modularize the multiplication algorithm
20070 Point.prototype.multiply = function (k) {
20071 if (this.curve.isInfinity(this)) return this
20072 if (k.signum() ===
0) return this.curve.infinity
20075 var h = e.multiply(THREE)
20077 var neg = this.negate()
20080 for (var i = h.bitLength() -
2; i
> 0; --i) {
20081 var hBit = h.testBit(i)
20082 var eBit = e.testBit(i)
20086 if (hBit !== eBit) {
20087 R = R.add(hBit ? this : neg)
20094 // Compute this*j + x*k (simultaneous multiplication)
20095 Point.prototype.multiplyTwo = function (j, x, k) {
20096 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20097 var R = this.curve.infinity
20098 var both = this.add(x)
20101 var jBit = j.testBit(i)
20102 var kBit = k.testBit(i)
20121 Point.prototype.getEncoded = function (compressed) {
20122 if (compressed == null) compressed = this.compressed
20123 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20125 var x = this.affineX
20126 var y = this.affineY
20127 var byteLength = this.curve.pLength
20132 buffer = new Buffer(
1 + byteLength)
20133 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20137 buffer = new Buffer(
1 + byteLength + byteLength)
20138 buffer.writeUInt8(
0x04,
0)
20140 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20143 x.toBuffer(byteLength).copy(buffer,
1)
20148 Point.decodeFrom = function (curve, buffer) {
20149 var type = buffer.readUInt8(
0)
20150 var compressed = (type !==
4)
20152 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20153 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20157 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20158 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20160 var isOdd = (type ===
0x03)
20161 Q = curve.pointFromX(isOdd, x)
20163 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20165 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20166 Q = Point.fromAffine(curve, x, y)
20169 Q.compressed = compressed
20173 Point.prototype.toString = function () {
20174 if (this.curve.isInfinity(this)) return '(INFINITY)'
20176 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20179 module.exports = Point
20181 }).call(this,require("buffer").Buffer)
20182 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20183 (function (Buffer){
20185 var Transform = require('stream').Transform
20186 var inherits = require('inherits')
20188 function HashBase (blockSize) {
20189 Transform.call(this)
20191 this._block = new Buffer(blockSize)
20192 this._blockSize = blockSize
20193 this._blockOffset =
0
20194 this._length = [
0,
0,
0,
0]
20196 this._finalized = false
20199 inherits(HashBase, Transform)
20201 HashBase.prototype._transform = function (chunk, encoding, callback) {
20204 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20213 HashBase.prototype._flush = function (callback) {
20216 this.push(this._digest())
20224 HashBase.prototype.update = function (data, encoding) {
20225 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20226 if (this._finalized) throw new Error('Digest already called')
20227 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20230 var block = this._block
20232 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20233 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20235 this._blockOffset =
0
20237 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20240 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20241 this._length[j] += carry
20242 carry = (this._length[j] /
0x0100000000) |
0
20243 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20249 HashBase.prototype._update = function (data) {
20250 throw new Error('_update is not implemented')
20253 HashBase.prototype.digest = function (encoding) {
20254 if (this._finalized) throw new Error('Digest already called')
20255 this._finalized = true
20257 var digest = this._digest()
20258 if (encoding !== undefined) digest = digest.toString(encoding)
20262 HashBase.prototype._digest = function () {
20263 throw new Error('_digest is not implemented')
20266 module.exports = HashBase
20268 }).call(this,require(
"buffer").Buffer)
20269 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20270 arguments[
4][
8][
0].apply(exports,arguments)
20271 },{
"dup":
8}],
94:[function(require,module,exports){
20272 (function (Buffer){
20273 // constant-space merkle root calculation algorithm
20274 module.exports = function fastRoot (values, digestFn) {
20275 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20276 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20278 var length = values.length
20279 var results = values.concat()
20281 while (length
> 1) {
20284 for (var i =
0; i < length; i +=
2, ++j) {
20285 var left = results[i]
20286 var right = i +
1 === length ? left : results[i +
1]
20287 var data = Buffer.concat([left, right])
20289 results[j] = digestFn(data)
20298 }).call(this,require(
"buffer").Buffer)
20299 },{
"buffer":
4}],
95:[function(require,module,exports){
20300 var OPS = require('bitcoin-ops')
20302 function encodingLength (i) {
20303 return i < OPS.OP_PUSHDATA1 ?
1
20309 function encode (buffer, number, offset) {
20310 var size = encodingLength(number)
20314 buffer.writeUInt8(number, offset)
20317 } else if (size ===
2) {
20318 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20319 buffer.writeUInt8(number, offset +
1)
20322 } else if (size ===
3) {
20323 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20324 buffer.writeUInt16LE(number, offset +
1)
20328 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20329 buffer.writeUInt32LE(number, offset +
1)
20335 function decode (buffer, offset) {
20336 var opcode = buffer.readUInt8(offset)
20340 if (opcode < OPS.OP_PUSHDATA1) {
20345 } else if (opcode === OPS.OP_PUSHDATA1) {
20346 if (offset +
2 > buffer.length) return null
20347 number = buffer.readUInt8(offset +
1)
20351 } else if (opcode === OPS.OP_PUSHDATA2) {
20352 if (offset +
3 > buffer.length) return null
20353 number = buffer.readUInt16LE(offset +
1)
20358 if (offset +
5 > buffer.length) return null
20359 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20361 number = buffer.readUInt32LE(offset +
1)
20373 encodingLength: encodingLength,
20378 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20379 (function (process,global){
20382 function oldBrowser () {
20383 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20386 var Buffer = require('safe-buffer').Buffer
20387 var crypto = global.crypto || global.msCrypto
20389 if (crypto && crypto.getRandomValues) {
20390 module.exports = randomBytes
20392 module.exports = oldBrowser
20395 function randomBytes (size, cb) {
20396 // phantomjs needs to throw
20397 if (size
> 65536) throw new Error('requested too many random bytes')
20398 // in case browserify isn't using the Uint8Array version
20399 var rawBytes = new global.Uint8Array(size)
20401 // This will not work in older browsers.
20402 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20403 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20404 crypto.getRandomValues(rawBytes)
20407 // XXX: phantomjs doesn't like a buffer being passed here
20408 var bytes = Buffer.from(rawBytes.buffer)
20410 if (typeof cb === 'function') {
20411 return process.nextTick(function () {
20419 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20420 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20421 (function (Buffer){
20423 var inherits = require('inherits')
20424 var HashBase = require('hash-base')
20426 function RIPEMD160 () {
20427 HashBase.call(this,
64)
20430 this._a =
0x67452301
20431 this._b =
0xefcdab89
20432 this._c =
0x98badcfe
20433 this._d =
0x10325476
20434 this._e =
0xc3d2e1f0
20437 inherits(RIPEMD160, HashBase)
20439 RIPEMD160.prototype._update = function () {
20440 var m = new Array(
16)
20441 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20449 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20451 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20452 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20453 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20454 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20455 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20456 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20457 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20458 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20459 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20460 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20461 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20462 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20463 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20464 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20465 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20466 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20467 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20469 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20471 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20472 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20473 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20474 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20475 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20476 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20477 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20478 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20479 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20480 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20481 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20482 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20483 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20484 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20485 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20486 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20487 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20489 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20491 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20492 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20493 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20494 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20495 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20496 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20497 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20498 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20499 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20500 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20501 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20502 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20503 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20504 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20505 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20506 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20507 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20509 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20511 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20512 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20513 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20514 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20515 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20516 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20517 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20518 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20519 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20520 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20521 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20522 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20523 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20524 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20525 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20526 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20527 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20529 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20531 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20532 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20533 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20534 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20535 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20536 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20537 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20538 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20539 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20540 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20541 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20542 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20543 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20544 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20545 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20546 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20547 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20555 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20557 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20558 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20559 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20560 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20561 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20562 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20563 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20564 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20565 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20566 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20567 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20568 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20569 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20570 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20571 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20572 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20573 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20575 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20577 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20578 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20579 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20580 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20581 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20582 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20583 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20584 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20585 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20586 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20587 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20588 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20589 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20590 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20591 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20592 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20593 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20595 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20597 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20598 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20599 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20600 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20601 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20602 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20603 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20604 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20605 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20606 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20607 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20608 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20609 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20610 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20611 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20612 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20613 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20615 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20617 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20618 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20619 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20620 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20621 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20622 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20623 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20624 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20625 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20626 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20627 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20628 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20629 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20630 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20631 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20632 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20633 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20635 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20637 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20638 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20639 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20640 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20641 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20642 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20643 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20644 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20645 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20646 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20647 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20648 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20649 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20650 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20651 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20652 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20653 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20656 var t = (this._b + cl + dr) |
0
20657 this._b = (this._c + dl + er) |
0
20658 this._c = (this._d + el + ar) |
0
20659 this._d = (this._e + al + br) |
0
20660 this._e = (this._a + bl + cr) |
0
20664 RIPEMD160.prototype._digest = function () {
20665 // create padding and handle blocks
20666 this._block[this._blockOffset++] =
0x80
20667 if (this._blockOffset
> 56) {
20668 this._block.fill(
0, this._blockOffset,
64)
20670 this._blockOffset =
0
20673 this._block.fill(
0, this._blockOffset,
56)
20674 this._block.writeUInt32LE(this._length[
0],
56)
20675 this._block.writeUInt32LE(this._length[
1],
60)
20679 var buffer = new Buffer(
20)
20680 buffer.writeInt32LE(this._a,
0)
20681 buffer.writeInt32LE(this._b,
4)
20682 buffer.writeInt32LE(this._c,
8)
20683 buffer.writeInt32LE(this._d,
12)
20684 buffer.writeInt32LE(this._e,
16)
20688 function rotl (x, n) {
20689 return (x << n) | (x
>>> (
32 - n))
20692 function fn1 (a, b, c, d, e, m, k, s) {
20693 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20696 function fn2 (a, b, c, d, e, m, k, s) {
20697 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20700 function fn3 (a, b, c, d, e, m, k, s) {
20701 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20704 function fn4 (a, b, c, d, e, m, k, s) {
20705 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20708 function fn5 (a, b, c, d, e, m, k, s) {
20709 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20712 module.exports = RIPEMD160
20714 }).call(this,require("buffer").Buffer)
20715 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20716 arguments[
4][
26][
0].apply(exports,arguments)
20717 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20718 (function (Buffer){
20719 // prototype class for hash functions
20720 function Hash (blockSize, finalSize) {
20721 this._block = new Buffer(blockSize)
20722 this._finalSize = finalSize
20723 this._blockSize = blockSize
20728 Hash.prototype.update = function (data, enc) {
20729 if (typeof data === 'string') {
20730 enc = enc || 'utf8'
20731 data = new Buffer(data, enc)
20734 var l = this._len += data.length
20735 var s = this._s ||
0
20737 var buffer = this._block
20740 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20743 for (var i =
0; i < ch; i++) {
20744 buffer[(s % this._blockSize) + i] = data[i + f]
20750 if ((s % this._blockSize) ===
0) {
20751 this._update(buffer)
20759 Hash.prototype.digest = function (enc) {
20760 // Suppose the length of the message M, in bits, is l
20761 var l = this._len *
8
20763 // Append the bit
1 to the end of the message
20764 this._block[this._len % this._blockSize] =
0x80
20766 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20767 this._block.fill(
0, this._len % this._blockSize +
1)
20769 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20770 this._update(this._block)
20771 this._block.fill(
0)
20774 // to this append the block which is equal to the number l written in binary
20775 // TODO: handle case where l is
> Math.pow(
2,
29)
20776 this._block.writeInt32BE(l, this._blockSize -
4)
20778 var hash = this._update(this._block) || this._hash()
20780 return enc ? hash.toString(enc) : hash
20783 Hash.prototype._update = function () {
20784 throw new Error('_update must be implemented by subclass')
20787 module.exports = Hash
20789 }).call(this,require("buffer").Buffer)
20790 },{"buffer":
4}],
100:[function(require,module,exports){
20791 var exports = module.exports = function SHA (algorithm) {
20792 algorithm = algorithm.toLowerCase()
20794 var Algorithm = exports[algorithm]
20795 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20797 return new Algorithm()
20800 exports.sha = require('./sha')
20801 exports.sha1 = require('./sha1')
20802 exports.sha224 = require('./sha224')
20803 exports.sha256 = require('./sha256')
20804 exports.sha384 = require('./sha384')
20805 exports.sha512 = require('./sha512')
20807 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20808 (function (Buffer){
20810 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20811 * in FIPS PUB
180-
1
20812 * This source code is derived from sha1.js of the same repository.
20813 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20814 * operation was added.
20817 var inherits = require('inherits')
20818 var Hash = require('./hash')
20821 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20824 var W = new Array(
80)
20830 Hash.call(this,
64,
56)
20833 inherits(Sha, Hash)
20835 Sha.prototype.init = function () {
20836 this._a =
0x67452301
20837 this._b =
0xefcdab89
20838 this._c =
0x98badcfe
20839 this._d =
0x10325476
20840 this._e =
0xc3d2e1f0
20845 function rotl5 (num) {
20846 return (num <<
5) | (num
>>> 27)
20849 function rotl30 (num) {
20850 return (num <<
30) | (num
>>> 2)
20853 function ft (s, b, c, d) {
20854 if (s ===
0) return (b & c) | ((~b) & d)
20855 if (s ===
2) return (b & c) | (b & d) | (c & d)
20859 Sha.prototype._update = function (M) {
20862 var a = this._a |
0
20863 var b = this._b |
0
20864 var c = this._c |
0
20865 var d = this._d |
0
20866 var e = this._e |
0
20868 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20869 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20871 for (var j =
0; j <
80; ++j) {
20873 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20882 this._a = (a + this._a) |
0
20883 this._b = (b + this._b) |
0
20884 this._c = (c + this._c) |
0
20885 this._d = (d + this._d) |
0
20886 this._e = (e + this._e) |
0
20889 Sha.prototype._hash = function () {
20890 var H = new Buffer(
20)
20892 H.writeInt32BE(this._a |
0,
0)
20893 H.writeInt32BE(this._b |
0,
4)
20894 H.writeInt32BE(this._c |
0,
8)
20895 H.writeInt32BE(this._d |
0,
12)
20896 H.writeInt32BE(this._e |
0,
16)
20901 module.exports = Sha
20903 }).call(this,require(
"buffer").Buffer)
20904 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20905 (function (Buffer){
20907 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20908 * in FIPS PUB
180-
1
20909 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20910 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20911 * Distributed under the BSD License
20912 * See http://pajhome.org.uk/crypt/md5 for details.
20915 var inherits = require('inherits')
20916 var Hash = require('./hash')
20919 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20922 var W = new Array(
80)
20928 Hash.call(this,
64,
56)
20931 inherits(Sha1, Hash)
20933 Sha1.prototype.init = function () {
20934 this._a =
0x67452301
20935 this._b =
0xefcdab89
20936 this._c =
0x98badcfe
20937 this._d =
0x10325476
20938 this._e =
0xc3d2e1f0
20943 function rotl1 (num) {
20944 return (num <<
1) | (num
>>> 31)
20947 function rotl5 (num) {
20948 return (num <<
5) | (num
>>> 27)
20951 function rotl30 (num) {
20952 return (num <<
30) | (num
>>> 2)
20955 function ft (s, b, c, d) {
20956 if (s ===
0) return (b & c) | ((~b) & d)
20957 if (s ===
2) return (b & c) | (b & d) | (c & d)
20961 Sha1.prototype._update = function (M) {
20964 var a = this._a |
0
20965 var b = this._b |
0
20966 var c = this._c |
0
20967 var d = this._d |
0
20968 var e = this._e |
0
20970 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20971 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20973 for (var j =
0; j <
80; ++j) {
20975 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20984 this._a = (a + this._a) |
0
20985 this._b = (b + this._b) |
0
20986 this._c = (c + this._c) |
0
20987 this._d = (d + this._d) |
0
20988 this._e = (e + this._e) |
0
20991 Sha1.prototype._hash = function () {
20992 var H = new Buffer(
20)
20994 H.writeInt32BE(this._a |
0,
0)
20995 H.writeInt32BE(this._b |
0,
4)
20996 H.writeInt32BE(this._c |
0,
8)
20997 H.writeInt32BE(this._d |
0,
12)
20998 H.writeInt32BE(this._e |
0,
16)
21003 module.exports = Sha1
21005 }).call(this,require(
"buffer").Buffer)
21006 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
21007 (function (Buffer){
21009 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21011 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21012 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21016 var inherits = require('inherits')
21017 var Sha256 = require('./sha256')
21018 var Hash = require('./hash')
21020 var W = new Array(
64)
21022 function Sha224 () {
21025 this._w = W // new Array(
64)
21027 Hash.call(this,
64,
56)
21030 inherits(Sha224, Sha256)
21032 Sha224.prototype.init = function () {
21033 this._a =
0xc1059ed8
21034 this._b =
0x367cd507
21035 this._c =
0x3070dd17
21036 this._d =
0xf70e5939
21037 this._e =
0xffc00b31
21038 this._f =
0x68581511
21039 this._g =
0x64f98fa7
21040 this._h =
0xbefa4fa4
21045 Sha224.prototype._hash = function () {
21046 var H = new Buffer(
28)
21048 H.writeInt32BE(this._a,
0)
21049 H.writeInt32BE(this._b,
4)
21050 H.writeInt32BE(this._c,
8)
21051 H.writeInt32BE(this._d,
12)
21052 H.writeInt32BE(this._e,
16)
21053 H.writeInt32BE(this._f,
20)
21054 H.writeInt32BE(this._g,
24)
21059 module.exports = Sha224
21061 }).call(this,require(
"buffer").Buffer)
21062 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21063 (function (Buffer){
21065 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21067 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21068 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21072 var inherits = require('inherits')
21073 var Hash = require('./hash')
21076 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21077 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21078 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21079 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21080 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21081 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21082 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21083 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21084 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21085 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21086 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21087 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21088 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21089 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21090 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21091 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21094 var W = new Array(
64)
21096 function Sha256 () {
21099 this._w = W // new Array(
64)
21101 Hash.call(this,
64,
56)
21104 inherits(Sha256, Hash)
21106 Sha256.prototype.init = function () {
21107 this._a =
0x6a09e667
21108 this._b =
0xbb67ae85
21109 this._c =
0x3c6ef372
21110 this._d =
0xa54ff53a
21111 this._e =
0x510e527f
21112 this._f =
0x9b05688c
21113 this._g =
0x1f83d9ab
21114 this._h =
0x5be0cd19
21119 function ch (x, y, z) {
21120 return z ^ (x & (y ^ z))
21123 function maj (x, y, z) {
21124 return (x & y) | (z & (x | y))
21127 function sigma0 (x) {
21128 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21131 function sigma1 (x) {
21132 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21135 function gamma0 (x) {
21136 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21139 function gamma1 (x) {
21140 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21143 Sha256.prototype._update = function (M) {
21146 var a = this._a |
0
21147 var b = this._b |
0
21148 var c = this._c |
0
21149 var d = this._d |
0
21150 var e = this._e |
0
21151 var f = this._f |
0
21152 var g = this._g |
0
21153 var h = this._h |
0
21155 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21156 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21158 for (var j =
0; j <
64; ++j) {
21159 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21160 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21172 this._a = (a + this._a) |
0
21173 this._b = (b + this._b) |
0
21174 this._c = (c + this._c) |
0
21175 this._d = (d + this._d) |
0
21176 this._e = (e + this._e) |
0
21177 this._f = (f + this._f) |
0
21178 this._g = (g + this._g) |
0
21179 this._h = (h + this._h) |
0
21182 Sha256.prototype._hash = function () {
21183 var H = new Buffer(
32)
21185 H.writeInt32BE(this._a,
0)
21186 H.writeInt32BE(this._b,
4)
21187 H.writeInt32BE(this._c,
8)
21188 H.writeInt32BE(this._d,
12)
21189 H.writeInt32BE(this._e,
16)
21190 H.writeInt32BE(this._f,
20)
21191 H.writeInt32BE(this._g,
24)
21192 H.writeInt32BE(this._h,
28)
21197 module.exports = Sha256
21199 }).call(this,require(
"buffer").Buffer)
21200 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21201 (function (Buffer){
21202 var inherits = require('inherits')
21203 var SHA512 = require('./sha512')
21204 var Hash = require('./hash')
21206 var W = new Array(
160)
21208 function Sha384 () {
21212 Hash.call(this,
128,
112)
21215 inherits(Sha384, SHA512)
21217 Sha384.prototype.init = function () {
21218 this._ah =
0xcbbb9d5d
21219 this._bh =
0x629a292a
21220 this._ch =
0x9159015a
21221 this._dh =
0x152fecd8
21222 this._eh =
0x67332667
21223 this._fh =
0x8eb44a87
21224 this._gh =
0xdb0c2e0d
21225 this._hh =
0x47b5481d
21227 this._al =
0xc1059ed8
21228 this._bl =
0x367cd507
21229 this._cl =
0x3070dd17
21230 this._dl =
0xf70e5939
21231 this._el =
0xffc00b31
21232 this._fl =
0x68581511
21233 this._gl =
0x64f98fa7
21234 this._hl =
0xbefa4fa4
21239 Sha384.prototype._hash = function () {
21240 var H = new Buffer(
48)
21242 function writeInt64BE (h, l, offset) {
21243 H.writeInt32BE(h, offset)
21244 H.writeInt32BE(l, offset +
4)
21247 writeInt64BE(this._ah, this._al,
0)
21248 writeInt64BE(this._bh, this._bl,
8)
21249 writeInt64BE(this._ch, this._cl,
16)
21250 writeInt64BE(this._dh, this._dl,
24)
21251 writeInt64BE(this._eh, this._el,
32)
21252 writeInt64BE(this._fh, this._fl,
40)
21257 module.exports = Sha384
21259 }).call(this,require(
"buffer").Buffer)
21260 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21261 (function (Buffer){
21262 var inherits = require('inherits')
21263 var Hash = require('./hash')
21266 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21267 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21268 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21269 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21270 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21271 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21272 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21273 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21274 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21275 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21276 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21277 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21278 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21279 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21280 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21281 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21282 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21283 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21284 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21285 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21286 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21287 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21288 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21289 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21290 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21291 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21292 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21293 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21294 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21295 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21296 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21297 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21298 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21299 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21300 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21301 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21302 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21303 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21304 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21305 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21308 var W = new Array(
160)
21310 function Sha512 () {
21314 Hash.call(this,
128,
112)
21317 inherits(Sha512, Hash)
21319 Sha512.prototype.init = function () {
21320 this._ah =
0x6a09e667
21321 this._bh =
0xbb67ae85
21322 this._ch =
0x3c6ef372
21323 this._dh =
0xa54ff53a
21324 this._eh =
0x510e527f
21325 this._fh =
0x9b05688c
21326 this._gh =
0x1f83d9ab
21327 this._hh =
0x5be0cd19
21329 this._al =
0xf3bcc908
21330 this._bl =
0x84caa73b
21331 this._cl =
0xfe94f82b
21332 this._dl =
0x5f1d36f1
21333 this._el =
0xade682d1
21334 this._fl =
0x2b3e6c1f
21335 this._gl =
0xfb41bd6b
21336 this._hl =
0x137e2179
21341 function Ch (x, y, z) {
21342 return z ^ (x & (y ^ z))
21345 function maj (x, y, z) {
21346 return (x & y) | (z & (x | y))
21349 function sigma0 (x, xl) {
21350 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21353 function sigma1 (x, xl) {
21354 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21357 function Gamma0 (x, xl) {
21358 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21361 function Gamma0l (x, xl) {
21362 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21365 function Gamma1 (x, xl) {
21366 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21369 function Gamma1l (x, xl) {
21370 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21373 function getCarry (a, b) {
21374 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21377 Sha512.prototype._update = function (M) {
21380 var ah = this._ah |
0
21381 var bh = this._bh |
0
21382 var ch = this._ch |
0
21383 var dh = this._dh |
0
21384 var eh = this._eh |
0
21385 var fh = this._fh |
0
21386 var gh = this._gh |
0
21387 var hh = this._hh |
0
21389 var al = this._al |
0
21390 var bl = this._bl |
0
21391 var cl = this._cl |
0
21392 var dl = this._dl |
0
21393 var el = this._el |
0
21394 var fl = this._fl |
0
21395 var gl = this._gl |
0
21396 var hl = this._hl |
0
21398 for (var i =
0; i <
32; i +=
2) {
21399 W[i] = M.readInt32BE(i *
4)
21400 W[i +
1] = M.readInt32BE(i *
4 +
4)
21402 for (; i <
160; i +=
2) {
21403 var xh = W[i -
15 *
2]
21404 var xl = W[i -
15 *
2 +
1]
21405 var gamma0 = Gamma0(xh, xl)
21406 var gamma0l = Gamma0l(xl, xh)
21409 xl = W[i -
2 *
2 +
1]
21410 var gamma1 = Gamma1(xh, xl)
21411 var gamma1l = Gamma1l(xl, xh)
21413 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21414 var Wi7h = W[i -
7 *
2]
21415 var Wi7l = W[i -
7 *
2 +
1]
21417 var Wi16h = W[i -
16 *
2]
21418 var Wi16l = W[i -
16 *
2 +
1]
21420 var Wil = (gamma0l + Wi7l) |
0
21421 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21422 Wil = (Wil + gamma1l) |
0
21423 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21424 Wil = (Wil + Wi16l) |
0
21425 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21431 for (var j =
0; j <
160; j +=
2) {
21435 var majh = maj(ah, bh, ch)
21436 var majl = maj(al, bl, cl)
21438 var sigma0h = sigma0(ah, al)
21439 var sigma0l = sigma0(al, ah)
21440 var sigma1h = sigma1(eh, el)
21441 var sigma1l = sigma1(el, eh)
21443 // t1 = h + sigma1 + ch + K[j] + W[j]
21447 var chh = Ch(eh, fh, gh)
21448 var chl = Ch(el, fl, gl)
21450 var t1l = (hl + sigma1l) |
0
21451 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21452 t1l = (t1l + chl) |
0
21453 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21454 t1l = (t1l + Kil) |
0
21455 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21456 t1l = (t1l + Wil) |
0
21457 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21459 // t2 = sigma0 + maj
21460 var t2l = (sigma0l + majl) |
0
21461 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21469 el = (dl + t1l) |
0
21470 eh = (dh + t1h + getCarry(el, dl)) |
0
21477 al = (t1l + t2l) |
0
21478 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21481 this._al = (this._al + al) |
0
21482 this._bl = (this._bl + bl) |
0
21483 this._cl = (this._cl + cl) |
0
21484 this._dl = (this._dl + dl) |
0
21485 this._el = (this._el + el) |
0
21486 this._fl = (this._fl + fl) |
0
21487 this._gl = (this._gl + gl) |
0
21488 this._hl = (this._hl + hl) |
0
21490 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21491 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21492 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21493 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21494 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21495 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21496 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21497 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21500 Sha512.prototype._hash = function () {
21501 var H = new Buffer(
64)
21503 function writeInt64BE (h, l, offset) {
21504 H.writeInt32BE(h, offset)
21505 H.writeInt32BE(l, offset +
4)
21508 writeInt64BE(this._ah, this._al,
0)
21509 writeInt64BE(this._bh, this._bl,
8)
21510 writeInt64BE(this._ch, this._cl,
16)
21511 writeInt64BE(this._dh, this._dl,
24)
21512 writeInt64BE(this._eh, this._el,
32)
21513 writeInt64BE(this._fh, this._fl,
40)
21514 writeInt64BE(this._gh, this._gl,
48)
21515 writeInt64BE(this._hh, this._hl,
56)
21520 module.exports = Sha512
21522 }).call(this,require(
"buffer").Buffer)
21523 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21524 var inherits = require('inherits')
21525 var native = require('./native')
21527 function TfTypeError (type, value, valueTypeName) {
21528 this.__error = Error.call(this)
21530 this.__value = value
21531 this.__valueTypeName = valueTypeName
21534 Object.defineProperty(this, 'message', {
21537 if (message) return message
21539 valueTypeName = valueTypeName || getValueTypeName(value)
21540 message = tfErrorString(type, value, valueTypeName)
21547 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21548 this.__error = error || Error.call(this)
21549 this.__label = label
21550 this.__property = property
21552 this.__value = value
21553 this.__valueTypeName = valueTypeName
21556 Object.defineProperty(this, 'message', {
21559 if (message) return message
21561 valueTypeName = valueTypeName || getValueTypeName(value)
21562 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21564 message = 'Unexpected property
"' + property + '"'
21572 // inherit from Error, assign stack
21573 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21574 inherits(tfErrorType, Error)
21575 Object.defineProperty(tfErrorType, 'stack', {
21576 get: function () { return this.__error.stack }
21580 function tfCustomError (expected, actual) {
21581 return new TfTypeError(expected, {}, actual)
21584 function tfSubError (e, property, label) {
21586 if (e instanceof TfPropertyTypeError) {
21587 property = property + '.' + e.__property
21590 return new TfPropertyTypeError(
21591 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21596 if (e instanceof TfTypeError) {
21597 return new TfPropertyTypeError(
21598 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21605 function getTypeName (fn) {
21606 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21609 function getValueTypeName (value) {
21610 return native.Nil(value) ? '' : getTypeName(value.constructor)
21613 function getValue (value) {
21614 if (native.Function(value)) return ''
21615 if (native.String(value)) return JSON.stringify(value)
21616 if (value && native.Object(value)) return ''
21620 function tfJSON (type) {
21621 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21622 if (native.Array(type)) return 'Array'
21623 if (type && native.Object(type)) return 'Object'
21625 return type !== undefined ? type : ''
21628 function tfErrorString (type, value, valueTypeName) {
21629 var valueJson = getValue(value)
21631 return 'Expected ' + tfJSON(type) + ', got' +
21632 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21633 (valueJson !== '' ? ' ' + valueJson : '')
21636 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21637 var description = '
" of type '
21638 if (label === 'key') description = '" with key type '
21640 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21644 TfTypeError: TfTypeError,
21645 TfPropertyTypeError: TfPropertyTypeError,
21646 tfCustomError: tfCustomError,
21647 tfSubError: tfSubError,
21649 getValueTypeName: getValueTypeName
21652 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21653 (function (Buffer){
21654 var NATIVE = require('./native')
21655 var ERRORS = require('./errors')
21657 function _Buffer (value) {
21658 return Buffer.isBuffer(value)
21661 function Hex (value) {
21662 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21665 function _LengthN (type, length) {
21666 var name = type.toJSON()
21668 function Length (value) {
21669 if (!type(value)) return false
21670 if (value.length === length) return true
21672 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21674 Length.toJSON = function () { return name }
21679 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21680 var _BufferN = _LengthN.bind(null, _Buffer)
21681 var _HexN = _LengthN.bind(null, Hex)
21683 var UINT53_MAX = Math.pow(2, 53) - 1
21685 function Finite (value) {
21686 return typeof value === 'number' && isFinite(value)
21688 function Int8 (value) { return ((value << 24) >> 24) === value }
21689 function Int16 (value) { return ((value << 16) >> 16) === value }
21690 function Int32 (value) { return (value | 0) === value }
21691 function UInt8 (value) { return (value & 0xff) === value }
21692 function UInt16 (value) { return (value & 0xffff) === value }
21693 function UInt32 (value) { return (value >>> 0) === value }
21694 function UInt53 (value) {
21695 return typeof value === 'number' &&
21697 value <= UINT53_MAX &&
21698 Math.floor(value) === value
21717 for (var typeName in types) {
21718 types[typeName].toJSON = function (t) {
21720 }.bind(null, typeName)
21723 module.exports = types
21725 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21726 },{"../../../../../.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){
21727 var ERRORS = require('./errors')
21728 var NATIVE = require('./native')
21731 var tfJSON = ERRORS.tfJSON
21732 var TfTypeError = ERRORS.TfTypeError
21733 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21734 var tfSubError = ERRORS.tfSubError
21735 var getValueTypeName = ERRORS.getValueTypeName
21738 arrayOf: function arrayOf (type) {
21739 type = compile(type)
21741 function _arrayOf (array, strict) {
21742 if (!NATIVE.Array(array)) return false
21744 return array.every(function (value, i) {
21746 return typeforce(type, value, strict)
21748 throw tfSubError(e, i)
21752 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21757 maybe: function maybe (type) {
21758 type = compile(type)
21760 function _maybe (value, strict) {
21761 return NATIVE.Nil(value) || type(value, strict, maybe)
21763 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21768 map: function map (propertyType, propertyKeyType) {
21769 propertyType = compile(propertyType)
21770 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21772 function _map (value, strict) {
21773 if (!NATIVE.Object(value, strict)) return false
21774 if (NATIVE.Nil(value, strict)) return false
21776 for (var propertyName in value) {
21778 if (propertyKeyType) {
21779 typeforce(propertyKeyType, propertyName, strict)
21782 throw tfSubError(e, propertyName, 'key')
21786 var propertyValue = value[propertyName]
21787 typeforce(propertyType, propertyValue, strict)
21789 throw tfSubError(e, propertyName)
21796 if (propertyKeyType) {
21797 _map.toJSON = function () {
21798 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21801 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21807 object: function object (uncompiled) {
21810 for (var typePropertyName in uncompiled) {
21811 type[typePropertyName] = compile(uncompiled[typePropertyName])
21814 function _object (value, strict) {
21815 if (!NATIVE.Object(value)) return false
21816 if (NATIVE.Nil(value)) return false
21821 for (propertyName in type) {
21822 var propertyType = type[propertyName]
21823 var propertyValue = value[propertyName]
21825 typeforce(propertyType, propertyValue, strict)
21828 throw tfSubError(e, propertyName)
21832 for (propertyName in value) {
21833 if (type[propertyName]) continue
21835 throw new TfPropertyTypeError(undefined, propertyName)
21841 _object.toJSON = function () { return tfJSON(type) }
21846 oneOf: function oneOf () {
21847 var types = [].slice.call(arguments).map(compile)
21849 function _oneOf (value, strict) {
21850 return types.some(function (type) {
21852 return typeforce(type, value, strict)
21858 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21863 quacksLike: function quacksLike (type) {
21864 function _quacksLike (value) {
21865 return type === getValueTypeName(value)
21867 _quacksLike.toJSON = function () { return type }
21872 tuple: function tuple () {
21873 var types = [].slice.call(arguments).map(compile)
21875 function _tuple (values, strict) {
21876 return types.every(function (type, i) {
21878 return typeforce(type, values[i], strict)
21880 throw tfSubError(e, i)
21882 }) && (!strict || values.length === arguments.length)
21884 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21889 value: function value (expected) {
21890 function _value (actual) {
21891 return actual === expected
21893 _value.toJSON = function () { return expected }
21899 function compile (type) {
21900 if (NATIVE.String(type)) {
21901 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21903 return NATIVE[type] || TYPES.quacksLike(type)
21904 } else if (type && NATIVE.Object(type)) {
21905 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21907 return TYPES.object(type)
21908 } else if (NATIVE.Function(type)) {
21912 return TYPES.value(type)
21915 function typeforce (type, value, strict, surrogate) {
21916 if (NATIVE.Function(type)) {
21917 if (type(value, strict)) return true
21919 throw new TfTypeError(surrogate || type, value)
21923 return typeforce(compile(type), value, strict)
21926 // assign types to typeforce function
21927 for (var typeName in NATIVE) {
21928 typeforce[typeName] = NATIVE[typeName]
21931 for (typeName in TYPES) {
21932 typeforce[typeName] = TYPES[typeName]
21935 var EXTRA = require('./extra')
21936 for (typeName in EXTRA) {
21937 typeforce[typeName] = EXTRA[typeName]
21941 function __async (type, value, strict, callback) {
21942 // default to falsy strict if using shorthand overload
21943 if (typeof strict === 'function') return __async(type, value, false, strict)
21946 typeforce(type, value, strict)
21954 typeforce.async = __async
21955 typeforce.compile = compile
21956 typeforce.TfTypeError = TfTypeError
21957 typeforce.TfPropertyTypeError = TfPropertyTypeError
21959 module.exports = typeforce
21961 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21963 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21964 Boolean: function (value) { return typeof value === 'boolean' },
21965 Function: function (value) { return typeof value === 'function' },
21966 Nil: function (value) { return value === undefined || value === null },
21967 Number: function (value) { return typeof value === 'number' },
21968 Object: function (value) { return typeof value === 'object' },
21969 String: function (value) { return typeof value === 'string' },
21970 '': function () { return true }
21974 types.Null = types.Nil
21976 for (var typeName in types) {
21977 types[typeName].toJSON = function (t) {
21979 }.bind(null, typeName)
21982 module.exports = types
21984 },{}],111:[function(require,module,exports){
21985 (function (Buffer){
21988 // Number.MAX_SAFE_INTEGER
21989 var MAX_SAFE_INTEGER = 9007199254740991
21991 function checkUInt53 (n) {
21992 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
21995 function encode (number, buffer, offset) {
21996 checkUInt53(number)
21998 if (!buffer) buffer = new Buffer(encodingLength(number))
21999 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22000 if (!offset) offset = 0
22003 if (number < 0xfd) {
22004 buffer.writeUInt8(number, offset)
22008 } else if (number <= 0xffff) {
22009 buffer.writeUInt8(0xfd, offset)
22010 buffer.writeUInt16LE(number, offset + 1)
22014 } else if (number <= 0xffffffff) {
22015 buffer.writeUInt8(0xfe, offset)
22016 buffer.writeUInt32LE(number, offset + 1)
22021 buffer.writeUInt8(0xff, offset)
22022 buffer.writeUInt32LE(number >>> 0, offset + 1)
22023 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
22030 function decode (buffer, offset) {
22031 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
22032 if (!offset) offset = 0
22034 var first = buffer.readUInt8(offset)
22037 if (first < 0xfd) {
22042 } else if (first === 0xfd) {
22044 return buffer.readUInt16LE(offset + 1)
22047 } else if (first === 0xfe) {
22049 return buffer.readUInt32LE(offset + 1)
22054 var lo = buffer.readUInt32LE(offset + 1)
22055 var hi = buffer.readUInt32LE(offset + 5)
22056 var number = hi * 0x0100000000 + lo
22057 checkUInt53(number)
22063 function encodingLength (number) {
22064 checkUInt53(number)
22068 : number <= 0xffff ? 3
22069 : number <= 0xffffffff ? 5
22074 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22076 }).call(this,require("buffer
").Buffer)
22077 },{"buffer
":4}],112:[function(require,module,exports){
22078 (function (Buffer){
22079 var bs58check = require('bs58check')
22081 function decodeRaw (buffer, version) {
22082 // check version only if defined
22083 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22086 if (buffer.length === 33) {
22088 version: buffer[0],
22089 privateKey: buffer.slice(1, 33),
22095 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22097 // invalid compression flag
22098 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22101 version: buffer[0],
22102 privateKey: buffer.slice(1, 33),
22107 function encodeRaw (version, privateKey, compressed) {
22108 var result = new Buffer(compressed ? 34 : 33)
22110 result.writeUInt8(version, 0)
22111 privateKey.copy(result, 1)
22120 function decode (string, version) {
22121 return decodeRaw(bs58check.decode(string), version)
22124 function encode (version, privateKey, compressed) {
22125 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22127 return bs58check.encode(
22130 version.privateKey,
22138 decodeRaw: decodeRaw,
22140 encodeRaw: encodeRaw
22143 }).call(this,require("buffer
").Buffer)
22144 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22147 <script>bitcoinjs.bitcoin.networks.shadow = {
22148 messagePrefix: 'unused',
22150 public: 0xEE80286A,
22151 private: 0xEE8031E8
22158 bitcoinjs.bitcoin.networks.shadowtn = {
22159 messagePrefix: 'unused',
22161 public: 0x76C0FDFB,
22162 private: 0x76C1077A
22169 bitcoinjs.bitcoin.networks.clam = {
22170 messagePrefix: 'unused',
22172 public: 0xa8c26d64,
22173 private: 0xa8c17826
22176 scriptHash: 0x00, // TODO set this correctly
22180 bitcoinjs.bitcoin.networks.crown = {
22181 messagePrefix: 'unused',
22183 public: 0x0488b21e,
22184 private: 0x0488ade4
22191 bitcoinjs.bitcoin.networks.dash = {
22192 messagePrefix: 'unused',
22194 public: 0x0488b21e,
22195 private: 0x0488ade4
22202 bitcoinjs.bitcoin.networks.maza = {
22203 messagePrefix: 'unused',
22205 public: 0x0488b21e,
22206 private: 0x0488ade4
22213 bitcoinjs.bitcoin.networks.dashtn = {
22214 messagePrefix: 'unused',
22216 public: 0x043587cf,
22217 private: 0x04358394
22224 bitcoinjs.bitcoin.networks.game = {
22225 messagePrefix: 'unused',
22227 public: 0x0488b21e,
22228 private: 0x0488ade4
22235 bitcoinjs.bitcoin.networks.namecoin = {
22236 messagePrefix: 'unused',
22238 public: 0x0488b21e,
22239 private: 0x0488ade4
22242 scriptHash: 0x00, // TODO set this correctly
22246 bitcoinjs.bitcoin.networks.peercoin = {
22247 messagePrefix: 'unused',
22249 public: 0x0488b21e,
22250 private: 0x0488ade4
22253 scriptHash: 0x00, // TODO set this correctly
22257 bitcoinjs.bitcoin.networks.slimcoin = {
22258 messagePrefix: 'unused',
22260 public: 0xef6adf10,
22261 private: 0xef69ea80
22268 bitcoinjs.bitcoin.networks.slimcointn = {
22269 messagePrefix: 'unused',
22271 public: 0x043587CF,
22272 private: 0x04358394
22279 bitcoinjs.bitcoin.networks.dogecoin = {
22280 messagePrefix: '\x19Dogecoin Signed Message:\n',
22282 public: 0x02facafd,
22283 private: 0x02fac398
22290 bitcoinjs.bitcoin.networks.viacoin = {
22291 messagePrefix: '\x18Viacoin Signed Message:\n',
22293 public: 0x0488b21e,
22294 private: 0x0488ade4
22301 bitcoinjs.bitcoin.networks.viacointestnet = {
22302 messagePrefix: '\x18Viacoin Signed Message:\n',
22304 public: 0x043587cf,
22305 private: 0x04358394
22312 bitcoinjs.bitcoin.networks.gamerscoin = {
22313 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22315 public: 0x019da462,
22316 private: 0x019d9cfe
22323 bitcoinjs.bitcoin.networks.jumbucks = {
22324 messagePrefix: '\x19Jumbucks Signed Message:\n',
22326 public: 0x037a689a,
22327 private: 0x037a6460
22334 bitcoinjs.bitcoin.networks.zetacoin = {
22335 messagePrefix: '\x18Zetacoin Signed Message:\n',
22337 public: 0x0488b21e,
22338 private: 0x0488ade4
22345 bitcoinjs.bitcoin.networks.myriadcoin = {
22346 messagePrefix: 'unused',
22348 public: 0x0488b21e,
22349 private: 0x0488ade4
22352 scriptHash: 0x00, // TODO set this correctly
22356 bitcoinjs.bitcoin.networks.pivx = {
22357 messagePrefix: 'unused',
22359 public: 0x022d2533,
22360 private: 0x0221312b
22367 bitcoinjs.bitcoin.networks.pivxtestnet = {
22368 messagePrefix: 'unused',
22370 public: 0x3a8061a0,
22371 private: 0x3a805837
22378 <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){
22379 (function (global){
22382 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22383 // original notice:
22386 * The buffer module from node.js, for the browser.
22388 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22391 function compare(a, b) {
22399 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22400 if (a[i] !== b[i]) {
22415 function isBuffer(b) {
22416 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22417 return global.Buffer.isBuffer(b);
22419 return !!(b != null && b._isBuffer);
22422 // based on node assert, original notice:
22424 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22426 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22428 // Originally from narwhal.js (http://narwhaljs.org)
22429 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22431 // Permission is hereby granted, free of charge, to any person obtaining a copy
22432 // of this software and associated documentation files (the 'Software'), to
22433 // deal in the Software without restriction, including without limitation the
22434 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22435 // sell copies of the Software, and to permit persons to whom the Software is
22436 // furnished to do so, subject to the following conditions:
22438 // The above copyright notice and this permission notice shall be included in
22439 // all copies or substantial portions of the Software.
22441 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22442 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22443 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22444 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22445 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22446 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22448 var util = require('util/');
22449 var hasOwn = Object.prototype.hasOwnProperty;
22450 var pSlice = Array.prototype.slice;
22451 var functionsHaveNames = (function () {
22452 return function foo() {}.name === 'foo';
22454 function pToString (obj) {
22455 return Object.prototype.toString.call(obj);
22457 function isView(arrbuf) {
22458 if (isBuffer(arrbuf)) {
22461 if (typeof global.ArrayBuffer !== 'function') {
22464 if (typeof ArrayBuffer.isView === 'function') {
22465 return ArrayBuffer.isView(arrbuf);
22470 if (arrbuf instanceof DataView) {
22473 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22478 //
1. The assert module provides functions that throw
22479 // AssertionError's when particular conditions are not met. The
22480 // assert module must conform to the following interface.
22482 var assert = module.exports = ok;
22484 //
2. The AssertionError is defined in assert.
22485 // new assert.AssertionError({ message: message,
22487 // expected: expected })
22489 var regex = /\s*function\s+([^\(\s]*)\s*/;
22490 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22491 function getName(func) {
22492 if (!util.isFunction(func)) {
22495 if (functionsHaveNames) {
22498 var str = func.toString();
22499 var match = str.match(regex);
22500 return match && match[
1];
22502 assert.AssertionError = function AssertionError(options) {
22503 this.name = 'AssertionError';
22504 this.actual = options.actual;
22505 this.expected = options.expected;
22506 this.operator = options.operator;
22507 if (options.message) {
22508 this.message = options.message;
22509 this.generatedMessage = false;
22511 this.message = getMessage(this);
22512 this.generatedMessage = true;
22514 var stackStartFunction = options.stackStartFunction || fail;
22515 if (Error.captureStackTrace) {
22516 Error.captureStackTrace(this, stackStartFunction);
22518 // non v8 browsers so we can have a stacktrace
22519 var err = new Error();
22521 var out = err.stack;
22523 // try to strip useless frames
22524 var fn_name = getName(stackStartFunction);
22525 var idx = out.indexOf('\n' + fn_name);
22527 // once we have located the function frame
22528 // we need to strip out everything before it (and its line)
22529 var next_line = out.indexOf('\n', idx +
1);
22530 out = out.substring(next_line +
1);
22538 // assert.AssertionError instanceof Error
22539 util.inherits(assert.AssertionError, Error);
22541 function truncate(s, n) {
22542 if (typeof s === 'string') {
22543 return s.length < n ? s : s.slice(
0, n);
22548 function inspect(something) {
22549 if (functionsHaveNames || !util.isFunction(something)) {
22550 return util.inspect(something);
22552 var rawname = getName(something);
22553 var name = rawname ? ': ' + rawname : '';
22554 return '[Function' + name + ']';
22556 function getMessage(self) {
22557 return truncate(inspect(self.actual),
128) + ' ' +
22558 self.operator + ' ' +
22559 truncate(inspect(self.expected),
128);
22562 // At present only the three keys mentioned above are used and
22563 // understood by the spec. Implementations or sub modules can pass
22564 // other keys to the AssertionError's constructor - they will be
22567 //
3. All of the following functions must throw an AssertionError
22568 // when a corresponding condition is not met, with a message that
22569 // may be undefined if not provided. All assertion methods provide
22570 // both the actual and expected values to the assertion error for
22571 // display purposes.
22573 function fail(actual, expected, message, operator, stackStartFunction) {
22574 throw new assert.AssertionError({
22577 expected: expected,
22578 operator: operator,
22579 stackStartFunction: stackStartFunction
22583 // EXTENSION! allows for well behaved errors defined elsewhere.
22584 assert.fail = fail;
22586 //
4. Pure assertion tests whether a value is truthy, as determined
22588 // assert.ok(guard, message_opt);
22589 // This statement is equivalent to assert.equal(true, !!guard,
22590 // message_opt);. To test strictly for the value true, use
22591 // assert.strictEqual(true, guard, message_opt);.
22593 function ok(value, message) {
22594 if (!value) fail(value, true, message, '==', assert.ok);
22598 //
5. The equality assertion tests shallow, coercive equality with
22600 // assert.equal(actual, expected, message_opt);
22602 assert.equal = function equal(actual, expected, message) {
22603 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22606 //
6. The non-equality assertion tests for whether two objects are not equal
22607 // with != assert.notEqual(actual, expected, message_opt);
22609 assert.notEqual = function notEqual(actual, expected, message) {
22610 if (actual == expected) {
22611 fail(actual, expected, message, '!=', assert.notEqual);
22615 //
7. The equivalence assertion tests a deep equality relation.
22616 // assert.deepEqual(actual, expected, message_opt);
22618 assert.deepEqual = function deepEqual(actual, expected, message) {
22619 if (!_deepEqual(actual, expected, false)) {
22620 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22624 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22625 if (!_deepEqual(actual, expected, true)) {
22626 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22630 function _deepEqual(actual, expected, strict, memos) {
22631 //
7.1. All identical values are equivalent, as determined by ===.
22632 if (actual === expected) {
22634 } else if (isBuffer(actual) && isBuffer(expected)) {
22635 return compare(actual, expected) ===
0;
22637 //
7.2. If the expected value is a Date object, the actual value is
22638 // equivalent if it is also a Date object that refers to the same time.
22639 } else if (util.isDate(actual) && util.isDate(expected)) {
22640 return actual.getTime() === expected.getTime();
22642 //
7.3 If the expected value is a RegExp object, the actual value is
22643 // equivalent if it is also a RegExp object with the same source and
22644 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22645 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22646 return actual.source === expected.source &&
22647 actual.global === expected.global &&
22648 actual.multiline === expected.multiline &&
22649 actual.lastIndex === expected.lastIndex &&
22650 actual.ignoreCase === expected.ignoreCase;
22652 //
7.4. Other pairs that do not both pass typeof value == 'object',
22653 // equivalence is determined by ==.
22654 } else if ((actual === null || typeof actual !== 'object') &&
22655 (expected === null || typeof expected !== 'object')) {
22656 return strict ? actual === expected : actual == expected;
22658 // If both values are instances of typed arrays, wrap their underlying
22659 // ArrayBuffers in a Buffer each to increase performance
22660 // This optimization requires the arrays to have the same type as checked by
22661 // Object.prototype.toString (aka pToString). Never perform binary
22662 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22663 // bit patterns are not identical.
22664 } else if (isView(actual) && isView(expected) &&
22665 pToString(actual) === pToString(expected) &&
22666 !(actual instanceof Float32Array ||
22667 actual instanceof Float64Array)) {
22668 return compare(new Uint8Array(actual.buffer),
22669 new Uint8Array(expected.buffer)) ===
0;
22671 //
7.5 For all other Object pairs, including Array objects, equivalence is
22672 // determined by having the same number of owned properties (as verified
22673 // with Object.prototype.hasOwnProperty.call), the same set of keys
22674 // (although not necessarily the same order), equivalent values for every
22675 // corresponding key, and an identical 'prototype' property. Note: this
22676 // accounts for both named and indexed properties on Arrays.
22677 } else if (isBuffer(actual) !== isBuffer(expected)) {
22680 memos = memos || {actual: [], expected: []};
22682 var actualIndex = memos.actual.indexOf(actual);
22683 if (actualIndex !== -
1) {
22684 if (actualIndex === memos.expected.indexOf(expected)) {
22689 memos.actual.push(actual);
22690 memos.expected.push(expected);
22692 return objEquiv(actual, expected, strict, memos);
22696 function isArguments(object) {
22697 return Object.prototype.toString.call(object) == '[object Arguments]';
22700 function objEquiv(a, b, strict, actualVisitedObjects) {
22701 if (a === null || a === undefined || b === null || b === undefined)
22703 // if one is a primitive, the other must be same
22704 if (util.isPrimitive(a) || util.isPrimitive(b))
22706 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22708 var aIsArgs = isArguments(a);
22709 var bIsArgs = isArguments(b);
22710 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22713 a = pSlice.call(a);
22714 b = pSlice.call(b);
22715 return _deepEqual(a, b, strict);
22717 var ka = objectKeys(a);
22718 var kb = objectKeys(b);
22720 // having the same number of owned properties (keys incorporates
22722 if (ka.length !== kb.length)
22724 //the same set of keys (although not necessarily the same order),
22727 //~~~cheap key test
22728 for (i = ka.length -
1; i
>=
0; i--) {
22729 if (ka[i] !== kb[i])
22732 //equivalent values for every corresponding key, and
22733 //~~~possibly expensive deep test
22734 for (i = ka.length -
1; i
>=
0; i--) {
22736 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22742 //
8. The non-equivalence assertion tests for any deep inequality.
22743 // assert.notDeepEqual(actual, expected, message_opt);
22745 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22746 if (_deepEqual(actual, expected, false)) {
22747 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22751 assert.notDeepStrictEqual = notDeepStrictEqual;
22752 function notDeepStrictEqual(actual, expected, message) {
22753 if (_deepEqual(actual, expected, true)) {
22754 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22759 //
9. The strict equality assertion tests strict equality, as determined by ===.
22760 // assert.strictEqual(actual, expected, message_opt);
22762 assert.strictEqual = function strictEqual(actual, expected, message) {
22763 if (actual !== expected) {
22764 fail(actual, expected, message, '===', assert.strictEqual);
22768 //
10. The strict non-equality assertion tests for strict inequality, as
22769 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22771 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22772 if (actual === expected) {
22773 fail(actual, expected, message, '!==', assert.notStrictEqual);
22777 function expectedException(actual, expected) {
22778 if (!actual || !expected) {
22782 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22783 return expected.test(actual);
22787 if (actual instanceof expected) {
22791 // Ignore. The instanceof check doesn't work for arrow functions.
22794 if (Error.isPrototypeOf(expected)) {
22798 return expected.call({}, actual) === true;
22801 function _tryBlock(block) {
22811 function _throws(shouldThrow, block, expected, message) {
22814 if (typeof block !== 'function') {
22815 throw new TypeError('"block" argument must be a function');
22818 if (typeof expected === 'string') {
22819 message = expected;
22823 actual = _tryBlock(block);
22825 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22826 (message ? ' ' + message : '.');
22828 if (shouldThrow && !actual) {
22829 fail(actual, expected, 'Missing expected exception' + message);
22832 var userProvidedMessage = typeof message === 'string';
22833 var isUnwantedException = !shouldThrow && util.isError(actual);
22834 var isUnexpectedException = !shouldThrow && actual && !expected;
22836 if ((isUnwantedException &&
22837 userProvidedMessage &&
22838 expectedException(actual, expected)) ||
22839 isUnexpectedException) {
22840 fail(actual, expected, 'Got unwanted exception' + message);
22843 if ((shouldThrow && actual && expected &&
22844 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22849 //
11. Expected to throw an error:
22850 // assert.throws(block, Error_opt, message_opt);
22852 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22853 _throws(true, block, error, message);
22856 // EXTENSION! This is annoying to write outside this module.
22857 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22858 _throws(false, block, error, message);
22861 assert.ifError = function(err) { if (err) throw err; };
22863 var objectKeys = Object.keys || function (obj) {
22865 for (var key in obj) {
22866 if (hasOwn.call(obj, key)) keys.push(key);
22871 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22872 },{"util/":
30}],
2:[function(require,module,exports){
22875 exports.byteLength = byteLength
22876 exports.toByteArray = toByteArray
22877 exports.fromByteArray = fromByteArray
22881 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22883 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22884 for (var i =
0, len = code.length; i < len; ++i) {
22885 lookup[i] = code[i]
22886 revLookup[code.charCodeAt(i)] = i
22889 revLookup['-'.charCodeAt(
0)] =
62
22890 revLookup['_'.charCodeAt(
0)] =
63
22892 function placeHoldersCount (b64) {
22893 var len = b64.length
22895 throw new Error('Invalid string. Length must be a multiple of
4')
22898 // the number of equal signs (place holders)
22899 // if there are two placeholders, than the two characters before it
22900 // represent one byte
22901 // if there is only one, then the three characters before it represent
2 bytes
22902 // this is just a cheap hack to not do indexOf twice
22903 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22906 function byteLength (b64) {
22907 // base64 is
4/
3 + up to two characters of the original data
22908 return b64.length *
3 /
4 - placeHoldersCount(b64)
22911 function toByteArray (b64) {
22912 var i, j, l, tmp, placeHolders, arr
22913 var len = b64.length
22914 placeHolders = placeHoldersCount(b64)
22916 arr = new Arr(len *
3 /
4 - placeHolders)
22918 // if there are placeholders, only get up to the last complete
4 chars
22919 l = placeHolders
> 0 ? len -
4 : len
22923 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22924 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22925 arr[L++] = (tmp
>> 16) &
0xFF
22926 arr[L++] = (tmp
>> 8) &
0xFF
22927 arr[L++] = tmp &
0xFF
22930 if (placeHolders ===
2) {
22931 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22932 arr[L++] = tmp &
0xFF
22933 } else if (placeHolders ===
1) {
22934 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22935 arr[L++] = (tmp
>> 8) &
0xFF
22936 arr[L++] = tmp &
0xFF
22942 function tripletToBase64 (num) {
22943 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22946 function encodeChunk (uint8, start, end) {
22949 for (var i = start; i < end; i +=
3) {
22950 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22951 output.push(tripletToBase64(tmp))
22953 return output.join('')
22956 function fromByteArray (uint8) {
22958 var len = uint8.length
22959 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22962 var maxChunkLength =
16383 // must be multiple of
3
22964 // go through the array every three bytes, we'll deal with trailing stuff later
22965 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22966 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22969 // pad the end with zeros, but make sure to not forget the extra bytes
22970 if (extraBytes ===
1) {
22971 tmp = uint8[len -
1]
22972 output += lookup[tmp
>> 2]
22973 output += lookup[(tmp <<
4) &
0x3F]
22975 } else if (extraBytes ===
2) {
22976 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
22977 output += lookup[tmp
>> 10]
22978 output += lookup[(tmp
>> 4) &
0x3F]
22979 output += lookup[(tmp <<
2) &
0x3F]
22985 return parts.join('')
22988 },{}],
3:[function(require,module,exports){
22990 },{}],
4:[function(require,module,exports){
22991 (function (global){
22994 var buffer = require('buffer');
22995 var Buffer = buffer.Buffer;
22996 var SlowBuffer = buffer.SlowBuffer;
22997 var MAX_LEN = buffer.kMaxLength ||
2147483647;
22998 exports.alloc = function alloc(size, fill, encoding) {
22999 if (typeof Buffer.alloc === 'function') {
23000 return Buffer.alloc(size, fill, encoding);
23002 if (typeof encoding === 'number') {
23003 throw new TypeError('encoding must not be number');
23005 if (typeof size !== 'number') {
23006 throw new TypeError('size must be a number');
23008 if (size
> MAX_LEN) {
23009 throw new RangeError('size is too large');
23011 var enc = encoding;
23013 if (_fill === undefined) {
23017 var buf = new Buffer(size);
23018 if (typeof _fill === 'string') {
23019 var fillBuf = new Buffer(_fill, enc);
23020 var flen = fillBuf.length;
23022 while (++i < size) {
23023 buf[i] = fillBuf[i % flen];
23030 exports.allocUnsafe = function allocUnsafe(size) {
23031 if (typeof Buffer.allocUnsafe === 'function') {
23032 return Buffer.allocUnsafe(size);
23034 if (typeof size !== 'number') {
23035 throw new TypeError('size must be a number');
23037 if (size
> MAX_LEN) {
23038 throw new RangeError('size is too large');
23040 return new Buffer(size);
23042 exports.from = function from(value, encodingOrOffset, length) {
23043 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
23044 return Buffer.from(value, encodingOrOffset, length);
23046 if (typeof value === 'number') {
23047 throw new TypeError('"value" argument must not be a number');
23049 if (typeof value === 'string') {
23050 return new Buffer(value, encodingOrOffset);
23052 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23053 var offset = encodingOrOffset;
23054 if (arguments.length ===
1) {
23055 return new Buffer(value);
23057 if (typeof offset === 'undefined') {
23061 if (typeof len === 'undefined') {
23062 len = value.byteLength - offset;
23064 if (offset
>= value.byteLength) {
23065 throw new RangeError('\'offset\' is out of bounds');
23067 if (len
> value.byteLength - offset) {
23068 throw new RangeError('\'length\' is out of bounds');
23070 return new Buffer(value.slice(offset, offset + len));
23072 if (Buffer.isBuffer(value)) {
23073 var out = new Buffer(value.length);
23074 value.copy(out,
0,
0, value.length);
23078 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23079 return new Buffer(value);
23081 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23082 return new Buffer(value.data);
23086 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23088 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23089 if (typeof Buffer.allocUnsafeSlow === 'function') {
23090 return Buffer.allocUnsafeSlow(size);
23092 if (typeof size !== 'number') {
23093 throw new TypeError('size must be a number');
23095 if (size
>= MAX_LEN) {
23096 throw new RangeError('size is too large');
23098 return new SlowBuffer(size);
23101 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23102 },{"buffer":
5}],
5:[function(require,module,exports){
23104 * The buffer module from node.js, for the browser.
23106 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23109 /* eslint-disable no-proto */
23113 var base64 = require('base64-js')
23114 var ieee754 = require('ieee754')
23116 exports.Buffer = Buffer
23117 exports.SlowBuffer = SlowBuffer
23118 exports.INSPECT_MAX_BYTES =
50
23120 var K_MAX_LENGTH =
0x7fffffff
23121 exports.kMaxLength = K_MAX_LENGTH
23124 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23125 * === true Use Uint8Array implementation (fastest)
23126 * === false Print warning and recommend using `buffer` v4.x which has an Object
23127 * implementation (most compatible, even IE6)
23129 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23130 * Opera
11.6+, iOS
4.2+.
23132 * We report that the browser does not support typed arrays if the are not subclassable
23133 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23134 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23135 * for __proto__ and has a buggy typed array implementation.
23137 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23139 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23140 typeof console.error === 'function') {
23142 'This browser lacks typed array (Uint8Array) support which is required by ' +
23143 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23147 function typedArraySupport () {
23148 // Can typed array instances can be augmented?
23150 var arr = new Uint8Array(
1)
23151 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23152 return arr.foo() ===
42
23158 function createBuffer (length) {
23159 if (length
> K_MAX_LENGTH) {
23160 throw new RangeError('Invalid typed array length')
23162 // Return an augmented `Uint8Array` instance
23163 var buf = new Uint8Array(length)
23164 buf.__proto__ = Buffer.prototype
23169 * The Buffer constructor returns instances of `Uint8Array` that have their
23170 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23171 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23172 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23173 * returns a single octet.
23175 * The `Uint8Array` prototype remains unmodified.
23178 function Buffer (arg, encodingOrOffset, length) {
23180 if (typeof arg === 'number') {
23181 if (typeof encodingOrOffset === 'string') {
23183 'If encoding is specified then the first argument must be a string'
23186 return allocUnsafe(arg)
23188 return from(arg, encodingOrOffset, length)
23191 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23192 if (typeof Symbol !== 'undefined' && Symbol.species &&
23193 Buffer[Symbol.species] === Buffer) {
23194 Object.defineProperty(Buffer, Symbol.species, {
23196 configurable: true,
23202 Buffer.poolSize =
8192 // not used by this implementation
23204 function from (value, encodingOrOffset, length) {
23205 if (typeof value === 'number') {
23206 throw new TypeError('"value" argument must not be a number')
23209 if (value instanceof ArrayBuffer) {
23210 return fromArrayBuffer(value, encodingOrOffset, length)
23213 if (typeof value === 'string') {
23214 return fromString(value, encodingOrOffset)
23217 return fromObject(value)
23221 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23222 * if value is a number.
23223 * Buffer.from(str[, encoding])
23224 * Buffer.from(array)
23225 * Buffer.from(buffer)
23226 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23228 Buffer.from = function (value, encodingOrOffset, length) {
23229 return from(value, encodingOrOffset, length)
23232 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23233 // https://github.com/feross/buffer/pull/
148
23234 Buffer.prototype.__proto__ = Uint8Array.prototype
23235 Buffer.__proto__ = Uint8Array
23237 function assertSize (size) {
23238 if (typeof size !== 'number') {
23239 throw new TypeError('"size" argument must be a number')
23240 } else if (size <
0) {
23241 throw new RangeError('"size" argument must not be negative')
23245 function alloc (size, fill, encoding) {
23248 return createBuffer(size)
23250 if (fill !== undefined) {
23251 // Only pay attention to encoding if it's a string. This
23252 // prevents accidentally sending in a number that would
23253 // be interpretted as a start offset.
23254 return typeof encoding === 'string'
23255 ? createBuffer(size).fill(fill, encoding)
23256 : createBuffer(size).fill(fill)
23258 return createBuffer(size)
23262 * Creates a new filled Buffer instance.
23263 * alloc(size[, fill[, encoding]])
23265 Buffer.alloc = function (size, fill, encoding) {
23266 return alloc(size, fill, encoding)
23269 function allocUnsafe (size) {
23271 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23275 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23277 Buffer.allocUnsafe = function (size) {
23278 return allocUnsafe(size)
23281 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23283 Buffer.allocUnsafeSlow = function (size) {
23284 return allocUnsafe(size)
23287 function fromString (string, encoding) {
23288 if (typeof encoding !== 'string' || encoding === '') {
23292 if (!Buffer.isEncoding(encoding)) {
23293 throw new TypeError('"encoding" must be a valid string encoding')
23296 var length = byteLength(string, encoding) |
0
23297 var buf = createBuffer(length)
23299 var actual = buf.write(string, encoding)
23301 if (actual !== length) {
23302 // Writing a hex string, for example, that contains invalid characters will
23303 // cause everything after the first invalid character to be ignored. (e.g.
23304 // 'abxxcd' will be treated as 'ab')
23305 buf = buf.slice(
0, actual)
23311 function fromArrayLike (array) {
23312 var length = array.length <
0 ?
0 : checked(array.length) |
0
23313 var buf = createBuffer(length)
23314 for (var i =
0; i < length; i +=
1) {
23315 buf[i] = array[i] &
255
23320 function fromArrayBuffer (array, byteOffset, length) {
23321 if (byteOffset <
0 || array.byteLength < byteOffset) {
23322 throw new RangeError('\'offset\' is out of bounds')
23325 if (array.byteLength < byteOffset + (length ||
0)) {
23326 throw new RangeError('\'length\' is out of bounds')
23330 if (byteOffset === undefined && length === undefined) {
23331 buf = new Uint8Array(array)
23332 } else if (length === undefined) {
23333 buf = new Uint8Array(array, byteOffset)
23335 buf = new Uint8Array(array, byteOffset, length)
23338 // Return an augmented `Uint8Array` instance
23339 buf.__proto__ = Buffer.prototype
23343 function fromObject (obj) {
23344 if (Buffer.isBuffer(obj)) {
23345 var len = checked(obj.length) |
0
23346 var buf = createBuffer(len)
23348 if (buf.length ===
0) {
23352 obj.copy(buf,
0,
0, len)
23357 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23358 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23359 return createBuffer(
0)
23361 return fromArrayLike(obj)
23364 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23365 return fromArrayLike(obj.data)
23369 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23372 function checked (length) {
23373 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23374 // length is NaN (which is otherwise coerced to zero.)
23375 if (length
>= K_MAX_LENGTH) {
23376 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23377 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23382 function SlowBuffer (length) {
23383 if (+length != length) { // eslint-disable-line eqeqeq
23386 return Buffer.alloc(+length)
23389 Buffer.isBuffer = function isBuffer (b) {
23390 return b != null && b._isBuffer === true
23393 Buffer.compare = function compare (a, b) {
23394 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23395 throw new TypeError('Arguments must be Buffers')
23398 if (a === b) return
0
23403 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23404 if (a[i] !== b[i]) {
23411 if (x < y) return -
1
23412 if (y < x) return
1
23416 Buffer.isEncoding = function isEncoding (encoding) {
23417 switch (String(encoding).toLowerCase()) {
23435 Buffer.concat = function concat (list, length) {
23436 if (!Array.isArray(list)) {
23437 throw new TypeError('"list" argument must be an Array of Buffers')
23440 if (list.length ===
0) {
23441 return Buffer.alloc(
0)
23445 if (length === undefined) {
23447 for (i =
0; i < list.length; ++i) {
23448 length += list[i].length
23452 var buffer = Buffer.allocUnsafe(length)
23454 for (i =
0; i < list.length; ++i) {
23456 if (!Buffer.isBuffer(buf)) {
23457 throw new TypeError('"list" argument must be an Array of Buffers')
23459 buf.copy(buffer, pos)
23465 function byteLength (string, encoding) {
23466 if (Buffer.isBuffer(string)) {
23467 return string.length
23469 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23470 return string.byteLength
23472 if (typeof string !== 'string') {
23473 string = '' + string
23476 var len = string.length
23477 if (len ===
0) return
0
23479 // Use a for loop to avoid recursion
23480 var loweredCase = false
23482 switch (encoding) {
23490 return utf8ToBytes(string).length
23499 return base64ToBytes(string).length
23501 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23502 encoding = ('' + encoding).toLowerCase()
23507 Buffer.byteLength = byteLength
23509 function slowToString (encoding, start, end) {
23510 var loweredCase = false
23512 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23513 // property of a typed array.
23515 // This behaves neither like String nor Uint8Array in that we set start/end
23516 // to their upper/lower bounds if the value passed is out of range.
23517 // undefined is handled specially as per ECMA-
262 6th Edition,
23518 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23519 if (start === undefined || start <
0) {
23522 // Return early if start
> this.length. Done here to prevent potential uint32
23523 // coercion fail below.
23524 if (start
> this.length) {
23528 if (end === undefined || end
> this.length) {
23536 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23540 if (end <= start) {
23544 if (!encoding) encoding = 'utf8'
23547 switch (encoding) {
23549 return hexSlice(this, start, end)
23553 return utf8Slice(this, start, end)
23556 return asciiSlice(this, start, end)
23560 return latin1Slice(this, start, end)
23563 return base64Slice(this, start, end)
23569 return utf16leSlice(this, start, end)
23572 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23573 encoding = (encoding + '').toLowerCase()
23579 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23580 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23581 // reliably in a browserify context because there could be multiple different
23582 // copies of the 'buffer' package in use. This method works even for Buffer
23583 // instances that were created from another copy of the `buffer` package.
23584 // See: https://github.com/feross/buffer/issues/
154
23585 Buffer.prototype._isBuffer = true
23587 function swap (b, n, m) {
23593 Buffer.prototype.swap16 = function swap16 () {
23594 var len = this.length
23595 if (len %
2 !==
0) {
23596 throw new RangeError('Buffer size must be a multiple of
16-bits')
23598 for (var i =
0; i < len; i +=
2) {
23599 swap(this, i, i +
1)
23604 Buffer.prototype.swap32 = function swap32 () {
23605 var len = this.length
23606 if (len %
4 !==
0) {
23607 throw new RangeError('Buffer size must be a multiple of
32-bits')
23609 for (var i =
0; i < len; i +=
4) {
23610 swap(this, i, i +
3)
23611 swap(this, i +
1, i +
2)
23616 Buffer.prototype.swap64 = function swap64 () {
23617 var len = this.length
23618 if (len %
8 !==
0) {
23619 throw new RangeError('Buffer size must be a multiple of
64-bits')
23621 for (var i =
0; i < len; i +=
8) {
23622 swap(this, i, i +
7)
23623 swap(this, i +
1, i +
6)
23624 swap(this, i +
2, i +
5)
23625 swap(this, i +
3, i +
4)
23630 Buffer.prototype.toString = function toString () {
23631 var length = this.length
23632 if (length ===
0) return ''
23633 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23634 return slowToString.apply(this, arguments)
23637 Buffer.prototype.equals = function equals (b) {
23638 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23639 if (this === b) return true
23640 return Buffer.compare(this, b) ===
0
23643 Buffer.prototype.inspect = function inspect () {
23645 var max = exports.INSPECT_MAX_BYTES
23646 if (this.length
> 0) {
23647 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23648 if (this.length
> max) str += ' ... '
23650 return '
<Buffer ' + str + '
>'
23653 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23654 if (!Buffer.isBuffer(target)) {
23655 throw new TypeError('Argument must be a Buffer')
23658 if (start === undefined) {
23661 if (end === undefined) {
23662 end = target ? target.length :
0
23664 if (thisStart === undefined) {
23667 if (thisEnd === undefined) {
23668 thisEnd = this.length
23671 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23672 throw new RangeError('out of range index')
23675 if (thisStart
>= thisEnd && start
>= end) {
23678 if (thisStart
>= thisEnd) {
23681 if (start
>= end) {
23690 if (this === target) return
0
23692 var x = thisEnd - thisStart
23693 var y = end - start
23694 var len = Math.min(x, y)
23696 var thisCopy = this.slice(thisStart, thisEnd)
23697 var targetCopy = target.slice(start, end)
23699 for (var i =
0; i < len; ++i) {
23700 if (thisCopy[i] !== targetCopy[i]) {
23707 if (x < y) return -
1
23708 if (y < x) return
1
23712 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23713 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23716 // - buffer - a Buffer to search
23717 // - val - a string, Buffer, or number
23718 // - byteOffset - an index into `buffer`; will be clamped to an int32
23719 // - encoding - an optional encoding, relevant is val is a string
23720 // - dir - true for indexOf, false for lastIndexOf
23721 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23722 // Empty buffer means no match
23723 if (buffer.length ===
0) return -
1
23725 // Normalize byteOffset
23726 if (typeof byteOffset === 'string') {
23727 encoding = byteOffset
23729 } else if (byteOffset
> 0x7fffffff) {
23730 byteOffset =
0x7fffffff
23731 } else if (byteOffset < -
0x80000000) {
23732 byteOffset = -
0x80000000
23734 byteOffset = +byteOffset // Coerce to Number.
23735 if (isNaN(byteOffset)) {
23736 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23737 byteOffset = dir ?
0 : (buffer.length -
1)
23740 // Normalize byteOffset: negative offsets start from the end of the buffer
23741 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23742 if (byteOffset
>= buffer.length) {
23744 else byteOffset = buffer.length -
1
23745 } else if (byteOffset <
0) {
23746 if (dir) byteOffset =
0
23751 if (typeof val === 'string') {
23752 val = Buffer.from(val, encoding)
23755 // Finally, search either indexOf (if dir is true) or lastIndexOf
23756 if (Buffer.isBuffer(val)) {
23757 // Special case: looking for empty string/buffer always fails
23758 if (val.length ===
0) {
23761 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23762 } else if (typeof val === 'number') {
23763 val = val &
0xFF // Search for a byte value [
0-
255]
23764 if (typeof Uint8Array.prototype.indexOf === 'function') {
23766 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23768 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23771 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23774 throw new TypeError('val must be string, number or Buffer')
23777 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23779 var arrLength = arr.length
23780 var valLength = val.length
23782 if (encoding !== undefined) {
23783 encoding = String(encoding).toLowerCase()
23784 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23785 encoding === 'utf16le' || encoding === 'utf-
16le') {
23786 if (arr.length <
2 || val.length <
2) {
23796 function read (buf, i) {
23797 if (indexSize ===
1) {
23800 return buf.readUInt16BE(i * indexSize)
23806 var foundIndex = -
1
23807 for (i = byteOffset; i < arrLength; i++) {
23808 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23809 if (foundIndex === -
1) foundIndex = i
23810 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23812 if (foundIndex !== -
1) i -= i - foundIndex
23817 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23818 for (i = byteOffset; i
>=
0; i--) {
23820 for (var j =
0; j < valLength; j++) {
23821 if (read(arr, i + j) !== read(val, j)) {
23826 if (found) return i
23833 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23834 return this.indexOf(val, byteOffset, encoding) !== -
1
23837 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23838 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23841 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23842 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23845 function hexWrite (buf, string, offset, length) {
23846 offset = Number(offset) ||
0
23847 var remaining = buf.length - offset
23851 length = Number(length)
23852 if (length
> remaining) {
23857 // must be an even number of digits
23858 var strLen = string.length
23859 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23861 if (length
> strLen /
2) {
23862 length = strLen /
2
23864 for (var i =
0; i < length; ++i) {
23865 var parsed = parseInt(string.substr(i *
2,
2),
16)
23866 if (isNaN(parsed)) return i
23867 buf[offset + i] = parsed
23872 function utf8Write (buf, string, offset, length) {
23873 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23876 function asciiWrite (buf, string, offset, length) {
23877 return blitBuffer(asciiToBytes(string), buf, offset, length)
23880 function latin1Write (buf, string, offset, length) {
23881 return asciiWrite(buf, string, offset, length)
23884 function base64Write (buf, string, offset, length) {
23885 return blitBuffer(base64ToBytes(string), buf, offset, length)
23888 function ucs2Write (buf, string, offset, length) {
23889 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23892 Buffer.prototype.write = function write (string, offset, length, encoding) {
23893 // Buffer#write(string)
23894 if (offset === undefined) {
23896 length = this.length
23898 // Buffer#write(string, encoding)
23899 } else if (length === undefined && typeof offset === 'string') {
23901 length = this.length
23903 // Buffer#write(string, offset[, length][, encoding])
23904 } else if (isFinite(offset)) {
23905 offset = offset
>>> 0
23906 if (isFinite(length)) {
23907 length = length
>>> 0
23908 if (encoding === undefined) encoding = 'utf8'
23915 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23919 var remaining = this.length - offset
23920 if (length === undefined || length
> remaining) length = remaining
23922 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23923 throw new RangeError('Attempt to write outside buffer bounds')
23926 if (!encoding) encoding = 'utf8'
23928 var loweredCase = false
23930 switch (encoding) {
23932 return hexWrite(this, string, offset, length)
23936 return utf8Write(this, string, offset, length)
23939 return asciiWrite(this, string, offset, length)
23943 return latin1Write(this, string, offset, length)
23946 // Warning: maxLength not taken into account in base64Write
23947 return base64Write(this, string, offset, length)
23953 return ucs2Write(this, string, offset, length)
23956 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23957 encoding = ('' + encoding).toLowerCase()
23963 Buffer.prototype.toJSON = function toJSON () {
23966 data: Array.prototype.slice.call(this._arr || this,
0)
23970 function base64Slice (buf, start, end) {
23971 if (start ===
0 && end === buf.length) {
23972 return base64.fromByteArray(buf)
23974 return base64.fromByteArray(buf.slice(start, end))
23978 function utf8Slice (buf, start, end) {
23979 end = Math.min(buf.length, end)
23984 var firstByte = buf[i]
23985 var codePoint = null
23986 var bytesPerSequence = (firstByte
> 0xEF) ?
4
23987 : (firstByte
> 0xDF) ?
3
23988 : (firstByte
> 0xBF) ?
2
23991 if (i + bytesPerSequence <= end) {
23992 var secondByte, thirdByte, fourthByte, tempCodePoint
23994 switch (bytesPerSequence) {
23996 if (firstByte <
0x80) {
23997 codePoint = firstByte
24001 secondByte = buf[i +
1]
24002 if ((secondByte &
0xC0) ===
0x80) {
24003 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
24004 if (tempCodePoint
> 0x7F) {
24005 codePoint = tempCodePoint
24010 secondByte = buf[i +
1]
24011 thirdByte = buf[i +
2]
24012 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
24013 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
24014 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
24015 codePoint = tempCodePoint
24020 secondByte = buf[i +
1]
24021 thirdByte = buf[i +
2]
24022 fourthByte = buf[i +
3]
24023 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
24024 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
24025 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
24026 codePoint = tempCodePoint
24032 if (codePoint === null) {
24033 // we did not generate a valid codePoint so insert a
24034 // replacement char (U+FFFD) and advance only
1 byte
24036 bytesPerSequence =
1
24037 } else if (codePoint
> 0xFFFF) {
24038 // encode to utf16 (surrogate pair dance)
24039 codePoint -=
0x10000
24040 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
24041 codePoint =
0xDC00 | codePoint &
0x3FF
24044 res.push(codePoint)
24045 i += bytesPerSequence
24048 return decodeCodePointsArray(res)
24051 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24052 // the lowest limit is Chrome, with
0x10000 args.
24053 // We go
1 magnitude less, for safety
24054 var MAX_ARGUMENTS_LENGTH =
0x1000
24056 function decodeCodePointsArray (codePoints) {
24057 var len = codePoints.length
24058 if (len <= MAX_ARGUMENTS_LENGTH) {
24059 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24062 // Decode in chunks to avoid
"call stack size exceeded".
24066 res += String.fromCharCode.apply(
24068 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24074 function asciiSlice (buf, start, end) {
24076 end = Math.min(buf.length, end)
24078 for (var i = start; i < end; ++i) {
24079 ret += String.fromCharCode(buf[i] &
0x7F)
24084 function latin1Slice (buf, start, end) {
24086 end = Math.min(buf.length, end)
24088 for (var i = start; i < end; ++i) {
24089 ret += String.fromCharCode(buf[i])
24094 function hexSlice (buf, start, end) {
24095 var len = buf.length
24097 if (!start || start <
0) start =
0
24098 if (!end || end <
0 || end
> len) end = len
24101 for (var i = start; i < end; ++i) {
24102 out += toHex(buf[i])
24107 function utf16leSlice (buf, start, end) {
24108 var bytes = buf.slice(start, end)
24110 for (var i =
0; i < bytes.length; i +=
2) {
24111 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24116 Buffer.prototype.slice = function slice (start, end) {
24117 var len = this.length
24119 end = end === undefined ? len : ~~end
24123 if (start <
0) start =
0
24124 } else if (start
> len) {
24130 if (end <
0) end =
0
24131 } else if (end
> len) {
24135 if (end < start) end = start
24137 var newBuf = this.subarray(start, end)
24138 // Return an augmented `Uint8Array` instance
24139 newBuf.__proto__ = Buffer.prototype
24144 * Need to make sure that buffer isn't trying to write out of bounds.
24146 function checkOffset (offset, ext, length) {
24147 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24148 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24151 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24152 offset = offset
>>> 0
24153 byteLength = byteLength
>>> 0
24154 if (!noAssert) checkOffset(offset, byteLength, this.length)
24156 var val = this[offset]
24159 while (++i < byteLength && (mul *=
0x100)) {
24160 val += this[offset + i] * mul
24166 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24167 offset = offset
>>> 0
24168 byteLength = byteLength
>>> 0
24170 checkOffset(offset, byteLength, this.length)
24173 var val = this[offset + --byteLength]
24175 while (byteLength
> 0 && (mul *=
0x100)) {
24176 val += this[offset + --byteLength] * mul
24182 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24183 offset = offset
>>> 0
24184 if (!noAssert) checkOffset(offset,
1, this.length)
24185 return this[offset]
24188 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24189 offset = offset
>>> 0
24190 if (!noAssert) checkOffset(offset,
2, this.length)
24191 return this[offset] | (this[offset +
1] <<
8)
24194 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24195 offset = offset
>>> 0
24196 if (!noAssert) checkOffset(offset,
2, this.length)
24197 return (this[offset] <<
8) | this[offset +
1]
24200 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24201 offset = offset
>>> 0
24202 if (!noAssert) checkOffset(offset,
4, this.length)
24204 return ((this[offset]) |
24205 (this[offset +
1] <<
8) |
24206 (this[offset +
2] <<
16)) +
24207 (this[offset +
3] *
0x1000000)
24210 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24211 offset = offset
>>> 0
24212 if (!noAssert) checkOffset(offset,
4, this.length)
24214 return (this[offset] *
0x1000000) +
24215 ((this[offset +
1] <<
16) |
24216 (this[offset +
2] <<
8) |
24220 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24221 offset = offset
>>> 0
24222 byteLength = byteLength
>>> 0
24223 if (!noAssert) checkOffset(offset, byteLength, this.length)
24225 var val = this[offset]
24228 while (++i < byteLength && (mul *=
0x100)) {
24229 val += this[offset + i] * mul
24233 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24238 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24239 offset = offset
>>> 0
24240 byteLength = byteLength
>>> 0
24241 if (!noAssert) checkOffset(offset, byteLength, this.length)
24245 var val = this[offset + --i]
24246 while (i
> 0 && (mul *=
0x100)) {
24247 val += this[offset + --i] * mul
24251 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24256 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24257 offset = offset
>>> 0
24258 if (!noAssert) checkOffset(offset,
1, this.length)
24259 if (!(this[offset] &
0x80)) return (this[offset])
24260 return ((
0xff - this[offset] +
1) * -
1)
24263 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24264 offset = offset
>>> 0
24265 if (!noAssert) checkOffset(offset,
2, this.length)
24266 var val = this[offset] | (this[offset +
1] <<
8)
24267 return (val &
0x8000) ? val |
0xFFFF0000 : val
24270 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24271 offset = offset
>>> 0
24272 if (!noAssert) checkOffset(offset,
2, this.length)
24273 var val = this[offset +
1] | (this[offset] <<
8)
24274 return (val &
0x8000) ? val |
0xFFFF0000 : val
24277 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24278 offset = offset
>>> 0
24279 if (!noAssert) checkOffset(offset,
4, this.length)
24281 return (this[offset]) |
24282 (this[offset +
1] <<
8) |
24283 (this[offset +
2] <<
16) |
24284 (this[offset +
3] <<
24)
24287 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24288 offset = offset
>>> 0
24289 if (!noAssert) checkOffset(offset,
4, this.length)
24291 return (this[offset] <<
24) |
24292 (this[offset +
1] <<
16) |
24293 (this[offset +
2] <<
8) |
24297 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24298 offset = offset
>>> 0
24299 if (!noAssert) checkOffset(offset,
4, this.length)
24300 return ieee754.read(this, offset, true,
23,
4)
24303 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24304 offset = offset
>>> 0
24305 if (!noAssert) checkOffset(offset,
4, this.length)
24306 return ieee754.read(this, offset, false,
23,
4)
24309 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24310 offset = offset
>>> 0
24311 if (!noAssert) checkOffset(offset,
8, this.length)
24312 return ieee754.read(this, offset, true,
52,
8)
24315 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24316 offset = offset
>>> 0
24317 if (!noAssert) checkOffset(offset,
8, this.length)
24318 return ieee754.read(this, offset, false,
52,
8)
24321 function checkInt (buf, value, offset, ext, max, min) {
24322 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24323 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24324 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24327 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24329 offset = offset
>>> 0
24330 byteLength = byteLength
>>> 0
24332 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24333 checkInt(this, value, offset, byteLength, maxBytes,
0)
24338 this[offset] = value &
0xFF
24339 while (++i < byteLength && (mul *=
0x100)) {
24340 this[offset + i] = (value / mul) &
0xFF
24343 return offset + byteLength
24346 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24348 offset = offset
>>> 0
24349 byteLength = byteLength
>>> 0
24351 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24352 checkInt(this, value, offset, byteLength, maxBytes,
0)
24355 var i = byteLength -
1
24357 this[offset + i] = value &
0xFF
24358 while (--i
>=
0 && (mul *=
0x100)) {
24359 this[offset + i] = (value / mul) &
0xFF
24362 return offset + byteLength
24365 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24367 offset = offset
>>> 0
24368 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24369 this[offset] = (value &
0xff)
24373 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24375 offset = offset
>>> 0
24376 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24377 this[offset] = (value &
0xff)
24378 this[offset +
1] = (value
>>> 8)
24382 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24384 offset = offset
>>> 0
24385 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24386 this[offset] = (value
>>> 8)
24387 this[offset +
1] = (value &
0xff)
24391 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24393 offset = offset
>>> 0
24394 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24395 this[offset +
3] = (value
>>> 24)
24396 this[offset +
2] = (value
>>> 16)
24397 this[offset +
1] = (value
>>> 8)
24398 this[offset] = (value &
0xff)
24402 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24404 offset = offset
>>> 0
24405 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24406 this[offset] = (value
>>> 24)
24407 this[offset +
1] = (value
>>> 16)
24408 this[offset +
2] = (value
>>> 8)
24409 this[offset +
3] = (value &
0xff)
24413 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24415 offset = offset
>>> 0
24417 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24419 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24425 this[offset] = value &
0xFF
24426 while (++i < byteLength && (mul *=
0x100)) {
24427 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24430 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24433 return offset + byteLength
24436 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24438 offset = offset
>>> 0
24440 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24442 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24445 var i = byteLength -
1
24448 this[offset + i] = value &
0xFF
24449 while (--i
>=
0 && (mul *=
0x100)) {
24450 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24453 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24456 return offset + byteLength
24459 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24461 offset = offset
>>> 0
24462 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24463 if (value <
0) value =
0xff + value +
1
24464 this[offset] = (value &
0xff)
24468 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24470 offset = offset
>>> 0
24471 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24472 this[offset] = (value &
0xff)
24473 this[offset +
1] = (value
>>> 8)
24477 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24479 offset = offset
>>> 0
24480 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24481 this[offset] = (value
>>> 8)
24482 this[offset +
1] = (value &
0xff)
24486 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24488 offset = offset
>>> 0
24489 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24490 this[offset] = (value &
0xff)
24491 this[offset +
1] = (value
>>> 8)
24492 this[offset +
2] = (value
>>> 16)
24493 this[offset +
3] = (value
>>> 24)
24497 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24499 offset = offset
>>> 0
24500 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24501 if (value <
0) value =
0xffffffff + value +
1
24502 this[offset] = (value
>>> 24)
24503 this[offset +
1] = (value
>>> 16)
24504 this[offset +
2] = (value
>>> 8)
24505 this[offset +
3] = (value &
0xff)
24509 function checkIEEE754 (buf, value, offset, ext, max, min) {
24510 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24511 if (offset <
0) throw new RangeError('Index out of range')
24514 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24516 offset = offset
>>> 0
24518 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24520 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24524 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24525 return writeFloat(this, value, offset, true, noAssert)
24528 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24529 return writeFloat(this, value, offset, false, noAssert)
24532 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24534 offset = offset
>>> 0
24536 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24538 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24542 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24543 return writeDouble(this, value, offset, true, noAssert)
24546 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24547 return writeDouble(this, value, offset, false, noAssert)
24550 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24551 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24552 if (!start) start =
0
24553 if (!end && end !==
0) end = this.length
24554 if (targetStart
>= target.length) targetStart = target.length
24555 if (!targetStart) targetStart =
0
24556 if (end
> 0 && end < start) end = start
24558 // Copy
0 bytes; we're done
24559 if (end === start) return
0
24560 if (target.length ===
0 || this.length ===
0) return
0
24562 // Fatal error conditions
24563 if (targetStart <
0) {
24564 throw new RangeError('targetStart out of bounds')
24566 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24567 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24570 if (end
> this.length) end = this.length
24571 if (target.length - targetStart < end - start) {
24572 end = target.length - targetStart + start
24575 var len = end - start
24578 if (this === target && start < targetStart && targetStart < end) {
24579 // descending copy from end
24580 for (i = len -
1; i
>=
0; --i) {
24581 target[i + targetStart] = this[i + start]
24583 } else if (len <
1000) {
24584 // ascending copy from start
24585 for (i =
0; i < len; ++i) {
24586 target[i + targetStart] = this[i + start]
24589 Uint8Array.prototype.set.call(
24591 this.subarray(start, start + len),
24600 // buffer.fill(number[, offset[, end]])
24601 // buffer.fill(buffer[, offset[, end]])
24602 // buffer.fill(string[, offset[, end]][, encoding])
24603 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24604 // Handle string cases:
24605 if (typeof val === 'string') {
24606 if (typeof start === 'string') {
24610 } else if (typeof end === 'string') {
24614 if (val.length ===
1) {
24615 var code = val.charCodeAt(
0)
24620 if (encoding !== undefined && typeof encoding !== 'string') {
24621 throw new TypeError('encoding must be a string')
24623 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24624 throw new TypeError('Unknown encoding: ' + encoding)
24626 } else if (typeof val === 'number') {
24630 // Invalid ranges are not set to a default, so can range check early.
24631 if (start <
0 || this.length < start || this.length < end) {
24632 throw new RangeError('Out of range index')
24635 if (end <= start) {
24639 start = start
>>> 0
24640 end = end === undefined ? this.length : end
>>> 0
24645 if (typeof val === 'number') {
24646 for (i = start; i < end; ++i) {
24650 var bytes = Buffer.isBuffer(val)
24652 : new Buffer(val, encoding)
24653 var len = bytes.length
24654 for (i =
0; i < end - start; ++i) {
24655 this[i + start] = bytes[i % len]
24662 // HELPER FUNCTIONS
24663 // ================
24665 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24667 function base64clean (str) {
24668 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24669 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24670 // Node converts strings with length <
2 to ''
24671 if (str.length <
2) return ''
24672 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24673 while (str.length %
4 !==
0) {
24679 function stringtrim (str) {
24680 if (str.trim) return str.trim()
24681 return str.replace(/^\s+|\s+$/g, '')
24684 function toHex (n) {
24685 if (n <
16) return '
0' + n.toString(
16)
24686 return n.toString(
16)
24689 function utf8ToBytes (string, units) {
24690 units = units || Infinity
24692 var length = string.length
24693 var leadSurrogate = null
24696 for (var i =
0; i < length; ++i) {
24697 codePoint = string.charCodeAt(i)
24699 // is surrogate component
24700 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24701 // last char was a lead
24702 if (!leadSurrogate) {
24704 if (codePoint
> 0xDBFF) {
24705 // unexpected trail
24706 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24708 } else if (i +
1 === length) {
24710 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24715 leadSurrogate = codePoint
24720 //
2 leads in a row
24721 if (codePoint <
0xDC00) {
24722 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24723 leadSurrogate = codePoint
24727 // valid surrogate pair
24728 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24729 } else if (leadSurrogate) {
24730 // valid bmp char, but last char was a lead
24731 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24734 leadSurrogate = null
24737 if (codePoint <
0x80) {
24738 if ((units -=
1) <
0) break
24739 bytes.push(codePoint)
24740 } else if (codePoint <
0x800) {
24741 if ((units -=
2) <
0) break
24743 codePoint
>> 0x6 |
0xC0,
24744 codePoint &
0x3F |
0x80
24746 } else if (codePoint <
0x10000) {
24747 if ((units -=
3) <
0) break
24749 codePoint
>> 0xC |
0xE0,
24750 codePoint
>> 0x6 &
0x3F |
0x80,
24751 codePoint &
0x3F |
0x80
24753 } else if (codePoint <
0x110000) {
24754 if ((units -=
4) <
0) break
24756 codePoint
>> 0x12 |
0xF0,
24757 codePoint
>> 0xC &
0x3F |
0x80,
24758 codePoint
>> 0x6 &
0x3F |
0x80,
24759 codePoint &
0x3F |
0x80
24762 throw new Error('Invalid code point')
24769 function asciiToBytes (str) {
24771 for (var i =
0; i < str.length; ++i) {
24772 // Node's code seems to be doing this and not &
0x7F..
24773 byteArray.push(str.charCodeAt(i) &
0xFF)
24778 function utf16leToBytes (str, units) {
24781 for (var i =
0; i < str.length; ++i) {
24782 if ((units -=
2) <
0) break
24784 c = str.charCodeAt(i)
24794 function base64ToBytes (str) {
24795 return base64.toByteArray(base64clean(str))
24798 function blitBuffer (src, dst, offset, length) {
24799 for (var i =
0; i < length; ++i) {
24800 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24801 dst[i + offset] = src[i]
24806 function isnan (val) {
24807 return val !== val // eslint-disable-line no-self-compare
24810 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24811 (function (Buffer){
24812 // Copyright Joyent, Inc. and other Node contributors.
24814 // Permission is hereby granted, free of charge, to any person obtaining a
24815 // copy of this software and associated documentation files (the
24816 // "Software"), to deal in the Software without restriction, including
24817 // without limitation the rights to use, copy, modify, merge, publish,
24818 // distribute, sublicense, and/or sell copies of the Software, and to permit
24819 // persons to whom the Software is furnished to do so, subject to the
24820 // following conditions:
24822 // The above copyright notice and this permission notice shall be included
24823 // in all copies or substantial portions of the Software.
24825 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24826 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24827 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24828 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24829 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24830 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24831 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24833 // NOTE: These type checking functions intentionally don't use `instanceof`
24834 // because it is fragile and can be easily faked with `Object.create()`.
24836 function isArray(arg) {
24837 if (Array.isArray) {
24838 return Array.isArray(arg);
24840 return objectToString(arg) === '[object Array]';
24842 exports.isArray = isArray;
24844 function isBoolean(arg) {
24845 return typeof arg === 'boolean';
24847 exports.isBoolean = isBoolean;
24849 function isNull(arg) {
24850 return arg === null;
24852 exports.isNull = isNull;
24854 function isNullOrUndefined(arg) {
24855 return arg == null;
24857 exports.isNullOrUndefined = isNullOrUndefined;
24859 function isNumber(arg) {
24860 return typeof arg === 'number';
24862 exports.isNumber = isNumber;
24864 function isString(arg) {
24865 return typeof arg === 'string';
24867 exports.isString = isString;
24869 function isSymbol(arg) {
24870 return typeof arg === 'symbol';
24872 exports.isSymbol = isSymbol;
24874 function isUndefined(arg) {
24875 return arg === void
0;
24877 exports.isUndefined = isUndefined;
24879 function isRegExp(re) {
24880 return objectToString(re) === '[object RegExp]';
24882 exports.isRegExp = isRegExp;
24884 function isObject(arg) {
24885 return typeof arg === 'object' && arg !== null;
24887 exports.isObject = isObject;
24889 function isDate(d) {
24890 return objectToString(d) === '[object Date]';
24892 exports.isDate = isDate;
24894 function isError(e) {
24895 return (objectToString(e) === '[object Error]' || e instanceof Error);
24897 exports.isError = isError;
24899 function isFunction(arg) {
24900 return typeof arg === 'function';
24902 exports.isFunction = isFunction;
24904 function isPrimitive(arg) {
24905 return arg === null ||
24906 typeof arg === 'boolean' ||
24907 typeof arg === 'number' ||
24908 typeof arg === 'string' ||
24909 typeof arg === 'symbol' || // ES6 symbol
24910 typeof arg === 'undefined';
24912 exports.isPrimitive = isPrimitive;
24914 exports.isBuffer = Buffer.isBuffer;
24916 function objectToString(o) {
24917 return Object.prototype.toString.call(o);
24920 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24921 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24922 // Copyright Joyent, Inc. and other Node contributors.
24924 // Permission is hereby granted, free of charge, to any person obtaining a
24925 // copy of this software and associated documentation files (the
24926 // "Software"), to deal in the Software without restriction, including
24927 // without limitation the rights to use, copy, modify, merge, publish,
24928 // distribute, sublicense, and/or sell copies of the Software, and to permit
24929 // persons to whom the Software is furnished to do so, subject to the
24930 // following conditions:
24932 // The above copyright notice and this permission notice shall be included
24933 // in all copies or substantial portions of the Software.
24935 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24936 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24937 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24938 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24939 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24940 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24941 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24943 function EventEmitter() {
24944 this._events = this._events || {};
24945 this._maxListeners = this._maxListeners || undefined;
24947 module.exports = EventEmitter;
24949 // Backwards-compat with node
0.10.x
24950 EventEmitter.EventEmitter = EventEmitter;
24952 EventEmitter.prototype._events = undefined;
24953 EventEmitter.prototype._maxListeners = undefined;
24955 // By default EventEmitters will print a warning if more than
10 listeners are
24956 // added to it. This is a useful default which helps finding memory leaks.
24957 EventEmitter.defaultMaxListeners =
10;
24959 // Obviously not all Emitters should be limited to
10. This function allows
24960 // that to be increased. Set to zero for unlimited.
24961 EventEmitter.prototype.setMaxListeners = function(n) {
24962 if (!isNumber(n) || n <
0 || isNaN(n))
24963 throw TypeError('n must be a positive number');
24964 this._maxListeners = n;
24968 EventEmitter.prototype.emit = function(type) {
24969 var er, handler, len, args, i, listeners;
24974 // If there is no 'error' event listener then throw.
24975 if (type === 'error') {
24976 if (!this._events.error ||
24977 (isObject(this._events.error) && !this._events.error.length)) {
24979 if (er instanceof Error) {
24980 throw er; // Unhandled 'error' event
24982 // At least give some kind of context to the user
24983 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
24990 handler = this._events[type];
24992 if (isUndefined(handler))
24995 if (isFunction(handler)) {
24996 switch (arguments.length) {
24999 handler.call(this);
25002 handler.call(this, arguments[
1]);
25005 handler.call(this, arguments[
1], arguments[
2]);
25009 args = Array.prototype.slice.call(arguments,
1);
25010 handler.apply(this, args);
25012 } else if (isObject(handler)) {
25013 args = Array.prototype.slice.call(arguments,
1);
25014 listeners = handler.slice();
25015 len = listeners.length;
25016 for (i =
0; i < len; i++)
25017 listeners[i].apply(this, args);
25023 EventEmitter.prototype.addListener = function(type, listener) {
25026 if (!isFunction(listener))
25027 throw TypeError('listener must be a function');
25032 // To avoid recursion in the case that type === "newListener"! Before
25033 // adding it to the listeners, first emit "newListener".
25034 if (this._events.newListener)
25035 this.emit('newListener', type,
25036 isFunction(listener.listener) ?
25037 listener.listener : listener);
25039 if (!this._events[type])
25040 // Optimize the case of one listener. Don't need the extra array object.
25041 this._events[type] = listener;
25042 else if (isObject(this._events[type]))
25043 // If we've already got an array, just append.
25044 this._events[type].push(listener);
25046 // Adding the second element, need to change to array.
25047 this._events[type] = [this._events[type], listener];
25049 // Check for listener leak
25050 if (isObject(this._events[type]) && !this._events[type].warned) {
25051 if (!isUndefined(this._maxListeners)) {
25052 m = this._maxListeners;
25054 m = EventEmitter.defaultMaxListeners;
25057 if (m && m
> 0 && this._events[type].length
> m) {
25058 this._events[type].warned = true;
25059 console.error('(node) warning: possible EventEmitter memory ' +
25060 'leak detected. %d listeners added. ' +
25061 'Use emitter.setMaxListeners() to increase limit.',
25062 this._events[type].length);
25063 if (typeof console.trace === 'function') {
25064 // not supported in IE
10
25073 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25075 EventEmitter.prototype.once = function(type, listener) {
25076 if (!isFunction(listener))
25077 throw TypeError('listener must be a function');
25082 this.removeListener(type, g);
25086 listener.apply(this, arguments);
25090 g.listener = listener;
25096 // emits a 'removeListener' event iff the listener was removed
25097 EventEmitter.prototype.removeListener = function(type, listener) {
25098 var list, position, length, i;
25100 if (!isFunction(listener))
25101 throw TypeError('listener must be a function');
25103 if (!this._events || !this._events[type])
25106 list = this._events[type];
25107 length = list.length;
25110 if (list === listener ||
25111 (isFunction(list.listener) && list.listener === listener)) {
25112 delete this._events[type];
25113 if (this._events.removeListener)
25114 this.emit('removeListener', type, listener);
25116 } else if (isObject(list)) {
25117 for (i = length; i--
> 0;) {
25118 if (list[i] === listener ||
25119 (list[i].listener && list[i].listener === listener)) {
25128 if (list.length ===
1) {
25130 delete this._events[type];
25132 list.splice(position,
1);
25135 if (this._events.removeListener)
25136 this.emit('removeListener', type, listener);
25142 EventEmitter.prototype.removeAllListeners = function(type) {
25143 var key, listeners;
25148 // not listening for removeListener, no need to emit
25149 if (!this._events.removeListener) {
25150 if (arguments.length ===
0)
25152 else if (this._events[type])
25153 delete this._events[type];
25157 // emit removeListener for all listeners on all events
25158 if (arguments.length ===
0) {
25159 for (key in this._events) {
25160 if (key === 'removeListener') continue;
25161 this.removeAllListeners(key);
25163 this.removeAllListeners('removeListener');
25168 listeners = this._events[type];
25170 if (isFunction(listeners)) {
25171 this.removeListener(type, listeners);
25172 } else if (listeners) {
25174 while (listeners.length)
25175 this.removeListener(type, listeners[listeners.length -
1]);
25177 delete this._events[type];
25182 EventEmitter.prototype.listeners = function(type) {
25184 if (!this._events || !this._events[type])
25186 else if (isFunction(this._events[type]))
25187 ret = [this._events[type]];
25189 ret = this._events[type].slice();
25193 EventEmitter.prototype.listenerCount = function(type) {
25194 if (this._events) {
25195 var evlistener = this._events[type];
25197 if (isFunction(evlistener))
25199 else if (evlistener)
25200 return evlistener.length;
25205 EventEmitter.listenerCount = function(emitter, type) {
25206 return emitter.listenerCount(type);
25209 function isFunction(arg) {
25210 return typeof arg === 'function';
25213 function isNumber(arg) {
25214 return typeof arg === 'number';
25217 function isObject(arg) {
25218 return typeof arg === 'object' && arg !== null;
25221 function isUndefined(arg) {
25222 return arg === void
0;
25225 },{}],
8:[function(require,module,exports){
25226 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25228 var eLen = nBytes *
8 - mLen -
1
25229 var eMax = (
1 << eLen) -
1
25230 var eBias = eMax
>> 1
25232 var i = isLE ? (nBytes -
1) :
0
25233 var d = isLE ? -
1 :
1
25234 var s = buffer[offset + i]
25238 e = s & ((
1 << (-nBits)) -
1)
25241 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25243 m = e & ((
1 << (-nBits)) -
1)
25246 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25250 } else if (e === eMax) {
25251 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25253 m = m + Math.pow(
2, mLen)
25256 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25259 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25261 var eLen = nBytes *
8 - mLen -
1
25262 var eMax = (
1 << eLen) -
1
25263 var eBias = eMax
>> 1
25264 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25265 var i = isLE ?
0 : (nBytes -
1)
25266 var d = isLE ?
1 : -
1
25267 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25269 value = Math.abs(value)
25271 if (isNaN(value) || value === Infinity) {
25272 m = isNaN(value) ?
1 :
0
25275 e = Math.floor(Math.log(value) / Math.LN2)
25276 if (value * (c = Math.pow(
2, -e)) <
1) {
25280 if (e + eBias
>=
1) {
25283 value += rt * Math.pow(
2,
1 - eBias)
25285 if (value * c
>=
2) {
25290 if (e + eBias
>= eMax) {
25293 } else if (e + eBias
>=
1) {
25294 m = (value * c -
1) * Math.pow(
2, mLen)
25297 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25302 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25304 e = (e << mLen) | m
25306 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25308 buffer[offset + i - d] |= s *
128
25311 },{}],
9:[function(require,module,exports){
25312 if (typeof Object.create === 'function') {
25313 // implementation from standard node.js 'util' module
25314 module.exports = function inherits(ctor, superCtor) {
25315 ctor.super_ = superCtor
25316 ctor.prototype = Object.create(superCtor.prototype, {
25326 // old school shim for old browsers
25327 module.exports = function inherits(ctor, superCtor) {
25328 ctor.super_ = superCtor
25329 var TempCtor = function () {}
25330 TempCtor.prototype = superCtor.prototype
25331 ctor.prototype = new TempCtor()
25332 ctor.prototype.constructor = ctor
25336 },{}],
10:[function(require,module,exports){
25338 * Determine if an object is a Buffer
25340 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25344 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25345 // Object.prototype.constructor. Remove this eventually
25346 module.exports = function (obj) {
25347 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25350 function isBuffer (obj) {
25351 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25354 // For Node v0.10 support. Remove this eventually.
25355 function isSlowBuffer (obj) {
25356 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25359 },{}],
11:[function(require,module,exports){
25360 var toString = {}.toString;
25362 module.exports = Array.isArray || function (arr) {
25363 return toString.call(arr) == '[object Array]';
25366 },{}],
12:[function(require,module,exports){
25367 (function (process){
25370 if (!process.version ||
25371 process.version.indexOf('v0.') ===
0 ||
25372 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25373 module.exports = nextTick;
25375 module.exports = process.nextTick;
25378 function nextTick(fn, arg1, arg2, arg3) {
25379 if (typeof fn !== 'function') {
25380 throw new TypeError('"callback" argument must be a function');
25382 var len = arguments.length;
25387 return process.nextTick(fn);
25389 return process.nextTick(function afterTickOne() {
25390 fn.call(null, arg1);
25393 return process.nextTick(function afterTickTwo() {
25394 fn.call(null, arg1, arg2);
25397 return process.nextTick(function afterTickThree() {
25398 fn.call(null, arg1, arg2, arg3);
25401 args = new Array(len -
1);
25403 while (i < args.length) {
25404 args[i++] = arguments[i];
25406 return process.nextTick(function afterTick() {
25407 fn.apply(null, args);
25412 }).call(this,require('_process'))
25413 },{"_process":
13}],
13:[function(require,module,exports){
25414 // shim for using process in browser
25415 var process = module.exports = {};
25417 // cached from whatever global is present so that test runners that stub it
25418 // don't break things. But we need to wrap it in a try catch in case it is
25419 // wrapped in strict mode code which doesn't define any globals. It's inside a
25420 // function because try/catches deoptimize in certain engines.
25422 var cachedSetTimeout;
25423 var cachedClearTimeout;
25425 function defaultSetTimout() {
25426 throw new Error('setTimeout has not been defined');
25428 function defaultClearTimeout () {
25429 throw new Error('clearTimeout has not been defined');
25433 if (typeof setTimeout === 'function') {
25434 cachedSetTimeout = setTimeout;
25436 cachedSetTimeout = defaultSetTimout;
25439 cachedSetTimeout = defaultSetTimout;
25442 if (typeof clearTimeout === 'function') {
25443 cachedClearTimeout = clearTimeout;
25445 cachedClearTimeout = defaultClearTimeout;
25448 cachedClearTimeout = defaultClearTimeout;
25451 function runTimeout(fun) {
25452 if (cachedSetTimeout === setTimeout) {
25453 //normal enviroments in sane situations
25454 return setTimeout(fun,
0);
25456 // if setTimeout wasn't available but was latter defined
25457 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25458 cachedSetTimeout = setTimeout;
25459 return setTimeout(fun,
0);
25462 // when when somebody has screwed with setTimeout but no I.E. maddness
25463 return cachedSetTimeout(fun,
0);
25466 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25467 return cachedSetTimeout.call(null, fun,
0);
25469 // 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
25470 return cachedSetTimeout.call(this, fun,
0);
25476 function runClearTimeout(marker) {
25477 if (cachedClearTimeout === clearTimeout) {
25478 //normal enviroments in sane situations
25479 return clearTimeout(marker);
25481 // if clearTimeout wasn't available but was latter defined
25482 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25483 cachedClearTimeout = clearTimeout;
25484 return clearTimeout(marker);
25487 // when when somebody has screwed with setTimeout but no I.E. maddness
25488 return cachedClearTimeout(marker);
25491 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25492 return cachedClearTimeout.call(null, marker);
25494 // 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.
25495 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25496 return cachedClearTimeout.call(this, marker);
25504 var draining = false;
25506 var queueIndex = -
1;
25508 function cleanUpNextTick() {
25509 if (!draining || !currentQueue) {
25513 if (currentQueue.length) {
25514 queue = currentQueue.concat(queue);
25518 if (queue.length) {
25523 function drainQueue() {
25527 var timeout = runTimeout(cleanUpNextTick);
25530 var len = queue.length;
25532 currentQueue = queue;
25534 while (++queueIndex < len) {
25535 if (currentQueue) {
25536 currentQueue[queueIndex].run();
25540 len = queue.length;
25542 currentQueue = null;
25544 runClearTimeout(timeout);
25547 process.nextTick = function (fun) {
25548 var args = new Array(arguments.length -
1);
25549 if (arguments.length
> 1) {
25550 for (var i =
1; i < arguments.length; i++) {
25551 args[i -
1] = arguments[i];
25554 queue.push(new Item(fun, args));
25555 if (queue.length ===
1 && !draining) {
25556 runTimeout(drainQueue);
25560 // v8 likes predictible objects
25561 function Item(fun, array) {
25563 this.array = array;
25565 Item.prototype.run = function () {
25566 this.fun.apply(null, this.array);
25568 process.title = 'browser';
25569 process.browser = true;
25572 process.version = ''; // empty string to avoid regexp issues
25573 process.versions = {};
25578 process.addListener = noop;
25579 process.once = noop;
25580 process.off = noop;
25581 process.removeListener = noop;
25582 process.removeAllListeners = noop;
25583 process.emit = noop;
25585 process.binding = function (name) {
25586 throw new Error('process.binding is not supported');
25589 process.cwd = function () { return '/' };
25590 process.chdir = function (dir) {
25591 throw new Error('process.chdir is not supported');
25593 process.umask = function() { return
0; };
25595 },{}],
14:[function(require,module,exports){
25596 module.exports = require(
"./lib/_stream_duplex.js")
25598 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25599 // a duplex stream is just a stream that is both readable and writable.
25600 // Since JS doesn't have multiple prototypal inheritance, this class
25601 // prototypally inherits from Readable, and then parasitically from
25608 var objectKeys = Object.keys || function (obj) {
25610 for (var key in obj) {
25616 module.exports = Duplex;
25619 var processNextTick = require('process-nextick-args');
25623 var util = require('core-util-is');
25624 util.inherits = require('inherits');
25627 var Readable = require('./_stream_readable');
25628 var Writable = require('./_stream_writable');
25630 util.inherits(Duplex, Readable);
25632 var keys = objectKeys(Writable.prototype);
25633 for (var v =
0; v < keys.length; v++) {
25634 var method = keys[v];
25635 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25638 function Duplex(options) {
25639 if (!(this instanceof Duplex)) return new Duplex(options);
25641 Readable.call(this, options);
25642 Writable.call(this, options);
25644 if (options && options.readable === false) this.readable = false;
25646 if (options && options.writable === false) this.writable = false;
25648 this.allowHalfOpen = true;
25649 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25651 this.once('end', onend);
25654 // the no-half-open enforcer
25656 // if we allow half-open state, or if the writable side ended,
25658 if (this.allowHalfOpen || this._writableState.ended) return;
25660 // no more data can be written.
25661 // But allow more writes to happen in this tick.
25662 processNextTick(onEndNT, this);
25665 function onEndNT(self) {
25669 function forEach(xs, f) {
25670 for (var i =
0, l = xs.length; i < l; i++) {
25674 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25675 // a passthrough stream.
25676 // basically just the most minimal sort of Transform stream.
25677 // Every written chunk gets output as-is.
25681 module.exports = PassThrough;
25683 var Transform = require('./_stream_transform');
25686 var util = require('core-util-is');
25687 util.inherits = require('inherits');
25690 util.inherits(PassThrough, Transform);
25692 function PassThrough(options) {
25693 if (!(this instanceof PassThrough)) return new PassThrough(options);
25695 Transform.call(this, options);
25698 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25701 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25702 (function (process){
25705 module.exports = Readable;
25708 var processNextTick = require('process-nextick-args');
25712 var isArray = require('isarray');
25719 Readable.ReadableState = ReadableState;
25722 var EE = require('events').EventEmitter;
25724 var EElistenerCount = function (emitter, type) {
25725 return emitter.listeners(type).length;
25733 Stream = require('st' + 'ream');
25734 } catch (_) {} finally {
25735 if (!Stream) Stream = require('events').EventEmitter;
25740 var Buffer = require('buffer').Buffer;
25742 var bufferShim = require('buffer-shims');
25746 var util = require('core-util-is');
25747 util.inherits = require('inherits');
25751 var debugUtil = require('util');
25752 var debug = void
0;
25753 if (debugUtil && debugUtil.debuglog) {
25754 debug = debugUtil.debuglog('stream');
25756 debug = function () {};
25760 var BufferList = require('./internal/streams/BufferList');
25763 util.inherits(Readable, Stream);
25765 function prependListener(emitter, event, fn) {
25766 // Sadly this is not cacheable as some libraries bundle their own
25767 // event emitter implementation with them.
25768 if (typeof emitter.prependListener === 'function') {
25769 return emitter.prependListener(event, fn);
25771 // This is a hack to make sure that our error handler is attached before any
25772 // userland ones. NEVER DO THIS. This is here only because this code needs
25773 // to continue to work with older versions of Node.js that do not include
25774 // the prependListener() method. The goal is to eventually remove this hack.
25775 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]];
25779 function ReadableState(options, stream) {
25780 Duplex = Duplex || require('./_stream_duplex');
25782 options = options || {};
25784 // object stream flag. Used to make read(n) ignore n and to
25785 // make all the buffer merging and length checks go away
25786 this.objectMode = !!options.objectMode;
25788 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25790 // the point at which it stops calling _read() to fill the buffer
25791 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25792 var hwm = options.highWaterMark;
25793 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25794 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25797 this.highWaterMark = ~ ~this.highWaterMark;
25799 // A linked list is used to store data chunks instead of an array because the
25800 // linked list can remove elements from the beginning faster than
25802 this.buffer = new BufferList();
25805 this.pipesCount =
0;
25806 this.flowing = null;
25807 this.ended = false;
25808 this.endEmitted = false;
25809 this.reading = false;
25811 // a flag to be able to tell if the onwrite cb is called immediately,
25812 // or on a later tick. We set this to true at first, because any
25813 // actions that shouldn't happen until "later" should generally also
25814 // not happen before the first write call.
25817 // whenever we return null, then we set a flag to say
25818 // that we're awaiting a 'readable' event emission.
25819 this.needReadable = false;
25820 this.emittedReadable = false;
25821 this.readableListening = false;
25822 this.resumeScheduled = false;
25824 // Crypto is kind of old and crusty. Historically, its default string
25825 // encoding is 'binary' so we have to make this configurable.
25826 // Everything else in the universe uses 'utf8', though.
25827 this.defaultEncoding = options.defaultEncoding || 'utf8';
25829 // when piping, we only care about 'readable' events that happen
25830 // after read()ing all the bytes and not getting any pushback.
25831 this.ranOut = false;
25833 // the number of writers that are awaiting a drain event in .pipe()s
25834 this.awaitDrain =
0;
25836 // if true, a maybeReadMore has been scheduled
25837 this.readingMore = false;
25839 this.decoder = null;
25840 this.encoding = null;
25841 if (options.encoding) {
25842 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25843 this.decoder = new StringDecoder(options.encoding);
25844 this.encoding = options.encoding;
25848 function Readable(options) {
25849 Duplex = Duplex || require('./_stream_duplex');
25851 if (!(this instanceof Readable)) return new Readable(options);
25853 this._readableState = new ReadableState(options, this);
25856 this.readable = true;
25858 if (options && typeof options.read === 'function') this._read = options.read;
25863 // Manually shove something into the read() buffer.
25864 // This returns true if the highWaterMark has not been hit yet,
25865 // similar to how Writable.write() returns true if you should
25866 // write() some more.
25867 Readable.prototype.push = function (chunk, encoding) {
25868 var state = this._readableState;
25870 if (!state.objectMode && typeof chunk === 'string') {
25871 encoding = encoding || state.defaultEncoding;
25872 if (encoding !== state.encoding) {
25873 chunk = bufferShim.from(chunk, encoding);
25878 return readableAddChunk(this, state, chunk, encoding, false);
25881 // Unshift should *always* be something directly out of read()
25882 Readable.prototype.unshift = function (chunk) {
25883 var state = this._readableState;
25884 return readableAddChunk(this, state, chunk, '', true);
25887 Readable.prototype.isPaused = function () {
25888 return this._readableState.flowing === false;
25891 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25892 var er = chunkInvalid(state, chunk);
25894 stream.emit('error', er);
25895 } else if (chunk === null) {
25896 state.reading = false;
25897 onEofChunk(stream, state);
25898 } else if (state.objectMode || chunk && chunk.length
> 0) {
25899 if (state.ended && !addToFront) {
25900 var e = new Error('stream.push() after EOF');
25901 stream.emit('error', e);
25902 } else if (state.endEmitted && addToFront) {
25903 var _e = new Error('stream.unshift() after end event');
25904 stream.emit('error', _e);
25907 if (state.decoder && !addToFront && !encoding) {
25908 chunk = state.decoder.write(chunk);
25909 skipAdd = !state.objectMode && chunk.length ===
0;
25912 if (!addToFront) state.reading = false;
25914 // Don't add to the buffer if we've decoded to an empty string chunk and
25915 // we're not in object mode
25917 // if we want the data now, just emit it.
25918 if (state.flowing && state.length ===
0 && !state.sync) {
25919 stream.emit('data', chunk);
25922 // update the buffer info.
25923 state.length += state.objectMode ?
1 : chunk.length;
25924 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25926 if (state.needReadable) emitReadable(stream);
25930 maybeReadMore(stream, state);
25932 } else if (!addToFront) {
25933 state.reading = false;
25936 return needMoreData(state);
25939 // if it's past the high water mark, we can push in some more.
25940 // Also, if we have no data yet, we can stand some
25941 // more bytes. This is to work around cases where hwm=
0,
25942 // such as the repl. Also, if the push() triggered a
25943 // readable event, and the user called read(largeNumber) such that
25944 // needReadable was set, then we ought to push more, so that another
25945 // 'readable' event will be triggered.
25946 function needMoreData(state) {
25947 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25950 // backwards compatibility.
25951 Readable.prototype.setEncoding = function (enc) {
25952 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25953 this._readableState.decoder = new StringDecoder(enc);
25954 this._readableState.encoding = enc;
25958 // Don't raise the hwm
> 8MB
25959 var MAX_HWM =
0x800000;
25960 function computeNewHighWaterMark(n) {
25961 if (n
>= MAX_HWM) {
25964 // Get the next highest power of
2 to prevent increasing hwm excessively in
25977 // This function is designed to be inlinable, so please take care when making
25978 // changes to the function body.
25979 function howMuchToRead(n, state) {
25980 if (n <=
0 || state.length ===
0 && state.ended) return
0;
25981 if (state.objectMode) return
1;
25983 // Only flow one buffer at a time
25984 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
25986 // If we're asking for more than the current hwm, then raise the hwm.
25987 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
25988 if (n <= state.length) return n;
25989 // Don't have enough
25990 if (!state.ended) {
25991 state.needReadable = true;
25994 return state.length;
25997 // you can override either this method, or the async _read(n) below.
25998 Readable.prototype.read = function (n) {
26000 n = parseInt(n,
10);
26001 var state = this._readableState;
26004 if (n !==
0) state.emittedReadable = false;
26006 // if we're doing read(
0) to trigger a readable event, but we
26007 // already have a bunch of data in the buffer, then just trigger
26008 // the 'readable' event and move on.
26009 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
26010 debug('read: emitReadable', state.length, state.ended);
26011 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
26015 n = howMuchToRead(n, state);
26017 // if we've ended, and we're now clear, then finish it up.
26018 if (n ===
0 && state.ended) {
26019 if (state.length ===
0) endReadable(this);
26023 // All the actual chunk generation logic needs to be
26024 // *below* the call to _read. The reason is that in certain
26025 // synthetic stream cases, such as passthrough streams, _read
26026 // may be a completely synchronous operation which may change
26027 // the state of the read buffer, providing enough data when
26028 // before there was *not* enough.
26030 // So, the steps are:
26031 //
1. Figure out what the state of things will be after we do
26032 // a read from the buffer.
26034 //
2. If that resulting state will trigger a _read, then call _read.
26035 // Note that this may be asynchronous, or synchronous. Yes, it is
26036 // deeply ugly to write APIs this way, but that still doesn't mean
26037 // that the Readable class should behave improperly, as streams are
26038 // designed to be sync/async agnostic.
26039 // Take note if the _read call is sync or async (ie, if the read call
26040 // has returned yet), so that we know whether or not it's safe to emit
26043 //
3. Actually pull the requested chunks out of the buffer and return.
26045 // if we need a readable event, then we need to do some reading.
26046 var doRead = state.needReadable;
26047 debug('need readable', doRead);
26049 // if we currently have less than the highWaterMark, then also read some
26050 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26052 debug('length less than watermark', doRead);
26055 // however, if we've ended, then there's no point, and if we're already
26056 // reading, then it's unnecessary.
26057 if (state.ended || state.reading) {
26059 debug('reading or ended', doRead);
26060 } else if (doRead) {
26062 state.reading = true;
26064 // if the length is currently zero, then we *need* a readable event.
26065 if (state.length ===
0) state.needReadable = true;
26066 // call internal read method
26067 this._read(state.highWaterMark);
26068 state.sync = false;
26069 // If _read pushed data synchronously, then `reading` will be false,
26070 // and we need to re-evaluate how much data we can return to the user.
26071 if (!state.reading) n = howMuchToRead(nOrig, state);
26075 if (n
> 0) ret = fromList(n, state);else ret = null;
26077 if (ret === null) {
26078 state.needReadable = true;
26084 if (state.length ===
0) {
26085 // If we have nothing in the buffer, then we want to know
26086 // as soon as we *do* get something into the buffer.
26087 if (!state.ended) state.needReadable = true;
26089 // If we tried to read() past the EOF, then emit end on the next tick.
26090 if (nOrig !== n && state.ended) endReadable(this);
26093 if (ret !== null) this.emit('data', ret);
26098 function chunkInvalid(state, chunk) {
26100 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26101 er = new TypeError('Invalid non-string/buffer chunk');
26106 function onEofChunk(stream, state) {
26107 if (state.ended) return;
26108 if (state.decoder) {
26109 var chunk = state.decoder.end();
26110 if (chunk && chunk.length) {
26111 state.buffer.push(chunk);
26112 state.length += state.objectMode ?
1 : chunk.length;
26115 state.ended = true;
26117 // emit 'readable' now to make sure it gets picked up.
26118 emitReadable(stream);
26121 // Don't emit readable right away in sync mode, because this can trigger
26122 // another read() call =
> stack overflow. This way, it might trigger
26123 // a nextTick recursion warning, but that's not so bad.
26124 function emitReadable(stream) {
26125 var state = stream._readableState;
26126 state.needReadable = false;
26127 if (!state.emittedReadable) {
26128 debug('emitReadable', state.flowing);
26129 state.emittedReadable = true;
26130 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26134 function emitReadable_(stream) {
26135 debug('emit readable');
26136 stream.emit('readable');
26140 // at this point, the user has presumably seen the 'readable' event,
26141 // and called read() to consume some data. that may have triggered
26142 // in turn another _read(n) call, in which case reading = true if
26143 // it's in progress.
26144 // However, if we're not ended, or reading, and the length < hwm,
26145 // then go ahead and try to read some more preemptively.
26146 function maybeReadMore(stream, state) {
26147 if (!state.readingMore) {
26148 state.readingMore = true;
26149 processNextTick(maybeReadMore_, stream, state);
26153 function maybeReadMore_(stream, state) {
26154 var len = state.length;
26155 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26156 debug('maybeReadMore read
0');
26158 if (len === state.length)
26159 // didn't get any data, stop spinning.
26160 break;else len = state.length;
26162 state.readingMore = false;
26165 // abstract method. to be overridden in specific implementation classes.
26166 // call cb(er, data) where data is <= n in length.
26167 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26168 // arbitrary, and perhaps not very meaningful.
26169 Readable.prototype._read = function (n) {
26170 this.emit('error', new Error('_read() is not implemented'));
26173 Readable.prototype.pipe = function (dest, pipeOpts) {
26175 var state = this._readableState;
26177 switch (state.pipesCount) {
26179 state.pipes = dest;
26182 state.pipes = [state.pipes, dest];
26185 state.pipes.push(dest);
26188 state.pipesCount +=
1;
26189 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26191 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26193 var endFn = doEnd ? onend : cleanup;
26194 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26196 dest.on('unpipe', onunpipe);
26197 function onunpipe(readable) {
26199 if (readable === src) {
26209 // when the dest drains, it reduces the awaitDrain counter
26210 // on the source. This would be more elegant with a .once()
26211 // handler in flow(), but adding and removing repeatedly is
26213 var ondrain = pipeOnDrain(src);
26214 dest.on('drain', ondrain);
26216 var cleanedUp = false;
26217 function cleanup() {
26219 // cleanup event handlers once the pipe is broken
26220 dest.removeListener('close', onclose);
26221 dest.removeListener('finish', onfinish);
26222 dest.removeListener('drain', ondrain);
26223 dest.removeListener('error', onerror);
26224 dest.removeListener('unpipe', onunpipe);
26225 src.removeListener('end', onend);
26226 src.removeListener('end', cleanup);
26227 src.removeListener('data', ondata);
26231 // if the reader is waiting for a drain event from this
26232 // specific writer, then it would cause it to never start
26234 // So, if this is awaiting a drain, then we just call it now.
26235 // If we don't know, then assume that we are waiting for one.
26236 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26239 // If the user pushes more data while we're writing to dest then we'll end up
26240 // in ondata again. However, we only want to increase awaitDrain once because
26241 // dest will only emit one 'drain' event for the multiple writes.
26242 // =
> Introduce a guard on increasing awaitDrain.
26243 var increasedAwaitDrain = false;
26244 src.on('data', ondata);
26245 function ondata(chunk) {
26247 increasedAwaitDrain = false;
26248 var ret = dest.write(chunk);
26249 if (false === ret && !increasedAwaitDrain) {
26250 // If the user unpiped during `dest.write()`, it is possible
26251 // to get stuck in a permanently paused state if that write
26252 // also returned false.
26253 // =
> Check whether `dest` is still a piping destination.
26254 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26255 debug('false write response, pause', src._readableState.awaitDrain);
26256 src._readableState.awaitDrain++;
26257 increasedAwaitDrain = true;
26263 // if the dest has an error, then stop piping into it.
26264 // however, don't suppress the throwing behavior for this.
26265 function onerror(er) {
26266 debug('onerror', er);
26268 dest.removeListener('error', onerror);
26269 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26272 // Make sure our error handler is attached before userland ones.
26273 prependListener(dest, 'error', onerror);
26275 // Both close and finish should trigger unpipe, but only once.
26276 function onclose() {
26277 dest.removeListener('finish', onfinish);
26280 dest.once('close', onclose);
26281 function onfinish() {
26283 dest.removeListener('close', onclose);
26286 dest.once('finish', onfinish);
26288 function unpipe() {
26293 // tell the dest that it's being piped to
26294 dest.emit('pipe', src);
26296 // start the flow if it hasn't been started already.
26297 if (!state.flowing) {
26298 debug('pipe resume');
26305 function pipeOnDrain(src) {
26306 return function () {
26307 var state = src._readableState;
26308 debug('pipeOnDrain', state.awaitDrain);
26309 if (state.awaitDrain) state.awaitDrain--;
26310 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26311 state.flowing = true;
26317 Readable.prototype.unpipe = function (dest) {
26318 var state = this._readableState;
26320 // if we're not piping anywhere, then do nothing.
26321 if (state.pipesCount ===
0) return this;
26323 // just one destination. most common case.
26324 if (state.pipesCount ===
1) {
26325 // passed in one, but it's not the right one.
26326 if (dest && dest !== state.pipes) return this;
26328 if (!dest) dest = state.pipes;
26331 state.pipes = null;
26332 state.pipesCount =
0;
26333 state.flowing = false;
26334 if (dest) dest.emit('unpipe', this);
26338 // slow case. multiple pipe destinations.
26342 var dests = state.pipes;
26343 var len = state.pipesCount;
26344 state.pipes = null;
26345 state.pipesCount =
0;
26346 state.flowing = false;
26348 for (var i =
0; i < len; i++) {
26349 dests[i].emit('unpipe', this);
26353 // try to find the right one.
26354 var index = indexOf(state.pipes, dest);
26355 if (index === -
1) return this;
26357 state.pipes.splice(index,
1);
26358 state.pipesCount -=
1;
26359 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26361 dest.emit('unpipe', this);
26366 // set up data events if they are asked for
26367 // Ensure readable listeners eventually get something
26368 Readable.prototype.on = function (ev, fn) {
26369 var res = Stream.prototype.on.call(this, ev, fn);
26371 if (ev === 'data') {
26372 // Start flowing on next tick if stream isn't explicitly paused
26373 if (this._readableState.flowing !== false) this.resume();
26374 } else if (ev === 'readable') {
26375 var state = this._readableState;
26376 if (!state.endEmitted && !state.readableListening) {
26377 state.readableListening = state.needReadable = true;
26378 state.emittedReadable = false;
26379 if (!state.reading) {
26380 processNextTick(nReadingNextTick, this);
26381 } else if (state.length) {
26382 emitReadable(this, state);
26389 Readable.prototype.addListener = Readable.prototype.on;
26391 function nReadingNextTick(self) {
26392 debug('readable nexttick read
0');
26396 // pause() and resume() are remnants of the legacy readable stream API
26397 // If the user uses them, then switch into old mode.
26398 Readable.prototype.resume = function () {
26399 var state = this._readableState;
26400 if (!state.flowing) {
26402 state.flowing = true;
26403 resume(this, state);
26408 function resume(stream, state) {
26409 if (!state.resumeScheduled) {
26410 state.resumeScheduled = true;
26411 processNextTick(resume_, stream, state);
26415 function resume_(stream, state) {
26416 if (!state.reading) {
26417 debug('resume read
0');
26421 state.resumeScheduled = false;
26422 state.awaitDrain =
0;
26423 stream.emit('resume');
26425 if (state.flowing && !state.reading) stream.read(
0);
26428 Readable.prototype.pause = function () {
26429 debug('call pause flowing=%j', this._readableState.flowing);
26430 if (false !== this._readableState.flowing) {
26432 this._readableState.flowing = false;
26433 this.emit('pause');
26438 function flow(stream) {
26439 var state = stream._readableState;
26440 debug('flow', state.flowing);
26441 while (state.flowing && stream.read() !== null) {}
26444 // wrap an old-style stream as the async data source.
26445 // This is *not* part of the readable stream interface.
26446 // It is an ugly unfortunate mess of history.
26447 Readable.prototype.wrap = function (stream) {
26448 var state = this._readableState;
26449 var paused = false;
26452 stream.on('end', function () {
26453 debug('wrapped end');
26454 if (state.decoder && !state.ended) {
26455 var chunk = state.decoder.end();
26456 if (chunk && chunk.length) self.push(chunk);
26462 stream.on('data', function (chunk) {
26463 debug('wrapped data');
26464 if (state.decoder) chunk = state.decoder.write(chunk);
26466 // don't skip over falsy values in objectMode
26467 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26469 var ret = self.push(chunk);
26476 // proxy all the other methods.
26477 // important when wrapping filters and duplexes.
26478 for (var i in stream) {
26479 if (this[i] === undefined && typeof stream[i] === 'function') {
26480 this[i] = function (method) {
26481 return function () {
26482 return stream[method].apply(stream, arguments);
26488 // proxy certain important events.
26489 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26490 forEach(events, function (ev) {
26491 stream.on(ev, self.emit.bind(self, ev));
26494 // when we try to consume some more bytes, simply unpause the
26495 // underlying stream.
26496 self._read = function (n) {
26497 debug('wrapped _read', n);
26507 // exposed for testing purposes only.
26508 Readable._fromList = fromList;
26510 // Pluck off n bytes from an array of buffers.
26511 // Length is the combined lengths of all the buffers in the list.
26512 // This function is designed to be inlinable, so please take care when making
26513 // changes to the function body.
26514 function fromList(n, state) {
26515 // nothing buffered
26516 if (state.length ===
0) return null;
26519 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26520 // read it all, truncate the list
26521 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);
26522 state.buffer.clear();
26524 // read part of list
26525 ret = fromListPartial(n, state.buffer, state.decoder);
26531 // Extracts only enough buffered data to satisfy the amount requested.
26532 // This function is designed to be inlinable, so please take care when making
26533 // changes to the function body.
26534 function fromListPartial(n, list, hasStrings) {
26536 if (n < list.head.data.length) {
26537 // slice is the same for buffers and strings
26538 ret = list.head.data.slice(
0, n);
26539 list.head.data = list.head.data.slice(n);
26540 } else if (n === list.head.data.length) {
26541 // first chunk is a perfect match
26542 ret = list.shift();
26544 // result spans more than one buffer
26545 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26550 // Copies a specified amount of characters from the list of buffered data
26552 // This function is designed to be inlinable, so please take care when making
26553 // changes to the function body.
26554 function copyFromBufferString(n, list) {
26559 while (p = p.next) {
26561 var nb = n
> str.length ? str.length : n;
26562 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26565 if (nb === str.length) {
26567 if (p.next) list.head = p.next;else list.head = list.tail = null;
26570 p.data = str.slice(nb);
26580 // Copies a specified amount of bytes from the list of buffered data chunks.
26581 // This function is designed to be inlinable, so please take care when making
26582 // changes to the function body.
26583 function copyFromBuffer(n, list) {
26584 var ret = bufferShim.allocUnsafe(n);
26588 n -= p.data.length;
26589 while (p = p.next) {
26591 var nb = n
> buf.length ? buf.length : n;
26592 buf.copy(ret, ret.length - n,
0, nb);
26595 if (nb === buf.length) {
26597 if (p.next) list.head = p.next;else list.head = list.tail = null;
26600 p.data = buf.slice(nb);
26610 function endReadable(stream) {
26611 var state = stream._readableState;
26613 // If we get here before consuming all the bytes, then that is a
26614 // bug in node. Should never happen.
26615 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26617 if (!state.endEmitted) {
26618 state.ended = true;
26619 processNextTick(endReadableNT, state, stream);
26623 function endReadableNT(state, stream) {
26624 // Check that we didn't get one last unshift.
26625 if (!state.endEmitted && state.length ===
0) {
26626 state.endEmitted = true;
26627 stream.readable = false;
26628 stream.emit('end');
26632 function forEach(xs, f) {
26633 for (var i =
0, l = xs.length; i < l; i++) {
26638 function indexOf(xs, x) {
26639 for (var i =
0, l = xs.length; i < l; i++) {
26640 if (xs[i] === x) return i;
26644 }).call(this,require('_process'))
26645 },{
"./_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){
26646 // a transform stream is a readable/writable stream where you do
26647 // something with the data. Sometimes it's called a
"filter",
26648 // but that's not a great name for it, since that implies a thing where
26649 // some bits pass through, and others are simply ignored. (That would
26650 // be a valid example of a transform, of course.)
26652 // While the output is causally related to the input, it's not a
26653 // necessarily symmetric or synchronous transformation. For example,
26654 // a zlib stream might take multiple plain-text writes(), and then
26655 // emit a single compressed chunk some time in the future.
26657 // Here's how this works:
26659 // The Transform stream has all the aspects of the readable and writable
26660 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26661 // internally, and returns false if there's a lot of pending writes
26662 // buffered up. When you call read(), that calls _read(n) until
26663 // there's enough pending readable data buffered up.
26665 // In a transform stream, the written data is placed in a buffer. When
26666 // _read(n) is called, it transforms the queued up data, calling the
26667 // buffered _write cb's as it consumes chunks. If consuming a single
26668 // written chunk would result in multiple output chunks, then the first
26669 // outputted bit calls the readcb, and subsequent chunks just go into
26670 // the read buffer, and will cause it to emit 'readable' if necessary.
26672 // This way, back-pressure is actually determined by the reading side,
26673 // since _read has to be called to start processing a new chunk. However,
26674 // a pathological inflate type of transform can cause excessive buffering
26675 // here. For example, imagine a stream where every byte of input is
26676 // interpreted as an integer from
0-
255, and then results in that many
26677 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26678 //
1kb of data being output. In this case, you could write a very small
26679 // amount of input, and end up with a very large amount of output. In
26680 // such a pathological inflating mechanism, there'd be no way to tell
26681 // the system to stop doing the transform. A single
4MB write could
26682 // cause the system to run out of memory.
26684 // However, even in such a pathological case, only a single written chunk
26685 // would be consumed, and then the rest would wait (un-transformed) until
26686 // the results of the previous transformed chunk were consumed.
26690 module.exports = Transform;
26692 var Duplex = require('./_stream_duplex');
26695 var util = require('core-util-is');
26696 util.inherits = require('inherits');
26699 util.inherits(Transform, Duplex);
26701 function TransformState(stream) {
26702 this.afterTransform = function (er, data) {
26703 return afterTransform(stream, er, data);
26706 this.needTransform = false;
26707 this.transforming = false;
26708 this.writecb = null;
26709 this.writechunk = null;
26710 this.writeencoding = null;
26713 function afterTransform(stream, er, data) {
26714 var ts = stream._transformState;
26715 ts.transforming = false;
26717 var cb = ts.writecb;
26719 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26721 ts.writechunk = null;
26724 if (data !== null && data !== undefined) stream.push(data);
26728 var rs = stream._readableState;
26729 rs.reading = false;
26730 if (rs.needReadable || rs.length < rs.highWaterMark) {
26731 stream._read(rs.highWaterMark);
26735 function Transform(options) {
26736 if (!(this instanceof Transform)) return new Transform(options);
26738 Duplex.call(this, options);
26740 this._transformState = new TransformState(this);
26744 // start out asking for a readable event once data is transformed.
26745 this._readableState.needReadable = true;
26747 // we have implemented the _read method, and done the other things
26748 // that Readable wants before the first _read call, so unset the
26749 // sync guard flag.
26750 this._readableState.sync = false;
26753 if (typeof options.transform === 'function') this._transform = options.transform;
26755 if (typeof options.flush === 'function') this._flush = options.flush;
26758 // When the writable side finishes, then flush out anything remaining.
26759 this.once('prefinish', function () {
26760 if (typeof this._flush === 'function') this._flush(function (er, data) {
26761 done(stream, er, data);
26762 });else done(stream);
26766 Transform.prototype.push = function (chunk, encoding) {
26767 this._transformState.needTransform = false;
26768 return Duplex.prototype.push.call(this, chunk, encoding);
26771 // This is the part where you do stuff!
26772 // override this function in implementation classes.
26773 // 'chunk' is an input chunk.
26775 // Call `push(newChunk)` to pass along transformed output
26776 // to the readable side. You may call 'push' zero or more times.
26778 // Call `cb(err)` when you are done with this chunk. If you pass
26779 // an error, then that'll put the hurt on the whole operation. If you
26780 // never call cb(), then you'll never get another chunk.
26781 Transform.prototype._transform = function (chunk, encoding, cb) {
26782 throw new Error('_transform() is not implemented');
26785 Transform.prototype._write = function (chunk, encoding, cb) {
26786 var ts = this._transformState;
26788 ts.writechunk = chunk;
26789 ts.writeencoding = encoding;
26790 if (!ts.transforming) {
26791 var rs = this._readableState;
26792 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26796 // Doesn't matter what the args are here.
26797 // _transform does all the work.
26798 // That we got here means that the readable side wants more data.
26799 Transform.prototype._read = function (n) {
26800 var ts = this._transformState;
26802 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26803 ts.transforming = true;
26804 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26806 // mark that we need a transform, so that any data that comes in
26807 // will get processed, now that we've asked for it.
26808 ts.needTransform = true;
26812 function done(stream, er, data) {
26813 if (er) return stream.emit('error', er);
26815 if (data !== null && data !== undefined) stream.push(data);
26817 // if there's nothing in the write buffer, then that means
26818 // that nothing more will ever be provided
26819 var ws = stream._writableState;
26820 var ts = stream._transformState;
26822 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26824 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26826 return stream.push(null);
26828 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26829 (function (process){
26830 // A bit simpler than readable streams.
26831 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26832 // the drain event emission and buffering.
26836 module.exports = Writable;
26839 var processNextTick = require('process-nextick-args');
26843 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26850 Writable.WritableState = WritableState;
26853 var util = require('core-util-is');
26854 util.inherits = require('inherits');
26858 var internalUtil = {
26859 deprecate: require('util-deprecate')
26867 Stream = require('st' + 'ream');
26868 } catch (_) {} finally {
26869 if (!Stream) Stream = require('events').EventEmitter;
26874 var Buffer = require('buffer').Buffer;
26876 var bufferShim = require('buffer-shims');
26879 util.inherits(Writable, Stream);
26883 function WriteReq(chunk, encoding, cb) {
26884 this.chunk = chunk;
26885 this.encoding = encoding;
26886 this.callback = cb;
26890 function WritableState(options, stream) {
26891 Duplex = Duplex || require('./_stream_duplex');
26893 options = options || {};
26895 // object stream flag to indicate whether or not this stream
26896 // contains buffers or objects.
26897 this.objectMode = !!options.objectMode;
26899 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26901 // the point at which write() starts returning false
26902 // Note:
0 is a valid value, means that we always return false if
26903 // the entire buffer is not flushed immediately on write()
26904 var hwm = options.highWaterMark;
26905 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26906 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26909 this.highWaterMark = ~ ~this.highWaterMark;
26911 // drain event flag.
26912 this.needDrain = false;
26913 // at the start of calling end()
26914 this.ending = false;
26915 // when end() has been called, and returned
26916 this.ended = false;
26917 // when 'finish' is emitted
26918 this.finished = false;
26920 // should we decode strings into buffers before passing to _write?
26921 // this is here so that some node-core streams can optimize string
26922 // handling at a lower level.
26923 var noDecode = options.decodeStrings === false;
26924 this.decodeStrings = !noDecode;
26926 // Crypto is kind of old and crusty. Historically, its default string
26927 // encoding is 'binary' so we have to make this configurable.
26928 // Everything else in the universe uses 'utf8', though.
26929 this.defaultEncoding = options.defaultEncoding || 'utf8';
26931 // not an actual buffer we keep track of, but a measurement
26932 // of how much we're waiting to get pushed to some underlying
26936 // a flag to see when we're in the middle of a write.
26937 this.writing = false;
26939 // when true all writes will be buffered until .uncork() call
26942 // a flag to be able to tell if the onwrite cb is called immediately,
26943 // or on a later tick. We set this to true at first, because any
26944 // actions that shouldn't happen until "later" should generally also
26945 // not happen before the first write call.
26948 // a flag to know if we're processing previously buffered items, which
26949 // may call the _write() callback in the same tick, so that we don't
26950 // end up in an overlapped onwrite situation.
26951 this.bufferProcessing = false;
26953 // the callback that's passed to _write(chunk,cb)
26954 this.onwrite = function (er) {
26955 onwrite(stream, er);
26958 // the callback that the user supplies to write(chunk,encoding,cb)
26959 this.writecb = null;
26961 // the amount that is being written when _write is called.
26964 this.bufferedRequest = null;
26965 this.lastBufferedRequest = null;
26967 // number of pending user-supplied write callbacks
26968 // this must be
0 before 'finish' can be emitted
26969 this.pendingcb =
0;
26971 // emit prefinish if the only thing we're waiting for is _write cbs
26972 // This is relevant for synchronous Transform streams
26973 this.prefinished = false;
26975 // True if the error was already emitted and should not be thrown again
26976 this.errorEmitted = false;
26978 // count buffered requests
26979 this.bufferedRequestCount =
0;
26981 // allocate the first CorkedRequest, there is always
26982 // one allocated and free to use, and we maintain at most two
26983 this.corkedRequestsFree = new CorkedRequest(this);
26986 WritableState.prototype.getBuffer = function getBuffer() {
26987 var current = this.bufferedRequest;
26991 current = current.next;
26998 Object.defineProperty(WritableState.prototype, 'buffer', {
26999 get: internalUtil.deprecate(function () {
27000 return this.getBuffer();
27001 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
27006 // Test _writableState for inheritance to account for Duplex streams,
27007 // whose prototype chain only points to Readable.
27008 var realHasInstance;
27009 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
27010 realHasInstance = Function.prototype[Symbol.hasInstance];
27011 Object.defineProperty(Writable, Symbol.hasInstance, {
27012 value: function (object) {
27013 if (realHasInstance.call(this, object)) return true;
27015 return object && object._writableState instanceof WritableState;
27019 realHasInstance = function (object) {
27020 return object instanceof this;
27024 function Writable(options) {
27025 Duplex = Duplex || require('./_stream_duplex');
27027 // Writable ctor is applied to Duplexes, too.
27028 // `realHasInstance` is necessary because using plain `instanceof`
27029 // would return false, as no `_writableState` property is attached.
27031 // Trying to use the custom `instanceof` for Writable here will also break the
27032 // Node.js LazyTransform implementation, which has a non-trivial getter for
27033 // `_writableState` that would lead to infinite recursion.
27034 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
27035 return new Writable(options);
27038 this._writableState = new WritableState(options, this);
27041 this.writable = true;
27044 if (typeof options.write === 'function') this._write = options.write;
27046 if (typeof options.writev === 'function') this._writev = options.writev;
27052 // Otherwise people can pipe Writable streams, which is just wrong.
27053 Writable.prototype.pipe = function () {
27054 this.emit('error', new Error('Cannot pipe, not readable'));
27057 function writeAfterEnd(stream, cb) {
27058 var er = new Error('write after end');
27059 // TODO: defer error events consistently everywhere, not just the cb
27060 stream.emit('error', er);
27061 processNextTick(cb, er);
27064 // If we get something that is not a buffer, string, null, or undefined,
27065 // and we're not in objectMode, then that's an error.
27066 // Otherwise stream chunks are all considered to be of length=
1, and the
27067 // watermarks determine how many objects to keep in the buffer, rather than
27068 // how many bytes or characters.
27069 function validChunk(stream, state, chunk, cb) {
27072 // Always throw error if a null is written
27073 // if we are not in object mode then throw
27074 // if it is not a buffer, string, or undefined.
27075 if (chunk === null) {
27076 er = new TypeError('May not write null values to stream');
27077 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27078 er = new TypeError('Invalid non-string/buffer chunk');
27081 stream.emit('error', er);
27082 processNextTick(cb, er);
27088 Writable.prototype.write = function (chunk, encoding, cb) {
27089 var state = this._writableState;
27092 if (typeof encoding === 'function') {
27097 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27099 if (typeof cb !== 'function') cb = nop;
27101 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27103 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27109 Writable.prototype.cork = function () {
27110 var state = this._writableState;
27115 Writable.prototype.uncork = function () {
27116 var state = this._writableState;
27118 if (state.corked) {
27121 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27125 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27126 // node::ParseEncoding() requires lower case.
27127 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27128 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);
27129 this._writableState.defaultEncoding = encoding;
27133 function decodeChunk(state, chunk, encoding) {
27134 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27135 chunk = bufferShim.from(chunk, encoding);
27140 // if we're already writing something, then just put this
27141 // in the queue, and wait our turn. Otherwise, call _write
27142 // If we return false, then we need a drain event, so set that flag.
27143 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27144 chunk = decodeChunk(state, chunk, encoding);
27146 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27147 var len = state.objectMode ?
1 : chunk.length;
27149 state.length += len;
27151 var ret = state.length < state.highWaterMark;
27152 // we must ensure that previous needDrain will not be reset to false.
27153 if (!ret) state.needDrain = true;
27155 if (state.writing || state.corked) {
27156 var last = state.lastBufferedRequest;
27157 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27159 last.next = state.lastBufferedRequest;
27161 state.bufferedRequest = state.lastBufferedRequest;
27163 state.bufferedRequestCount +=
1;
27165 doWrite(stream, state, false, len, chunk, encoding, cb);
27171 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27172 state.writelen = len;
27173 state.writecb = cb;
27174 state.writing = true;
27176 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27177 state.sync = false;
27180 function onwriteError(stream, state, sync, er, cb) {
27182 if (sync) processNextTick(cb, er);else cb(er);
27184 stream._writableState.errorEmitted = true;
27185 stream.emit('error', er);
27188 function onwriteStateUpdate(state) {
27189 state.writing = false;
27190 state.writecb = null;
27191 state.length -= state.writelen;
27192 state.writelen =
0;
27195 function onwrite(stream, er) {
27196 var state = stream._writableState;
27197 var sync = state.sync;
27198 var cb = state.writecb;
27200 onwriteStateUpdate(state);
27202 if (er) onwriteError(stream, state, sync, er, cb);else {
27203 // Check if we're actually ready to finish, but don't emit yet
27204 var finished = needFinish(state);
27206 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27207 clearBuffer(stream, state);
27212 asyncWrite(afterWrite, stream, state, finished, cb);
27215 afterWrite(stream, state, finished, cb);
27220 function afterWrite(stream, state, finished, cb) {
27221 if (!finished) onwriteDrain(stream, state);
27224 finishMaybe(stream, state);
27227 // Must force callback to be called on nextTick, so that we don't
27228 // emit 'drain' before the write() consumer gets the 'false' return
27229 // value, and has a chance to attach a 'drain' listener.
27230 function onwriteDrain(stream, state) {
27231 if (state.length ===
0 && state.needDrain) {
27232 state.needDrain = false;
27233 stream.emit('drain');
27237 // if there's something in the buffer waiting, then process it
27238 function clearBuffer(stream, state) {
27239 state.bufferProcessing = true;
27240 var entry = state.bufferedRequest;
27242 if (stream._writev && entry && entry.next) {
27243 // Fast case, write everything using _writev()
27244 var l = state.bufferedRequestCount;
27245 var buffer = new Array(l);
27246 var holder = state.corkedRequestsFree;
27247 holder.entry = entry;
27251 buffer[count] = entry;
27252 entry = entry.next;
27256 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27258 // doWrite is almost always async, defer these to save a bit of time
27259 // as the hot path ends with doWrite
27261 state.lastBufferedRequest = null;
27263 state.corkedRequestsFree = holder.next;
27264 holder.next = null;
27266 state.corkedRequestsFree = new CorkedRequest(state);
27269 // Slow case, write chunks one-by-one
27271 var chunk = entry.chunk;
27272 var encoding = entry.encoding;
27273 var cb = entry.callback;
27274 var len = state.objectMode ?
1 : chunk.length;
27276 doWrite(stream, state, false, len, chunk, encoding, cb);
27277 entry = entry.next;
27278 // if we didn't call the onwrite immediately, then
27279 // it means that we need to wait until it does.
27280 // also, that means that the chunk and cb are currently
27281 // being processed, so move the buffer counter past them.
27282 if (state.writing) {
27287 if (entry === null) state.lastBufferedRequest = null;
27290 state.bufferedRequestCount =
0;
27291 state.bufferedRequest = entry;
27292 state.bufferProcessing = false;
27295 Writable.prototype._write = function (chunk, encoding, cb) {
27296 cb(new Error('_write() is not implemented'));
27299 Writable.prototype._writev = null;
27301 Writable.prototype.end = function (chunk, encoding, cb) {
27302 var state = this._writableState;
27304 if (typeof chunk === 'function') {
27308 } else if (typeof encoding === 'function') {
27313 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27315 // .end() fully uncorks
27316 if (state.corked) {
27321 // ignore unnecessary end() calls.
27322 if (!state.ending && !state.finished) endWritable(this, state, cb);
27325 function needFinish(state) {
27326 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27329 function prefinish(stream, state) {
27330 if (!state.prefinished) {
27331 state.prefinished = true;
27332 stream.emit('prefinish');
27336 function finishMaybe(stream, state) {
27337 var need = needFinish(state);
27339 if (state.pendingcb ===
0) {
27340 prefinish(stream, state);
27341 state.finished = true;
27342 stream.emit('finish');
27344 prefinish(stream, state);
27350 function endWritable(stream, state, cb) {
27351 state.ending = true;
27352 finishMaybe(stream, state);
27354 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27356 state.ended = true;
27357 stream.writable = false;
27360 // It seems a linked list but it is not
27361 // there will be only
2 of these for each stream
27362 function CorkedRequest(state) {
27368 this.finish = function (err) {
27369 var entry = _this.entry;
27370 _this.entry = null;
27372 var cb = entry.callback;
27375 entry = entry.next;
27377 if (state.corkedRequestsFree) {
27378 state.corkedRequestsFree.next = _this;
27380 state.corkedRequestsFree = _this;
27384 }).call(this,require('_process'))
27385 },{"./_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){
27388 var Buffer = require('buffer').Buffer;
27390 var bufferShim = require('buffer-shims');
27393 module.exports = BufferList;
27395 function BufferList() {
27401 BufferList.prototype.push = function (v) {
27402 var entry = { data: v, next: null };
27403 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27408 BufferList.prototype.unshift = function (v) {
27409 var entry = { data: v, next: this.head };
27410 if (this.length ===
0) this.tail = entry;
27415 BufferList.prototype.shift = function () {
27416 if (this.length ===
0) return;
27417 var ret = this.head.data;
27418 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27423 BufferList.prototype.clear = function () {
27424 this.head = this.tail = null;
27428 BufferList.prototype.join = function (s) {
27429 if (this.length ===
0) return '';
27431 var ret = '' + p.data;
27432 while (p = p.next) {
27437 BufferList.prototype.concat = function (n) {
27438 if (this.length ===
0) return bufferShim.alloc(
0);
27439 if (this.length ===
1) return this.head.data;
27440 var ret = bufferShim.allocUnsafe(n
>>> 0);
27444 p.data.copy(ret, i);
27445 i += p.data.length;
27450 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27451 module.exports = require(
"./lib/_stream_passthrough.js")
27453 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27454 (function (process){
27455 var Stream = (function (){
27457 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27460 exports = module.exports = require('./lib/_stream_readable.js');
27461 exports.Stream = Stream || exports;
27462 exports.Readable = exports;
27463 exports.Writable = require('./lib/_stream_writable.js');
27464 exports.Duplex = require('./lib/_stream_duplex.js');
27465 exports.Transform = require('./lib/_stream_transform.js');
27466 exports.PassThrough = require('./lib/_stream_passthrough.js');
27468 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27469 module.exports = Stream;
27472 }).call(this,require('_process'))
27473 },{
"./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){
27474 module.exports = require(
"./lib/_stream_transform.js")
27476 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27477 module.exports = require(
"./lib/_stream_writable.js")
27479 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27480 // Copyright Joyent, Inc. and other Node contributors.
27482 // Permission is hereby granted, free of charge, to any person obtaining a
27483 // copy of this software and associated documentation files (the
27484 //
"Software"), to deal in the Software without restriction, including
27485 // without limitation the rights to use, copy, modify, merge, publish,
27486 // distribute, sublicense, and/or sell copies of the Software, and to permit
27487 // persons to whom the Software is furnished to do so, subject to the
27488 // following conditions:
27490 // The above copyright notice and this permission notice shall be included
27491 // in all copies or substantial portions of the Software.
27493 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27494 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27495 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27496 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27497 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27498 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27499 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27501 module.exports = Stream;
27503 var EE = require('events').EventEmitter;
27504 var inherits = require('inherits');
27506 inherits(Stream, EE);
27507 Stream.Readable = require('readable-stream/readable.js');
27508 Stream.Writable = require('readable-stream/writable.js');
27509 Stream.Duplex = require('readable-stream/duplex.js');
27510 Stream.Transform = require('readable-stream/transform.js');
27511 Stream.PassThrough = require('readable-stream/passthrough.js');
27513 // Backwards-compat with node
0.4.x
27514 Stream.Stream = Stream;
27518 // old-style streams. Note that the pipe method (the only relevant
27519 // part of this class) is overridden in the Readable class.
27521 function Stream() {
27525 Stream.prototype.pipe = function(dest, options) {
27528 function ondata(chunk) {
27529 if (dest.writable) {
27530 if (false === dest.write(chunk) && source.pause) {
27536 source.on('data', ondata);
27538 function ondrain() {
27539 if (source.readable && source.resume) {
27544 dest.on('drain', ondrain);
27546 // If the 'end' option is not supplied, dest.end() will be called when
27547 // source gets the 'end' or 'close' events. Only dest.end() once.
27548 if (!dest._isStdio && (!options || options.end !== false)) {
27549 source.on('end', onend);
27550 source.on('close', onclose);
27553 var didOnEnd = false;
27555 if (didOnEnd) return;
27562 function onclose() {
27563 if (didOnEnd) return;
27566 if (typeof dest.destroy === 'function') dest.destroy();
27569 // don't leave dangling pipes when there are errors.
27570 function onerror(er) {
27572 if (EE.listenerCount(this, 'error') ===
0) {
27573 throw er; // Unhandled stream error in pipe.
27577 source.on('error', onerror);
27578 dest.on('error', onerror);
27580 // remove all the event listeners that were added.
27581 function cleanup() {
27582 source.removeListener('data', ondata);
27583 dest.removeListener('drain', ondrain);
27585 source.removeListener('end', onend);
27586 source.removeListener('close', onclose);
27588 source.removeListener('error', onerror);
27589 dest.removeListener('error', onerror);
27591 source.removeListener('end', cleanup);
27592 source.removeListener('close', cleanup);
27594 dest.removeListener('close', cleanup);
27597 source.on('end', cleanup);
27598 source.on('close', cleanup);
27600 dest.on('close', cleanup);
27602 dest.emit('pipe', source);
27604 // Allow for unix-like usage: A.pipe(B).pipe(C)
27608 },{
"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){
27609 // Copyright Joyent, Inc. and other Node contributors.
27611 // Permission is hereby granted, free of charge, to any person obtaining a
27612 // copy of this software and associated documentation files (the
27613 //
"Software"), to deal in the Software without restriction, including
27614 // without limitation the rights to use, copy, modify, merge, publish,
27615 // distribute, sublicense, and/or sell copies of the Software, and to permit
27616 // persons to whom the Software is furnished to do so, subject to the
27617 // following conditions:
27619 // The above copyright notice and this permission notice shall be included
27620 // in all copies or substantial portions of the Software.
27622 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27623 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27624 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27625 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27626 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27627 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27628 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27630 var Buffer = require('buffer').Buffer;
27632 var isBufferEncoding = Buffer.isEncoding
27633 || function(encoding) {
27634 switch (encoding && encoding.toLowerCase()) {
27635 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;
27636 default: return false;
27641 function assertEncoding(encoding) {
27642 if (encoding && !isBufferEncoding(encoding)) {
27643 throw new Error('Unknown encoding: ' + encoding);
27647 // StringDecoder provides an interface for efficiently splitting a series of
27648 // buffers into a series of JS strings without breaking apart multi-byte
27649 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27651 // @TODO Handling all encodings inside a single object makes it very difficult
27652 // to reason about this code, so it should be split up in the future.
27653 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27654 // points as used by CESU-
8.
27655 var StringDecoder = exports.StringDecoder = function(encoding) {
27656 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27657 assertEncoding(encoding);
27658 switch (this.encoding) {
27660 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27661 this.surrogateSize =
3;
27665 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27666 this.surrogateSize =
2;
27667 this.detectIncompleteChar = utf16DetectIncompleteChar;
27670 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27671 this.surrogateSize =
3;
27672 this.detectIncompleteChar = base64DetectIncompleteChar;
27675 this.write = passThroughWrite;
27679 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27680 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27681 this.charBuffer = new Buffer(
6);
27682 // Number of bytes received for the current incomplete multi-byte character.
27683 this.charReceived =
0;
27684 // Number of bytes expected for the current incomplete multi-byte character.
27685 this.charLength =
0;
27689 // write decodes the given buffer and returns it as JS string that is
27690 // guaranteed to not contain any partial multi-byte characters. Any partial
27691 // character found at the end of the buffer is buffered up, and will be
27692 // returned when calling write again with the remaining bytes.
27694 // Note: Converting a Buffer containing an orphan surrogate to a String
27695 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27696 // Buffer#write) will replace incomplete surrogates with the unicode
27697 // replacement character. See https://codereview.chromium.org/
121173009/ .
27698 StringDecoder.prototype.write = function(buffer) {
27700 // if our last write ended with an incomplete multibyte character
27701 while (this.charLength) {
27702 // determine how many remaining bytes this buffer has to offer for this char
27703 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27704 this.charLength - this.charReceived :
27707 // add the new bytes to the char buffer
27708 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27709 this.charReceived += available;
27711 if (this.charReceived < this.charLength) {
27712 // still not enough chars in this buffer? wait for more ...
27716 // remove bytes belonging to the current character from the buffer
27717 buffer = buffer.slice(available, buffer.length);
27719 // get the character that was split
27720 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27722 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27723 var charCode = charStr.charCodeAt(charStr.length -
1);
27724 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27725 this.charLength += this.surrogateSize;
27729 this.charReceived = this.charLength =
0;
27731 // if there are no more bytes in this buffer, just emit our char
27732 if (buffer.length ===
0) {
27738 // determine and set charLength / charReceived
27739 this.detectIncompleteChar(buffer);
27741 var end = buffer.length;
27742 if (this.charLength) {
27743 // buffer the incomplete character bytes we got
27744 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27745 end -= this.charReceived;
27748 charStr += buffer.toString(this.encoding,
0, end);
27750 var end = charStr.length -
1;
27751 var charCode = charStr.charCodeAt(end);
27752 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27753 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27754 var size = this.surrogateSize;
27755 this.charLength += size;
27756 this.charReceived += size;
27757 this.charBuffer.copy(this.charBuffer, size,
0, size);
27758 buffer.copy(this.charBuffer,
0,
0, size);
27759 return charStr.substring(
0, end);
27762 // or just emit the charStr
27766 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27767 // the end of the given buffer. If so, it sets this.charLength to the byte
27768 // length that character, and sets this.charReceived to the number of bytes
27769 // that are available for this character.
27770 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27771 // determine how many bytes we have to check at the end of this buffer
27772 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27774 // Figure out if one of the last i bytes of our buffer announces an
27775 // incomplete char.
27776 for (; i
> 0; i--) {
27777 var c = buffer[buffer.length - i];
27779 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27782 if (i ==
1 && c
>> 5 ==
0x06) {
27783 this.charLength =
2;
27788 if (i <=
2 && c
>> 4 ==
0x0E) {
27789 this.charLength =
3;
27794 if (i <=
3 && c
>> 3 ==
0x1E) {
27795 this.charLength =
4;
27799 this.charReceived = i;
27802 StringDecoder.prototype.end = function(buffer) {
27804 if (buffer && buffer.length)
27805 res = this.write(buffer);
27807 if (this.charReceived) {
27808 var cr = this.charReceived;
27809 var buf = this.charBuffer;
27810 var enc = this.encoding;
27811 res += buf.slice(
0, cr).toString(enc);
27817 function passThroughWrite(buffer) {
27818 return buffer.toString(this.encoding);
27821 function utf16DetectIncompleteChar(buffer) {
27822 this.charReceived = buffer.length %
2;
27823 this.charLength = this.charReceived ?
2 :
0;
27826 function base64DetectIncompleteChar(buffer) {
27827 this.charReceived = buffer.length %
3;
27828 this.charLength = this.charReceived ?
3 :
0;
27831 },{
"buffer":
5}],
27:[function(require,module,exports){
27832 (function (global){
27838 module.exports = deprecate;
27841 * Mark that a method should not be used.
27842 * Returns a modified function which warns once by default.
27844 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27846 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27847 * will throw an Error when invoked.
27849 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27850 * will invoke `console.trace()` instead of `console.error()`.
27852 * @param {Function} fn - the function to deprecate
27853 * @param {String} msg - the string to print to the console when `fn` is invoked
27854 * @returns {Function} a new
"deprecated" version of `fn`
27858 function deprecate (fn, msg) {
27859 if (config('noDeprecation')) {
27863 var warned = false;
27864 function deprecated() {
27866 if (config('throwDeprecation')) {
27867 throw new Error(msg);
27868 } else if (config('traceDeprecation')) {
27869 console.trace(msg);
27875 return fn.apply(this, arguments);
27882 * Checks `localStorage` for boolean values for the given `name`.
27884 * @param {String} name
27885 * @returns {Boolean}
27889 function config (name) {
27890 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27892 if (!global.localStorage) return false;
27896 var val = global.localStorage[name];
27897 if (null == val) return false;
27898 return String(val).toLowerCase() === 'true';
27901 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27902 },{}],
28:[function(require,module,exports){
27903 arguments[
4][
9][
0].apply(exports,arguments)
27904 },{
"dup":
9}],
29:[function(require,module,exports){
27905 module.exports = function isBuffer(arg) {
27906 return arg && typeof arg === 'object'
27907 && typeof arg.copy === 'function'
27908 && typeof arg.fill === 'function'
27909 && typeof arg.readUInt8 === 'function';
27911 },{}],
30:[function(require,module,exports){
27912 (function (process,global){
27913 // Copyright Joyent, Inc. and other Node contributors.
27915 // Permission is hereby granted, free of charge, to any person obtaining a
27916 // copy of this software and associated documentation files (the
27917 //
"Software"), to deal in the Software without restriction, including
27918 // without limitation the rights to use, copy, modify, merge, publish,
27919 // distribute, sublicense, and/or sell copies of the Software, and to permit
27920 // persons to whom the Software is furnished to do so, subject to the
27921 // following conditions:
27923 // The above copyright notice and this permission notice shall be included
27924 // in all copies or substantial portions of the Software.
27926 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27927 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27928 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27929 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27930 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27931 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27932 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27934 var formatRegExp = /%[sdj%]/g;
27935 exports.format = function(f) {
27936 if (!isString(f)) {
27938 for (var i =
0; i < arguments.length; i++) {
27939 objects.push(inspect(arguments[i]));
27941 return objects.join(' ');
27945 var args = arguments;
27946 var len = args.length;
27947 var str = String(f).replace(formatRegExp, function(x) {
27948 if (x === '%%') return '%';
27949 if (i
>= len) return x;
27951 case '%s': return String(args[i++]);
27952 case '%d': return Number(args[i++]);
27955 return JSON.stringify(args[i++]);
27957 return '[Circular]';
27963 for (var x = args[i]; i < len; x = args[++i]) {
27964 if (isNull(x) || !isObject(x)) {
27967 str += ' ' + inspect(x);
27974 // Mark that a method should not be used.
27975 // Returns a modified function which warns once by default.
27976 // If --no-deprecation is set, then it is a no-op.
27977 exports.deprecate = function(fn, msg) {
27978 // Allow for deprecating things in the process of starting up.
27979 if (isUndefined(global.process)) {
27980 return function() {
27981 return exports.deprecate(fn, msg).apply(this, arguments);
27985 if (process.noDeprecation === true) {
27989 var warned = false;
27990 function deprecated() {
27992 if (process.throwDeprecation) {
27993 throw new Error(msg);
27994 } else if (process.traceDeprecation) {
27995 console.trace(msg);
27997 console.error(msg);
28001 return fn.apply(this, arguments);
28010 exports.debuglog = function(set) {
28011 if (isUndefined(debugEnviron))
28012 debugEnviron = process.env.NODE_DEBUG || '';
28013 set = set.toUpperCase();
28014 if (!debugs[set]) {
28015 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
28016 var pid = process.pid;
28017 debugs[set] = function() {
28018 var msg = exports.format.apply(exports, arguments);
28019 console.error('%s %d: %s', set, pid, msg);
28022 debugs[set] = function() {};
28025 return debugs[set];
28030 * Echos the value of a value. Trys to print the value out
28031 * in the best way possible given the different types.
28033 * @param {Object} obj The object to print out.
28034 * @param {Object} opts Optional options object that alters the output.
28036 /* legacy: obj, showHidden, depth, colors*/
28037 function inspect(obj, opts) {
28041 stylize: stylizeNoColor
28044 if (arguments.length
>=
3) ctx.depth = arguments[
2];
28045 if (arguments.length
>=
4) ctx.colors = arguments[
3];
28046 if (isBoolean(opts)) {
28048 ctx.showHidden = opts;
28050 // got an "options" object
28051 exports._extend(ctx, opts);
28053 // set default options
28054 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28055 if (isUndefined(ctx.depth)) ctx.depth =
2;
28056 if (isUndefined(ctx.colors)) ctx.colors = false;
28057 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28058 if (ctx.colors) ctx.stylize = stylizeWithColor;
28059 return formatValue(ctx, obj, ctx.depth);
28061 exports.inspect = inspect;
28064 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28067 'italic' : [
3,
23],
28068 'underline' : [
4,
24],
28069 'inverse' : [
7,
27],
28070 'white' : [
37,
39],
28072 'black' : [
30,
39],
28075 'green' : [
32,
39],
28076 'magenta' : [
35,
39],
28078 'yellow' : [
33,
39]
28081 // Don't use 'blue' not visible on cmd.exe
28084 'number': 'yellow',
28085 'boolean': 'yellow',
28086 'undefined': 'grey',
28090 // "name": intentionally not styling
28095 function stylizeWithColor(str, styleType) {
28096 var style = inspect.styles[styleType];
28099 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28100 '\u001b[' + inspect.colors[style][
1] + 'm';
28107 function stylizeNoColor(str, styleType) {
28112 function arrayToHash(array) {
28115 array.forEach(function(val, idx) {
28123 function formatValue(ctx, value, recurseTimes) {
28124 // Provide a hook for user-specified inspect functions.
28125 // Check that value is an object with an inspect function on it
28126 if (ctx.customInspect &&
28128 isFunction(value.inspect) &&
28129 // Filter out the util module, it's inspect function is special
28130 value.inspect !== exports.inspect &&
28131 // Also filter out any prototype objects using the circular check.
28132 !(value.constructor && value.constructor.prototype === value)) {
28133 var ret = value.inspect(recurseTimes, ctx);
28134 if (!isString(ret)) {
28135 ret = formatValue(ctx, ret, recurseTimes);
28140 // Primitive types cannot have properties
28141 var primitive = formatPrimitive(ctx, value);
28146 // Look up the keys of the object.
28147 var keys = Object.keys(value);
28148 var visibleKeys = arrayToHash(keys);
28150 if (ctx.showHidden) {
28151 keys = Object.getOwnPropertyNames(value);
28154 // IE doesn't make error fields non-enumerable
28155 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28157 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28158 return formatError(value);
28161 // Some type of object without properties can be shortcutted.
28162 if (keys.length ===
0) {
28163 if (isFunction(value)) {
28164 var name = value.name ? ': ' + value.name : '';
28165 return ctx.stylize('[Function' + name + ']', 'special');
28167 if (isRegExp(value)) {
28168 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28170 if (isDate(value)) {
28171 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28173 if (isError(value)) {
28174 return formatError(value);
28178 var base = '', array = false, braces = ['{', '}'];
28180 // Make Array say that they are Array
28181 if (isArray(value)) {
28183 braces = ['[', ']'];
28186 // Make functions say that they are functions
28187 if (isFunction(value)) {
28188 var n = value.name ? ': ' + value.name : '';
28189 base = ' [Function' + n + ']';
28192 // Make RegExps say that they are RegExps
28193 if (isRegExp(value)) {
28194 base = ' ' + RegExp.prototype.toString.call(value);
28197 // Make dates with properties first say the date
28198 if (isDate(value)) {
28199 base = ' ' + Date.prototype.toUTCString.call(value);
28202 // Make error with message first say the error
28203 if (isError(value)) {
28204 base = ' ' + formatError(value);
28207 if (keys.length ===
0 && (!array || value.length ==
0)) {
28208 return braces[
0] + base + braces[
1];
28211 if (recurseTimes <
0) {
28212 if (isRegExp(value)) {
28213 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28215 return ctx.stylize('[Object]', 'special');
28219 ctx.seen.push(value);
28223 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28225 output = keys.map(function(key) {
28226 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28232 return reduceToSingleString(output, base, braces);
28236 function formatPrimitive(ctx, value) {
28237 if (isUndefined(value))
28238 return ctx.stylize('undefined', 'undefined');
28239 if (isString(value)) {
28240 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28241 .replace(/'/g, "\\'")
28242 .replace(/\\"/g, '"') + '\'';
28243 return ctx.stylize(simple, 'string');
28245 if (isNumber(value))
28246 return ctx.stylize('' + value, 'number');
28247 if (isBoolean(value))
28248 return ctx.stylize('' + value, 'boolean');
28249 // For some reason typeof null is "object", so special case here.
28251 return ctx.stylize('null', 'null');
28255 function formatError(value) {
28256 return '[' + Error.prototype.toString.call(value) + ']';
28260 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28262 for (var i =
0, l = value.length; i < l; ++i) {
28263 if (hasOwnProperty(value, String(i))) {
28264 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28270 keys.forEach(function(key) {
28271 if (!key.match(/^\d+$/)) {
28272 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28280 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28281 var name, str, desc;
28282 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28285 str = ctx.stylize('[Getter/Setter]', 'special');
28287 str = ctx.stylize('[Getter]', 'special');
28291 str = ctx.stylize('[Setter]', 'special');
28294 if (!hasOwnProperty(visibleKeys, key)) {
28295 name = '[' + key + ']';
28298 if (ctx.seen.indexOf(desc.value) <
0) {
28299 if (isNull(recurseTimes)) {
28300 str = formatValue(ctx, desc.value, null);
28302 str = formatValue(ctx, desc.value, recurseTimes -
1);
28304 if (str.indexOf('\n')
> -
1) {
28306 str = str.split('\n').map(function(line) {
28308 }).join('\n').substr(
2);
28310 str = '\n' + str.split('\n').map(function(line) {
28316 str = ctx.stylize('[Circular]', 'special');
28319 if (isUndefined(name)) {
28320 if (array && key.match(/^\d+$/)) {
28323 name = JSON.stringify('' + key);
28324 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28325 name = name.substr(
1, name.length -
2);
28326 name = ctx.stylize(name, 'name');
28328 name = name.replace(/'/g, "\\'")
28329 .replace(/\\"/g, '"')
28330 .replace(/(^"|"$)/g, "'");
28331 name = ctx.stylize(name, 'string');
28335 return name + ': ' + str;
28339 function reduceToSingleString(output, base, braces) {
28340 var numLinesEst =
0;
28341 var length = output.reduce(function(prev, cur) {
28343 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28344 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28349 (base === '' ? '' : base + '\n ') +
28351 output.join(',\n ') +
28356 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28360 // NOTE: These type checking functions intentionally don't use `instanceof`
28361 // because it is fragile and can be easily faked with `Object.create()`.
28362 function isArray(ar) {
28363 return Array.isArray(ar);
28365 exports.isArray = isArray;
28367 function isBoolean(arg) {
28368 return typeof arg === 'boolean';
28370 exports.isBoolean = isBoolean;
28372 function isNull(arg) {
28373 return arg === null;
28375 exports.isNull = isNull;
28377 function isNullOrUndefined(arg) {
28378 return arg == null;
28380 exports.isNullOrUndefined = isNullOrUndefined;
28382 function isNumber(arg) {
28383 return typeof arg === 'number';
28385 exports.isNumber = isNumber;
28387 function isString(arg) {
28388 return typeof arg === 'string';
28390 exports.isString = isString;
28392 function isSymbol(arg) {
28393 return typeof arg === 'symbol';
28395 exports.isSymbol = isSymbol;
28397 function isUndefined(arg) {
28398 return arg === void
0;
28400 exports.isUndefined = isUndefined;
28402 function isRegExp(re) {
28403 return isObject(re) && objectToString(re) === '[object RegExp]';
28405 exports.isRegExp = isRegExp;
28407 function isObject(arg) {
28408 return typeof arg === 'object' && arg !== null;
28410 exports.isObject = isObject;
28412 function isDate(d) {
28413 return isObject(d) && objectToString(d) === '[object Date]';
28415 exports.isDate = isDate;
28417 function isError(e) {
28418 return isObject(e) &&
28419 (objectToString(e) === '[object Error]' || e instanceof Error);
28421 exports.isError = isError;
28423 function isFunction(arg) {
28424 return typeof arg === 'function';
28426 exports.isFunction = isFunction;
28428 function isPrimitive(arg) {
28429 return arg === null ||
28430 typeof arg === 'boolean' ||
28431 typeof arg === 'number' ||
28432 typeof arg === 'string' ||
28433 typeof arg === 'symbol' || // ES6 symbol
28434 typeof arg === 'undefined';
28436 exports.isPrimitive = isPrimitive;
28438 exports.isBuffer = require('./support/isBuffer');
28440 function objectToString(o) {
28441 return Object.prototype.toString.call(o);
28446 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28450 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28451 'Oct', 'Nov', 'Dec'];
28454 function timestamp() {
28455 var d = new Date();
28456 var time = [pad(d.getHours()),
28457 pad(d.getMinutes()),
28458 pad(d.getSeconds())].join(':');
28459 return [d.getDate(), months[d.getMonth()], time].join(' ');
28463 // log is just a thin wrapper to console.log that prepends a timestamp
28464 exports.log = function() {
28465 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28470 * Inherit the prototype methods from one constructor into another.
28472 * The Function.prototype.inherits from lang.js rewritten as a standalone
28473 * function (not on Function.prototype). NOTE: If this file is to be loaded
28474 * during bootstrapping this function needs to be rewritten using some native
28475 * functions as prototype setup using normal JavaScript does not work as
28476 * expected during bootstrapping (see mirror.js in r114903).
28478 * @param {function} ctor Constructor function which needs to inherit the
28480 * @param {function} superCtor Constructor function to inherit prototype from.
28482 exports.inherits = require('inherits');
28484 exports._extend = function(origin, add) {
28485 // Don't do anything if add isn't an object
28486 if (!add || !isObject(add)) return origin;
28488 var keys = Object.keys(add);
28489 var i = keys.length;
28491 origin[keys[i]] = add[keys[i]];
28496 function hasOwnProperty(obj, prop) {
28497 return Object.prototype.hasOwnProperty.call(obj, prop);
28500 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28501 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28502 (function (Buffer){
28503 const createKeccakHash = require('keccak')
28504 const secp256k1 = require('secp256k1')
28505 const assert = require('assert')
28506 const rlp = require('rlp')
28507 const BN = require('bn.js')
28508 const createHash = require('create-hash')
28509 Object.assign(exports, require('ethjs-util'))
28512 * the max integer that this VM can handle (a ```BN```)
28513 * @var {BN} MAX_INTEGER
28515 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28518 *
2^
256 (a ```BN```)
28519 * @var {BN} TWO_POW256
28521 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28524 * SHA3-
256 hash of null (a ```String```)
28525 * @var {String} SHA3_NULL_S
28527 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28530 * SHA3-
256 hash of null (a ```Buffer```)
28531 * @var {Buffer} SHA3_NULL
28533 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28536 * SHA3-
256 of an RLP of an empty array (a ```String```)
28537 * @var {String} SHA3_RLP_ARRAY_S
28539 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28542 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28543 * @var {Buffer} SHA3_RLP_ARRAY
28545 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28548 * SHA3-
256 hash of the RLP of null (a ```String```)
28549 * @var {String} SHA3_RLP_S
28551 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28554 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28555 * @var {Buffer} SHA3_RLP
28557 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28560 * [`BN`](https://github.com/indutny/bn.js)
28566 * [`rlp`](https://github.com/ethereumjs/rlp)
28572 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28575 exports.secp256k1 = secp256k1
28578 * Returns a buffer filled with
0s
28580 * @param {Number} bytes the number of bytes the buffer should be
28583 exports.zeros = function (bytes) {
28584 return Buffer.allocUnsafe(bytes).fill(
0)
28588 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28589 * Or it truncates the beginning if it exceeds.
28590 * @method lsetLength
28591 * @param {Buffer|Array} msg the value to pad
28592 * @param {Number} length the number of bytes the output should be
28593 * @param {Boolean} [right=false] whether to start padding form the left or right
28594 * @return {Buffer|Array}
28596 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28597 var buf = exports.zeros(length)
28598 msg = exports.toBuffer(msg)
28600 if (msg.length < length) {
28604 return msg.slice(
0, length)
28606 if (msg.length < length) {
28607 msg.copy(buf, length - msg.length)
28610 return msg.slice(-length)
28615 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28616 * Or it truncates the beginning if it exceeds.
28617 * @param {Buffer|Array} msg the value to pad
28618 * @param {Number} length the number of bytes the output should be
28619 * @return {Buffer|Array}
28621 exports.setLengthRight = function (msg, length) {
28622 return exports.setLength(msg, length, true)
28626 * Trims leading zeros from a `Buffer` or an `Array`
28627 * @param {Buffer|Array|String} a
28628 * @return {Buffer|Array|String}
28630 exports.unpad = exports.stripZeros = function (a) {
28631 a = exports.stripHexPrefix(a)
28633 while (a.length
> 0 && first.toString() === '
0') {
28640 * 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.
28641 * @param {*} v the value
28643 exports.toBuffer = function (v) {
28644 if (!Buffer.isBuffer(v)) {
28645 if (Array.isArray(v)) {
28647 } else if (typeof v === 'string') {
28648 if (exports.isHexPrefixed(v)) {
28649 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28653 } else if (typeof v === 'number') {
28654 v = exports.intToBuffer(v)
28655 } else if (v === null || v === undefined) {
28656 v = Buffer.allocUnsafe(
0)
28657 } else if (v.toArray) {
28658 // converts a BN to a Buffer
28659 v = Buffer.from(v.toArray())
28661 throw new Error('invalid type')
28668 * Converts a `Buffer` to a `Number`
28669 * @param {Buffer} buf
28671 * @throws If the input number exceeds
53 bits.
28673 exports.bufferToInt = function (buf) {
28674 return new BN(exports.toBuffer(buf)).toNumber()
28678 * Converts a `Buffer` into a hex `String`
28679 * @param {Buffer} buf
28682 exports.bufferToHex = function (buf) {
28683 buf = exports.toBuffer(buf)
28684 return '
0x' + buf.toString('hex')
28688 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28689 * @param {Buffer} num
28692 exports.fromSigned = function (num) {
28693 return new BN(num).fromTwos(
256)
28697 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28701 exports.toUnsigned = function (num) {
28702 return Buffer.from(num.toTwos(
256).toArray())
28706 * Creates SHA-
3 hash of the input
28707 * @param {Buffer|Array|String|Number} a the input data
28708 * @param {Number} [bits=
256] the SHA width
28711 exports.sha3 = function (a, bits) {
28712 a = exports.toBuffer(a)
28713 if (!bits) bits =
256
28715 return createKeccakHash('keccak' + bits).update(a).digest()
28719 * Creates SHA256 hash of the input
28720 * @param {Buffer|Array|String|Number} a the input data
28723 exports.sha256 = function (a) {
28724 a = exports.toBuffer(a)
28725 return createHash('sha256').update(a).digest()
28729 * Creates RIPEMD160 hash of the input
28730 * @param {Buffer|Array|String|Number} a the input data
28731 * @param {Boolean} padded whether it should be padded to
256 bits or not
28734 exports.ripemd160 = function (a, padded) {
28735 a = exports.toBuffer(a)
28736 var hash = createHash('rmd160').update(a).digest()
28737 if (padded === true) {
28738 return exports.setLength(hash,
32)
28745 * Creates SHA-
3 hash of the RLP encoded version of the input
28746 * @param {Buffer|Array|String|Number} a the input data
28749 exports.rlphash = function (a) {
28750 return exports.sha3(rlp.encode(a))
28754 * Checks if the private key satisfies the rules of the curve secp256k1.
28755 * @param {Buffer} privateKey
28756 * @return {Boolean}
28758 exports.isValidPrivate = function (privateKey) {
28759 return secp256k1.privateKeyVerify(privateKey)
28763 * Checks if the public key satisfies the rules of the curve secp256k1
28764 * and the requirements of Ethereum.
28765 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28766 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28767 * @return {Boolean}
28769 exports.isValidPublic = function (publicKey, sanitize) {
28770 if (publicKey.length ===
64) {
28771 // Convert to SEC1 for secp256k1
28772 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28779 return secp256k1.publicKeyVerify(publicKey)
28783 * Returns the ethereum address of a given public key.
28784 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28785 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28786 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28789 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28790 pubKey = exports.toBuffer(pubKey)
28791 if (sanitize && (pubKey.length !==
64)) {
28792 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28794 assert(pubKey.length ===
64)
28795 // Only take the lower
160bits of the hash
28796 return exports.sha3(pubKey).slice(-
20)
28800 * Returns the ethereum public key of a given private key
28801 * @param {Buffer} privateKey A private key must be
256 bits wide
28804 var privateToPublic = exports.privateToPublic = function (privateKey) {
28805 privateKey = exports.toBuffer(privateKey)
28806 // skip the type flag and use the X, Y points
28807 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28811 * Converts a public key to the Ethereum format.
28812 * @param {Buffer} publicKey
28815 exports.importPublic = function (publicKey) {
28816 publicKey = exports.toBuffer(publicKey)
28817 if (publicKey.length !==
64) {
28818 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28825 * @param {Buffer} msgHash
28826 * @param {Buffer} privateKey
28829 exports.ecsign = function (msgHash, privateKey) {
28830 var sig = secp256k1.sign(msgHash, privateKey)
28833 ret.r = sig.signature.slice(
0,
32)
28834 ret.s = sig.signature.slice(
32,
64)
28835 ret.v = sig.recovery +
27
28840 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28841 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28842 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28843 * used to produce the signature.
28845 * @returns {Buffer} hash
28847 exports.hashPersonalMessage = function (message) {
28848 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28849 return exports.sha3(Buffer.concat([prefix, message]))
28853 * ECDSA public key recovery from signature
28854 * @param {Buffer} msgHash
28855 * @param {Number} v
28856 * @param {Buffer} r
28857 * @param {Buffer} s
28858 * @return {Buffer} publicKey
28860 exports.ecrecover = function (msgHash, v, r, s) {
28861 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28862 var recovery = v -
27
28863 if (recovery !==
0 && recovery !==
1) {
28864 throw new Error('Invalid signature v value')
28866 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28867 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28871 * Convert signature parameters into the format of `eth_sign` RPC method
28872 * @param {Number} v
28873 * @param {Buffer} r
28874 * @param {Buffer} s
28875 * @return {String} sig
28877 exports.toRpcSig = function (v, r, s) {
28878 // NOTE: with potential introduction of chainId this might need to be updated
28879 if (v !==
27 && v !==
28) {
28880 throw new Error('Invalid recovery id')
28883 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28884 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28885 return exports.bufferToHex(Buffer.concat([
28886 exports.setLengthLeft(r,
32),
28887 exports.setLengthLeft(s,
32),
28888 exports.toBuffer(v -
27)
28893 * Convert signature format of the `eth_sign` RPC method to signature parameters
28894 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28895 * @param {String} sig
28898 exports.fromRpcSig = function (sig) {
28899 sig = exports.toBuffer(sig)
28901 // NOTE: with potential introduction of chainId this might need to be updated
28902 if (sig.length !==
65) {
28903 throw new Error('Invalid signature length')
28907 // support both versions of `eth_sign` responses
28914 r: sig.slice(
0,
32),
28915 s: sig.slice(
32,
64)
28920 * Returns the ethereum address of a given private key
28921 * @param {Buffer} privateKey A private key must be
256 bits wide
28924 exports.privateToAddress = function (privateKey) {
28925 return exports.publicToAddress(privateToPublic(privateKey))
28929 * Checks if the address is a valid. Accepts checksummed addresses too
28930 * @param {String} address
28931 * @return {Boolean}
28933 exports.isValidAddress = function (address) {
28934 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28938 * Returns a checksummed address
28939 * @param {String} address
28942 exports.toChecksumAddress = function (address) {
28943 address = exports.stripHexPrefix(address).toLowerCase()
28944 var hash = exports.sha3(address).toString('hex')
28947 for (var i =
0; i < address.length; i++) {
28948 if (parseInt(hash[i],
16)
>=
8) {
28949 ret += address[i].toUpperCase()
28959 * Checks if the address is a valid checksummed address
28960 * @param {Buffer} address
28961 * @return {Boolean}
28963 exports.isValidChecksumAddress = function (address) {
28964 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28968 * Generates an address of a newly created contract
28969 * @param {Buffer} from the address which is creating this new address
28970 * @param {Buffer} nonce the nonce of the from account
28973 exports.generateAddress = function (from, nonce) {
28974 from = exports.toBuffer(from)
28975 nonce = new BN(nonce)
28977 if (nonce.isZero()) {
28978 // in RLP we want to encode null in the case of zero nonce
28979 // read the RLP documentation for an answer if you dare
28982 nonce = Buffer.from(nonce.toArray())
28985 // Only take the lower
160bits of the hash
28986 return exports.rlphash([from, nonce]).slice(-
20)
28990 * Returns true if the supplied address belongs to a precompiled account
28991 * @param {Buffer|String} address
28992 * @return {Boolean}
28994 exports.isPrecompiled = function (address) {
28995 var a = exports.unpad(address)
28996 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
29000 * Adds
"0x" to a given `String` if it does not already start with
"0x"
29001 * @param {String} str
29004 exports.addHexPrefix = function (str) {
29005 if (typeof str !== 'string') {
29009 return exports.isHexPrefixed(str) ? str : '
0x' + str
29013 * Validate ECDSA signature
29014 * @method isValidSignature
29015 * @param {Buffer} v
29016 * @param {Buffer} r
29017 * @param {Buffer} s
29018 * @param {Boolean} [homestead=true]
29019 * @return {Boolean}
29022 exports.isValidSignature = function (v, r, s, homestead) {
29023 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
29024 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
29026 if (r.length !==
32 || s.length !==
32) {
29030 if (v !==
27 && v !==
28) {
29037 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
29041 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
29049 * Converts a `Buffer` or `Array` to JSON
29050 * @param {Buffer|Array} ba
29051 * @return {Array|String|null}
29053 exports.baToJSON = function (ba) {
29054 if (Buffer.isBuffer(ba)) {
29055 return '
0x' + ba.toString('hex')
29056 } else if (ba instanceof Array) {
29058 for (var i =
0; i < ba.length; i++) {
29059 array.push(exports.baToJSON(ba[i]))
29066 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29067 * @param {Object} self the `Object` to define properties on
29068 * @param {Array} fields an array fields to define. Fields can contain:
29069 * * `name` - the name of the properties
29070 * * `length` - the number of bytes the field can have
29071 * * `allowLess` - if the field can be less than the length
29073 * @param {*} data data to be validated against the definitions
29075 exports.defineProperties = function (self, fields, data) {
29079 // attach the `toJSON`
29080 self.toJSON = function (label) {
29083 self._fields.forEach(function (field) {
29084 obj[field] = '
0x' + self[field].toString('hex')
29088 return exports.baToJSON(this.raw)
29091 self.serialize = function serialize () {
29092 return rlp.encode(self.raw)
29095 fields.forEach(function (field, i) {
29096 self._fields.push(field.name)
29097 function getter () {
29100 function setter (v) {
29101 v = exports.toBuffer(v)
29103 if (v.toString('hex') === '
00' && !field.allowZero) {
29104 v = Buffer.allocUnsafe(
0)
29107 if (field.allowLess && field.length) {
29108 v = exports.stripZeros(v)
29109 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29110 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29111 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29117 Object.defineProperty(self, field.name, {
29119 configurable: true,
29124 if (field.default) {
29125 self[field.name] = field.default
29130 Object.defineProperty(self, field.alias, {
29132 configurable: true,
29139 // if the constuctor is passed data
29141 if (typeof data === 'string') {
29142 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29145 if (Buffer.isBuffer(data)) {
29146 data = rlp.decode(data)
29149 if (Array.isArray(data)) {
29150 if (data.length
> self._fields.length) {
29151 throw (new Error('wrong number of fields in data'))
29154 // make sure all the items are buffers
29155 data.forEach(function (d, i) {
29156 self[self._fields[i]] = exports.toBuffer(d)
29158 } else if (typeof data === 'object') {
29159 const keys = Object.keys(data)
29160 fields.forEach(function (field) {
29161 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29162 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29165 throw new Error('invalid data')
29170 }).call(this,require("buffer").Buffer)
29171 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29172 (function (Buffer){
29173 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29174 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29175 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29177 function check (buffer) {
29178 if (buffer.length <
8) return false
29179 if (buffer.length
> 72) return false
29180 if (buffer[
0] !==
0x30) return false
29181 if (buffer[
1] !== buffer.length -
2) return false
29182 if (buffer[
2] !==
0x02) return false
29184 var lenR = buffer[
3]
29185 if (lenR ===
0) return false
29186 if (
5 + lenR
>= buffer.length) return false
29187 if (buffer[
4 + lenR] !==
0x02) return false
29189 var lenS = buffer[
5 + lenR]
29190 if (lenS ===
0) return false
29191 if ((
6 + lenR + lenS) !== buffer.length) return false
29193 if (buffer[
4] &
0x80) return false
29194 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29196 if (buffer[lenR +
6] &
0x80) return false
29197 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29201 function decode (buffer) {
29202 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29203 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29204 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29205 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29206 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29208 var lenR = buffer[
3]
29209 if (lenR ===
0) throw new Error('R length is zero')
29210 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29211 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29213 var lenS = buffer[
5 + lenR]
29214 if (lenS ===
0) throw new Error('S length is zero')
29215 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29217 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29218 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29220 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29221 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29223 // non-BIP66 - extract R, S values
29225 r: buffer.slice(
4,
4 + lenR),
29226 s: buffer.slice(
6 + lenR)
29231 * Expects r and s to be positive DER integers.
29233 * The DER format uses the most significant bit as a sign bit (&
0x80).
29234 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29249 *
62300 =
> 0x00f35c
29250 * -
62300 =
> 0xff0ca4
29252 function encode (r, s) {
29253 var lenR = r.length
29254 var lenS = s.length
29255 if (lenR ===
0) throw new Error('R length is zero')
29256 if (lenS ===
0) throw new Error('S length is zero')
29257 if (lenR
> 33) throw new Error('R length is too long')
29258 if (lenS
> 33) throw new Error('S length is too long')
29259 if (r[
0] &
0x80) throw new Error('R value is negative')
29260 if (s[
0] &
0x80) throw new Error('S value is negative')
29261 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29262 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29264 var signature = new Buffer(
6 + lenR + lenS)
29266 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29267 signature[
0] =
0x30
29268 signature[
1] = signature.length -
2
29269 signature[
2] =
0x02
29270 signature[
3] = r.length
29271 r.copy(signature,
4)
29272 signature[
4 + lenR] =
0x02
29273 signature[
5 + lenR] = s.length
29274 s.copy(signature,
6 + lenR)
29285 }).call(this,require(
"buffer").Buffer)
29286 },{
"buffer":
5}],
33:[function(require,module,exports){
29287 (function (module, exports) {
29291 function assert (val, msg) {
29292 if (!val) throw new Error(msg || 'Assertion failed');
29295 // Could use `inherits` module, but don't want to move from single file
29296 // architecture yet.
29297 function inherits (ctor, superCtor) {
29298 ctor.super_ = superCtor;
29299 var TempCtor = function () {};
29300 TempCtor.prototype = superCtor.prototype;
29301 ctor.prototype = new TempCtor();
29302 ctor.prototype.constructor = ctor;
29307 function BN (number, base, endian) {
29308 if (BN.isBN(number)) {
29316 // Reduction context
29319 if (number !== null) {
29320 if (base === 'le' || base === 'be') {
29325 this._init(number ||
0, base ||
10, endian || 'be');
29328 if (typeof module === 'object') {
29329 module.exports = BN;
29339 Buffer = require('buf' + 'fer').Buffer;
29343 BN.isBN = function isBN (num) {
29344 if (num instanceof BN) {
29348 return num !== null && typeof num === 'object' &&
29349 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29352 BN.max = function max (left, right) {
29353 if (left.cmp(right)
> 0) return left;
29357 BN.min = function min (left, right) {
29358 if (left.cmp(right) <
0) return left;
29362 BN.prototype._init = function init (number, base, endian) {
29363 if (typeof number === 'number') {
29364 return this._initNumber(number, base, endian);
29367 if (typeof number === 'object') {
29368 return this._initArray(number, base, endian);
29371 if (base === 'hex') {
29374 assert(base === (base |
0) && base
>=
2 && base <=
36);
29376 number = number.toString().replace(/\s+/g, '');
29378 if (number[
0] === '-') {
29383 this._parseHex(number, start);
29385 this._parseBase(number, base, start);
29388 if (number[
0] === '-') {
29394 if (endian !== 'le') return;
29396 this._initArray(this.toArray(), base, endian);
29399 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29404 if (number <
0x4000000) {
29405 this.words = [ number &
0x3ffffff ];
29407 } else if (number <
0x10000000000000) {
29409 number &
0x3ffffff,
29410 (number /
0x4000000) &
0x3ffffff
29414 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29416 number &
0x3ffffff,
29417 (number /
0x4000000) &
0x3ffffff,
29423 if (endian !== 'le') return;
29425 // Reverse the bytes
29426 this._initArray(this.toArray(), base, endian);
29429 BN.prototype._initArray = function _initArray (number, base, endian) {
29430 // Perhaps a Uint8Array
29431 assert(typeof number.length === 'number');
29432 if (number.length <=
0) {
29433 this.words = [
0 ];
29438 this.length = Math.ceil(number.length /
3);
29439 this.words = new Array(this.length);
29440 for (var i =
0; i < this.length; i++) {
29446 if (endian === 'be') {
29447 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29448 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29449 this.words[j] |= (w << off) &
0x3ffffff;
29450 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29457 } else if (endian === 'le') {
29458 for (i =
0, j =
0; i < number.length; i +=
3) {
29459 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29460 this.words[j] |= (w << off) &
0x3ffffff;
29461 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29469 return this.strip();
29472 function parseHex (str, start, end) {
29474 var len = Math.min(str.length, end);
29475 for (var i = start; i < len; i++) {
29476 var c = str.charCodeAt(i) -
48;
29481 if (c
>=
49 && c <=
54) {
29485 } else if (c
>=
17 && c <=
22) {
29496 BN.prototype._parseHex = function _parseHex (number, start) {
29497 // Create possibly bigger array to ensure that it fits the number
29498 this.length = Math.ceil((number.length - start) /
6);
29499 this.words = new Array(this.length);
29500 for (var i =
0; i < this.length; i++) {
29505 // Scan
24-bit chunks and add them to the number
29507 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29508 w = parseHex(number, i, i +
6);
29509 this.words[j] |= (w << off) &
0x3ffffff;
29510 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29511 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29518 if (i +
6 !== start) {
29519 w = parseHex(number, start, i +
6);
29520 this.words[j] |= (w << off) &
0x3ffffff;
29521 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29526 function parseBase (str, start, end, mul) {
29528 var len = Math.min(str.length, end);
29529 for (var i = start; i < len; i++) {
29530 var c = str.charCodeAt(i) -
48;
29539 } else if (c
>=
17) {
29550 BN.prototype._parseBase = function _parseBase (number, base, start) {
29551 // Initialize as zero
29552 this.words = [
0 ];
29555 // Find length of limb in base
29556 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29560 limbPow = (limbPow / base) |
0;
29562 var total = number.length - start;
29563 var mod = total % limbLen;
29564 var end = Math.min(total, total - mod) + start;
29567 for (var i = start; i < end; i += limbLen) {
29568 word = parseBase(number, i, i + limbLen, base);
29570 this.imuln(limbPow);
29571 if (this.words[
0] + word <
0x4000000) {
29572 this.words[
0] += word;
29580 word = parseBase(number, i, number.length, base);
29582 for (i =
0; i < mod; i++) {
29587 if (this.words[
0] + word <
0x4000000) {
29588 this.words[
0] += word;
29595 BN.prototype.copy = function copy (dest) {
29596 dest.words = new Array(this.length);
29597 for (var i =
0; i < this.length; i++) {
29598 dest.words[i] = this.words[i];
29600 dest.length = this.length;
29601 dest.negative = this.negative;
29602 dest.red = this.red;
29605 BN.prototype.clone = function clone () {
29606 var r = new BN(null);
29611 BN.prototype._expand = function _expand (size) {
29612 while (this.length < size) {
29613 this.words[this.length++] =
0;
29618 // Remove leading `
0` from `this`
29619 BN.prototype.strip = function strip () {
29620 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29623 return this._normSign();
29626 BN.prototype._normSign = function _normSign () {
29628 if (this.length ===
1 && this.words[
0] ===
0) {
29634 BN.prototype.inspect = function inspect () {
29635 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29641 var groupSizes = [];
29642 var groupBases = [];
29646 while (++i < BN.wordSize) {
29655 while (++base <
36 +
1) {
29658 while (groupBase < (
1 << BN.wordSize) / base) {
29662 groupSizes[base] = groupSize;
29663 groupBases[base] = groupBase;
29685 '
0000000000000000',
29686 '
00000000000000000',
29687 '
000000000000000000',
29688 '
0000000000000000000',
29689 '
00000000000000000000',
29690 '
000000000000000000000',
29691 '
0000000000000000000000',
29692 '
00000000000000000000000',
29693 '
000000000000000000000000',
29694 '
0000000000000000000000000'
29699 25,
16,
12,
11,
10,
9,
8,
29700 8,
7,
7,
7,
7,
6,
6,
29701 6,
6,
6,
6,
6,
5,
5,
29702 5,
5,
5,
5,
5,
5,
5,
29703 5,
5,
5,
5,
5,
5,
5
29708 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29709 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29710 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29711 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29712 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29715 BN.prototype.toString = function toString (base, padding) {
29717 padding = padding |
0 ||
1;
29720 if (base ===
16 || base === 'hex') {
29724 for (var i =
0; i < this.length; i++) {
29725 var w = this.words[i];
29726 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29727 carry = (w
>>> (
24 - off)) &
0xffffff;
29728 if (carry !==
0 || i !== this.length -
1) {
29729 out = zeros[
6 - word.length] + word + out;
29740 out = carry.toString(
16) + out;
29742 while (out.length % padding !==
0) {
29745 if (this.negative !==
0) {
29751 if (base === (base |
0) && base
>=
2 && base <=
36) {
29752 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29753 var groupSize = groupSizes[base];
29754 // var groupBase = Math.pow(base, groupSize);
29755 var groupBase = groupBases[base];
29757 var c = this.clone();
29759 while (!c.isZero()) {
29760 var r = c.modn(groupBase).toString(base);
29761 c = c.idivn(groupBase);
29764 out = zeros[groupSize - r.length] + r + out;
29769 if (this.isZero()) {
29772 while (out.length % padding !==
0) {
29775 if (this.negative !==
0) {
29781 assert(false, 'Base should be between
2 and
36');
29784 BN.prototype.toNumber = function toNumber () {
29785 var ret = this.words[
0];
29786 if (this.length ===
2) {
29787 ret += this.words[
1] *
0x4000000;
29788 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29789 // NOTE: at this stage it is known that the top bit is set
29790 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29791 } else if (this.length
> 2) {
29792 assert(false, 'Number can only safely store up to
53 bits');
29794 return (this.negative !==
0) ? -ret : ret;
29797 BN.prototype.toJSON = function toJSON () {
29798 return this.toString(
16);
29801 BN.prototype.toBuffer = function toBuffer (endian, length) {
29802 assert(typeof Buffer !== 'undefined');
29803 return this.toArrayLike(Buffer, endian, length);
29806 BN.prototype.toArray = function toArray (endian, length) {
29807 return this.toArrayLike(Array, endian, length);
29810 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29811 var byteLength = this.byteLength();
29812 var reqLength = length || Math.max(
1, byteLength);
29813 assert(byteLength <= reqLength, 'byte array longer than desired length');
29814 assert(reqLength
> 0, 'Requested array length <=
0');
29817 var littleEndian = endian === 'le';
29818 var res = new ArrayType(reqLength);
29821 var q = this.clone();
29822 if (!littleEndian) {
29823 // Assume big-endian
29824 for (i =
0; i < reqLength - byteLength; i++) {
29828 for (i =
0; !q.isZero(); i++) {
29832 res[reqLength - i -
1] = b;
29835 for (i =
0; !q.isZero(); i++) {
29842 for (; i < reqLength; i++) {
29851 BN.prototype._countBits = function _countBits (w) {
29852 return
32 - Math.clz32(w);
29855 BN.prototype._countBits = function _countBits (w) {
29878 BN.prototype._zeroBits = function _zeroBits (w) {
29880 if (w ===
0) return
26;
29884 if ((t &
0x1fff) ===
0) {
29888 if ((t &
0x7f) ===
0) {
29892 if ((t &
0xf) ===
0) {
29896 if ((t &
0x3) ===
0) {
29900 if ((t &
0x1) ===
0) {
29906 // Return number of used bits in a BN
29907 BN.prototype.bitLength = function bitLength () {
29908 var w = this.words[this.length -
1];
29909 var hi = this._countBits(w);
29910 return (this.length -
1) *
26 + hi;
29913 function toBitArray (num) {
29914 var w = new Array(num.bitLength());
29916 for (var bit =
0; bit < w.length; bit++) {
29917 var off = (bit /
26) |
0;
29918 var wbit = bit %
26;
29920 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29926 // Number of trailing zero bits
29927 BN.prototype.zeroBits = function zeroBits () {
29928 if (this.isZero()) return
0;
29931 for (var i =
0; i < this.length; i++) {
29932 var b = this._zeroBits(this.words[i]);
29934 if (b !==
26) break;
29939 BN.prototype.byteLength = function byteLength () {
29940 return Math.ceil(this.bitLength() /
8);
29943 BN.prototype.toTwos = function toTwos (width) {
29944 if (this.negative !==
0) {
29945 return this.abs().inotn(width).iaddn(
1);
29947 return this.clone();
29950 BN.prototype.fromTwos = function fromTwos (width) {
29951 if (this.testn(width -
1)) {
29952 return this.notn(width).iaddn(
1).ineg();
29954 return this.clone();
29957 BN.prototype.isNeg = function isNeg () {
29958 return this.negative !==
0;
29961 // Return negative clone of `this`
29962 BN.prototype.neg = function neg () {
29963 return this.clone().ineg();
29966 BN.prototype.ineg = function ineg () {
29967 if (!this.isZero()) {
29968 this.negative ^=
1;
29974 // Or `num` with `this` in-place
29975 BN.prototype.iuor = function iuor (num) {
29976 while (this.length < num.length) {
29977 this.words[this.length++] =
0;
29980 for (var i =
0; i < num.length; i++) {
29981 this.words[i] = this.words[i] | num.words[i];
29984 return this.strip();
29987 BN.prototype.ior = function ior (num) {
29988 assert((this.negative | num.negative) ===
0);
29989 return this.iuor(num);
29992 // Or `num` with `this`
29993 BN.prototype.or = function or (num) {
29994 if (this.length
> num.length) return this.clone().ior(num);
29995 return num.clone().ior(this);
29998 BN.prototype.uor = function uor (num) {
29999 if (this.length
> num.length) return this.clone().iuor(num);
30000 return num.clone().iuor(this);
30003 // And `num` with `this` in-place
30004 BN.prototype.iuand = function iuand (num) {
30005 // b = min-length(num, this)
30007 if (this.length
> num.length) {
30013 for (var i =
0; i < b.length; i++) {
30014 this.words[i] = this.words[i] & num.words[i];
30017 this.length = b.length;
30019 return this.strip();
30022 BN.prototype.iand = function iand (num) {
30023 assert((this.negative | num.negative) ===
0);
30024 return this.iuand(num);
30027 // And `num` with `this`
30028 BN.prototype.and = function and (num) {
30029 if (this.length
> num.length) return this.clone().iand(num);
30030 return num.clone().iand(this);
30033 BN.prototype.uand = function uand (num) {
30034 if (this.length
> num.length) return this.clone().iuand(num);
30035 return num.clone().iuand(this);
30038 // Xor `num` with `this` in-place
30039 BN.prototype.iuxor = function iuxor (num) {
30040 // a.length
> b.length
30043 if (this.length
> num.length) {
30051 for (var i =
0; i < b.length; i++) {
30052 this.words[i] = a.words[i] ^ b.words[i];
30056 for (; i < a.length; i++) {
30057 this.words[i] = a.words[i];
30061 this.length = a.length;
30063 return this.strip();
30066 BN.prototype.ixor = function ixor (num) {
30067 assert((this.negative | num.negative) ===
0);
30068 return this.iuxor(num);
30071 // Xor `num` with `this`
30072 BN.prototype.xor = function xor (num) {
30073 if (this.length
> num.length) return this.clone().ixor(num);
30074 return num.clone().ixor(this);
30077 BN.prototype.uxor = function uxor (num) {
30078 if (this.length
> num.length) return this.clone().iuxor(num);
30079 return num.clone().iuxor(this);
30082 // Not ``this`` with ``width`` bitwidth
30083 BN.prototype.inotn = function inotn (width) {
30084 assert(typeof width === 'number' && width
>=
0);
30086 var bytesNeeded = Math.ceil(width /
26) |
0;
30087 var bitsLeft = width %
26;
30089 // Extend the buffer with leading zeroes
30090 this._expand(bytesNeeded);
30092 if (bitsLeft
> 0) {
30096 // Handle complete words
30097 for (var i =
0; i < bytesNeeded; i++) {
30098 this.words[i] = ~this.words[i] &
0x3ffffff;
30101 // Handle the residue
30102 if (bitsLeft
> 0) {
30103 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30106 // And remove leading zeroes
30107 return this.strip();
30110 BN.prototype.notn = function notn (width) {
30111 return this.clone().inotn(width);
30114 // Set `bit` of `this`
30115 BN.prototype.setn = function setn (bit, val) {
30116 assert(typeof bit === 'number' && bit
>=
0);
30118 var off = (bit /
26) |
0;
30119 var wbit = bit %
26;
30121 this._expand(off +
1);
30124 this.words[off] = this.words[off] | (
1 << wbit);
30126 this.words[off] = this.words[off] & ~(
1 << wbit);
30129 return this.strip();
30132 // Add `num` to `this` in-place
30133 BN.prototype.iadd = function iadd (num) {
30136 // negative + positive
30137 if (this.negative !==
0 && num.negative ===
0) {
30139 r = this.isub(num);
30140 this.negative ^=
1;
30141 return this._normSign();
30143 // positive + negative
30144 } else if (this.negative ===
0 && num.negative !==
0) {
30146 r = this.isub(num);
30148 return r._normSign();
30151 // a.length
> b.length
30153 if (this.length
> num.length) {
30162 for (var i =
0; i < b.length; i++) {
30163 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30164 this.words[i] = r &
0x3ffffff;
30167 for (; carry !==
0 && i < a.length; i++) {
30168 r = (a.words[i] |
0) + carry;
30169 this.words[i] = r &
0x3ffffff;
30173 this.length = a.length;
30175 this.words[this.length] = carry;
30177 // Copy the rest of the words
30178 } else if (a !== this) {
30179 for (; i < a.length; i++) {
30180 this.words[i] = a.words[i];
30187 // Add `num` to `this`
30188 BN.prototype.add = function add (num) {
30190 if (num.negative !==
0 && this.negative ===
0) {
30192 res = this.sub(num);
30195 } else if (num.negative ===
0 && this.negative !==
0) {
30197 res = num.sub(this);
30202 if (this.length
> num.length) return this.clone().iadd(num);
30204 return num.clone().iadd(this);
30207 // Subtract `num` from `this` in-place
30208 BN.prototype.isub = function isub (num) {
30209 // this - (-num) = this + num
30210 if (num.negative !==
0) {
30212 var r = this.iadd(num);
30214 return r._normSign();
30216 // -this - num = -(this + num)
30217 } else if (this.negative !==
0) {
30221 return this._normSign();
30224 // At this point both numbers are positive
30225 var cmp = this.cmp(num);
30227 // Optimization - zeroify
30246 for (var i =
0; i < b.length; i++) {
30247 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30249 this.words[i] = r &
0x3ffffff;
30251 for (; carry !==
0 && i < a.length; i++) {
30252 r = (a.words[i] |
0) + carry;
30254 this.words[i] = r &
0x3ffffff;
30257 // Copy rest of the words
30258 if (carry ===
0 && i < a.length && a !== this) {
30259 for (; i < a.length; i++) {
30260 this.words[i] = a.words[i];
30264 this.length = Math.max(this.length, i);
30270 return this.strip();
30273 // Subtract `num` from `this`
30274 BN.prototype.sub = function sub (num) {
30275 return this.clone().isub(num);
30278 function smallMulTo (self, num, out) {
30279 out.negative = num.negative ^ self.negative;
30280 var len = (self.length + num.length) |
0;
30282 len = (len -
1) |
0;
30284 // Peel one iteration (compiler can't do it, because of code complexity)
30285 var a = self.words[
0] |
0;
30286 var b = num.words[
0] |
0;
30289 var lo = r &
0x3ffffff;
30290 var carry = (r /
0x4000000) |
0;
30293 for (var k =
1; k < len; k++) {
30294 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30295 // note that ncarry could be
>=
0x3ffffff
30296 var ncarry = carry
>>> 26;
30297 var rword = carry &
0x3ffffff;
30298 var maxJ = Math.min(k, num.length -
1);
30299 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30300 var i = (k - j) |
0;
30301 a = self.words[i] |
0;
30302 b = num.words[j] |
0;
30304 ncarry += (r /
0x4000000) |
0;
30305 rword = r &
0x3ffffff;
30307 out.words[k] = rword |
0;
30308 carry = ncarry |
0;
30311 out.words[k] = carry |
0;
30316 return out.strip();
30319 // TODO(indutny): it may be reasonable to omit it for users who don't need
30320 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30321 // multiplication (like elliptic secp256k1).
30322 var comb10MulTo = function comb10MulTo (self, num, out) {
30323 var a = self.words;
30331 var al0 = a0 &
0x1fff;
30332 var ah0 = a0
>>> 13;
30334 var al1 = a1 &
0x1fff;
30335 var ah1 = a1
>>> 13;
30337 var al2 = a2 &
0x1fff;
30338 var ah2 = a2
>>> 13;
30340 var al3 = a3 &
0x1fff;
30341 var ah3 = a3
>>> 13;
30343 var al4 = a4 &
0x1fff;
30344 var ah4 = a4
>>> 13;
30346 var al5 = a5 &
0x1fff;
30347 var ah5 = a5
>>> 13;
30349 var al6 = a6 &
0x1fff;
30350 var ah6 = a6
>>> 13;
30352 var al7 = a7 &
0x1fff;
30353 var ah7 = a7
>>> 13;
30355 var al8 = a8 &
0x1fff;
30356 var ah8 = a8
>>> 13;
30358 var al9 = a9 &
0x1fff;
30359 var ah9 = a9
>>> 13;
30361 var bl0 = b0 &
0x1fff;
30362 var bh0 = b0
>>> 13;
30364 var bl1 = b1 &
0x1fff;
30365 var bh1 = b1
>>> 13;
30367 var bl2 = b2 &
0x1fff;
30368 var bh2 = b2
>>> 13;
30370 var bl3 = b3 &
0x1fff;
30371 var bh3 = b3
>>> 13;
30373 var bl4 = b4 &
0x1fff;
30374 var bh4 = b4
>>> 13;
30376 var bl5 = b5 &
0x1fff;
30377 var bh5 = b5
>>> 13;
30379 var bl6 = b6 &
0x1fff;
30380 var bh6 = b6
>>> 13;
30382 var bl7 = b7 &
0x1fff;
30383 var bh7 = b7
>>> 13;
30385 var bl8 = b8 &
0x1fff;
30386 var bh8 = b8
>>> 13;
30388 var bl9 = b9 &
0x1fff;
30389 var bh9 = b9
>>> 13;
30391 out.negative = self.negative ^ num.negative;
30394 lo = Math.imul(al0, bl0);
30395 mid = Math.imul(al0, bh0);
30396 mid = (mid + Math.imul(ah0, bl0)) |
0;
30397 hi = Math.imul(ah0, bh0);
30398 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30399 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30402 lo = Math.imul(al1, bl0);
30403 mid = Math.imul(al1, bh0);
30404 mid = (mid + Math.imul(ah1, bl0)) |
0;
30405 hi = Math.imul(ah1, bh0);
30406 lo = (lo + Math.imul(al0, bl1)) |
0;
30407 mid = (mid + Math.imul(al0, bh1)) |
0;
30408 mid = (mid + Math.imul(ah0, bl1)) |
0;
30409 hi = (hi + Math.imul(ah0, bh1)) |
0;
30410 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30411 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30414 lo = Math.imul(al2, bl0);
30415 mid = Math.imul(al2, bh0);
30416 mid = (mid + Math.imul(ah2, bl0)) |
0;
30417 hi = Math.imul(ah2, bh0);
30418 lo = (lo + Math.imul(al1, bl1)) |
0;
30419 mid = (mid + Math.imul(al1, bh1)) |
0;
30420 mid = (mid + Math.imul(ah1, bl1)) |
0;
30421 hi = (hi + Math.imul(ah1, bh1)) |
0;
30422 lo = (lo + Math.imul(al0, bl2)) |
0;
30423 mid = (mid + Math.imul(al0, bh2)) |
0;
30424 mid = (mid + Math.imul(ah0, bl2)) |
0;
30425 hi = (hi + Math.imul(ah0, bh2)) |
0;
30426 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30427 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30430 lo = Math.imul(al3, bl0);
30431 mid = Math.imul(al3, bh0);
30432 mid = (mid + Math.imul(ah3, bl0)) |
0;
30433 hi = Math.imul(ah3, bh0);
30434 lo = (lo + Math.imul(al2, bl1)) |
0;
30435 mid = (mid + Math.imul(al2, bh1)) |
0;
30436 mid = (mid + Math.imul(ah2, bl1)) |
0;
30437 hi = (hi + Math.imul(ah2, bh1)) |
0;
30438 lo = (lo + Math.imul(al1, bl2)) |
0;
30439 mid = (mid + Math.imul(al1, bh2)) |
0;
30440 mid = (mid + Math.imul(ah1, bl2)) |
0;
30441 hi = (hi + Math.imul(ah1, bh2)) |
0;
30442 lo = (lo + Math.imul(al0, bl3)) |
0;
30443 mid = (mid + Math.imul(al0, bh3)) |
0;
30444 mid = (mid + Math.imul(ah0, bl3)) |
0;
30445 hi = (hi + Math.imul(ah0, bh3)) |
0;
30446 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30447 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30450 lo = Math.imul(al4, bl0);
30451 mid = Math.imul(al4, bh0);
30452 mid = (mid + Math.imul(ah4, bl0)) |
0;
30453 hi = Math.imul(ah4, bh0);
30454 lo = (lo + Math.imul(al3, bl1)) |
0;
30455 mid = (mid + Math.imul(al3, bh1)) |
0;
30456 mid = (mid + Math.imul(ah3, bl1)) |
0;
30457 hi = (hi + Math.imul(ah3, bh1)) |
0;
30458 lo = (lo + Math.imul(al2, bl2)) |
0;
30459 mid = (mid + Math.imul(al2, bh2)) |
0;
30460 mid = (mid + Math.imul(ah2, bl2)) |
0;
30461 hi = (hi + Math.imul(ah2, bh2)) |
0;
30462 lo = (lo + Math.imul(al1, bl3)) |
0;
30463 mid = (mid + Math.imul(al1, bh3)) |
0;
30464 mid = (mid + Math.imul(ah1, bl3)) |
0;
30465 hi = (hi + Math.imul(ah1, bh3)) |
0;
30466 lo = (lo + Math.imul(al0, bl4)) |
0;
30467 mid = (mid + Math.imul(al0, bh4)) |
0;
30468 mid = (mid + Math.imul(ah0, bl4)) |
0;
30469 hi = (hi + Math.imul(ah0, bh4)) |
0;
30470 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30471 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30474 lo = Math.imul(al5, bl0);
30475 mid = Math.imul(al5, bh0);
30476 mid = (mid + Math.imul(ah5, bl0)) |
0;
30477 hi = Math.imul(ah5, bh0);
30478 lo = (lo + Math.imul(al4, bl1)) |
0;
30479 mid = (mid + Math.imul(al4, bh1)) |
0;
30480 mid = (mid + Math.imul(ah4, bl1)) |
0;
30481 hi = (hi + Math.imul(ah4, bh1)) |
0;
30482 lo = (lo + Math.imul(al3, bl2)) |
0;
30483 mid = (mid + Math.imul(al3, bh2)) |
0;
30484 mid = (mid + Math.imul(ah3, bl2)) |
0;
30485 hi = (hi + Math.imul(ah3, bh2)) |
0;
30486 lo = (lo + Math.imul(al2, bl3)) |
0;
30487 mid = (mid + Math.imul(al2, bh3)) |
0;
30488 mid = (mid + Math.imul(ah2, bl3)) |
0;
30489 hi = (hi + Math.imul(ah2, bh3)) |
0;
30490 lo = (lo + Math.imul(al1, bl4)) |
0;
30491 mid = (mid + Math.imul(al1, bh4)) |
0;
30492 mid = (mid + Math.imul(ah1, bl4)) |
0;
30493 hi = (hi + Math.imul(ah1, bh4)) |
0;
30494 lo = (lo + Math.imul(al0, bl5)) |
0;
30495 mid = (mid + Math.imul(al0, bh5)) |
0;
30496 mid = (mid + Math.imul(ah0, bl5)) |
0;
30497 hi = (hi + Math.imul(ah0, bh5)) |
0;
30498 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30499 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30502 lo = Math.imul(al6, bl0);
30503 mid = Math.imul(al6, bh0);
30504 mid = (mid + Math.imul(ah6, bl0)) |
0;
30505 hi = Math.imul(ah6, bh0);
30506 lo = (lo + Math.imul(al5, bl1)) |
0;
30507 mid = (mid + Math.imul(al5, bh1)) |
0;
30508 mid = (mid + Math.imul(ah5, bl1)) |
0;
30509 hi = (hi + Math.imul(ah5, bh1)) |
0;
30510 lo = (lo + Math.imul(al4, bl2)) |
0;
30511 mid = (mid + Math.imul(al4, bh2)) |
0;
30512 mid = (mid + Math.imul(ah4, bl2)) |
0;
30513 hi = (hi + Math.imul(ah4, bh2)) |
0;
30514 lo = (lo + Math.imul(al3, bl3)) |
0;
30515 mid = (mid + Math.imul(al3, bh3)) |
0;
30516 mid = (mid + Math.imul(ah3, bl3)) |
0;
30517 hi = (hi + Math.imul(ah3, bh3)) |
0;
30518 lo = (lo + Math.imul(al2, bl4)) |
0;
30519 mid = (mid + Math.imul(al2, bh4)) |
0;
30520 mid = (mid + Math.imul(ah2, bl4)) |
0;
30521 hi = (hi + Math.imul(ah2, bh4)) |
0;
30522 lo = (lo + Math.imul(al1, bl5)) |
0;
30523 mid = (mid + Math.imul(al1, bh5)) |
0;
30524 mid = (mid + Math.imul(ah1, bl5)) |
0;
30525 hi = (hi + Math.imul(ah1, bh5)) |
0;
30526 lo = (lo + Math.imul(al0, bl6)) |
0;
30527 mid = (mid + Math.imul(al0, bh6)) |
0;
30528 mid = (mid + Math.imul(ah0, bl6)) |
0;
30529 hi = (hi + Math.imul(ah0, bh6)) |
0;
30530 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30531 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30534 lo = Math.imul(al7, bl0);
30535 mid = Math.imul(al7, bh0);
30536 mid = (mid + Math.imul(ah7, bl0)) |
0;
30537 hi = Math.imul(ah7, bh0);
30538 lo = (lo + Math.imul(al6, bl1)) |
0;
30539 mid = (mid + Math.imul(al6, bh1)) |
0;
30540 mid = (mid + Math.imul(ah6, bl1)) |
0;
30541 hi = (hi + Math.imul(ah6, bh1)) |
0;
30542 lo = (lo + Math.imul(al5, bl2)) |
0;
30543 mid = (mid + Math.imul(al5, bh2)) |
0;
30544 mid = (mid + Math.imul(ah5, bl2)) |
0;
30545 hi = (hi + Math.imul(ah5, bh2)) |
0;
30546 lo = (lo + Math.imul(al4, bl3)) |
0;
30547 mid = (mid + Math.imul(al4, bh3)) |
0;
30548 mid = (mid + Math.imul(ah4, bl3)) |
0;
30549 hi = (hi + Math.imul(ah4, bh3)) |
0;
30550 lo = (lo + Math.imul(al3, bl4)) |
0;
30551 mid = (mid + Math.imul(al3, bh4)) |
0;
30552 mid = (mid + Math.imul(ah3, bl4)) |
0;
30553 hi = (hi + Math.imul(ah3, bh4)) |
0;
30554 lo = (lo + Math.imul(al2, bl5)) |
0;
30555 mid = (mid + Math.imul(al2, bh5)) |
0;
30556 mid = (mid + Math.imul(ah2, bl5)) |
0;
30557 hi = (hi + Math.imul(ah2, bh5)) |
0;
30558 lo = (lo + Math.imul(al1, bl6)) |
0;
30559 mid = (mid + Math.imul(al1, bh6)) |
0;
30560 mid = (mid + Math.imul(ah1, bl6)) |
0;
30561 hi = (hi + Math.imul(ah1, bh6)) |
0;
30562 lo = (lo + Math.imul(al0, bl7)) |
0;
30563 mid = (mid + Math.imul(al0, bh7)) |
0;
30564 mid = (mid + Math.imul(ah0, bl7)) |
0;
30565 hi = (hi + Math.imul(ah0, bh7)) |
0;
30566 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30567 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30570 lo = Math.imul(al8, bl0);
30571 mid = Math.imul(al8, bh0);
30572 mid = (mid + Math.imul(ah8, bl0)) |
0;
30573 hi = Math.imul(ah8, bh0);
30574 lo = (lo + Math.imul(al7, bl1)) |
0;
30575 mid = (mid + Math.imul(al7, bh1)) |
0;
30576 mid = (mid + Math.imul(ah7, bl1)) |
0;
30577 hi = (hi + Math.imul(ah7, bh1)) |
0;
30578 lo = (lo + Math.imul(al6, bl2)) |
0;
30579 mid = (mid + Math.imul(al6, bh2)) |
0;
30580 mid = (mid + Math.imul(ah6, bl2)) |
0;
30581 hi = (hi + Math.imul(ah6, bh2)) |
0;
30582 lo = (lo + Math.imul(al5, bl3)) |
0;
30583 mid = (mid + Math.imul(al5, bh3)) |
0;
30584 mid = (mid + Math.imul(ah5, bl3)) |
0;
30585 hi = (hi + Math.imul(ah5, bh3)) |
0;
30586 lo = (lo + Math.imul(al4, bl4)) |
0;
30587 mid = (mid + Math.imul(al4, bh4)) |
0;
30588 mid = (mid + Math.imul(ah4, bl4)) |
0;
30589 hi = (hi + Math.imul(ah4, bh4)) |
0;
30590 lo = (lo + Math.imul(al3, bl5)) |
0;
30591 mid = (mid + Math.imul(al3, bh5)) |
0;
30592 mid = (mid + Math.imul(ah3, bl5)) |
0;
30593 hi = (hi + Math.imul(ah3, bh5)) |
0;
30594 lo = (lo + Math.imul(al2, bl6)) |
0;
30595 mid = (mid + Math.imul(al2, bh6)) |
0;
30596 mid = (mid + Math.imul(ah2, bl6)) |
0;
30597 hi = (hi + Math.imul(ah2, bh6)) |
0;
30598 lo = (lo + Math.imul(al1, bl7)) |
0;
30599 mid = (mid + Math.imul(al1, bh7)) |
0;
30600 mid = (mid + Math.imul(ah1, bl7)) |
0;
30601 hi = (hi + Math.imul(ah1, bh7)) |
0;
30602 lo = (lo + Math.imul(al0, bl8)) |
0;
30603 mid = (mid + Math.imul(al0, bh8)) |
0;
30604 mid = (mid + Math.imul(ah0, bl8)) |
0;
30605 hi = (hi + Math.imul(ah0, bh8)) |
0;
30606 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30607 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30610 lo = Math.imul(al9, bl0);
30611 mid = Math.imul(al9, bh0);
30612 mid = (mid + Math.imul(ah9, bl0)) |
0;
30613 hi = Math.imul(ah9, bh0);
30614 lo = (lo + Math.imul(al8, bl1)) |
0;
30615 mid = (mid + Math.imul(al8, bh1)) |
0;
30616 mid = (mid + Math.imul(ah8, bl1)) |
0;
30617 hi = (hi + Math.imul(ah8, bh1)) |
0;
30618 lo = (lo + Math.imul(al7, bl2)) |
0;
30619 mid = (mid + Math.imul(al7, bh2)) |
0;
30620 mid = (mid + Math.imul(ah7, bl2)) |
0;
30621 hi = (hi + Math.imul(ah7, bh2)) |
0;
30622 lo = (lo + Math.imul(al6, bl3)) |
0;
30623 mid = (mid + Math.imul(al6, bh3)) |
0;
30624 mid = (mid + Math.imul(ah6, bl3)) |
0;
30625 hi = (hi + Math.imul(ah6, bh3)) |
0;
30626 lo = (lo + Math.imul(al5, bl4)) |
0;
30627 mid = (mid + Math.imul(al5, bh4)) |
0;
30628 mid = (mid + Math.imul(ah5, bl4)) |
0;
30629 hi = (hi + Math.imul(ah5, bh4)) |
0;
30630 lo = (lo + Math.imul(al4, bl5)) |
0;
30631 mid = (mid + Math.imul(al4, bh5)) |
0;
30632 mid = (mid + Math.imul(ah4, bl5)) |
0;
30633 hi = (hi + Math.imul(ah4, bh5)) |
0;
30634 lo = (lo + Math.imul(al3, bl6)) |
0;
30635 mid = (mid + Math.imul(al3, bh6)) |
0;
30636 mid = (mid + Math.imul(ah3, bl6)) |
0;
30637 hi = (hi + Math.imul(ah3, bh6)) |
0;
30638 lo = (lo + Math.imul(al2, bl7)) |
0;
30639 mid = (mid + Math.imul(al2, bh7)) |
0;
30640 mid = (mid + Math.imul(ah2, bl7)) |
0;
30641 hi = (hi + Math.imul(ah2, bh7)) |
0;
30642 lo = (lo + Math.imul(al1, bl8)) |
0;
30643 mid = (mid + Math.imul(al1, bh8)) |
0;
30644 mid = (mid + Math.imul(ah1, bl8)) |
0;
30645 hi = (hi + Math.imul(ah1, bh8)) |
0;
30646 lo = (lo + Math.imul(al0, bl9)) |
0;
30647 mid = (mid + Math.imul(al0, bh9)) |
0;
30648 mid = (mid + Math.imul(ah0, bl9)) |
0;
30649 hi = (hi + Math.imul(ah0, bh9)) |
0;
30650 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30651 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30654 lo = Math.imul(al9, bl1);
30655 mid = Math.imul(al9, bh1);
30656 mid = (mid + Math.imul(ah9, bl1)) |
0;
30657 hi = Math.imul(ah9, bh1);
30658 lo = (lo + Math.imul(al8, bl2)) |
0;
30659 mid = (mid + Math.imul(al8, bh2)) |
0;
30660 mid = (mid + Math.imul(ah8, bl2)) |
0;
30661 hi = (hi + Math.imul(ah8, bh2)) |
0;
30662 lo = (lo + Math.imul(al7, bl3)) |
0;
30663 mid = (mid + Math.imul(al7, bh3)) |
0;
30664 mid = (mid + Math.imul(ah7, bl3)) |
0;
30665 hi = (hi + Math.imul(ah7, bh3)) |
0;
30666 lo = (lo + Math.imul(al6, bl4)) |
0;
30667 mid = (mid + Math.imul(al6, bh4)) |
0;
30668 mid = (mid + Math.imul(ah6, bl4)) |
0;
30669 hi = (hi + Math.imul(ah6, bh4)) |
0;
30670 lo = (lo + Math.imul(al5, bl5)) |
0;
30671 mid = (mid + Math.imul(al5, bh5)) |
0;
30672 mid = (mid + Math.imul(ah5, bl5)) |
0;
30673 hi = (hi + Math.imul(ah5, bh5)) |
0;
30674 lo = (lo + Math.imul(al4, bl6)) |
0;
30675 mid = (mid + Math.imul(al4, bh6)) |
0;
30676 mid = (mid + Math.imul(ah4, bl6)) |
0;
30677 hi = (hi + Math.imul(ah4, bh6)) |
0;
30678 lo = (lo + Math.imul(al3, bl7)) |
0;
30679 mid = (mid + Math.imul(al3, bh7)) |
0;
30680 mid = (mid + Math.imul(ah3, bl7)) |
0;
30681 hi = (hi + Math.imul(ah3, bh7)) |
0;
30682 lo = (lo + Math.imul(al2, bl8)) |
0;
30683 mid = (mid + Math.imul(al2, bh8)) |
0;
30684 mid = (mid + Math.imul(ah2, bl8)) |
0;
30685 hi = (hi + Math.imul(ah2, bh8)) |
0;
30686 lo = (lo + Math.imul(al1, bl9)) |
0;
30687 mid = (mid + Math.imul(al1, bh9)) |
0;
30688 mid = (mid + Math.imul(ah1, bl9)) |
0;
30689 hi = (hi + Math.imul(ah1, bh9)) |
0;
30690 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30691 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30694 lo = Math.imul(al9, bl2);
30695 mid = Math.imul(al9, bh2);
30696 mid = (mid + Math.imul(ah9, bl2)) |
0;
30697 hi = Math.imul(ah9, bh2);
30698 lo = (lo + Math.imul(al8, bl3)) |
0;
30699 mid = (mid + Math.imul(al8, bh3)) |
0;
30700 mid = (mid + Math.imul(ah8, bl3)) |
0;
30701 hi = (hi + Math.imul(ah8, bh3)) |
0;
30702 lo = (lo + Math.imul(al7, bl4)) |
0;
30703 mid = (mid + Math.imul(al7, bh4)) |
0;
30704 mid = (mid + Math.imul(ah7, bl4)) |
0;
30705 hi = (hi + Math.imul(ah7, bh4)) |
0;
30706 lo = (lo + Math.imul(al6, bl5)) |
0;
30707 mid = (mid + Math.imul(al6, bh5)) |
0;
30708 mid = (mid + Math.imul(ah6, bl5)) |
0;
30709 hi = (hi + Math.imul(ah6, bh5)) |
0;
30710 lo = (lo + Math.imul(al5, bl6)) |
0;
30711 mid = (mid + Math.imul(al5, bh6)) |
0;
30712 mid = (mid + Math.imul(ah5, bl6)) |
0;
30713 hi = (hi + Math.imul(ah5, bh6)) |
0;
30714 lo = (lo + Math.imul(al4, bl7)) |
0;
30715 mid = (mid + Math.imul(al4, bh7)) |
0;
30716 mid = (mid + Math.imul(ah4, bl7)) |
0;
30717 hi = (hi + Math.imul(ah4, bh7)) |
0;
30718 lo = (lo + Math.imul(al3, bl8)) |
0;
30719 mid = (mid + Math.imul(al3, bh8)) |
0;
30720 mid = (mid + Math.imul(ah3, bl8)) |
0;
30721 hi = (hi + Math.imul(ah3, bh8)) |
0;
30722 lo = (lo + Math.imul(al2, bl9)) |
0;
30723 mid = (mid + Math.imul(al2, bh9)) |
0;
30724 mid = (mid + Math.imul(ah2, bl9)) |
0;
30725 hi = (hi + Math.imul(ah2, bh9)) |
0;
30726 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30727 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30730 lo = Math.imul(al9, bl3);
30731 mid = Math.imul(al9, bh3);
30732 mid = (mid + Math.imul(ah9, bl3)) |
0;
30733 hi = Math.imul(ah9, bh3);
30734 lo = (lo + Math.imul(al8, bl4)) |
0;
30735 mid = (mid + Math.imul(al8, bh4)) |
0;
30736 mid = (mid + Math.imul(ah8, bl4)) |
0;
30737 hi = (hi + Math.imul(ah8, bh4)) |
0;
30738 lo = (lo + Math.imul(al7, bl5)) |
0;
30739 mid = (mid + Math.imul(al7, bh5)) |
0;
30740 mid = (mid + Math.imul(ah7, bl5)) |
0;
30741 hi = (hi + Math.imul(ah7, bh5)) |
0;
30742 lo = (lo + Math.imul(al6, bl6)) |
0;
30743 mid = (mid + Math.imul(al6, bh6)) |
0;
30744 mid = (mid + Math.imul(ah6, bl6)) |
0;
30745 hi = (hi + Math.imul(ah6, bh6)) |
0;
30746 lo = (lo + Math.imul(al5, bl7)) |
0;
30747 mid = (mid + Math.imul(al5, bh7)) |
0;
30748 mid = (mid + Math.imul(ah5, bl7)) |
0;
30749 hi = (hi + Math.imul(ah5, bh7)) |
0;
30750 lo = (lo + Math.imul(al4, bl8)) |
0;
30751 mid = (mid + Math.imul(al4, bh8)) |
0;
30752 mid = (mid + Math.imul(ah4, bl8)) |
0;
30753 hi = (hi + Math.imul(ah4, bh8)) |
0;
30754 lo = (lo + Math.imul(al3, bl9)) |
0;
30755 mid = (mid + Math.imul(al3, bh9)) |
0;
30756 mid = (mid + Math.imul(ah3, bl9)) |
0;
30757 hi = (hi + Math.imul(ah3, bh9)) |
0;
30758 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30759 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30762 lo = Math.imul(al9, bl4);
30763 mid = Math.imul(al9, bh4);
30764 mid = (mid + Math.imul(ah9, bl4)) |
0;
30765 hi = Math.imul(ah9, bh4);
30766 lo = (lo + Math.imul(al8, bl5)) |
0;
30767 mid = (mid + Math.imul(al8, bh5)) |
0;
30768 mid = (mid + Math.imul(ah8, bl5)) |
0;
30769 hi = (hi + Math.imul(ah8, bh5)) |
0;
30770 lo = (lo + Math.imul(al7, bl6)) |
0;
30771 mid = (mid + Math.imul(al7, bh6)) |
0;
30772 mid = (mid + Math.imul(ah7, bl6)) |
0;
30773 hi = (hi + Math.imul(ah7, bh6)) |
0;
30774 lo = (lo + Math.imul(al6, bl7)) |
0;
30775 mid = (mid + Math.imul(al6, bh7)) |
0;
30776 mid = (mid + Math.imul(ah6, bl7)) |
0;
30777 hi = (hi + Math.imul(ah6, bh7)) |
0;
30778 lo = (lo + Math.imul(al5, bl8)) |
0;
30779 mid = (mid + Math.imul(al5, bh8)) |
0;
30780 mid = (mid + Math.imul(ah5, bl8)) |
0;
30781 hi = (hi + Math.imul(ah5, bh8)) |
0;
30782 lo = (lo + Math.imul(al4, bl9)) |
0;
30783 mid = (mid + Math.imul(al4, bh9)) |
0;
30784 mid = (mid + Math.imul(ah4, bl9)) |
0;
30785 hi = (hi + Math.imul(ah4, bh9)) |
0;
30786 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30787 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30790 lo = Math.imul(al9, bl5);
30791 mid = Math.imul(al9, bh5);
30792 mid = (mid + Math.imul(ah9, bl5)) |
0;
30793 hi = Math.imul(ah9, bh5);
30794 lo = (lo + Math.imul(al8, bl6)) |
0;
30795 mid = (mid + Math.imul(al8, bh6)) |
0;
30796 mid = (mid + Math.imul(ah8, bl6)) |
0;
30797 hi = (hi + Math.imul(ah8, bh6)) |
0;
30798 lo = (lo + Math.imul(al7, bl7)) |
0;
30799 mid = (mid + Math.imul(al7, bh7)) |
0;
30800 mid = (mid + Math.imul(ah7, bl7)) |
0;
30801 hi = (hi + Math.imul(ah7, bh7)) |
0;
30802 lo = (lo + Math.imul(al6, bl8)) |
0;
30803 mid = (mid + Math.imul(al6, bh8)) |
0;
30804 mid = (mid + Math.imul(ah6, bl8)) |
0;
30805 hi = (hi + Math.imul(ah6, bh8)) |
0;
30806 lo = (lo + Math.imul(al5, bl9)) |
0;
30807 mid = (mid + Math.imul(al5, bh9)) |
0;
30808 mid = (mid + Math.imul(ah5, bl9)) |
0;
30809 hi = (hi + Math.imul(ah5, bh9)) |
0;
30810 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30811 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30814 lo = Math.imul(al9, bl6);
30815 mid = Math.imul(al9, bh6);
30816 mid = (mid + Math.imul(ah9, bl6)) |
0;
30817 hi = Math.imul(ah9, bh6);
30818 lo = (lo + Math.imul(al8, bl7)) |
0;
30819 mid = (mid + Math.imul(al8, bh7)) |
0;
30820 mid = (mid + Math.imul(ah8, bl7)) |
0;
30821 hi = (hi + Math.imul(ah8, bh7)) |
0;
30822 lo = (lo + Math.imul(al7, bl8)) |
0;
30823 mid = (mid + Math.imul(al7, bh8)) |
0;
30824 mid = (mid + Math.imul(ah7, bl8)) |
0;
30825 hi = (hi + Math.imul(ah7, bh8)) |
0;
30826 lo = (lo + Math.imul(al6, bl9)) |
0;
30827 mid = (mid + Math.imul(al6, bh9)) |
0;
30828 mid = (mid + Math.imul(ah6, bl9)) |
0;
30829 hi = (hi + Math.imul(ah6, bh9)) |
0;
30830 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30831 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30834 lo = Math.imul(al9, bl7);
30835 mid = Math.imul(al9, bh7);
30836 mid = (mid + Math.imul(ah9, bl7)) |
0;
30837 hi = Math.imul(ah9, bh7);
30838 lo = (lo + Math.imul(al8, bl8)) |
0;
30839 mid = (mid + Math.imul(al8, bh8)) |
0;
30840 mid = (mid + Math.imul(ah8, bl8)) |
0;
30841 hi = (hi + Math.imul(ah8, bh8)) |
0;
30842 lo = (lo + Math.imul(al7, bl9)) |
0;
30843 mid = (mid + Math.imul(al7, bh9)) |
0;
30844 mid = (mid + Math.imul(ah7, bl9)) |
0;
30845 hi = (hi + Math.imul(ah7, bh9)) |
0;
30846 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30847 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30850 lo = Math.imul(al9, bl8);
30851 mid = Math.imul(al9, bh8);
30852 mid = (mid + Math.imul(ah9, bl8)) |
0;
30853 hi = Math.imul(ah9, bh8);
30854 lo = (lo + Math.imul(al8, bl9)) |
0;
30855 mid = (mid + Math.imul(al8, bh9)) |
0;
30856 mid = (mid + Math.imul(ah8, bl9)) |
0;
30857 hi = (hi + Math.imul(ah8, bh9)) |
0;
30858 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30859 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30862 lo = Math.imul(al9, bl9);
30863 mid = Math.imul(al9, bh9);
30864 mid = (mid + Math.imul(ah9, bl9)) |
0;
30865 hi = Math.imul(ah9, bh9);
30866 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30867 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30897 comb10MulTo = smallMulTo;
30900 function bigMulTo (self, num, out) {
30901 out.negative = num.negative ^ self.negative;
30902 out.length = self.length + num.length;
30906 for (var k =
0; k < out.length -
1; k++) {
30907 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30908 // note that ncarry could be
>=
0x3ffffff
30909 var ncarry = hncarry;
30911 var rword = carry &
0x3ffffff;
30912 var maxJ = Math.min(k, num.length -
1);
30913 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30915 var a = self.words[i] |
0;
30916 var b = num.words[j] |
0;
30919 var lo = r &
0x3ffffff;
30920 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30921 lo = (lo + rword) |
0;
30922 rword = lo &
0x3ffffff;
30923 ncarry = (ncarry + (lo
>>> 26)) |
0;
30925 hncarry += ncarry
>>> 26;
30926 ncarry &=
0x3ffffff;
30928 out.words[k] = rword;
30933 out.words[k] = carry;
30938 return out.strip();
30941 function jumboMulTo (self, num, out) {
30942 var fftm = new FFTM();
30943 return fftm.mulp(self, num, out);
30946 BN.prototype.mulTo = function mulTo (num, out) {
30948 var len = this.length + num.length;
30949 if (this.length ===
10 && num.length ===
10) {
30950 res = comb10MulTo(this, num, out);
30951 } else if (len <
63) {
30952 res = smallMulTo(this, num, out);
30953 } else if (len <
1024) {
30954 res = bigMulTo(this, num, out);
30956 res = jumboMulTo(this, num, out);
30962 // Cooley-Tukey algorithm for FFT
30963 // slightly revisited to rely on looping instead of recursion
30965 function FFTM (x, y) {
30970 FFTM.prototype.makeRBT = function makeRBT (N) {
30971 var t = new Array(N);
30972 var l = BN.prototype._countBits(N) -
1;
30973 for (var i =
0; i < N; i++) {
30974 t[i] = this.revBin(i, l, N);
30980 // Returns binary-reversed representation of `x`
30981 FFTM.prototype.revBin = function revBin (x, l, N) {
30982 if (x ===
0 || x === N -
1) return x;
30985 for (var i =
0; i < l; i++) {
30986 rb |= (x &
1) << (l - i -
1);
30993 // Performs "tweedling" phase, therefore 'emulating'
30994 // behaviour of the recursive algorithm
30995 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
30996 for (var i =
0; i < N; i++) {
30997 rtws[i] = rws[rbt[i]];
30998 itws[i] = iws[rbt[i]];
31002 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
31003 this.permute(rbt, rws, iws, rtws, itws, N);
31005 for (var s =
1; s < N; s <<=
1) {
31008 var rtwdf = Math.cos(
2 * Math.PI / l);
31009 var itwdf = Math.sin(
2 * Math.PI / l);
31011 for (var p =
0; p < N; p += l) {
31012 var rtwdf_ = rtwdf;
31013 var itwdf_ = itwdf;
31015 for (var j =
0; j < s; j++) {
31016 var re = rtws[p + j];
31017 var ie = itws[p + j];
31019 var ro = rtws[p + j + s];
31020 var io = itws[p + j + s];
31022 var rx = rtwdf_ * ro - itwdf_ * io;
31024 io = rtwdf_ * io + itwdf_ * ro;
31027 rtws[p + j] = re + ro;
31028 itws[p + j] = ie + io;
31030 rtws[p + j + s] = re - ro;
31031 itws[p + j + s] = ie - io;
31033 /* jshint maxdepth : false */
31035 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
31037 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
31045 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
31046 var N = Math.max(m, n) |
1;
31049 for (N = N /
2 |
0; N; N = N
>>> 1) {
31053 return
1 << i +
1 + odd;
31056 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31057 if (N <=
1) return;
31059 for (var i =
0; i < N /
2; i++) {
31062 rws[i] = rws[N - i -
1];
31063 rws[N - i -
1] = t;
31067 iws[i] = -iws[N - i -
1];
31068 iws[N - i -
1] = -t;
31072 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31074 for (var i =
0; i < N /
2; i++) {
31075 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31076 Math.round(ws[
2 * i] / N) +
31079 ws[i] = w &
0x3ffffff;
31081 if (w <
0x4000000) {
31084 carry = w /
0x4000000 |
0;
31091 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31093 for (var i =
0; i < len; i++) {
31094 carry = carry + (ws[i] |
0);
31096 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31097 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31101 for (i =
2 * len; i < N; ++i) {
31105 assert(carry ===
0);
31106 assert((carry & ~
0x1fff) ===
0);
31109 FFTM.prototype.stub = function stub (N) {
31110 var ph = new Array(N);
31111 for (var i =
0; i < N; i++) {
31118 FFTM.prototype.mulp = function mulp (x, y, out) {
31119 var N =
2 * this.guessLen13b(x.length, y.length);
31121 var rbt = this.makeRBT(N);
31123 var _ = this.stub(N);
31125 var rws = new Array(N);
31126 var rwst = new Array(N);
31127 var iwst = new Array(N);
31129 var nrws = new Array(N);
31130 var nrwst = new Array(N);
31131 var niwst = new Array(N);
31133 var rmws = out.words;
31136 this.convert13b(x.words, x.length, rws, N);
31137 this.convert13b(y.words, y.length, nrws, N);
31139 this.transform(rws, _, rwst, iwst, N, rbt);
31140 this.transform(nrws, _, nrwst, niwst, N, rbt);
31142 for (var i =
0; i < N; i++) {
31143 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31144 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31148 this.conjugate(rwst, iwst, N);
31149 this.transform(rwst, iwst, rmws, _, N, rbt);
31150 this.conjugate(rmws, _, N);
31151 this.normalize13b(rmws, N);
31153 out.negative = x.negative ^ y.negative;
31154 out.length = x.length + y.length;
31155 return out.strip();
31158 // Multiply `this` by `num`
31159 BN.prototype.mul = function mul (num) {
31160 var out = new BN(null);
31161 out.words = new Array(this.length + num.length);
31162 return this.mulTo(num, out);
31165 // Multiply employing FFT
31166 BN.prototype.mulf = function mulf (num) {
31167 var out = new BN(null);
31168 out.words = new Array(this.length + num.length);
31169 return jumboMulTo(this, num, out);
31172 // In-place Multiplication
31173 BN.prototype.imul = function imul (num) {
31174 return this.clone().mulTo(num, this);
31177 BN.prototype.imuln = function imuln (num) {
31178 assert(typeof num === 'number');
31179 assert(num <
0x4000000);
31183 for (var i =
0; i < this.length; i++) {
31184 var w = (this.words[i] |
0) * num;
31185 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31187 carry += (w /
0x4000000) |
0;
31188 // NOTE: lo is
27bit maximum
31189 carry += lo
>>> 26;
31190 this.words[i] = lo &
0x3ffffff;
31194 this.words[i] = carry;
31201 BN.prototype.muln = function muln (num) {
31202 return this.clone().imuln(num);
31206 BN.prototype.sqr = function sqr () {
31207 return this.mul(this);
31210 // `this` * `this` in-place
31211 BN.prototype.isqr = function isqr () {
31212 return this.imul(this.clone());
31215 // Math.pow(`this`, `num`)
31216 BN.prototype.pow = function pow (num) {
31217 var w = toBitArray(num);
31218 if (w.length ===
0) return new BN(
1);
31220 // Skip leading zeroes
31222 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31223 if (w[i] !==
0) break;
31226 if (++i < w.length) {
31227 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31228 if (w[i] ===
0) continue;
31237 // Shift-left in-place
31238 BN.prototype.iushln = function iushln (bits) {
31239 assert(typeof bits === 'number' && bits
>=
0);
31241 var s = (bits - r) /
26;
31242 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31248 for (i =
0; i < this.length; i++) {
31249 var newCarry = this.words[i] & carryMask;
31250 var c = ((this.words[i] |
0) - newCarry) << r;
31251 this.words[i] = c | carry;
31252 carry = newCarry
>>> (
26 - r);
31256 this.words[i] = carry;
31262 for (i = this.length -
1; i
>=
0; i--) {
31263 this.words[i + s] = this.words[i];
31266 for (i =
0; i < s; i++) {
31273 return this.strip();
31276 BN.prototype.ishln = function ishln (bits) {
31277 // TODO(indutny): implement me
31278 assert(this.negative ===
0);
31279 return this.iushln(bits);
31282 // Shift-right in-place
31283 // NOTE: `hint` is a lowest bit before trailing zeroes
31284 // NOTE: if `extended` is present - it will be filled with destroyed bits
31285 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31286 assert(typeof bits === 'number' && bits
>=
0);
31289 h = (hint - (hint %
26)) /
26;
31295 var s = Math.min((bits - r) /
26, this.length);
31296 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31297 var maskedWords = extended;
31300 h = Math.max(
0, h);
31302 // Extended mode, copy masked part
31304 for (var i =
0; i < s; i++) {
31305 maskedWords.words[i] = this.words[i];
31307 maskedWords.length = s;
31311 // No-op, we should not move anything at all
31312 } else if (this.length
> s) {
31314 for (i =
0; i < this.length; i++) {
31315 this.words[i] = this.words[i + s];
31323 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31324 var word = this.words[i] |
0;
31325 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31326 carry = word & mask;
31329 // Push carried bits as a mask
31330 if (maskedWords && carry !==
0) {
31331 maskedWords.words[maskedWords.length++] = carry;
31334 if (this.length ===
0) {
31339 return this.strip();
31342 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31343 // TODO(indutny): implement me
31344 assert(this.negative ===
0);
31345 return this.iushrn(bits, hint, extended);
31349 BN.prototype.shln = function shln (bits) {
31350 return this.clone().ishln(bits);
31353 BN.prototype.ushln = function ushln (bits) {
31354 return this.clone().iushln(bits);
31358 BN.prototype.shrn = function shrn (bits) {
31359 return this.clone().ishrn(bits);
31362 BN.prototype.ushrn = function ushrn (bits) {
31363 return this.clone().iushrn(bits);
31366 // Test if n bit is set
31367 BN.prototype.testn = function testn (bit) {
31368 assert(typeof bit === 'number' && bit
>=
0);
31370 var s = (bit - r) /
26;
31373 // Fast case: bit is much higher than all existing words
31374 if (this.length <= s) return false;
31376 // Check bit and return
31377 var w = this.words[s];
31382 // Return only lowers bits of number (in-place)
31383 BN.prototype.imaskn = function imaskn (bits) {
31384 assert(typeof bits === 'number' && bits
>=
0);
31386 var s = (bits - r) /
26;
31388 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31390 if (this.length <= s) {
31397 this.length = Math.min(s, this.length);
31400 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31401 this.words[this.length -
1] &= mask;
31404 return this.strip();
31407 // Return only lowers bits of number
31408 BN.prototype.maskn = function maskn (bits) {
31409 return this.clone().imaskn(bits);
31412 // Add plain number `num` to `this`
31413 BN.prototype.iaddn = function iaddn (num) {
31414 assert(typeof num === 'number');
31415 assert(num <
0x4000000);
31416 if (num <
0) return this.isubn(-num);
31418 // Possible sign change
31419 if (this.negative !==
0) {
31420 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31421 this.words[
0] = num - (this.words[
0] |
0);
31432 // Add without checks
31433 return this._iaddn(num);
31436 BN.prototype._iaddn = function _iaddn (num) {
31437 this.words[
0] += num;
31440 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31441 this.words[i] -=
0x4000000;
31442 if (i === this.length -
1) {
31443 this.words[i +
1] =
1;
31445 this.words[i +
1]++;
31448 this.length = Math.max(this.length, i +
1);
31453 // Subtract plain number `num` from `this`
31454 BN.prototype.isubn = function isubn (num) {
31455 assert(typeof num === 'number');
31456 assert(num <
0x4000000);
31457 if (num <
0) return this.iaddn(-num);
31459 if (this.negative !==
0) {
31466 this.words[
0] -= num;
31468 if (this.length ===
1 && this.words[
0] <
0) {
31469 this.words[
0] = -this.words[
0];
31473 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31474 this.words[i] +=
0x4000000;
31475 this.words[i +
1] -=
1;
31479 return this.strip();
31482 BN.prototype.addn = function addn (num) {
31483 return this.clone().iaddn(num);
31486 BN.prototype.subn = function subn (num) {
31487 return this.clone().isubn(num);
31490 BN.prototype.iabs = function iabs () {
31496 BN.prototype.abs = function abs () {
31497 return this.clone().iabs();
31500 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31501 var len = num.length + shift;
31508 for (i =
0; i < num.length; i++) {
31509 w = (this.words[i + shift] |
0) + carry;
31510 var right = (num.words[i] |
0) * mul;
31511 w -= right &
0x3ffffff;
31512 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31513 this.words[i + shift] = w &
0x3ffffff;
31515 for (; i < this.length - shift; i++) {
31516 w = (this.words[i + shift] |
0) + carry;
31518 this.words[i + shift] = w &
0x3ffffff;
31521 if (carry ===
0) return this.strip();
31523 // Subtraction overflow
31524 assert(carry === -
1);
31526 for (i =
0; i < this.length; i++) {
31527 w = -(this.words[i] |
0) + carry;
31529 this.words[i] = w &
0x3ffffff;
31533 return this.strip();
31536 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31537 var shift = this.length - num.length;
31539 var a = this.clone();
31543 var bhi = b.words[b.length -
1] |
0;
31544 var bhiBits = this._countBits(bhi);
31545 shift =
26 - bhiBits;
31547 b = b.ushln(shift);
31549 bhi = b.words[b.length -
1] |
0;
31552 // Initialize quotient
31553 var m = a.length - b.length;
31556 if (mode !== 'mod') {
31559 q.words = new Array(q.length);
31560 for (var i =
0; i < q.length; i++) {
31565 var diff = a.clone()._ishlnsubmul(b,
1, m);
31566 if (diff.negative ===
0) {
31573 for (var j = m -
1; j
>=
0; j--) {
31574 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31575 (a.words[b.length + j -
1] |
0);
31577 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31579 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31581 a._ishlnsubmul(b, qj, j);
31582 while (a.negative !==
0) {
31585 a._ishlnsubmul(b,
1, j);
31600 if (mode !== 'div' && shift !==
0) {
31610 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31611 // to `div` to request div only, or be absent to
31612 // request both div & mod
31613 //
2) `positive` is true if unsigned mod is requested
31614 BN.prototype.divmod = function divmod (num, mode, positive) {
31615 assert(!num.isZero());
31617 if (this.isZero()) {
31625 if (this.negative !==
0 && num.negative ===
0) {
31626 res = this.neg().divmod(num, mode);
31628 if (mode !== 'mod') {
31629 div = res.div.neg();
31632 if (mode !== 'div') {
31633 mod = res.mod.neg();
31634 if (positive && mod.negative !==
0) {
31645 if (this.negative ===
0 && num.negative !==
0) {
31646 res = this.divmod(num.neg(), mode);
31648 if (mode !== 'mod') {
31649 div = res.div.neg();
31658 if ((this.negative & num.negative) !==
0) {
31659 res = this.neg().divmod(num.neg(), mode);
31661 if (mode !== 'div') {
31662 mod = res.mod.neg();
31663 if (positive && mod.negative !==
0) {
31674 // Both numbers are positive at this point
31676 // Strip both numbers to approximate shift value
31677 if (num.length
> this.length || this.cmp(num) <
0) {
31684 // Very short reduction
31685 if (num.length ===
1) {
31686 if (mode === 'div') {
31688 div: this.divn(num.words[
0]),
31693 if (mode === 'mod') {
31696 mod: new BN(this.modn(num.words[
0]))
31701 div: this.divn(num.words[
0]),
31702 mod: new BN(this.modn(num.words[
0]))
31706 return this._wordDiv(num, mode);
31709 // Find `this` / `num`
31710 BN.prototype.div = function div (num) {
31711 return this.divmod(num, 'div', false).div;
31714 // Find `this` % `num`
31715 BN.prototype.mod = function mod (num) {
31716 return this.divmod(num, 'mod', false).mod;
31719 BN.prototype.umod = function umod (num) {
31720 return this.divmod(num, 'mod', true).mod;
31723 // Find Round(`this` / `num`)
31724 BN.prototype.divRound = function divRound (num) {
31725 var dm = this.divmod(num);
31727 // Fast case - exact division
31728 if (dm.mod.isZero()) return dm.div;
31730 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31732 var half = num.ushrn(
1);
31733 var r2 = num.andln(
1);
31734 var cmp = mod.cmp(half);
31737 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31740 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31743 BN.prototype.modn = function modn (num) {
31744 assert(num <=
0x3ffffff);
31745 var p = (
1 <<
26) % num;
31748 for (var i = this.length -
1; i
>=
0; i--) {
31749 acc = (p * acc + (this.words[i] |
0)) % num;
31755 // In-place division by number
31756 BN.prototype.idivn = function idivn (num) {
31757 assert(num <=
0x3ffffff);
31760 for (var i = this.length -
1; i
>=
0; i--) {
31761 var w = (this.words[i] |
0) + carry *
0x4000000;
31762 this.words[i] = (w / num) |
0;
31766 return this.strip();
31769 BN.prototype.divn = function divn (num) {
31770 return this.clone().idivn(num);
31773 BN.prototype.egcd = function egcd (p) {
31774 assert(p.negative ===
0);
31775 assert(!p.isZero());
31780 if (x.negative !==
0) {
31786 // A * x + B * y = x
31790 // C * x + D * y = y
31796 while (x.isEven() && y.isEven()) {
31802 var yp = y.clone();
31803 var xp = x.clone();
31805 while (!x.isZero()) {
31806 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31810 if (A.isOdd() || B.isOdd()) {
31820 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31824 if (C.isOdd() || D.isOdd()) {
31834 if (x.cmp(y)
>=
0) {
31852 // This is reduced incarnation of the binary EEA
31853 // above, designated to invert members of the
31854 // _prime_ fields F(p) at a maximal speed
31855 BN.prototype._invmp = function _invmp (p) {
31856 assert(p.negative ===
0);
31857 assert(!p.isZero());
31862 if (a.negative !==
0) {
31868 var x1 = new BN(
1);
31869 var x2 = new BN(
0);
31871 var delta = b.clone();
31873 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31874 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31886 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31898 if (a.cmp(b)
>=
0) {
31908 if (a.cmpn(
1) ===
0) {
31914 if (res.cmpn(
0) <
0) {
31921 BN.prototype.gcd = function gcd (num) {
31922 if (this.isZero()) return num.abs();
31923 if (num.isZero()) return this.abs();
31925 var a = this.clone();
31926 var b = num.clone();
31930 // Remove common factor of two
31931 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31937 while (a.isEven()) {
31940 while (b.isEven()) {
31946 // Swap `a` and `b` to make `a` always bigger than `b`
31950 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31957 return b.iushln(shift);
31960 // Invert number in the field F(num)
31961 BN.prototype.invm = function invm (num) {
31962 return this.egcd(num).a.umod(num);
31965 BN.prototype.isEven = function isEven () {
31966 return (this.words[
0] &
1) ===
0;
31969 BN.prototype.isOdd = function isOdd () {
31970 return (this.words[
0] &
1) ===
1;
31973 // And first word and num
31974 BN.prototype.andln = function andln (num) {
31975 return this.words[
0] & num;
31978 // Increment at the bit position in-line
31979 BN.prototype.bincn = function bincn (bit) {
31980 assert(typeof bit === 'number');
31982 var s = (bit - r) /
26;
31985 // Fast case: bit is much higher than all existing words
31986 if (this.length <= s) {
31987 this._expand(s +
1);
31988 this.words[s] |= q;
31992 // Add bit and propagate, if needed
31994 for (var i = s; carry !==
0 && i < this.length; i++) {
31995 var w = this.words[i] |
0;
32002 this.words[i] = carry;
32008 BN.prototype.isZero = function isZero () {
32009 return this.length ===
1 && this.words[
0] ===
0;
32012 BN.prototype.cmpn = function cmpn (num) {
32013 var negative = num <
0;
32015 if (this.negative !==
0 && !negative) return -
1;
32016 if (this.negative ===
0 && negative) return
1;
32021 if (this.length
> 1) {
32028 assert(num <=
0x3ffffff, 'Number is too big');
32030 var w = this.words[
0] |
0;
32031 res = w === num ?
0 : w < num ? -
1 :
1;
32033 if (this.negative !==
0) return -res |
0;
32037 // Compare two numbers and return:
32038 //
1 - if `this`
> `num`
32039 //
0 - if `this` == `num`
32040 // -
1 - if `this` < `num`
32041 BN.prototype.cmp = function cmp (num) {
32042 if (this.negative !==
0 && num.negative ===
0) return -
1;
32043 if (this.negative ===
0 && num.negative !==
0) return
1;
32045 var res = this.ucmp(num);
32046 if (this.negative !==
0) return -res |
0;
32050 // Unsigned comparison
32051 BN.prototype.ucmp = function ucmp (num) {
32052 // At this point both numbers have the same sign
32053 if (this.length
> num.length) return
1;
32054 if (this.length < num.length) return -
1;
32057 for (var i = this.length -
1; i
>=
0; i--) {
32058 var a = this.words[i] |
0;
32059 var b = num.words[i] |
0;
32061 if (a === b) continue;
32064 } else if (a
> b) {
32072 BN.prototype.gtn = function gtn (num) {
32073 return this.cmpn(num) ===
1;
32076 BN.prototype.gt = function gt (num) {
32077 return this.cmp(num) ===
1;
32080 BN.prototype.gten = function gten (num) {
32081 return this.cmpn(num)
>=
0;
32084 BN.prototype.gte = function gte (num) {
32085 return this.cmp(num)
>=
0;
32088 BN.prototype.ltn = function ltn (num) {
32089 return this.cmpn(num) === -
1;
32092 BN.prototype.lt = function lt (num) {
32093 return this.cmp(num) === -
1;
32096 BN.prototype.lten = function lten (num) {
32097 return this.cmpn(num) <=
0;
32100 BN.prototype.lte = function lte (num) {
32101 return this.cmp(num) <=
0;
32104 BN.prototype.eqn = function eqn (num) {
32105 return this.cmpn(num) ===
0;
32108 BN.prototype.eq = function eq (num) {
32109 return this.cmp(num) ===
0;
32113 // A reduce context, could be using montgomery or something better, depending
32114 // on the `m` itself.
32116 BN.red = function red (num) {
32117 return new Red(num);
32120 BN.prototype.toRed = function toRed (ctx) {
32121 assert(!this.red, 'Already a number in reduction context');
32122 assert(this.negative ===
0, 'red works only with positives');
32123 return ctx.convertTo(this)._forceRed(ctx);
32126 BN.prototype.fromRed = function fromRed () {
32127 assert(this.red, 'fromRed works only with numbers in reduction context');
32128 return this.red.convertFrom(this);
32131 BN.prototype._forceRed = function _forceRed (ctx) {
32136 BN.prototype.forceRed = function forceRed (ctx) {
32137 assert(!this.red, 'Already a number in reduction context');
32138 return this._forceRed(ctx);
32141 BN.prototype.redAdd = function redAdd (num) {
32142 assert(this.red, 'redAdd works only with red numbers');
32143 return this.red.add(this, num);
32146 BN.prototype.redIAdd = function redIAdd (num) {
32147 assert(this.red, 'redIAdd works only with red numbers');
32148 return this.red.iadd(this, num);
32151 BN.prototype.redSub = function redSub (num) {
32152 assert(this.red, 'redSub works only with red numbers');
32153 return this.red.sub(this, num);
32156 BN.prototype.redISub = function redISub (num) {
32157 assert(this.red, 'redISub works only with red numbers');
32158 return this.red.isub(this, num);
32161 BN.prototype.redShl = function redShl (num) {
32162 assert(this.red, 'redShl works only with red numbers');
32163 return this.red.shl(this, num);
32166 BN.prototype.redMul = function redMul (num) {
32167 assert(this.red, 'redMul works only with red numbers');
32168 this.red._verify2(this, num);
32169 return this.red.mul(this, num);
32172 BN.prototype.redIMul = function redIMul (num) {
32173 assert(this.red, 'redMul works only with red numbers');
32174 this.red._verify2(this, num);
32175 return this.red.imul(this, num);
32178 BN.prototype.redSqr = function redSqr () {
32179 assert(this.red, 'redSqr works only with red numbers');
32180 this.red._verify1(this);
32181 return this.red.sqr(this);
32184 BN.prototype.redISqr = function redISqr () {
32185 assert(this.red, 'redISqr works only with red numbers');
32186 this.red._verify1(this);
32187 return this.red.isqr(this);
32190 // Square root over p
32191 BN.prototype.redSqrt = function redSqrt () {
32192 assert(this.red, 'redSqrt works only with red numbers');
32193 this.red._verify1(this);
32194 return this.red.sqrt(this);
32197 BN.prototype.redInvm = function redInvm () {
32198 assert(this.red, 'redInvm works only with red numbers');
32199 this.red._verify1(this);
32200 return this.red.invm(this);
32203 // Return negative clone of `this` % `red modulo`
32204 BN.prototype.redNeg = function redNeg () {
32205 assert(this.red, 'redNeg works only with red numbers');
32206 this.red._verify1(this);
32207 return this.red.neg(this);
32210 BN.prototype.redPow = function redPow (num) {
32211 assert(this.red && !num.red, 'redPow(normalNum)');
32212 this.red._verify1(this);
32213 return this.red.pow(this, num);
32216 // Prime numbers with efficient reduction
32224 // Pseudo-Mersenne prime
32225 function MPrime (name, p) {
32228 this.p = new BN(p,
16);
32229 this.n = this.p.bitLength();
32230 this.k = new BN(
1).iushln(this.n).isub(this.p);
32232 this.tmp = this._tmp();
32235 MPrime.prototype._tmp = function _tmp () {
32236 var tmp = new BN(null);
32237 tmp.words = new Array(Math.ceil(this.n /
13));
32241 MPrime.prototype.ireduce = function ireduce (num) {
32242 // Assumes that `num` is less than `P^
2`
32243 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32248 this.split(r, this.tmp);
32250 r = r.iadd(this.tmp);
32251 rlen = r.bitLength();
32252 } while (rlen
> this.n);
32254 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32258 } else if (cmp
> 0) {
32267 MPrime.prototype.split = function split (input, out) {
32268 input.iushrn(this.n,
0, out);
32271 MPrime.prototype.imulK = function imulK (num) {
32272 return num.imul(this.k);
32279 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32281 inherits(K256, MPrime);
32283 K256.prototype.split = function split (input, output) {
32284 //
256 =
9 *
26 +
22
32285 var mask =
0x3fffff;
32287 var outLen = Math.min(input.length,
9);
32288 for (var i =
0; i < outLen; i++) {
32289 output.words[i] = input.words[i];
32291 output.length = outLen;
32293 if (input.length <=
9) {
32294 input.words[
0] =
0;
32299 // Shift by
9 limbs
32300 var prev = input.words[
9];
32301 output.words[output.length++] = prev & mask;
32303 for (i =
10; i < input.length; i++) {
32304 var next = input.words[i] |
0;
32305 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32309 input.words[i -
10] = prev;
32310 if (prev ===
0 && input.length
> 10) {
32311 input.length -=
10;
32317 K256.prototype.imulK = function imulK (num) {
32318 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32319 num.words[num.length] =
0;
32320 num.words[num.length +
1] =
0;
32323 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32325 for (var i =
0; i < num.length; i++) {
32326 var w = num.words[i] |
0;
32328 num.words[i] = lo &
0x3ffffff;
32329 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32332 // Fast length reduction
32333 if (num.words[num.length -
1] ===
0) {
32335 if (num.words[num.length -
1] ===
0) {
32346 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32348 inherits(P224, MPrime);
32354 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32356 inherits(P192, MPrime);
32358 function P25519 () {
32363 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32365 inherits(P25519, MPrime);
32367 P25519.prototype.imulK = function imulK (num) {
32370 for (var i =
0; i < num.length; i++) {
32371 var hi = (num.words[i] |
0) *
0x13 + carry;
32372 var lo = hi &
0x3ffffff;
32379 num.words[num.length++] = carry;
32384 // Exported mostly for testing purposes, use plain name instead
32385 BN._prime = function prime (name) {
32386 // Cached version of prime
32387 if (primes[name]) return primes[name];
32390 if (name === 'k256') {
32391 prime = new K256();
32392 } else if (name === 'p224') {
32393 prime = new P224();
32394 } else if (name === 'p192') {
32395 prime = new P192();
32396 } else if (name === 'p25519') {
32397 prime = new P25519();
32399 throw new Error('Unknown prime ' + name);
32401 primes[name] = prime;
32407 // Base reduction engine
32410 if (typeof m === 'string') {
32411 var prime = BN._prime(m);
32413 this.prime = prime;
32415 assert(m.gtn(
1), 'modulus must be greater than
1');
32421 Red.prototype._verify1 = function _verify1 (a) {
32422 assert(a.negative ===
0, 'red works only with positives');
32423 assert(a.red, 'red works only with red numbers');
32426 Red.prototype._verify2 = function _verify2 (a, b) {
32427 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32428 assert(a.red && a.red === b.red,
32429 'red works only with red numbers');
32432 Red.prototype.imod = function imod (a) {
32433 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32434 return a.umod(this.m)._forceRed(this);
32437 Red.prototype.neg = function neg (a) {
32442 return this.m.sub(a)._forceRed(this);
32445 Red.prototype.add = function add (a, b) {
32446 this._verify2(a, b);
32448 var res = a.add(b);
32449 if (res.cmp(this.m)
>=
0) {
32452 return res._forceRed(this);
32455 Red.prototype.iadd = function iadd (a, b) {
32456 this._verify2(a, b);
32458 var res = a.iadd(b);
32459 if (res.cmp(this.m)
>=
0) {
32465 Red.prototype.sub = function sub (a, b) {
32466 this._verify2(a, b);
32468 var res = a.sub(b);
32469 if (res.cmpn(
0) <
0) {
32472 return res._forceRed(this);
32475 Red.prototype.isub = function isub (a, b) {
32476 this._verify2(a, b);
32478 var res = a.isub(b);
32479 if (res.cmpn(
0) <
0) {
32485 Red.prototype.shl = function shl (a, num) {
32487 return this.imod(a.ushln(num));
32490 Red.prototype.imul = function imul (a, b) {
32491 this._verify2(a, b);
32492 return this.imod(a.imul(b));
32495 Red.prototype.mul = function mul (a, b) {
32496 this._verify2(a, b);
32497 return this.imod(a.mul(b));
32500 Red.prototype.isqr = function isqr (a) {
32501 return this.imul(a, a.clone());
32504 Red.prototype.sqr = function sqr (a) {
32505 return this.mul(a, a);
32508 Red.prototype.sqrt = function sqrt (a) {
32509 if (a.isZero()) return a.clone();
32511 var mod3 = this.m.andln(
3);
32512 assert(mod3 %
2 ===
1);
32516 var pow = this.m.add(new BN(
1)).iushrn(
2);
32517 return this.pow(a, pow);
32520 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32522 // Find Q and S, that Q *
2 ^ S = (P -
1)
32523 var q = this.m.subn(
1);
32525 while (!q.isZero() && q.andln(
1) ===
0) {
32529 assert(!q.isZero());
32531 var one = new BN(
1).toRed(this);
32532 var nOne = one.redNeg();
32534 // Find quadratic non-residue
32535 // NOTE: Max is such because of generalized Riemann hypothesis.
32536 var lpow = this.m.subn(
1).iushrn(
1);
32537 var z = this.m.bitLength();
32538 z = new BN(
2 * z * z).toRed(this);
32540 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32544 var c = this.pow(z, q);
32545 var r = this.pow(a, q.addn(
1).iushrn(
1));
32546 var t = this.pow(a, q);
32548 while (t.cmp(one) !==
0) {
32550 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32551 tmp = tmp.redSqr();
32554 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32565 Red.prototype.invm = function invm (a) {
32566 var inv = a._invmp(this.m);
32567 if (inv.negative !==
0) {
32569 return this.imod(inv).redNeg();
32571 return this.imod(inv);
32575 Red.prototype.pow = function pow (a, num) {
32576 if (num.isZero()) return new BN(
1);
32577 if (num.cmpn(
1) ===
0) return a.clone();
32579 var windowSize =
4;
32580 var wnd = new Array(
1 << windowSize);
32581 wnd[
0] = new BN(
1).toRed(this);
32583 for (var i =
2; i < wnd.length; i++) {
32584 wnd[i] = this.mul(wnd[i -
1], a);
32589 var currentLen =
0;
32590 var start = num.bitLength() %
26;
32595 for (i = num.length -
1; i
>=
0; i--) {
32596 var word = num.words[i];
32597 for (var j = start -
1; j
>=
0; j--) {
32598 var bit = (word
>> j) &
1;
32599 if (res !== wnd[
0]) {
32600 res = this.sqr(res);
32603 if (bit ===
0 && current ===
0) {
32611 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32613 res = this.mul(res, wnd[current]);
32623 Red.prototype.convertTo = function convertTo (num) {
32624 var r = num.umod(this.m);
32626 return r === num ? r.clone() : r;
32629 Red.prototype.convertFrom = function convertFrom (num) {
32630 var res = num.clone();
32636 // Montgomery method engine
32639 BN.mont = function mont (num) {
32640 return new Mont(num);
32643 function Mont (m) {
32646 this.shift = this.m.bitLength();
32647 if (this.shift %
26 !==
0) {
32648 this.shift +=
26 - (this.shift %
26);
32651 this.r = new BN(
1).iushln(this.shift);
32652 this.r2 = this.imod(this.r.sqr());
32653 this.rinv = this.r._invmp(this.m);
32655 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32656 this.minv = this.minv.umod(this.r);
32657 this.minv = this.r.sub(this.minv);
32659 inherits(Mont, Red);
32661 Mont.prototype.convertTo = function convertTo (num) {
32662 return this.imod(num.ushln(this.shift));
32665 Mont.prototype.convertFrom = function convertFrom (num) {
32666 var r = this.imod(num.mul(this.rinv));
32671 Mont.prototype.imul = function imul (a, b) {
32672 if (a.isZero() || b.isZero()) {
32679 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32680 var u = t.isub(c).iushrn(this.shift);
32683 if (u.cmp(this.m)
>=
0) {
32684 res = u.isub(this.m);
32685 } else if (u.cmpn(
0) <
0) {
32686 res = u.iadd(this.m);
32689 return res._forceRed(this);
32692 Mont.prototype.mul = function mul (a, b) {
32693 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32696 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32697 var u = t.isub(c).iushrn(this.shift);
32699 if (u.cmp(this.m)
>=
0) {
32700 res = u.isub(this.m);
32701 } else if (u.cmpn(
0) <
0) {
32702 res = u.iadd(this.m);
32705 return res._forceRed(this);
32708 Mont.prototype.invm = function invm (a) {
32709 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32710 var res = this.imod(a._invmp(this.m).mul(this.r2));
32711 return res._forceRed(this);
32713 })(typeof module === 'undefined' || module, this);
32715 },{}],
34:[function(require,module,exports){
32718 module.exports = function rand(len) {
32720 r = new Rand(null);
32722 return r.generate(len);
32725 function Rand(rand) {
32728 module.exports.Rand = Rand;
32730 Rand.prototype.generate = function generate(len) {
32731 return this._rand(len);
32734 if (typeof self === 'object') {
32735 if (self.crypto && self.crypto.getRandomValues) {
32737 Rand.prototype._rand = function _rand(n) {
32738 var arr = new Uint8Array(n);
32739 self.crypto.getRandomValues(arr);
32742 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32744 Rand.prototype._rand = function _rand(n) {
32745 var arr = new Uint8Array(n);
32746 self.msCrypto.getRandomValues(arr);
32751 Rand.prototype._rand = function() {
32752 throw new Error('Not implemented yet');
32756 // Node.js or Web worker with no crypto support
32758 var crypto = require('crypto');
32760 Rand.prototype._rand = function _rand(n) {
32761 return crypto.randomBytes(n);
32764 // Emulate crypto API using randy
32765 Rand.prototype._rand = function _rand(n) {
32766 var res = new Uint8Array(n);
32767 for (var i =
0; i < res.length; i++)
32768 res[i] = this.rand.getByte();
32774 },{"crypto":
3}],
35:[function(require,module,exports){
32775 (function (Buffer){
32776 var Transform = require('stream').Transform
32777 var inherits = require('inherits')
32778 var StringDecoder = require('string_decoder').StringDecoder
32779 module.exports = CipherBase
32780 inherits(CipherBase, Transform)
32781 function CipherBase (hashMode) {
32782 Transform.call(this)
32783 this.hashMode = typeof hashMode === 'string'
32784 if (this.hashMode) {
32785 this[hashMode] = this._finalOrDigest
32787 this.final = this._finalOrDigest
32789 this._decoder = null
32790 this._encoding = null
32792 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32793 if (typeof data === 'string') {
32794 data = new Buffer(data, inputEnc)
32796 var outData = this._update(data)
32797 if (this.hashMode) {
32801 outData = this._toString(outData, outputEnc)
32806 CipherBase.prototype.setAutoPadding = function () {}
32808 CipherBase.prototype.getAuthTag = function () {
32809 throw new Error('trying to get auth tag in unsupported state')
32812 CipherBase.prototype.setAuthTag = function () {
32813 throw new Error('trying to set auth tag in unsupported state')
32816 CipherBase.prototype.setAAD = function () {
32817 throw new Error('trying to set aad in unsupported state')
32820 CipherBase.prototype._transform = function (data, _, next) {
32823 if (this.hashMode) {
32826 this.push(this._update(data))
32834 CipherBase.prototype._flush = function (done) {
32837 this.push(this._final())
32844 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32845 var outData = this._final() || new Buffer('')
32847 outData = this._toString(outData, outputEnc, true)
32852 CipherBase.prototype._toString = function (value, enc, fin) {
32853 if (!this._decoder) {
32854 this._decoder = new StringDecoder(enc)
32855 this._encoding = enc
32857 if (this._encoding !== enc) {
32858 throw new Error('can\'t switch encodings')
32860 var out = this._decoder.write(value)
32862 out += this._decoder.end()
32867 }).call(this,require("buffer").Buffer)
32868 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32869 (function (Buffer){
32871 var inherits = require('inherits')
32872 var md5 = require('./md5')
32873 var rmd160 = require('ripemd160')
32874 var sha = require('sha.js')
32876 var Base = require('cipher-base')
32878 function HashNoConstructor(hash) {
32879 Base.call(this, 'digest')
32885 inherits(HashNoConstructor, Base)
32887 HashNoConstructor.prototype._update = function (data) {
32888 this.buffers.push(data)
32891 HashNoConstructor.prototype._final = function () {
32892 var buf = Buffer.concat(this.buffers)
32893 var r = this._hash(buf)
32894 this.buffers = null
32899 function Hash(hash) {
32900 Base.call(this, 'digest')
32905 inherits(Hash, Base)
32907 Hash.prototype._update = function (data) {
32908 this._hash.update(data)
32911 Hash.prototype._final = function () {
32912 return this._hash.digest()
32915 module.exports = function createHash (alg) {
32916 alg = alg.toLowerCase()
32917 if ('md5' === alg) return new HashNoConstructor(md5)
32918 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32920 return new Hash(sha(alg))
32923 }).call(this,require("buffer").Buffer)
32924 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32925 (function (Buffer){
32928 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32931 function toArray(buf, bigEndian) {
32932 if ((buf.length % intSize) !==
0) {
32933 var len = buf.length + (intSize - (buf.length % intSize));
32934 buf = Buffer.concat([buf, zeroBuffer], len);
32938 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32939 for (var i =
0; i < buf.length; i += intSize) {
32940 arr.push(fn.call(buf, i));
32945 function toBuffer(arr, size, bigEndian) {
32946 var buf = new Buffer(size);
32947 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32948 for (var i =
0; i < arr.length; i++) {
32949 fn.call(buf, arr[i], i *
4, true);
32954 function hash(buf, fn, hashSize, bigEndian) {
32955 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32956 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32957 return toBuffer(arr, hashSize, bigEndian);
32959 exports.hash = hash;
32960 }).call(this,require("buffer").Buffer)
32961 },{"buffer":
5}],
38:[function(require,module,exports){
32964 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32965 * Digest Algorithm, as defined in RFC
1321.
32966 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32967 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32968 * Distributed under the BSD License
32969 * See http://pajhome.org.uk/crypt/md5 for more info.
32972 var helpers = require('./helpers');
32975 * Calculate the MD5 of an array of little-endian words, and a bit length
32977 function core_md5(x, len)
32979 /* append padding */
32980 x[len
>> 5] |=
0x80 << ((len) %
32);
32981 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
32983 var a =
1732584193;
32984 var b = -
271733879;
32985 var c = -
1732584194;
32988 for(var i =
0; i < x.length; i +=
16)
32995 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
32996 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
32997 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
32998 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
32999 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
33000 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
33001 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
33002 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
33003 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
33004 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
33005 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
33006 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
33007 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
33008 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
33009 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
33010 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
33012 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
33013 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
33014 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
33015 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
33016 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
33017 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
33018 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
33019 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
33020 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
33021 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
33022 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
33023 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
33024 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
33025 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
33026 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
33027 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
33029 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
33030 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
33031 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
33032 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
33033 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
33034 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
33035 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
33036 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
33037 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
33038 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
33039 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
33040 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
33041 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
33042 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
33043 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
33044 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
33046 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
33047 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
33048 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
33049 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33050 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33051 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33052 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33053 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33054 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33055 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33056 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33057 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33058 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33059 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33060 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33061 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33063 a = safe_add(a, olda);
33064 b = safe_add(b, oldb);
33065 c = safe_add(c, oldc);
33066 d = safe_add(d, oldd);
33068 return Array(a, b, c, d);
33073 * These functions implement the four basic operations the algorithm uses.
33075 function md5_cmn(q, a, b, x, s, t)
33077 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33079 function md5_ff(a, b, c, d, x, s, t)
33081 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33083 function md5_gg(a, b, c, d, x, s, t)
33085 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33087 function md5_hh(a, b, c, d, x, s, t)
33089 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33091 function md5_ii(a, b, c, d, x, s, t)
33093 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33097 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33098 * to work around bugs in some JS interpreters.
33100 function safe_add(x, y)
33102 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33103 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33104 return (msw <<
16) | (lsw &
0xFFFF);
33108 * Bitwise rotate a
32-bit number to the left.
33110 function bit_rol(num, cnt)
33112 return (num << cnt) | (num
>>> (
32 - cnt));
33115 module.exports = function md5(buf) {
33116 return helpers.hash(buf, core_md5,
16);
33118 },{"./helpers":
37}],
39:[function(require,module,exports){
33121 var elliptic = exports;
33123 elliptic.version = require('../package.json').version;
33124 elliptic.utils = require('./elliptic/utils');
33125 elliptic.rand = require('brorand');
33126 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33127 elliptic.curve = require('./elliptic/curve');
33128 elliptic.curves = require('./elliptic/curves');
33131 elliptic.ec = require('./elliptic/ec');
33132 elliptic.eddsa = require('./elliptic/eddsa');
33134 },{"../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){
33137 var BN = require('bn.js');
33138 var elliptic = require('../../elliptic');
33139 var utils = elliptic.utils;
33140 var getNAF = utils.getNAF;
33141 var getJSF = utils.getJSF;
33142 var assert = utils.assert;
33144 function BaseCurve(type, conf) {
33146 this.p = new BN(conf.p,
16);
33148 // Use Montgomery, when there is no fast reduction for the prime
33149 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33151 // Useful for many curves
33152 this.zero = new BN(
0).toRed(this.red);
33153 this.one = new BN(
1).toRed(this.red);
33154 this.two = new BN(
2).toRed(this.red);
33156 // Curve configuration, optional
33157 this.n = conf.n && new BN(conf.n,
16);
33158 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33160 // Temporary arrays
33161 this._wnafT1 = new Array(
4);
33162 this._wnafT2 = new Array(
4);
33163 this._wnafT3 = new Array(
4);
33164 this._wnafT4 = new Array(
4);
33166 // Generalized Greg Maxwell's trick
33167 var adjustCount = this.n && this.p.div(this.n);
33168 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33171 this._maxwellTrick = true;
33172 this.redN = this.n.toRed(this.red);
33175 module.exports = BaseCurve;
33177 BaseCurve.prototype.point = function point() {
33178 throw new Error('Not implemented');
33181 BaseCurve.prototype.validate = function validate() {
33182 throw new Error('Not implemented');
33185 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33186 assert(p.precomputed);
33187 var doubles = p._getDoubles();
33189 var naf = getNAF(k,
1);
33190 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33193 // Translate into more windowed form
33195 for (var j =
0; j < naf.length; j += doubles.step) {
33197 for (var k = j + doubles.step -
1; k
>= j; k--)
33198 nafW = (nafW <<
1) + naf[k];
33202 var a = this.jpoint(null, null, null);
33203 var b = this.jpoint(null, null, null);
33204 for (var i = I; i
> 0; i--) {
33205 for (var j =
0; j < repr.length; j++) {
33206 var nafW = repr[j];
33208 b = b.mixedAdd(doubles.points[j]);
33209 else if (nafW === -i)
33210 b = b.mixedAdd(doubles.points[j].neg());
33217 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33220 // Precompute window
33221 var nafPoints = p._getNAFPoints(w);
33223 var wnd = nafPoints.points;
33226 var naf = getNAF(k, w);
33228 // Add `this`*(N+
1) for every w-NAF index
33229 var acc = this.jpoint(null, null, null);
33230 for (var i = naf.length -
1; i
>=
0; i--) {
33232 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33242 if (p.type === 'affine') {
33245 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33247 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33251 acc = acc.add(wnd[(z -
1)
>> 1]);
33253 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33256 return p.type === 'affine' ? acc.toP() : acc;
33259 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33264 var wndWidth = this._wnafT1;
33265 var wnd = this._wnafT2;
33266 var naf = this._wnafT3;
33270 for (var i =
0; i < len; i++) {
33272 var nafPoints = p._getNAFPoints(defW);
33273 wndWidth[i] = nafPoints.wnd;
33274 wnd[i] = nafPoints.points;
33277 // Comb small window NAFs
33278 for (var i = len -
1; i
>=
1; i -=
2) {
33281 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33282 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33283 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33284 max = Math.max(naf[a].length, max);
33285 max = Math.max(naf[b].length, max);
33296 // Try to avoid Projective points, if possible
33297 if (points[a].y.cmp(points[b].y) ===
0) {
33298 comb[
1] = points[a].add(points[b]);
33299 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33300 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33301 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33302 comb[
2] = points[a].add(points[b].neg());
33304 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33305 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33320 var jsf = getJSF(coeffs[a], coeffs[b]);
33321 max = Math.max(jsf[
0].length, max);
33322 naf[a] = new Array(max);
33323 naf[b] = new Array(max);
33324 for (var j =
0; j < max; j++) {
33325 var ja = jsf[
0][j] |
0;
33326 var jb = jsf[
1][j] |
0;
33328 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33334 var acc = this.jpoint(null, null, null);
33335 var tmp = this._wnafT4;
33336 for (var i = max; i
>=
0; i--) {
33341 for (var j =
0; j < len; j++) {
33342 tmp[j] = naf[j][i] |
0;
33357 for (var j =
0; j < len; j++) {
33363 p = wnd[j][(z -
1)
>> 1];
33365 p = wnd[j][(-z -
1)
>> 1].neg();
33367 if (p.type === 'affine')
33368 acc = acc.mixedAdd(p);
33373 // Zeroify references
33374 for (var i =
0; i < len; i++)
33377 if (jacobianResult)
33383 function BasePoint(curve, type) {
33384 this.curve = curve;
33386 this.precomputed = null;
33388 BaseCurve.BasePoint = BasePoint;
33390 BasePoint.prototype.eq = function eq(/*other*/) {
33391 throw new Error('Not implemented');
33394 BasePoint.prototype.validate = function validate() {
33395 return this.curve.validate(this);
33398 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33399 bytes = utils.toArray(bytes, enc);
33401 var len = this.p.byteLength();
33403 // uncompressed, hybrid-odd, hybrid-even
33404 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33405 bytes.length -
1 ===
2 * len) {
33406 if (bytes[
0] ===
0x06)
33407 assert(bytes[bytes.length -
1] %
2 ===
0);
33408 else if (bytes[
0] ===
0x07)
33409 assert(bytes[bytes.length -
1] %
2 ===
1);
33411 var res = this.point(bytes.slice(
1,
1 + len),
33412 bytes.slice(
1 + len,
1 +
2 * len));
33415 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33416 bytes.length -
1 === len) {
33417 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33419 throw new Error('Unknown point format');
33422 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33423 return this.encode(enc, true);
33426 BasePoint.prototype._encode = function _encode(compact) {
33427 var len = this.curve.p.byteLength();
33428 var x = this.getX().toArray('be', len);
33431 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33433 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33436 BasePoint.prototype.encode = function encode(enc, compact) {
33437 return utils.encode(this._encode(compact), enc);
33440 BasePoint.prototype.precompute = function precompute(power) {
33441 if (this.precomputed)
33444 var precomputed = {
33449 precomputed.naf = this._getNAFPoints(
8);
33450 precomputed.doubles = this._getDoubles(
4, power);
33451 precomputed.beta = this._getBeta();
33452 this.precomputed = precomputed;
33457 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33458 if (!this.precomputed)
33461 var doubles = this.precomputed.doubles;
33465 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33468 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33469 if (this.precomputed && this.precomputed.doubles)
33470 return this.precomputed.doubles;
33472 var doubles = [ this ];
33474 for (var i =
0; i < power; i += step) {
33475 for (var j =
0; j < step; j++)
33485 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33486 if (this.precomputed && this.precomputed.naf)
33487 return this.precomputed.naf;
33489 var res = [ this ];
33490 var max = (
1 << wnd) -
1;
33491 var dbl = max ===
1 ? null : this.dbl();
33492 for (var i =
1; i < max; i++)
33493 res[i] = res[i -
1].add(dbl);
33500 BasePoint.prototype._getBeta = function _getBeta() {
33504 BasePoint.prototype.dblp = function dblp(k) {
33506 for (var i =
0; i < k; i++)
33511 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33514 var curve = require('../curve');
33515 var elliptic = require('../../elliptic');
33516 var BN = require('bn.js');
33517 var inherits = require('inherits');
33518 var Base = curve.base;
33520 var assert = elliptic.utils.assert;
33522 function EdwardsCurve(conf) {
33523 // NOTE: Important as we are creating point in Base.call()
33524 this.twisted = (conf.a |
0) !==
1;
33525 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33526 this.extended = this.mOneA;
33528 Base.call(this, 'edwards', conf);
33530 this.a = new BN(conf.a,
16).umod(this.red.m);
33531 this.a = this.a.toRed(this.red);
33532 this.c = new BN(conf.c,
16).toRed(this.red);
33533 this.c2 = this.c.redSqr();
33534 this.d = new BN(conf.d,
16).toRed(this.red);
33535 this.dd = this.d.redAdd(this.d);
33537 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33538 this.oneC = (conf.c |
0) ===
1;
33540 inherits(EdwardsCurve, Base);
33541 module.exports = EdwardsCurve;
33543 EdwardsCurve.prototype._mulA = function _mulA(num) {
33545 return num.redNeg();
33547 return this.a.redMul(num);
33550 EdwardsCurve.prototype._mulC = function _mulC(num) {
33554 return this.c.redMul(num);
33557 // Just for compatibility with Short curve
33558 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33559 return this.point(x, y, z, t);
33562 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33565 x = x.toRed(this.red);
33567 var x2 = x.redSqr();
33568 var rhs = this.c2.redSub(this.a.redMul(x2));
33569 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33571 var y2 = rhs.redMul(lhs.redInvm());
33572 var y = y2.redSqrt();
33573 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33574 throw new Error('invalid point');
33576 var isOdd = y.fromRed().isOdd();
33577 if (odd && !isOdd || !odd && isOdd)
33580 return this.point(x, y);
33583 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33586 y = y.toRed(this.red);
33588 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33589 var y2 = y.redSqr();
33590 var lhs = y2.redSub(this.one);
33591 var rhs = y2.redMul(this.d).redAdd(this.one);
33592 var x2 = lhs.redMul(rhs.redInvm());
33594 if (x2.cmp(this.zero) ===
0) {
33596 throw new Error('invalid point');
33598 return this.point(this.zero, y);
33601 var x = x2.redSqrt();
33602 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33603 throw new Error('invalid point');
33605 if (x.isOdd() !== odd)
33608 return this.point(x, y);
33611 EdwardsCurve.prototype.validate = function validate(point) {
33612 if (point.isInfinity())
33615 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33618 var x2 = point.x.redSqr();
33619 var y2 = point.y.redSqr();
33620 var lhs = x2.redMul(this.a).redAdd(y2);
33621 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33623 return lhs.cmp(rhs) ===
0;
33626 function Point(curve, x, y, z, t) {
33627 Base.BasePoint.call(this, curve, 'projective');
33628 if (x === null && y === null && z === null) {
33629 this.x = this.curve.zero;
33630 this.y = this.curve.one;
33631 this.z = this.curve.one;
33632 this.t = this.curve.zero;
33635 this.x = new BN(x,
16);
33636 this.y = new BN(y,
16);
33637 this.z = z ? new BN(z,
16) : this.curve.one;
33638 this.t = t && new BN(t,
16);
33640 this.x = this.x.toRed(this.curve.red);
33642 this.y = this.y.toRed(this.curve.red);
33644 this.z = this.z.toRed(this.curve.red);
33645 if (this.t && !this.t.red)
33646 this.t = this.t.toRed(this.curve.red);
33647 this.zOne = this.z === this.curve.one;
33649 // Use extended coordinates
33650 if (this.curve.extended && !this.t) {
33651 this.t = this.x.redMul(this.y);
33653 this.t = this.t.redMul(this.z.redInvm());
33657 inherits(Point, Base.BasePoint);
33659 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33660 return Point.fromJSON(this, obj);
33663 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33664 return new Point(this, x, y, z, t);
33667 Point.fromJSON = function fromJSON(curve, obj) {
33668 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33671 Point.prototype.inspect = function inspect() {
33672 if (this.isInfinity())
33673 return '
<EC Point Infinity
>';
33674 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33675 ' y: ' + this.y.fromRed().toString(
16,
2) +
33676 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33679 Point.prototype.isInfinity = function isInfinity() {
33680 // XXX This code assumes that zero is always zero in red
33681 return this.x.cmpn(
0) ===
0 &&
33682 this.y.cmp(this.z) ===
0;
33685 Point.prototype._extDbl = function _extDbl() {
33686 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33687 // #doubling-dbl-
2008-hwcd
33691 var a = this.x.redSqr();
33693 var b = this.y.redSqr();
33695 var c = this.z.redSqr();
33698 var d = this.curve._mulA(a);
33699 // E = (X1 + Y1)^
2 - A - B
33700 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33702 var g = d.redAdd(b);
33704 var f = g.redSub(c);
33706 var h = d.redSub(b);
33708 var nx = e.redMul(f);
33710 var ny = g.redMul(h);
33712 var nt = e.redMul(h);
33714 var nz = f.redMul(g);
33715 return this.curve.point(nx, ny, nz, nt);
33718 Point.prototype._projDbl = function _projDbl() {
33719 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33720 // #doubling-dbl-
2008-bbjlp
33721 // #doubling-dbl-
2007-bl
33723 // Generally
3M +
4S or
2M +
4S
33726 var b = this.x.redAdd(this.y).redSqr();
33728 var c = this.x.redSqr();
33730 var d = this.y.redSqr();
33735 if (this.curve.twisted) {
33737 var e = this.curve._mulA(c);
33739 var f = e.redAdd(d);
33741 // X3 = (B - C - D) * (F -
2)
33742 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33743 // Y3 = F * (E - D)
33744 ny = f.redMul(e.redSub(d));
33745 // Z3 = F^
2 -
2 * F
33746 nz = f.redSqr().redSub(f).redSub(f);
33749 var h = this.z.redSqr();
33751 var j = f.redSub(h).redISub(h);
33753 nx = b.redSub(c).redISub(d).redMul(j);
33754 // Y3 = F * (E - D)
33755 ny = f.redMul(e.redSub(d));
33761 var e = c.redAdd(d);
33763 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33765 var j = e.redSub(h).redSub(h);
33766 // X3 = c * (B - E) * J
33767 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33768 // Y3 = c * E * (C - D)
33769 ny = this.curve._mulC(e).redMul(c.redISub(d));
33773 return this.curve.point(nx, ny, nz);
33776 Point.prototype.dbl = function dbl() {
33777 if (this.isInfinity())
33780 // Double in extended coordinates
33781 if (this.curve.extended)
33782 return this._extDbl();
33784 return this._projDbl();
33787 Point.prototype._extAdd = function _extAdd(p) {
33788 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33789 // #addition-add-
2008-hwcd-
3
33792 // A = (Y1 - X1) * (Y2 - X2)
33793 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33794 // B = (Y1 + X1) * (Y2 + X2)
33795 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33797 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33799 var d = this.z.redMul(p.z.redAdd(p.z));
33801 var e = b.redSub(a);
33803 var f = d.redSub(c);
33805 var g = d.redAdd(c);
33807 var h = b.redAdd(a);
33809 var nx = e.redMul(f);
33811 var ny = g.redMul(h);
33813 var nt = e.redMul(h);
33815 var nz = f.redMul(g);
33816 return this.curve.point(nx, ny, nz, nt);
33819 Point.prototype._projAdd = function _projAdd(p) {
33820 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33821 // #addition-add-
2008-bbjlp
33822 // #addition-add-
2007-bl
33826 var a = this.z.redMul(p.z);
33828 var b = a.redSqr();
33830 var c = this.x.redMul(p.x);
33832 var d = this.y.redMul(p.y);
33834 var e = this.curve.d.redMul(c).redMul(d);
33836 var f = b.redSub(e);
33838 var g = b.redAdd(e);
33839 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33840 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33841 var nx = a.redMul(f).redMul(tmp);
33844 if (this.curve.twisted) {
33845 // Y3 = A * G * (D - a * C)
33846 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33850 // Y3 = A * G * (D - C)
33851 ny = a.redMul(g).redMul(d.redSub(c));
33853 nz = this.curve._mulC(f).redMul(g);
33855 return this.curve.point(nx, ny, nz);
33858 Point.prototype.add = function add(p) {
33859 if (this.isInfinity())
33861 if (p.isInfinity())
33864 if (this.curve.extended)
33865 return this._extAdd(p);
33867 return this._projAdd(p);
33870 Point.prototype.mul = function mul(k) {
33871 if (this._hasDoubles(k))
33872 return this.curve._fixedNafMul(this, k);
33874 return this.curve._wnafMul(this, k);
33877 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33878 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33881 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33882 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33885 Point.prototype.normalize = function normalize() {
33889 // Normalize coordinates
33890 var zi = this.z.redInvm();
33891 this.x = this.x.redMul(zi);
33892 this.y = this.y.redMul(zi);
33894 this.t = this.t.redMul(zi);
33895 this.z = this.curve.one;
33900 Point.prototype.neg = function neg() {
33901 return this.curve.point(this.x.redNeg(),
33904 this.t && this.t.redNeg());
33907 Point.prototype.getX = function getX() {
33909 return this.x.fromRed();
33912 Point.prototype.getY = function getY() {
33914 return this.y.fromRed();
33917 Point.prototype.eq = function eq(other) {
33918 return this === other ||
33919 this.getX().cmp(other.getX()) ===
0 &&
33920 this.getY().cmp(other.getY()) ===
0;
33923 Point.prototype.eqXToP = function eqXToP(x) {
33924 var rx = x.toRed(this.curve.red).redMul(this.z);
33925 if (this.x.cmp(rx) ===
0)
33928 var xc = x.clone();
33929 var t = this.curve.redN.redMul(this.z);
33931 xc.iadd(this.curve.n);
33932 if (xc.cmp(this.curve.p)
>=
0)
33936 if (this.x.cmp(rx) ===
0)
33942 // Compatibility with BaseCurve
33943 Point.prototype.toP = Point.prototype.normalize;
33944 Point.prototype.mixedAdd = Point.prototype.add;
33946 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33949 var curve = exports;
33951 curve.base = require('./base');
33952 curve.short = require('./short');
33953 curve.mont = require('./mont');
33954 curve.edwards = require('./edwards');
33956 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33959 var curve = require('../curve');
33960 var BN = require('bn.js');
33961 var inherits = require('inherits');
33962 var Base = curve.base;
33964 var elliptic = require('../../elliptic');
33965 var utils = elliptic.utils;
33967 function MontCurve(conf) {
33968 Base.call(this, 'mont', conf);
33970 this.a = new BN(conf.a,
16).toRed(this.red);
33971 this.b = new BN(conf.b,
16).toRed(this.red);
33972 this.i4 = new BN(
4).toRed(this.red).redInvm();
33973 this.two = new BN(
2).toRed(this.red);
33974 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
33976 inherits(MontCurve, Base);
33977 module.exports = MontCurve;
33979 MontCurve.prototype.validate = function validate(point) {
33980 var x = point.normalize().x;
33981 var x2 = x.redSqr();
33982 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
33983 var y = rhs.redSqrt();
33985 return y.redSqr().cmp(rhs) ===
0;
33988 function Point(curve, x, z) {
33989 Base.BasePoint.call(this, curve, 'projective');
33990 if (x === null && z === null) {
33991 this.x = this.curve.one;
33992 this.z = this.curve.zero;
33994 this.x = new BN(x,
16);
33995 this.z = new BN(z,
16);
33997 this.x = this.x.toRed(this.curve.red);
33999 this.z = this.z.toRed(this.curve.red);
34002 inherits(Point, Base.BasePoint);
34004 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
34005 return this.point(utils.toArray(bytes, enc),
1);
34008 MontCurve.prototype.point = function point(x, z) {
34009 return new Point(this, x, z);
34012 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
34013 return Point.fromJSON(this, obj);
34016 Point.prototype.precompute = function precompute() {
34020 Point.prototype._encode = function _encode() {
34021 return this.getX().toArray('be', this.curve.p.byteLength());
34024 Point.fromJSON = function fromJSON(curve, obj) {
34025 return new Point(curve, obj[
0], obj[
1] || curve.one);
34028 Point.prototype.inspect = function inspect() {
34029 if (this.isInfinity())
34030 return '
<EC Point Infinity
>';
34031 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34032 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
34035 Point.prototype.isInfinity = function isInfinity() {
34036 // XXX This code assumes that zero is always zero in red
34037 return this.z.cmpn(
0) ===
0;
34040 Point.prototype.dbl = function dbl() {
34041 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
34045 var a = this.x.redAdd(this.z);
34047 var aa = a.redSqr();
34049 var b = this.x.redSub(this.z);
34051 var bb = b.redSqr();
34053 var c = aa.redSub(bb);
34055 var nx = aa.redMul(bb);
34056 // Z3 = C * (BB + A24 * C)
34057 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34058 return this.curve.point(nx, nz);
34061 Point.prototype.add = function add() {
34062 throw new Error('Not supported on Montgomery curve');
34065 Point.prototype.diffAdd = function diffAdd(p, diff) {
34066 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34070 var a = this.x.redAdd(this.z);
34072 var b = this.x.redSub(this.z);
34074 var c = p.x.redAdd(p.z);
34076 var d = p.x.redSub(p.z);
34078 var da = d.redMul(a);
34080 var cb = c.redMul(b);
34081 // X5 = Z1 * (DA + CB)^
2
34082 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34083 // Z5 = X1 * (DA - CB)^
2
34084 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34085 return this.curve.point(nx, nz);
34088 Point.prototype.mul = function mul(k) {
34090 var a = this; // (N /
2) * Q + Q
34091 var b = this.curve.point(null, null); // (N /
2) * Q
34094 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34095 bits.push(t.andln(
1));
34097 for (var i = bits.length -
1; i
>=
0; i--) {
34098 if (bits[i] ===
0) {
34099 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34100 a = a.diffAdd(b, c);
34101 // N * Q =
2 * ((N /
2) * Q + Q))
34104 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34105 b = a.diffAdd(b, c);
34106 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34113 Point.prototype.mulAdd = function mulAdd() {
34114 throw new Error('Not supported on Montgomery curve');
34117 Point.prototype.jumlAdd = function jumlAdd() {
34118 throw new Error('Not supported on Montgomery curve');
34121 Point.prototype.eq = function eq(other) {
34122 return this.getX().cmp(other.getX()) ===
0;
34125 Point.prototype.normalize = function normalize() {
34126 this.x = this.x.redMul(this.z.redInvm());
34127 this.z = this.curve.one;
34131 Point.prototype.getX = function getX() {
34132 // Normalize coordinates
34135 return this.x.fromRed();
34138 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34141 var curve = require('../curve');
34142 var elliptic = require('../../elliptic');
34143 var BN = require('bn.js');
34144 var inherits = require('inherits');
34145 var Base = curve.base;
34147 var assert = elliptic.utils.assert;
34149 function ShortCurve(conf) {
34150 Base.call(this, 'short', conf);
34152 this.a = new BN(conf.a,
16).toRed(this.red);
34153 this.b = new BN(conf.b,
16).toRed(this.red);
34154 this.tinv = this.two.redInvm();
34156 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34157 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34159 // If the curve is endomorphic, precalculate beta and lambda
34160 this.endo = this._getEndomorphism(conf);
34161 this._endoWnafT1 = new Array(
4);
34162 this._endoWnafT2 = new Array(
4);
34164 inherits(ShortCurve, Base);
34165 module.exports = ShortCurve;
34167 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34168 // No efficient endomorphism
34169 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34172 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34176 beta = new BN(conf.beta,
16).toRed(this.red);
34178 var betas = this._getEndoRoots(this.p);
34179 // Choose the smallest beta
34180 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34181 beta = beta.toRed(this.red);
34184 lambda = new BN(conf.lambda,
16);
34186 // Choose the lambda that is matching selected beta
34187 var lambdas = this._getEndoRoots(this.n);
34188 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34189 lambda = lambdas[
0];
34191 lambda = lambdas[
1];
34192 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34196 // Get basis vectors, used for balanced length-two representation
34199 basis = conf.basis.map(function(vec) {
34201 a: new BN(vec.a,
16),
34202 b: new BN(vec.b,
16)
34206 basis = this._getEndoBasis(lambda);
34216 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34217 // Find roots of for x^
2 + x +
1 in F
34218 // Root = (-
1 +- Sqrt(-
3)) /
2
34220 var red = num === this.p ? this.red : BN.mont(num);
34221 var tinv = new BN(
2).toRed(red).redInvm();
34222 var ntinv = tinv.redNeg();
34224 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34226 var l1 = ntinv.redAdd(s).fromRed();
34227 var l2 = ntinv.redSub(s).fromRed();
34231 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34232 // aprxSqrt
>= sqrt(this.n)
34233 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34236 // Run EGCD, until r(L +
1) < aprxSqrt
34238 var v = this.n.clone();
34239 var x1 = new BN(
1);
34240 var y1 = new BN(
0);
34241 var x2 = new BN(
0);
34242 var y2 = new BN(
1);
34244 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34258 while (u.cmpn(
0) !==
0) {
34260 r = v.sub(q.mul(u));
34261 x = x2.sub(q.mul(x1));
34262 var y = y2.sub(q.mul(y1));
34264 if (!a1 && r.cmp(aprxSqrt) <
0) {
34269 } else if (a1 && ++i ===
2) {
34284 var len1 = a1.sqr().add(b1.sqr());
34285 var len2 = a2.sqr().add(b2.sqr());
34286 if (len2.cmp(len1)
>=
0) {
34307 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34308 var basis = this.endo.basis;
34312 var c1 = v2.b.mul(k).divRound(this.n);
34313 var c2 = v1.b.neg().mul(k).divRound(this.n);
34315 var p1 = c1.mul(v1.a);
34316 var p2 = c2.mul(v2.a);
34317 var q1 = c1.mul(v1.b);
34318 var q2 = c2.mul(v2.b);
34320 // Calculate answer
34321 var k1 = k.sub(p1).sub(p2);
34322 var k2 = q1.add(q2).neg();
34323 return { k1: k1, k2: k2 };
34326 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34329 x = x.toRed(this.red);
34331 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34332 var y = y2.redSqrt();
34333 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34334 throw new Error('invalid point');
34336 // XXX Is there any way to tell if the number is odd without converting it
34337 // to non-red form?
34338 var isOdd = y.fromRed().isOdd();
34339 if (odd && !isOdd || !odd && isOdd)
34342 return this.point(x, y);
34345 ShortCurve.prototype.validate = function validate(point) {
34352 var ax = this.a.redMul(x);
34353 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34354 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34357 ShortCurve.prototype._endoWnafMulAdd =
34358 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34359 var npoints = this._endoWnafT1;
34360 var ncoeffs = this._endoWnafT2;
34361 for (var i =
0; i < points.length; i++) {
34362 var split = this._endoSplit(coeffs[i]);
34364 var beta = p._getBeta();
34366 if (split.k1.negative) {
34370 if (split.k2.negative) {
34372 beta = beta.neg(true);
34375 npoints[i *
2] = p;
34376 npoints[i *
2 +
1] = beta;
34377 ncoeffs[i *
2] = split.k1;
34378 ncoeffs[i *
2 +
1] = split.k2;
34380 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34382 // Clean-up references to points and coefficients
34383 for (var j =
0; j < i *
2; j++) {
34390 function Point(curve, x, y, isRed) {
34391 Base.BasePoint.call(this, curve, 'affine');
34392 if (x === null && y === null) {
34397 this.x = new BN(x,
16);
34398 this.y = new BN(y,
16);
34399 // Force redgomery representation when loading from JSON
34401 this.x.forceRed(this.curve.red);
34402 this.y.forceRed(this.curve.red);
34405 this.x = this.x.toRed(this.curve.red);
34407 this.y = this.y.toRed(this.curve.red);
34411 inherits(Point, Base.BasePoint);
34413 ShortCurve.prototype.point = function point(x, y, isRed) {
34414 return new Point(this, x, y, isRed);
34417 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34418 return Point.fromJSON(this, obj, red);
34421 Point.prototype._getBeta = function _getBeta() {
34422 if (!this.curve.endo)
34425 var pre = this.precomputed;
34426 if (pre && pre.beta)
34429 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34431 var curve = this.curve;
34432 var endoMul = function(p) {
34433 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34436 beta.precomputed = {
34440 points: pre.naf.points.map(endoMul)
34442 doubles: pre.doubles && {
34443 step: pre.doubles.step,
34444 points: pre.doubles.points.map(endoMul)
34451 Point.prototype.toJSON = function toJSON() {
34452 if (!this.precomputed)
34453 return [ this.x, this.y ];
34455 return [ this.x, this.y, this.precomputed && {
34456 doubles: this.precomputed.doubles && {
34457 step: this.precomputed.doubles.step,
34458 points: this.precomputed.doubles.points.slice(
1)
34460 naf: this.precomputed.naf && {
34461 wnd: this.precomputed.naf.wnd,
34462 points: this.precomputed.naf.points.slice(
1)
34467 Point.fromJSON = function fromJSON(curve, obj, red) {
34468 if (typeof obj === 'string')
34469 obj = JSON.parse(obj);
34470 var res = curve.point(obj[
0], obj[
1], red);
34474 function obj2point(obj) {
34475 return curve.point(obj[
0], obj[
1], red);
34479 res.precomputed = {
34481 doubles: pre.doubles && {
34482 step: pre.doubles.step,
34483 points: [ res ].concat(pre.doubles.points.map(obj2point))
34487 points: [ res ].concat(pre.naf.points.map(obj2point))
34493 Point.prototype.inspect = function inspect() {
34494 if (this.isInfinity())
34495 return '
<EC Point Infinity
>';
34496 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34497 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34500 Point.prototype.isInfinity = function isInfinity() {
34504 Point.prototype.add = function add(p) {
34518 if (this.neg().eq(p))
34519 return this.curve.point(null, null);
34522 if (this.x.cmp(p.x) ===
0)
34523 return this.curve.point(null, null);
34525 var c = this.y.redSub(p.y);
34526 if (c.cmpn(
0) !==
0)
34527 c = c.redMul(this.x.redSub(p.x).redInvm());
34528 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34529 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34530 return this.curve.point(nx, ny);
34533 Point.prototype.dbl = function dbl() {
34538 var ys1 = this.y.redAdd(this.y);
34539 if (ys1.cmpn(
0) ===
0)
34540 return this.curve.point(null, null);
34542 var a = this.curve.a;
34544 var x2 = this.x.redSqr();
34545 var dyinv = ys1.redInvm();
34546 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34548 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34549 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34550 return this.curve.point(nx, ny);
34553 Point.prototype.getX = function getX() {
34554 return this.x.fromRed();
34557 Point.prototype.getY = function getY() {
34558 return this.y.fromRed();
34561 Point.prototype.mul = function mul(k) {
34564 if (this._hasDoubles(k))
34565 return this.curve._fixedNafMul(this, k);
34566 else if (this.curve.endo)
34567 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34569 return this.curve._wnafMul(this, k);
34572 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34573 var points = [ this, p2 ];
34574 var coeffs = [ k1, k2 ];
34575 if (this.curve.endo)
34576 return this.curve._endoWnafMulAdd(points, coeffs);
34578 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34581 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34582 var points = [ this, p2 ];
34583 var coeffs = [ k1, k2 ];
34584 if (this.curve.endo)
34585 return this.curve._endoWnafMulAdd(points, coeffs, true);
34587 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34590 Point.prototype.eq = function eq(p) {
34591 return this === p ||
34592 this.inf === p.inf &&
34593 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34596 Point.prototype.neg = function neg(_precompute) {
34600 var res = this.curve.point(this.x, this.y.redNeg());
34601 if (_precompute && this.precomputed) {
34602 var pre = this.precomputed;
34603 var negate = function(p) {
34606 res.precomputed = {
34609 points: pre.naf.points.map(negate)
34611 doubles: pre.doubles && {
34612 step: pre.doubles.step,
34613 points: pre.doubles.points.map(negate)
34620 Point.prototype.toJ = function toJ() {
34622 return this.curve.jpoint(null, null, null);
34624 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34628 function JPoint(curve, x, y, z) {
34629 Base.BasePoint.call(this, curve, 'jacobian');
34630 if (x === null && y === null && z === null) {
34631 this.x = this.curve.one;
34632 this.y = this.curve.one;
34633 this.z = new BN(
0);
34635 this.x = new BN(x,
16);
34636 this.y = new BN(y,
16);
34637 this.z = new BN(z,
16);
34640 this.x = this.x.toRed(this.curve.red);
34642 this.y = this.y.toRed(this.curve.red);
34644 this.z = this.z.toRed(this.curve.red);
34646 this.zOne = this.z === this.curve.one;
34648 inherits(JPoint, Base.BasePoint);
34650 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34651 return new JPoint(this, x, y, z);
34654 JPoint.prototype.toP = function toP() {
34655 if (this.isInfinity())
34656 return this.curve.point(null, null);
34658 var zinv = this.z.redInvm();
34659 var zinv2 = zinv.redSqr();
34660 var ax = this.x.redMul(zinv2);
34661 var ay = this.y.redMul(zinv2).redMul(zinv);
34663 return this.curve.point(ax, ay);
34666 JPoint.prototype.neg = function neg() {
34667 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34670 JPoint.prototype.add = function add(p) {
34672 if (this.isInfinity())
34676 if (p.isInfinity())
34680 var pz2 = p.z.redSqr();
34681 var z2 = this.z.redSqr();
34682 var u1 = this.x.redMul(pz2);
34683 var u2 = p.x.redMul(z2);
34684 var s1 = this.y.redMul(pz2.redMul(p.z));
34685 var s2 = p.y.redMul(z2.redMul(this.z));
34687 var h = u1.redSub(u2);
34688 var r = s1.redSub(s2);
34689 if (h.cmpn(
0) ===
0) {
34690 if (r.cmpn(
0) !==
0)
34691 return this.curve.jpoint(null, null, null);
34696 var h2 = h.redSqr();
34697 var h3 = h2.redMul(h);
34698 var v = u1.redMul(h2);
34700 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34701 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34702 var nz = this.z.redMul(p.z).redMul(h);
34704 return this.curve.jpoint(nx, ny, nz);
34707 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34709 if (this.isInfinity())
34713 if (p.isInfinity())
34717 var z2 = this.z.redSqr();
34719 var u2 = p.x.redMul(z2);
34721 var s2 = p.y.redMul(z2).redMul(this.z);
34723 var h = u1.redSub(u2);
34724 var r = s1.redSub(s2);
34725 if (h.cmpn(
0) ===
0) {
34726 if (r.cmpn(
0) !==
0)
34727 return this.curve.jpoint(null, null, null);
34732 var h2 = h.redSqr();
34733 var h3 = h2.redMul(h);
34734 var v = u1.redMul(h2);
34736 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34737 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34738 var nz = this.z.redMul(h);
34740 return this.curve.jpoint(nx, ny, nz);
34743 JPoint.prototype.dblp = function dblp(pow) {
34746 if (this.isInfinity())
34751 if (this.curve.zeroA || this.curve.threeA) {
34753 for (var i =
0; i < pow; i++)
34758 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34759 // N =
1 =
> 6M +
6S +
9A
34760 var a = this.curve.a;
34761 var tinv = this.curve.tinv;
34766 var jz4 = jz.redSqr().redSqr();
34769 var jyd = jy.redAdd(jy);
34770 for (var i =
0; i < pow; i++) {
34771 var jx2 = jx.redSqr();
34772 var jyd2 = jyd.redSqr();
34773 var jyd4 = jyd2.redSqr();
34774 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34776 var t1 = jx.redMul(jyd2);
34777 var nx = c.redSqr().redISub(t1.redAdd(t1));
34778 var t2 = t1.redISub(nx);
34779 var dny = c.redMul(t2);
34780 dny = dny.redIAdd(dny).redISub(jyd4);
34781 var nz = jyd.redMul(jz);
34783 jz4 = jz4.redMul(jyd4);
34790 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34793 JPoint.prototype.dbl = function dbl() {
34794 if (this.isInfinity())
34797 if (this.curve.zeroA)
34798 return this._zeroDbl();
34799 else if (this.curve.threeA)
34800 return this._threeDbl();
34802 return this._dbl();
34805 JPoint.prototype._zeroDbl = function _zeroDbl() {
34811 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34812 // #doubling-mdbl-
2007-bl
34816 var xx = this.x.redSqr();
34818 var yy = this.y.redSqr();
34820 var yyyy = yy.redSqr();
34821 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34822 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34824 // M =
3 * XX + a; a =
0
34825 var m = xx.redAdd(xx).redIAdd(xx);
34827 var t = m.redSqr().redISub(s).redISub(s);
34830 var yyyy8 = yyyy.redIAdd(yyyy);
34831 yyyy8 = yyyy8.redIAdd(yyyy8);
34832 yyyy8 = yyyy8.redIAdd(yyyy8);
34836 // Y3 = M * (S - T) -
8 * YYYY
34837 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34839 nz = this.y.redAdd(this.y);
34841 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34842 // #doubling-dbl-
2009-l
34846 var a = this.x.redSqr();
34848 var b = this.y.redSqr();
34850 var c = b.redSqr();
34851 // D =
2 * ((X1 + B)^
2 - A - C)
34852 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34855 var e = a.redAdd(a).redIAdd(a);
34857 var f = e.redSqr();
34860 var c8 = c.redIAdd(c);
34861 c8 = c8.redIAdd(c8);
34862 c8 = c8.redIAdd(c8);
34865 nx = f.redISub(d).redISub(d);
34866 // Y3 = E * (D - X3) -
8 * C
34867 ny = e.redMul(d.redISub(nx)).redISub(c8);
34868 // Z3 =
2 * Y1 * Z1
34869 nz = this.y.redMul(this.z);
34870 nz = nz.redIAdd(nz);
34873 return this.curve.jpoint(nx, ny, nz);
34876 JPoint.prototype._threeDbl = function _threeDbl() {
34882 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34883 // #doubling-mdbl-
2007-bl
34887 var xx = this.x.redSqr();
34889 var yy = this.y.redSqr();
34891 var yyyy = yy.redSqr();
34892 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34893 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34896 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34898 var t = m.redSqr().redISub(s).redISub(s);
34901 // Y3 = M * (S - T) -
8 * YYYY
34902 var yyyy8 = yyyy.redIAdd(yyyy);
34903 yyyy8 = yyyy8.redIAdd(yyyy8);
34904 yyyy8 = yyyy8.redIAdd(yyyy8);
34905 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34907 nz = this.y.redAdd(this.y);
34909 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34913 var delta = this.z.redSqr();
34915 var gamma = this.y.redSqr();
34916 // beta = X1 * gamma
34917 var beta = this.x.redMul(gamma);
34918 // alpha =
3 * (X1 - delta) * (X1 + delta)
34919 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34920 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34921 // X3 = alpha^
2 -
8 * beta
34922 var beta4 = beta.redIAdd(beta);
34923 beta4 = beta4.redIAdd(beta4);
34924 var beta8 = beta4.redAdd(beta4);
34925 nx = alpha.redSqr().redISub(beta8);
34926 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34927 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34928 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34929 var ggamma8 = gamma.redSqr();
34930 ggamma8 = ggamma8.redIAdd(ggamma8);
34931 ggamma8 = ggamma8.redIAdd(ggamma8);
34932 ggamma8 = ggamma8.redIAdd(ggamma8);
34933 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34936 return this.curve.jpoint(nx, ny, nz);
34939 JPoint.prototype._dbl = function _dbl() {
34940 var a = this.curve.a;
34946 var jz4 = jz.redSqr().redSqr();
34948 var jx2 = jx.redSqr();
34949 var jy2 = jy.redSqr();
34951 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34953 var jxd4 = jx.redAdd(jx);
34954 jxd4 = jxd4.redIAdd(jxd4);
34955 var t1 = jxd4.redMul(jy2);
34956 var nx = c.redSqr().redISub(t1.redAdd(t1));
34957 var t2 = t1.redISub(nx);
34959 var jyd8 = jy2.redSqr();
34960 jyd8 = jyd8.redIAdd(jyd8);
34961 jyd8 = jyd8.redIAdd(jyd8);
34962 jyd8 = jyd8.redIAdd(jyd8);
34963 var ny = c.redMul(t2).redISub(jyd8);
34964 var nz = jy.redAdd(jy).redMul(jz);
34966 return this.curve.jpoint(nx, ny, nz);
34969 JPoint.prototype.trpl = function trpl() {
34970 if (!this.curve.zeroA)
34971 return this.dbl().add(this);
34973 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
34977 var xx = this.x.redSqr();
34979 var yy = this.y.redSqr();
34981 var zz = this.z.redSqr();
34983 var yyyy = yy.redSqr();
34984 // M =
3 * XX + a * ZZ2; a =
0
34985 var m = xx.redAdd(xx).redIAdd(xx);
34987 var mm = m.redSqr();
34988 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
34989 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34991 e = e.redAdd(e).redIAdd(e);
34994 var ee = e.redSqr();
34996 var t = yyyy.redIAdd(yyyy);
35000 // U = (M + E)^
2 - MM - EE - T
35001 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
35002 // X3 =
4 * (X1 * EE -
4 * YY * U)
35003 var yyu4 = yy.redMul(u);
35004 yyu4 = yyu4.redIAdd(yyu4);
35005 yyu4 = yyu4.redIAdd(yyu4);
35006 var nx = this.x.redMul(ee).redISub(yyu4);
35007 nx = nx.redIAdd(nx);
35008 nx = nx.redIAdd(nx);
35009 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
35010 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
35011 ny = ny.redIAdd(ny);
35012 ny = ny.redIAdd(ny);
35013 ny = ny.redIAdd(ny);
35014 // Z3 = (Z1 + E)^
2 - ZZ - EE
35015 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
35017 return this.curve.jpoint(nx, ny, nz);
35020 JPoint.prototype.mul = function mul(k, kbase) {
35021 k = new BN(k, kbase);
35023 return this.curve._wnafMul(this, k);
35026 JPoint.prototype.eq = function eq(p) {
35027 if (p.type === 'affine')
35028 return this.eq(p.toJ());
35033 // x1 * z2^
2 == x2 * z1^
2
35034 var z2 = this.z.redSqr();
35035 var pz2 = p.z.redSqr();
35036 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
35039 // y1 * z2^
3 == y2 * z1^
3
35040 var z3 = z2.redMul(this.z);
35041 var pz3 = pz2.redMul(p.z);
35042 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
35045 JPoint.prototype.eqXToP = function eqXToP(x) {
35046 var zs = this.z.redSqr();
35047 var rx = x.toRed(this.curve.red).redMul(zs);
35048 if (this.x.cmp(rx) ===
0)
35051 var xc = x.clone();
35052 var t = this.curve.redN.redMul(zs);
35054 xc.iadd(this.curve.n);
35055 if (xc.cmp(this.curve.p)
>=
0)
35059 if (this.x.cmp(rx) ===
0)
35065 JPoint.prototype.inspect = function inspect() {
35066 if (this.isInfinity())
35067 return '
<EC JPoint Infinity
>';
35068 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35069 ' y: ' + this.y.toString(
16,
2) +
35070 ' z: ' + this.z.toString(
16,
2) + '
>';
35073 JPoint.prototype.isInfinity = function isInfinity() {
35074 // XXX This code assumes that zero is always zero in red
35075 return this.z.cmpn(
0) ===
0;
35078 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35081 var curves = exports;
35083 var hash = require('hash.js');
35084 var elliptic = require('../elliptic');
35086 var assert = elliptic.utils.assert;
35088 function PresetCurve(options) {
35089 if (options.type === 'short')
35090 this.curve = new elliptic.curve.short(options);
35091 else if (options.type === 'edwards')
35092 this.curve = new elliptic.curve.edwards(options);
35094 this.curve = new elliptic.curve.mont(options);
35095 this.g = this.curve.g;
35096 this.n = this.curve.n;
35097 this.hash = options.hash;
35099 assert(this.g.validate(), 'Invalid curve');
35100 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35102 curves.PresetCurve = PresetCurve;
35104 function defineCurve(name, options) {
35105 Object.defineProperty(curves, name, {
35106 configurable: true,
35109 var curve = new PresetCurve(options);
35110 Object.defineProperty(curves, name, {
35111 configurable: true,
35120 defineCurve('p192', {
35123 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35124 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35125 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35126 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35130 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35131 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35135 defineCurve('p224', {
35138 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35139 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35140 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35141 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35145 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35146 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35150 defineCurve('p256', {
35153 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35154 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35155 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35156 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35160 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35161 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35165 defineCurve('p384', {
35168 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35169 'fffffffe ffffffff
00000000 00000000 ffffffff',
35170 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35171 'fffffffe ffffffff
00000000 00000000 fffffffc',
35172 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35173 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35174 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35175 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35179 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35180 '
5502f25d bf55296c
3a545e38
72760ab7',
35181 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35182 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35186 defineCurve('p521', {
35189 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35190 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35191 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35192 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35193 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35194 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35195 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35196 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35197 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35198 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35199 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35200 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35204 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35205 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35206 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35207 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35208 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35209 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35213 defineCurve('curve25519', {
35216 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35219 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35227 defineCurve('ed25519', {
35230 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35233 // -
121665 * (
121666^(-
1)) (mod P)
35234 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35235 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35239 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35242 '
6666666666666666666666666666666666666666666666666666666666666658'
35248 pre = require('./precomputed/secp256k1');
35253 defineCurve('secp256k1', {
35256 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35259 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35263 // Precomputed endomorphism
35264 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35265 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35268 a: '
3086d221a7d46bcde86c90e49284eb15',
35269 b: '-e4437ed6010e88286f547fa90abfe4c3'
35272 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35273 b: '
3086d221a7d46bcde86c90e49284eb15'
35279 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35280 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35285 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35288 var BN = require('bn.js');
35289 var elliptic = require('../../elliptic');
35290 var utils = elliptic.utils;
35291 var assert = utils.assert;
35293 var KeyPair = require('./key');
35294 var Signature = require('./signature');
35296 function EC(options) {
35297 if (!(this instanceof EC))
35298 return new EC(options);
35300 // Shortcut `elliptic.ec(curve-name)`
35301 if (typeof options === 'string') {
35302 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35304 options = elliptic.curves[options];
35307 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35308 if (options instanceof elliptic.curves.PresetCurve)
35309 options = { curve: options };
35311 this.curve = options.curve.curve;
35312 this.n = this.curve.n;
35313 this.nh = this.n.ushrn(
1);
35314 this.g = this.curve.g;
35317 this.g = options.curve.g;
35318 this.g.precompute(options.curve.n.bitLength() +
1);
35320 // Hash for function for DRBG
35321 this.hash = options.hash || options.curve.hash;
35323 module.exports = EC;
35325 EC.prototype.keyPair = function keyPair(options) {
35326 return new KeyPair(this, options);
35329 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35330 return KeyPair.fromPrivate(this, priv, enc);
35333 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35334 return KeyPair.fromPublic(this, pub, enc);
35337 EC.prototype.genKeyPair = function genKeyPair(options) {
35341 // Instantiate Hmac_DRBG
35342 var drbg = new elliptic.hmacDRBG({
35344 pers: options.pers,
35345 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35346 nonce: this.n.toArray()
35349 var bytes = this.n.byteLength();
35350 var ns2 = this.n.sub(new BN(
2));
35352 var priv = new BN(drbg.generate(bytes));
35353 if (priv.cmp(ns2)
> 0)
35357 return this.keyFromPrivate(priv);
35361 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35362 var delta = msg.byteLength() *
8 - this.n.bitLength();
35364 msg = msg.ushrn(delta);
35365 if (!truncOnly && msg.cmp(this.n)
>=
0)
35366 return msg.sub(this.n);
35371 EC.prototype.sign = function sign(msg, key, enc, options) {
35372 if (typeof enc === 'object') {
35379 key = this.keyFromPrivate(key, enc);
35380 msg = this._truncateToN(new BN(msg,
16));
35382 // Zero-extend key to provide enough entropy
35383 var bytes = this.n.byteLength();
35384 var bkey = key.getPrivate().toArray('be', bytes);
35386 // Zero-extend nonce to have the same byte size as N
35387 var nonce = msg.toArray('be', bytes);
35389 // Instantiate Hmac_DRBG
35390 var drbg = new elliptic.hmacDRBG({
35394 pers: options.pers,
35395 persEnc: options.persEnc
35398 // Number of bytes to generate
35399 var ns1 = this.n.sub(new BN(
1));
35401 for (var iter =
0; true; iter++) {
35402 var k = options.k ?
35404 new BN(drbg.generate(this.n.byteLength()));
35405 k = this._truncateToN(k, true);
35406 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35409 var kp = this.g.mul(k);
35410 if (kp.isInfinity())
35413 var kpX = kp.getX();
35414 var r = kpX.umod(this.n);
35415 if (r.cmpn(
0) ===
0)
35418 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35419 s = s.umod(this.n);
35420 if (s.cmpn(
0) ===
0)
35423 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35424 (kpX.cmp(r) !==
0 ?
2 :
0);
35426 // Use complement of `s`, if it is
> `n /
2`
35427 if (options.canonical && s.cmp(this.nh)
> 0) {
35429 recoveryParam ^=
1;
35432 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35436 EC.prototype.verify = function verify(msg, signature, key, enc) {
35437 msg = this._truncateToN(new BN(msg,
16));
35438 key = this.keyFromPublic(key, enc);
35439 signature = new Signature(signature, 'hex');
35441 // Perform primitive values validation
35442 var r = signature.r;
35443 var s = signature.s;
35444 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35446 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35449 // Validate signature
35450 var sinv = s.invm(this.n);
35451 var u1 = sinv.mul(msg).umod(this.n);
35452 var u2 = sinv.mul(r).umod(this.n);
35454 if (!this.curve._maxwellTrick) {
35455 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35456 if (p.isInfinity())
35459 return p.getX().umod(this.n).cmp(r) ===
0;
35462 // NOTE: Greg Maxwell's trick, inspired by:
35463 // https://git.io/vad3K
35465 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35466 if (p.isInfinity())
35469 // Compare `p.x` of Jacobian point with `r`,
35470 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35471 // inverse of `p.z^
2`
35472 return p.eqXToP(r);
35475 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35476 assert((
3 & j) === j, 'The recovery param is more than two bits');
35477 signature = new Signature(signature, enc);
35480 var e = new BN(msg);
35481 var r = signature.r;
35482 var s = signature.s;
35484 // A set LSB signifies that the y-coordinate is odd
35485 var isYOdd = j &
1;
35486 var isSecondKey = j
>> 1;
35487 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35488 throw new Error('Unable to find sencond key candinate');
35490 //
1.1. Let x = r + jn.
35492 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35494 r = this.curve.pointFromX(r, isYOdd);
35496 var rInv = signature.r.invm(n);
35497 var s1 = n.sub(e).mul(rInv).umod(n);
35498 var s2 = s.mul(rInv).umod(n);
35500 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35501 // Q = r^-
1 (sR + -eG)
35502 return this.g.mulAdd(s1, r, s2);
35505 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35506 signature = new Signature(signature, enc);
35507 if (signature.recoveryParam !== null)
35508 return signature.recoveryParam;
35510 for (var i =
0; i <
4; i++) {
35513 Qprime = this.recoverPubKey(e, signature, i);
35521 throw new Error('Unable to find valid recovery factor');
35524 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35527 var BN = require('bn.js');
35528 var elliptic = require('../../elliptic');
35529 var utils = elliptic.utils;
35530 var assert = utils.assert;
35532 function KeyPair(ec, options) {
35537 // KeyPair(ec, { priv: ..., pub: ... })
35539 this._importPrivate(options.priv, options.privEnc);
35541 this._importPublic(options.pub, options.pubEnc);
35543 module.exports = KeyPair;
35545 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35546 if (pub instanceof KeyPair)
35549 return new KeyPair(ec, {
35555 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35556 if (priv instanceof KeyPair)
35559 return new KeyPair(ec, {
35565 KeyPair.prototype.validate = function validate() {
35566 var pub = this.getPublic();
35568 if (pub.isInfinity())
35569 return { result: false, reason: 'Invalid public key' };
35570 if (!pub.validate())
35571 return { result: false, reason: 'Public key is not a point' };
35572 if (!pub.mul(this.ec.curve.n).isInfinity())
35573 return { result: false, reason: 'Public key * N != O' };
35575 return { result: true, reason: null };
35578 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35579 // compact is optional argument
35580 if (typeof compact === 'string') {
35586 this.pub = this.ec.g.mul(this.priv);
35591 return this.pub.encode(enc, compact);
35594 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35596 return this.priv.toString(
16,
2);
35601 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35602 this.priv = new BN(key, enc ||
16);
35604 // Ensure that the priv won't be bigger than n, otherwise we may fail
35605 // in fixed multiplication method
35606 this.priv = this.priv.umod(this.ec.curve.n);
35609 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35610 if (key.x || key.y) {
35611 // Montgomery points only have an `x` coordinate.
35612 // Weierstrass/Edwards points on the other hand have both `x` and
35613 // `y` coordinates.
35614 if (this.ec.curve.type === 'mont') {
35615 assert(key.x, 'Need x coordinate');
35616 } else if (this.ec.curve.type === 'short' ||
35617 this.ec.curve.type === 'edwards') {
35618 assert(key.x && key.y, 'Need both x and y coordinate');
35620 this.pub = this.ec.curve.point(key.x, key.y);
35623 this.pub = this.ec.curve.decodePoint(key, enc);
35627 KeyPair.prototype.derive = function derive(pub) {
35628 return pub.mul(this.priv).getX();
35632 KeyPair.prototype.sign = function sign(msg, enc, options) {
35633 return this.ec.sign(msg, this, enc, options);
35636 KeyPair.prototype.verify = function verify(msg, signature) {
35637 return this.ec.verify(msg, signature, this);
35640 KeyPair.prototype.inspect = function inspect() {
35641 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35642 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35645 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35648 var BN = require('bn.js');
35650 var elliptic = require('../../elliptic');
35651 var utils = elliptic.utils;
35652 var assert = utils.assert;
35654 function Signature(options, enc) {
35655 if (options instanceof Signature)
35658 if (this._importDER(options, enc))
35661 assert(options.r && options.s, 'Signature without r or s');
35662 this.r = new BN(options.r,
16);
35663 this.s = new BN(options.s,
16);
35664 if (options.recoveryParam === undefined)
35665 this.recoveryParam = null;
35667 this.recoveryParam = options.recoveryParam;
35669 module.exports = Signature;
35671 function Position() {
35675 function getLength(buf, p) {
35676 var initial = buf[p.place++];
35677 if (!(initial &
0x80)) {
35680 var octetLen = initial &
0xf;
35682 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35690 function rmPadding(buf) {
35692 var len = buf.length -
1;
35693 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35699 return buf.slice(i);
35702 Signature.prototype._importDER = function _importDER(data, enc) {
35703 data = utils.toArray(data, enc);
35704 var p = new Position();
35705 if (data[p.place++] !==
0x30) {
35708 var len = getLength(data, p);
35709 if ((len + p.place) !== data.length) {
35712 if (data[p.place++] !==
0x02) {
35715 var rlen = getLength(data, p);
35716 var r = data.slice(p.place, rlen + p.place);
35718 if (data[p.place++] !==
0x02) {
35721 var slen = getLength(data, p);
35722 if (data.length !== slen + p.place) {
35725 var s = data.slice(p.place, slen + p.place);
35726 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35729 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35733 this.r = new BN(r);
35734 this.s = new BN(s);
35735 this.recoveryParam = null;
35740 function constructLength(arr, len) {
35745 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35746 arr.push(octets |
0x80);
35748 arr.push((len
>>> (octets <<
3)) &
0xff);
35753 Signature.prototype.toDER = function toDER(enc) {
35754 var r = this.r.toArray();
35755 var s = this.s.toArray();
35759 r = [
0 ].concat(r);
35762 s = [
0 ].concat(s);
35767 while (!s[
0] && !(s[
1] &
0x80)) {
35770 var arr = [
0x02 ];
35771 constructLength(arr, r.length);
35772 arr = arr.concat(r);
35774 constructLength(arr, s.length);
35775 var backHalf = arr.concat(s);
35776 var res = [
0x30 ];
35777 constructLength(res, backHalf.length);
35778 res = res.concat(backHalf);
35779 return utils.encode(res, enc);
35782 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35785 var hash = require('hash.js');
35786 var elliptic = require('../../elliptic');
35787 var utils = elliptic.utils;
35788 var assert = utils.assert;
35789 var parseBytes = utils.parseBytes;
35790 var KeyPair = require('./key');
35791 var Signature = require('./signature');
35793 function EDDSA(curve) {
35794 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35796 if (!(this instanceof EDDSA))
35797 return new EDDSA(curve);
35799 var curve = elliptic.curves[curve].curve;
35800 this.curve = curve;
35802 this.g.precompute(curve.n.bitLength() +
1);
35804 this.pointClass = curve.point().constructor;
35805 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35806 this.hash = hash.sha512;
35809 module.exports = EDDSA;
35812 * @param {Array|String} message - message bytes
35813 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35814 * @returns {Signature} - signature
35816 EDDSA.prototype.sign = function sign(message, secret) {
35817 message = parseBytes(message);
35818 var key = this.keyFromSecret(secret);
35819 var r = this.hashInt(key.messagePrefix(), message);
35820 var R = this.g.mul(r);
35821 var Rencoded = this.encodePoint(R);
35822 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35824 var S = r.add(s_).umod(this.curve.n);
35825 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35829 * @param {Array} message - message bytes
35830 * @param {Array|String|Signature} sig - sig bytes
35831 * @param {Array|String|Point|KeyPair} pub - public key
35832 * @returns {Boolean} - true if public key matches sig of message
35834 EDDSA.prototype.verify = function verify(message, sig, pub) {
35835 message = parseBytes(message);
35836 sig = this.makeSignature(sig);
35837 var key = this.keyFromPublic(pub);
35838 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35839 var SG = this.g.mul(sig.S());
35840 var RplusAh = sig.R().add(key.pub().mul(h));
35841 return RplusAh.eq(SG);
35844 EDDSA.prototype.hashInt = function hashInt() {
35845 var hash = this.hash();
35846 for (var i =
0; i < arguments.length; i++)
35847 hash.update(arguments[i]);
35848 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35851 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35852 return KeyPair.fromPublic(this, pub);
35855 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35856 return KeyPair.fromSecret(this, secret);
35859 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35860 if (sig instanceof Signature)
35862 return new Signature(this, sig);
35866 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35868 * EDDSA defines methods for encoding and decoding points and integers. These are
35869 * helper convenience methods, that pass along to utility functions implied
35873 EDDSA.prototype.encodePoint = function encodePoint(point) {
35874 var enc = point.getY().toArray('le', this.encodingLength);
35875 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35879 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35880 bytes = utils.parseBytes(bytes);
35882 var lastIx = bytes.length -
1;
35883 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35884 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35886 var y = utils.intFromLE(normed);
35887 return this.curve.pointFromY(y, xIsOdd);
35890 EDDSA.prototype.encodeInt = function encodeInt(num) {
35891 return num.toArray('le', this.encodingLength);
35894 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35895 return utils.intFromLE(bytes);
35898 EDDSA.prototype.isPoint = function isPoint(val) {
35899 return val instanceof this.pointClass;
35902 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35905 var elliptic = require('../../elliptic');
35906 var utils = elliptic.utils;
35907 var assert = utils.assert;
35908 var parseBytes = utils.parseBytes;
35909 var cachedProperty = utils.cachedProperty;
35912 * @param {EDDSA} eddsa - instance
35913 * @param {Object} params - public/private key parameters
35915 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35916 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35917 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35920 function KeyPair(eddsa, params) {
35921 this.eddsa = eddsa;
35922 this._secret = parseBytes(params.secret);
35923 if (eddsa.isPoint(params.pub))
35924 this._pub = params.pub;
35926 this._pubBytes = parseBytes(params.pub);
35929 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35930 if (pub instanceof KeyPair)
35932 return new KeyPair(eddsa, { pub: pub });
35935 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35936 if (secret instanceof KeyPair)
35938 return new KeyPair(eddsa, { secret: secret });
35941 KeyPair.prototype.secret = function secret() {
35942 return this._secret;
35945 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35946 return this.eddsa.encodePoint(this.pub());
35949 cachedProperty(KeyPair, 'pub', function pub() {
35950 if (this._pubBytes)
35951 return this.eddsa.decodePoint(this._pubBytes);
35952 return this.eddsa.g.mul(this.priv());
35955 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35956 var eddsa = this.eddsa;
35957 var hash = this.hash();
35958 var lastIx = eddsa.encodingLength -
1;
35960 var a = hash.slice(
0, eddsa.encodingLength);
35968 cachedProperty(KeyPair, 'priv', function priv() {
35969 return this.eddsa.decodeInt(this.privBytes());
35972 cachedProperty(KeyPair, 'hash', function hash() {
35973 return this.eddsa.hash().update(this.secret()).digest();
35976 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
35977 return this.hash().slice(this.eddsa.encodingLength);
35980 KeyPair.prototype.sign = function sign(message) {
35981 assert(this._secret, 'KeyPair can only verify');
35982 return this.eddsa.sign(message, this);
35985 KeyPair.prototype.verify = function verify(message, sig) {
35986 return this.eddsa.verify(message, sig, this);
35989 KeyPair.prototype.getSecret = function getSecret(enc) {
35990 assert(this._secret, 'KeyPair is public only');
35991 return utils.encode(this.secret(), enc);
35994 KeyPair.prototype.getPublic = function getPublic(enc) {
35995 return utils.encode(this.pubBytes(), enc);
35998 module.exports = KeyPair;
36000 },{"../../elliptic":
39}],
51:[function(require,module,exports){
36003 var BN = require('bn.js');
36004 var elliptic = require('../../elliptic');
36005 var utils = elliptic.utils;
36006 var assert = utils.assert;
36007 var cachedProperty = utils.cachedProperty;
36008 var parseBytes = utils.parseBytes;
36011 * @param {EDDSA} eddsa - eddsa instance
36012 * @param {Array
<Bytes>|Object} sig -
36013 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
36014 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
36015 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
36016 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
36018 function Signature(eddsa, sig) {
36019 this.eddsa = eddsa;
36021 if (typeof sig !== 'object')
36022 sig = parseBytes(sig);
36024 if (Array.isArray(sig)) {
36026 R: sig.slice(
0, eddsa.encodingLength),
36027 S: sig.slice(eddsa.encodingLength)
36031 assert(sig.R && sig.S, 'Signature without R or S');
36033 if (eddsa.isPoint(sig.R))
36035 if (sig.S instanceof BN)
36038 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
36039 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
36042 cachedProperty(Signature, 'S', function S() {
36043 return this.eddsa.decodeInt(this.Sencoded());
36046 cachedProperty(Signature, 'R', function R() {
36047 return this.eddsa.decodePoint(this.Rencoded());
36050 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36051 return this.eddsa.encodePoint(this.R());
36054 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36055 return this.eddsa.encodeInt(this.S());
36058 Signature.prototype.toBytes = function toBytes() {
36059 return this.Rencoded().concat(this.Sencoded());
36062 Signature.prototype.toHex = function toHex() {
36063 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36066 module.exports = Signature;
36068 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36071 var hash = require('hash.js');
36072 var elliptic = require('../elliptic');
36073 var utils = elliptic.utils;
36074 var assert = utils.assert;
36076 function HmacDRBG(options) {
36077 if (!(this instanceof HmacDRBG))
36078 return new HmacDRBG(options);
36079 this.hash = options.hash;
36080 this.predResist = !!options.predResist;
36082 this.outLen = this.hash.outSize;
36083 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36085 this.reseed = null;
36086 this.reseedInterval = null;
36090 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36091 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36092 var pers = utils.toArray(options.pers, options.persEnc);
36093 assert(entropy.length
>= (this.minEntropy /
8),
36094 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36095 this._init(entropy, nonce, pers);
36097 module.exports = HmacDRBG;
36099 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36100 var seed = entropy.concat(nonce).concat(pers);
36102 this.K = new Array(this.outLen /
8);
36103 this.V = new Array(this.outLen /
8);
36104 for (var i =
0; i < this.V.length; i++) {
36109 this._update(seed);
36111 this.reseedInterval =
0x1000000000000; //
2^
48
36114 HmacDRBG.prototype._hmac = function hmac() {
36115 return new hash.hmac(this.hash, this.K);
36118 HmacDRBG.prototype._update = function update(seed) {
36119 var kmac = this._hmac()
36123 kmac = kmac.update(seed);
36124 this.K = kmac.digest();
36125 this.V = this._hmac().update(this.V).digest();
36129 this.K = this._hmac()
36134 this.V = this._hmac().update(this.V).digest();
36137 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36138 // Optional entropy enc
36139 if (typeof entropyEnc !== 'string') {
36145 entropy = utils.toBuffer(entropy, entropyEnc);
36146 add = utils.toBuffer(add, addEnc);
36148 assert(entropy.length
>= (this.minEntropy /
8),
36149 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36151 this._update(entropy.concat(add || []));
36155 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36156 if (this.reseed
> this.reseedInterval)
36157 throw new Error('Reseed is required');
36159 // Optional encoding
36160 if (typeof enc !== 'string') {
36166 // Optional additional data
36168 add = utils.toArray(add, addEnc);
36173 while (temp.length < len) {
36174 this.V = this._hmac().update(this.V).digest();
36175 temp = temp.concat(this.V);
36178 var res = temp.slice(
0, len);
36181 return utils.encode(res, enc);
36184 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36190 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36191 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36194 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36195 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36198 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36199 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36202 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36203 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36206 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36207 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36210 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36211 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36214 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36215 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36218 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36219 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36222 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36223 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36226 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36227 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36230 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36231 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36234 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36235 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36238 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36239 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36242 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36243 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36246 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36247 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36250 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36251 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36254 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36255 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36258 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36259 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36262 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36263 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36266 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36267 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36270 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36271 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36274 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36275 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36278 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36279 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36282 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36283 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36286 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36287 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36290 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36291 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36294 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36295 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36298 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36299 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36302 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36303 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36306 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36307 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36310 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36311 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36314 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36315 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36318 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36319 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36322 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36323 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36326 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36327 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36330 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36331 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36334 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36335 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36338 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36339 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36342 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36343 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36346 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36347 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36350 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36351 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36354 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36355 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36358 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36359 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36362 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36363 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36366 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36367 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36370 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36371 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36374 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36375 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36378 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36379 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36382 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36383 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36386 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36387 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36390 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36391 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36394 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36395 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36398 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36399 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36402 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36403 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36406 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36407 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36410 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36411 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36414 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36415 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36418 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36419 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36422 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36423 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36426 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36427 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36430 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36431 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36434 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36435 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36438 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36439 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36442 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36443 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36446 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36447 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36455 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36456 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36459 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36460 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36463 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36464 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36467 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36468 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36471 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36472 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36475 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36476 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36479 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36480 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36483 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36484 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36487 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36488 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36491 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36492 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36495 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36496 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36499 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36500 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36503 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36504 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36507 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36508 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36511 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36512 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36515 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36516 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36519 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36520 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36523 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36524 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36527 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36528 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36531 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36532 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36535 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36536 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36539 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36540 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36543 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36544 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36547 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36548 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36551 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36552 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36555 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36556 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36559 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36560 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36563 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36564 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36567 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36568 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36571 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36572 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36575 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36576 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36579 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36580 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36583 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36584 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36587 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36588 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36591 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36592 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36595 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36596 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36599 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36600 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36603 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36604 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36607 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36608 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36611 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36612 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36615 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36616 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36619 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36620 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36623 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36624 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36627 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36628 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36631 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36632 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36635 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36636 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36639 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36640 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36643 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36644 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36647 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36648 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36651 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36652 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36655 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36656 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36659 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36660 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36663 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36664 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36667 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36668 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36671 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36672 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36675 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36676 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36679 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36680 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36683 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36684 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36687 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36688 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36691 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36692 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36695 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36696 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36699 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36700 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36703 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36704 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36707 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36708 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36711 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36712 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36715 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36716 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36719 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36720 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36723 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36724 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36727 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36728 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36731 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36732 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36735 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36736 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36739 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36740 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36743 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36744 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36747 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36748 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36751 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36752 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36755 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36756 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36759 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36760 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36763 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36764 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36767 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36768 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36771 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36772 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36775 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36776 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36779 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36780 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36783 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36784 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36787 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36788 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36791 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36792 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36795 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36796 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36799 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36800 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36803 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36804 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36807 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36808 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36811 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36812 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36815 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36816 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36819 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36820 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36823 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36824 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36827 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36828 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36831 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36832 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36835 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36836 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36839 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36840 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36843 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36844 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36847 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36848 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36851 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36852 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36855 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36856 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36859 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36860 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36863 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36864 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36867 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36868 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36871 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36872 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36875 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36876 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36879 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36880 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36883 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36884 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36887 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36888 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36891 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36892 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36895 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36896 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36899 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36900 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36903 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36904 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36907 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36908 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36911 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36912 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36915 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36916 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36919 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36920 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36923 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36924 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36927 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36928 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36931 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36932 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36935 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36936 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36939 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36940 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36943 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36944 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36947 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36948 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36951 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36952 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36955 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36956 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36959 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36960 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36966 },{}],
54:[function(require,module,exports){
36969 var utils = exports;
36970 var BN = require('bn.js');
36972 utils.assert = function assert(val, msg) {
36974 throw new Error(msg || 'Assertion failed');
36977 function toArray(msg, enc) {
36978 if (Array.isArray(msg))
36979 return msg.slice();
36983 if (typeof msg !== 'string') {
36984 for (var i =
0; i < msg.length; i++)
36985 res[i] = msg[i] |
0;
36989 for (var i =
0; i < msg.length; i++) {
36990 var c = msg.charCodeAt(i);
36998 } else if (enc === 'hex') {
36999 msg = msg.replace(/[^a-z0-
9]+/ig, '');
37000 if (msg.length %
2 !==
0)
37002 for (var i =
0; i < msg.length; i +=
2)
37003 res.push(parseInt(msg[i] + msg[i +
1],
16));
37007 utils.toArray = toArray;
37009 function zero2(word) {
37010 if (word.length ===
1)
37015 utils.zero2 = zero2;
37017 function toHex(msg) {
37019 for (var i =
0; i < msg.length; i++)
37020 res += zero2(msg[i].toString(
16));
37023 utils.toHex = toHex;
37025 utils.encode = function encode(arr, enc) {
37032 // Represent num in a w-NAF form
37033 function getNAF(num, w) {
37035 var ws =
1 << (w +
1);
37036 var k = num.clone();
37037 while (k.cmpn(
1)
>=
0) {
37040 var mod = k.andln(ws -
1);
37041 if (mod
> (ws
>> 1) -
1)
37042 z = (ws
>> 1) - mod;
37051 // Optimization, shift by word if possible
37052 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37053 for (var i =
1; i < shift; i++)
37060 utils.getNAF = getNAF;
37062 // Represent k1, k2 in a Joint Sparse Form
37063 function getJSF(k1, k2) {
37073 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37076 var m14 = (k1.andln(
3) + d1) &
3;
37077 var m24 = (k2.andln(
3) + d2) &
3;
37083 if ((m14 &
1) ===
0) {
37086 var m8 = (k1.andln(
7) + d1) &
7;
37087 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37095 if ((m24 &
1) ===
0) {
37098 var m8 = (k2.andln(
7) + d2) &
7;
37099 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37107 if (
2 * d1 === u1 +
1)
37109 if (
2 * d2 === u2 +
1)
37117 utils.getJSF = getJSF;
37119 function cachedProperty(obj, name, computer) {
37120 var key = '_' + name;
37121 obj.prototype[name] = function cachedProperty() {
37122 return this[key] !== undefined ? this[key] :
37123 this[key] = computer.call(this);
37126 utils.cachedProperty = cachedProperty;
37128 function parseBytes(bytes) {
37129 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37132 utils.parseBytes = parseBytes;
37134 function intFromLE(bytes) {
37135 return new BN(bytes, 'hex', 'le');
37137 utils.intFromLE = intFromLE;
37140 },{
"bn.js":
33}],
55:[function(require,module,exports){
37145 "raw":
"elliptic@^6.2.3",
37147 "escapedName":
"elliptic",
37148 "name":
"elliptic",
37149 "rawSpec":
"^6.2.3",
37150 "spec":
">=6.2.3 <7.0.0",
37153 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37156 "_from":
"elliptic@>=6.2.3 <7.0.0",
37157 "_id":
"elliptic@6.3.3",
37159 "_location":
"/elliptic",
37160 "_nodeVersion":
"7.0.0",
37161 "_npmOperationalInternal": {
37162 "host":
"packages-18-east.internal.npmjs.com",
37163 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37167 "email":
"fedor@indutny.com"
37169 "_npmVersion":
"3.10.8",
37170 "_phantomChildren": {},
37172 "raw":
"elliptic@^6.2.3",
37174 "escapedName":
"elliptic",
37175 "name":
"elliptic",
37176 "rawSpec":
"^6.2.3",
37177 "spec":
">=6.2.3 <7.0.0",
37181 "/browserify-sign",
37185 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37186 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37187 "_shrinkwrap": null,
37188 "_spec":
"elliptic@^6.2.3",
37189 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37191 "name":
"Fedor Indutny",
37192 "email":
"fedor@indutny.com"
37195 "url":
"https://github.com/indutny/elliptic/issues"
37199 "brorand":
"^1.0.1",
37200 "hash.js":
"^1.0.0",
37201 "inherits":
"^2.0.1"
37203 "description":
"EC cryptography",
37204 "devDependencies": {
37206 "coveralls":
"^2.11.3",
37208 "grunt-browserify":
"^5.0.0",
37209 "grunt-cli":
"^1.2.0",
37210 "grunt-contrib-connect":
"^1.0.0",
37211 "grunt-contrib-copy":
"^1.0.0",
37212 "grunt-contrib-uglify":
"^1.0.1",
37213 "grunt-mocha-istanbul":
"^3.0.1",
37214 "grunt-saucelabs":
"^8.6.2",
37215 "istanbul":
"^0.4.2",
37217 "jshint":
"^2.6.0",
37222 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37223 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37228 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37229 "homepage":
"https://github.com/indutny/elliptic",
37237 "main":
"lib/elliptic.js",
37241 "email":
"fedor@indutny.com"
37244 "name":
"elliptic",
37245 "optionalDependencies": {},
37246 "readme":
"ERROR: No README data found!",
37249 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37252 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37253 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37254 "lint":
"npm run jscs && npm run jshint",
37255 "test":
"npm run lint && npm run unit",
37256 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37257 "version":
"grunt dist && git add dist/"
37262 },{}],
56:[function(require,module,exports){
37263 (function (Buffer){
37266 var isHexPrefixed = require('is-hex-prefixed');
37267 var stripHexPrefix = require('strip-hex-prefix');
37270 * Pads a `String` to have an even length
37271 * @param {String} value
37272 * @return {String} output
37274 function padToEven(value) {
37275 var a = value; // eslint-disable-line
37277 if (typeof a !== 'string') {
37278 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37281 if (a.length %
2) {
37289 * Converts a `Number` into a hex `String`
37290 * @param {Number} i
37293 function intToHex(i) {
37294 var hex = i.toString(
16); // eslint-disable-line
37296 return '
0x' + padToEven(hex);
37300 * Converts an `Number` to a `Buffer`
37301 * @param {Number} i
37304 function intToBuffer(i) {
37305 var hex = intToHex(i);
37307 return new Buffer(hex.slice(
2), 'hex');
37311 * Get the binary size of a string
37312 * @param {String} str
37315 function getBinarySize(str) {
37316 if (typeof str !== 'string') {
37317 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37320 return Buffer.byteLength(str, 'utf8');
37324 * Returns TRUE if the first specified array contains all elements
37325 * from the second one. FALSE otherwise.
37327 * @param {array} superset
37328 * @param {array} subset
37330 * @returns {boolean}
37332 function arrayContainsArray(superset, subset, some) {
37333 if (Array.isArray(superset) !== true) {
37334 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37336 if (Array.isArray(subset) !== true) {
37337 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37340 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37341 return superset.indexOf(value)
>=
0;
37346 * Should be called to get utf8 from it's hex representation
37349 * @param {String} string in hex
37350 * @returns {String} ascii string representation of hex value
37352 function toUtf8(hex) {
37353 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37355 return bufferValue.toString('utf8');
37359 * Should be called to get ascii from it's hex representation
37362 * @param {String} string in hex
37363 * @returns {String} ascii string representation of hex value
37365 function toAscii(hex) {
37366 var str = ''; // eslint-disable-line
37368 l = hex.length; // eslint-disable-line
37370 if (hex.substring(
0,
2) === '
0x') {
37374 for (; i < l; i +=
2) {
37375 var code = parseInt(hex.substr(i,
2),
16);
37376 str += String.fromCharCode(code);
37383 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37386 * @param {String} string
37387 * @param {Number} optional padding
37388 * @returns {String} hex representation of input string
37390 function fromUtf8(stringValue) {
37391 var str = new Buffer(stringValue, 'utf8');
37393 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37397 * Should be called to get hex representation (prefixed by
0x) of ascii string
37399 * @method fromAscii
37400 * @param {String} string
37401 * @param {Number} optional padding
37402 * @returns {String} hex representation of input string
37404 function fromAscii(stringValue) {
37405 var hex = ''; // eslint-disable-line
37406 for (var i =
0; i < stringValue.length; i++) {
37407 // eslint-disable-line
37408 var code = stringValue.charCodeAt(i);
37409 var n = code.toString(
16);
37410 hex += n.length <
2 ? '
0' + n : n;
37417 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37419 * @method getKeys get specific key from inner object array of objects
37420 * @param {String} params
37421 * @param {String} key
37422 * @param {Boolean} allowEmpty
37423 * @returns {Array} output just a simple array of output keys
37425 function getKeys(params, key, allowEmpty) {
37426 if (!Array.isArray(params)) {
37427 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37429 if (typeof key !== 'string') {
37430 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37433 var result = []; // eslint-disable-line
37435 for (var i =
0; i < params.length; i++) {
37436 // eslint-disable-line
37437 var value = params[i][key]; // eslint-disable-line
37438 if (allowEmpty && !value) {
37440 } else if (typeof value !== 'string') {
37441 throw new Error('invalid abi');
37443 result.push(value);
37450 * Is the string a hex string.
37452 * @method check if string is hex string of specific length
37453 * @param {String} value
37454 * @param {Number} length
37455 * @returns {Boolean} output the string is a hex string
37457 function isHexString(value, length) {
37458 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37462 if (length && value.length !==
2 +
2 * length) {
37470 arrayContainsArray: arrayContainsArray,
37471 intToBuffer: intToBuffer,
37472 getBinarySize: getBinarySize,
37473 isHexPrefixed: isHexPrefixed,
37474 stripHexPrefix: stripHexPrefix,
37475 padToEven: padToEven,
37476 intToHex: intToHex,
37477 fromAscii: fromAscii,
37478 fromUtf8: fromUtf8,
37482 isHexString: isHexString
37484 }).call(this,require("buffer").Buffer)
37485 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37486 var hash = exports;
37488 hash.utils = require('./hash/utils');
37489 hash.common = require('./hash/common');
37490 hash.sha = require('./hash/sha');
37491 hash.ripemd = require('./hash/ripemd');
37492 hash.hmac = require('./hash/hmac');
37494 // Proxy hash functions to the main object
37495 hash.sha1 = hash.sha.sha1;
37496 hash.sha256 = hash.sha.sha256;
37497 hash.sha224 = hash.sha.sha224;
37498 hash.sha384 = hash.sha.sha384;
37499 hash.sha512 = hash.sha.sha512;
37500 hash.ripemd160 = hash.ripemd.ripemd160;
37502 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37503 var hash = require('../hash');
37504 var utils = hash.utils;
37505 var assert = utils.assert;
37507 function BlockHash() {
37508 this.pending = null;
37509 this.pendingTotal =
0;
37510 this.blockSize = this.constructor.blockSize;
37511 this.outSize = this.constructor.outSize;
37512 this.hmacStrength = this.constructor.hmacStrength;
37513 this.padLength = this.constructor.padLength /
8;
37514 this.endian = 'big';
37516 this._delta8 = this.blockSize /
8;
37517 this._delta32 = this.blockSize /
32;
37519 exports.BlockHash = BlockHash;
37521 BlockHash.prototype.update = function update(msg, enc) {
37522 // Convert message to array, pad it, and join into
32bit blocks
37523 msg = utils.toArray(msg, enc);
37525 this.pending = msg;
37527 this.pending = this.pending.concat(msg);
37528 this.pendingTotal += msg.length;
37530 // Enough data, try updating
37531 if (this.pending.length
>= this._delta8) {
37532 msg = this.pending;
37534 // Process pending data in blocks
37535 var r = msg.length % this._delta8;
37536 this.pending = msg.slice(msg.length - r, msg.length);
37537 if (this.pending.length ===
0)
37538 this.pending = null;
37540 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37541 for (var i =
0; i < msg.length; i += this._delta32)
37542 this._update(msg, i, i + this._delta32);
37548 BlockHash.prototype.digest = function digest(enc) {
37549 this.update(this._pad());
37550 assert(this.pending === null);
37552 return this._digest(enc);
37555 BlockHash.prototype._pad = function pad() {
37556 var len = this.pendingTotal;
37557 var bytes = this._delta8;
37558 var k = bytes - ((len + this.padLength) % bytes);
37559 var res = new Array(k + this.padLength);
37561 for (var i =
1; i < k; i++)
37566 if (this.endian === 'big') {
37567 for (var t =
8; t < this.padLength; t++)
37574 res[i++] = (len
>>> 24) &
0xff;
37575 res[i++] = (len
>>> 16) &
0xff;
37576 res[i++] = (len
>>> 8) &
0xff;
37577 res[i++] = len &
0xff;
37579 res[i++] = len &
0xff;
37580 res[i++] = (len
>>> 8) &
0xff;
37581 res[i++] = (len
>>> 16) &
0xff;
37582 res[i++] = (len
>>> 24) &
0xff;
37588 for (var t =
8; t < this.padLength; t++)
37595 },{
"../hash":
57}],
59:[function(require,module,exports){
37596 var hmac = exports;
37598 var hash = require('../hash');
37599 var utils = hash.utils;
37600 var assert = utils.assert;
37602 function Hmac(hash, key, enc) {
37603 if (!(this instanceof Hmac))
37604 return new Hmac(hash, key, enc);
37606 this.blockSize = hash.blockSize /
8;
37607 this.outSize = hash.outSize /
8;
37611 this._init(utils.toArray(key, enc));
37613 module.exports = Hmac;
37615 Hmac.prototype._init = function init(key) {
37616 // Shorten key, if needed
37617 if (key.length
> this.blockSize)
37618 key = new this.Hash().update(key).digest();
37619 assert(key.length <= this.blockSize);
37621 // Add padding to key
37622 for (var i = key.length; i < this.blockSize; i++)
37625 for (var i =
0; i < key.length; i++)
37627 this.inner = new this.Hash().update(key);
37629 //
0x36 ^
0x5c =
0x6a
37630 for (var i =
0; i < key.length; i++)
37632 this.outer = new this.Hash().update(key);
37635 Hmac.prototype.update = function update(msg, enc) {
37636 this.inner.update(msg, enc);
37640 Hmac.prototype.digest = function digest(enc) {
37641 this.outer.update(this.inner.digest());
37642 return this.outer.digest(enc);
37645 },{"../hash":
57}],
60:[function(require,module,exports){
37646 var hash = require('../hash');
37647 var utils = hash.utils;
37649 var rotl32 = utils.rotl32;
37650 var sum32 = utils.sum32;
37651 var sum32_3 = utils.sum32_3;
37652 var sum32_4 = utils.sum32_4;
37653 var BlockHash = hash.common.BlockHash;
37655 function RIPEMD160() {
37656 if (!(this instanceof RIPEMD160))
37657 return new RIPEMD160();
37659 BlockHash.call(this);
37661 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37662 this.endian = 'little';
37664 utils.inherits(RIPEMD160, BlockHash);
37665 exports.ripemd160 = RIPEMD160;
37667 RIPEMD160.blockSize =
512;
37668 RIPEMD160.outSize =
160;
37669 RIPEMD160.hmacStrength =
192;
37670 RIPEMD160.padLength =
64;
37672 RIPEMD160.prototype._update = function update(msg, start) {
37683 for (var j =
0; j <
80; j++) {
37686 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37696 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37701 Dh = rotl32(Ch,
10);
37705 T = sum32_3(this.h[
1], C, Dh);
37706 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37707 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37708 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37709 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37713 RIPEMD160.prototype._digest = function digest(enc) {
37715 return utils.toHex32(this.h, 'little');
37717 return utils.split32(this.h, 'little');
37720 function f(j, x, y, z) {
37724 return (x & y) | ((~x) & z);
37726 return (x | (~y)) ^ z;
37728 return (x & z) | (y & (~z));
37730 return x ^ (y | (~z));
37760 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37761 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37762 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37763 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37764 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37768 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37769 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37770 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37771 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37772 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37776 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37777 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37778 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37779 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37780 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37784 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37785 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37786 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37787 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37788 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37791 },{"../hash":
57}],
61:[function(require,module,exports){
37792 var hash = require('../hash');
37793 var utils = hash.utils;
37794 var assert = utils.assert;
37796 var rotr32 = utils.rotr32;
37797 var rotl32 = utils.rotl32;
37798 var sum32 = utils.sum32;
37799 var sum32_4 = utils.sum32_4;
37800 var sum32_5 = utils.sum32_5;
37801 var rotr64_hi = utils.rotr64_hi;
37802 var rotr64_lo = utils.rotr64_lo;
37803 var shr64_hi = utils.shr64_hi;
37804 var shr64_lo = utils.shr64_lo;
37805 var sum64 = utils.sum64;
37806 var sum64_hi = utils.sum64_hi;
37807 var sum64_lo = utils.sum64_lo;
37808 var sum64_4_hi = utils.sum64_4_hi;
37809 var sum64_4_lo = utils.sum64_4_lo;
37810 var sum64_5_hi = utils.sum64_5_hi;
37811 var sum64_5_lo = utils.sum64_5_lo;
37812 var BlockHash = hash.common.BlockHash;
37815 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37816 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37817 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37818 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37819 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37820 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37821 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37822 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37823 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37824 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37825 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37826 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37827 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37828 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37829 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37830 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37834 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37835 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37836 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37837 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37838 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37839 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37840 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37841 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37842 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37843 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37844 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37845 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37846 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37847 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37848 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37849 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37850 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37851 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37852 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37853 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37854 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37855 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37856 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37857 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37858 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37859 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37860 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37861 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37862 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37863 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37864 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37865 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37866 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37867 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37868 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37869 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37870 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37871 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37872 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37873 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37877 0x5A827999,
0x6ED9EBA1,
37878 0x8F1BBCDC,
0xCA62C1D6
37881 function SHA256() {
37882 if (!(this instanceof SHA256))
37883 return new SHA256();
37885 BlockHash.call(this);
37886 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37887 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37889 this.W = new Array(
64);
37891 utils.inherits(SHA256, BlockHash);
37892 exports.sha256 = SHA256;
37894 SHA256.blockSize =
512;
37895 SHA256.outSize =
256;
37896 SHA256.hmacStrength =
192;
37897 SHA256.padLength =
64;
37899 SHA256.prototype._update = function _update(msg, start) {
37902 for (var i =
0; i <
16; i++)
37903 W[i] = msg[start + i];
37904 for (; i < W.length; i++)
37905 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37916 assert(this.k.length === W.length);
37917 for (var i =
0; i < W.length; i++) {
37918 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37919 var T2 = sum32(s0_256(a), maj32(a, b, c));
37930 this.h[
0] = sum32(this.h[
0], a);
37931 this.h[
1] = sum32(this.h[
1], b);
37932 this.h[
2] = sum32(this.h[
2], c);
37933 this.h[
3] = sum32(this.h[
3], d);
37934 this.h[
4] = sum32(this.h[
4], e);
37935 this.h[
5] = sum32(this.h[
5], f);
37936 this.h[
6] = sum32(this.h[
6], g);
37937 this.h[
7] = sum32(this.h[
7], h);
37940 SHA256.prototype._digest = function digest(enc) {
37942 return utils.toHex32(this.h, 'big');
37944 return utils.split32(this.h, 'big');
37947 function SHA224() {
37948 if (!(this instanceof SHA224))
37949 return new SHA224();
37952 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37953 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37955 utils.inherits(SHA224, SHA256);
37956 exports.sha224 = SHA224;
37958 SHA224.blockSize =
512;
37959 SHA224.outSize =
224;
37960 SHA224.hmacStrength =
192;
37961 SHA224.padLength =
64;
37963 SHA224.prototype._digest = function digest(enc) {
37964 // Just truncate output
37966 return utils.toHex32(this.h.slice(
0,
7), 'big');
37968 return utils.split32(this.h.slice(
0,
7), 'big');
37971 function SHA512() {
37972 if (!(this instanceof SHA512))
37973 return new SHA512();
37975 BlockHash.call(this);
37976 this.h = [
0x6a09e667,
0xf3bcc908,
37977 0xbb67ae85,
0x84caa73b,
37978 0x3c6ef372,
0xfe94f82b,
37979 0xa54ff53a,
0x5f1d36f1,
37980 0x510e527f,
0xade682d1,
37981 0x9b05688c,
0x2b3e6c1f,
37982 0x1f83d9ab,
0xfb41bd6b,
37983 0x5be0cd19,
0x137e2179 ];
37985 this.W = new Array(
160);
37987 utils.inherits(SHA512, BlockHash);
37988 exports.sha512 = SHA512;
37990 SHA512.blockSize =
1024;
37991 SHA512.outSize =
512;
37992 SHA512.hmacStrength =
192;
37993 SHA512.padLength =
128;
37995 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
37998 //
32 x
32bit words
37999 for (var i =
0; i <
32; i++)
38000 W[i] = msg[start + i];
38001 for (; i < W.length; i +=
2) {
38002 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
38003 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
38004 var c1_hi = W[i -
14]; // i -
7
38005 var c1_lo = W[i -
13];
38006 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
38007 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
38008 var c3_hi = W[i -
32]; // i -
16
38009 var c3_lo = W[i -
31];
38011 W[i] = sum64_4_hi(c0_hi, c0_lo,
38015 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
38022 SHA512.prototype._update = function _update(msg, start) {
38023 this._prepareBlock(msg, start);
38027 var ah = this.h[
0];
38028 var al = this.h[
1];
38029 var bh = this.h[
2];
38030 var bl = this.h[
3];
38031 var ch = this.h[
4];
38032 var cl = this.h[
5];
38033 var dh = this.h[
6];
38034 var dl = this.h[
7];
38035 var eh = this.h[
8];
38036 var el = this.h[
9];
38037 var fh = this.h[
10];
38038 var fl = this.h[
11];
38039 var gh = this.h[
12];
38040 var gl = this.h[
13];
38041 var hh = this.h[
14];
38042 var hl = this.h[
15];
38044 assert(this.k.length === W.length);
38045 for (var i =
0; i < W.length; i +=
2) {
38048 var c1_hi = s1_512_hi(eh, el);
38049 var c1_lo = s1_512_lo(eh, el);
38050 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38051 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38052 var c3_hi = this.k[i];
38053 var c3_lo = this.k[i +
1];
38055 var c4_lo = W[i +
1];
38057 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38062 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38068 var c0_hi = s0_512_hi(ah, al);
38069 var c0_lo = s0_512_lo(ah, al);
38070 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38071 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38073 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38074 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38085 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38086 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38097 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38098 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38101 sum64(this.h,
0, ah, al);
38102 sum64(this.h,
2, bh, bl);
38103 sum64(this.h,
4, ch, cl);
38104 sum64(this.h,
6, dh, dl);
38105 sum64(this.h,
8, eh, el);
38106 sum64(this.h,
10, fh, fl);
38107 sum64(this.h,
12, gh, gl);
38108 sum64(this.h,
14, hh, hl);
38111 SHA512.prototype._digest = function digest(enc) {
38113 return utils.toHex32(this.h, 'big');
38115 return utils.split32(this.h, 'big');
38118 function SHA384() {
38119 if (!(this instanceof SHA384))
38120 return new SHA384();
38123 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38124 0x629a292a,
0x367cd507,
38125 0x9159015a,
0x3070dd17,
38126 0x152fecd8,
0xf70e5939,
38127 0x67332667,
0xffc00b31,
38128 0x8eb44a87,
0x68581511,
38129 0xdb0c2e0d,
0x64f98fa7,
38130 0x47b5481d,
0xbefa4fa4 ];
38132 utils.inherits(SHA384, SHA512);
38133 exports.sha384 = SHA384;
38135 SHA384.blockSize =
1024;
38136 SHA384.outSize =
384;
38137 SHA384.hmacStrength =
192;
38138 SHA384.padLength =
128;
38140 SHA384.prototype._digest = function digest(enc) {
38142 return utils.toHex32(this.h.slice(
0,
12), 'big');
38144 return utils.split32(this.h.slice(
0,
12), 'big');
38148 if (!(this instanceof SHA1))
38151 BlockHash.call(this);
38152 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38153 0x10325476,
0xc3d2e1f0 ];
38154 this.W = new Array(
80);
38157 utils.inherits(SHA1, BlockHash);
38158 exports.sha1 = SHA1;
38160 SHA1.blockSize =
512;
38161 SHA1.outSize =
160;
38162 SHA1.hmacStrength =
80;
38163 SHA1.padLength =
64;
38165 SHA1.prototype._update = function _update(msg, start) {
38168 for (var i =
0; i <
16; i++)
38169 W[i] = msg[start + i];
38171 for(; i < W.length; i++)
38172 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38180 for (var i =
0; i < W.length; i++) {
38181 var s = ~~(i /
20);
38182 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38190 this.h[
0] = sum32(this.h[
0], a);
38191 this.h[
1] = sum32(this.h[
1], b);
38192 this.h[
2] = sum32(this.h[
2], c);
38193 this.h[
3] = sum32(this.h[
3], d);
38194 this.h[
4] = sum32(this.h[
4], e);
38197 SHA1.prototype._digest = function digest(enc) {
38199 return utils.toHex32(this.h, 'big');
38201 return utils.split32(this.h, 'big');
38204 function ch32(x, y, z) {
38205 return (x & y) ^ ((~x) & z);
38208 function maj32(x, y, z) {
38209 return (x & y) ^ (x & z) ^ (y & z);
38212 function p32(x, y, z) {
38216 function s0_256(x) {
38217 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38220 function s1_256(x) {
38221 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38224 function g0_256(x) {
38225 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38228 function g1_256(x) {
38229 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38232 function ft_1(s, x, y, z) {
38234 return ch32(x, y, z);
38235 if (s ===
1 || s ===
3)
38236 return p32(x, y, z);
38238 return maj32(x, y, z);
38241 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38242 var r = (xh & yh) ^ ((~xh) & zh);
38248 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38249 var r = (xl & yl) ^ ((~xl) & zl);
38255 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38256 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38262 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38263 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38269 function s0_512_hi(xh, xl) {
38270 var c0_hi = rotr64_hi(xh, xl,
28);
38271 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38272 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38274 var r = c0_hi ^ c1_hi ^ c2_hi;
38280 function s0_512_lo(xh, xl) {
38281 var c0_lo = rotr64_lo(xh, xl,
28);
38282 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38283 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38285 var r = c0_lo ^ c1_lo ^ c2_lo;
38291 function s1_512_hi(xh, xl) {
38292 var c0_hi = rotr64_hi(xh, xl,
14);
38293 var c1_hi = rotr64_hi(xh, xl,
18);
38294 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38296 var r = c0_hi ^ c1_hi ^ c2_hi;
38302 function s1_512_lo(xh, xl) {
38303 var c0_lo = rotr64_lo(xh, xl,
14);
38304 var c1_lo = rotr64_lo(xh, xl,
18);
38305 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38307 var r = c0_lo ^ c1_lo ^ c2_lo;
38313 function g0_512_hi(xh, xl) {
38314 var c0_hi = rotr64_hi(xh, xl,
1);
38315 var c1_hi = rotr64_hi(xh, xl,
8);
38316 var c2_hi = shr64_hi(xh, xl,
7);
38318 var r = c0_hi ^ c1_hi ^ c2_hi;
38324 function g0_512_lo(xh, xl) {
38325 var c0_lo = rotr64_lo(xh, xl,
1);
38326 var c1_lo = rotr64_lo(xh, xl,
8);
38327 var c2_lo = shr64_lo(xh, xl,
7);
38329 var r = c0_lo ^ c1_lo ^ c2_lo;
38335 function g1_512_hi(xh, xl) {
38336 var c0_hi = rotr64_hi(xh, xl,
19);
38337 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38338 var c2_hi = shr64_hi(xh, xl,
6);
38340 var r = c0_hi ^ c1_hi ^ c2_hi;
38346 function g1_512_lo(xh, xl) {
38347 var c0_lo = rotr64_lo(xh, xl,
19);
38348 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38349 var c2_lo = shr64_lo(xh, xl,
6);
38351 var r = c0_lo ^ c1_lo ^ c2_lo;
38357 },{
"../hash":
57}],
62:[function(require,module,exports){
38358 var utils = exports;
38359 var inherits = require('inherits');
38361 function toArray(msg, enc) {
38362 if (Array.isArray(msg))
38363 return msg.slice();
38367 if (typeof msg === 'string') {
38369 for (var i =
0; i < msg.length; i++) {
38370 var c = msg.charCodeAt(i);
38378 } else if (enc === 'hex') {
38379 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38380 if (msg.length %
2 !==
0)
38382 for (var i =
0; i < msg.length; i +=
2)
38383 res.push(parseInt(msg[i] + msg[i +
1],
16));
38386 for (var i =
0; i < msg.length; i++)
38387 res[i] = msg[i] |
0;
38391 utils.toArray = toArray;
38393 function toHex(msg) {
38395 for (var i =
0; i < msg.length; i++)
38396 res += zero2(msg[i].toString(
16));
38399 utils.toHex = toHex;
38401 function htonl(w) {
38402 var res = (w
>>> 24) |
38403 ((w
>>> 8) &
0xff00) |
38404 ((w <<
8) &
0xff0000) |
38405 ((w &
0xff) <<
24);
38408 utils.htonl = htonl;
38410 function toHex32(msg, endian) {
38412 for (var i =
0; i < msg.length; i++) {
38414 if (endian === 'little')
38416 res += zero8(w.toString(
16));
38420 utils.toHex32 = toHex32;
38422 function zero2(word) {
38423 if (word.length ===
1)
38428 utils.zero2 = zero2;
38430 function zero8(word) {
38431 if (word.length ===
7)
38433 else if (word.length ===
6)
38434 return '
00' + word;
38435 else if (word.length ===
5)
38436 return '
000' + word;
38437 else if (word.length ===
4)
38438 return '
0000' + word;
38439 else if (word.length ===
3)
38440 return '
00000' + word;
38441 else if (word.length ===
2)
38442 return '
000000' + word;
38443 else if (word.length ===
1)
38444 return '
0000000' + word;
38448 utils.zero8 = zero8;
38450 function join32(msg, start, end, endian) {
38451 var len = end - start;
38452 assert(len %
4 ===
0);
38453 var res = new Array(len /
4);
38454 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38456 if (endian === 'big')
38457 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38459 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38464 utils.join32 = join32;
38466 function split32(msg, endian) {
38467 var res = new Array(msg.length *
4);
38468 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38470 if (endian === 'big') {
38472 res[k +
1] = (m
>>> 16) &
0xff;
38473 res[k +
2] = (m
>>> 8) &
0xff;
38474 res[k +
3] = m &
0xff;
38476 res[k +
3] = m
>>> 24;
38477 res[k +
2] = (m
>>> 16) &
0xff;
38478 res[k +
1] = (m
>>> 8) &
0xff;
38484 utils.split32 = split32;
38486 function rotr32(w, b) {
38487 return (w
>>> b) | (w << (
32 - b));
38489 utils.rotr32 = rotr32;
38491 function rotl32(w, b) {
38492 return (w << b) | (w
>>> (
32 - b));
38494 utils.rotl32 = rotl32;
38496 function sum32(a, b) {
38497 return (a + b)
>>> 0;
38499 utils.sum32 = sum32;
38501 function sum32_3(a, b, c) {
38502 return (a + b + c)
>>> 0;
38504 utils.sum32_3 = sum32_3;
38506 function sum32_4(a, b, c, d) {
38507 return (a + b + c + d)
>>> 0;
38509 utils.sum32_4 = sum32_4;
38511 function sum32_5(a, b, c, d, e) {
38512 return (a + b + c + d + e)
>>> 0;
38514 utils.sum32_5 = sum32_5;
38516 function assert(cond, msg) {
38518 throw new Error(msg || 'Assertion failed');
38520 utils.assert = assert;
38522 utils.inherits = inherits;
38524 function sum64(buf, pos, ah, al) {
38526 var bl = buf[pos +
1];
38528 var lo = (al + bl)
>>> 0;
38529 var hi = (lo < al ?
1 :
0) + ah + bh;
38530 buf[pos] = hi
>>> 0;
38533 exports.sum64 = sum64;
38535 function sum64_hi(ah, al, bh, bl) {
38536 var lo = (al + bl)
>>> 0;
38537 var hi = (lo < al ?
1 :
0) + ah + bh;
38540 exports.sum64_hi = sum64_hi;
38542 function sum64_lo(ah, al, bh, bl) {
38546 exports.sum64_lo = sum64_lo;
38548 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38551 lo = (lo + bl)
>>> 0;
38552 carry += lo < al ?
1 :
0;
38553 lo = (lo + cl)
>>> 0;
38554 carry += lo < cl ?
1 :
0;
38555 lo = (lo + dl)
>>> 0;
38556 carry += lo < dl ?
1 :
0;
38558 var hi = ah + bh + ch + dh + carry;
38561 exports.sum64_4_hi = sum64_4_hi;
38563 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38564 var lo = al + bl + cl + dl;
38567 exports.sum64_4_lo = sum64_4_lo;
38569 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38572 lo = (lo + bl)
>>> 0;
38573 carry += lo < al ?
1 :
0;
38574 lo = (lo + cl)
>>> 0;
38575 carry += lo < cl ?
1 :
0;
38576 lo = (lo + dl)
>>> 0;
38577 carry += lo < dl ?
1 :
0;
38578 lo = (lo + el)
>>> 0;
38579 carry += lo < el ?
1 :
0;
38581 var hi = ah + bh + ch + dh + eh + carry;
38584 exports.sum64_5_hi = sum64_5_hi;
38586 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38587 var lo = al + bl + cl + dl + el;
38591 exports.sum64_5_lo = sum64_5_lo;
38593 function rotr64_hi(ah, al, num) {
38594 var r = (al << (
32 - num)) | (ah
>>> num);
38597 exports.rotr64_hi = rotr64_hi;
38599 function rotr64_lo(ah, al, num) {
38600 var r = (ah << (
32 - num)) | (al
>>> num);
38603 exports.rotr64_lo = rotr64_lo;
38605 function shr64_hi(ah, al, num) {
38608 exports.shr64_hi = shr64_hi;
38610 function shr64_lo(ah, al, num) {
38611 var r = (ah << (
32 - num)) | (al
>>> num);
38614 exports.shr64_lo = shr64_lo;
38616 },{
"inherits":
63}],
63:[function(require,module,exports){
38617 arguments[
4][
9][
0].apply(exports,arguments)
38618 },{
"dup":
9}],
64:[function(require,module,exports){
38620 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38621 * @param {String} str the string input value
38622 * @return {Boolean} a boolean if it is or is not hex prefixed
38623 * @throws if the str input is not a string
38625 module.exports = function isHexPrefixed(str) {
38626 if (typeof str !== 'string') {
38627 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38630 return str.slice(
0,
2) === '
0x';
38633 },{}],
65:[function(require,module,exports){
38635 module.exports = require('./lib/api')(require('./lib/keccak'))
38637 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38639 var createKeccak = require('./keccak')
38640 var createShake = require('./shake')
38642 module.exports = function (KeccakState) {
38643 var Keccak = createKeccak(KeccakState)
38644 var Shake = createShake(KeccakState)
38646 return function (algorithm, options) {
38647 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38649 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38650 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38651 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38652 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38654 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38655 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38656 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38657 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38659 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38660 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38662 default: throw new Error('Invald algorithm: ' + algorithm)
38667 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38668 (function (Buffer){
38670 var Transform = require('stream').Transform
38671 var inherits = require('inherits')
38673 module.exports = function (KeccakState) {
38674 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38675 Transform.call(this, options)
38678 this._capacity = capacity
38679 this._delimitedSuffix = delimitedSuffix
38680 this._hashBitLength = hashBitLength
38681 this._options = options
38683 this._state = new KeccakState()
38684 this._state.initialize(rate, capacity)
38685 this._finalized = false
38688 inherits(Keccak, Transform)
38690 Keccak.prototype._transform = function (chunk, encoding, callback) {
38693 this.update(chunk, encoding)
38701 Keccak.prototype._flush = function (callback) {
38704 this.push(this.digest())
38712 Keccak.prototype.update = function (data, encoding) {
38713 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38714 if (this._finalized) throw new Error('Digest already called')
38715 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38717 this._state.absorb(data)
38722 Keccak.prototype.digest = function (encoding) {
38723 if (this._finalized) throw new Error('Digest already called')
38724 this._finalized = true
38726 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38727 var digest = this._state.squeeze(this._hashBitLength /
8)
38728 if (encoding !== undefined) digest = digest.toString(encoding)
38735 // remove result from memory
38736 Keccak.prototype._resetState = function () {
38737 this._state.initialize(this._rate, this._capacity)
38741 // because sometimes we need hash right now and little later
38742 Keccak.prototype._clone = function () {
38743 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38744 this._state.copy(clone._state)
38745 clone._finalized = this._finalized
38753 }).call(this,require(
"buffer").Buffer)
38754 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38755 (function (Buffer){
38757 var Transform = require('stream').Transform
38758 var inherits = require('inherits')
38760 module.exports = function (KeccakState) {
38761 function Shake (rate, capacity, delimitedSuffix, options) {
38762 Transform.call(this, options)
38765 this._capacity = capacity
38766 this._delimitedSuffix = delimitedSuffix
38767 this._options = options
38769 this._state = new KeccakState()
38770 this._state.initialize(rate, capacity)
38771 this._finalized = false
38774 inherits(Shake, Transform)
38776 Shake.prototype._transform = function (chunk, encoding, callback) {
38779 this.update(chunk, encoding)
38787 Shake.prototype._flush = function () {}
38789 Shake.prototype._read = function (size) {
38790 this.push(this.squeeze(size))
38793 Shake.prototype.update = function (data, encoding) {
38794 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38795 if (this._finalized) throw new Error('Squeeze already called')
38796 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38798 this._state.absorb(data)
38803 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38804 if (!this._finalized) {
38805 this._finalized = true
38806 this._state.absorbLastFewBits(this._delimitedSuffix)
38809 var data = this._state.squeeze(dataByteLength)
38810 if (encoding !== undefined) data = data.toString(encoding)
38815 Shake.prototype._resetState = function () {
38816 this._state.initialize(this._rate, this._capacity)
38820 Shake.prototype._clone = function () {
38821 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38822 this._state.copy(clone._state)
38823 clone._finalized = this._finalized
38831 }).call(this,require(
"buffer").Buffer)
38832 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38834 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]
38836 exports.p1600 = function (s) {
38837 for (var round =
0; round <
24; ++round) {
38839 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38840 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38841 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38842 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38843 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38844 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38845 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38846 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38847 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38848 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38850 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38851 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38852 var t1slo0 = s[
0] ^ lo
38853 var t1shi0 = s[
1] ^ hi
38854 var t1slo5 = s[
10] ^ lo
38855 var t1shi5 = s[
11] ^ hi
38856 var t1slo10 = s[
20] ^ lo
38857 var t1shi10 = s[
21] ^ hi
38858 var t1slo15 = s[
30] ^ lo
38859 var t1shi15 = s[
31] ^ hi
38860 var t1slo20 = s[
40] ^ lo
38861 var t1shi20 = s[
41] ^ hi
38862 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38863 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38864 var t1slo1 = s[
2] ^ lo
38865 var t1shi1 = s[
3] ^ hi
38866 var t1slo6 = s[
12] ^ lo
38867 var t1shi6 = s[
13] ^ hi
38868 var t1slo11 = s[
22] ^ lo
38869 var t1shi11 = s[
23] ^ hi
38870 var t1slo16 = s[
32] ^ lo
38871 var t1shi16 = s[
33] ^ hi
38872 var t1slo21 = s[
42] ^ lo
38873 var t1shi21 = s[
43] ^ hi
38874 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38875 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38876 var t1slo2 = s[
4] ^ lo
38877 var t1shi2 = s[
5] ^ hi
38878 var t1slo7 = s[
14] ^ lo
38879 var t1shi7 = s[
15] ^ hi
38880 var t1slo12 = s[
24] ^ lo
38881 var t1shi12 = s[
25] ^ hi
38882 var t1slo17 = s[
34] ^ lo
38883 var t1shi17 = s[
35] ^ hi
38884 var t1slo22 = s[
44] ^ lo
38885 var t1shi22 = s[
45] ^ hi
38886 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38887 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38888 var t1slo3 = s[
6] ^ lo
38889 var t1shi3 = s[
7] ^ hi
38890 var t1slo8 = s[
16] ^ lo
38891 var t1shi8 = s[
17] ^ hi
38892 var t1slo13 = s[
26] ^ lo
38893 var t1shi13 = s[
27] ^ hi
38894 var t1slo18 = s[
36] ^ lo
38895 var t1shi18 = s[
37] ^ hi
38896 var t1slo23 = s[
46] ^ lo
38897 var t1shi23 = s[
47] ^ hi
38898 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38899 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38900 var t1slo4 = s[
8] ^ lo
38901 var t1shi4 = s[
9] ^ hi
38902 var t1slo9 = s[
18] ^ lo
38903 var t1shi9 = s[
19] ^ hi
38904 var t1slo14 = s[
28] ^ lo
38905 var t1shi14 = s[
29] ^ hi
38906 var t1slo19 = s[
38] ^ lo
38907 var t1shi19 = s[
39] ^ hi
38908 var t1slo24 = s[
48] ^ lo
38909 var t1shi24 = s[
49] ^ hi
38912 var t2slo0 = t1slo0
38913 var t2shi0 = t1shi0
38914 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38915 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38916 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38917 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38918 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38919 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38920 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38921 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38922 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38923 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38924 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38925 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38926 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38927 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38928 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38929 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38930 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38931 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38932 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38933 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38934 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38935 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38936 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38937 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38938 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38939 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38940 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38941 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38942 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38943 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38944 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38945 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38946 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38947 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38948 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38949 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38950 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38951 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38952 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38953 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38954 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38955 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38956 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38957 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38958 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38959 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38960 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38961 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38964 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38965 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38966 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38967 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38968 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38969 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38970 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38971 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38972 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38973 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
38974 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
38975 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
38976 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
38977 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
38978 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
38979 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
38980 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
38981 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
38982 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
38983 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
38984 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
38985 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
38986 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
38987 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
38988 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
38989 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
38990 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
38991 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
38992 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
38993 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
38994 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
38995 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
38996 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
38997 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
38998 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
38999 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
39000 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
39001 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
39002 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
39003 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
39004 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
39005 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
39006 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
39007 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
39008 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
39009 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
39010 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
39011 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
39012 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
39013 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
39016 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
39017 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
39021 },{}],
70:[function(require,module,exports){
39022 (function (Buffer){
39024 var keccakState = require('./keccak-state-unroll')
39026 function Keccak () {
39027 // much faster than `new Array(
50)`
39036 this.blockSize = null
39038 this.squeezing = false
39041 Keccak.prototype.initialize = function (rate, capacity) {
39042 for (var i =
0; i <
50; ++i) this.state[i] =
0
39043 this.blockSize = rate /
8
39045 this.squeezing = false
39048 Keccak.prototype.absorb = function (data) {
39049 for (var i =
0; i < data.length; ++i) {
39050 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39052 if (this.count === this.blockSize) {
39053 keccakState.p1600(this.state)
39059 Keccak.prototype.absorbLastFewBits = function (bits) {
39060 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39061 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39062 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39063 keccakState.p1600(this.state)
39065 this.squeezing = true
39068 Keccak.prototype.squeeze = function (length) {
39069 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39071 var output = Buffer.allocUnsafe(length)
39072 for (var i =
0; i < length; ++i) {
39073 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39075 if (this.count === this.blockSize) {
39076 keccakState.p1600(this.state)
39084 Keccak.prototype.copy = function (dest) {
39085 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39086 dest.blockSize = this.blockSize
39087 dest.count = this.count
39088 dest.squeezing = this.squeezing
39091 module.exports = Keccak
39093 }).call(this,require("buffer").Buffer)
39094 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39095 (function (Buffer){
39098 code.google.com/p/crypto-js
39099 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39100 code.google.com/p/crypto-js/wiki/License
39103 (c)
2012 by Cédric Mesnil. All rights reserved.
39105 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39107 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39108 - 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.
39110 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.
39115 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39116 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39117 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39118 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39119 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39123 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39124 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39125 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39126 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39127 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39131 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39132 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39133 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39134 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39135 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39139 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39140 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39141 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39142 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39143 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39146 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39147 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39149 function bytesToWords (bytes) {
39151 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39152 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39157 function wordsToBytes (words) {
39159 for (var b =
0; b < words.length *
32; b +=
8) {
39160 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39165 function processBlock (H, M, offset) {
39167 for (var i =
0; i <
16; i++) {
39168 var offset_i = offset + i
39169 var M_offset_i = M[offset_i]
39173 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39174 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39178 // Working variables
39179 var al, bl, cl, dl, el
39180 var ar, br, cr, dr, er
39190 for (i =
0; i <
80; i +=
1) {
39191 t = (al + M[offset + zl[i]]) |
0
39193 t += f1(bl, cl, dl) + hl[
0]
39194 } else if (i <
32) {
39195 t += f2(bl, cl, dl) + hl[
1]
39196 } else if (i <
48) {
39197 t += f3(bl, cl, dl) + hl[
2]
39198 } else if (i <
64) {
39199 t += f4(bl, cl, dl) + hl[
3]
39200 } else {// if (i
<80) {
39201 t += f5(bl, cl, dl) + hl[
4]
39212 t = (ar + M[offset + zr[i]]) |
0
39214 t += f5(br, cr, dr) + hr[
0]
39215 } else if (i <
32) {
39216 t += f4(br, cr, dr) + hr[
1]
39217 } else if (i <
48) {
39218 t += f3(br, cr, dr) + hr[
2]
39219 } else if (i <
64) {
39220 t += f2(br, cr, dr) + hr[
3]
39221 } else {// if (i
<80) {
39222 t += f1(br, cr, dr) + hr[
4]
39235 // intermediate hash value
39236 t = (H[
1] + cl + dr) |
0
39237 H[
1] = (H[
2] + dl + er) |
0
39238 H[
2] = (H[
3] + el + ar) |
0
39239 H[
3] = (H[
4] + al + br) |
0
39240 H[
4] = (H[
0] + bl + cr) |
0
39244 function f1 (x, y, z) {
39245 return ((x) ^ (y) ^ (z))
39248 function f2 (x, y, z) {
39249 return (((x) & (y)) | ((~x) & (z)))
39252 function f3 (x, y, z) {
39253 return (((x) | (~(y))) ^ (z))
39256 function f4 (x, y, z) {
39257 return (((x) & (z)) | ((y) & (~(z))))
39260 function f5 (x, y, z) {
39261 return ((x) ^ ((y) | (~(z))))
39264 function rotl (x, n) {
39265 return (x << n) | (x
>>> (
32 - n))
39268 function ripemd160 (message) {
39269 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39271 if (typeof message === 'string') {
39272 message = new Buffer(message, 'utf8')
39275 var m = bytesToWords(message)
39277 var nBitsLeft = message.length *
8
39278 var nBitsTotal = message.length *
8
39281 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39282 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39283 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39284 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39287 for (var i =
0; i < m.length; i +=
16) {
39288 processBlock(H, m, i)
39292 for (i =
0; i <
5; i++) {
39297 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39298 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39301 var digestbytes = wordsToBytes(H)
39302 return new Buffer(digestbytes)
39305 module.exports = ripemd160
39307 }).call(this,require(
"buffer").Buffer)
39308 },{
"buffer":
5}],
72:[function(require,module,exports){
39309 (function (Buffer){
39310 const assert = require('assert')
39312 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39313 * This function takes in a data, convert it to buffer if not, and a length for recursion
39315 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39316 * @returns {Buffer} - returns buffer of encoded data
39318 exports.encode = function (input) {
39319 if (input instanceof Array) {
39321 for (var i =
0; i < input.length; i++) {
39322 output.push(exports.encode(input[i]))
39324 var buf = Buffer.concat(output)
39325 return Buffer.concat([encodeLength(buf.length,
192), buf])
39327 input = toBuffer(input)
39328 if (input.length ===
1 && input[
0] <
128) {
39331 return Buffer.concat([encodeLength(input.length,
128), input])
39336 function safeParseInt (v, base) {
39337 if (v.slice(
0,
2) === '
00') {
39338 throw (new Error('invalid RLP: extra zeros'))
39341 return parseInt(v, base)
39344 function encodeLength (len, offset) {
39346 return new Buffer([len + offset])
39348 var hexLength = intToHex(len)
39349 var lLength = hexLength.length /
2
39350 var firstByte = intToHex(offset +
55 + lLength)
39351 return new Buffer(firstByte + hexLength, 'hex')
39356 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39357 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39358 * @returns {Array} - returns decode Array of Buffers containg the original message
39360 exports.decode = function (input, stream) {
39361 if (!input || input.length ===
0) {
39362 return new Buffer([])
39365 input = toBuffer(input)
39366 var decoded = _decode(input)
39372 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39373 return decoded.data
39376 exports.getLength = function (input) {
39377 if (!input || input.length ===
0) {
39378 return new Buffer([])
39381 input = toBuffer(input)
39382 var firstByte = input[
0]
39383 if (firstByte <=
0x7f) {
39384 return input.length
39385 } else if (firstByte <=
0xb7) {
39386 return firstByte -
0x7f
39387 } else if (firstByte <=
0xbf) {
39388 return firstByte -
0xb6
39389 } else if (firstByte <=
0xf7) {
39390 // a list between
0-
55 bytes long
39391 return firstByte -
0xbf
39393 // a list over
55 bytes long
39394 var llength = firstByte -
0xf6
39395 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39396 return llength + length
39400 function _decode (input) {
39401 var length, llength, data, innerRemainder, d
39403 var firstByte = input[
0]
39405 if (firstByte <=
0x7f) {
39406 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39408 data: input.slice(
0,
1),
39409 remainder: input.slice(
1)
39411 } else if (firstByte <=
0xb7) {
39412 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39413 // The range of the first byte is [
0x80,
0xb7]
39414 length = firstByte -
0x7f
39416 // set
0x80 null to
0
39417 if (firstByte ===
0x80) {
39418 data = new Buffer([])
39420 data = input.slice(
1, length)
39423 if (length ===
2 && data[
0] <
0x80) {
39424 throw new Error('invalid rlp encoding: byte must be less
0x80')
39429 remainder: input.slice(length)
39431 } else if (firstByte <=
0xbf) {
39432 llength = firstByte -
0xb6
39433 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39434 data = input.slice(llength, length + llength)
39435 if (data.length < length) {
39436 throw (new Error('invalid RLP'))
39441 remainder: input.slice(length + llength)
39443 } else if (firstByte <=
0xf7) {
39444 // a list between
0-
55 bytes long
39445 length = firstByte -
0xbf
39446 innerRemainder = input.slice(
1, length)
39447 while (innerRemainder.length) {
39448 d = _decode(innerRemainder)
39449 decoded.push(d.data)
39450 innerRemainder = d.remainder
39455 remainder: input.slice(length)
39458 // a list over
55 bytes long
39459 llength = firstByte -
0xf6
39460 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39461 var totalLength = llength + length
39462 if (totalLength
> input.length) {
39463 throw new Error('invalid rlp: total length is larger than the data')
39466 innerRemainder = input.slice(llength, totalLength)
39467 if (innerRemainder.length ===
0) {
39468 throw new Error('invalid rlp, List has a invalid length')
39471 while (innerRemainder.length) {
39472 d = _decode(innerRemainder)
39473 decoded.push(d.data)
39474 innerRemainder = d.remainder
39478 remainder: input.slice(totalLength)
39483 function isHexPrefixed (str) {
39484 return str.slice(
0,
2) === '
0x'
39487 // Removes
0x from a given String
39488 function stripHexPrefix (str) {
39489 if (typeof str !== 'string') {
39492 return isHexPrefixed(str) ? str.slice(
2) : str
39495 function intToHex (i) {
39496 var hex = i.toString(
16)
39497 if (hex.length %
2) {
39504 function padToEven (a) {
39505 if (a.length %
2) a = '
0' + a
39509 function intToBuffer (i) {
39510 var hex = intToHex(i)
39511 return new Buffer(hex, 'hex')
39514 function toBuffer (v) {
39515 if (!Buffer.isBuffer(v)) {
39516 if (typeof v === 'string') {
39517 if (isHexPrefixed(v)) {
39518 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39522 } else if (typeof v === 'number') {
39528 } else if (v === null || v === undefined) {
39530 } else if (v.toArray) {
39531 // converts a BN to a Buffer
39532 v = new Buffer(v.toArray())
39534 throw new Error('invalid type')
39540 }).call(this,require("buffer").Buffer)
39541 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39543 module.exports = require('./lib')(require('./lib/elliptic'))
39545 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39546 (function (Buffer){
39548 var toString = Object.prototype.toString
39551 exports.isArray = function (value, message) {
39552 if (!Array.isArray(value)) throw TypeError(message)
39555 exports.isBoolean = function (value, message) {
39556 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39559 exports.isBuffer = function (value, message) {
39560 if (!Buffer.isBuffer(value)) throw TypeError(message)
39563 exports.isFunction = function (value, message) {
39564 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39567 exports.isNumber = function (value, message) {
39568 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39571 exports.isObject = function (value, message) {
39572 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39576 exports.isBufferLength = function (buffer, length, message) {
39577 if (buffer.length !== length) throw RangeError(message)
39580 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39581 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39584 exports.isLengthGTZero = function (value, message) {
39585 if (value.length ===
0) throw RangeError(message)
39588 exports.isNumberInInterval = function (number, x, y, message) {
39589 if (number <= x || number
>= y) throw RangeError(message)
39592 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39593 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39594 (function (Buffer){
39596 var bip66 = require('bip66')
39598 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39600 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39602 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39603 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39605 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39606 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39607 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39608 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39609 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39610 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39611 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39612 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39613 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39615 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39616 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39620 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39622 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39624 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39625 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39627 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39628 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39629 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39630 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39631 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39632 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39633 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39634 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39635 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39636 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39637 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39639 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39640 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39641 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39642 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39646 var ZERO_BUFFER_32 = new Buffer([
39647 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39648 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39651 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39652 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39653 privateKey.copy(result, compressed ?
8 :
9)
39654 publicKey.copy(result, compressed ?
181 :
214)
39658 exports.privateKeyImport = function (privateKey) {
39659 var length = privateKey.length
39663 if (length < index +
1 || privateKey[index] !==
0x30) return
39666 // sequence length constructor
39667 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39669 var lenb = privateKey[index] &
0x7f
39671 if (lenb <
1 || lenb
> 2) return
39672 if (length < index + lenb) return
39675 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39677 if (length < index + len) return
39679 // sequence element
0: version number (=
1)
39680 if (length < index +
3 ||
39681 privateKey[index] !==
0x02 ||
39682 privateKey[index +
1] !==
0x01 ||
39683 privateKey[index +
2] !==
0x01) {
39688 // sequence element
1: octet string, up to
32 bytes
39689 if (length < index +
2 ||
39690 privateKey[index] !==
0x04 ||
39691 privateKey[index +
1]
> 0x20 ||
39692 length < index +
2 + privateKey[index +
1]) {
39696 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39699 exports.signatureExport = function (sigObj) {
39700 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39701 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39703 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39704 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39706 return bip66.encode(r.slice(posR), s.slice(posS))
39709 exports.signatureImport = function (sig) {
39710 var r = new Buffer(ZERO_BUFFER_32)
39711 var s = new Buffer(ZERO_BUFFER_32)
39714 var sigObj = bip66.decode(sig)
39715 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39716 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39717 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39718 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39723 sigObj.r.copy(r,
32 - sigObj.r.length)
39724 sigObj.s.copy(s,
32 - sigObj.s.length)
39726 return { r: r, s: s }
39729 exports.signatureImportLax = function (sig) {
39730 var r = new Buffer(ZERO_BUFFER_32)
39731 var s = new Buffer(ZERO_BUFFER_32)
39733 var length = sig.length
39736 // sequence tag byte
39737 if (sig[index++] !==
0x30) return
39739 // sequence length byte
39740 var lenbyte = sig[index++]
39741 if (lenbyte &
0x80) {
39742 index += lenbyte -
0x80
39743 if (index
> length) return
39746 // sequence tag byte for r
39747 if (sig[index++] !==
0x02) return
39750 var rlen = sig[index++]
39752 lenbyte = rlen -
0x80
39753 if (index + lenbyte
> length) return
39754 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39755 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39757 if (rlen
> length - index) return
39761 // sequence tag byte for s
39762 if (sig[index++] !==
0x02) return
39765 var slen = sig[index++]
39767 lenbyte = slen -
0x80
39768 if (index + lenbyte
> length) return
39769 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39770 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39772 if (slen
> length - index) return
39776 // ignore leading zeros in r
39777 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39779 if (rlen
> 32) return
39780 var rvalue = sig.slice(rindex, rindex + rlen)
39781 rvalue.copy(r,
32 - rvalue.length)
39783 // ignore leading zeros in s
39784 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39786 if (slen
> 32) return
39787 var svalue = sig.slice(sindex, sindex + slen)
39788 svalue.copy(s,
32 - svalue.length)
39790 return { r: r, s: s }
39793 }).call(this,require(
"buffer").Buffer)
39794 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39795 (function (Buffer){
39797 var createHash = require('create-hash')
39798 var BN = require('bn.js')
39799 var EC = require('elliptic').ec
39801 var messages = require('../messages.json')
39803 var ec = new EC('secp256k1')
39804 var ecparams = ec.curve
39806 function loadCompressedPublicKey (first, xBuffer) {
39807 var x = new BN(xBuffer)
39810 if (x.cmp(ecparams.p)
>=
0) return null
39811 x = x.toRed(ecparams.red)
39813 // compute corresponding Y
39814 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39815 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39817 return ec.keyPair({ pub: { x: x, y: y } })
39820 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39821 var x = new BN(xBuffer)
39822 var y = new BN(yBuffer)
39825 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39827 x = x.toRed(ecparams.red)
39828 y = y.toRed(ecparams.red)
39831 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39834 var x3 = x.redSqr().redIMul(x)
39835 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39837 return ec.keyPair({ pub: { x: x, y: y } })
39840 function loadPublicKey (publicKey) {
39841 var first = publicKey[
0]
39845 if (publicKey.length !==
33) return null
39846 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39850 if (publicKey.length !==
65) return null
39851 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39857 exports.privateKeyVerify = function (privateKey) {
39858 var bn = new BN(privateKey)
39859 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39862 exports.privateKeyExport = function (privateKey, compressed) {
39863 var d = new BN(privateKey)
39864 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39866 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39869 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39870 var bn = new BN(tweak)
39871 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39873 bn.iadd(new BN(privateKey))
39874 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39875 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39877 return bn.toArrayLike(Buffer, 'be',
32)
39880 exports.privateKeyTweakMul = function (privateKey, tweak) {
39881 var bn = new BN(tweak)
39882 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39884 bn.imul(new BN(privateKey))
39885 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39887 return bn.toArrayLike(Buffer, 'be',
32)
39890 exports.publicKeyCreate = function (privateKey, compressed) {
39891 var d = new BN(privateKey)
39892 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39894 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39897 exports.publicKeyConvert = function (publicKey, compressed) {
39898 var pair = loadPublicKey(publicKey)
39899 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39901 return new Buffer(pair.getPublic(compressed, true))
39904 exports.publicKeyVerify = function (publicKey) {
39905 return loadPublicKey(publicKey) !== null
39908 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39909 var pair = loadPublicKey(publicKey)
39910 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39912 tweak = new BN(tweak)
39913 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39915 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39918 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39919 var pair = loadPublicKey(publicKey)
39920 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39922 tweak = new BN(tweak)
39923 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39925 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39928 exports.publicKeyCombine = function (publicKeys, compressed) {
39929 var pairs = new Array(publicKeys.length)
39930 for (var i =
0; i < publicKeys.length; ++i) {
39931 pairs[i] = loadPublicKey(publicKeys[i])
39932 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39935 var point = pairs[
0].pub
39936 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39937 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39939 return new Buffer(point.encode(true, compressed))
39942 exports.signatureNormalize = function (signature) {
39943 var r = new BN(signature.slice(
0,
32))
39944 var s = new BN(signature.slice(
32,
64))
39945 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39947 var result = new Buffer(signature)
39948 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39953 exports.signatureExport = function (signature) {
39954 var r = signature.slice(
0,
32)
39955 var s = signature.slice(
32,
64)
39956 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39958 return { r: r, s: s }
39961 exports.signatureImport = function (sigObj) {
39962 var r = new BN(sigObj.r)
39963 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39965 var s = new BN(sigObj.s)
39966 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39968 return Buffer.concat([
39969 r.toArrayLike(Buffer, 'be',
32),
39970 s.toArrayLike(Buffer, 'be',
32)
39974 exports.sign = function (message, privateKey, noncefn, data) {
39975 if (typeof noncefn === 'function') {
39976 var getNonce = noncefn
39977 noncefn = function (counter) {
39978 var nonce = getNonce(message, privateKey, null, data, counter)
39979 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
39981 return new BN(nonce)
39985 var d = new BN(privateKey)
39986 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
39988 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
39990 signature: Buffer.concat([
39991 result.r.toArrayLike(Buffer, 'be',
32),
39992 result.s.toArrayLike(Buffer, 'be',
32)
39994 recovery: result.recoveryParam
39998 exports.verify = function (message, signature, publicKey) {
39999 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40001 var sigr = new BN(sigObj.r)
40002 var sigs = new BN(sigObj.s)
40003 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40004 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
40006 var pair = loadPublicKey(publicKey)
40007 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40009 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
40012 exports.recover = function (message, signature, recovery, compressed) {
40013 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
40015 var sigr = new BN(sigObj.r)
40016 var sigs = new BN(sigObj.s)
40017 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
40020 if (sigr.isZero() || sigs.isZero()) throw new Error()
40022 var point = ec.recoverPubKey(message, sigObj, recovery)
40023 return new Buffer(point.encode(true, compressed))
40025 throw new Error(messages.ECDSA_RECOVER_FAIL)
40029 exports.ecdh = function (publicKey, privateKey) {
40030 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
40031 return createHash('sha256').update(shared).digest()
40034 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
40035 var pair = loadPublicKey(publicKey)
40036 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
40038 var scalar = new BN(privateKey)
40039 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
40041 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
40044 }).call(this,require("buffer").Buffer)
40045 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
40047 var assert = require('./assert')
40048 var der = require('./der')
40049 var messages = require('./messages.json')
40051 function initCompressedValue (value, defaultValue) {
40052 if (value === undefined) return defaultValue
40054 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40058 module.exports = function (secp256k1) {
40060 privateKeyVerify: function (privateKey) {
40061 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40062 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40065 privateKeyExport: function (privateKey, compressed) {
40066 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40067 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40069 compressed = initCompressedValue(compressed, true)
40070 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40072 return der.privateKeyExport(privateKey, publicKey, compressed)
40075 privateKeyImport: function (privateKey) {
40076 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40078 privateKey = der.privateKeyImport(privateKey)
40079 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40081 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40084 privateKeyTweakAdd: function (privateKey, tweak) {
40085 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40086 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40088 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40089 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40091 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40094 privateKeyTweakMul: function (privateKey, tweak) {
40095 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40096 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40098 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40099 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40101 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40104 publicKeyCreate: function (privateKey, compressed) {
40105 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40106 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40108 compressed = initCompressedValue(compressed, true)
40110 return secp256k1.publicKeyCreate(privateKey, compressed)
40113 publicKeyConvert: function (publicKey, compressed) {
40114 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40115 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40117 compressed = initCompressedValue(compressed, true)
40119 return secp256k1.publicKeyConvert(publicKey, compressed)
40122 publicKeyVerify: function (publicKey) {
40123 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40124 return secp256k1.publicKeyVerify(publicKey)
40127 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40128 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40129 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40131 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40132 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40134 compressed = initCompressedValue(compressed, true)
40136 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40139 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40140 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40141 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40143 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40144 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40146 compressed = initCompressedValue(compressed, true)
40148 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40151 publicKeyCombine: function (publicKeys, compressed) {
40152 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40153 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40154 for (var i =
0; i < publicKeys.length; ++i) {
40155 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40156 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40159 compressed = initCompressedValue(compressed, true)
40161 return secp256k1.publicKeyCombine(publicKeys, compressed)
40164 signatureNormalize: function (signature) {
40165 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40166 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40168 return secp256k1.signatureNormalize(signature)
40171 signatureExport: function (signature) {
40172 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40173 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40175 var sigObj = secp256k1.signatureExport(signature)
40176 return der.signatureExport(sigObj)
40179 signatureImport: function (sig) {
40180 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40181 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40183 var sigObj = der.signatureImport(sig)
40184 if (sigObj) return secp256k1.signatureImport(sigObj)
40186 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40189 signatureImportLax: function (sig) {
40190 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40191 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40193 var sigObj = der.signatureImportLax(sig)
40194 if (sigObj) return secp256k1.signatureImport(sigObj)
40196 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40199 sign: function (message, privateKey, options) {
40200 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40201 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40203 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40204 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40208 if (options !== undefined) {
40209 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40211 if (options.data !== undefined) {
40212 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40213 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40214 data = options.data
40217 if (options.noncefn !== undefined) {
40218 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40219 noncefn = options.noncefn
40223 return secp256k1.sign(message, privateKey, noncefn, data)
40226 verify: function (message, signature, publicKey) {
40227 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40228 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40230 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40231 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40233 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40234 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40236 return secp256k1.verify(message, signature, publicKey)
40239 recover: function (message, signature, recovery, compressed) {
40240 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40241 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40243 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40244 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40246 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40247 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40249 compressed = initCompressedValue(compressed, true)
40251 return secp256k1.recover(message, signature, recovery, compressed)
40254 ecdh: function (publicKey, privateKey) {
40255 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40256 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40258 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40259 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40261 return secp256k1.ecdh(publicKey, privateKey)
40264 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40265 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40266 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40268 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40269 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40271 compressed = initCompressedValue(compressed, true)
40273 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40278 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40280 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40281 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40282 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40283 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40284 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40285 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40286 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40287 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40288 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40289 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40290 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40291 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40292 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40293 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40294 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40295 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40296 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40297 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40298 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40299 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40300 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40301 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40302 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40303 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40304 "MSG32_TYPE_INVALID": "message should be a Buffer",
40305 "MSG32_LENGTH_INVALID": "message length is invalid",
40306 "OPTIONS_TYPE_INVALID": "options should be an Object",
40307 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40308 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40309 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40310 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40311 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40312 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40313 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40316 },{}],
79:[function(require,module,exports){
40317 (function (Buffer){
40318 // prototype class for hash functions
40319 function Hash (blockSize, finalSize) {
40320 this._block = new Buffer(blockSize)
40321 this._finalSize = finalSize
40322 this._blockSize = blockSize
40327 Hash.prototype.update = function (data, enc) {
40328 if (typeof data === 'string') {
40329 enc = enc || 'utf8'
40330 data = new Buffer(data, enc)
40333 var l = this._len += data.length
40334 var s = this._s ||
0
40336 var buffer = this._block
40339 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40342 for (var i =
0; i < ch; i++) {
40343 buffer[(s % this._blockSize) + i] = data[i + f]
40349 if ((s % this._blockSize) ===
0) {
40350 this._update(buffer)
40358 Hash.prototype.digest = function (enc) {
40359 // Suppose the length of the message M, in bits, is l
40360 var l = this._len *
8
40362 // Append the bit
1 to the end of the message
40363 this._block[this._len % this._blockSize] =
0x80
40365 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40366 this._block.fill(
0, this._len % this._blockSize +
1)
40368 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40369 this._update(this._block)
40370 this._block.fill(
0)
40373 // to this append the block which is equal to the number l written in binary
40374 // TODO: handle case where l is
> Math.pow(
2,
29)
40375 this._block.writeInt32BE(l, this._blockSize -
4)
40377 var hash = this._update(this._block) || this._hash()
40379 return enc ? hash.toString(enc) : hash
40382 Hash.prototype._update = function () {
40383 throw new Error('_update must be implemented by subclass')
40386 module.exports = Hash
40388 }).call(this,require("buffer").Buffer)
40389 },{"buffer":
5}],
80:[function(require,module,exports){
40390 var exports = module.exports = function SHA (algorithm) {
40391 algorithm = algorithm.toLowerCase()
40393 var Algorithm = exports[algorithm]
40394 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40396 return new Algorithm()
40399 exports.sha = require('./sha')
40400 exports.sha1 = require('./sha1')
40401 exports.sha224 = require('./sha224')
40402 exports.sha256 = require('./sha256')
40403 exports.sha384 = require('./sha384')
40404 exports.sha512 = require('./sha512')
40406 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40407 (function (Buffer){
40409 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40410 * in FIPS PUB
180-
1
40411 * This source code is derived from sha1.js of the same repository.
40412 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40413 * operation was added.
40416 var inherits = require('inherits')
40417 var Hash = require('./hash')
40420 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40423 var W = new Array(
80)
40429 Hash.call(this,
64,
56)
40432 inherits(Sha, Hash)
40434 Sha.prototype.init = function () {
40435 this._a =
0x67452301
40436 this._b =
0xefcdab89
40437 this._c =
0x98badcfe
40438 this._d =
0x10325476
40439 this._e =
0xc3d2e1f0
40444 function rotl5 (num) {
40445 return (num <<
5) | (num
>>> 27)
40448 function rotl30 (num) {
40449 return (num <<
30) | (num
>>> 2)
40452 function ft (s, b, c, d) {
40453 if (s ===
0) return (b & c) | ((~b) & d)
40454 if (s ===
2) return (b & c) | (b & d) | (c & d)
40458 Sha.prototype._update = function (M) {
40461 var a = this._a |
0
40462 var b = this._b |
0
40463 var c = this._c |
0
40464 var d = this._d |
0
40465 var e = this._e |
0
40467 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40468 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40470 for (var j =
0; j <
80; ++j) {
40472 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40481 this._a = (a + this._a) |
0
40482 this._b = (b + this._b) |
0
40483 this._c = (c + this._c) |
0
40484 this._d = (d + this._d) |
0
40485 this._e = (e + this._e) |
0
40488 Sha.prototype._hash = function () {
40489 var H = new Buffer(
20)
40491 H.writeInt32BE(this._a |
0,
0)
40492 H.writeInt32BE(this._b |
0,
4)
40493 H.writeInt32BE(this._c |
0,
8)
40494 H.writeInt32BE(this._d |
0,
12)
40495 H.writeInt32BE(this._e |
0,
16)
40500 module.exports = Sha
40502 }).call(this,require(
"buffer").Buffer)
40503 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40504 (function (Buffer){
40506 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40507 * in FIPS PUB
180-
1
40508 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40509 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40510 * Distributed under the BSD License
40511 * See http://pajhome.org.uk/crypt/md5 for details.
40514 var inherits = require('inherits')
40515 var Hash = require('./hash')
40518 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40521 var W = new Array(
80)
40527 Hash.call(this,
64,
56)
40530 inherits(Sha1, Hash)
40532 Sha1.prototype.init = function () {
40533 this._a =
0x67452301
40534 this._b =
0xefcdab89
40535 this._c =
0x98badcfe
40536 this._d =
0x10325476
40537 this._e =
0xc3d2e1f0
40542 function rotl1 (num) {
40543 return (num <<
1) | (num
>>> 31)
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 Sha1.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] = rotl1(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 Sha1.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 = Sha1
40604 }).call(this,require(
"buffer").Buffer)
40605 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40606 (function (Buffer){
40608 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40610 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40611 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40615 var inherits = require('inherits')
40616 var Sha256 = require('./sha256')
40617 var Hash = require('./hash')
40619 var W = new Array(
64)
40621 function Sha224 () {
40624 this._w = W // new Array(
64)
40626 Hash.call(this,
64,
56)
40629 inherits(Sha224, Sha256)
40631 Sha224.prototype.init = function () {
40632 this._a =
0xc1059ed8
40633 this._b =
0x367cd507
40634 this._c =
0x3070dd17
40635 this._d =
0xf70e5939
40636 this._e =
0xffc00b31
40637 this._f =
0x68581511
40638 this._g =
0x64f98fa7
40639 this._h =
0xbefa4fa4
40644 Sha224.prototype._hash = function () {
40645 var H = new Buffer(
28)
40647 H.writeInt32BE(this._a,
0)
40648 H.writeInt32BE(this._b,
4)
40649 H.writeInt32BE(this._c,
8)
40650 H.writeInt32BE(this._d,
12)
40651 H.writeInt32BE(this._e,
16)
40652 H.writeInt32BE(this._f,
20)
40653 H.writeInt32BE(this._g,
24)
40658 module.exports = Sha224
40660 }).call(this,require(
"buffer").Buffer)
40661 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40662 (function (Buffer){
40664 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40666 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40667 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40671 var inherits = require('inherits')
40672 var Hash = require('./hash')
40675 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40676 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40677 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40678 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40679 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40680 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40681 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40682 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40683 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40684 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40685 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40686 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40687 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40688 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40689 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40690 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40693 var W = new Array(
64)
40695 function Sha256 () {
40698 this._w = W // new Array(
64)
40700 Hash.call(this,
64,
56)
40703 inherits(Sha256, Hash)
40705 Sha256.prototype.init = function () {
40706 this._a =
0x6a09e667
40707 this._b =
0xbb67ae85
40708 this._c =
0x3c6ef372
40709 this._d =
0xa54ff53a
40710 this._e =
0x510e527f
40711 this._f =
0x9b05688c
40712 this._g =
0x1f83d9ab
40713 this._h =
0x5be0cd19
40718 function ch (x, y, z) {
40719 return z ^ (x & (y ^ z))
40722 function maj (x, y, z) {
40723 return (x & y) | (z & (x | y))
40726 function sigma0 (x) {
40727 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40730 function sigma1 (x) {
40731 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40734 function gamma0 (x) {
40735 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40738 function gamma1 (x) {
40739 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40742 Sha256.prototype._update = function (M) {
40745 var a = this._a |
0
40746 var b = this._b |
0
40747 var c = this._c |
0
40748 var d = this._d |
0
40749 var e = this._e |
0
40750 var f = this._f |
0
40751 var g = this._g |
0
40752 var h = this._h |
0
40754 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40755 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40757 for (var j =
0; j <
64; ++j) {
40758 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40759 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40771 this._a = (a + this._a) |
0
40772 this._b = (b + this._b) |
0
40773 this._c = (c + this._c) |
0
40774 this._d = (d + this._d) |
0
40775 this._e = (e + this._e) |
0
40776 this._f = (f + this._f) |
0
40777 this._g = (g + this._g) |
0
40778 this._h = (h + this._h) |
0
40781 Sha256.prototype._hash = function () {
40782 var H = new Buffer(
32)
40784 H.writeInt32BE(this._a,
0)
40785 H.writeInt32BE(this._b,
4)
40786 H.writeInt32BE(this._c,
8)
40787 H.writeInt32BE(this._d,
12)
40788 H.writeInt32BE(this._e,
16)
40789 H.writeInt32BE(this._f,
20)
40790 H.writeInt32BE(this._g,
24)
40791 H.writeInt32BE(this._h,
28)
40796 module.exports = Sha256
40798 }).call(this,require(
"buffer").Buffer)
40799 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40800 (function (Buffer){
40801 var inherits = require('inherits')
40802 var SHA512 = require('./sha512')
40803 var Hash = require('./hash')
40805 var W = new Array(
160)
40807 function Sha384 () {
40811 Hash.call(this,
128,
112)
40814 inherits(Sha384, SHA512)
40816 Sha384.prototype.init = function () {
40817 this._ah =
0xcbbb9d5d
40818 this._bh =
0x629a292a
40819 this._ch =
0x9159015a
40820 this._dh =
0x152fecd8
40821 this._eh =
0x67332667
40822 this._fh =
0x8eb44a87
40823 this._gh =
0xdb0c2e0d
40824 this._hh =
0x47b5481d
40826 this._al =
0xc1059ed8
40827 this._bl =
0x367cd507
40828 this._cl =
0x3070dd17
40829 this._dl =
0xf70e5939
40830 this._el =
0xffc00b31
40831 this._fl =
0x68581511
40832 this._gl =
0x64f98fa7
40833 this._hl =
0xbefa4fa4
40838 Sha384.prototype._hash = function () {
40839 var H = new Buffer(
48)
40841 function writeInt64BE (h, l, offset) {
40842 H.writeInt32BE(h, offset)
40843 H.writeInt32BE(l, offset +
4)
40846 writeInt64BE(this._ah, this._al,
0)
40847 writeInt64BE(this._bh, this._bl,
8)
40848 writeInt64BE(this._ch, this._cl,
16)
40849 writeInt64BE(this._dh, this._dl,
24)
40850 writeInt64BE(this._eh, this._el,
32)
40851 writeInt64BE(this._fh, this._fl,
40)
40856 module.exports = Sha384
40858 }).call(this,require(
"buffer").Buffer)
40859 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40860 (function (Buffer){
40861 var inherits = require('inherits')
40862 var Hash = require('./hash')
40865 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40866 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40867 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40868 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40869 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40870 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40871 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40872 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40873 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40874 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40875 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40876 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40877 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40878 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40879 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40880 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40881 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40882 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40883 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40884 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40885 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40886 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40887 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40888 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40889 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40890 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40891 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40892 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40893 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40894 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40895 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40896 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40897 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40898 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40899 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40900 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40901 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40902 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40903 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40904 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40907 var W = new Array(
160)
40909 function Sha512 () {
40913 Hash.call(this,
128,
112)
40916 inherits(Sha512, Hash)
40918 Sha512.prototype.init = function () {
40919 this._ah =
0x6a09e667
40920 this._bh =
0xbb67ae85
40921 this._ch =
0x3c6ef372
40922 this._dh =
0xa54ff53a
40923 this._eh =
0x510e527f
40924 this._fh =
0x9b05688c
40925 this._gh =
0x1f83d9ab
40926 this._hh =
0x5be0cd19
40928 this._al =
0xf3bcc908
40929 this._bl =
0x84caa73b
40930 this._cl =
0xfe94f82b
40931 this._dl =
0x5f1d36f1
40932 this._el =
0xade682d1
40933 this._fl =
0x2b3e6c1f
40934 this._gl =
0xfb41bd6b
40935 this._hl =
0x137e2179
40940 function Ch (x, y, z) {
40941 return z ^ (x & (y ^ z))
40944 function maj (x, y, z) {
40945 return (x & y) | (z & (x | y))
40948 function sigma0 (x, xl) {
40949 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40952 function sigma1 (x, xl) {
40953 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40956 function Gamma0 (x, xl) {
40957 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40960 function Gamma0l (x, xl) {
40961 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40964 function Gamma1 (x, xl) {
40965 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40968 function Gamma1l (x, xl) {
40969 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40972 function getCarry (a, b) {
40973 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
40976 Sha512.prototype._update = function (M) {
40979 var ah = this._ah |
0
40980 var bh = this._bh |
0
40981 var ch = this._ch |
0
40982 var dh = this._dh |
0
40983 var eh = this._eh |
0
40984 var fh = this._fh |
0
40985 var gh = this._gh |
0
40986 var hh = this._hh |
0
40988 var al = this._al |
0
40989 var bl = this._bl |
0
40990 var cl = this._cl |
0
40991 var dl = this._dl |
0
40992 var el = this._el |
0
40993 var fl = this._fl |
0
40994 var gl = this._gl |
0
40995 var hl = this._hl |
0
40997 for (var i =
0; i <
32; i +=
2) {
40998 W[i] = M.readInt32BE(i *
4)
40999 W[i +
1] = M.readInt32BE(i *
4 +
4)
41001 for (; i <
160; i +=
2) {
41002 var xh = W[i -
15 *
2]
41003 var xl = W[i -
15 *
2 +
1]
41004 var gamma0 = Gamma0(xh, xl)
41005 var gamma0l = Gamma0l(xl, xh)
41008 xl = W[i -
2 *
2 +
1]
41009 var gamma1 = Gamma1(xh, xl)
41010 var gamma1l = Gamma1l(xl, xh)
41012 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
41013 var Wi7h = W[i -
7 *
2]
41014 var Wi7l = W[i -
7 *
2 +
1]
41016 var Wi16h = W[i -
16 *
2]
41017 var Wi16l = W[i -
16 *
2 +
1]
41019 var Wil = (gamma0l + Wi7l) |
0
41020 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
41021 Wil = (Wil + gamma1l) |
0
41022 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
41023 Wil = (Wil + Wi16l) |
0
41024 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
41030 for (var j =
0; j <
160; j +=
2) {
41034 var majh = maj(ah, bh, ch)
41035 var majl = maj(al, bl, cl)
41037 var sigma0h = sigma0(ah, al)
41038 var sigma0l = sigma0(al, ah)
41039 var sigma1h = sigma1(eh, el)
41040 var sigma1l = sigma1(el, eh)
41042 // t1 = h + sigma1 + ch + K[j] + W[j]
41046 var chh = Ch(eh, fh, gh)
41047 var chl = Ch(el, fl, gl)
41049 var t1l = (hl + sigma1l) |
0
41050 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41051 t1l = (t1l + chl) |
0
41052 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41053 t1l = (t1l + Kil) |
0
41054 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41055 t1l = (t1l + Wil) |
0
41056 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41058 // t2 = sigma0 + maj
41059 var t2l = (sigma0l + majl) |
0
41060 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41068 el = (dl + t1l) |
0
41069 eh = (dh + t1h + getCarry(el, dl)) |
0
41076 al = (t1l + t2l) |
0
41077 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41080 this._al = (this._al + al) |
0
41081 this._bl = (this._bl + bl) |
0
41082 this._cl = (this._cl + cl) |
0
41083 this._dl = (this._dl + dl) |
0
41084 this._el = (this._el + el) |
0
41085 this._fl = (this._fl + fl) |
0
41086 this._gl = (this._gl + gl) |
0
41087 this._hl = (this._hl + hl) |
0
41089 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41090 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41091 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41092 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41093 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41094 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41095 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41096 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41099 Sha512.prototype._hash = function () {
41100 var H = new Buffer(
64)
41102 function writeInt64BE (h, l, offset) {
41103 H.writeInt32BE(h, offset)
41104 H.writeInt32BE(l, offset +
4)
41107 writeInt64BE(this._ah, this._al,
0)
41108 writeInt64BE(this._bh, this._bl,
8)
41109 writeInt64BE(this._ch, this._cl,
16)
41110 writeInt64BE(this._dh, this._dl,
24)
41111 writeInt64BE(this._eh, this._el,
32)
41112 writeInt64BE(this._fh, this._fl,
40)
41113 writeInt64BE(this._gh, this._gl,
48)
41114 writeInt64BE(this._hh, this._hl,
56)
41119 module.exports = Sha512
41121 }).call(this,require(
"buffer").Buffer)
41122 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41123 var isHexPrefixed = require('is-hex-prefixed');
41126 * Removes '
0x' from a given `String` is present
41127 * @param {String} str the string value
41128 * @return {String|Optional} a string by pass if necessary
41130 module.exports = function stripHexPrefix(str) {
41131 if (typeof str !== 'string') {
41135 return isHexPrefixed(str) ? str.slice(
2) : str;
41138 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41140 <script>function convertRippleAdrr(address) {
41141 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41142 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41146 function convertRipplePriv(priv) {
41147 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41151 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41155 /** @fileOverview Javascript cryptography implementation.
41157 * Crush to remove comments, shorten variable names and
41158 * generally reduce transmission size.
41160 * @author Emily Stark
41161 * @author Mike Hamburg
41162 * @author Dan Boneh
41166 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41167 /*global document, window, escape, unescape, module, require, Uint32Array */
41169 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41171 /** @namespace Symmetric ciphers. */
41174 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41177 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41180 /** @namespace Block cipher modes of operation. */
41183 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41187 * @namespace Bit array encoders and decoders.
41190 * The members of this namespace are functions which translate between
41191 * SJCL's bitArrays and other objects (usually strings). Because it
41192 * isn't always clear which direction is encoding and which is decoding,
41193 * the method names are "fromBits" and "toBits".
41197 /** @namespace Exceptions. */
41199 /** @constructor Ciphertext is corrupt. */
41200 corrupt: function(message) {
41201 this.toString = function() { return "CORRUPT: "+this.message; };
41202 this.message = message;
41205 /** @constructor Invalid parameter. */
41206 invalid: function(message) {
41207 this.toString = function() { return "INVALID: "+this.message; };
41208 this.message = message;
41211 /** @constructor Bug or missing feature in SJCL. @constructor */
41212 bug: function(message) {
41213 this.toString = function() { return "BUG: "+this.message; };
41214 this.message = message;
41217 /** @constructor Something isn't ready. */
41218 notReady: function(message) {
41219 this.toString = function() { return "NOT READY: "+this.message; };
41220 this.message = message;
41225 if(typeof module !== 'undefined' && module.exports){
41226 module.exports = sjcl;
41228 if (typeof define === "function") {
41229 define([], function () {
41237 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41239 * @author Emily Stark
41240 * @author Mike Hamburg
41241 * @author Dan Boneh
41244 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41248 * These objects are the currency accepted by SJCL's crypto functions.
41252 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41253 * but many of them can take arguments that are not a multiple of
4 bytes.
41254 * This library encodes arrays of bits (whose size need not be a multiple of
8
41255 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41256 * array of words,
32 bits at a time. Since the words are double-precision
41257 * floating point numbers, they fit some extra data. We use this (in a private,
41258 * possibly-changing manner) to encode the number of bits actually present
41259 * in the last word of the array.
41263 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41264 * to ciphers like AES which want arrays of words.
41269 * Array slices in units of bits.
41270 * @param {bitArray} a The array to slice.
41271 * @param {Number} bstart The offset to the start of the slice, in bits.
41272 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41273 * slice until the end of the array.
41274 * @return {bitArray} The requested slice.
41276 bitSlice: function (a, bstart, bend) {
41277 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41278 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41282 * Extract a number packed into a bit array.
41283 * @param {bitArray} a The array to slice.
41284 * @param {Number} bstart The offset to the start of the slice, in bits.
41285 * @param {Number} length The length of the number to extract.
41286 * @return {Number} The requested slice.
41288 extract: function(a, bstart, blength) {
41289 // FIXME: this Math.floor is not necessary at all, but for some reason
41290 // seems to suppress a bug in the Chromium JIT.
41291 var x, sh = Math.floor((-bstart-blength) &
31);
41292 if ((bstart + blength -
1 ^ bstart) & -
32) {
41293 // it crosses a boundary
41294 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41296 // within a single word
41297 x = a[bstart/
32|
0]
>>> sh;
41299 return x & ((
1<
<blength) -
1);
41303 * Concatenate two bit arrays.
41304 * @param {bitArray} a1 The first array.
41305 * @param {bitArray} a2 The second array.
41306 * @return {bitArray} The concatenation of a1 and a2.
41308 concat: function (a1, a2) {
41309 if (a1.length ===
0 || a2.length ===
0) {
41310 return a1.concat(a2);
41313 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41314 if (shift ===
32) {
41315 return a1.concat(a2);
41317 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41322 * Find the length of an array of bits.
41323 * @param {bitArray} a The array.
41324 * @return {Number} The length of a, in bits.
41326 bitLength: function (a) {
41327 var l = a.length, x;
41328 if (l ===
0) { return
0; }
41330 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41334 * Truncate an array.
41335 * @param {bitArray} a The array.
41336 * @param {Number} len The length to truncate to, in bits.
41337 * @return {bitArray} A new array, truncated to len bits.
41339 clamp: function (a, len) {
41340 if (a.length *
32 < len) { return a; }
41341 a = a.slice(
0, Math.ceil(len /
32));
41344 if (l
> 0 && len) {
41345 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41351 * Make a partial word for a bit array.
41352 * @param {Number} len The number of bits in the word.
41353 * @param {Number} x The bits.
41354 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41355 * @return {Number} The partial word.
41357 partial: function (len, x, _end) {
41358 if (len ===
32) { return x; }
41359 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41363 * Get the number of bits used by a partial word.
41364 * @param {Number} x The partial word.
41365 * @return {Number} The number of bits used by the partial word.
41367 getPartial: function (x) {
41368 return Math.round(x/
0x10000000000) ||
32;
41372 * Compare two arrays for equality in a predictable amount of time.
41373 * @param {bitArray} a The first array.
41374 * @param {bitArray} b The second array.
41375 * @return {boolean} true if a == b; false otherwise.
41377 equal: function (a, b) {
41378 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41382 for (i=
0; i
<a.length; i++) {
41388 /** Shift an array right.
41389 * @param {bitArray} a The array to shift.
41390 * @param {Number} shift The number of bits to shift.
41391 * @param {Number} [carry=
0] A byte to carry in
41392 * @param {bitArray} [out=[]] An array to prepend to the output.
41395 _shiftRight: function (a, shift, carry, out) {
41396 var i, last2=
0, shift2;
41397 if (out === undefined) { out = []; }
41399 for (; shift
>=
32; shift -=
32) {
41404 return out.concat(a);
41407 for (i=
0; i
<a.length; i++) {
41408 out.push(carry | a[i]
>>>shift);
41409 carry = a[i] << (
32-shift);
41411 last2 = a.length ? a[a.length-
1] :
0;
41412 shift2 = sjcl.bitArray.getPartial(last2);
41413 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41417 /** xor a block of
4 words together.
41420 _xor4: function(x,y) {
41421 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41424 /** byteswap a word array inplace.
41425 * (does not handle partial words)
41426 * @param {sjcl.bitArray} a word array
41427 * @return {sjcl.bitArray} byteswapped array
41429 byteswapM: function(a) {
41430 var i, v, m =
0xff00;
41431 for (i =
0; i < a.length; ++i) {
41433 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41440 //// codecString.js
41442 /** @fileOverview Bit array codec implementations.
41444 * @author Emily Stark
41445 * @author Mike Hamburg
41446 * @author Dan Boneh
41449 /** @namespace UTF-
8 strings */
41450 sjcl.codec.utf8String = {
41451 /** Convert from a bitArray to a UTF-
8 string. */
41452 fromBits: function (arr) {
41453 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41454 for (i=
0; i
<bl/
8; i++) {
41458 out += String.fromCharCode(tmp
>>> 24);
41461 return decodeURIComponent(escape(out));
41464 /** Convert from a UTF-
8 string to a bitArray. */
41465 toBits: function (str) {
41466 str = unescape(encodeURIComponent(str));
41467 var out = [], i, tmp=
0;
41468 for (i=
0; i
<str.length; i++) {
41469 tmp = tmp <<
8 | str.charCodeAt(i);
41476 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41485 /** @fileOverview Bit array codec implementations.
41487 * @author Emily Stark
41488 * @author Mike Hamburg
41489 * @author Dan Boneh
41492 /** @namespace Hexadecimal */
41494 /** Convert from a bitArray to a hex string. */
41495 fromBits: function (arr) {
41497 for (i=
0; i
<arr.length; i++) {
41498 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41500 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41502 /** Convert from a hex string to a bitArray. */
41503 toBits: function (str) {
41504 var i, out=[], len;
41505 str = str.replace(/\s|
0x/g,
"");
41507 str = str +
"00000000";
41508 for (i=
0; i
<str.length; i+=
8) {
41509 out.push(parseInt(str.substr(i,
8),
16)^
0);
41511 return sjcl.bitArray.clamp(out, len*
4);
41518 /** @fileOverview Javascript SHA-
512 implementation.
41520 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41521 * SJCL by Stefan Thomas.
41523 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41524 * Released with New BSD License
41526 * @author Emily Stark
41527 * @author Mike Hamburg
41528 * @author Dan Boneh
41529 * @author Jeff Mott
41530 * @author Stefan Thomas
41534 * Context for a SHA-
512 operation in progress.
41536 * @class Secure Hash Algorithm,
512 bits.
41538 sjcl.hash.sha512 = function (hash) {
41539 if (!this._key[
0]) { this._precompute(); }
41541 this._h = hash._h.slice(
0);
41542 this._buffer = hash._buffer.slice(
0);
41543 this._length = hash._length;
41550 * Hash a string or an array of words.
41552 * @param {bitArray|String} data the data to hash.
41553 * @return {bitArray} The hash value, an array of
16 big-endian words.
41555 sjcl.hash.sha512.hash = function (data) {
41556 return (new sjcl.hash.sha512()).update(data).finalize();
41559 sjcl.hash.sha512.prototype = {
41561 * The hash's block size, in bits.
41567 * Reset the hash state.
41570 reset:function () {
41571 this._h = this._init.slice(
0);
41578 * Input several words to the hash.
41579 * @param {bitArray|String} data the data to hash.
41582 update: function (data) {
41583 if (typeof data ===
"string") {
41584 data = sjcl.codec.utf8String.toBits(data);
41586 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41588 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41589 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41590 this._block(b.splice(
0,
32));
41596 * Complete hashing and output the hash value.
41597 * @return {bitArray} The hash value, an array of
16 big-endian words.
41599 finalize:function () {
41600 var i, b = this._buffer, h = this._h;
41602 // Round out and push the buffer
41603 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41605 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41606 for (i = b.length +
4; i &
31; i++) {
41610 // append the length
41613 b.push(Math.floor(this._length /
0x100000000));
41614 b.push(this._length |
0);
41617 this._block(b.splice(
0,
32));
41625 * The SHA-
512 initialization vector, to be precomputed.
41631 * Least significant
24 bits of SHA512 initialization values.
41633 * Javascript only has
53 bits of precision, so we compute the
40 most
41634 * significant bits and add the remaining
24 bits as constants.
41638 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41642 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41643 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41647 * The SHA-
512 hash key, to be precomputed.
41653 * Least significant
24 bits of SHA512 key values.
41657 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41658 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41659 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41660 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41661 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41662 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41663 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41664 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41665 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41666 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41670 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41671 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41672 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41673 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41674 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41675 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41676 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41677 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41678 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41679 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41680 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41681 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41682 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41683 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41684 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41685 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41686 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41687 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41688 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41689 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41693 * Function to precompute _init and _key.
41696 _precompute: function () {
41697 // XXX: This code is for precomputing the SHA256 constants, change for
41698 // SHA512 and re-enable.
41699 var i =
0, prime =
2, factor;
41701 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41702 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41704 outer: for (; i
<80; prime++) {
41705 for (factor=
2; factor*factor <= prime; factor++) {
41706 if (prime % factor ===
0) {
41713 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41714 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41716 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41717 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41723 * Perform one cycle of SHA-
512.
41724 * @param {bitArray} words one block of words.
41727 _block:function (words) {
41729 w = words.slice(
0),
41732 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41733 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41734 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41735 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41737 // Working variables
41738 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41739 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41740 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41741 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41743 for (i=
0; i
<80; i++) {
41744 // load up the input word for this round
41747 wrl = w[i *
2 +
1];
41750 var gamma0xh = w[(i-
15) *
2];
41751 var gamma0xl = w[(i-
15) *
2 +
1];
41753 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41754 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41757 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41758 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41759 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41762 var gamma1xh = w[(i-
2) *
2];
41763 var gamma1xl = w[(i-
2) *
2 +
1];
41765 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41766 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41769 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41770 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41771 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41774 var wr7h = w[(i-
7) *
2];
41775 var wr7l = w[(i-
7) *
2 +
1];
41777 var wr16h = w[(i-
16) *
2];
41778 var wr16l = w[(i-
16) *
2 +
1];
41780 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41781 wrl = gamma0l + wr7l;
41782 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41784 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41786 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41790 w[i*
2 +
1] = wrl |=
0;
41793 var chh = (eh & fh) ^ (~eh & gh);
41794 var chl = (el & fl) ^ (~el & gl);
41797 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41798 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41801 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41802 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41805 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41806 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41810 var krl = k[i*
2+
1];
41812 // t1 = h + sigma1 + ch + K(round) + W(round)
41813 var t1l = hl + sigma1l;
41814 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41816 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41818 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41819 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41820 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41822 // t2 = sigma0 + maj
41823 var t2l = sigma0l + majl;
41824 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41826 // Update working variables
41833 el = (dl + t1l) |
0;
41834 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41841 al = (t1l + t2l) |
0;
41842 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41845 // Intermediate hash
41846 h0l = h[
1] = (h0l + al) |
0;
41847 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41848 h1l = h[
3] = (h1l + bl) |
0;
41849 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41850 h2l = h[
5] = (h2l + cl) |
0;
41851 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41852 h3l = h[
7] = (h3l + dl) |
0;
41853 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41854 h4l = h[
9] = (h4l + el) |
0;
41855 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41856 h5l = h[
11] = (h5l + fl) |
0;
41857 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41858 h6l = h[
13] = (h6l + gl) |
0;
41859 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41860 h7l = h[
15] = (h7l + hl) |
0;
41861 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41868 /** @fileOverview HMAC implementation.
41870 * @author Emily Stark
41871 * @author Mike Hamburg
41872 * @author Dan Boneh
41875 /** HMAC with the specified hash function.
41877 * @param {bitArray} key the key for HMAC.
41878 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41880 sjcl.misc.hmac = function (key, Hash) {
41881 this._hash = Hash = Hash || sjcl.hash.sha256;
41882 var exKey = [[],[]], i,
41883 bs = Hash.prototype.blockSize /
32;
41884 this._baseHash = [new Hash(), new Hash()];
41886 if (key.length
> bs) {
41887 key = Hash.hash(key);
41890 for (i=
0; i
<bs; i++) {
41891 exKey[
0][i] = key[i]^
0x36363636;
41892 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41895 this._baseHash[
0].update(exKey[
0]);
41896 this._baseHash[
1].update(exKey[
1]);
41897 this._resultHash = new Hash(this._baseHash[
0]);
41900 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41901 * @param {bitArray|String} data The data to mac.
41903 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41904 if (!this._updated) {
41906 return this.digest(data);
41908 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41912 sjcl.misc.hmac.prototype.reset = function () {
41913 this._resultHash = new this._hash(this._baseHash[
0]);
41914 this._updated = false;
41917 sjcl.misc.hmac.prototype.update = function (data) {
41918 this._updated = true;
41919 this._resultHash.update(data);
41922 sjcl.misc.hmac.prototype.digest = function () {
41923 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41934 /** @fileOverview Password-based key-derivation function, version
2.0.
41936 * @author Emily Stark
41937 * @author Mike Hamburg
41938 * @author Dan Boneh
41941 /** Password-Based Key-Derivation Function, version
2.0.
41943 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41945 * This is the method specified by RSA's PKCS #
5 standard.
41947 * @param {bitArray|String} password The password.
41948 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41949 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41950 * @param {Number} [length] The length of the derived key. Defaults to the
41951 output size of the hash function.
41952 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41953 * @return {bitArray} the derived key.
41955 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41956 count = count ||
1000;
41958 if (length <
0 || count <
0) {
41959 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41962 if (typeof password ===
"string") {
41963 password = sjcl.codec.utf8String.toBits(password);
41966 if (typeof salt ===
"string") {
41967 salt = sjcl.codec.utf8String.toBits(salt);
41970 Prff = Prff || sjcl.misc.hmac;
41972 var prf = new Prff(password),
41973 u, ui, i, j, k, out = [], b = sjcl.bitArray;
41975 for (k =
1;
32 * out.length < (length ||
1); k++) {
41976 u = ui = prf.encrypt(b.concat(salt,[k]));
41978 for (i=
1; i
<count; i++) {
41979 ui = prf.encrypt(ui);
41980 for (j=
0; j
<ui.length; j++) {
41985 out = out.concat(u);
41988 if (length) { out = b.clamp(out, length); }
41996 /** @fileOverview Javascript SHA-
256 implementation.
41998 * An older version of this implementation is available in the public
41999 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
42000 * Stanford University
2008-
2010 and BSD-licensed for liability
42003 * Special thanks to Aldo Cortesi for pointing out several bugs in
42006 * @author Emily Stark
42007 * @author Mike Hamburg
42008 * @author Dan Boneh
42012 * Context for a SHA-
256 operation in progress.
42014 * @class Secure Hash Algorithm,
256 bits.
42016 sjcl.hash.sha256 = function (hash) {
42017 if (!this._key[
0]) { this._precompute(); }
42019 this._h = hash._h.slice(
0);
42020 this._buffer = hash._buffer.slice(
0);
42021 this._length = hash._length;
42028 * Hash a string or an array of words.
42030 * @param {bitArray|String} data the data to hash.
42031 * @return {bitArray} The hash value, an array of
16 big-endian words.
42033 sjcl.hash.sha256.hash = function (data) {
42034 return (new sjcl.hash.sha256()).update(data).finalize();
42037 sjcl.hash.sha256.prototype = {
42039 * The hash's block size, in bits.
42045 * Reset the hash state.
42048 reset:function () {
42049 this._h = this._init.slice(
0);
42056 * Input several words to the hash.
42057 * @param {bitArray|String} data the data to hash.
42060 update: function (data) {
42061 if (typeof data ===
"string") {
42062 data = sjcl.codec.utf8String.toBits(data);
42064 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42066 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42067 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42068 this._block(b.splice(
0,
16));
42074 * Complete hashing and output the hash value.
42075 * @return {bitArray} The hash value, an array of
8 big-endian words.
42077 finalize:function () {
42078 var i, b = this._buffer, h = this._h;
42080 // Round out and push the buffer
42081 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42083 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42084 for (i = b.length +
2; i &
15; i++) {
42088 // append the length
42089 b.push(Math.floor(this._length /
0x100000000));
42090 b.push(this._length |
0);
42093 this._block(b.splice(
0,
16));
42101 * The SHA-
256 initialization vector, to be precomputed.
42106 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42110 * The SHA-
256 hash key, to be precomputed.
42116 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42117 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42118 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42119 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42120 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42121 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42122 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42123 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42128 * Function to precompute _init and _key.
42131 _precompute: function () {
42132 var i =
0, prime =
2, factor;
42134 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42136 outer: for (; i
<64; prime++) {
42137 for (factor=
2; factor*factor <= prime; factor++) {
42138 if (prime % factor ===
0) {
42145 this._init[i] = frac(Math.pow(prime,
1/
2));
42147 this._key[i] = frac(Math.pow(prime,
1/
3));
42153 * Perform one cycle of SHA-
256.
42154 * @param {bitArray} words one block of words.
42157 _block:function (words) {
42159 w = words.slice(
0),
42162 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42163 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42165 /* Rationale for placement of |
0 :
42166 * If a value can overflow is original
32 bits by a factor of more than a few
42167 * million (
2^
23 ish), there is a possibility that it might overflow the
42168 *
53-bit mantissa and lose precision.
42170 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42171 * propagates around the loop, and on the hash state h[]. I don't believe
42172 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42173 * (for h4 anyway), and better safe than sorry.
42175 * The clamps on h[] are necessary for the output to be correct even in the
42176 * common case and for short inputs.
42178 for (i=
0; i
<64; i++) {
42179 // load up the input word for this round
42183 a = w[(i+
1 ) &
15];
42184 b = w[(i+
14) &
15];
42185 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42186 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42187 w[i&
15] + w[(i+
9) &
15]) |
0;
42190 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42193 h7 = h6; h6 = h5; h5 = h4;
42195 h3 = h2; h2 = h1; h1 = h0;
42197 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42200 h[
0] = h[
0]+h0 |
0;
42201 h[
1] = h[
1]+h1 |
0;
42202 h[
2] = h[
2]+h2 |
0;
42203 h[
3] = h[
3]+h3 |
0;
42204 h[
4] = h[
4]+h4 |
0;
42205 h[
5] = h[
5]+h5 |
0;
42206 h[
6] = h[
6]+h6 |
0;
42207 h[
7] = h[
7]+h7 |
0;
42211 <script>// An extremely basic translation library
42215 // Set some html to be translated. Do this using the 'data-translate' attribute:
42217 //
<div data-translate
>Test
</div>
42218 //
<div data-translate-html
><em>keep em tag
</em></div>
42219 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
42220 //
<span data-translate-title
title=
"Example title"></span>
42222 // Obtain all the phrases to be translated via js debug console:
42224 // Translate.phrasesAsJson();
42226 // Use that template to translate the phrases into another language.
42227 // Leave the key the same. Change the value to the new language.
42229 // Create a js file to load the new phrases. In this example for Spanish,
42230 // es.js will contain the following code:
42232 // Translate.loadForeignPhrases("es", {
42233 // "Test": "Test in Spanish",
42234 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
42235 // "Example placeholder
": "Example placeholder in Spanish
"
42236 // "Example title
": "Example title in Spanish
"
42239 // In your UI put a listener for clicking on the Spanish button:
42241 // mySpanishButton.addEventListener("click
", function() {
42242 // Translate.setLanguage("es
");
42244 // myEnglishButton.addEventListener("click
", function() {
42245 // Translate.setLanguage("en
");
42248 Translate = new (function() {
42250 var defaultLanguage = "en
";
42252 var allPhrases = {};
42253 allPhrases[defaultLanguage] = {};
42258 selector: "[data-translate]
",
42259 getKey: function() {
42260 return this.textContent.trim().replace(/\s+/g, " ");
42262 setPhrase: function(p) {
42263 this.textContent = p;
42268 selector: "[data-translate-html]
",
42269 getKey: function() {
42270 return this.innerHTML.trim().replace(/\s+/g, " ");
42272 setPhrase: function(p) {
42273 this.innerHTML = p;
42277 var placeholder = {
42278 selector: "[data-translate-placeholder]
",
42279 getKey: function() {
42280 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
42282 setPhrase: function(p) {
42283 this.setAttribute("placeholder
", p);
42288 selector: "[data-translate-title]
",
42289 getKey: function() {
42290 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
42292 setPhrase: function(p) {
42293 this.setAttribute("title
", p);
42297 // Get elements to be translated
42298 var allEls = getEls(text)
42299 .concat(getEls(html))
42300 .concat(getEls(placeholder))
42301 .concat(getEls(title));
42303 // Provides access to phrases from a non-default language.
42304 // See phrases_en.js for example usage.
42305 this.loadForeignPhrases = function(language, phrases) {
42306 allPhrases[language] = phrases;
42309 // Displays a different language, eg "en
" or "fr
"
42310 this.setLanguage = function(language) {
42311 for (var i=0; i<allEls.length; i++) {
42312 var el = allEls[i];
42314 if (!(language in allPhrases)) {
42315 console.log(language + " not in allPhrases
");
42318 if (!(key in allPhrases[language])) {
42319 console.log(language + " does not contain phrase:
" + key);
42322 var phrase = allPhrases[language][key];
42323 el.setPhrase(phrase);
42327 // Converts the phrases to a key-pair json file.
42328 // This is a good way to export phrases for use in translation tools.
42329 this.phrasesAsJson = function(language) {
42331 for (var i=0; i<allEls.length; i++) {
42332 var el = allEls[i];
42338 for (var i=0; i<keys.length; i++) {
42340 var translated = "";
42341 if (language in allPhrases && key in allPhrases[language]) {
42342 translated = allPhrases[language][key];
42344 output[key] = translated;
42346 return JSON.stringify(output, null, 2);
42349 function getEls(nodeType) {
42350 var nodes = document.querySelectorAll(nodeType.selector);
42352 for (var i=0; i<nodes.length; i++) {
42353 var node = nodes[i];
42354 node.getKey = nodeType.getKey;
42355 node.setPhrase = nodeType.setPhrase;
42356 node.key = node.getKey();
42357 allPhrases[defaultLanguage][node.key] = node.key;
42365 <script>Translate.loadForeignPhrases("en",
42367 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
42368 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
42369 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
42370 "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).": "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).",
42371 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
42372 "Account": "Account",
42373 "Address": "Address",
42374 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
42375 "BIP32 Derivation Path": "BIP32 Derivation Path",
42376 "BIP32 Extended Key": "BIP32 Extended Key",
42377 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
42378 "BIP32 Root Key": "BIP32 Root Key",
42379 "BIP39 Mnemonic": "BIP39 Mnemonic",
42380 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
42381 "BIP39 Seed": "BIP39 Seed",
42382 "Base
10": "Base
10",
42383 "Base
6": "Base
6",
42384 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
42385 "Binary": "Binary",
42386 "Bitcoin Core": "Bitcoin Core",
42387 "Bits Per Event": "Bits Per Event",
42388 "Block Explorers": "Block Explorers",
42389 "Can be used with": "Can be used with",
42393 "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
42394 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
42395 "Entropy": "Entropy",
42396 "Entropy Type": "Entropy Type",
42397 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
42398 "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.": "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.",
42399 "Event Count": "Event Count",
42400 "External / Internal": "External / Internal",
42401 "Filtered Entropy": "Filtered Entropy",
42402 "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>": "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>",
42403 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.",
42404 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.",
42405 "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>": "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>",
42406 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
42407 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
42408 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
42409 "Get the source code from the repository
": "Get the source code from the repository
",
42411 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
42412 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
",
42413 "In that case you might choose to use your own source of entropy.
": "In that case you might choose to use your own source of entropy.
",
42414 "In your browser, select file save-as, and save this page as a file.
": "In your browser, select file save-as, and save this page as a file.
",
42415 "Libraries
": "Libraries
",
42416 "Mnemonic Language
": "Mnemonic Language
",
42417 "Mnemonic Length
": "Mnemonic Length
",
42418 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
42419 "More info
": "More info
",
42420 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
42421 "Mycelium Wallet
": "Mycelium Wallet
",
42422 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
42423 "Offline Usage
": "Offline Usage
",
42424 "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.": "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.",
42426 "Private Key": "Private Key",
42427 "Private Keys": "Private Keys",
42428 "Public Key": "Public Key",
42429 "Purpose": "Purpose",
42430 "Raw Binary": "Raw Binary",
42431 "Read more": "Read more",
42432 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>",
42433 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>",
42434 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>",
42435 "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>": "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>",
42437 "Show more rows
": "Show more rows
",
42438 "Strength
": "Strength
",
42439 "Supply my own source of entropy
": "Supply my own source of entropy
",
42440 "The built in random generator can generally be trusted more than your own intuition about randomness.
": "The built in random generator can generally be trusted more than your own intuition about randomness.
",
42441 "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.": "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.",
42442 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
42443 "This project is
100% open-source code": "This project is
100% open-source code",
42444 "Toggle": "Toggle",
42445 "Total Bits": "Total Bits",
42446 "Use hardened addresses": "Use hardened addresses",
42447 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
42448 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
42449 "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.": "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.",
42450 "Valid entropy values include:": "Valid entropy values include:",
42451 "Warning": "Warning",
42452 "Word Count": "Word Count",
42453 "You are not a good source of entropy.": "You are not a good source of entropy.",
42454 "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).": "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).",
42455 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
42460 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42461 WORDLISTS["english"] = [
42462 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42463 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42464 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42465 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42466 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42467 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42468 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42469 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42470 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42471 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42472 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42473 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42474 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42475 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42476 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42477 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42478 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42479 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42480 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42481 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42482 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42483 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42484 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42485 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42486 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42487 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42488 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42489 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42490 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42491 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42492 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42493 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42494 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42495 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42496 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42497 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42498 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42499 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42500 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42501 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42502 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42503 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42504 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42505 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42506 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42507 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42508 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42509 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42510 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42511 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42512 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42513 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42514 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42515 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42516 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42517 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42518 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42519 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42520 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42521 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42522 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42523 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42524 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42525 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42526 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42527 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42528 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42529 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42530 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42531 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42532 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42533 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42534 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42535 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42536 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42537 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42538 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42539 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42540 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42541 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42542 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42543 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42544 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42545 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42546 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42547 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42548 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42549 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42550 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42551 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42552 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42553 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42554 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42555 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42556 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42557 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42558 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42559 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42560 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42561 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42562 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42563 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42564 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42565 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42566 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42567 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42568 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42569 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42570 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42571 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42572 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42573 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42574 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42575 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42576 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42577 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42578 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42579 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42580 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42581 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42582 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42583 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42584 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42585 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42586 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42587 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42588 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42589 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42590 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42591 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42592 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42593 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42594 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42595 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42596 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42597 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42598 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42599 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42600 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42601 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42602 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42603 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42604 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42605 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42606 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42607 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42608 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42609 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42610 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42611 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42612 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42613 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42614 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42615 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42616 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42617 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42618 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42619 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42620 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42621 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42622 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42623 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42624 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42625 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42626 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42627 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42628 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42629 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42630 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42631 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42632 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42633 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42634 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42635 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42636 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42637 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42638 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42639 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42640 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42641 "thank","that","theme","then","theory","there","they","thing","this","thought",
42642 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42643 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42644 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42645 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42646 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42647 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42648 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42649 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42650 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42651 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42652 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42653 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42654 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42655 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42656 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42657 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42658 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42659 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42660 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42661 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42662 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42663 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42664 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42665 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42666 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42668 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42669 WORDLISTS["japanese"] = [
42670 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42671 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42672 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42673 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42674 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42675 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42676 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42677 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42678 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42679 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42680 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42681 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42682 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42683 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42684 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42685 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42686 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42687 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42688 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42689 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42690 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42691 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42692 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42693 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42694 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42695 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42696 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42697 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42698 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42699 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42700 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42701 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42702 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42703 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42704 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42705 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42706 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42707 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42708 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42709 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42710 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42711 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42712 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42713 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42714 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42715 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42716 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42717 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42718 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42719 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42720 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42721 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42722 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42723 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42724 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42725 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42726 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42727 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42728 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42729 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42730 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42731 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42732 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42733 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42734 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42735 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42736 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42737 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42738 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42739 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42740 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42741 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42742 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42743 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42744 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42745 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42746 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42747 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42748 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42749 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42750 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42751 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42752 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42753 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42754 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42755 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42756 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42757 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42758 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42759 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42760 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42761 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42762 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42763 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42764 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42765 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42766 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42767 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42768 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42769 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42770 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42771 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42772 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42773 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42774 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42775 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42776 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42777 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42778 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42779 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42780 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42781 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42782 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42783 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42784 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42785 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42786 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42787 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42788 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42789 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42790 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42791 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42792 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42793 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42794 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42795 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42796 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42797 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42798 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42799 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42800 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42801 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42802 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42803 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42804 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42805 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42806 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42807 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42808 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42809 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42810 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42811 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42812 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42813 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42814 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42815 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42816 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42817 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42818 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42819 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42820 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42821 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42822 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42823 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42824 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42825 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42826 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42827 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42828 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42829 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42830 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42831 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42832 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42833 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42834 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42835 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42836 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42837 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42838 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42839 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42840 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42841 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42842 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42843 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42844 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42845 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42846 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42847 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42848 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42849 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42850 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42851 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42852 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42853 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42854 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42855 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42856 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42857 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42858 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42859 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42860 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42861 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42862 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42863 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42864 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42865 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42866 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42867 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42868 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42869 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42870 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42871 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42872 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42873 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42874 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42876 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42877 WORDLISTS["spanish"] = [
42878 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42879 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42880 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42881 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42882 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42883 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42884 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42885 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42886 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42887 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42888 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42889 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42890 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42891 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42892 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42893 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42894 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42895 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42896 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42897 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42898 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42899 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42900 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42901 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42902 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42903 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42904 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42905 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42906 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42907 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42908 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42909 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42910 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42911 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42912 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42913 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42914 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42915 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42916 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42917 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42918 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42919 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42920 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42921 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42922 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42923 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42924 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42925 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42926 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42927 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42928 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42929 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42930 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42931 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42932 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42933 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42934 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42935 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42936 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42937 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42938 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42939 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42940 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42941 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42942 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42943 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42944 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42945 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42946 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42947 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42948 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42949 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42950 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42951 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42952 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42953 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42954 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42955 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42956 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42957 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42958 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42959 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42960 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42961 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42962 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42963 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42964 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42965 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42966 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42967 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42968 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42969 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42970 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42971 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42972 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42973 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42974 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42975 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42976 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42977 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42978 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42979 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42980 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42981 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42982 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42983 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42984 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42985 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42986 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42987 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42988 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42989 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42990 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42991 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42992 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42993 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42994 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42995 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42996 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42997 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42998 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42999 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
43000 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
43001 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
43002 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
43003 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
43004 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
43005 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
43006 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
43007 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
43008 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
43009 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
43010 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
43011 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
43012 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
43013 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
43014 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
43015 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
43016 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
43017 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
43018 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
43019 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
43020 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
43021 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
43022 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
43023 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
43024 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
43025 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
43026 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
43027 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
43028 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
43029 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
43030 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
43031 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
43032 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
43033 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
43034 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
43035 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
43036 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
43037 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
43038 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
43039 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
43040 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
43041 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
43042 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
43043 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
43044 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
43045 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
43046 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
43047 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
43048 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
43049 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
43050 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
43051 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
43052 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
43053 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
43054 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
43055 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
43056 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
43057 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
43058 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
43059 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
43060 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
43061 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
43062 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
43063 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
43064 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
43065 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
43066 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
43067 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
43068 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
43069 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
43070 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
43071 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
43072 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
43073 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
43074 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
43075 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
43076 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
43077 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
43078 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
43079 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
43080 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
43081 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
43082 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
43084 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43085 WORDLISTS["chinese_simplified"] = [
43086 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
43087 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
43088 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
43089 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
43090 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
43091 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
43092 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
43093 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
43094 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
43095 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
43096 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
43097 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43098 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
43099 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
43100 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
43101 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
43102 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
43103 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
43104 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
43105 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
43106 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
43107 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
43108 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
43109 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
43110 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
43111 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
43112 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
43113 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
43114 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
43115 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
43116 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
43117 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
43118 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
43119 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
43120 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
43121 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
43122 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
43123 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
43124 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
43125 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
43126 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
43127 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
43128 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
43129 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
43130 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
43131 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
43132 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
43133 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
43134 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
43135 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
43136 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
43137 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
43138 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
43139 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
43140 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
43141 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
43142 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
43143 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
43144 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
43145 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
43146 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
43147 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
43148 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
43149 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
43150 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
43151 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
43152 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
43153 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
43154 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
43155 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
43156 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
43157 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
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 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43292 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43293 WORDLISTS["chinese_traditional"] = [
43294 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43295 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43296 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43297 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43298 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43299 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43300 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43301 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43302 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43303 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43304 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43305 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43306 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43307 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43308 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43309 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43310 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43311 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43312 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43313 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43314 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43315 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43316 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43317 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43318 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43319 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43320 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43321 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43322 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43323 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43324 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43325 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43326 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43327 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43328 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43329 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43330 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43331 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43332 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43333 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43334 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43335 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43336 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43337 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43338 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43339 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43340 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43341 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43342 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43343 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43344 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43345 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43346 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43347 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43348 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43349 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43350 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43351 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43352 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43353 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43354 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43355 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43356 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43357 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43358 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43359 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43360 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43361 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43362 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43363 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43364 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43365 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43366 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43367 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43368 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43369 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43370 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43371 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43372 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43373 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43374 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43375 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43376 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43377 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43378 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43379 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43380 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43381 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43382 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43383 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43384 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43385 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43386 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43387 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43388 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43389 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43390 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43391 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43392 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43393 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43394 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43395 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43396 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43397 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43398 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43399 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43400 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43401 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43402 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43403 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43404 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43405 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43406 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43407 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43408 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43409 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43410 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43411 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43412 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43413 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43414 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43415 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43416 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43417 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43418 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43419 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43420 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43421 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43422 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43423 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43424 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43425 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43426 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43427 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43428 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43429 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43430 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43431 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43432 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43433 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43434 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43435 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43436 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43437 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43438 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43439 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43440 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43441 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43442 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43443 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43444 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43445 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43446 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43447 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43448 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43449 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43450 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43451 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43452 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43453 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43454 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43455 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43456 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43457 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43458 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43459 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43460 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43461 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43462 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43463 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43464 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43465 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43466 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43467 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43468 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43469 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43470 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43471 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43472 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43473 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43474 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43475 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43476 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43477 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43478 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43479 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43480 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43481 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43482 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43483 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43484 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43485 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43486 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43487 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43488 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43489 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43490 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43491 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43492 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43493 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43494 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43495 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43496 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43497 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43498 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43500 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43501 WORDLISTS["french"] = [
43502 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43503 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43504 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43505 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43506 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43507 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43508 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43509 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43510 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43511 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43512 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43513 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43514 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43515 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43516 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43517 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43518 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43519 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43520 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43521 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43522 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43523 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43524 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43525 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43526 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43527 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43528 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43529 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43530 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43531 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43532 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43533 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43534 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43535 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43536 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43537 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43538 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43539 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43540 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43541 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43542 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43543 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43544 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43545 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43546 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43547 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43548 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43549 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43550 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43551 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43552 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43553 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43554 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43555 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43556 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43557 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43558 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43559 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43560 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43561 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43562 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43563 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43564 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43565 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43566 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43567 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43568 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43569 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43570 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43571 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43572 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43573 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43574 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43575 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43576 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43577 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43578 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43579 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43580 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43581 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43582 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43583 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43584 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43585 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43586 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43587 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43588 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43589 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43590 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43591 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43592 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43593 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43594 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43595 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43596 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43597 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43598 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43599 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43600 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43601 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43602 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43603 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43604 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43605 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43606 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43607 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43608 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43609 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43610 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43611 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43612 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43613 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43614 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43615 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43616 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43617 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43618 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43619 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43620 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43621 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43622 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43623 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43624 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43625 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43626 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43627 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43628 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43629 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43630 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43631 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43632 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43633 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43634 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43635 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43636 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43637 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43638 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43639 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43640 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43641 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43642 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43643 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43644 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43645 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43646 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43647 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43648 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43649 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43650 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43651 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43652 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43653 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43654 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43655 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43656 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43657 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43658 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43659 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43660 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43661 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43662 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43663 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43664 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43665 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43666 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43667 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43668 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43669 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43670 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43671 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43672 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43673 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43674 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43675 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43676 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43677 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43678 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43679 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43680 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43681 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43682 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43683 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43684 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43685 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43686 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43687 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43688 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43689 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43690 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43691 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43692 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43693 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43694 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43695 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43696 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43697 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43698 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43699 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43700 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43701 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43702 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43703 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43704 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43705 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43706 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43708 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43709 WORDLISTS["italian"] = [
43710 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43711 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43712 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43713 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43714 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43715 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43716 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43717 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43718 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43719 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43720 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43721 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43722 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43723 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43724 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43725 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43726 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43727 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43728 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43729 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43730 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43731 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43732 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43733 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43734 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43735 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43736 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43737 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43738 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43739 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43740 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43741 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43742 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43743 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43744 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43745 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43746 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43747 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43748 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43749 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43750 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43751 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43752 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43753 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43754 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43755 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43756 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43757 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43758 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43759 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43760 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43761 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43762 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43763 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43764 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43765 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43766 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43767 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43768 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43769 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43770 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43771 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43772 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43773 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43774 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43775 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43776 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43777 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43778 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43779 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43780 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43781 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43782 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43783 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43784 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43785 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43786 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43787 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43788 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43789 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43790 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43791 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43792 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43793 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43794 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43795 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43796 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43797 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43798 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43799 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43800 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43801 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43802 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43803 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43804 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43805 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43806 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43807 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43808 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43809 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43810 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43811 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43812 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43813 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43814 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43815 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43816 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43817 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43818 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43819 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43820 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43821 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43822 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43823 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43824 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43825 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43826 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43827 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43828 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43829 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43830 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43831 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43832 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43833 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43834 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43835 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43836 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43837 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43838 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43839 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43840 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43841 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43842 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43843 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43844 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43845 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43846 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43847 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43848 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43849 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43850 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43851 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43852 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43853 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43854 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43855 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43856 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43857 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43858 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43859 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43860 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43861 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43862 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43863 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43864 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43865 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43866 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43867 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43868 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43869 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43870 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43871 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43872 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43873 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43874 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43875 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43876 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43877 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43878 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43879 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43880 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43881 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43882 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43883 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43884 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43885 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43886 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43887 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43888 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43889 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43890 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43891 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43892 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43893 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43894 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43895 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43896 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43897 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43898 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43899 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43900 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43901 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43902 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43903 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43904 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43905 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43906 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43907 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43908 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43909 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43910 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43911 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43912 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43913 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43914 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43917 * Copyright (c)
2013 Pavol Rusnak
43919 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43920 * this software and associated documentation files (the "Software"), to deal in
43921 * the Software without restriction, including without limitation the rights to
43922 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43923 * of the Software, and to permit persons to whom the Software is furnished to do
43924 * so, subject to the following conditions:
43926 * The above copyright notice and this permission notice shall be included in all
43927 * copies or substantial portions of the Software.
43929 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43930 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43931 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43932 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43933 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43934 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43938 * Javascript port from python by Ian Coleman
43940 * Requires code from sjcl
43941 * https://github.com/bitwiseshiftleft/sjcl
43944 var Mnemonic = function(language) {
43946 var PBKDF2_ROUNDS =
2048;
43952 var hmacSHA512 = function(key) {
43953 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43954 this.encrypt = function() {
43955 return hasher.encrypt.apply(hasher, arguments);
43960 wordlist = WORDLISTS[language];
43961 if (wordlist.length != RADIX) {
43962 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43967 self.generate = function(strength) {
43968 strength = strength ||
128;
43969 var r = strength %
32;
43971 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43973 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43974 if (!hasStrongCrypto) {
43975 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43977 var buffer = new Uint8Array(strength /
8);
43978 var data = crypto.getRandomValues(buffer);
43979 return self.toMnemonic(data);
43982 self.toMnemonic = function(byteArray) {
43983 if (byteArray.length %
4 > 0) {
43984 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43987 //h = hashlib.sha256(data).hexdigest()
43988 var data = byteArrayToWordArray(byteArray);
43989 var hash = sjcl.hash.sha256.hash(data);
43990 var h = sjcl.codec.hex.fromBits(hash);
43992 // b is a binary string, eg '
00111010101100...'
43993 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43994 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43996 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43997 // c = bin(int(h,
16))[
2:].zfill(
256)
43998 // d = c[:len(data) *
8 /
32]
43999 var a = byteArrayToBinaryString(byteArray);
44000 var c = zfill(hexStringToBinaryString(h),
256);
44001 var d = c.substring(
0, byteArray.length *
8 /
32);
44002 // b = line1 + line2
44006 var blen = b.length /
11;
44007 for (var i=
0; i
<blen; i++) {
44008 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
44009 result.push(wordlist[idx]);
44011 return self.joinWords(result);
44014 self.check = function(mnemonic) {
44015 var mnemonic = self.splitWords(mnemonic);
44016 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
44019 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
44021 for (var i=
0; i
<mnemonic.length; i++) {
44022 var word = mnemonic[i];
44023 var wordIndex = wordlist.indexOf(word);
44024 if (wordIndex == -
1) {
44027 var binaryIndex = zfill(wordIndex.toString(
2),
11);
44028 idx.push(binaryIndex);
44030 var b = idx.join('');
44032 //d = b[:l /
33 *
32]
44034 var d = b.substring(
0, l /
33 *
32);
44035 var h = b.substring(l - l /
33, l);
44036 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
44037 var nd = binaryStringToWordArray(d);
44038 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
44039 var ndHash = sjcl.hash.sha256.hash(nd);
44040 var ndHex = sjcl.codec.hex.fromBits(ndHash);
44041 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
44042 var nh = ndBstr.substring(
0,l/
33);
44046 self.toSeed = function(mnemonic, passphrase) {
44047 passphrase = passphrase || '';
44048 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
44049 var mnemonicNormalized = self.normalizeString(mnemonic);
44050 passphrase = self.normalizeString(passphrase)
44051 passphrase =
"mnemonic" + passphrase;
44052 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
44053 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
44054 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
44055 var hashHex = sjcl.codec.hex.fromBits(result);
44059 self.splitWords = function(mnemonic) {
44060 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
44063 self.joinWords = function(words) {
44064 // Set space correctly depending on the language
44065 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
44067 if (language ==
"japanese") {
44068 space =
"\u3000"; // ideographic space
44070 return words.join(space);
44073 self.normalizeString = function(str) {
44074 if (typeof str.normalize ==
"function") {
44075 return str.normalize(
"NFKD");
44078 // TODO decide how to handle this in the future.
44079 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
44084 function byteArrayToWordArray(data) {
44086 for (var i=
0; i
<data.length/
4; i++) {
44088 v += data[i*
4 +
0] <<
8 *
3;
44089 v += data[i*
4 +
1] <<
8 *
2;
44090 v += data[i*
4 +
2] <<
8 *
1;
44091 v += data[i*
4 +
3] <<
8 *
0;
44097 function byteArrayToBinaryString(data) {
44099 for (var i=
0; i
<data.length; i++) {
44100 bin += zfill(data[i].toString(
2),
8);
44105 function hexStringToBinaryString(hexString) {
44107 for (var i=
0; i
<hexString.length; i++) {
44108 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
44110 return binaryString;
44113 function binaryStringToWordArray(binary) {
44114 var aLen = binary.length /
32;
44116 for (var i=
0; i
<aLen; i++) {
44117 var valueStr = binary.substring(
0,
32);
44118 var value = parseInt(valueStr,
2);
44120 binary = binary.slice(
32);
44125 // Pad a numeric string on the left with zero digits until the given width
44127 // Note this differs to the python implementation because it does not
44128 // handle numbers starting with a sign.
44129 function zfill(source, length) {
44130 source = source.toString();
44131 while (source.length < length) {
44132 source = '
0' + source;
44142 JavaScript BigInteger library version
0.9.1
44143 http://silentmatt.com/biginteger/
44145 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44146 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44147 Licensed under the MIT license.
44149 Support for arbitrary internal representation base was added by
44154 File: biginteger.js
44160 (function(exports) {
44164 An arbitrarily-large integer.
44166 <BigInteger> objects should be considered immutable. None of the "built-in"
44167 methods modify *this* or their arguments. All properties should be
44168 considered private.
44170 All the methods of
<BigInteger> instances can be called "statically". The
44171 static versions are convenient if you don't already have a
<BigInteger>
44174 As an example, these calls are equivalent.
44176 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44177 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44180 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44183 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44186 Constructor: BigInteger()
44187 Convert a value to a
<BigInteger>.
44189 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44190 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44191 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44192 without a radix argument.
44194 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44195 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44196 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44197 > var n3 = BigInteger(n2); // Return n2, unchanged
44199 The constructor form only takes an array and a sign. *n* must be an
44200 array of numbers in little-endian order, where each digit is between
0
44201 and BigInteger.base. The second parameter sets the sign: -
1 for
44202 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44203 may be modified*. If the array contains only zeros, the sign parameter
44204 is ignored and is forced to zero.
44206 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44210 n - Value to convert to a
<BigInteger>.
44214 A
<BigInteger> value.
44218 <parse>,
<BigInteger>
44220 function BigInteger(n, s, token) {
44221 if (token !== CONSTRUCT) {
44222 if (n instanceof BigInteger) {
44225 else if (typeof n === "undefined") {
44228 return BigInteger.parse(n);
44231 n = n || []; // Provide the nullary constructor for subclasses.
44232 while (n.length && !n[n.length -
1]) {
44236 this._s = n.length ? (s ||
1) :
0;
44239 BigInteger._construct = function(n, s) {
44240 return new BigInteger(n, s, CONSTRUCT);
44243 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44244 // require base to be a power of
10.
10^
7 is the largest such power
44245 // that won't cause a precision loss when digits are multiplied.
44246 var BigInteger_base =
10000000;
44247 var BigInteger_base_log10 =
7;
44249 BigInteger.base = BigInteger_base;
44250 BigInteger.base_log10 = BigInteger_base_log10;
44252 var ZERO = new BigInteger([],
0, CONSTRUCT);
44255 BigInteger.ZERO = ZERO;
44257 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44260 BigInteger.ONE = ONE;
44262 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44264 //
<BigInteger> -
1.
44265 BigInteger.M_ONE = M_ONE;
44268 // Shortcut for
<ZERO>.
44269 BigInteger._0 = ZERO;
44272 // Shortcut for
<ONE>.
44273 BigInteger._1 = ONE;
44277 Array of
<BigIntegers> from
0 to
36.
44279 These are used internally for parsing, but useful when you need a "small"
44284 <ZERO>,
<ONE>,
<_0>,
<_1>
44286 BigInteger.small = [
44289 /* Assuming BigInteger_base
> 36 */
44290 new BigInteger( [
2],
1, CONSTRUCT),
44291 new BigInteger( [
3],
1, CONSTRUCT),
44292 new BigInteger( [
4],
1, CONSTRUCT),
44293 new BigInteger( [
5],
1, CONSTRUCT),
44294 new BigInteger( [
6],
1, CONSTRUCT),
44295 new BigInteger( [
7],
1, CONSTRUCT),
44296 new BigInteger( [
8],
1, CONSTRUCT),
44297 new BigInteger( [
9],
1, CONSTRUCT),
44298 new BigInteger([
10],
1, CONSTRUCT),
44299 new BigInteger([
11],
1, CONSTRUCT),
44300 new BigInteger([
12],
1, CONSTRUCT),
44301 new BigInteger([
13],
1, CONSTRUCT),
44302 new BigInteger([
14],
1, CONSTRUCT),
44303 new BigInteger([
15],
1, CONSTRUCT),
44304 new BigInteger([
16],
1, CONSTRUCT),
44305 new BigInteger([
17],
1, CONSTRUCT),
44306 new BigInteger([
18],
1, CONSTRUCT),
44307 new BigInteger([
19],
1, CONSTRUCT),
44308 new BigInteger([
20],
1, CONSTRUCT),
44309 new BigInteger([
21],
1, CONSTRUCT),
44310 new BigInteger([
22],
1, CONSTRUCT),
44311 new BigInteger([
23],
1, CONSTRUCT),
44312 new BigInteger([
24],
1, CONSTRUCT),
44313 new BigInteger([
25],
1, CONSTRUCT),
44314 new BigInteger([
26],
1, CONSTRUCT),
44315 new BigInteger([
27],
1, CONSTRUCT),
44316 new BigInteger([
28],
1, CONSTRUCT),
44317 new BigInteger([
29],
1, CONSTRUCT),
44318 new BigInteger([
30],
1, CONSTRUCT),
44319 new BigInteger([
31],
1, CONSTRUCT),
44320 new BigInteger([
32],
1, CONSTRUCT),
44321 new BigInteger([
33],
1, CONSTRUCT),
44322 new BigInteger([
34],
1, CONSTRUCT),
44323 new BigInteger([
35],
1, CONSTRUCT),
44324 new BigInteger([
36],
1, CONSTRUCT)
44327 // Used for parsing/radix conversion
44328 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44332 Convert a
<BigInteger> to a string.
44334 When *base* is greater than
10, letters are upper case.
44338 base - Optional base to represent the number in (default is base
10).
44339 Must be between
2 and
36 inclusive, or an Error will be thrown.
44343 The string representation of the
<BigInteger>.
44345 BigInteger.prototype.toString = function(base) {
44346 base = +base ||
10;
44347 if (base <
2 || base
> 36) {
44348 throw new Error(
"illegal radix " + base +
".");
44350 if (this._s ===
0) {
44354 var str = this._s <
0 ?
"-" :
"";
44355 str += this._d[this._d.length -
1].toString();
44356 for (var i = this._d.length -
2; i
>=
0; i--) {
44357 var group = this._d[i].toString();
44358 while (group.length < BigInteger_base_log10) group = '
0' + group;
44364 var numerals = BigInteger.digits;
44365 base = BigInteger.small[base];
44366 var sign = this._s;
44368 var n = this.abs();
44372 while (n._s !==
0) {
44373 var divmod = n.divRem(base);
44376 // TODO: This could be changed to unshift instead of reversing at the end.
44377 // Benchmark both to compare speeds.
44378 digits.push(numerals[digit.valueOf()]);
44380 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44384 // Verify strings for parsing
44385 BigInteger.radixRegex = [
44427 Parse a string into a
<BigInteger>.
44429 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44430 *base* is not provided, it will be guessed based on the leading characters
44433 - "
0x" or "
0X": *base* =
16
44434 - "
0c" or "
0C": *base* =
8
44435 - "
0b" or "
0B": *base* =
2
44436 - else: *base* =
10
44438 If no base is provided, or *base* is
10, the number can be in exponential
44439 form. For example, these are all valid:
44441 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44442 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44443 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44445 If any characters fall outside the range defined by the radix, an exception
44450 s - The string to parse.
44451 base - Optional radix (default is to guess based on *s*).
44455 a
<BigInteger> instance.
44457 BigInteger.parse = function(s, base) {
44458 // Expands a number in exponential form to decimal form.
44459 // expandExponential("-
13.441*
10^
5") === "
1344100";
44460 // expandExponential("
1.12300e-1") === "
0.112300";
44461 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44462 function expandExponential(str) {
44463 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44465 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44468 var i = n.length + c;
44469 x = (l ? n : f).length;
44470 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44471 var z = (new Array(c +
1)).join("
0");
44473 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44478 if (typeof base === "undefined" || +base ===
10) {
44479 s = expandExponential(s);
44483 if (typeof base === "undefined") {
44484 prefixRE = '
0[xcb]';
44486 else if (base ==
16) {
44489 else if (base ==
8) {
44492 else if (base ==
2) {
44498 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44500 var sign = parts[
1] || "+";
44501 var baseSection = parts[
2] || "";
44502 var digits = parts[
3] || "";
44504 if (typeof base === "undefined") {
44506 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44509 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44512 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44519 else if (base <
2 || base
> 36) {
44520 throw new Error(
"Illegal radix " + base +
".");
44525 // Check for digits outside the range
44526 if (!(BigInteger.radixRegex[base].test(digits))) {
44527 throw new Error(
"Bad digit for radix " + base);
44530 // Strip leading zeros, and convert to array
44531 digits = digits.replace(/^
0+/,
"").split(
"");
44532 if (digits.length ===
0) {
44536 // Get the sign (we know it's not zero)
44537 sign = (sign ===
"-") ? -
1 :
1;
44542 while (digits.length
>= BigInteger_base_log10) {
44543 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44545 d.push(parseInt(digits.join(''),
10));
44546 return new BigInteger(d, sign, CONSTRUCT);
44549 // Do the conversion
44551 base = BigInteger.small[base];
44552 var small = BigInteger.small;
44553 for (var i =
0; i < digits.length; i++) {
44554 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44556 return new BigInteger(d._d, sign, CONSTRUCT);
44559 throw new Error("Invalid BigInteger format: " + s);
44565 Add two
<BigIntegers>.
44569 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44573 The numbers added together.
44577 <subtract>,
<multiply>,
<quotient>,
<next>
44579 BigInteger.prototype.add = function(n) {
44580 if (this._s ===
0) {
44581 return BigInteger(n);
44588 if (this._s !== n._s) {
44590 return this.subtract(n);
44597 var sum = new Array(Math.max(al, bl) +
1);
44598 var size = Math.min(al, bl);
44602 for (var i =
0; i < size; i++) {
44603 digit = a[i] + b[i] + carry;
44604 sum[i] = digit % BigInteger_base;
44605 carry = (digit / BigInteger_base) |
0;
44611 for (i = size; carry && i < al; i++) {
44612 digit = a[i] + carry;
44613 sum[i] = digit % BigInteger_base;
44614 carry = (digit / BigInteger_base) |
0;
44620 for ( ; i < al; i++) {
44624 return new BigInteger(sum, this._s, CONSTRUCT);
44629 Get the additive inverse of a
<BigInteger>.
44633 A
<BigInteger> with the same magnatude, but with the opposite sign.
44639 BigInteger.prototype.negate = function() {
44640 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44645 Get the absolute value of a
<BigInteger>.
44649 A
<BigInteger> with the same magnatude, but always positive (or zero).
44655 BigInteger.prototype.abs = function() {
44656 return (this._s <
0) ? this.negate() : this;
44661 Subtract two
<BigIntegers>.
44665 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44669 The *n* subtracted from *this*.
44673 <add>,
<multiply>,
<quotient>,
<prev>
44675 BigInteger.prototype.subtract = function(n) {
44676 if (this._s ===
0) {
44677 return BigInteger(n).negate();
44684 if (this._s !== n._s) {
44686 return this.add(n);
44690 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44692 m = new BigInteger(n._d,
1, CONSTRUCT);
44693 n = new BigInteger(this._d,
1, CONSTRUCT);
44696 // Both are positive =
> a - b
44697 var sign = m.compareAbs(n);
44701 else if (sign <
0) {
44713 var diff = new Array(al); // al
>= bl since a
> b
44718 for (i =
0; i < bl; i++) {
44719 digit = a[i] - borrow - b[i];
44721 digit += BigInteger_base;
44729 for (i = bl; i < al; i++) {
44730 digit = a[i] - borrow;
44732 digit += BigInteger_base;
44740 for ( ; i < al; i++) {
44744 return new BigInteger(diff, sign, CONSTRUCT);
44748 function addOne(n, sign) {
44750 var sum = a.slice();
44755 var digit = (a[i] ||
0) +
1;
44756 sum[i] = digit % BigInteger_base;
44757 if (digit <= BigInteger_base -
1) {
44763 return new BigInteger(sum, sign, CONSTRUCT);
44766 function subtractOne(n, sign) {
44768 var sum = a.slice();
44773 var digit = (a[i] ||
0) -
1;
44775 sum[i] = digit + BigInteger_base;
44784 return new BigInteger(sum, sign, CONSTRUCT);
44789 Get the next
<BigInteger> (add one).
44799 BigInteger.prototype.next = function() {
44804 return subtractOne(this, -
1);
44807 return addOne(this,
1);
44813 Get the previous
<BigInteger> (subtract one).
44823 BigInteger.prototype.prev = function() {
44828 return addOne(this, -
1);
44831 return subtractOne(this,
1);
44837 Function: compareAbs
44838 Compare the absolute value of two
<BigIntegers>.
44840 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44844 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44848 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44854 BigInteger.prototype.compareAbs = function(n) {
44859 if (!(n instanceof BigInteger)) {
44860 if (!isFinite(n)) {
44861 return(isNaN(n) ? n : -
1);
44866 if (this._s ===
0) {
44867 return (n._s !==
0) ? -
1 :
0;
44873 var l = this._d.length;
44874 var nl = n._d.length;
44884 for (var i = l-
1; i
>=
0; i--) {
44885 if (a[i] !== b[i]) {
44886 return a[i] < b[i] ? -
1 :
1;
44895 Compare two
<BigIntegers>.
44899 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44903 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44907 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44909 BigInteger.prototype.compare = function(n) {
44916 if (this._s ===
0) {
44920 if (this._s === n._s) { // both positive or both negative
44921 var cmp = this.compareAbs(n);
44922 return cmp * this._s;
44931 Return true iff *this* is either
1 or -
1.
44935 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44939 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44940 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44942 BigInteger.prototype.isUnit = function() {
44943 return this === ONE ||
44945 (this._d.length ===
1 && this._d[
0] ===
1);
44950 Multiply two
<BigIntegers>.
44954 n - The number to multiply *this* by. Will be converted to a
44959 The numbers multiplied together.
44963 <add>,
<subtract>,
<quotient>,
<square>
44965 BigInteger.prototype.multiply = function(n) {
44966 // TODO: Consider adding Karatsuba multiplication for large numbers
44967 if (this._s ===
0) {
44975 if (this.isUnit()) {
44983 return this.negate();
44988 return this.square();
44991 var r = (this._d.length
>= n._d.length);
44992 var a = (r ? this : n)._d; // a will be longer than b
44993 var b = (r ? n : this)._d;
44998 var partial = new Array(pl);
45000 for (i =
0; i < pl; i++) {
45004 for (i =
0; i < bl; i++) {
45007 var jlimit = al + i;
45009 for (var j = i; j < jlimit; j++) {
45010 digit = partial[j] + bi * a[j - i] + carry;
45011 carry = (digit / BigInteger_base) |
0;
45012 partial[j] = (digit % BigInteger_base) |
0;
45015 digit = partial[j] + carry;
45016 carry = (digit / BigInteger_base) |
0;
45017 partial[j] = digit % BigInteger_base;
45020 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
45023 // Multiply a BigInteger by a single-digit native number
45024 // Assumes that this and n are
>=
0
45025 // This is not really intended to be used outside the library itself
45026 BigInteger.prototype.multiplySingleDigit = function(n) {
45027 if (n ===
0 || this._s ===
0) {
45035 if (this._d.length ===
1) {
45036 digit = this._d[
0] * n;
45037 if (digit
>= BigInteger_base) {
45038 return new BigInteger([(digit % BigInteger_base)|
0,
45039 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
45041 return new BigInteger([digit],
1, CONSTRUCT);
45045 return this.add(this);
45047 if (this.isUnit()) {
45048 return new BigInteger([n],
1, CONSTRUCT);
45055 var partial = new Array(pl);
45056 for (var i =
0; i < pl; i++) {
45061 for (var j =
0; j < al; j++) {
45062 digit = n * a[j] + carry;
45063 carry = (digit / BigInteger_base) |
0;
45064 partial[j] = (digit % BigInteger_base) |
0;
45067 partial[j] = carry;
45070 return new BigInteger(partial,
1, CONSTRUCT);
45075 Multiply a
<BigInteger> by itself.
45077 This is slightly faster than regular multiplication, since it removes the
45078 duplicated multiplcations.
45082 > this.multiply(this)
45087 BigInteger.prototype.square = function() {
45088 // Normally, squaring a
10-digit number would take
100 multiplications.
45089 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
45090 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
45091 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
45093 if (this._s ===
0) {
45096 if (this.isUnit()) {
45100 var digits = this._d;
45101 var length = digits.length;
45102 var imult1 = new Array(length + length +
1);
45103 var product, carry, k;
45106 // Calculate diagonal
45107 for (i =
0; i < length; i++) {
45109 product = digits[i] * digits[i];
45110 carry = (product / BigInteger_base) |
0;
45111 imult1[k] = product % BigInteger_base;
45112 imult1[k +
1] = carry;
45115 // Calculate repeating part
45116 for (i =
0; i < length; i++) {
45119 for (var j = i +
1; j < length; j++, k++) {
45120 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
45121 carry = (product / BigInteger_base) |
0;
45122 imult1[k] = product % BigInteger_base;
45125 var digit = carry + imult1[k];
45126 carry = (digit / BigInteger_base) |
0;
45127 imult1[k] = digit % BigInteger_base;
45128 imult1[k +
1] += carry;
45131 return new BigInteger(imult1,
1, CONSTRUCT);
45136 Divide two
<BigIntegers> and truncate towards zero.
45138 <quotient> throws an exception if *n* is zero.
45142 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45146 The *this* / *n*, truncated to an integer.
45150 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45152 BigInteger.prototype.quotient = function(n) {
45153 return this.divRem(n)[
0];
45158 Deprecated synonym for
<quotient>.
45160 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45163 Function: remainder
45164 Calculate the remainder of two
<BigIntegers>.
45166 <remainder> throws an exception if *n* is zero.
45170 n - The remainder after *this* is divided *this* by *n*. Will be
45171 converted to a
<BigInteger>.
45179 <divRem>,
<quotient>
45181 BigInteger.prototype.remainder = function(n) {
45182 return this.divRem(n)[
1];
45187 Calculate the integer quotient and remainder of two
<BigIntegers>.
45189 <divRem> throws an exception if *n* is zero.
45193 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45197 A two-element array containing the quotient and the remainder.
45201 is exactly equivalent to
45203 > [a.quotient(b), a.remainder(b)]
45205 except it is faster, because they are calculated at the same time.
45209 <quotient>,
<remainder>
45211 BigInteger.prototype.divRem = function(n) {
45214 throw new Error("Divide by zero");
45216 if (this._s ===
0) {
45217 return [ZERO, ZERO];
45219 if (n._d.length ===
1) {
45220 return this.divRemSmall(n._s * n._d[
0]);
45223 // Test for easy cases -- |n1| <= |n2|
45224 switch (this.compareAbs(n)) {
45225 case
0: // n1 == n2
45226 return [this._s === n._s ? ONE : M_ONE, ZERO];
45227 case -
1: // |n1| < |n2|
45228 return [ZERO, this];
45231 var sign = this._s * n._s;
45233 var b_digits = this._d;
45234 var b_index = b_digits.length;
45235 var digits = n._d.length;
45239 var part = new BigInteger([],
0, CONSTRUCT);
45242 part._d.unshift(b_digits[--b_index]);
45243 part = new BigInteger(part._d,
1, CONSTRUCT);
45245 if (part.compareAbs(n) <
0) {
45249 if (part._s ===
0) {
45253 var xlen = part._d.length, ylen = a._d.length;
45254 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45255 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45256 if (part._d.length
> a._d.length) {
45257 // The length of part._d can either match a._d length,
45258 // or exceed it by one.
45259 highx = (highx+
1)*BigInteger_base;
45261 guess = Math.ceil(highx/highy);
45264 var check = a.multiplySingleDigit(guess);
45265 if (check.compareAbs(part) <=
0) {
45275 var diff = part.subtract(check);
45276 part._d = diff._d.slice();
45279 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45280 new BigInteger(part._d, this._s, CONSTRUCT)];
45283 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45284 // [
1, BigInteger.base). It's not necessary to call this, since the
45285 // other division functions will call it if they are able to.
45286 BigInteger.prototype.divRemSmall = function(n) {
45290 throw new Error("Divide by zero");
45293 var n_s = n <
0 ? -
1 :
1;
45294 var sign = this._s * n_s;
45297 if (n <
1 || n
>= BigInteger_base) {
45298 throw new Error("Argument out of range");
45301 if (this._s ===
0) {
45302 return [ZERO, ZERO];
45305 if (n ===
1 || n === -
1) {
45306 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45309 //
2 <= n < BigInteger_base
45311 // divide a single digit by a single digit
45312 if (this._d.length ===
1) {
45313 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45314 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45324 var digits = this._d.slice();
45325 var quot = new Array(digits.length);
45331 while (digits.length) {
45332 part = part * BigInteger_base + digits[digits.length -
1];
45336 diff = BigInteger_base * diff + part;
45343 guess = (part / n) |
0;
45346 var check = n * guess;
45347 diff = part - check;
45358 r = new BigInteger([diff],
1, CONSTRUCT);
45362 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45367 Return true iff *this* is divisible by two.
45369 Note that
<BigInteger.ZERO
> is even.
45373 true if *this* is even, false otherwise.
45379 BigInteger.prototype.isEven = function() {
45380 var digits = this._d;
45381 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45386 Return true iff *this* is not divisible by two.
45390 true if *this* is odd, false otherwise.
45396 BigInteger.prototype.isOdd = function() {
45397 return !this.isEven();
45402 Get the sign of a
<BigInteger>.
45412 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45414 BigInteger.prototype.sign = function() {
45419 Function: isPositive
45420 Return true iff *this*
> 0.
45424 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45428 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45430 BigInteger.prototype.isPositive = function() {
45431 return this._s
> 0;
45435 Function: isNegative
45436 Return true iff *this* <
0.
45440 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45444 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45446 BigInteger.prototype.isNegative = function() {
45447 return this._s <
0;
45452 Return true iff *this* ==
0.
45456 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45460 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45462 BigInteger.prototype.isZero = function() {
45463 return this._s ===
0;
45468 Multiply a
<BigInteger> by a power of
10.
45470 This is equivalent to, but faster than
45473 > return this.multiply(BigInteger("
1e" + n));
45476 > return this.quotient(BigInteger("
1e" + -n));
45481 n - The power of
10 to multiply *this* by. *n* is converted to a
45482 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45483 (
0x7FFFFFFF), or an exception will be thrown.
45487 *this* * (
10 ** *n*), truncated to an integer if necessary.
45493 BigInteger.prototype.exp10 = function(n) {
45498 if (Math.abs(n)
> Number(MAX_EXP)) {
45499 throw new Error("exponent too large in BigInteger.exp10");
45501 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45502 if (this._s ===
0) {
45506 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45508 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45514 k = k.multiplySingleDigit(Math.pow(
10, n));
45515 return (this._s <
0 ? k.negate() : k);
45516 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45519 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45521 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45524 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45530 Raise a
<BigInteger> to a power.
45532 In this implementation,
0**
0 is
1.
45536 n - The exponent to raise *this* by. *n* must be no greater than
45537 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45541 *this* raised to the *nth* power.
45547 BigInteger.prototype.pow = function(n) {
45548 if (this.isUnit()) {
45553 return BigInteger(n).isOdd() ? this : this.negate();
45561 else if (n._s <
0) {
45562 if (this._s ===
0) {
45563 throw new Error(
"Divide by zero");
45569 if (this._s ===
0) {
45576 if (n.compareAbs(MAX_EXP)
> 0) {
45577 throw new Error(
"exponent too large in BigInteger.pow");
45581 var two = BigInteger.small[
2];
45583 while (n.isPositive()) {
45585 aux = aux.multiply(x);
45591 n = n.quotient(two);
45599 Raise a
<BigInteger> to a power (mod m).
45601 Because it is reduced by a modulus,
<modPow> is not limited by
45602 <BigInteger.MAX_EXP
> like
<pow>.
45606 exponent - The exponent to raise *this* by. Must be positive.
45607 modulus - The modulus.
45611 *this* ^ *exponent* (mod *modulus*).
45617 BigInteger.prototype.modPow = function(exponent, modulus) {
45621 while (exponent.isPositive()) {
45622 if (exponent.isOdd()) {
45623 result = result.multiply(base).remainder(modulus);
45626 exponent = exponent.quotient(BigInteger.small[
2]);
45627 if (exponent.isPositive()) {
45628 base = base.square().remainder(modulus);
45637 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45639 This is equivalent to
45641 > Math.log(this.toJSValue())
45643 but handles values outside of the native number range.
45653 BigInteger.prototype.log = function() {
45655 case
0: return -Infinity;
45656 case -
1: return NaN;
45657 default: // Fall through.
45660 var l = this._d.length;
45662 if (l*BigInteger_base_log10 <
30) {
45663 return Math.log(this.valueOf());
45666 var N = Math.ceil(
30/BigInteger_base_log10);
45667 var firstNdigits = this._d.slice(l - N);
45668 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45673 Convert a
<BigInteger> to a native JavaScript integer.
45675 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45680 > parseInt(this.toString(),
10)
45684 <toString>,
<toJSValue>
45686 BigInteger.prototype.valueOf = function() {
45687 return parseInt(this.toString(),
10);
45691 Function: toJSValue
45692 Convert a
<BigInteger> to a native JavaScript integer.
45694 This is the same as valueOf, but more explicitly named.
45698 > parseInt(this.toString(),
10)
45702 <toString>,
<valueOf>
45704 BigInteger.prototype.toJSValue = function() {
45705 return parseInt(this.toString(),
10);
45708 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45709 // Constant: MAX_EXP
45710 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45711 BigInteger.MAX_EXP = MAX_EXP;
45714 function makeUnary(fn) {
45715 return function(a) {
45716 return fn.call(BigInteger(a));
45720 function makeBinary(fn) {
45721 return function(a, b) {
45722 return fn.call(BigInteger(a), BigInteger(b));
45726 function makeTrinary(fn) {
45727 return function(a, b, c) {
45728 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45734 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45735 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45736 var trinary = ["modPow"];
45738 for (i =
0; i < unary.length; i++) {
45740 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45743 for (i =
0; i < binary.length; i++) {
45745 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45748 for (i =
0; i < trinary.length; i++) {
45750 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45753 BigInteger.exp10 = function(x, n) {
45754 return BigInteger(x).exp10(n);
45759 exports.BigInteger = BigInteger;
45760 })(typeof exports !== 'undefined' ? exports : this);
45762 <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){
45763 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;
45765 },{}],
2:[function(require,module,exports){
45766 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;
45768 },{"./scoring":
6}],
3:[function(require,module,exports){
45769 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(","),
45770 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(","),
45771 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(","),
45772 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(","),
45773 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;
45775 },{}],
4:[function(require,module,exports){
45776 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;
45778 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45779 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;
45781 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45782 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;
45784 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45785 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;
45792 * Detects entropy from a string.
45799 * hexadecimal [
0-
9A-F]
45800 * card [A2-
9TJQK][CDHS]
45802 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45803 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45807 window.Entropy = new (function() {
45809 var TWO = new BigInteger(
2);
45811 // matchers returns an array of the matched events for each type of entropy.
45813 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45814 // matchers.binary("a10") returns ["
1", "
0"]
45815 // matchers.hex("a10") returns ["a", "
1", "
0"]
45817 binary: function(str) {
45818 return str.match(/[
0-
1]/gi) || [];
45820 base6: function(str) {
45821 return str.match(/[
0-
5]/gi) || [];
45823 dice: function(str) {
45824 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45826 base10: function(str) {
45827 return str.match(/[
0-
9]/gi) || [];
45829 hex: function(str) {
45830 return str.match(/[
0-
9A-F]/gi) || [];
45832 card: function(str) {
45833 // Format is NumberSuit, eg
45834 // AH ace of hearts
45835 //
8C eight of clubs
45836 // TD ten of diamonds
45837 // JS jack of spades
45838 // QH queen of hearts
45839 // KC king of clubs
45840 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45844 // Convert array of cards from ["ac", "
4d", "ks"]
45845 // to numbers between
0 and
51 [
0,
16,
51]
45846 function convertCardsToInts(cards) {
45848 var values = "a23456789tjqk";
45849 var suits = "cdhs";
45850 for (var i=
0; i
<cards.length; i++) {
45851 var card = cards[i].toLowerCase();
45852 var value = card[
0];
45853 var suit = card[
1];
45854 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45860 this.fromString = function(rawEntropyStr) {
45861 // Find type of entropy being used (binary, hex, dice etc)
45862 var base = getBase(rawEntropyStr);
45863 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45864 // This is done by changing all
6s to
0s
45865 if (base.str ==
"dice") {
45868 for (var i=
0; i
<base.parts.length; i++) {
45869 var c = base.parts[i];
45870 if (
"12345".indexOf(c)
> -
1) {
45871 newParts[i] = base.parts[i];
45872 newInts[i] = base.ints[i];
45879 base.str = "base
6 (dice)";
45880 base.ints = newInts;
45881 base.parts = newParts;
45882 base.matcher = matchers.base6;
45884 // Detect empty entropy
45885 if (base.parts.length ==
0) {
45893 // Convert base.ints to BigInteger.
45894 // Due to using unusual bases, eg cards of base52, this is not as simple as
45895 // using BigInteger.parse()
45896 var entropyInt = BigInteger.ZERO;
45897 for (var i=base.ints.length-
1; i
>=
0; i--) {
45898 var thisInt = BigInteger.parse(base.ints[i]);
45899 var power = (base.ints.length -
1) - i;
45900 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45901 entropyInt = entropyInt.add(additionalEntropy);
45903 // Convert entropy to binary
45904 var entropyBin = entropyInt.toString(
2);
45905 // If the first integer is small, it must be padded with zeros.
45906 // Otherwise the chance of the first bit being
1 is
100%, which is
45907 // obviously incorrect.
45908 // This is not perfect for non-
2^n bases.
45909 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45910 while (entropyBin.length < expectedBits) {
45911 entropyBin = "
0" + entropyBin;
45913 // Calculate the number of bits per event
45914 var bitsPerEvent = Math.log2(base.asInt);
45915 // Cards binary must be handled differently, since they're not replaced
45916 if (base.asInt ==
52) {
45917 var cardEntropy = processCardEntropy(base.parts);
45918 entropyBin = cardEntropy.binaryStr;
45919 bitsPerEvent = cardEntropy.bitsPerEvent;
45921 // Supply a 'filtered' entropy string for display purposes
45922 var entropyClean = base.parts.join("");
45923 var entropyHtml = base.parts.join("");
45924 if (base.asInt ==
52) {
45925 entropyClean = base.parts.join(" ").toUpperCase();
45926 entropyClean = entropyClean.replace(/C/g, "\u2663");
45927 entropyClean = entropyClean.replace(/D/g, "\u2666");
45928 entropyClean = entropyClean.replace(/H/g, "\u2665");
45929 entropyClean = entropyClean.replace(/S/g, "\u2660");
45930 entropyHtml = base.parts.join(" ").toUpperCase();
45931 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45932 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45933 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45934 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45936 // Return the result
45938 binaryStr: entropyBin,
45939 cleanStr: entropyClean,
45940 cleanHtml: entropyHtml,
45941 bitsPerEvent: bitsPerEvent,
45947 function getSortedDeck() {
45949 var suits = "CDHS
";
45950 var values = "A23456789TJQK
";
45951 for (var i=0; i<suits.length; i++) {
45952 for (var j=0; j<values.length; j++) {
45953 s.push(values[j]+suits[i]);
45959 function getBase(str) {
45960 // Need to get the lowest base for the supplied entropy.
45961 // This prevents interpreting, say, dice rolls as hexadecimal.
45962 var binaryMatches = matchers.binary(str);
45963 var hexMatches = matchers.hex(str);
45964 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45965 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45966 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45969 parts: binaryMatches,
45970 matcher: matchers.binary,
45975 var cardMatches = matchers.card(str);
45976 if (cardMatches.length >= hexMatches.length / 2) {
45977 var ints = convertCardsToInts(cardMatches);
45980 parts: cardMatches,
45981 matcher: matchers.card,
45986 var diceMatches = matchers.dice(str);
45987 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45988 var ints = diceMatches.map(function(i) { return parseInt(i) });
45991 parts: diceMatches,
45992 matcher: matchers.dice,
45997 var base6Matches = matchers.base6(str);
45998 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45999 var ints = base6Matches.map(function(i) { return parseInt(i) });
46002 parts: base6Matches,
46003 matcher: matchers.base6,
46008 var base10Matches = matchers.base10(str);
46009 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
46010 var ints = base10Matches.map(function(i) { return parseInt(i) });
46013 parts: base10Matches,
46014 matcher: matchers.base10,
46019 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
46023 matcher: matchers.hex,
46025 str:
"hexadecimal",
46029 // Assume cards are NOT replaced.
46030 // Additional entropy decreases as more cards are used. This means
46031 // total possible entropy is measured using n!, not base^n.
46032 // eg the second last card can be only one of two, not one of fifty two
46033 // so the added entropy for that card is only one bit at most
46034 function processCardEntropy(cards) {
46035 // Track how many instances of each card have been used, and thus
46036 // how many decks are in use.
46037 var cardCounts = {};
46038 var numberOfDecks =
0;
46039 // Work out number of decks by max(duplicates)
46040 for (var i=
0; i
<cards.length; i++) {
46041 // Get the card that was drawn
46042 var cardLower = cards[i];
46043 var card = cardLower.toUpperCase();
46044 // Initialize the count for this card if needed
46045 if (!(card in cardCounts)) {
46046 cardCounts[card] =
0;
46048 cardCounts[card] +=
1;
46049 // See if this is max(duplicates)
46050 if (cardCounts[card]
> numberOfDecks) {
46051 numberOfDecks = cardCounts[card];
46054 // Work out the total number of bits for this many decks
46055 // See http://crypto.stackexchange.com/q/
41886
46056 var gainedBits =
0;
46057 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
46058 // which becomes infinity for numberOfDecks
> 4
46059 for (var i=
1; i<=
52*numberOfDecks; i++) {
46060 gainedBits = gainedBits + Math.log2(i);
46062 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
46063 var maxBits = gainedBits - lostBits;
46064 // Convert the drawn cards to a binary representation.
46065 // The exact technique for doing this is unclear.
46067 // http://crypto.stackexchange.com/a/
41896
46068 //
"I even doubt that this is well defined (only the average entropy
46069 // is, I believe)."
46071 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
46072 //
"The binary representation can be the first log(permutations,2) bits
46073 // of the sha-2 hash of the normalized deck string."
46075 // In this specific implementation, the first N bits of the hash of the
46076 // normalized cards string is being used. Uppercase, no spaces; eg
46077 // sha256(
"AH8DQSTC2H")
46078 var totalCards = numberOfDecks *
52;
46079 var percentUsed = cards.length / totalCards;
46080 // Calculate the average number of bits of entropy for the number of
46082 var numberOfBits = Math.floor(maxBits * percentUsed);
46083 // Create a normalized string of the selected cards
46084 var normalizedCards = cards.join(
"").toUpperCase();
46085 // Convert to binary using the SHA256 hash of the normalized cards.
46086 // If the number of bits is more than
256, multiple hashes
46087 // are used until the required number of bits is reached.
46088 var entropyBin =
"";
46089 var iterations =
0;
46090 while (entropyBin.length < numberOfBits) {
46091 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
46092 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
46093 for (var i=
0; i
<hashHex.length; i++) {
46094 var decimal = parseInt(hashHex[i],
16);
46095 var binary = decimal.toString(
2);
46096 while (binary.length <
4) {
46097 binary =
"0" + binary;
46099 entropyBin = entropyBin + binary;
46101 iterations = iterations +
1;
46103 // Truncate to the appropriate number of bits.
46104 entropyBin = entropyBin.substring(
0, numberOfBits);
46105 // Get the number of bits per event
46106 bitsPerEvent = maxBits / totalCards;
46108 binaryStr: entropyBin,
46109 bitsPerEvent: bitsPerEvent,
46113 // Polyfill for Math.log2
46114 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
46115 Math.log2 = Math.log2 || function(x) {
46116 // The polyfill isn't good enough because of the poor accuracy of
46118 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
46119 // So instead use the BigInteger library to get it right.
46120 return BigInteger.log(x) / BigInteger.log(
2);
46123 // Depends on BigInteger
46124 function factorial(n) {
46128 f = BigInteger.ONE;
46129 for (var i=
1; i<=n; i++) {
46130 f = f.multiply(new BigInteger(i));
46137 <script>(function() {
46139 // mnemonics is populated as required by getLanguage
46140 var mnemonics = { "english": new Mnemonic("english") };
46141 var mnemonic = mnemonics["english"];
46143 var bip32RootKey = null;
46144 var bip32ExtendedKey = null;
46145 var network = bitcoinjs.bitcoin.networks.bitcoin;
46146 var addressRowTemplate = $("#address-row-template");
46148 var showIndex = true;
46149 var showAddress = true;
46150 var showPubKey = true;
46151 var showPrivKey = true;
46152 var showQr = false;
46153 var litecoinUseLtub = false;
46155 var entropyChangeTimeoutEvent = null;
46156 var phraseChangeTimeoutEvent = null;
46157 var rootKeyChangedTimeoutEvent = null;
46159 var generationProcesses = [];
46162 DOM.network = $(".network");
46163 DOM.bip32Client = $("#bip32-client");
46164 DOM.phraseNetwork = $("#network-phrase");
46165 DOM.useEntropy = $(".use-entropy");
46166 DOM.entropyContainer = $(".entropy-container");
46167 DOM.entropy = $(".entropy");
46168 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46169 DOM.entropyType = DOM.entropyContainer.find(".type");
46170 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46171 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46172 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46173 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46174 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46175 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46176 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46177 DOM.entropyFilterWarning = DOM.entropyContainer.find(".filter-warning");
46178 DOM.phrase = $(".phrase");
46179 DOM.passphrase = $(".passphrase");
46180 DOM.generateContainer = $(".generate-container");
46181 DOM.generate = $(".generate");
46182 DOM.seed = $(".seed");
46183 DOM.rootKey = $(".root-key");
46184 DOM.litecoinLtubContainer = $(".litecoin-ltub-container");
46185 DOM.litecoinUseLtub = $(".litecoin-use-ltub");
46186 DOM.extendedPrivKey = $(".extended-priv-key");
46187 DOM.extendedPubKey = $(".extended-pub-key");
46188 DOM.bip32tab = $("#bip32-tab");
46189 DOM.bip44tab = $("#bip44-tab");
46190 DOM.bip49tab = $("#bip49-tab");
46191 DOM.bip32panel = $("#bip32");
46192 DOM.bip44panel = $("#bip44");
46193 DOM.bip49panel = $("#bip49");
46194 DOM.bip32path = $("#bip32-path");
46195 DOM.bip44path = $("#bip44-path");
46196 DOM.bip44purpose = $("#bip44 .purpose");
46197 DOM.bip44coin = $("#bip44 .coin");
46198 DOM.bip44account = $("#bip44 .account");
46199 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46200 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46201 DOM.bip44change = $("#bip44 .change");
46202 DOM.bip49unavailable = $("#bip49 .unavailable");
46203 DOM.bip49available = $("#bip49 .available");
46204 DOM.bip49path = $("#bip49-path");
46205 DOM.bip49purpose = $("#bip49 .purpose");
46206 DOM.bip49coin = $("#bip49 .coin");
46207 DOM.bip49account = $("#bip49 .account");
46208 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46209 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46210 DOM.bip49change = $("#bip49 .change");
46211 DOM.generatedStrength = $(".generate-container .strength");
46212 DOM.hardenedAddresses = $(".hardened-addresses");
46213 DOM.useP2wpkhNestedInP2sh = $(".p2wpkh-nested-in-p2sh");
46214 DOM.addresses = $(".addresses");
46215 DOM.rowsToAdd = $(".rows-to-add");
46216 DOM.more = $(".more");
46217 DOM.feedback = $(".feedback");
46218 DOM.tab = $(".derivation-type a");
46219 DOM.indexToggle = $(".index-toggle");
46220 DOM.addressToggle = $(".address-toggle");
46221 DOM.publicKeyToggle = $(".public-key-toggle");
46222 DOM.privateKeyToggle = $(".private-key-toggle");
46223 DOM.languages = $(".languages a");
46224 DOM.qrContainer = $(".qr-container");
46225 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46226 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46227 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46228 DOM.showQrEls = $("[data-show-qr]");
46232 DOM.network.on("change", networkChanged);
46233 DOM.bip32Client.on("change", bip32ClientChanged);
46234 DOM.useEntropy.on("change", setEntropyVisibility);
46235 DOM.entropy.on("input", delayedEntropyChanged);
46236 DOM.entropyMnemonicLength.on("change", entropyChanged);
46237 DOM.phrase.on("input", delayedPhraseChanged);
46238 DOM.passphrase.on("input", delayedPhraseChanged);
46239 DOM.generate.on("click", generateClicked);
46240 DOM.more.on("click", showMore);
46241 DOM.rootKey.on("input", delayedRootKeyChanged);
46242 DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
46243 DOM.bip32path.on("input", calcForDerivationPath);
46244 DOM.bip44account.on("input", calcForDerivationPath);
46245 DOM.bip44change.on("input", calcForDerivationPath);
46246 DOM.bip49account.on("input", calcForDerivationPath);
46247 DOM.bip49change.on("input", calcForDerivationPath);
46248 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46249 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46250 DOM.useP2wpkhNestedInP2sh.on("change", calcForDerivationPath);
46251 DOM.indexToggle.on("click", toggleIndexes);
46252 DOM.addressToggle.on("click", toggleAddresses);
46253 DOM.publicKeyToggle.on("click", togglePublicKeys);
46254 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46255 DOM.languages.on("click", languageChanged);
46256 setQrEvents(DOM.showQrEls);
46259 hideValidationError();
46260 populateNetworkSelect();
46261 populateClientSelect();
46266 function networkChanged(e) {
46267 clearDerivedKeys();
46268 clearAddressesList();
46269 DOM.litecoinLtubContainer.addClass("hidden");
46270 var networkIndex = e.target.value;
46271 var network = networks[networkIndex];
46272 network.onSelect();
46273 if (network.p2wpkhNestedInP2shAvailable) {
46274 showP2wpkhNestedInP2shAvailable();
46277 showP2wpkhNestedInP2shUnavailable();
46279 if (seed != null) {
46287 function bip32ClientChanged(e) {
46288 var clientIndex = DOM.bip32Client.val();
46289 if (clientIndex == "custom") {
46290 DOM.bip32path.prop("readonly", false);
46293 DOM.bip32path.prop("readonly", true);
46294 clients[clientIndex].onSelect();
46295 if (seed != null) {
46304 function setEntropyVisibility() {
46305 if (isUsingOwnEntropy()) {
46306 DOM.entropyContainer.removeClass("hidden");
46307 DOM.generateContainer.addClass("hidden");
46308 DOM.phrase.prop("readonly", true);
46309 DOM.entropy.focus();
46313 DOM.entropyContainer.addClass("hidden");
46314 DOM.generateContainer.removeClass("hidden");
46315 DOM.phrase.prop("readonly", false);
46320 function delayedPhraseChanged() {
46321 hideValidationError();
46323 bip32RootKey = null;
46324 bip32ExtendedKey = null;
46325 clearAddressesList();
46327 if (phraseChangeTimeoutEvent != null) {
46328 clearTimeout(phraseChangeTimeoutEvent);
46330 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46333 function phraseChanged() {
46335 setMnemonicLanguage();
46336 // Get the mnemonic phrase
46337 var phrase = DOM.phrase.val();
46338 var errorText = findPhraseErrors(phrase);
46340 showValidationError(errorText);
46343 // Calculate and display
46344 var passphrase = DOM.passphrase.val();
46345 calcBip32RootKeyFromSeed(phrase, passphrase);
46346 calcForDerivationPath();
46349 function delayedEntropyChanged() {
46350 hideValidationError();
46352 if (entropyChangeTimeoutEvent != null) {
46353 clearTimeout(entropyChangeTimeoutEvent);
46355 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46358 function entropyChanged() {
46359 // If blank entropy, clear mnemonic, addresses, errors
46360 if (DOM.entropy.val().trim().length ==
0) {
46362 clearEntropyFeedback();
46363 DOM.phrase.val("");
46364 showValidationError("Blank entropy");
46367 // Get the current phrase to detect changes
46368 var phrase = DOM.phrase.val();
46369 // Set the phrase from the entropy
46370 setMnemonicFromEntropy();
46371 // Recalc addresses if the phrase has changed
46372 var newPhrase = DOM.phrase.val();
46373 if (newPhrase != phrase) {
46374 if (newPhrase.length ==
0) {
46386 function delayedRootKeyChanged() {
46387 // Warn if there is an existing mnemonic or passphrase.
46388 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46389 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46390 DOM.rootKey.val(bip32RootKey);
46394 hideValidationError();
46396 // Clear existing mnemonic and passphrase
46397 DOM.phrase.val(
"");
46398 DOM.passphrase.val(
"");
46400 if (rootKeyChangedTimeoutEvent != null) {
46401 clearTimeout(rootKeyChangedTimeoutEvent);
46403 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46406 function rootKeyChanged() {
46408 hideValidationError();
46409 var rootKeyBase58 = DOM.rootKey.val();
46410 var errorText = validateRootKey(rootKeyBase58);
46412 showValidationError(errorText);
46415 // Calculate and display
46416 calcBip32RootKeyFromBase58(rootKeyBase58);
46417 calcForDerivationPath();
46420 function litecoinUseLtubChanged() {
46421 litecoinUseLtub = DOM.litecoinUseLtub.prop(
"checked");
46422 if (litecoinUseLtub) {
46423 network = bitcoinjs.bitcoin.networks.litecoinLtub;
46426 network = bitcoinjs.bitcoin.networks.litecoin;
46431 function calcForDerivationPath() {
46432 clearDerivedKeys();
46433 clearAddressesList();
46435 // Don't show bip49 if it's selected but network doesn't support it
46436 if (bip49TabSelected() && !networkHasBip49()) {
46439 // Get the derivation path
46440 var derivationPath = getDerivationPath();
46441 var errorText = findDerivationPathErrors(derivationPath);
46443 showValidationError(errorText);
46446 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46447 if (bip44TabSelected()) {
46448 displayBip44Info();
46450 if (bip49TabSelected()) {
46451 displayBip49Info();
46453 displayBip32Info();
46456 function generateClicked() {
46457 if (isUsingOwnEntropy()) {
46462 setTimeout(function() {
46463 setMnemonicLanguage();
46464 var phrase = generateRandomPhrase();
46472 function languageChanged() {
46473 setTimeout(function() {
46474 setMnemonicLanguage();
46475 if (DOM.phrase.val().length
> 0) {
46476 var newPhrase = convertPhraseToNewLanguage();
46477 DOM.phrase.val(newPhrase);
46481 DOM.generate.trigger(
"click");
46486 function toggleIndexes() {
46487 showIndex = !showIndex;
46488 $(
"td.index span").toggleClass(
"invisible");
46491 function toggleAddresses() {
46492 showAddress = !showAddress;
46493 $(
"td.address span").toggleClass(
"invisible");
46496 function togglePublicKeys() {
46497 showPubKey = !showPubKey;
46498 $(
"td.pubkey span").toggleClass(
"invisible");
46501 function togglePrivateKeys() {
46502 showPrivKey = !showPrivKey;
46503 $(
"td.privkey span").toggleClass(
"invisible");
46508 function generateRandomPhrase() {
46509 if (!hasStrongRandom()) {
46510 var errorText =
"This browser does not support strong randomness";
46511 showValidationError(errorText);
46514 var numWords = parseInt(DOM.generatedStrength.val());
46515 var strength = numWords /
3 *
32;
46516 var words = mnemonic.generate(strength);
46517 DOM.phrase.val(words);
46521 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46522 seed = mnemonic.toSeed(phrase, passphrase);
46523 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46526 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46527 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46530 function calcBip32ExtendedKey(path) {
46531 // Check there's a root key to derive from
46532 if (!bip32RootKey) {
46533 return bip32RootKey;
46535 var extendedKey = bip32RootKey;
46536 // Derive the key from the path
46537 var pathBits = path.split(
"/");
46538 for (var i=
0; i
<pathBits.length; i++) {
46539 var bit = pathBits[i];
46540 var index = parseInt(bit);
46541 if (isNaN(index)) {
46544 var hardened = bit[bit.length-
1] ==
"'";
46545 var isPriv = !(extendedKey.isNeutered());
46546 var invalidDerivationPath = hardened && !isPriv;
46547 if (invalidDerivationPath) {
46548 extendedKey = null;
46550 else if (hardened) {
46551 extendedKey = extendedKey.deriveHardened(index);
46554 extendedKey = extendedKey.derive(index);
46560 function showValidationError(errorText) {
46566 function hideValidationError() {
46572 function findPhraseErrors(phrase) {
46573 // Preprocess the words
46574 phrase = mnemonic.normalizeString(phrase);
46575 var words = phraseToWordArray(phrase);
46576 // Detect blank phrase
46577 if (words.length ==
0) {
46578 return
"Blank mnemonic";
46581 for (var i=
0; i
<words.length; i++) {
46582 var word = words[i];
46583 var language = getLanguage();
46584 if (WORDLISTS[language].indexOf(word) == -
1) {
46585 console.log(
"Finding closest match to " + word);
46586 var nearestWord = findNearestWord(word);
46587 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46590 // Check the words are valid
46591 var properPhrase = wordArrayToPhrase(words);
46592 var isValid = mnemonic.check(properPhrase);
46594 return
"Invalid mnemonic";
46599 function validateRootKey(rootKeyBase58) {
46601 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46604 return
"Invalid root key";
46609 function getDerivationPath() {
46610 if (bip44TabSelected()) {
46611 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46612 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46613 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46614 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46616 path += purpose +
"'/";
46617 path += coin +
"'/";
46618 path += account +
"'/";
46620 DOM.bip44path.val(path);
46621 var derivationPath = DOM.bip44path.val();
46622 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46623 return derivationPath;
46625 if (bip49TabSelected()) {
46626 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46627 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46628 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46629 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46631 path += purpose +
"'/";
46632 path += coin +
"'/";
46633 path += account +
"'/";
46635 DOM.bip49path.val(path);
46636 var derivationPath = DOM.bip49path.val();
46637 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46638 return derivationPath;
46640 else if (bip32TabSelected()) {
46641 var derivationPath = DOM.bip32path.val();
46642 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46643 return derivationPath;
46646 console.log(
"Unknown derivation path");
46650 function findDerivationPathErrors(path) {
46651 // TODO is not perfect but is better than nothing
46653 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46655 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46656 var maxDepth =
255; // TODO verify this!!
46657 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46658 if (path[
0] !=
"m") {
46659 return
"First character must be 'm'";
46661 if (path.length
> 1) {
46662 if (path[
1] !=
"/") {
46663 return
"Separator must be '/'";
46665 var indexes = path.split(
"/");
46666 if (indexes.length
> maxDepth) {
46667 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46669 for (var depth =
1; depth
<indexes.length; depth++) {
46670 var index = indexes[depth];
46671 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46672 if (invalidChars.length
> 0) {
46673 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46675 var indexValue = parseInt(index.replace(
"'",
""));
46676 if (isNaN(depth)) {
46677 return
"Invalid number at depth " + depth;
46679 if (indexValue
> maxIndexValue) {
46680 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46684 // Check root key exists or else derivation path is useless!
46685 if (!bip32RootKey) {
46686 return "No root key";
46688 // Check no hardened derivation path when using xpub keys
46689 var hardenedPath = path.indexOf("'")
> -
1;
46690 var hardenedAddresses = bip32TabSelected() && DOM.hardenedAddresses.prop("checked");
46691 var hardened = hardenedPath || hardenedAddresses;
46692 var isXpubkey = bip32RootKey.isNeutered();
46693 if (hardened && isXpubkey) {
46694 return "Hardened derivation path is invalid with xpub key";
46699 function displayBip44Info() {
46700 // Get the derivation path for the account
46701 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46702 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46703 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46705 path += purpose + "'/";
46706 path += coin + "'/";
46707 path += account + "'/";
46708 // Calculate the account extended keys
46709 var accountExtendedKey = calcBip32ExtendedKey(path);
46710 var accountXprv = accountExtendedKey.toBase58();
46711 var accountXpub = accountExtendedKey.neutered().toBase58();
46712 // Display the extended keys
46713 DOM.bip44accountXprv.val(accountXprv);
46714 DOM.bip44accountXpub.val(accountXpub);
46717 function displayBip49Info() {
46718 // Get the derivation path for the account
46719 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46720 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46721 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46723 path += purpose + "'/";
46724 path += coin + "'/";
46725 path += account + "'/";
46726 // Calculate the account extended keys
46727 var accountExtendedKey = calcBip32ExtendedKey(path);
46728 var accountXprv = accountExtendedKey.toBase58();
46729 var accountXpub = accountExtendedKey.neutered().toBase58();
46730 // Display the extended keys
46731 DOM.bip49accountXprv.val(accountXprv);
46732 DOM.bip49accountXpub.val(accountXpub);
46735 function displayBip32Info() {
46737 DOM.seed.val(seed);
46738 var rootKey = bip32RootKey.toBase58();
46739 DOM.rootKey.val(rootKey);
46740 var xprvkeyB58 = "NA";
46741 if (!bip32ExtendedKey.isNeutered()) {
46742 xprvkeyB58 = bip32ExtendedKey.toBase58();
46744 var extendedPrivKey = xprvkeyB58;
46745 DOM.extendedPrivKey.val(extendedPrivKey);
46746 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46747 DOM.extendedPubKey.val(extendedPubKey);
46748 // Display the addresses and privkeys
46749 clearAddressesList();
46750 displayAddresses(
0,
20);
46753 function displayAddresses(start, total) {
46754 generationProcesses.push(new (function() {
46758 this.stop = function() {
46759 for (var i=
0; i
<rows.length; i++) {
46760 rows[i].shouldGenerate = false;
46765 for (var i=
0; i
<total; i++) {
46766 var index = i + start;
46767 var isLast = i == total -
1;
46768 rows.push(new TableRow(index, isLast));
46774 function TableRow(index, isLast) {
46777 this.shouldGenerate = true;
46778 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46779 var isP2wpkhNestedInP2sh = bip49TabSelected() || (bip32TabSelected() && useP2wpkhNestedInP2sh());
46780 var p2wpkhNestedInP2shAvailable = networkHasBip49();
46786 function calculateValues() {
46787 setTimeout(function() {
46788 if (!self.shouldGenerate) {
46792 if (useHardenedAddresses) {
46793 key = bip32ExtendedKey.deriveHardened(index);
46796 key = bip32ExtendedKey.derive(index);
46798 var address = key.getAddress().toString();
46799 var privkey =
"NA";
46800 if (!key.isNeutered()) {
46801 privkey = key.keyPair.toWIF(network);
46803 var pubkey = key.getPublicKeyBuffer().toString('hex');
46804 var indexText = getDerivationPath() +
"/" + index;
46805 if (useHardenedAddresses) {
46806 indexText = indexText +
"'";
46808 // Ethereum values are different
46809 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46810 var privKeyBuffer = key.keyPair.d.toBuffer();
46811 privkey = privKeyBuffer.toString('hex');
46812 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46813 var hexAddress = addressBuffer.toString('hex');
46814 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46815 address = ethUtil.addHexPrefix(checksumAddress);
46816 privkey = ethUtil.addHexPrefix(privkey);
46817 pubkey = ethUtil.addHexPrefix(pubkey);
46819 // Ripple values are different
46820 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46821 privkey = convertRipplePriv(privkey);
46822 address = convertRippleAdrr(address);
46824 // BIP49 addresses are different
46825 if (isP2wpkhNestedInP2sh) {
46826 if (!p2wpkhNestedInP2shAvailable) {
46829 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46830 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46831 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46832 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46833 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46835 addAddressToList(indexText, address, pubkey, privkey);
46846 function showMore() {
46847 var start = DOM.addresses.children().length;
46848 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46849 if (isNaN(rowsToAdd)) {
46851 DOM.rowsToAdd.val(
"20");
46853 if (rowsToAdd
> 200) {
46854 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46855 msg +=
"Do you want to continue?";
46856 if (!confirm(msg)) {
46860 displayAddresses(start, rowsToAdd);
46863 function clearDisplay() {
46864 clearAddressesList();
46866 hideValidationError();
46869 function clearAddressesList() {
46870 DOM.addresses.empty();
46874 function stopGenerating() {
46875 while (generationProcesses.length
> 0) {
46876 var generation = generationProcesses.shift();
46881 function clearKeys() {
46883 clearDerivedKeys();
46886 function clearRootKey() {
46887 DOM.rootKey.val(
"");
46890 function clearDerivedKeys() {
46891 DOM.extendedPrivKey.val(
"");
46892 DOM.extendedPubKey.val(
"");
46893 DOM.bip44accountXprv.val(
"");
46894 DOM.bip44accountXpub.val(
"");
46897 function addAddressToList(indexText, address, pubkey, privkey) {
46898 var row = $(addressRowTemplate.html());
46900 var indexCell = row.find(
".index span");
46901 var addressCell = row.find(
".address span");
46902 var pubkeyCell = row.find(
".pubkey span");
46903 var privkeyCell = row.find(
".privkey span");
46905 indexCell.text(indexText);
46906 addressCell.text(address);
46907 pubkeyCell.text(pubkey);
46908 privkeyCell.text(privkey);
46911 indexCell.addClass(
"invisible");
46913 if (!showAddress) {
46914 addressCell.addClass(
"invisible");
46917 pubkeyCell.addClass(
"invisible");
46919 if (!showPrivKey) {
46920 privkeyCell.addClass(
"invisible");
46922 DOM.addresses.append(row);
46923 var rowShowQrEls = row.find(
"[data-show-qr]");
46924 setQrEvents(rowShowQrEls);
46927 function hasStrongRandom() {
46928 return 'crypto' in window && window['crypto'] !== null;
46931 function disableForms() {
46932 $(
"form").on(
"submit", function(e) {
46933 e.preventDefault();
46937 function parseIntNoNaN(val, defaultVal) {
46938 var v = parseInt(val);
46945 function showPending() {
46947 .text(
"Calculating...")
46951 function findNearestWord(word) {
46952 var language = getLanguage();
46953 var words = WORDLISTS[language];
46954 var minDistance =
99;
46955 var closestWord = words[
0];
46956 for (var i=
0; i
<words.length; i++) {
46957 var comparedTo = words[i];
46958 if (comparedTo.indexOf(word) ==
0) {
46961 var distance = Levenshtein.get(word, comparedTo);
46962 if (distance < minDistance) {
46963 closestWord = comparedTo;
46964 minDistance = distance;
46967 return closestWord;
46970 function hidePending() {
46976 function populateNetworkSelect() {
46977 for (var i=
0; i
<networks.length; i++) {
46978 var network = networks[i];
46979 var option = $(
"<option>");
46980 option.attr(
"value", i);
46981 option.text(network.name);
46982 if (network.name ==
"BTC - Bitcoin") {
46983 option.prop(
"selected", true);
46985 DOM.phraseNetwork.append(option);
46989 function populateClientSelect() {
46990 for (var i=
0; i
<clients.length; i++) {
46991 var client = clients[i];
46992 var option = $(
"<option>");
46993 option.attr(
"value", i);
46994 option.text(client.name);
46995 DOM.bip32Client.append(option);
46999 function getLanguage() {
47000 var defaultLanguage =
"english";
47001 // Try to get from existing phrase
47002 var language = getLanguageFromPhrase();
47003 // Try to get from url if not from phrase
47004 if (language.length ==
0) {
47005 language = getLanguageFromUrl();
47007 // Default to English if no other option
47008 if (language.length ==
0) {
47009 language = defaultLanguage;
47014 function getLanguageFromPhrase(phrase) {
47015 // Check if how many words from existing phrase match a language.
47018 phrase = DOM.phrase.val();
47020 if (phrase.length
> 0) {
47021 var words = phraseToWordArray(phrase);
47022 var languageMatches = {};
47023 for (l in WORDLISTS) {
47024 // Track how many words match in this language
47025 languageMatches[l] =
0;
47026 for (var i=
0; i
<words.length; i++) {
47027 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
47028 if (wordInLanguage) {
47029 languageMatches[l]++;
47032 // Find languages with most word matches.
47033 // This is made difficult due to commonalities between Chinese
47034 // simplified vs traditional.
47035 var mostMatches =
0;
47036 var mostMatchedLanguages = [];
47037 for (var l in languageMatches) {
47038 var numMatches = languageMatches[l];
47039 if (numMatches
> mostMatches) {
47040 mostMatches = numMatches;
47041 mostMatchedLanguages = [l];
47043 else if (numMatches == mostMatches) {
47044 mostMatchedLanguages.push(l);
47048 if (mostMatchedLanguages.length
> 0) {
47049 // Use first language and warn if multiple detected
47050 language = mostMatchedLanguages[
0];
47051 if (mostMatchedLanguages.length
> 1) {
47052 console.warn(
"Multiple possible languages");
47053 console.warn(mostMatchedLanguages);
47060 function getLanguageFromUrl() {
47061 for (var language in WORDLISTS) {
47062 if (window.location.hash.indexOf(language)
> -
1) {
47069 function setMnemonicLanguage() {
47070 var language = getLanguage();
47071 // Load the bip39 mnemonic generator for this language if required
47072 if (!(language in mnemonics)) {
47073 mnemonics[language] = new Mnemonic(language);
47075 mnemonic = mnemonics[language];
47078 function convertPhraseToNewLanguage() {
47079 var oldLanguage = getLanguageFromPhrase();
47080 var newLanguage = getLanguageFromUrl();
47081 var oldPhrase = DOM.phrase.val();
47082 var oldWords = phraseToWordArray(oldPhrase);
47084 for (var i=
0; i
<oldWords.length; i++) {
47085 var oldWord = oldWords[i];
47086 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47087 var newWord = WORDLISTS[newLanguage][index];
47088 newWords.push(newWord);
47090 newPhrase = wordArrayToPhrase(newWords);
47094 // TODO look at jsbip39 - mnemonic.splitWords
47095 function phraseToWordArray(phrase) {
47096 var words = phrase.split(/\s/g);
47098 for (var i=
0; i
<words.length; i++) {
47099 var word = words[i];
47100 if (word.length
> 0) {
47101 noBlanks.push(word);
47107 // TODO look at jsbip39 - mnemonic.joinWords
47108 function wordArrayToPhrase(words) {
47109 var phrase = words.join(
" ");
47110 var language = getLanguageFromPhrase(phrase);
47111 if (language ==
"japanese") {
47112 phrase = words.join(
"\u3000");
47117 function isUsingOwnEntropy() {
47118 return DOM.useEntropy.prop(
"checked");
47121 function setMnemonicFromEntropy() {
47122 clearEntropyFeedback();
47123 // Get entropy value
47124 var entropyStr = DOM.entropy.val();
47125 // Work out minimum base for entropy
47126 var entropy = Entropy.fromString(entropyStr);
47127 if (entropy.binaryStr.length ==
0) {
47130 // Show entropy details
47131 showEntropyFeedback(entropy);
47132 // Use entropy hash if not using raw entropy
47133 var bits = entropy.binaryStr;
47134 var mnemonicLength = DOM.entropyMnemonicLength.val();
47135 if (mnemonicLength !=
"raw") {
47136 // Get bits by hashing entropy with SHA256
47137 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47138 var hex = sjcl.codec.hex.fromBits(hash);
47139 bits = BigInteger.parse(hex,
16).toString(
2);
47140 while (bits.length %
256 !=
0) {
47143 // Truncate hash to suit number of words
47144 mnemonicLength = parseInt(mnemonicLength);
47145 var numberOfBits =
32 * mnemonicLength /
3;
47146 bits = bits.substring(
0, numberOfBits);
47148 // Discard trailing entropy
47149 var bitsToUse = Math.floor(bits.length /
32) *
32;
47150 var start = bits.length - bitsToUse;
47151 var binaryStr = bits.substring(start);
47152 // Convert entropy string to numeric array
47153 var entropyArr = [];
47154 for (var i=
0; i
<binaryStr.length /
8; i++) {
47155 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47156 var entropyByte = parseInt(byteAsBits,
2);
47157 entropyArr.push(entropyByte)
47159 // Convert entropy array to mnemonic
47160 var phrase = mnemonic.toMnemonic(entropyArr);
47161 // Set the mnemonic in the UI
47162 DOM.phrase.val(phrase);
47165 function clearEntropyFeedback() {
47166 DOM.entropyCrackTime.text(
"...");
47167 DOM.entropyType.text(
"");
47168 DOM.entropyWordCount.text(
"0");
47169 DOM.entropyEventCount.text(
"0");
47170 DOM.entropyBitsPerEvent.text(
"0");
47171 DOM.entropyBits.text(
"0");
47172 DOM.entropyFiltered.html(
" ");
47173 DOM.entropyBinary.html(
" ");
47176 function showEntropyFeedback(entropy) {
47177 var numberOfBits = entropy.binaryStr.length;
47178 var timeToCrack =
"unknown";
47180 var z = zxcvbn(entropy.base.parts.join(
""));
47181 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47182 if (z.feedback.warning !=
"") {
47183 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47187 console.log(
"Error detecting entropy strength with zxcvbn:");
47190 var entropyTypeStr = getEntropyTypeStr(entropy);
47191 var wordCount = Math.floor(numberOfBits /
32) *
3;
47192 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47193 DOM.entropyFiltered.html(entropy.cleanHtml);
47194 DOM.entropyType.text(entropyTypeStr);
47195 DOM.entropyCrackTime.text(timeToCrack);
47196 DOM.entropyEventCount.text(entropy.base.ints.length);
47197 DOM.entropyBits.text(numberOfBits);
47198 DOM.entropyWordCount.text(wordCount);
47199 DOM.entropyBinary.text(entropy.binaryStr);
47200 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47201 // detect and warn of filtering
47202 var rawNoSpaces = DOM.entropy.val().replace(/\s/g,
"");
47203 var cleanNoSpaces = entropy.cleanStr.replace(/\s/g,
"");
47204 var isFiltered = rawNoSpaces.length != cleanNoSpaces.length;
47206 DOM.entropyFilterWarning.removeClass('hidden');
47209 DOM.entropyFilterWarning.addClass('hidden');
47213 function getEntropyTypeStr(entropy) {
47214 var typeStr = entropy.base.str;
47215 // Add some detail if these are cards
47216 if (entropy.base.asInt ==
52) {
47217 var cardDetail = []; // array of message strings
47218 // Detect duplicates
47220 var dupeTracker = {};
47221 for (var i=
0; i
<entropy.base.parts.length; i++) {
47222 var card = entropy.base.parts[i];
47223 var cardUpper = card.toUpperCase();
47224 if (cardUpper in dupeTracker) {
47227 dupeTracker[cardUpper] = true;
47229 if (dupes.length
> 0) {
47230 var dupeWord =
"duplicates";
47231 if (dupes.length ==
1) {
47232 dupeWord =
"duplicate";
47234 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47235 if (dupes.length
> 3) {
47238 cardDetail.push(msg);
47240 // Detect full deck
47241 var uniqueCards = [];
47242 for (var uniqueCard in dupeTracker) {
47243 uniqueCards.push(uniqueCard);
47245 if (uniqueCards.length ==
52) {
47246 cardDetail.unshift(
"full deck");
47248 // Detect missing cards
47249 var values =
"A23456789TJQK";
47250 var suits =
"CDHS";
47251 var missingCards = [];
47252 for (var i=
0; i
<suits.length; i++) {
47253 for (var j=
0; j
<values.length; j++) {
47254 var card = values[j] + suits[i];
47255 if (!(card in dupeTracker)) {
47256 missingCards.push(card);
47260 // Display missing cards if six or less, ie clearly going for full deck
47261 if (missingCards.length
> 0 && missingCards.length <=
6) {
47262 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47263 if (missingCards.length
> 3) {
47266 cardDetail.push(msg);
47268 // Add card details to typeStr
47269 if (cardDetail.length
> 0) {
47270 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47276 function setQrEvents(els) {
47277 els.on(
"mouseenter", createQr);
47278 els.on(
"mouseleave", destroyQr);
47279 els.on(
"click", toggleQr);
47282 function createQr(e) {
47283 var content = e.target.textContent || e.target.value;
47286 DOM.qrImage.qrcode({width: size, height: size, text: content});
47288 DOM.qrHider.addClass(
"hidden");
47291 DOM.qrHider.removeClass(
"hidden");
47293 DOM.qrContainer.removeClass(
"hidden");
47297 function destroyQr() {
47298 DOM.qrImage.text(
"");
47299 DOM.qrContainer.addClass(
"hidden");
47302 function toggleQr() {
47304 DOM.qrHider.toggleClass(
"hidden");
47305 DOM.qrHint.toggleClass(
"hidden");
47308 function bip44TabSelected() {
47309 return DOM.bip44tab.hasClass(
"active");
47312 function bip32TabSelected() {
47313 return DOM.bip32tab.hasClass(
"active");
47316 function useP2wpkhNestedInP2sh() {
47317 return DOM.useP2wpkhNestedInP2sh.prop(
"checked");
47320 function networkHasBip49() {
47321 return networks[DOM.network.val()].p2wpkhNestedInP2shAvailable;
47324 function bip49TabSelected() {
47325 return DOM.bip49tab.hasClass(
"active");
47328 function setHdCoin(coinValue) {
47329 DOM.bip44coin.val(coinValue);
47330 DOM.bip49coin.val(coinValue);
47333 function showP2wpkhNestedInP2shAvailable() {
47334 DOM.bip49unavailable.addClass(
"hidden");
47335 DOM.bip49available.removeClass(
"hidden");
47336 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", false);
47339 function showP2wpkhNestedInP2shUnavailable() {
47340 DOM.bip49available.addClass(
"hidden");
47341 DOM.bip49unavailable.removeClass(
"hidden");
47342 DOM.useP2wpkhNestedInP2sh.prop(
"disabled", true);
47343 DOM.useP2wpkhNestedInP2sh.prop(
"checked", false);
47348 name:
"BCH - Bitcoin Cash",
47349 p2wpkhNestedInP2shAvailable: false,
47350 onSelect: function() {
47351 network = bitcoinjs.bitcoin.networks.bitcoin;
47356 name:
"BTC - Bitcoin",
47357 p2wpkhNestedInP2shAvailable: true,
47358 onSelect: function() {
47359 network = bitcoinjs.bitcoin.networks.bitcoin;
47364 name:
"BTC - Bitcoin Testnet",
47365 p2wpkhNestedInP2shAvailable: true,
47366 onSelect: function() {
47367 network = bitcoinjs.bitcoin.networks.testnet;
47372 name:
"CLAM - Clams",
47373 p2wpkhNestedInP2shAvailable: false,
47374 onSelect: function() {
47375 network = bitcoinjs.bitcoin.networks.clam;
47380 name:
"CRW - Crown",
47381 p2wpkhNestedInP2shAvailable: false,
47382 onSelect: function() {
47383 network = bitcoinjs.bitcoin.networks.crown;
47388 name:
"DASH - Dash",
47389 p2wpkhNestedInP2shAvailable: false,
47390 onSelect: function() {
47391 network = bitcoinjs.bitcoin.networks.dash;
47396 name:
"DASH - Dash Testnet",
47397 p2wpkhNestedInP2shAvailable: false,
47398 onSelect: function() {
47399 network = bitcoinjs.bitcoin.networks.dashtn;
47404 name:
"DOGE - Dogecoin",
47405 p2wpkhNestedInP2shAvailable: false,
47406 onSelect: function() {
47407 network = bitcoinjs.bitcoin.networks.dogecoin;
47412 name:
"ETH - Ethereum",
47413 p2wpkhNestedInP2shAvailable: false,
47414 onSelect: function() {
47415 network = bitcoinjs.bitcoin.networks.bitcoin;
47420 name:
"GAME - GameCredits",
47421 p2wpkhNestedInP2shAvailable: false,
47422 onSelect: function() {
47423 network = bitcoinjs.bitcoin.networks.game;
47428 name:
"JBS - Jumbucks",
47429 p2wpkhNestedInP2shAvailable: false,
47430 onSelect: function() {
47431 network = bitcoinjs.bitcoin.networks.jumbucks;
47436 name:
"LTC - Litecoin",
47437 p2wpkhNestedInP2shAvailable: false,
47438 onSelect: function() {
47439 network = bitcoinjs.bitcoin.networks.litecoin;
47441 DOM.litecoinLtubContainer.removeClass(
"hidden");
47445 name:
"MAZA - Maza",
47446 p2wpkhNestedInP2shAvailable: false,
47447 onSelect: function() {
47448 network = bitcoinjs.bitcoin.networks.maza;
47454 name:
"NMC - Namecoin",
47455 p2wpkhNestedInP2shAvailable: false,
47456 onSelect: function() {
47457 network = bitcoinjs.bitcoin.networks.namecoin;
47462 name:
"PIVX - PIVX",
47463 p2wpkhNestedInP2shAvailable: false,
47464 onSelect: function() {
47465 network = bitcoinjs.bitcoin.networks.pivx;
47470 name:
"PIVX - PIVX Testnet",
47471 p2wpkhNestedInP2shAvailable: false,
47472 onSelect: function() {
47473 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47478 name:
"PPC - Peercoin",
47479 p2wpkhNestedInP2shAvailable: false,
47480 onSelect: function() {
47481 network = bitcoinjs.bitcoin.networks.peercoin;
47486 name:
"SDC - ShadowCash",
47487 p2wpkhNestedInP2shAvailable: false,
47488 onSelect: function() {
47489 network = bitcoinjs.bitcoin.networks.shadow;
47494 name:
"SDC - ShadowCash Testnet",
47495 p2wpkhNestedInP2shAvailable: false,
47496 onSelect: function() {
47497 network = bitcoinjs.bitcoin.networks.shadowtn;
47502 name:
"SLM - Slimcoin",
47503 p2wpkhNestedInP2shAvailable: false,
47504 onSelect: function() {
47505 network = bitcoinjs.bitcoin.networks.slimcoin;
47510 name:
"SLM - Slimcoin Testnet",
47511 p2wpkhNestedInP2shAvailable: false,
47512 onSelect: function() {
47513 network = bitcoinjs.bitcoin.networks.slimcointn;
47518 name:
"VIA - Viacoin",
47519 p2wpkhNestedInP2shAvailable: false,
47520 onSelect: function() {
47521 network = bitcoinjs.bitcoin.networks.viacoin;
47526 name:
"VIA - Viacoin Testnet",
47527 p2wpkhNestedInP2shAvailable: false,
47528 onSelect: function() {
47529 network = bitcoinjs.bitcoin.networks.viacointestnet;
47534 name:
"XMY - Myriadcoin",
47535 p2wpkhNestedInP2shAvailable: false,
47536 onSelect: function() {
47537 network = bitcoinjs.bitcoin.networks.myriadcoin;
47542 name:
"XRP - Ripple",
47543 p2wpkhNestedInP2shAvailable: false,
47544 onSelect: function() {
47545 network = bitcoinjs.bitcoin.networks.bitcoin;
47553 name:
"Bitcoin Core",
47554 onSelect: function() {
47555 DOM.bip32path.val(
"m/0'/0'");
47556 DOM.hardenedAddresses.prop('checked', true);
47560 name:
"blockchain.info",
47561 onSelect: function() {
47562 DOM.bip32path.val(
"m/44'/0'/0'");
47563 DOM.hardenedAddresses.prop('checked', false);
47567 name:
"MultiBit HD",
47568 onSelect: function() {
47569 DOM.bip32path.val(
"m/0'/0");
47570 DOM.hardenedAddresses.prop('checked', false);