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;
113 <div class=
"container">
115 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
118 <div class=
"col-md-12">
120 <form class=
"form-horizontal" role=
"form">
121 <div class=
"form-group">
122 <div class=
"col-sm-2"></div>
123 <div class=
"col-sm-10">
124 <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>
125 <p data-translate-html
>
126 For more info see the
127 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
131 <div class=
"form-group generate-container">
132 <label class=
"col-sm-2 control-label"></label>
133 <div class=
"col-sm-10">
134 <div class=
"form-inline">
135 <div class=
"input-group-inline">
136 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
137 <button class=
"btn generate">Generate
</button>
138 <select id=
"strength" class=
"strength form-control">
139 <option value=
"3">3</option>
140 <option value=
"6">6</option>
141 <option value=
"9">9</option>
142 <option value=
"12">12</option>
143 <option value=
"15" selected
>15</option>
144 <option value=
"18">18</option>
145 <option value=
"21">21</option>
146 <option value=
"24">24</option>
148 <span data-translate
>words
</span>
153 <div class=
"entropy-container hidden">
154 <div class=
"form-group text-danger">
155 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
156 <div class=
"col-sm-10 form-control-static">
157 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
158 <a href=
"#entropy-notes" data-translate
>Read more
</a>
161 <div class=
"form-group">
162 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
163 <div class=
"col-sm-7">
164 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder
></textarea>
166 <label class=
"col-sm-3 control-label" data-translate
>Strength
</label>
167 <div class=
"strength col-sm-3 form-control-static"></div>
168 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
169 <div class=
"event-count col-sm-3 form-control-static"></div>
172 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
173 <div class=
"type col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
175 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Word Count
</label>
179 <div class=
"word-count col-sm-3 form-control-static"></div>
180 <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>
181 <div class=
"bits col-sm-3 form-control-static"></div>
183 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
184 <div class=
"filtered col-sm-9 form-control-static"></div>
185 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
186 <div class=
"binary col-sm-9 form-control-static"></div>
187 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
188 <div class=
"col-sm-9">
189 <select class=
"mnemonic-length form-control">
190 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
191 <option value=
"12">12 <span data-translate
>Words
</span></option>
192 <option value=
"15">15 <span data-translate
>Words
</option>
193 <option value=
"18">18 <span data-translate
>Words
</span></option>
194 <option value=
"21">21 <span data-translate
>Words
</span></option>
195 <option value=
"24">24 <span data-translate
>Words
</span></option>
199 <div class=
"col-sm-3">
200 <p data-translate
>Valid entropy values include:
</p>
202 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
203 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
204 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
205 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
206 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
207 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
212 <div class=
"form-group">
213 <div class=
"col-sm-2"></div>
214 <div class=
"col-sm-10 checkbox">
216 <input type=
"checkbox" class=
"use-entropy">
217 <span data-translate
>Supply my own source of entropy
</span>
221 <div class=
"form-group">
222 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
223 <div class=
"col-sm-10 languages">
224 <div class=
"form-control no-border">
225 <a href=
"#english">English
</a>
226 <a href=
"#japanese" title=
"Japanese">日本語
</a>
227 <a href=
"#spanish" title=
"Spanish">Español
</a>
228 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
229 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
230 <a href=
"#french" title=
"French">Français
</a>
231 <a href=
"#italian" title=
"Italian">Italiano
</a>
235 <div class=
"form-group">
236 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
237 <div class=
"col-sm-10">
238 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
241 <div class=
"form-group">
242 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
247 <div class=
"form-group">
248 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
253 <div class=
"form-group">
254 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
255 <div class=
"col-sm-10">
256 <select id=
"network-phrase" class=
"network form-control">
257 <!-- populated by javascript -->
261 <div class=
"form-group">
262 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
263 <div class=
"col-sm-10">
264 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
274 <div class=
"col-md-12">
275 <h2>Derivation Path
</h2>
276 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
277 <li id=
"bip44-tab" class=
"active">
278 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
281 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
284 <div class=
"derivation-type tab-content">
285 <div id=
"bip44" class=
"tab-pane active">
286 <form class=
"form-horizontal" role=
"form">
288 <div class=
"col-sm-2"></div>
289 <div class=
"col-sm-10">
290 <p data-translate-html
>
291 For more info see the
292 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
295 <div class=
"form-group">
296 <label for=
"purpose" class=
"col-sm-2 control-label">
297 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
299 <div class=
"col-sm-10">
300 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
303 <div class=
"form-group">
304 <label for=
"coin" class=
"col-sm-2 control-label">
305 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
307 <div class=
"col-sm-10">
308 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
311 <div class=
"form-group">
312 <label for=
"account" class=
"col-sm-2 control-label">
313 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
315 <div class=
"col-sm-10">
316 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
319 <div class=
"form-group">
320 <label for=
"change" class=
"col-sm-2 control-label">
321 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
323 <div class=
"col-sm-10">
324 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
327 <div class=
"form-group">
328 <label class=
"col-sm-2 control-label">
330 <div class=
"col-sm-10">
331 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
334 <div class=
"form-group">
335 <label for=
"account-xprv" class=
"col-sm-2 control-label">
336 <span data-translate
>Account Extended Private Key
</span>
338 <div class=
"col-sm-10">
339 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
342 <div class=
"form-group">
343 <label for=
"account-xpub" class=
"col-sm-2 control-label">
344 <span data-translate
>Account Extended Public Key
</span>
346 <div class=
"col-sm-10">
347 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
350 <div class=
"form-group">
351 <label class=
"col-sm-2 control-label">
353 <div class=
"col-sm-10">
354 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
357 <div class=
"form-group">
358 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
359 <div class=
"col-sm-10">
360 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
365 <div id=
"bip32" class=
"tab-pane">
366 <form class=
"form-horizontal" role=
"form">
368 <div class=
"col-sm-2"></div>
369 <div class=
"col-sm-10">
371 For more info see the
372 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
375 <div class=
"form-group">
376 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
377 <div class=
"col-sm-10">
378 <select id=
"bip32-client" class=
"client form-control">
379 <option value=
"custom">Custom derivation path
</option>
380 <!-- populated by javascript -->
384 <div class=
"form-group">
385 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
386 <div class=
"col-sm-10">
387 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
390 <div class=
"form-group">
391 <div class=
"col-sm-2"></div>
392 <label class=
"col-sm-10">
393 <input class=
"hardened-addresses" type=
"checkbox">
394 <span data-translate
>Use hardened addresses
</span>
397 <div class=
"form-group">
398 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
399 <div class=
"col-sm-10">
400 <p class=
"form-control no-border" data-translate-html
>
401 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
403 <p class=
"form-control no-border" data-translate-html
>
404 For more info see the
405 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
409 <div class=
"form-group">
410 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
411 <div class=
"col-sm-10">
412 <p class=
"form-control no-border">
413 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
415 <p class=
"form-control no-border">
416 <span data-translate
>For more info see
</span>
417 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
421 <div class=
"form-group">
422 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
423 <div class=
"col-sm-10">
424 <p class=
"form-control no-border">
425 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
426 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
428 <p class=
"form-control no-border">
429 <span data-translate
>Can be used with
</span>:
430 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
437 <form class=
"form-horizontal" role=
"form">
438 <div class=
"form-group">
439 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
440 <div class=
"col-sm-10">
441 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
444 <div class=
"form-group">
445 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
446 <div class=
"col-sm-10">
447 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
457 <div class=
"col-md-12">
458 <h2>Derived Addresses
</h2>
459 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
460 <table class=
"table table-striped">
463 <div class=
"input-group">
464 <span data-translate
>Path
</span>
465 <button class=
"index-toggle" data-translate
>Toggle
</button>
469 <div class=
"input-group">
470 <span data-translate
>Address
</span>
471 <button class=
"address-toggle" data-translate
>Toggle
</button>
475 <div class=
"input-group">
476 <span data-translate
>Public Key
</span>
477 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
481 <div class=
"input-group">
482 <span data-translate
>Private Key
</span>
483 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
487 <tbody class=
"addresses monospace">
488 <tr><td> </td><td> </td><td> </td><td> </td></tr>
489 <tr><td> </td><td> </td><td> </td><td> </td></tr>
490 <tr><td> </td><td> </td><td> </td><td> </td></tr>
491 <tr><td> </td><td> </td><td> </td><td> </td></tr>
492 <tr><td> </td><td> </td><td> </td><td> </td></tr>
497 <span data-translate
>Show more rows
</span>:
498 <input type=
"number" class=
"rows-to-add" value=
"20">
499 <button class=
"more" data-translate
>Show
</button>
504 <div class=
"col-md-12">
505 <h2 data-translate
>More info
</h2>
506 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
507 <p data-translate-html
>
509 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
511 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
512 <p data-translate-html
>
514 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
516 <p data-translate-html
>
518 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
520 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
521 <p data-translate-html
>
523 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
525 <h3 data-translate
>Private Keys
</h3>
527 <span data-translate-html
>
529 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
531 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
533 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
535 <span data-translate-html
>
536 Entropy values must be sourced from a
537 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
539 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
540 <span data-translate-html
>
541 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
542 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
543 random enough for the needs of this tool.
547 <strong><span data-translate
>Do not store entropy.
</span></strong>
550 <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>
551 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
552 <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>
555 <span data-translate-html
>
556 The random mnemonic generator on this page uses a
557 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
559 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
560 <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>
561 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
564 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
566 <h3 data-translate
>License
</h3>
568 <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.
571 <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>
578 <div class=
"col-md-12">
580 <h2 data-translate
>Offline Usage
</h2>
583 You can use this tool without having to be online.
586 In your browser, select file save-as, and save this page
590 Double-click that file to open it in a browser
591 on any offline computer.
594 <span data-translate
>Alternatively, download the file from the repository
</span>
596 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
605 <div class=
"col-md-12">
607 <h2 data-translate
>This project is
100% open-source code
</h2>
610 <span data-translate
>Get the source code from the repository
</span>
612 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
613 https://github.com/iancoleman/bip39
617 <h3 data-translate
>Libraries
</h3>
620 <span>BitcoinJS -
</span>
621 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
622 https://github.com/bitcoinjs/bitcoinjs-lib
627 <span>jsBIP39 -
</span>
628 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
629 https://github.com/iancoleman/jsbip39
635 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
636 https://github.com/bitwiseshiftleft/sjcl
641 <span>jQuery -
</span>
642 <a href=
"https://jquery.com/" target=
"_blank">
648 <span>Twitter Bootstrap -
</span>
649 <a href=
"http://getbootstrap.com/" target=
"_blank">
650 http://getbootstrap.com/
659 <div class=
"qr-container hidden">
660 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
661 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
662 <div class=
"qr-hider hidden">
663 <div class=
"qr-image"></div>
664 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
668 <div class=
"feedback-container">
669 <div class=
"feedback">Loading...
</div>
672 <script type=
"text/template" id=
"address-row-template">
674 <td class=
"index"><span></span></td>
675 <td class=
"address"><span data-show-qr
></span></td>
676 <td class=
"pubkey"><span data-show-qr
></span></td>
677 <td class=
"privkey"><span data-show-qr
></span></td>
681 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
682 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
683 // but is not required in any modern browsers.
684 // For more information, see
685 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
687 //----------------------------------------------------------------------
689 // ECMAScript
2015 Polyfills
691 //----------------------------------------------------------------------
696 // Set this to always override native implementations, for testing
697 // the polyfill in browsers with partial/full ES2015 support.
698 var OVERRIDE_NATIVE_FOR_TESTING = false;
700 var undefined = (void
0); // Paranoia
705 return o === global ? undefined : o;
708 function hook(o, p, f) {
710 console.assert(typeof op === 'function', 'Hooking a non-function');
712 var o = strict(this);
713 var r = f.apply(o, arguments);
714 return r !== undefined ? r : op.apply(o, arguments);
718 function isSymbol(s) {
719 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
722 function getPropertyDescriptor(target, name) {
723 var desc = Object.getOwnPropertyDescriptor(target, name);
724 var proto = Object.getPrototypeOf(target);
725 while (!desc && proto) {
726 desc = Object.getOwnPropertyDescriptor(proto, name);
727 proto = Object.getPrototypeOf(proto);
732 var enqueue = (function(nativePromise, nativeSetImmediate) {
734 return function(job) { nativePromise.resolve().then(function() { job(); }); };
735 if (nativeSetImmediate)
736 return function(job) { nativeSetImmediate(job); };
737 return function(job) { setTimeout(job,
0); };
738 }(global['Promise'], global['setImmediate']));
740 function define(o, p, v, override) {
741 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
744 if (typeof v === 'function') {
745 // Sanity check that functions are appropriately named (where possible)
746 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
747 Object.defineProperty(o, p, {
754 Object.defineProperty(o, p, {
763 function set_internal(o, p, v) {
764 Object.defineProperty(o, p, {
772 // Snapshot intrinsic functions
773 var $isNaN = global.isNaN,
774 $parseInt = global.parseInt,
775 $parseFloat = global.parseFloat;
778 LOG10E = Math.LOG10E,
788 random = Math.random,
791 var orig_match = String.prototype.match,
792 orig_replace = String.prototype.replace,
793 orig_search = String.prototype.search,
794 orig_split = String.prototype.split;
796 // These are used for implementing the polyfills, but not exported.
798 // Inspired by https://gist.github.com/
1638059
800 function EphemeronTable() {
801 var secretKey = ObjectCreate(null);
803 function conceal(o) {
804 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
805 Object.defineProperty(o, 'valueOf', {
806 value: (function(secretKey) {
807 return function (k) {
808 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
819 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
820 return v === o ? null : v;
825 secretKey = ObjectCreate(null);
827 remove: function(key) {
828 var secrets = reveal(key);
829 if (secrets && HasOwnProperty(secrets, 'value')) {
830 delete secrets.value;
835 get: function(key, defaultValue) {
836 var secrets = reveal(key);
837 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
840 var secrets = reveal(key);
841 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
843 set: function(key, value) {
844 var secrets = reveal(key) || conceal(key);
845 secrets.value = value;
850 var empty = Object.create(null);
852 //----------------------------------------------------------------------
855 // http://www.ecma-international.org/ecma-
262/
6.0/
857 //----------------------------------------------------------------------
859 // ---------------------------------------
860 //
19.4 Symbol Objects
861 // ---------------------------------------
863 // NOTE: Symbols are defined here - out of spec order - since we need the
864 // properties and prototype to be populated for other polyfills.
866 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
870 var secret = Object.create(null);
872 symbolForKey = function(k) {
876 var GlobalSymbolRegistry = [];
878 function unique(bits) {
879 return Array(bits +
1).join('x').replace(/x/g, function() {
880 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
884 //
19.4.1 The Symbol Constructor
885 //
19.4.1.1 Symbol ( description=undefined )
886 function Symbol(description) {
887 if (!(this instanceof Symbol)) return new Symbol(description, secret);
888 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
890 var descString = description === undefined ? undefined : String(description);
892 set_internal(this, '[[SymbolData]]', unique(
128));
893 set_internal(this, '[[Description]]', descString);
895 symbolMap[this] = this;
899 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
900 global.Symbol = Symbol;
902 //
19.4.2 Properties of the Symbol Constructor
904 //
19.4.2.1 Symbol.for (key)
905 define(Symbol, 'for', function for_(key) {
906 var stringKey = String(key);
907 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
908 var e = GlobalSymbolRegistry[i];
909 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
911 var newSymbol = Symbol(key);
912 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
916 //
19.4.2.2 Symbol.hasInstance
917 //
19.4.2.3 Symbol.isConcatSpreadable
919 //
19.4.2.4 Symbol.iterator
920 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
922 //
19.4.2.5 Symbol.keyFor (sym)
923 define(Symbol, 'keyFor', function keyFor(sym) {
924 if (!(sym instanceof Symbol)) throw TypeError();
925 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
926 var e = GlobalSymbolRegistry[i];
927 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
932 //
19.4.2.6 Symbol.match
933 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
935 //
19.4.2.7 Symbol.prototype
937 //
19.4.2.8 Symbol.replace
938 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
940 //
19.4.2.9 Symbol.search
941 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
943 //
19.4.2.10 Symbol.species
945 //
19.4.2.11 Symbol.search
946 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
948 //
19.4.2.12 Symbol.toPrimitive
950 //
19.4.2.13 Symbol.toStringTag
951 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
953 //
19.4.2.14 Symbol.unscopables
955 //
19.4.3 Properties of the Symbol Prototype Object
956 //
19.4.3.1 Symbol.prototype.constructor
958 //
19.4.3.2 Symbol.prototype.toString ( )
959 Object.defineProperty(Symbol.prototype, 'toString', {
960 value: function toString() {
961 var s = strict(this);
962 var desc = s['[[Description]]'];
963 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
965 configurable: true, writeable: true, enumerable: false });
967 //
19.4.3.3 Symbol.prototype.valueOf ( )
968 Object.defineProperty(Symbol.prototype, 'valueOf', {
969 value: function valueOf() {
970 // To prevent automatic string conversion:
973 // Spec has approximately the following:
974 //var s = strict(this);
975 //if (Type(s) === 'symbol') return s;
976 //if (Type(s) !== 'object') throw TypeError();
977 //if (!('[[SymbolData]]' in s)) throw TypeError();
978 //return s['[[SymbolData]]'];
980 configurable: true, writeable: true, enumerable: false });
982 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
983 // (Done later to polyfill partial implementations)
985 //
19.4.4 Properties of Symbol Instances
988 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
990 // Defined here so that other prototypes can reference it
991 //
25.1.2 The %IteratorPrototype% Object
992 var $IteratorPrototype$ = {};
994 //----------------------------------------
995 //
6 ECMAScript Data Types and Values
996 //----------------------------------------
998 //
6.1 ECMAScript Language Types
1000 // "Type(x)" is used as shorthand for "the type of x"...
1003 case 'undefined': return 'undefined';
1004 case 'boolean': return 'boolean';
1005 case 'number': return 'number';
1006 case 'string': return 'string';
1007 case 'symbol': return 'symbol';
1009 if (v === null) return 'null';
1010 if (v instanceof global.Symbol) return 'symbol';
1015 //
6.1.5.1 Well-Known Symbols
1016 var $$iterator = global.Symbol.iterator,
1017 $$match = global.Symbol.match,
1018 $$replace = global.Symbol.replace,
1019 $$search = global.Symbol.search,
1020 $$split = global.Symbol.split,
1021 $$toStringTag = global.Symbol.toStringTag;
1023 //----------------------------------------
1024 //
7 Abstract Operations
1025 //----------------------------------------
1027 //----------------------------------------
1028 //
7.1 Type Conversion
1029 //----------------------------------------
1031 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1032 // just use valueOf()
1034 //
7.1.2 ToBoolean ( argument )
1035 // just use Boolean()
1037 //
7.1.3 ToNumber ( argument )
1038 // just use Number()
1040 //
7.1.4 ToInteger ( argument )
1041 function ToInteger(n) {
1043 if ($isNaN(n)) return
0;
1044 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1045 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1048 //
7.1.5 ToInt32 ( argument )
1049 function ToInt32(v) { return v
>> 0; }
1051 //
7.1.6 ToUint32 ( argument )
1052 function ToUint32(v) { return v
>>> 0; }
1054 //
7.1.7 ToInt16 ( argument )
1055 function ToInt16(v) { return (v <<
16)
>> 16; }
1057 //
7.1.8 ToUint16 ( argument )
1058 function ToUint16(v) { return v &
0xFFFF; }
1060 //
7.1.9 ToInt8 ( argument )
1061 function ToInt8(v) { return (v <<
24)
>> 24; }
1063 //
7.1.10 ToUint8 ( argument )
1064 function ToUint8(v) { return v &
0xFF; }
1066 //
7.1.11 ToUint8Clamp ( argument )
1067 function ToUint8Clamp(argument) {
1068 var number = Number(argument);
1069 if ($isNaN(number)) return
0;
1070 if (number <=
0) return
0;
1071 if (number
>=
255) return
255;
1072 var f = floor(number);
1073 if ((f +
0.5) < number) return f +
1;
1074 if (number < (f +
0.5)) return f;
1075 if (f %
2) return f +
1;
1079 //
7.1.12 ToString ( argument )
1080 // just use String()
1082 //
7.1.13 ToObject ( argument )
1083 function ToObject(v) {
1084 if (v === null || v === undefined) throw TypeError();
1088 //
7.1.14 ToPropertyKey ( argument )
1089 function ToPropertyKey(v) {
1093 //
7.1.15 ToLength ( argument )
1094 function ToLength(v) {
1095 var len = ToInteger(v);
1096 if (len <=
0) return
0;
1097 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1098 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1101 //
7.1.16 CanonicalNumericIndexString ( argument )
1103 //----------------------------------------
1104 //
7.2 Testing and Comparison Operations
1105 //----------------------------------------
1107 //
7.2.1 RequireObjectCoercible ( argument )
1108 //
7.2.2 IsArray ( argument )
1110 //
7.2.3 IsCallable ( argument )
1111 function IsCallable(o) { return typeof o === 'function'; }
1113 //
7.2.4 IsConstructor ( argument )
1114 function IsConstructor(o) {
1115 // Hacks for Safari
7 TypedArray XXXConstructor objects
1116 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1117 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1118 // TODO: Can this be improved on?
1119 return typeof o === 'function';
1122 //
7.2.5 IsExtensible (O)
1123 //
7.2.6 IsInteger ( argument )
1125 //
7.2.7 IsPropertyKey ( argument )
1126 function IsPropertyKey(argument) {
1127 if (Type(argument) === 'string') return true;
1128 if (Type(argument) === 'symbol') return true;
1132 //
7.2.8 IsRegExp ( argument )
1133 //
7.2.5 IsConstructor ( argument )
1135 //
7.2.9 SameValue(x, y)
1136 function SameValue(x, y) {
1137 if (typeof x !== typeof y) return false;
1142 if (x !== x && y !== y) return true;
1143 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1153 //
7.2.10 SameValueZero(x, y)
1154 function SameValueZero(x, y) {
1155 if (typeof x !== typeof y) return false;
1160 if (x !== x && y !== y) return true;
1170 //----------------------------------------
1171 //
7.3 Operations on Objects
1172 //----------------------------------------
1175 // - just use o.p or o[p]
1177 //
7.3.2 GetV (V, P)
1178 function GetV(v, p) {
1179 var o = ToObject(v);
1183 //
7.3.3 Set (O, P, V, Throw)
1184 // - just use o.p = v or o[p] = v
1189 //
7.3.9 GetMethod (O, P)
1190 function GetMethod(o, p) {
1191 var func = GetV(o, p);
1192 if (func === undefined || func === null) return undefined;
1193 if (!IsCallable(func)) throw TypeError();
1197 //
7.3.10 HasProperty (O, P)
1198 function HasProperty(o, p) {
1200 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1201 if (Type(o) !== 'object') return false;
1202 o = Object.getPrototypeOf(o);
1207 //
7.3.11 HasOwnProperty (O, P)
1208 function HasOwnProperty(o, p) {
1209 return Object.prototype.hasOwnProperty.call(o, p);
1212 //----------------------------------------
1213 //
7.4 Operations on Iterator Objects
1214 //----------------------------------------
1216 //
7.4.1 GetIterator ( obj, method )
1217 function GetIterator(obj, method) {
1218 if (arguments.length <
2)
1219 method = GetMethod(obj, $$iterator);
1220 var iterator = method.call(obj);
1221 if (Type(iterator) !== 'object') throw TypeError();
1225 //
7.4.2 IteratorNext ( iterator, value )
1226 function IteratorNext(iterator, value) {
1227 if (arguments.length <
2)
1228 var result = iterator.next();
1230 result = iterator.next(value);
1231 if (Type(result) !== 'object') throw TypeError();
1235 //
7.4.3 IteratorComplete ( iterResult )
1236 function IteratorComplete(iterResult) {
1237 console.assert(Type(iterResult) === 'object');
1238 return Boolean(iterResult.done);
1241 //
7.4.4 IteratorValue ( iterResult )
1242 function IteratorValue(iterResult) {
1243 console.assert(Type(iterResult) === 'object');
1244 return iterResult.value;
1247 //
7.4.5 IteratorStep ( iterator )
1248 function IteratorStep( iterator, value ) {
1249 var result = IteratorNext(iterator, value);
1250 var done = result['done'];
1251 if (Boolean(done) === true) return false;
1255 //
7.4.6 IteratorClose( iterator, completion )
1256 function IteratorClose( iterator, completion ) {
1257 console.assert(Type(iterator) === 'object');
1258 var _return = GetMethod(iterator, 'return');
1259 if (_return === undefined) return completion;
1261 var innerResult = _return[iterator]();
1263 // TODO: If completion.[[type]] is throw, return completion
1266 if (Type(innerResult) !== 'object') throw TypeError();
1270 //
7.4.7 CreateIterResultObject (value, done)
1271 function CreateIterResultObject(value, done) {
1272 console.assert(Type(done) === 'boolean');
1274 obj["value"] = value;
1279 //
7.4.8 CreateListIterator (list)
1280 //
7.4.8.1 ListIterator next( )
1281 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1282 //
7.4.9.1 CompoundIterator next( )
1284 //----------------------------------------
1285 //
8 Executable Code and Execution Contexts
1286 //----------------------------------------
1288 //----------------------------------------
1289 //
8.4 Jobs and Job Queues
1290 //----------------------------------------
1292 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1293 function EnqueueJob(queueName, job, args) {
1294 var fn = function() { job.apply(undefined, args); };
1298 //
8.4.2 NextJob result
1299 function NextJob(result) {
1303 //----------------------------------------
1304 //
9 Ordinary and Exotic Objects Behaviors
1305 //----------------------------------------
1307 //
9.1.11 [[Enumerate]] ()
1308 function Enumerate(obj) {
1310 if (Object(obj) !== obj) return e;
1311 var visited = new Set;
1312 while (obj !== null) {
1313 Object.getOwnPropertyNames(obj).forEach(function(name) {
1314 if (!visited.has(name)) {
1315 var desc = Object.getOwnPropertyDescriptor(obj, name);
1318 if (desc.enumerable) e.push(name);
1322 obj = Object.getPrototypeOf(obj);
1324 return e[$$iterator]();
1327 //
9.1.12 [[OwnPropertyKeys]] ( )
1328 function OwnPropertyKeys(o) {
1329 return Object.getOwnPropertyNames(o);
1332 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1333 function ObjectCreate(proto, internalSlotsList) {
1334 return Object.create(proto, internalSlotsList);
1337 // ---------------------------------------
1338 //
19 Fundamental Objects
1339 // ---------------------------------------
1341 // ---------------------------------------
1342 //
19.1 Object Objects
1343 // ---------------------------------------
1345 //
19.1.1 The Object Constructor
1346 //
19.1.1.1 Object ( [ value ] )
1347 //
19.1.2 Properties of the Object Constructor
1348 //
19.1.2.1 Object.assign ( target, ...sources )
1351 function assign(target, /*...*/sources) {
1352 var to = ToObject(target);
1353 if (arguments.length <
2) return to;
1355 var sourcesIndex =
1;
1356 while (sourcesIndex < arguments.length) {
1357 var nextSource = arguments[sourcesIndex++];
1358 if (nextSource === undefined || nextSource === null) {
1361 var from = ToObject(nextSource);
1362 keys = OwnPropertyKeys(from);
1364 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1365 var nextKey = keys[keysIndex];
1366 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1367 if (desc !== undefined && desc.enumerable) {
1368 var propValue = from[nextKey];
1369 to[nextKey] = propValue;
1376 //
19.1.2.2 Object.create ( O [ , Properties ] )
1377 //
19.1.2.3 Object.defineProperties ( O, Properties )
1378 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1379 //
19.1.2.5 Object.freeze ( O )
1380 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1383 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1384 $getOwnPropertyNames = Object.getOwnPropertyNames,
1385 $keys = Object.keys,
1386 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1388 function isStringKey(k) { return !symbolForKey(k); }
1390 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1392 Object, 'getOwnPropertyNames',
1393 function getOwnPropertyNames(o) {
1394 if (Object.prototype.toString.call(o) === '[object Window]') {
1395 // Workaround for cross-realm calling by IE itself.
1396 // https://github.com/inexorabletash/polyfill/issues/
96
1398 return $getOwnPropertyNames(o).filter(isStringKey);
1400 return $window_names.slice();
1403 return $getOwnPropertyNames(o).filter(isStringKey);
1406 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1408 Object, 'getOwnPropertySymbols',
1409 function getOwnPropertySymbols(o) {
1410 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1413 //
19.1.2.14 Object.keys ( O )
1417 return $keys(o).filter(isStringKey);
1421 //
19.1.2.9 Object.getPrototypeOf ( O )
1422 //
19.1.2.10 Object.is ( value1, value2 )
1425 function is(value1, value2) {
1426 return SameValue(value1, value2);
1429 //
19.1.2.11 Object.isExtensible ( O )
1430 //
19.1.2.12 Object.isFrozen ( O )
1431 //
19.1.2.13 Object.isSealed ( O )
1433 //
19.1.2.14 Object.keys ( O )
1436 //
19.1.2.15 Object.preventExtensions ( O )
1437 //
19.1.2.16 Object.prototype
1438 //
19.1.2.17 Object.seal ( O )
1440 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1442 Object, 'setPrototypeOf',
1443 function setPrototypeOf(o, proto) {
1444 if (Type(o) !== 'object') throw TypeError();
1445 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1446 o.__proto__ = proto;
1451 //
19.1.3 Properties of the Object Prototype Object
1452 //
19.1.3.1 Object.prototype.constructor
1453 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1454 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1455 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1456 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1457 //
19.1.3.6 Object.prototype.toString ( )
1458 hook(Object.prototype, 'toString',
1460 var o = strict(this);
1461 if (o === Object(o) && $$toStringTag in o) {
1462 return '[object ' + o[$$toStringTag] + ']';
1467 //
19.1.3.7 Object.prototype.valueOf ( )
1468 //
19.1.4 Properties of Object Instances
1470 // ---------------------------------------
1471 //
19.2 Function Objects
1472 // ---------------------------------------
1474 //
19.2.1 The Function Constructor
1475 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1476 //
19.2.2 Properties of the Function Constructor
1477 //
19.2.2.1 Function.length
1478 //
19.2.2.2 Function.prototype
1479 //
19.2.3 Properties of the Function Prototype Object
1480 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1481 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1482 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1483 //
19.2.3.4 Function.prototype.constructor
1484 //
19.2.3.5 Function.prototype.toString ( )
1485 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1486 //
19.2.4 Function Instances
1489 //
19.2.4.3 prototype
1491 // (No polyfillable changes from ES5)
1493 // ---------------------------------------
1494 //
19.3 Boolean Objects
1495 // ---------------------------------------
1497 //
19.3.1 The Boolean Constructor
1498 //
19.3.1.1 Boolean ( value )
1499 //
19.3.2 Properties of the Boolean Constructor
1500 //
19.3.2.1 Boolean.prototype
1501 //
19.3.3 Properties of the Boolean Prototype Object
1502 //
19.3.3.1 Boolean.prototype.constructor
1503 //
19.3.3.2 Boolean.prototype.toString ( )
1504 //
19.3.3.3 Boolean.prototype.valueOf ( )
1505 //
19.3.4 Properties of Boolean Instances
1507 // (No polyfillable changes from ES5)
1509 // ---------------------------------------
1510 //
19.4 Symbol Objects
1511 // ---------------------------------------
1513 // Moved earlier in this script, so that other polyfills can depend on them.
1515 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1516 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1518 // ---------------------------------------
1519 //
19.5 Error Objects
1520 // ---------------------------------------
1522 //
19.5.1 The Error Constructor
1523 //
19.5.1.1 Error ( message )
1524 //
19.5.1.2 new Error( ...argumentsList )
1525 //
19.5.2 Properties of the Error Constructor
1526 //
19.5.2.1 Error.prototype
1527 //
19.5.3 Properties of the Error Prototype Object
1528 //
19.5.3.1 Error.prototype.constructor
1529 //
19.5.3.2 Error.prototype.message
1530 //
19.5.3.3 Error.prototype.name
1531 //
19.5.3.4 Error.prototype.toString ( )
1532 //
19.5.4 Properties of Error Instances
1533 //
19.5.5 Native Error Types Used in This Standard
1534 //
19.5.5.1 EvalError
1535 //
19.5.5.2 RangeError
1536 //
19.5.5.3 ReferenceError
1537 //
19.5.5.4 SyntaxError
1538 //
19.5.5.5 TypeError
1539 //
19.5.5.6 URIError
1540 //
19.5.6 NativeError Object Structure
1541 //
19.5.6.1 NativeError Constructors
1542 //
19.5.6.1.1 NativeError ( message )
1543 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1544 //
19.5.6.2 Properties of the NativeError Constructors
1545 //
19.5.6.2.1 NativeError.prototype
1546 //
19.5.6.3 Properties of the NativeError Prototype Objects
1547 //
19.5.6.4 Properties of NativeError Instances
1549 // (No polyfillable changes from ES5)
1551 // ---------------------------------------
1552 //
20 Numbers and Dates
1553 // ---------------------------------------
1555 // ---------------------------------------
1556 //
20.1 Number Objects
1557 // ---------------------------------------
1559 //
20.1.1 The Number Constructor
1560 //
20.1.1.1 Number ( [ value ] )
1561 //
20.1.1.2 new Number ( ...argumentsList )
1562 //
20.1.2 Properties of the Number Constructor
1564 //
20.1.2.1 Number.EPSILON
1569 for (next =
1;
1 + next !==
1; next = next /
2)
1574 //
20.1.2.2 Number.isFinite ( number )
1577 function isFinite(number) {
1578 if (Type(number) !== 'number') return false;
1579 if (number !== number || number === +Infinity || number === -Infinity) return false;
1583 //
20.1.2.3 Number.isInteger ( number )
1585 Number, 'isInteger',
1586 function isInteger(number) {
1587 if (Type(number) !== 'number') return false;
1588 if (number !== number || number === +Infinity || number === -Infinity) return false;
1589 var integer = ToInteger(number);
1590 if (integer !== number) return false;
1594 //
20.1.2.4 Number.isNaN ( number )
1597 function isNaN(number) {
1598 if (Type(number) !== 'number') return false;
1599 if (number !== number) return true;
1603 //
20.1.2.5 Number.isSafeInteger ( number )
1605 Number, 'isSafeInteger',
1606 function isSafeInteger(number) {
1607 if (Type(number) !== 'number') return false;
1608 if (number !== number || number === +Infinity || number === -Infinity) return false;
1609 var integer = ToInteger(number);
1610 if (integer !== number) return false;
1611 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1616 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1618 Number, 'MAX_SAFE_INTEGER',
1619 9007199254740991); //
2^
53-
1
1621 //
20.1.2.7 Number.MAX_VALUE
1623 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1625 Number, 'MIN_SAFE_INTEGER',
1626 -
9007199254740991); // -
2^
53+
1
1628 //
20.1.2.9 Number.MIN_VALUE
1629 //
20.1.2.10 Number.NaN
1630 //
20.1.2.11 Number.NEGATIVE_INFINITY
1632 //
20.1.2.12 Number.parseFloat ( string )
1633 define(Number, 'parseFloat', $parseFloat);
1635 //
20.1.2.13 Number.parseInt ( string, radix )
1636 define(Number, 'parseInt', $parseInt);
1638 //
20.1.2.14 Number.POSITIVE_INFINITY
1639 //
20.1.2.15 Number.prototype
1641 //
20.1.3 Properties of the Number Prototype Object
1642 //
20.1.3.1 Number.prototype.constructor
1643 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1644 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1645 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1646 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1647 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1648 //
20.1.3.7 Number.prototype.valueOf ( )
1649 //
20.1.4 Properties of Number Instances
1651 // ---------------------------------------
1652 //
20.2 The Math Object
1653 // ---------------------------------------
1655 //
20.2.1 Value Properties of the Math Object
1657 //
20.2.1.2 Math.LN10
1658 //
20.2.1.3 Math.LN2
1659 //
20.2.1.4 Math.LOG10E
1660 //
20.2.1.5 Math.LOG2E
1662 //
20.2.1.7 Math.SQRT1_2
1663 //
20.2.1.8 Math.SQRT2
1665 //
20.2.1.9 Math [ @@toStringTag ]
1666 define(Math, $$toStringTag, 'Math');
1668 //
20.2.2 Function Properties of the Math Object
1669 //
20.2.2.1 Math.abs ( x )
1670 //
20.2.2.2 Math.acos ( x )
1672 //
20.2.2.3 Math.acosh(x)
1677 return log(x + sqrt(x * x -
1));
1680 //
20.2.2.4 Math.asin ( x )
1682 //
20.2.2.5 Math.asinh( x )
1687 if (SameValue(x, -
0)) {
1690 var s = sqrt(x * x +
1);
1691 return (s === -x) ? log(
0) : log(x + s);
1694 //
20.2.2.6 Math.atan ( x )
1696 //
20.2.2.7 Math.atanh( x )
1701 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1704 //
20.2.2.8 Math.atan2 ( y, x )
1706 //
20.2.2.9 Math.cbrt ( x )
1714 var r = pow(abs(x),
1/
3);
1716 return r + (r * (t-r) / (
2*r + t));
1719 //
20.2.2.10 Math.ceil ( x )
1721 //
20.2.2.11 Math.clz32 ( x )
1726 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1727 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1730 return x &
0xff000000 ? clz8(x
>> 24) :
1731 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1732 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1737 //
20.2.2.12 Math.cos ( x )
1739 //
20.2.2.13 Math.cosh ( x )
1744 return (pow(E, x) + pow(E, -x)) /
2;
1747 //
20.2.2.14 Math.exp ( x )
1749 //
20.2.2.15 Math.expm1 ( x )
1754 // from: http://www.johndcook.com/cpp_log1p.html
1755 if (SameValue(x, -
0)) {
1757 } else if (abs(x) <
1e-5) {
1758 return x +
0.5 * x * x; // two terms of Taylor expansion
1764 //
20.2.2.16 Math.floor ( x )
1766 //
20.2.2.17 Math.fround ( x )
1769 function fround(x) {
1773 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1776 return (new Float32Array([x]))[
0];
1779 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1784 var m =
0, sawNaN = false;
1785 for (var i =
0; i < arguments.length; ++i) {
1786 var n = abs(Number(arguments[i]));
1787 if (n === Infinity) return n;
1788 if (n !== n) sawNaN = true;
1792 if (sawNaN) return NaN;
1793 if (m ===
0) return +
0;
1795 for (i =
0; i < values.length; ++i) {
1796 var r = values[i] / m;
1799 return m * sqrt(sum);
1802 //
20.2.2.19 Math.imul ( x, y )
1805 function imul(x, y) {
1806 var a = ToUint32(x);
1807 var b = ToUint32(y);
1808 // (slow but accurate)
1809 var ah = (a
>>> 16) &
0xffff;
1810 var al = a &
0xffff;
1811 var bh = (b
>>> 16) &
0xffff;
1812 var bl = b &
0xffff;
1813 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1814 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1817 //
20.2.2.20 Math.log ( x )
1819 //
20.2.2.21 Math.log1p ( x )
1824 // from: http://www.johndcook.com/cpp_expm1.html
1827 } else if (SameValue(x, -
0)) {
1829 } else if (abs(x)
> 1e-4) {
1832 return (-
0.5 * x +
1) * x;
1836 //
20.2.2.22 Math.log10 ( x )
1841 return log(x) * LOG10E;
1844 //
20.2.2.23 Math.log2 ( x )
1849 return log(x) * LOG2E;
1852 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1853 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1854 //
20.2.2.26 Math.pow ( x, y )
1855 //
20.2.2.27 Math.random ( )
1856 //
20.2.2.28 Math.round ( x )
1858 //
20.2.2.29 Math.sign(x)
1863 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1866 //
20.2.2.30 Math.sin ( x )
1868 //
20.2.2.31 Math.sinh( x )
1873 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1876 //
20.2.2.32 Math.sqrt ( x )
1877 //
20.2.2.33 Math.tan ( x )
1879 //
20.2.2.34 Math.tanh ( x )
1884 var n = pow(E,
2 * x) -
1,
1885 d = pow(E,
2 * x) +
1;
1886 if (SameValue(x, -
0))
1888 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1891 //
20.2.2.35 Math.trunc ( x )
1896 return $isNaN(x) ? NaN :
1897 x <
0 ? ceil(x) : floor(x);
1900 // ---------------------------------------
1901 //
20.3 Date Objects
1902 // ---------------------------------------
1904 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1905 //
20.3.1.1 Time Values and Time Range
1906 //
20.3.1.2 Day Number and Time within Day
1907 //
20.3.1.3 Year Number
1908 //
20.3.1.4 Month Number
1909 //
20.3.1.5 Date Number
1910 //
20.3.1.6 Week Day
1911 //
20.3.1.7 Local Time Zone Adjustment
1912 //
20.3.1.8 Daylight Saving Time Adjustment
1913 //
20.3.1.9 Local Time
1914 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1915 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1916 //
20.3.1.12 MakeDay (year, month, date)
1917 //
20.3.1.13 MakeDate (day, time)
1918 //
20.3.1.14 TimeClip (time)
1919 //
20.3.1.15 Date Time String Format
1920 //
20.3.1.15.1 Extended years
1921 //
20.3.2 The Date Constructor
1922 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1923 //
20.3.2.2 Date ( value )
1924 //
20.3.2.3 Date ( )
1925 //
20.3.3 Properties of the Date Constructor
1926 //
20.3.3.1 Date.now ( )
1927 //
20.3.3.2 Date.parse (string)
1928 //
20.3.3.3 Date.prototype
1929 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1930 //
20.3.4 Properties of the Date Prototype Object
1931 //
20.3.4.1 Date.prototype.constructor
1932 //
20.3.4.2 Date.prototype.getDate ( )
1933 //
20.3.4.3 Date.prototype.getDay ( )
1934 //
20.3.4.4 Date.prototype.getFullYear ( )
1935 //
20.3.4.5 Date.prototype.getHours ( )
1936 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1937 //
20.3.4.7 Date.prototype.getMinutes ( )
1938 //
20.3.4.8 Date.prototype.getMonth ( )
1939 //
20.3.4.9 Date.prototype.getSeconds ( )
1940 //
20.3.4.10 Date.prototype.getTime ( )
1941 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1942 //
20.3.4.12 Date.prototype.getUTCDate ( )
1943 //
20.3.4.13 Date.prototype.getUTCDay ( )
1944 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1945 //
20.3.4.15 Date.prototype.getUTCHours ( )
1946 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1947 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1948 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1949 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1950 //
20.3.4.20 Date.prototype.setDate ( date )
1951 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1952 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1953 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1954 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1955 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1956 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1957 //
20.3.4.27 Date.prototype.setTime ( time )
1958 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1959 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1960 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1961 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1962 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1963 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1964 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1965 //
20.3.4.35 Date.prototype.toDateString ( )
1966 //
20.3.4.36 Date.prototype.toISOString ( )
1967 //
20.3.4.37 Date.prototype.toJSON ( key )
1968 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1969 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1970 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1971 //
20.3.4.41 Date.prototype.toString ( )
1972 //
20.3.4.42 Date.prototype.toTimeString ( )
1973 //
20.3.4.43 Date.prototype.toUTCString ( )
1974 //
20.3.4.44 Date.prototype.valueOf ( )
1975 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1976 //
20.3.5 Properties of Date Instances
1978 // (No polyfillable changes from ES5)
1980 // ---------------------------------------
1981 //
21 Text Processing
1982 // ---------------------------------------
1984 var string_regexp_dispatch = (function() {
1985 var faux = {}, secret = Symbol();
1986 faux[Symbol.match] = function() { return secret; };
1987 return (
"").match(faux) === secret;
1990 //
21.1 String Objects
1991 //
21.1.1 The String Constructor
1992 //
21.1.1.1 String ( value )
1993 //
21.1.2 Properties of the String Constructor
1994 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
1996 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
1998 String, 'fromCodePoint',
1999 function fromCodePoint(/*...codePoints*/) {
2000 var codePoints = arguments,
2001 length = codePoints.length,
2004 while (nextIndex < length) {
2005 var next = codePoints[nextIndex];
2006 var nextCP = Number(next);
2007 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2008 nextCP <
0 || nextCP
> 0x10FFFF) {
2009 throw RangeError('Invalid code point ' + nextCP);
2011 if (nextCP <
0x10000) {
2012 elements.push(String.fromCharCode(nextCP));
2015 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2016 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2020 return elements.join('');
2023 //
21.1.2.3 String.prototype
2025 //
21.1.2.4 String.raw ( template , ...substitutions )
2028 function raw(template /*, ...substitutions*/) {
2029 var substitutions = [].slice.call(arguments,
1);
2031 var cooked = Object(template);
2032 var rawValue = cooked['raw'];
2033 var raw = Object(rawValue);
2034 var len = raw['length'];
2035 var literalSegments = ToLength(len);
2036 if (literalSegments <=
0) return '';
2037 var stringElements = [];
2040 var next = raw[nextIndex];
2041 var nextSeg = String(next);
2042 stringElements.push(nextSeg);
2043 if (nextIndex +
1 === literalSegments)
2044 return stringElements.join('');
2045 next = substitutions[nextIndex];
2046 var nextSub = String(next);
2047 stringElements.push(nextSub);
2048 nextIndex = nextIndex +
1;
2052 // See https://githib.com/inexorabletash/uate for a more useful version.
2054 //
21.1.3 Properties of the String Prototype Object
2055 //
21.1.3.1 String.prototype.charAt ( pos )
2056 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2058 //
21.1.3.3 String.prototype.codePointAt ( pos )
2060 String.prototype, 'codePointAt',
2061 function codePointAt(pos) {
2062 var o = strict(this);
2064 var position = ToInteger(pos);
2065 var size = s.length;
2066 if (position <
0 || position
>= size) return undefined;
2067 var first = s.charCodeAt(position);
2068 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2069 var second = s.charCodeAt(position +
1);
2070 if (second <
0xDC00 || second
> 0xDFFF) return first;
2071 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2074 //
21.1.3.4 String.prototype.concat ( ...args )
2075 //
21.1.3.5 String.prototype.constructor
2077 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2079 String.prototype, 'endsWith',
2080 function endsWith(searchString) {
2081 var endPosition = arguments[
1];
2083 var o = strict(this);
2085 var searchStr = String(searchString);
2087 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2088 var end = min(max(pos,
0), len);
2089 var searchLength = searchStr.length;
2090 var start = end - searchLength;
2091 if (start <
0) return false;
2092 if (s.substring(start, start + searchLength) === searchStr) return true;
2096 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2098 String.prototype, 'includes',
2099 function includes(searchString) {
2100 var position = arguments[
1];
2102 var o = strict(this);
2104 var searchStr = String(searchString);
2105 var pos = ToInteger(position);
2107 var start = min(max(pos,
0), len);
2108 return s.indexOf(searchStr, start) !== -
1;
2111 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2112 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2113 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2114 //
21.1.3.11 String.prototype.match ( regexp )
2116 String.prototype, 'match',
2117 function match(regexp) {
2118 var o = strict(this);
2120 if (HasProperty(regexp, $$match)) var rx = regexp;
2121 else rx = new RegExp(regexp);
2122 return rx[$$match](s);
2123 }, !string_regexp_dispatch);
2125 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2127 // Not practical due to table sizes; if needed, pull in:
2128 // https://github.com/walling/unorm/
2130 //
21.1.3.13 String.prototype.repeat ( count )
2132 String.prototype, 'repeat',
2133 function repeat(count) {
2134 var o = strict(this);
2136 var n = ToInteger(count);
2137 if (n <
0) throw RangeError();
2138 if (n === Infinity) throw RangeError();
2139 var t = new Array(n +
1).join(s);
2143 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2145 String.prototype, 'replace',
2146 function replace(searchValue, replaceValue) {
2147 var o = strict(this);
2148 if (HasProperty(searchValue, $$replace))
2149 return searchValue[$$replace](o, replaceValue);
2150 return orig_replace.call(o, searchValue, replaceValue);
2151 }, !string_regexp_dispatch);
2153 //
21.1.3.15 String.prototype.search ( regexp )
2155 String.prototype, 'search',
2156 function search(regexp) {
2157 var o = strict(this);
2158 var string = String(o);
2159 if (HasProperty(regexp, $$search)) var rx = regexp;
2160 else rx = new RegExp(regexp);
2161 return rx[$$search](string);
2162 }, !string_regexp_dispatch);
2164 //
21.1.3.16 String.prototype.slice ( start, end )
2165 //
21.1.3.17 String.prototype.split ( separator, limit )
2167 String.prototype, 'split',
2168 function split(separator, limit) {
2169 var o = strict(this);
2170 if (HasProperty(separator, $$split))
2171 return separator[$$split](o, limit);
2172 return orig_split.call(o, separator, limit);
2173 }, !string_regexp_dispatch);
2175 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2177 String.prototype, 'startsWith',
2178 function startsWith(searchString) {
2179 var position = arguments[
1];
2181 var o = strict(this);
2183 var searchStr = String(searchString);
2184 var pos = ToInteger(position);
2186 var start = min(max(pos,
0), len);
2187 var searchLength = searchStr.length;
2188 if (searchLength + start
> len) return false;
2189 if (s.substring(start, start + searchLength) === searchStr) return true;
2193 //
21.1.3.19 String.prototype.substring ( start, end )
2194 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2195 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2196 //
21.1.3.22 String.prototype.toLowerCase ( )
2197 //
21.1.3.23 String.prototype.toString ( )
2198 //
21.1.3.24 String.prototype.toUpperCase ( )
2199 //
21.1.3.25 String.prototype.trim ( )
2200 //
21.1.3.26 String.prototype.valueOf ( )
2202 //
21.1.3.27 String.prototype [ @@iterator ]( )
2204 String.prototype, $$iterator,
2205 function entries() {
2206 return CreateStringIterator(this, 'value');
2209 //
21.1.4 Properties of String Instances
2212 //
21.1.5 String Iterator Objects
2214 function StringIterator() {}
2216 //
21.1.5.1 CreateStringIterator Abstract Operation
2217 function CreateStringIterator(string, kind) {
2218 var s = String(string);
2219 var iterator = new StringIterator;
2220 set_internal(iterator, '[[IteratedString]]', s);
2221 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2222 set_internal(iterator, '[[StringIterationKind]]', kind);
2226 //
21.1.5.2 The %StringIteratorPrototype% Object
2227 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2228 StringIterator.prototype = $StringIteratorPrototype$;
2230 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2232 $StringIteratorPrototype$, 'next',
2234 var o = ToObject(this);
2235 var s = String(o['[[IteratedString]]']),
2236 index = o['[[StringIteratorNextIndex]]'],
2239 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2240 return CreateIterResultObject(undefined, true);
2242 var cp = s.codePointAt(index);
2243 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2244 return CreateIterResultObject(String.fromCodePoint(cp), false);
2247 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2248 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2250 //
21.1.5.3 Properties of String Iterator Instances
2252 // ---------------------------------------
2253 //
21.2 RegExp (Regular Expression) Objects
2254 // ---------------------------------------
2257 //
21.2.2 Pattern Semantics
2258 //
21.2.2.1 Notation
2260 //
21.2.2.3 Disjunction
2261 //
21.2.2.4 Alternative
2263 //
21.2.2.6 Assertion
2264 //
21.2.2.7 Quantifier
2266 //
21.2.2.9 AtomEscape
2267 //
21.2.2.10 CharacterEscape
2268 //
21.2.2.11 DecimalEscape
2269 //
21.2.2.12 CharacterClassEscape
2270 //
21.2.2.13 CharacterClass
2271 //
21.2.2.14 ClassRanges
2272 //
21.2.2.15 NonemptyClassRanges
2273 //
21.2.2.16 NonemptyClassRangesNoDash
2274 //
21.2.2.17 ClassAtom
2275 //
21.2.2.18 ClassAtomNoDash
2276 //
21.2.2.19 ClassEscape
2277 //
21.2.3 The RegExp Constructor
2278 //
21.2.3.1 RegExp ( pattern, flags )
2279 //
21.2.3.2 new RegExp( ...argumentsList )
2280 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2281 //
21.2.4 Properties of the RegExp Constructor
2282 //
21.2.4.1 RegExp.prototype
2283 //
21.2.5 Properties of the RegExp Prototype Object
2284 //
21.2.5.1 RegExp.prototype.constructor
2285 //
21.2.5.2 RegExp.prototype.exec ( string )
2287 //
21.2.5.3 get RegExp.prototype.flags
2288 if (!('flags' in RegExp.prototype)) {
2289 Object.defineProperty(
2290 RegExp.prototype, 'flags', {
2292 var s = String(this);
2293 return s.substring(s.lastIndexOf('/') +
1);
2298 //
21.2.5.4 get RegExp.prototype.global
2299 //
21.2.5.5 get RegExp.prototype.ignoreCase
2301 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2302 define(RegExp.prototype, $$match, function(string) {
2303 var o = strict(this);
2304 return orig_match.call(string, o);
2307 //
21.2.5.7 get RegExp.prototype.multiline
2309 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2310 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2311 var o = strict(this);
2312 return orig_replace.call(string, o, replaceValue);
2315 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2316 define(RegExp.prototype, $$search, function(string) {
2317 var o = strict(this);
2318 return orig_search.call(string, o);
2321 //
21.2.5.10 get RegExp.prototype.source
2323 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2324 define(RegExp.prototype, $$split, function(string, limit) {
2325 var o = strict(this);
2326 return orig_split.call(string, o, limit);
2329 //
21.2.5.12 get RegExp.prototype.sticky
2330 //
21.2.5.13 RegExp.prototype.test( S )
2331 //
21.2.5.14 RegExp.prototype.toString ( )
2332 //
21.2.5.15 get RegExp.prototype.unicode
2334 //
21.2.6 Properties of RegExp Instances
2335 //
21.2.6.1 lastIndex
2337 // (No polyfillable changes from ES5)
2339 // ---------------------------------------
2340 //
22 Indexed Collections
2341 // ---------------------------------------
2343 // ---------------------------------------
2344 //
22.1 Array Objects
2345 // ---------------------------------------
2347 //
22.1.1 The Array Constructor
2348 //
22.1.1.1 Array ( )
2349 //
22.1.1.2 Array (len)
2350 //
22.1.1.3 Array (...items )
2352 //
22.1.2 Properties of the Array Constructor
2354 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2357 function from(items) {
2358 var mapfn = arguments[
1];
2359 var thisArg = arguments[
2];
2361 var c = strict(this);
2362 if (mapfn === undefined) {
2363 var mapping = false;
2365 if (!IsCallable(mapfn)) throw TypeError();
2369 var usingIterator = GetMethod(items, $$iterator);
2370 if (usingIterator !== undefined) {
2371 if (IsConstructor(c)) {
2376 var iterator = GetIterator(items, usingIterator);
2379 var next = IteratorStep(iterator);
2380 if (next === false) {
2384 var nextValue = IteratorValue(next);
2386 var mappedValue = mapfn.call(t, nextValue);
2388 mappedValue = nextValue;
2393 var arrayLike = ToObject(items);
2394 var lenValue = arrayLike.length;
2395 var len = ToLength(lenValue);
2396 if (IsConstructor(c)) {
2403 var kValue = arrayLike[k];
2405 mappedValue = mapfn.call(t, kValue, k);
2407 mappedValue = kValue;
2415 //
22.1.2.2 Array.isArray ( arg )
2417 //
22.1.2.3 Array.of ( ...items )
2421 var items = arguments;
2423 var lenValue = items.length;
2424 var len = ToUint32(lenValue);
2425 var c = strict(this), a;
2426 if (IsConstructor(c)) {
2441 //
22.1.2.4 Array.prototype
2442 //
22.1.2.5 get Array [ @@species ]
2443 //
22.1.3 Properties of the Array Prototype Object
2444 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2445 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2446 //
22.1.3.2 Array.prototype.constructor
2447 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2449 Array.prototype, 'copyWithin',
2450 function copyWithin(target, start/*, end*/) {
2451 var end = arguments[
2];
2453 var o = ToObject(this);
2454 var lenVal = o.length;
2455 var len = ToLength(lenVal);
2457 var relativeTarget = ToInteger(target);
2459 if (relativeTarget <
0)
2460 to = max(len + relativeTarget,
0);
2462 to = min(relativeTarget, len);
2463 var relativeStart = ToInteger(start);
2465 if (relativeStart <
0)
2466 from = max(len + relativeStart,
0);
2468 from = min(relativeStart, len);
2470 if (end === undefined)
2473 relativeEnd = ToInteger(end);
2475 if (relativeEnd <
0)
2476 final = max(len + relativeEnd,
0);
2478 final = min(relativeEnd, len);
2479 var count = min(final - from, len - to);
2481 if (from < to && to < from + count) {
2483 from = from + count -
1;
2484 to = to + count -
1;
2489 var fromKey = String(from);
2490 var toKey = String(to);
2491 var fromPresent = HasProperty(o, fromKey);
2493 var fromVal = o[fromKey];
2498 from = from + direction;
2499 to = to + direction;
2505 //
22.1.3.4 Array.prototype.entries ( )
2506 var nativeArrayIteratorMethods =
2507 ('entries' in Array.prototype && 'next' in [].entries());
2510 Array.prototype, 'entries',
2511 function entries() {
2512 return CreateArrayIterator(this, 'key+value');
2513 }, !nativeArrayIteratorMethods);
2515 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2517 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2519 Array.prototype, 'fill',
2520 function fill(value/*, start, end*/) {
2521 var start = arguments[
1],
2524 var o = ToObject(this);
2525 var lenVal = o.length;
2526 var len = ToLength(lenVal);
2528 var relativeStart = ToInteger(start);
2530 if (relativeStart <
0)
2531 k = max((len + relativeStart),
0);
2533 k = min(relativeStart, len);
2535 if (end === undefined)
2538 relativeEnd = ToInteger(end);
2540 if (relativeEnd <
0)
2541 final = max((len + relativeEnd),
0);
2543 final = min(relativeEnd, len);
2552 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2554 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2556 Array.prototype, 'find',
2557 function find(predicate) {
2558 var o = ToObject(this);
2559 var lenValue = o.length;
2560 var len = ToInteger(lenValue);
2561 if (!IsCallable(predicate)) throw TypeError();
2562 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2566 var kPresent = HasProperty(o, pk);
2569 var testResult = predicate.call(t, kValue, k, o);
2570 if (Boolean(testResult)) {
2579 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2581 Array.prototype, 'findIndex',
2582 function findIndex(predicate) {
2583 var o = ToObject(this);
2584 var lenValue = o.length;
2585 var len = ToLength(lenValue);
2586 if (!IsCallable(predicate)) throw TypeError();
2587 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2591 var kPresent = HasProperty(o, pk);
2594 var testResult = predicate.call(t, kValue, k, o);
2595 if (Boolean(testResult)) {
2604 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2605 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2606 //
22.1.3.12 Array.prototype.join (separator)
2608 //
22.1.3.13 Array.prototype.keys ( )
2610 Array.prototype, 'keys',
2612 return CreateArrayIterator(this, 'key');
2613 }, !nativeArrayIteratorMethods);
2615 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2616 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2617 //
22.1.3.16 Array.prototype.pop ( )
2618 //
22.1.3.17 Array.prototype.push ( ...items )
2619 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2620 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2621 //
22.1.3.20 Array.prototype.reverse ( )
2622 //
22.1.3.21 Array.prototype.shift ( )
2623 //
22.1.3.22 Array.prototype.slice (start, end)
2624 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2625 //
22.1.3.24 Array.prototype.sort (comparefn)
2626 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2627 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2628 //
22.1.3.27 Array.prototype.toString ( )
2629 //
22.1.3.28 Array.prototype.unshift ( ...items )
2631 //
22.1.3.29 Array.prototype.values ( )
2633 Array.prototype, 'values',
2635 return CreateArrayIterator(this, 'value');
2636 }, !nativeArrayIteratorMethods);
2638 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2640 Array.prototype, $$iterator,
2641 Array.prototype.values
2644 //
22.1.3.31 Array.prototype [ @@unscopables ]
2645 //
22.1.4 Properties of Array Instances
2648 //
22.1.5 Array Iterator Objects
2649 function ArrayIterator() {}
2651 //
22.1.5.1 CreateArrayIterator Abstract Operation
2652 function CreateArrayIterator(array, kind) {
2653 var o = ToObject(array);
2654 var iterator = new ArrayIterator;
2655 set_internal(iterator, '[[IteratedObject]]', o);
2656 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2657 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2661 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2662 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2663 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2665 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2667 $ArrayIteratorPrototype$, 'next',
2669 var o = strict(this);
2670 if (Type(o) !== 'object') throw TypeError();
2671 var a = o['[[IteratedObject]]'],
2672 index = o['[[ArrayIteratorNextIndex]]'],
2673 itemKind = o['[[ArrayIterationKind]]'],
2674 lenValue = a.length,
2675 len = ToUint32(lenValue),
2678 if (itemKind.indexOf('sparse') !== -
1) {
2680 while (!found && index < len) {
2681 elementKey = String(index);
2682 found = HasProperty(a, elementKey);
2689 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2690 return CreateIterResultObject(undefined, true);
2693 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2694 if (itemKind.indexOf('value') !== -
1)
2695 elementValue = a[elementKey];
2696 if (itemKind.indexOf('key+value') !== -
1)
2697 return CreateIterResultObject([elementKey, elementValue], false);
2698 if (itemKind.indexOf('key') !== -
1)
2699 return CreateIterResultObject(elementKey, false);
2700 if (itemKind === 'value')
2701 return CreateIterResultObject(elementValue, false);
2702 throw Error('Internal error');
2705 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2706 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2708 //
22.1.5.3 Properties of Array Iterator Instances
2711 // ---------------------------------------
2712 //
22.2 TypedArray Objects
2713 // ---------------------------------------
2715 // See typedarray.js for TypedArray polyfill
2717 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2718 'Int16Array', 'Uint16Array',
2719 'Int32Array', 'Uint32Array',
2720 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2721 if (!($TypedArrayName$ in global))
2723 var $TypedArray$ = global[$TypedArrayName$];
2725 //
22.2.1 The %TypedArray% Intrinsic Object
2726 //
22.2.1.1 %TypedArray% ( length )
2727 //
22.2.1.2 %TypedArray% ( typedArray )
2728 //
22.2.1.3 %TypedArray% ( object )
2729 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2730 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2731 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2733 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2735 $TypedArray$, 'from',
2736 function from(source) {
2737 var mapfn = arguments[
1];
2738 var thisArg = arguments[
2];
2740 var c = strict(this);
2741 if (!IsConstructor(c)) throw TypeError();
2742 if (mapfn === undefined) {
2743 var mapping = false;
2745 if (IsCallable(mapfn)) throw TypeError();
2749 var usingIterator = GetMethod(source, $$iterator);
2750 if (usingIterator !== undefined) {
2751 var iterator = GetIterator(source, usingIterator);
2754 while (next !== false) {
2755 next = IteratorStep(iterator);
2756 if (next !== false) {
2757 var nextValue = IteratorValue(next);
2758 values.push(nextValue);
2761 var len = values.length;
2762 var newObj = new c(len);
2765 var kValue = values.shift();
2767 var mappedValue = mapfn.call(t, kValue);
2769 mappedValue = kValue;
2771 newObj[k] = mappedValue;
2774 console.assert(values.length ===
0);
2777 var arrayLike = ToObject(source);
2778 var lenValue = arrayLike.length;
2779 len = ToLength(lenValue);
2780 newObj = new c(len);
2783 kValue = arrayLike[k];
2785 mappedValue = mapfn.call(t, kValue, k);
2787 mappedValue = kValue;
2789 newObj[k] = mappedValue;
2795 //
22.2.2.2 %TypedArray%.of ( ...items )
2799 var items = arguments;
2801 var len = items.length;
2802 var c = strict(this);
2803 var newObj = new c(len);
2806 newObj[k] = items[k];
2812 //
22.2.2.3 %TypedArray%.prototype
2813 //
22.2.2.4 get %TypedArray% [ @@species ]
2814 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2815 //
22.2.3.1 get %TypedArray%.prototype.buffer
2816 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2817 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2818 //
22.2.3.4 %TypedArray%.prototype.constructor
2820 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2821 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2823 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2824 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2826 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2827 define($TypedArray$.prototype, 'every', Array.prototype.every);
2829 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2831 $TypedArray$.prototype, 'fill',
2832 //Array.prototype.fill // Doesn't work in Safari
7
2833 function fill(value/*, start, end*/) {
2834 var start = arguments[
1],
2837 var o = ToObject(this);
2838 var lenVal = o.length;
2839 var len = ToLength(lenVal);
2841 var relativeStart = ToInteger(start);
2843 if (relativeStart <
0) k = max((len + relativeStart),
0);
2844 else k = min(relativeStart, len);
2846 if (end === undefined) relativeEnd = len;
2847 else relativeEnd = ToInteger(end);
2849 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2850 else final = min(relativeEnd, len);
2859 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2861 $TypedArray$.prototype, 'filter',
2862 function filter(callbackfn) {
2863 var thisArg = arguments[
1];
2865 var o = ToObject(this);
2866 var lenVal = o.length;
2867 var len = ToLength(lenVal);
2868 if (!IsCallable(callbackfn)) throw TypeError();
2870 var c = o.constructor;
2876 var selected = callbackfn.call(t, kValue, k, o);
2883 var a = new c(captured);
2885 for (var i =
0; i < kept.length; ++i) {
2893 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2894 define($TypedArray$.prototype, 'find', Array.prototype.find);
2896 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2897 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2899 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2900 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2902 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2903 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2905 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2906 define($TypedArray$.prototype, 'join', Array.prototype.join);
2908 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2909 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2911 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2912 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2914 //
22.2.3.17 get %TypedArray%.prototype.length
2916 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2918 $TypedArray$.prototype, 'map',
2919 function map(callbackfn) {
2920 var thisArg = arguments[
1];
2922 var o = ToObject(this);
2923 var lenValue = o.length;
2924 var len = ToLength(lenValue);
2925 if (!IsCallable(callbackfn)) throw TypeError();
2928 var c = o.constructor;
2929 if (IsConstructor(c))
2931 if (a === undefined)
2935 var kPresent = HasProperty(o, k);
2938 var mappedValue = callbackfn.call(t, kValue, k, o);
2946 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2947 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2949 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2950 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2952 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2953 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2955 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2956 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2957 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2959 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2961 $TypedArray$.prototype, 'slice',
2962 function slice(start, end) {
2963 var o = ToObject(this);
2964 var lenVal = o.length;
2965 var len = ToLength(lenVal);
2966 var relativeStart = ToInteger(start);
2967 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2968 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2969 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2970 var count = final - k;
2971 var c = o.constructor;
2972 if (IsConstructor(c)) {
2973 var a = new c(count);
2987 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2988 define($TypedArray$.prototype, 'some', Array.prototype.some);
2990 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2992 $TypedArray$.prototype, 'sort',
2994 var comparefn = arguments[
0];
2996 function sortCompare(x, y) {
2997 console.assert(Type(x) === 'number' && Type(y) === 'number');
2998 if (x !== x && y !== y) return +
0;
2999 if (x !== x) return
1;
3000 if (y !== y) return -
1;
3001 if (comparefn !== undefined) {
3002 return comparefn(x, y);
3004 if (x < y) return -
1;
3005 if (x
> y) return
1;
3008 return Array.prototype.sort.call(this, sortCompare);
3011 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3012 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3013 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3015 //
22.2.3.29 %TypedArray%.prototype.values ( )
3016 define($TypedArray$.prototype, 'values', Array.prototype.values);
3018 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3020 $TypedArray$.prototype, $$iterator,
3021 $TypedArray$.prototype.values
3024 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3025 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3027 //
22.2.4 The TypedArray Constructors
3028 //
22.2.4.1TypedArray( ... argumentsList)
3029 //
22.2.5 Properties of the TypedArray Constructors
3030 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3031 //
22.2.5.2 TypedArray.prototype
3032 //
22.2.6 Properties of TypedArray Prototype Objects
3033 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3034 //
22.2.6.2 TypedArray.prototype.constructor
3035 //
22.2.7 Properties of TypedArray Instances
3038 // ---------------------------------------
3039 //
23 Keyed Collection
3040 // ---------------------------------------
3042 // ---------------------------------------
3044 // ---------------------------------------
3047 //
23.1.1 The Map Constructor
3049 //
23.1.1.1 Map ( [ iterable ] )
3051 function Map(/*iterable*/) {
3052 var map = strict(this);
3053 var iterable = arguments[
0];
3055 if (Type(map) !== 'object') throw TypeError();
3056 if ('[[MapData]]' in map) throw TypeError();
3058 if (iterable !== undefined) {
3059 var adder = map['set'];
3060 if (!IsCallable(adder)) throw TypeError();
3061 var iter = GetIterator(ToObject(iterable));
3063 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3064 if (iter === undefined) return map;
3066 var next = IteratorStep(iter);
3069 var nextItem = IteratorValue(next);
3070 if (Type(nextItem) !== 'object') throw TypeError();
3071 var k = nextItem[
0];
3072 var v = nextItem[
1];
3073 adder.call(map, k, v);
3079 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3080 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3081 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3082 (new global.Map([['a',
1]]).size !==
1))
3086 function MapDataIndexOf(mapData, key) {
3088 if (key === key) return mapData.keys.indexOf(key);
3089 // Slow case for NaN
3090 for (i =
0; i < mapData.keys.length; i +=
1)
3091 if (SameValueZero(mapData.keys[i], key)) return i;
3095 //
23.1.1.2 new Map ( ... argumentsList )
3096 //
23.1.2 Properties of the Map Constructor
3097 //
23.1.2.1 Map.prototype
3098 var $MapPrototype$ = {};
3099 Map.prototype = $MapPrototype$;
3101 //
23.1.2.2 get Map [ @@species ]
3103 //
23.1.3 Properties of the Map Prototype Object
3104 //
23.1.3.1 Map.prototype.clear ()
3106 Map.prototype, 'clear',
3108 var m = strict(this);
3109 if (Type(m) !== 'object') throw TypeError();
3110 if (!('[[MapData]]' in m)) throw TypeError();
3111 if (m['[[MapData]]'] === undefined) throw TypeError();
3112 var entries = m['[[MapData]]'];
3113 entries.keys.length =
0;
3114 entries.values.length =
0;
3118 //
23.1.3.2 Map.prototype.constructor
3120 //
23.1.3.3 Map.prototype.delete ( key )
3122 Map.prototype, 'delete',
3123 function delete_(key) {
3124 var m = strict(this);
3125 if (Type(m) !== 'object') throw TypeError();
3126 if (!('[[MapData]]' in m)) throw TypeError();
3127 if (m['[[MapData]]'] === undefined) throw TypeError();
3128 var entries = m['[[MapData]]'];
3129 var i = MapDataIndexOf(entries, key);
3130 if (i <
0) return false;
3131 entries.keys[i] = empty;
3132 entries.values[i] = empty;
3136 //
23.1.3.4 Map.prototype.entries ( )
3138 Map.prototype, 'entries',
3139 function entries() {
3140 var m = strict(this);
3141 if (Type(m) !== 'object') throw TypeError();
3142 return CreateMapIterator(m, 'key+value');
3145 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3147 Map.prototype, 'forEach',
3148 function forEach(callbackfn /*, thisArg*/) {
3149 var thisArg = arguments[
1];
3151 var m = strict(this);
3152 if (Type(m) !== 'object') throw TypeError();
3153 if (!('[[MapData]]' in m)) throw TypeError();
3154 if (m['[[MapData]]'] === undefined) throw TypeError();
3155 var entries = m['[[MapData]]'];
3157 if (!IsCallable(callbackfn)) {
3158 throw TypeError('First argument to forEach is not callable.');
3160 for (var i =
0; i < entries.keys.length; ++i) {
3161 if (entries.keys[i] !== empty) {
3162 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3168 //
23.1.3.6 Map.prototype.get ( key )
3170 Map.prototype, 'get',
3172 var m = strict(this);
3173 if (Type(m) !== 'object') throw TypeError();
3174 if (!('[[MapData]]' in m)) throw TypeError();
3175 if (m['[[MapData]]'] === undefined) throw TypeError();
3176 var entries = m['[[MapData]]'];
3177 var i = MapDataIndexOf(entries, key);
3178 if (i
>=
0) return entries.values[i];
3182 //
23.1.3.7 Map.prototype.has ( key )
3184 Map.prototype, 'has',
3186 var m = strict(this);
3187 if (Type(m) !== 'object') throw TypeError();
3188 if (!('[[MapData]]' in m)) throw TypeError();
3189 if (m['[[MapData]]'] === undefined) throw TypeError();
3190 var entries = m['[[MapData]]'];
3191 if (MapDataIndexOf(entries, key)
>=
0) return true;
3195 //
23.1.3.8 Map.prototype.keys ( )
3197 Map.prototype, 'keys',
3199 var m = strict(this);
3200 if (Type(m) !== 'object') throw TypeError();
3201 return CreateMapIterator(m, 'key');
3204 //
23.1.3.9 Map.prototype.set ( key , value )
3206 Map.prototype, 'set',
3207 function set(key, value) {
3208 var m = strict(this);
3209 if (Type(m) !== 'object') throw TypeError();
3210 if (!('[[MapData]]' in m)) throw TypeError();
3211 if (m['[[MapData]]'] === undefined) throw TypeError();
3212 var entries = m['[[MapData]]'];
3213 var i = MapDataIndexOf(entries, key);
3214 if (i <
0) i = entries.keys.length;
3215 if (SameValue(key, -
0)) key =
0;
3216 entries.keys[i] = key;
3217 entries.values[i] = value;
3221 //
23.1.3.10 get Map.prototype.size
3222 Object.defineProperty(
3223 Map.prototype, 'size', {
3225 var m = strict(this);
3226 if (Type(m) !== 'object') throw TypeError();
3227 if (!('[[MapData]]' in m)) throw TypeError();
3228 if (m['[[MapData]]'] === undefined) throw TypeError();
3229 var entries = m['[[MapData]]'];
3231 for (var i =
0; i < entries.keys.length; ++i) {
3232 if (entries.keys[i] !== empty)
3239 //
23.1.3.11 Map.prototype.values ( )
3241 Map.prototype, 'values',
3243 var m = strict(this);
3244 if (Type(m) !== 'object') throw TypeError();
3245 return CreateMapIterator(m, 'value');
3248 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3250 Map.prototype, $$iterator,
3252 var m = strict(this);
3253 if (Type(m) !== 'object') throw TypeError();
3254 return CreateMapIterator(m, 'key+value');
3257 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3258 define(global.Map.prototype, $$toStringTag, 'Map');
3260 //
23.1.4 Properties of Map Instances
3261 //
23.1.5 Map Iterator Objects
3264 function MapIterator() {}
3266 //
23.1.5.1 CreateMapIterator Abstract Operation
3267 function CreateMapIterator(map, kind) {
3268 if (Type(map) !== 'object') throw TypeError();
3269 if (!('[[MapData]]' in map)) throw TypeError();
3270 if (map['[[MapData]]'] === undefined) throw TypeError();
3271 var iterator = new MapIterator;
3272 set_internal(iterator, '[[Map]]', map);
3273 set_internal(iterator, '[[MapNextIndex]]',
0);
3274 set_internal(iterator, '[[MapIterationKind]]', kind);
3278 //
23.1.5.2 The %MapIteratorPrototype% Object
3279 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3280 MapIterator.prototype = $MapIteratorPrototype$;
3282 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3284 $MapIteratorPrototype$, 'next',
3286 var o = strict(this);
3287 if (Type(o) !== 'object') throw TypeError();
3288 var m = o['[[Map]]'],
3289 index = o['[[MapNextIndex]]'],
3290 itemKind = o['[[MapIterationKind]]'],
3291 entries = m['[[MapData]]'];
3292 while (index < entries.keys.length) {
3293 var e = {key: entries.keys[index], value: entries.values[index]};
3295 set_internal(o, '[[MapNextIndex]]', index);
3296 if (e.key !== empty) {
3297 if (itemKind === 'key') {
3298 return CreateIterResultObject(e.key, false);
3299 } else if (itemKind === 'value') {
3300 return CreateIterResultObject(e.value, false);
3302 return CreateIterResultObject([e.key, e.value], false);
3306 return CreateIterResultObject(undefined, true);
3309 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3310 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3312 //
23.1.5.3 Properties of Map Iterator Instances
3315 // ---------------------------------------
3317 // ---------------------------------------
3320 //
23.2.1 The Set Constructor
3321 //
23.2.1.1 Set ( [ iterable ] )
3324 function Set(/*iterable*/) {
3325 var set = strict(this);
3326 var iterable = arguments[
0];
3328 if (Type(set) !== 'object') throw TypeError();
3329 if ('[[SetData]]' in set) throw TypeError();
3331 if (iterable !== undefined) {
3332 var adder = set['add'];
3333 if (!IsCallable(adder)) throw TypeError();
3334 var iter = GetIterator(ToObject(iterable));
3336 set_internal(set, '[[SetData]]', []);
3337 if (iter === undefined) return set;
3339 var next = IteratorStep(iter);
3342 var nextValue = IteratorValue(next);
3343 adder.call(set, nextValue);
3349 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3350 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3351 (new global.Set([
1]).size !==
1))
3354 function SetDataIndexOf(setData, key) {
3357 return setData.indexOf(key);
3358 // Slow case for NaN
3359 for (i =
0; i < setData.length; i +=
1)
3360 if (SameValueZero(setData[i], key)) return i;
3364 //
23.2.1.2 new Set ( ...argumentsList )
3365 //
23.2.2 Properties of the Set Constructor
3367 //
23.2.2.1 Set.prototype
3368 var $SetPrototype$ = {};
3369 Set.prototype = $SetPrototype$;
3371 //
23.2.2.2 get Set [ @@species ]
3372 //
23.2.3 Properties of the Set Prototype Object
3374 //
23.2.3.1 Set.prototype.add (value )
3376 Set.prototype, 'add',
3377 function add(value) {
3378 var s = strict(this);
3379 if (Type(s) !== 'object') throw TypeError();
3380 if (!('[[SetData]]' in s)) throw TypeError();
3381 if (s['[[SetData]]'] === undefined) throw TypeError();
3382 if (SameValue(value, -
0)) value =
0;
3383 var entries = s['[[SetData]]'];
3384 var i = SetDataIndexOf(entries, value);
3385 if (i <
0) i = s['[[SetData]]'].length;
3386 s['[[SetData]]'][i] = value;
3391 //
23.2.3.2 Set.prototype.clear ()
3393 Set.prototype, 'clear',
3395 var s = strict(this);
3396 if (Type(s) !== 'object') throw TypeError();
3397 if (!('[[SetData]]' in s)) throw TypeError();
3398 if (s['[[SetData]]'] === undefined) throw TypeError();
3399 var entries = s['[[SetData]]'];
3404 //
23.2.3.3 Set.prototype.constructor
3405 //
23.2.3.4 Set.prototype.delete ( value )
3407 Set.prototype, 'delete',
3408 function delete_(value) {
3409 var s = strict(this);
3410 if (Type(s) !== 'object') throw TypeError();
3411 if (!('[[SetData]]' in s)) throw TypeError();
3412 if (s['[[SetData]]'] === undefined) throw TypeError();
3413 var entries = s['[[SetData]]'];
3414 var i = SetDataIndexOf(entries, value);
3415 if (i <
0) return false;
3420 //
23.2.3.5 Set.prototype.entries ( )
3422 Set.prototype, 'entries',
3423 function entries() {
3424 var s = strict(this);
3425 if (Type(s) !== 'object') throw TypeError();
3426 return CreateSetIterator(s, 'key+value');
3429 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3431 Set.prototype, 'forEach',
3432 function forEach(callbackfn/*, thisArg*/) {
3433 var thisArg = arguments[
1];
3435 var s = strict(this);
3436 if (Type(s) !== 'object') throw TypeError();
3437 if (!('[[SetData]]' in s)) throw TypeError();
3438 if (s['[[SetData]]'] === undefined) throw TypeError();
3439 var entries = s['[[SetData]]'];
3441 if (!IsCallable(callbackfn)) {
3442 throw TypeError('First argument to forEach is not callable.');
3444 for (var i =
0; i < entries.length; ++i) {
3445 if (entries[i] !== empty) {
3446 callbackfn.call(thisArg, entries[i], entries[i], s);
3451 //
23.2.3.7 Set.prototype.has ( value )
3453 Set.prototype, 'has',
3455 var s = strict(this);
3456 if (Type(s) !== 'object') throw TypeError();
3457 if (!('[[SetData]]' in s)) throw TypeError();
3458 if (s['[[SetData]]'] === undefined) throw TypeError();
3459 var entries = s['[[SetData]]'];
3460 return SetDataIndexOf(entries, key) !== -
1;
3463 //
23.2.3.8 Set.prototype.keys ( )
3464 // See Set.prototype.values
3466 //
23.2.3.9 get Set.prototype.size
3467 Object.defineProperty(
3468 Set.prototype, 'size', {
3470 var s = strict(this);
3471 if (Type(s) !== 'object') throw TypeError();
3472 if (!('[[SetData]]' in s)) throw TypeError();
3473 if (s['[[SetData]]'] === undefined) throw TypeError();
3474 var entries = s['[[SetData]]'];
3476 for (var i =
0; i < entries.length; ++i) {
3477 if (entries[i] !== empty)
3484 //
23.2.3.10 Set.prototype.values ( )
3486 Set.prototype, 'values',
3488 var s = strict(this);
3489 if (Type(s) !== 'object') throw TypeError();
3490 return CreateSetIterator(s, 'value');
3492 // NOTE: function name is still 'values':
3493 Set.prototype.keys = Set.prototype.values;
3495 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3497 Set.prototype, $$iterator,
3499 var s = strict(this);
3500 if (Type(s) !== 'object') throw TypeError();
3501 return CreateSetIterator(s);
3504 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3505 define(global.Set.prototype, $$toStringTag, 'Set');
3507 //
23.2.4 Properties of Set Instances
3508 //
23.2.5 Set Iterator Objects
3510 function SetIterator() {}
3512 //
23.2.5.1 CreateSetIterator Abstract Operation
3513 function CreateSetIterator(set, kind) {
3514 if (Type(set) !== 'object') throw TypeError();
3515 if (!('[[SetData]]' in set)) throw TypeError();
3516 if (set['[[SetData]]'] === undefined) throw TypeError();
3517 var iterator = new SetIterator;
3518 set_internal(iterator, '[[IteratedSet]]', set);
3519 set_internal(iterator, '[[SetNextIndex]]',
0);
3520 set_internal(iterator, '[[SetIterationKind]]', kind);
3524 //
23.2.5.2 The %SetIteratorPrototype% Object
3525 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3526 SetIterator.prototype = $SetIteratorPrototype$;
3528 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3530 $SetIteratorPrototype$, 'next',
3532 var o = strict(this);
3533 if (Type(o) !== 'object') throw TypeError();
3534 var s = o['[[IteratedSet]]'],
3535 index = o['[[SetNextIndex]]'],
3536 itemKind = o['[[SetIterationKind]]'],
3537 entries = s['[[SetData]]'];
3538 while (index < entries.length) {
3539 var e = entries[index];
3541 set_internal(o, '[[SetNextIndex]]', index);
3543 if (itemKind === 'key+value')
3544 return CreateIterResultObject([e, e], false);
3545 return CreateIterResultObject(e, false);
3548 return CreateIterResultObject(undefined, true);
3551 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3552 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3554 //
23.2.5.3 Properties of Set Iterator Instances
3558 // ---------------------------------------
3559 //
23.3 WeakMap Objects
3560 // ---------------------------------------
3563 //
23.3.1 The WeakMap Constructor
3564 //
23.3.1.1 WeakMap ( [ iterable ] )
3566 function WeakMap(/*iterable*/) {
3567 var map = strict(this);
3568 var iterable = arguments[
0];
3570 if (Type(map) !== 'object') throw TypeError();
3571 if ('[[WeakMapData]]' in map) throw TypeError();
3573 if (iterable !== undefined) {
3574 var adder = map['set'];
3575 if (!IsCallable(adder)) throw TypeError();
3576 var iter = GetIterator(ToObject(iterable));
3578 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3579 if (iter === undefined) return map;
3581 var next = IteratorStep(iter);
3584 var nextValue = IteratorValue(next);
3585 if (Type(nextValue) !== 'object') throw TypeError();
3586 var k = nextValue[
0];
3587 var v = nextValue[
1];
3588 adder.call(map, k, v);
3594 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3595 global.WeakMap = WeakMap;
3597 //
23.3.2 Properties of the WeakMap Constructor
3598 //
23.3.2.1 WeakMap.prototype
3599 var $WeakMapPrototype$ = {};
3600 WeakMap.prototype = $WeakMapPrototype$;
3604 //
23.3.2.2 WeakMap[ @@create ] ( )
3605 //
23.3.3 Properties of the WeakMap Prototype Object
3607 //
23.3.3.1 WeakMap.prototype.constructor
3609 //
23.3.3.2 WeakMap.prototype.delete ( key )
3611 WeakMap.prototype, 'delete',
3612 function delete_(key) {
3613 var M = strict(this);
3614 if (Type(M) !== 'object') throw TypeError();
3615 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3616 if (Type(key) !== 'object') throw TypeError('Expected object');
3617 return M['[[WeakMapData]]'].remove(key);
3620 //
23.3.3.3 WeakMap.prototype.get ( key )
3622 WeakMap.prototype, 'get',
3623 function get(key, defaultValue) {
3624 var M = strict(this);
3625 if (Type(M) !== 'object') throw TypeError();
3626 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3627 if (Type(key) !== 'object') throw TypeError('Expected object');
3628 return M['[[WeakMapData]]'].get(key, defaultValue);
3631 //
23.3.3.4 WeakMap.prototype.has ( key )
3633 WeakMap.prototype, 'has',
3635 var M = strict(this);
3636 if (Type(M) !== 'object') throw TypeError();
3637 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3638 if (Type(key) !== 'object') throw TypeError('Expected object');
3639 return M['[[WeakMapData]]'].has(key);
3642 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3644 WeakMap.prototype, 'set',
3645 function set(key, value) {
3646 var M = strict(this);
3647 if (Type(M) !== 'object') throw TypeError();
3648 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3649 if (Type(key) !== 'object') throw TypeError('Expected object');
3650 M['[[WeakMapData]]'].set(key, value);
3654 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3655 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3657 //
23.3.4 Properties of WeakMap Instances
3659 // Polyfills for incomplete native implementations:
3661 var wm = new global.WeakMap();
3662 var orig = global.WeakMap.prototype.set;
3663 define(global.WeakMap.prototype, 'set', function set() {
3664 orig.apply(this, arguments);
3666 }, wm.set({},
0) !== wm);
3670 // ---------------------------------------
3671 //
23.4 WeakSet Objects
3672 // ---------------------------------------
3675 //
23.4.1 The WeakSet Constructor
3676 //
23.4.1.1 WeakSet ( [ iterable ] )
3678 function WeakSet(/*iterable*/) {
3679 var set = strict(this);
3680 var iterable = arguments[
0];
3682 if (Type(set) !== 'object') throw TypeError();
3683 if ('[[WeakSetData]]' in set) throw TypeError();
3685 if (iterable !== undefined) {
3686 var adder = set['add'];
3687 if (!IsCallable(adder)) throw TypeError();
3688 var iter = GetIterator(ToObject(iterable));
3690 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3691 if (iter === undefined) return set;
3693 var next = IteratorStep(iter);
3696 var nextValue = IteratorValue(next);
3697 adder.call(set, nextValue);
3703 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3704 global.WeakSet = WeakSet;
3706 //
23.4.2 Properties of the WeakSet Constructor
3707 //
23.4.2.1 WeakSet.prototype
3708 var $WeakSetPrototype$ = {};
3709 WeakSet.prototype = $WeakSetPrototype$;
3711 //
23.4.3 Properties of the WeakSet Prototype Object
3712 //
23.4.3.1 WeakSet.prototype.add (value )
3714 WeakSet.prototype, 'add',
3715 function add(value) {
3716 var S = strict(this);
3717 if (Type(S) !== 'object') throw TypeError();
3718 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3719 if (Type(value) !== 'object') throw TypeError('Expected object');
3720 S['[[WeakSetData]]'].set(value, true);
3724 //
23.4.3.2 WeakSet.prototype.constructor
3725 //
23.4.3.3 WeakSet.prototype.delete ( value )
3727 WeakSet.prototype, 'delete',
3728 function delete_(value) {
3729 var S = strict(this);
3730 if (Type(S) !== 'object') throw TypeError();
3731 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3732 if (Type(value) !== 'object') throw TypeError('Expected object');
3733 return S['[[WeakSetData]]'].remove(value);
3736 //
23.4.3.4 WeakSet.prototype.has ( value )
3738 WeakSet.prototype, 'has',
3740 var S = strict(this);
3741 if (Type(S) !== 'object') throw TypeError();
3742 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3743 if (Type(key) !== 'object') throw TypeError('Expected object');
3744 return S['[[WeakSetData]]'].has(key);
3747 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3748 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3750 //
23.4.4 Properties of WeakSet Instances
3752 // Polyfills for incomplete native implementations:
3754 var ws = new global.WeakSet();
3755 var orig = global.WeakSet.prototype.add;
3756 define(global.WeakSet.prototype, 'add', function add() {
3757 orig.apply(this, arguments);
3759 }, ws.add({}) !== ws);
3763 // ---------------------------------------
3764 //
24 Structured Data
3765 // ---------------------------------------
3767 // ---------------------------------------
3768 //
24.1 ArrayBuffer Objects
3769 // ---------------------------------------
3771 // See typedarray.js for TypedArray polyfill
3774 if (!('ArrayBuffer' in global))
3777 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3778 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3779 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3780 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3781 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3782 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3783 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3784 //
24.1.2 The ArrayBuffer Constructor
3785 //
24.1.2.1 ArrayBuffer( length )
3786 //
24.1.3 Properties of the ArrayBuffer Constructor
3788 //
24.1.3.1 ArrayBuffer.isView ( arg )
3790 ArrayBuffer, 'isView',
3791 function isView(arg) {
3792 if (Type(arg) !== 'object') return false;
3793 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3797 //
24.1.3.2 ArrayBuffer.prototype
3798 //
24.1.3.3 get ArrayBuffer [ @@species ]
3799 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3800 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3801 //
24.1.4.2 ArrayBuffer.prototype.constructor
3802 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3804 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3805 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3807 //
24.1.5 Properties of the ArrayBuffer Instances
3810 // ---------------------------------------
3811 //
24.2 DataView Objects
3812 // ---------------------------------------
3814 // See typedarray.js for TypedArray polyfill
3817 if (!('DataView' in global))
3820 //
24.2.1 Abstract Operations For DataView Objects
3821 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3822 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3823 //
24.2.2 The DataView Constructor
3824 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3825 //
24.2.3 Properties of the DataView Constructor
3826 //
24.2.3.1 DataView.prototype
3827 //
24.2.4 Properties of the DataView Prototype Object
3828 //
24.2.4.1 get DataView.prototype.buffer
3829 //
24.2.4.2 get DataView.prototype.byteLength
3830 //
24.2.4.3 get DataView.prototype.byteOffset
3831 //
24.2.4.4 DataView.prototype.constructor
3832 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3833 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3834 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3835 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3836 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3837 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3838 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3840 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3841 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3842 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3843 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3844 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3845 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3846 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3847 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3849 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3850 define(DataView.prototype, $$toStringTag, 'DataView');
3852 //
24.2.5 Properties of DataView Instances
3855 // ---------------------------------------
3856 //
24.3 The JSON Object
3857 // ---------------------------------------
3859 //
24.3.1 JSON.parse ( text [ , reviver ] )
3860 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3861 //
24.3.3 JSON [ @@toStringTag ]
3862 define(JSON, $$toStringTag, 'JSON');
3864 // ---------------------------------------
3866 // ---------------------------------------
3868 //
25.1.1 Common Iteration Interfaces
3869 //
25.1.1.1 The Iterable Interface
3870 //
25.1.1.2 The Iterator Interface
3871 //
25.1.1.3 The IteratorResult Interface
3873 //
25.1.2 The %IteratorPrototype% Object
3874 // Defined earlier, so other prototypes can reference it.
3875 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3876 define($IteratorPrototype$, $$iterator, function() {
3881 // ---------------------------------------
3882 //
25.4 Promise Objects
3883 // ---------------------------------------
3886 //
25.4 Promise Objects
3888 //
25.4.1 Promise Abstract Operations
3890 //
25.4.1.1 PromiseCapability Records
3891 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3893 function IfAbruptRejectPromise(value, capability) {
3894 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3895 return capability['[[Promise]]'];
3898 //
25.4.1.2 PromiseReaction Records
3900 //
25.4.1.3 CreateResolvingFunctions ( promise )
3902 function CreateResolvingFunctions(promise) {
3903 var alreadyResolved = {'[[value]]': false};
3904 var resolve = PromiseResolveFunction();
3905 set_internal(resolve, '[[Promise]]', promise);
3906 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3907 var reject = PromiseRejectFunction();
3908 set_internal(reject, '[[Promise]]', promise);
3909 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3910 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3913 //
25.4.1.3.1 Promise Reject Functions
3915 function PromiseRejectFunction() {
3916 var F = function(reason) {
3917 console.assert(Type(F['[[Promise]]']) === 'object');
3918 var promise = F['[[Promise]]'];
3919 var alreadyResolved = F['[[AlreadyResolved]]'];
3920 if (alreadyResolved['[[value]]']) return undefined;
3921 set_internal(alreadyResolved, '[[value]]', true);
3922 return RejectPromise(promise, reason);
3927 //
25.4.1.3.2 Promise Resolve Functions
3929 function PromiseResolveFunction() {
3930 var F = function(resolution) {
3931 console.assert(Type(F['[[Promise]]']) === 'object');
3932 var promise = F['[[Promise]]'];
3933 var alreadyResolved = F['[[AlreadyResolved]]'];
3934 if (alreadyResolved['[[value]]']) return undefined;
3935 set_internal(alreadyResolved, '[[value]]', true);
3937 if (SameValue(resolution, promise)) {
3938 var selfResolutionError = TypeError();
3939 return RejectPromise(promise, selfResolutionError);
3941 if (Type(resolution) !== 'object')
3942 return FulfillPromise(promise, resolution);
3944 var then = resolution['then'];
3946 return RejectPromise(promise, then);
3948 if (!IsCallable(then))
3949 return FulfillPromise(promise, resolution);
3950 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3956 //
25.4.1.4 FulfillPromise ( promise, value )
3958 function FulfillPromise(promise, value) {
3959 console.assert(promise['[[PromiseState]]'] === 'pending');
3960 var reactions = promise['[[PromiseFulfillReactions]]'];
3961 set_internal(promise, '[[PromiseResult]]', value);
3962 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3963 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3964 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3965 return TriggerPromiseReactions(reactions, value);
3968 //
25.4.1.5 NewPromiseCapability ( C )
3970 function NewPromiseCapability(c) {
3971 // To keep Promise hermetic, this doesn't look much like the spec.
3972 return CreatePromiseCapabilityRecord(undefined, c);
3975 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3977 function CreatePromiseCapabilityRecord(promise, constructor) {
3978 // To keep Promise hermetic, this doesn't look much like the spec.
3979 console.assert(IsConstructor(constructor));
3980 var promiseCapability = {};
3981 set_internal(promiseCapability, '[[Promise]]', promise);
3982 set_internal(promiseCapability, '[[Resolve]]', undefined);
3983 set_internal(promiseCapability, '[[Reject]]', undefined);
3984 var executor = GetCapabilitiesExecutor();
3985 set_internal(executor, '[[Capability]]', promiseCapability);
3987 // NOTE: Differs from spec; object is constructed here
3988 var constructorResult = promise = new constructor(executor);
3989 set_internal(promiseCapability, '[[Promise]]', promise);
3991 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3992 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3993 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
3994 return promiseCapability;
3997 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
3999 function GetCapabilitiesExecutor() {
4000 var F = function(resolve, reject) {
4001 console.assert(F['[[Capability]]']);
4002 var promiseCapability = F['[[Capability]]'];
4003 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4004 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4005 set_internal(promiseCapability, '[[Resolve]]', resolve);
4006 set_internal(promiseCapability, '[[Reject]]', reject);
4012 //
25.4.1.6 IsPromise ( x )
4014 function IsPromise(x) {
4015 if (Type(x) !== 'object') return false;
4016 if (!('[[PromiseState]]' in x)) return false;
4017 if (x['[[PromiseState]]'] === undefined) return false;
4021 //
25.4.1.7 RejectPromise ( promise, reason )
4023 function RejectPromise(promise, reason) {
4024 console.assert(promise['[[PromiseState]]'] === 'pending');
4025 var reactions = promise['[[PromiseRejectReactions]]'];
4026 set_internal(promise, '[[PromiseResult]]', reason);
4027 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4028 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4029 set_internal(promise, '[[PromiseState]]', 'rejected');
4030 return TriggerPromiseReactions(reactions, reason);
4033 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4035 function TriggerPromiseReactions(reactions, argument) {
4036 for (var i =
0, len = reactions.length; i < len; ++i)
4037 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4041 //
25.4.2 Promise Jobs
4043 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4045 function PromiseReactionJob(reaction, argument) {
4046 var promiseCapability = reaction['[[Capabilities]]'];
4047 var handler = reaction['[[Handler]]'];
4048 var handlerResult, status;
4050 if (handler === 'Identity') handlerResult = argument;
4051 else if (handler === 'Thrower') throw argument;
4052 else handlerResult = handler.call(undefined, argument);
4053 } catch (handlerResult) {
4054 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4055 NextJob(status); return;
4057 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4061 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4063 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4064 // SPEC BUG: promise vs. promiseToResolve
4065 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4067 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4068 resolvingFunctions['[[Reject]]']);
4069 } catch (thenCallResult) {
4070 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4071 NextJob(status); return;
4073 NextJob(thenCallResult);
4076 //
25.4.3 The Promise Constructor
4078 //
25.4.3.1 Promise ( executor )
4080 function Promise(executor) {
4081 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4082 Object.defineProperty(this, '[[PromiseState]]', config);
4083 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4084 Object.defineProperty(this, '[[PromiseResult]]', config);
4085 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4086 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4089 if (Type(promise) !== 'object') throw new TypeError();
4090 if (!('[[PromiseState]]' in promise)) throw TypeError();
4091 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4092 if (!IsCallable(executor)) throw TypeError();
4094 set_internal(promise, '[[PromiseConstructor]]', Promise);
4096 return InitializePromise(promise, executor);
4099 //
25.4.3.1.1 InitializePromise ( promise, executor )
4101 function InitializePromise(promise, executor) {
4102 console.assert('[[PromiseState]]' in promise);
4103 console.assert(IsCallable(executor));
4104 set_internal(promise, '[[PromiseState]]', 'pending');
4105 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4106 set_internal(promise, '[[PromiseRejectReactions]]', []);
4107 var resolvingFunctions = CreateResolvingFunctions(promise);
4109 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4110 resolvingFunctions['[[Reject]]']);
4111 } catch (completion) {
4112 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4117 //
25.4.4 Properties of the Promise Constructor
4118 //
25.4.4.1 Promise.all ( iterable )
4120 define(Promise, 'all', function all(iterable) {
4121 var c = strict(this);
4122 var promiseCapability = NewPromiseCapability(c);
4124 var iterator = GetIterator(iterable);
4126 promiseCapability['[[Reject]]'].call(undefined, value);
4127 return promiseCapability['[[Promise]]'];
4130 var remainingElementsCount = { value:
1 };
4134 var next = IteratorStep(iterator);
4136 promiseCapability['[[Reject]]'].call(undefined, value);
4137 return promiseCapability['[[Promise]]'];
4140 remainingElementsCount.value -=
1;
4141 if (remainingElementsCount.value ===
0) {
4142 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4146 return promiseCapability['[[Promise]]'];
4149 var nextValue = IteratorValue(next);
4151 promiseCapability['[[Reject]]'].call(undefined, value);
4152 return promiseCapability['[[Promise]]'];
4155 var nextPromise = c.resolve(nextValue);
4157 promiseCapability['[[Reject]]'].call(undefined, value);
4158 return promiseCapability['[[Promise]]'];
4160 var resolveElement = PromiseAllResolveElementFunction();
4161 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4162 set_internal(resolveElement, '[[Index]]', index);
4163 set_internal(resolveElement, '[[Values]]', values);
4164 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4165 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4166 remainingElementsCount.value +=
1;
4168 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4170 promiseCapability['[[Reject]]'].call(undefined, value);
4171 return promiseCapability['[[Promise]]'];
4177 //
25.4.4.1.1 Promise.all Resolve Element Functions
4179 function PromiseAllResolveElementFunction() {
4180 var F = function(x) {
4181 var alreadyCalled = F['[[AlreadyCalled]]'];
4182 if (alreadyCalled.value) return undefined;
4183 alreadyCalled.value = true;
4184 var index = F['[[Index]]'];
4185 var values = F['[[Values]]'];
4186 var promiseCapability = F['[[Capabilities]]'];
4187 var remainingElementsCount = F['[[RemainingElements]]'];
4191 promiseCapability['[[Reject]]'].call(undefined, result);
4192 return promiseCapability['[[Promise]]'];
4194 remainingElementsCount.value -=
1;
4195 if (remainingElementsCount.value ===
0)
4196 return promiseCapability['[[Resolve]]'].call(undefined, values);
4202 //
25.4.4.2 Promise.prototype
4204 Promise.prototype = {};
4206 //
25.4.4.3 Promise.race ( iterable )
4208 define(Promise, 'race', function race(iterable) {
4209 var c = strict(this);
4210 var promiseCapability = NewPromiseCapability(c);
4212 var iterator = GetIterator(iterable);
4214 promiseCapability['[[Reject]]'].call(undefined, value);
4215 return promiseCapability['[[Promise]]'];
4219 var next = IteratorStep(iterator);
4221 promiseCapability['[[Reject]]'].call(undefined, value);
4222 return promiseCapability['[[Promise]]'];
4224 if (!next) return promiseCapability['[[Promise]]'];
4226 var nextValue = IteratorValue(next);
4228 promiseCapability['[[Reject]]'].call(undefined, value);
4229 return promiseCapability['[[Promise]]'];
4232 var nextPromise = c.resolve(nextValue);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4240 promiseCapability['[[Reject]]'].call(undefined, value);
4241 return promiseCapability['[[Promise]]'];
4246 //
25.4.4.4 Promise.reject ( r )
4248 define(Promise, 'reject', function reject(r) {
4249 var c = strict(this);
4250 var promiseCapability = NewPromiseCapability(c);
4251 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4252 return promiseCapability['[[Promise]]'];
4255 //
25.4.4.5 Promise.resolve ( x )
4257 define(Promise, 'resolve', function resolve(x) {
4258 var c = strict(this);
4260 var constructor = x['[[PromiseConstructor]]'];
4261 if (SameValue(constructor, c)) return x;
4263 var promiseCapability = NewPromiseCapability(c);
4264 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4265 return promiseCapability['[[Promise]]'];
4268 //
25.4.4.6 Promise [ @@create ] ( )
4269 //
25.4.4.6.1 AllocatePromise ( constructor )
4270 //
25.4.5 Properties of the Promise Prototype Object
4271 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4273 define(Promise.prototype, 'catch', function catch_(onRejected) {
4275 return promise.then(undefined, onRejected);
4278 //
25.4.5.2 Promise.prototype.constructor
4280 Promise.prototype.constructor = Promise;
4282 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4284 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4286 if (!IsPromise(promise)) throw TypeError();
4287 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4288 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4289 var c = promise.constructor;
4290 var promiseCapability = NewPromiseCapability(c);
4291 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4292 '[[Handler]]': onFulfilled };
4293 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4294 '[[Handler]]': onRejected };
4295 if (promise['[[PromiseState]]'] === 'pending') {
4296 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4297 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4298 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4299 var value = promise['[[PromiseResult]]'];
4300 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4301 } else if (promise['[[PromiseState]]'] === 'rejected') {
4302 var reason = promise['[[PromiseResult]]'];
4303 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4305 return promiseCapability['[[Promise]]'];
4308 //
25.4.6 Properties of Promise Instances
4310 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4311 global.Promise = Promise;
4313 // Patch early Promise.cast vs. Promise.resolve implementations
4314 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4317 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4318 define(Promise.prototype, $$toStringTag, 'Promise');
4320 // ---------------------------------------
4322 // ---------------------------------------
4325 //
26.1 The Reflect Object
4326 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4327 global.Reflect = {};
4329 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4332 function apply(target, thisArgument, argumentsList) {
4333 if (!IsCallable(target)) throw TypeError();
4334 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4337 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4339 Reflect, 'construct',
4340 function construct(target, argumentsList) {
4341 return __cons(target, argumentsList);
4344 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4346 Reflect, 'defineProperty',
4347 function defineProperty(target, propertyKey, attributes) {
4349 Object.defineProperty(target, propertyKey, attributes);
4356 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4358 Reflect, 'deleteProperty',
4359 function deleteProperty(target,name) {
4361 delete target[name];
4362 return !HasOwnProperty(target, name);
4368 //
26.1.5 Reflect.enumerate ( target )
4370 Reflect, 'enumerate',
4371 function enumerate(target) {
4372 target = ToObject(target);
4373 var iterator = Enumerate(target);
4377 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4380 function get(target, name, receiver) {
4381 target = ToObject(target);
4382 name = String(name);
4383 receiver = (receiver === undefined) ? target : ToObject(receiver);
4384 var desc = getPropertyDescriptor(target, name);
4385 if (desc && 'get' in desc)
4386 return Function.prototype.call.call(desc['get'], receiver);
4387 return target[name];
4390 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4392 Reflect, 'getOwnPropertyDescriptor',
4393 Object.getOwnPropertyDescriptor);
4395 //
26.1.8 Reflect.getPrototypeOf ( target )
4397 Reflect, 'getPrototypeOf',
4398 Object.getPrototypeOf);
4400 //
26.1.9 Reflect.has ( target, propertyKey )
4403 function has(target,name) {
4404 return String(name) in ToObject(target);
4407 //
26.1.10 Reflect.isExtensible (target)
4409 Reflect, 'isExtensible',
4410 Object.isExtensible);
4412 //
26.1.11 Reflect.ownKeys ( target )
4415 function ownKeys(target) {
4416 var obj = ToObject(target);
4417 return Object.getOwnPropertyNames(obj);
4420 //
26.1.12 Reflect.preventExtensions ( target )
4422 Reflect, 'preventExtensions',
4423 function preventExtensions(target) {
4424 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4427 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4430 function set(target, name, value, receiver) {
4431 target = ToObject(target);
4432 name = String(name);
4433 receiver = (receiver === undefined) ? target : ToObject(receiver);
4434 var desc = getPropertyDescriptor(target, name);
4436 if (desc && 'set' in desc)
4437 Function.prototype.call.call(desc['set'], receiver, value);
4439 target[name] = value;
4446 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4448 Reflect, 'setPrototypeOf',
4449 function setPrototypeOf(target, proto) {
4451 target.__proto__ = proto;
4452 return Reflect.getPrototypeOf(target) === proto;
4460 // ---------------------------------------
4461 //
26.2 Proxy Objects
4462 // ---------------------------------------
4464 // Not polyfillable.
4468 // This helper is defined outside the main scope so that the use of
4469 // 'eval' does not taint the scope for minifiers.
4470 function __cons(t, a) {
4471 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4474 <script>(function (root) {
4477 /***** unorm.js *****/
4480 * UnicodeNormalizer
1.0.0
4481 * Copyright (c)
2008 Matsuza
4482 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
4483 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
4487 var DEFAULT_FEATURE = [null,
0, {}];
4488 var CACHE_THRESHOLD =
10;
4489 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
4490 var NCount = VCount * TCount; //
588
4491 var SCount = LCount * NCount; //
11172
4493 var UChar = function(cp, feature){
4494 this.codepoint = cp;
4495 this.feature = feature;
4500 var cacheCounter = [];
4501 for (var i =
0; i <=
0xFF; ++i){
4502 cacheCounter[i] =
0;
4505 function fromCache(next, cp, needFeature){
4506 var ret = cache[cp];
4508 ret = next(cp, needFeature);
4509 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
4516 function fromData(next, cp, needFeature){
4517 var hash = cp &
0xFF00;
4518 var dunit = UChar.udata[hash] || {};
4520 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
4522 function fromCpOnly(next, cp, needFeature){
4523 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
4525 function fromRuleBasedJamo(next, cp, needFeature){
4527 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
4528 return next(cp, needFeature);
4530 if(LBase <= cp && cp < LBase + LCount){
4532 var base = (cp - LBase) * VCount;
4533 for (j =
0; j < VCount; ++j){
4534 c[VBase + j] = SBase + TCount * (j + base);
4536 return new UChar(cp, [,,c]);
4539 var SIndex = cp - SBase;
4540 var TIndex = SIndex % TCount;
4543 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
4545 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
4547 for (j =
1; j < TCount; ++j){
4548 feature[
2][TBase + j] = cp + j;
4551 return new UChar(cp, feature);
4553 function fromCpFilter(next, cp, needFeature){
4554 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
4557 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
4559 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
4560 return function (cp, needFeature) {
4561 return strategy(next, cp, needFeature);
4565 UChar.isHighSurrogate = function(cp){
4566 return cp
>=
0xD800 && cp <=
0xDBFF;
4568 UChar.isLowSurrogate = function(cp){
4569 return cp
>=
0xDC00 && cp <=
0xDFFF;
4572 UChar.prototype.prepFeature = function(){
4574 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
4578 UChar.prototype.toString = function(){
4579 if(this.codepoint <
0x10000){
4580 return String.fromCharCode(this.codepoint);
4582 var x = this.codepoint -
0x10000;
4583 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
4587 UChar.prototype.getDecomp = function(){
4589 return this.feature[
0] || null;
4592 UChar.prototype.isCompatibility = function(){
4594 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
4596 UChar.prototype.isExclude = function(){
4598 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
4600 UChar.prototype.getCanonicalClass = function(){
4602 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
4604 UChar.prototype.getComposite = function(following){
4606 if(!this.feature[
2]){
4609 var cp = this.feature[
2][following.codepoint];
4610 return cp ? UChar.fromCharCode(cp) : null;
4613 var UCharIterator = function(str){
4617 UCharIterator.prototype.next = function(){
4618 if(!!this.str && this.cursor < this.str.length){
4619 var cp = this.str.charCodeAt(this.cursor++);
4621 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
4622 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
4625 return UChar.fromCharCode(cp);
4632 var RecursDecompIterator = function(it, cano){
4634 this.canonical = cano;
4638 RecursDecompIterator.prototype.next = function(){
4639 function recursiveDecomp(cano, uchar){
4640 var decomp = uchar.getDecomp();
4641 if(!!decomp && !(cano && uchar.isCompatibility())){
4643 for(var i =
0; i < decomp.length; ++i){
4644 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
4645 ret = ret.concat(a);
4652 if(this.resBuf.length ===
0){
4653 var uchar = this.it.next();
4657 this.resBuf = recursiveDecomp(this.canonical, uchar);
4659 return this.resBuf.shift();
4662 var DecompIterator = function(it){
4667 DecompIterator.prototype.next = function(){
4669 if(this.resBuf.length ===
0){
4671 var uchar = this.it.next();
4675 cc = uchar.getCanonicalClass();
4676 var inspt = this.resBuf.length;
4678 for(; inspt
> 0; --inspt){
4679 var uchar2 = this.resBuf[inspt -
1];
4680 var cc2 = uchar2.getCanonicalClass();
4686 this.resBuf.splice(inspt,
0, uchar);
4689 return this.resBuf.shift();
4692 var CompIterator = function(it){
4696 this.lastClass = null;
4699 CompIterator.prototype.next = function(){
4700 while(this.resBuf.length ===
0){
4701 var uchar = this.it.next();
4703 this.resBuf = this.procBuf;
4707 if(this.procBuf.length ===
0){
4708 this.lastClass = uchar.getCanonicalClass();
4709 this.procBuf.push(uchar);
4711 var starter = this.procBuf[
0];
4712 var composite = starter.getComposite(uchar);
4713 var cc = uchar.getCanonicalClass();
4714 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
4715 this.procBuf[
0] = composite;
4718 this.resBuf = this.procBuf;
4721 this.lastClass = cc;
4722 this.procBuf.push(uchar);
4726 return this.resBuf.shift();
4729 var createIterator = function(mode, str){
4732 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
4734 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
4736 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
4738 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
4740 throw mode +
" is invalid";
4742 var normalize = function(mode, str){
4743 var it = createIterator(mode, str);
4746 while(!!(uchar = it.next())){
4747 ret += uchar.toString();
4754 return normalize(
"NFD", str);
4758 return normalize(
"NFKD", str);
4762 return normalize(
"NFC", str);
4766 return normalize(
"NFKC", str);
4771 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]]},
4772 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]},
4773 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]},
4774 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]},
4775 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]]},
4776 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]},
4777 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]},
4778 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]},
4779 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]},
4780 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]},
4781 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]},
4782 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]},
4783 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]},
4784 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]]},
4785 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]},
4786 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]},
4787 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]},
4788 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]},
4789 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
4790 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]},
4791 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
4792 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
4793 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
4794 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
4796 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
4797 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]},
4798 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]},
4799 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]},
4800 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]},
4801 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]]},
4802 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}]},
4803 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]},
4804 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}]},
4805 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]]},
4806 8960:{
9001:[[
12296]],
9002:[[
12297]]},
4807 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]},
4808 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]},
4809 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
4810 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]},
4811 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
4812 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]},
4813 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]},
4814 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]},
4815 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]},
4816 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]},
4817 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
4818 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
4819 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]},
4820 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
4821 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]},
4822 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
4823 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
4824 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
4825 48128:{
113822:[,
1]},
4826 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]},
4827 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
4828 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]},
4829 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]},
4830 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]},
4831 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]},
4832 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
4833 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]},
4834 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]},
4835 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]},
4836 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]]},
4837 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]]},
4838 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]]},
4839 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]},
4840 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]},
4841 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]},
4842 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]},
4843 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]}
4847 /***** Module to export */
4855 /*globals module:true,define:true*/
4858 if (typeof module ===
"object") {
4859 module.exports = unorm;
4862 } else if (typeof define ===
"function" && define.amd) {
4863 define(
"unorm", function () {
4872 /***** Export as shim for String::normalize method *****/
4874 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
4876 21.1.3.12 String.prototype.normalize(
form=
"NFC")
4877 When the normalize method is called with one argument form, the following steps are taken:
4879 1. Let O be CheckObjectCoercible(this value).
4880 2. Let S be ToString(O).
4881 3. ReturnIfAbrupt(S).
4882 4. If form is not provided or undefined let form be
"NFC".
4883 5. Let f be ToString(form).
4884 6. ReturnIfAbrupt(f).
4885 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
4886 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.
4889 The length property of the normalize method is
0.
4891 *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.
4893 unorm.shimApplied = false;
4895 if (!String.prototype.normalize) {
4896 String.prototype.normalize = function(form) {
4897 var str =
"" + this;
4898 form = form === undefined ?
"NFC" : form;
4900 if (form ===
"NFC") {
4901 return unorm.nfc(str);
4902 } else if (form ===
"NFD") {
4903 return unorm.nfd(str);
4904 } else if (form ===
"NFKC") {
4905 return unorm.nfkc(str);
4906 } else if (form ===
"NFKD") {
4907 return unorm.nfkd(str);
4909 throw new RangeError(
"Invalid normalization form: " + form);
4913 unorm.shimApplied = true;
4917 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
4918 !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)
4919 },_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))
4920 },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});
4923 * Bootstrap v3.2.0 (http://getbootstrap.com)
4924 * Copyright 2011-2014 Twitter, Inc.
4925 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4927 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>
4928 <script>(function() {
4932 * Extend an Object with another Object's properties.
4934 * The source objects are specified as additional arguments.
4936 * @param dst Object the object to extend.
4938 * @return Object the final object.
4940 var _extend = function(dst) {
4941 var sources = Array.prototype.slice.call(arguments,
1);
4942 for (var i=
0; i
<sources.length; ++i) {
4943 var src = sources[i];
4944 for (var p in src) {
4945 if (src.hasOwnProperty(p)) dst[p] = src[p];
4953 * Defer execution of given function.
4954 * @param {Function} func
4956 var _defer = function(func) {
4957 if (typeof setImmediate === 'function') {
4958 return setImmediate(func);
4960 return setTimeout(func,
0);
4965 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
4969 * Calculate levenshtein distance of the two strings.
4971 * @param str1 String the first string.
4972 * @param str2 String the second string.
4973 * @return Integer the levenshtein distance (
0 and above).
4975 get: function(str1, str2) {
4977 if (str1 === str2) return
0;
4978 if (str1.length ===
0) return str2.length;
4979 if (str2.length ===
0) return str1.length;
4982 var prevRow = new Array(str2.length +
1),
4983 curCol, nextCol, i, j, tmp;
4985 // initialise previous row
4986 for (i=
0; i
<prevRow.length; ++i) {
4990 // calculate current row distance from previous row
4991 for (i=
0; i
<str1.length; ++i) {
4994 for (j=
0; j
<str2.length; ++j) {
4998 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
5001 if (nextCol
> tmp) {
5005 tmp = prevRow[j +
1] +
1;
5006 if (nextCol
> tmp) {
5010 // copy current col value into previous (in preparation for next iteration)
5011 prevRow[j] = curCol;
5014 // copy last col value into previous (in preparation for next iteration)
5015 prevRow[j] = nextCol;
5022 * Asynchronously calculate levenshtein distance of the two strings.
5024 * @param str1 String the first string.
5025 * @param str2 String the second string.
5026 * @param cb Function callback function with signature: function(Error err, int distance)
5027 * @param [options] Object additional options.
5028 * @param [options.progress] Function progress callback with signature: function(percentComplete)
5030 getAsync: function(str1, str2, cb, options) {
5031 options = _extend({}, {
5036 if (str1 === str2) return cb(null,
0);
5037 if (str1.length ===
0) return cb(null, str2.length);
5038 if (str2.length ===
0) return cb(null, str1.length);
5041 var prevRow = new Array(str2.length +
1),
5044 startTime, currentTime;
5046 // initialise previous row
5047 for (i=
0; i
<prevRow.length; ++i) {
5055 var __calculate = function() {
5057 startTime = new Date().valueOf();
5058 currentTime = startTime;
5060 // keep going until one second has elapsed
5061 while (currentTime - startTime <
1000) {
5062 // reached end of current row?
5063 if (str2.length <= (++j)) {
5064 // copy current into previous (in preparation for next iteration)
5065 prevRow[j] = nextCol;
5067 // if already done all chars
5068 if (str1.length <= (++i)) {
5069 return cb(null, nextCol);
5071 // else if we have more left to do
5082 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
5085 if (nextCol
> tmp) {
5089 tmp = prevRow[j +
1] +
1;
5090 if (nextCol
> tmp) {
5094 // copy current into previous (in preparation for next iteration)
5095 prevRow[j] = curCol;
5098 currentTime = new Date().valueOf();
5101 // send a progress update?
5102 if (null !== options.progress) {
5104 options.progress.call(null, (i *
100.0/ str1.length));
5106 return cb('Progress callback: ' + err.toString());
5111 _defer(__calculate);
5120 if (typeof define !== "undefined" && define !== null && define.amd) {
5126 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
5127 module.exports = Levenshtein;
5130 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
5131 self.Levenshtein = Levenshtein;
5133 // browser main thread
5134 else if (typeof window !== "undefined" && window !== null) {
5135 window.Levenshtein = Levenshtein;
5140 <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},
5141 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;
5142 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-
5143 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]=
5144 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},
5145 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=
5146 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-
5147 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,
5148 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=
5149 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&&
5150 (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,
5151 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)-
5152 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:"+
5153 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:"+
5154 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+
5155 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),
5156 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>
5157 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],
5158 [
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,
5159 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,
5160 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,
5161 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,
5162 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,
5163 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*
5164 (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,
5165 correctLevel:
2,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),
5166 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",
5167 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
5169 <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.bitcoin = 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){
5170 // (public) Constructor
5171 function BigInteger(a, b, c) {
5172 if (!(this instanceof BigInteger))
5173 return new BigInteger(a, b, c)
5176 if (
"number" == typeof a) this.fromNumber(a, b, c)
5177 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
5178 else this.fromString(a, b)
5182 var proto = BigInteger.prototype
5184 // duck-typed isBigInteger
5185 proto.__bigi = require('../package.json').version
5186 BigInteger.isBigInteger = function (obj, check_ver) {
5187 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
5193 // am: Compute w_j += (x*this_i), propagate carries,
5194 // c is initial carry, returns final carry.
5195 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
5196 // We need to select the fastest one that works in this environment.
5198 // am1: use a single mult and divide to get the high bits,
5199 // max digit bits should be
26 because
5200 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
5201 function am1(i, x, w, j, c, n) {
5203 var v = x * this[i++] + w[j] + c
5204 c = Math.floor(v /
0x4000000)
5205 w[j++] = v &
0x3ffffff
5209 // am2 avoids a big mult-and-extract completely.
5210 // Max digit bits should be <=
30 because we do bitwise ops
5211 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
5212 function am2(i, x, w, j, c, n) {
5213 var xl = x &
0x7fff,
5216 var l = this[i] &
0x7fff
5217 var h = this[i++]
>> 15
5218 var m = xh * l + h * xl
5219 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
5220 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
5221 w[j++] = l &
0x3fffffff
5225 // Alternately, set max digit bits to
28 since some
5226 // browsers slow down when dealing with
32-bit numbers.
5227 function am3(i, x, w, j, c, n) {
5228 var xl = x &
0x3fff,
5231 var l = this[i] &
0x3fff
5232 var h = this[i++]
>> 14
5233 var m = xh * l + h * xl
5234 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
5235 c = (l
>> 28) + (m
>> 14) + xh * h
5236 w[j++] = l &
0xfffffff
5242 BigInteger.prototype.am = am1
5245 BigInteger.prototype.DB = dbits
5246 BigInteger.prototype.DM = ((
1 << dbits) -
1)
5247 var DV = BigInteger.prototype.DV = (
1 << dbits)
5250 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
5251 BigInteger.prototype.F1 = BI_FP - dbits
5252 BigInteger.prototype.F2 =
2 * dbits - BI_FP
5254 // Digit conversions
5255 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
5256 var BI_RC = new Array()
5258 rr =
"0".charCodeAt(
0)
5259 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
5260 rr =
"a".charCodeAt(
0)
5261 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
5262 rr =
"A".charCodeAt(
0)
5263 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
5265 function int2char(n) {
5266 return BI_RM.charAt(n)
5269 function intAt(s, i) {
5270 var c = BI_RC[s.charCodeAt(i)]
5271 return (c == null) ? -
1 : c
5274 // (protected) copy this to r
5275 function bnpCopyTo(r) {
5276 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
5281 // (protected) set from integer value x, -DV <= x < DV
5282 function bnpFromInt(x) {
5284 this.s = (x <
0) ? -
1 :
0
5285 if (x
> 0) this[
0] = x
5286 else if (x < -
1) this[
0] = x + DV
5290 // return bigint initialized to value
5292 var r = new BigInteger()
5297 // (protected) set from string and radix
5298 function bnpFromString(s, b) {
5303 else if (b ==
8) k =
3
5304 else if (b ==
256) k =
8; // byte array
5305 else if (b ==
2) k =
1
5306 else if (b ==
32) k =
5
5307 else if (b ==
4) k =
2
5309 self.fromRadix(s, b)
5318 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
5320 if (s.charAt(i) == "-") mi = true
5326 else if (sh + k
> self.DB) {
5327 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
5328 self[self.t++] = (x
>> (self.DB - sh))
5330 self[self.t -
1] |= x << sh
5332 if (sh
>= self.DB) sh -= self.DB
5334 if (k ==
8 && (s[
0] &
0x80) !=
0) {
5336 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
5339 if (mi) BigInteger.ZERO.subTo(self, self)
5342 // (protected) clamp off excess high words
5343 function bnpClamp() {
5344 var c = this.s & this.DM
5345 while (this.t
> 0 && this[this.t -
1] == c)--this.t
5348 // (public) return string representation in given radix
5349 function bnToString(b) {
5351 if (self.s <
0) return
"-" + self.negate()
5355 else if (b ==
8) k =
3
5356 else if (b ==
2) k =
1
5357 else if (b ==
32) k =
5
5358 else if (b ==
4) k =
2
5359 else return self.toRadix(b)
5360 var km = (
1 << k) -
1,
5364 var p = self.DB - (i * self.DB) % k
5366 if (p < self.DB && (d = self[i]
>> p)
> 0) {
5372 d = (self[i] & ((
1 << p) -
1)) << (k - p)
5373 d |= self[--i]
>> (p += self.DB - k)
5375 d = (self[i]
>> (p -= k)) & km
5382 if (m) r += int2char(d)
5389 function bnNegate() {
5390 var r = new BigInteger()
5391 BigInteger.ZERO.subTo(this, r)
5397 return (this.s <
0) ? this.negate() : this
5400 // (public) return + if this
> a, - if this < a,
0 if equal
5401 function bnCompareTo(a) {
5402 var r = this.s - a.s
5403 if (r !=
0) return r
5406 if (r !=
0) return (this.s <
0) ? -r : r
5408 if ((r = this[i] - a[i]) !=
0) return r
5412 // returns bit length of the integer x
5416 if ((t = x
>>> 16) !=
0) {
5420 if ((t = x
>> 8) !=
0) {
5424 if ((t = x
>> 4) !=
0) {
5428 if ((t = x
>> 2) !=
0) {
5432 if ((t = x
>> 1) !=
0) {
5439 // (public) return the number of bits in
"this"
5440 function bnBitLength() {
5441 if (this.t <=
0) return
0
5442 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
5445 // (public) return the number of bytes in
"this"
5446 function bnByteLength() {
5447 return this.bitLength()
>> 3
5450 // (protected) r = this << n*DB
5451 function bnpDLShiftTo(n, r) {
5453 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
5454 for (i = n -
1; i
>=
0; --i) r[i] =
0
5459 // (protected) r = this
>> n*DB
5460 function bnpDRShiftTo(n, r) {
5461 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
5462 r.t = Math.max(this.t - n,
0)
5466 // (protected) r = this << n
5467 function bnpLShiftTo(n, r) {
5469 var bs = n % self.DB
5470 var cbs = self.DB - bs
5471 var bm = (
1 << cbs) -
1
5472 var ds = Math.floor(n / self.DB),
5473 c = (self.s << bs) & self.DM,
5475 for (i = self.t -
1; i
>=
0; --i) {
5476 r[i + ds +
1] = (self[i]
>> cbs) | c
5477 c = (self[i] & bm) << bs
5479 for (i = ds -
1; i
>=
0; --i) r[i] =
0
5481 r.t = self.t + ds +
1
5486 // (protected) r = this
>> n
5487 function bnpRShiftTo(n, r) {
5490 var ds = Math.floor(n / self.DB)
5495 var bs = n % self.DB
5496 var cbs = self.DB - bs
5497 var bm = (
1 << bs) -
1
5498 r[
0] = self[ds]
>> bs
5499 for (var i = ds +
1; i < self.t; ++i) {
5500 r[i - ds -
1] |= (self[i] & bm) << cbs
5501 r[i - ds] = self[i]
>> bs
5503 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
5508 // (protected) r = this - a
5509 function bnpSubTo(a, r) {
5513 m = Math.min(a.t, self.t)
5516 r[i++] = c & self.DM
5521 while (i < self.t) {
5523 r[i++] = c & self.DM
5531 r[i++] = c & self.DM
5536 r.s = (c <
0) ? -
1 :
0
5537 if (c < -
1) r[i++] = self.DV + c
5538 else if (c
> 0) r[i++] = c
5543 // (protected) r = this * a, r != this,a (HAC
14.12)
5544 //
"this" should be the larger one if appropriate.
5545 function bnpMultiplyTo(a, r) {
5550 while (--i
>=
0) r[i] =
0
5551 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
5554 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
5557 // (protected) r = this^
2, r != this (HAC
14.16)
5558 function bnpSquareTo(r) {
5560 var i = r.t =
2 * x.t
5561 while (--i
>=
0) r[i] =
0
5562 for (i =
0; i < x.t -
1; ++i) {
5563 var c = x.am(i, x[i], r,
2 * i,
0,
1)
5564 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
5569 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
5574 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
5575 // r != q, this != m. q or r may be null.
5576 function bnpDivRemTo(m, q, r) {
5579 if (pm.t <=
0) return
5582 if (q != null) q.fromInt(
0)
5583 if (r != null) self.copyTo(r)
5586 if (r == null) r = new BigInteger()
5587 var y = new BigInteger(),
5590 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
5601 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
5602 var d1 = self.FV / yt,
5603 d2 = (
1 << self.F1) / yt,
5607 t = (q == null) ? new BigInteger() : q
5609 if (r.compareTo(t)
>=
0) {
5613 BigInteger.ONE.dlShiftTo(ys, t)
5614 t.subTo(y, y); // "negative" y so we can replace sub with am later
5615 while (y.t < ys) y[y.t++] =
0
5617 // Estimate quotient digit
5618 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
5619 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
5622 while (r[i] < --qd) r.subTo(t, r)
5627 if (ts != ms) BigInteger.ZERO.subTo(q, q)
5631 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
5632 if (ts <
0) BigInteger.ZERO.subTo(r, r)
5635 // (public) this mod a
5637 var r = new BigInteger()
5639 .divRemTo(a, null, r)
5640 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
5644 // Modular reduction using
"classic" algorithm
5645 function Classic(m) {
5649 function cConvert(x) {
5650 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
5654 function cRevert(x) {
5658 function cReduce(x) {
5659 x.divRemTo(this.m, null, x)
5662 function cMulTo(x, y, r) {
5667 function cSqrTo(x, r) {
5672 Classic.prototype.convert = cConvert
5673 Classic.prototype.revert = cRevert
5674 Classic.prototype.reduce = cReduce
5675 Classic.prototype.mulTo = cMulTo
5676 Classic.prototype.sqrTo = cSqrTo
5678 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
5682 // xy(
2-xy) = (
1+km)(
1-km)
5683 // x[y(
2-xy)] =
1-k^
2m^
2
5684 // x[y(
2-xy)] ==
1 (mod m^
2)
5685 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
5686 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
5687 // JS multiply "overflows" differently from C/C++, so care is needed here.
5688 function bnpInvDigit() {
5689 if (this.t <
1) return
0
5691 if ((x &
1) ==
0) return
0
5692 var y = x &
3; // y ==
1/x mod
2^
2
5693 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
5694 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
5695 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
5696 // last step - calculate inverse mod DV directly
5697 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
5698 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
5699 // we really want the negative inverse, and -DV < y < DV
5700 return (y
> 0) ? this.DV - y : -y
5703 // Montgomery reduction
5704 function Montgomery(m) {
5706 this.mp = m.invDigit()
5707 this.mpl = this.mp &
0x7fff
5708 this.mph = this.mp
>> 15
5709 this.um = (
1 << (m.DB -
15)) -
1
5714 function montConvert(x) {
5715 var r = new BigInteger()
5717 .dlShiftTo(this.m.t, r)
5718 r.divRemTo(this.m, null, r)
5719 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
5724 function montRevert(x) {
5725 var r = new BigInteger()
5731 // x = x/R mod m (HAC
14.32)
5732 function montReduce(x) {
5733 while (x.t <= this.mt2) // pad x so am has enough room later
5735 for (var i =
0; i < this.m.t; ++i) {
5736 // faster way of calculating u0 = x[i]*mp mod DV
5737 var j = x[i] &
0x7fff
5738 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
5739 // use am to combine the multiply-shift-add into one call
5741 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
5743 while (x[j]
>= x.DV) {
5749 x.drShiftTo(this.m.t, x)
5750 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
5753 // r = "x^
2/R mod m"; x != r
5754 function montSqrTo(x, r) {
5759 // r = "xy/R mod m"; x,y != r
5760 function montMulTo(x, y, r) {
5765 Montgomery.prototype.convert = montConvert
5766 Montgomery.prototype.revert = montRevert
5767 Montgomery.prototype.reduce = montReduce
5768 Montgomery.prototype.mulTo = montMulTo
5769 Montgomery.prototype.sqrTo = montSqrTo
5771 // (protected) true iff this is even
5772 function bnpIsEven() {
5773 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
5776 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
5777 function bnpExp(e, z) {
5778 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
5779 var r = new BigInteger(),
5780 r2 = new BigInteger(),
5781 g = z.convert(this),
5786 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
5796 // (public) this^e % m,
0 <= e <
2^
32
5797 function bnModPowInt(e, m) {
5799 if (e <
256 || m.isEven()) z = new Classic(m)
5800 else z = new Montgomery(m)
5801 return this.exp(e, z)
5805 proto.copyTo = bnpCopyTo
5806 proto.fromInt = bnpFromInt
5807 proto.fromString = bnpFromString
5808 proto.clamp = bnpClamp
5809 proto.dlShiftTo = bnpDLShiftTo
5810 proto.drShiftTo = bnpDRShiftTo
5811 proto.lShiftTo = bnpLShiftTo
5812 proto.rShiftTo = bnpRShiftTo
5813 proto.subTo = bnpSubTo
5814 proto.multiplyTo = bnpMultiplyTo
5815 proto.squareTo = bnpSquareTo
5816 proto.divRemTo = bnpDivRemTo
5817 proto.invDigit = bnpInvDigit
5818 proto.isEven = bnpIsEven
5822 proto.toString = bnToString
5823 proto.negate = bnNegate
5825 proto.compareTo = bnCompareTo
5826 proto.bitLength = bnBitLength
5827 proto.byteLength = bnByteLength
5829 proto.modPowInt = bnModPowInt
5832 function bnClone() {
5833 var r = new BigInteger()
5838 // (public) return value as integer
5839 function bnIntValue() {
5841 if (this.t ==
1) return this[
0] - this.DV
5842 else if (this.t ==
0) return -
1
5843 } else if (this.t ==
1) return this[
0]
5844 else if (this.t ==
0) return
0
5845 // assumes
16 < DB <
32
5846 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
5849 // (public) return value as byte
5850 function bnByteValue() {
5851 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
5854 // (public) return value as short (assumes DB
>=
16)
5855 function bnShortValue() {
5856 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
5859 // (protected) return x s.t. r^x < DV
5860 function bnpChunkSize(r) {
5861 return Math.floor(Math.LN2 * this.DB / Math.log(r))
5864 // (public)
0 if this ==
0,
1 if this
> 0
5865 function bnSigNum() {
5866 if (this.s <
0) return -
1
5867 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
5871 // (protected) convert to radix string
5872 function bnpToRadix(b) {
5873 if (b == null) b =
10
5874 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
5875 var cs = this.chunkSize(b)
5876 var a = Math.pow(b, cs)
5878 y = new BigInteger(),
5879 z = new BigInteger(),
5881 this.divRemTo(d, y, z)
5882 while (y.signum()
> 0) {
5883 r = (a + z.intValue())
5892 // (protected) convert from radix string
5893 function bnpFromRadix(s, b) {
5896 if (b == null) b =
10
5897 var cs = self.chunkSize(b)
5898 var d = Math.pow(b, cs),
5902 for (var i =
0; i < s.length; ++i) {
5905 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
5911 self.dAddOffset(w,
0)
5917 self.dMultiply(Math.pow(b, j))
5918 self.dAddOffset(w,
0)
5920 if (mi) BigInteger.ZERO.subTo(self, self)
5923 // (protected) alternate constructor
5924 function bnpFromNumber(a, b, c) {
5926 if (
"number" == typeof b) {
5927 // new BigInteger(int,int,RNG)
5928 if (a <
2) self.fromInt(
1)
5930 self.fromNumber(a, c)
5931 if (!self.testBit(a -
1)) // force MSB set
5932 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
5933 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
5934 while (!self.isProbablePrime(b)) {
5935 self.dAddOffset(
2,
0)
5936 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
5940 // new BigInteger(int,RNG)
5941 var x = new Array(),
5943 x.length = (a
>> 3) +
1
5945 if (t
> 0) x[
0] &= ((
1 << t) -
1)
5947 self.fromString(x,
256)
5951 // (public) convert to bigendian byte array
5952 function bnToByteArray() {
5957 var p = self.DB - (i * self.DB) %
8,
5960 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
5961 r[k++] = d | (self.s << (self.DB - p))
5964 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
5965 d |= self[--i]
>> (p += self.DB -
8)
5967 d = (self[i]
>> (p -=
8)) &
0xff
5973 if ((d &
0x80) !=
0) d |= -
256
5974 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
5975 if (k
> 0 || d != self.s) r[k++] = d
5981 function bnEquals(a) {
5982 return (this.compareTo(a) ==
0)
5986 return (this.compareTo(a) <
0) ? this : a
5990 return (this.compareTo(a)
> 0) ? this : a
5993 // (protected) r = this op a (bitwise)
5994 function bnpBitwiseTo(a, op, r) {
5996 var i, f, m = Math.min(a.t, self.t)
5997 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
6000 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
6003 f = self.s & self.DM
6004 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
6007 r.s = op(self.s, a.s)
6011 // (public) this & a
6012 function op_and(x, y) {
6017 var r = new BigInteger()
6018 this.bitwiseTo(a, op_and, r)
6022 // (public) this | a
6023 function op_or(x, y) {
6028 var r = new BigInteger()
6029 this.bitwiseTo(a, op_or, r)
6033 // (public) this ^ a
6034 function op_xor(x, y) {
6039 var r = new BigInteger()
6040 this.bitwiseTo(a, op_xor, r)
6044 // (public) this & ~a
6045 function op_andnot(x, y) {
6049 function bnAndNot(a) {
6050 var r = new BigInteger()
6051 this.bitwiseTo(a, op_andnot, r)
6057 var r = new BigInteger()
6058 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
6064 // (public) this << n
6065 function bnShiftLeft(n) {
6066 var r = new BigInteger()
6067 if (n <
0) this.rShiftTo(-n, r)
6068 else this.lShiftTo(n, r)
6072 // (public) this
>> n
6073 function bnShiftRight(n) {
6074 var r = new BigInteger()
6075 if (n <
0) this.lShiftTo(-n, r)
6076 else this.rShiftTo(n, r)
6080 // return index of lowest
1-bit in x, x <
2^
31
6082 if (x ==
0) return -
1
6084 if ((x &
0xffff) ==
0) {
6088 if ((x &
0xff) ==
0) {
6092 if ((x &
0xf) ==
0) {
6100 if ((x &
1) ==
0)++r
6104 // (public) returns index of lowest
1-bit (or -
1 if none)
6105 function bnGetLowestSetBit() {
6106 for (var i =
0; i < this.t; ++i)
6107 if (this[i] !=
0) return i * this.DB + lbit(this[i])
6108 if (this.s <
0) return this.t * this.DB
6112 // return number of
1 bits in x
6122 // (public) return number of set bits
6123 function bnBitCount() {
6125 x = this.s & this.DM
6126 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
6130 // (public) true iff nth bit is set
6131 function bnTestBit(n) {
6132 var j = Math.floor(n / this.DB)
6133 if (j
>= this.t) return (this.s !=
0)
6134 return ((this[j] & (
1 << (n % this.DB))) !=
0)
6137 // (protected) this op (
1<
<n)
6138 function bnpChangeBit(n, op) {
6139 var r = BigInteger.ONE.shiftLeft(n)
6140 this.bitwiseTo(r, op, r)
6144 // (public) this | (
1<
<n)
6145 function bnSetBit(n) {
6146 return this.changeBit(n, op_or)
6149 // (public) this & ~(
1<
<n)
6150 function bnClearBit(n) {
6151 return this.changeBit(n, op_andnot)
6154 // (public) this ^ (
1<
<n)
6155 function bnFlipBit(n) {
6156 return this.changeBit(n, op_xor)
6159 // (protected) r = this + a
6160 function bnpAddTo(a, r) {
6165 m = Math.min(a.t, self.t)
6168 r[i++] = c & self.DM
6173 while (i < self.t) {
6175 r[i++] = c & self.DM
6183 r[i++] = c & self.DM
6188 r.s = (c <
0) ? -
1 :
0
6189 if (c
> 0) r[i++] = c
6190 else if (c < -
1) r[i++] = self.DV + c
6195 // (public) this + a
6197 var r = new BigInteger()
6202 // (public) this - a
6203 function bnSubtract(a) {
6204 var r = new BigInteger()
6209 // (public) this * a
6210 function bnMultiply(a) {
6211 var r = new BigInteger()
6212 this.multiplyTo(a, r)
6217 function bnSquare() {
6218 var r = new BigInteger()
6223 // (public) this / a
6224 function bnDivide(a) {
6225 var r = new BigInteger()
6226 this.divRemTo(a, r, null)
6230 // (public) this % a
6231 function bnRemainder(a) {
6232 var r = new BigInteger()
6233 this.divRemTo(a, null, r)
6237 // (public) [this/a,this%a]
6238 function bnDivideAndRemainder(a) {
6239 var q = new BigInteger(),
6240 r = new BigInteger()
6241 this.divRemTo(a, q, r)
6242 return new Array(q, r)
6245 // (protected) this *= n, this
>=
0,
1 < n < DV
6246 function bnpDMultiply(n) {
6247 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
6252 // (protected) this += n << w words, this
>=
0
6253 function bnpDAddOffset(n, w) {
6255 while (this.t <= w) this[this.t++] =
0
6257 while (this[w]
>= this.DV) {
6259 if (++w
>= this.t) this[this.t++] =
0
6265 function NullExp() {}
6271 function nMulTo(x, y, r) {
6275 function nSqrTo(x, r) {
6279 NullExp.prototype.convert = nNop
6280 NullExp.prototype.revert = nNop
6281 NullExp.prototype.mulTo = nMulTo
6282 NullExp.prototype.sqrTo = nSqrTo
6286 return this.exp(e, new NullExp())
6289 // (protected) r = lower n words of "this * a", a.t <= n
6290 // "this" should be the larger one if appropriate.
6291 function bnpMultiplyLowerTo(a, n, r) {
6292 var i = Math.min(this.t + a.t, n)
6293 r.s =
0; // assumes a,this
>=
0
6295 while (i
> 0) r[--i] =
0
6297 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
6298 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
6302 // (protected) r =
"this * a" without lower n words, n
> 0
6303 //
"this" should be the larger one if appropriate.
6304 function bnpMultiplyUpperTo(a, n, r) {
6306 var i = r.t = this.t + a.t - n
6307 r.s =
0; // assumes a,this
>=
0
6308 while (--i
>=
0) r[i] =
0
6309 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
6310 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
6315 // Barrett modular reduction
6316 function Barrett(m) {
6318 this.r2 = new BigInteger()
6319 this.q3 = new BigInteger()
6320 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
6321 this.mu = this.r2.divide(m)
6325 function barrettConvert(x) {
6326 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
6327 else if (x.compareTo(this.m) <
0) return x
6329 var r = new BigInteger()
6336 function barrettRevert(x) {
6340 // x = x mod m (HAC
14.42)
6341 function barrettReduce(x) {
6343 x.drShiftTo(self.m.t -
1, self.r2)
6344 if (x.t
> self.m.t +
1) {
6348 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
6349 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
6350 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
6352 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
6355 // r = x^
2 mod m; x != r
6356 function barrettSqrTo(x, r) {
6361 // r = x*y mod m; x,y != r
6362 function barrettMulTo(x, y, r) {
6367 Barrett.prototype.convert = barrettConvert
6368 Barrett.prototype.revert = barrettRevert
6369 Barrett.prototype.reduce = barrettReduce
6370 Barrett.prototype.mulTo = barrettMulTo
6371 Barrett.prototype.sqrTo = barrettSqrTo
6373 // (public) this^e % m (HAC
14.85)
6374 function bnModPow(e, m) {
6375 var i = e.bitLength(),
6378 if (i <=
0) return r
6379 else if (i <
18) k =
1
6380 else if (i <
48) k =
3
6381 else if (i <
144) k =
4
6382 else if (i <
768) k =
5
6386 else if (m.isEven())
6389 z = new Montgomery(m)
6392 var g = new Array(),
6396 g[
1] = z.convert(this)
6398 var g2 = new BigInteger()
6401 g[n] = new BigInteger()
6402 z.mulTo(g2, g[n -
2], g[n])
6409 r2 = new BigInteger(),
6413 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
6415 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
6416 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
6420 while ((w &
1) ==
0) {
6428 if (is1) { // ret ==
1, don't bother squaring or multiplying it
6437 if (n
> 0) z.sqrTo(r, r2)
6443 z.mulTo(r2, g[w], r)
6446 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
6460 // (public) gcd(this,a) (HAC
14.54)
6462 var x = (this.s <
0) ? this.negate() : this.clone()
6463 var y = (a.s <
0) ? a.negate() : a.clone()
6464 if (x.compareTo(y) <
0) {
6469 var i = x.getLowestSetBit(),
6470 g = y.getLowestSetBit()
6477 while (x.signum()
> 0) {
6478 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
6479 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
6480 if (x.compareTo(y)
>=
0) {
6488 if (g
> 0) y.lShiftTo(g, y)
6492 // (protected) this % n, n <
2^
26
6493 function bnpModInt(n) {
6494 if (n <=
0) return
0
6495 var d = this.DV % n,
6496 r = (this.s <
0) ? n -
1 :
0
6498 if (d ==
0) r = this[
0] % n
6500 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
6504 // (public)
1/this % m (HAC
14.61)
6505 function bnModInverse(m) {
6507 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
6514 while (u.signum() !=
0) {
6515 while (u.isEven()) {
6518 if (!a.isEven() || !b.isEven()) {
6523 } else if (!b.isEven()) b.subTo(m, b)
6526 while (v.isEven()) {
6529 if (!c.isEven() || !d.isEven()) {
6534 } else if (!d.isEven()) d.subTo(m, d)
6537 if (u.compareTo(v)
>=
0) {
6539 if (ac) a.subTo(c, a)
6543 if (ac) c.subTo(a, c)
6547 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
6548 if (d.compareTo(m)
>=
0) return d.subtract(m)
6549 if (d.signum() <
0) d.addTo(m, d)
6551 if (d.signum() <
0) return d.add(m)
6556 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
6557 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
6558 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
6559 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
6560 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
6561 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
6562 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
6563 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
6564 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
6565 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
6566 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
6569 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
6571 // (public) test primality with certainty
>=
1-
.5^t
6572 function bnIsProbablePrime(t) {
6573 var i, x = this.abs()
6574 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
6575 for (i =
0; i < lowprimes.length; ++i)
6576 if (x[
0] == lowprimes[i]) return true
6579 if (x.isEven()) return false
6581 while (i < lowprimes.length) {
6582 var m = lowprimes[i],
6584 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
6586 while (i < j) if (m % lowprimes[i++] ==
0) return false
6588 return x.millerRabin(t)
6591 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
6592 function bnpMillerRabin(t) {
6593 var n1 = this.subtract(BigInteger.ONE)
6594 var k = n1.getLowestSetBit()
6595 if (k <=
0) return false
6596 var r = n1.shiftRight(k)
6598 if (t
> lowprimes.length) t = lowprimes.length
6599 var a = new BigInteger(null)
6601 for (var i =
0; i < t; ++i) {
6603 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
6604 if (bases.indexOf(j) == -
1) break
6608 var y = a.modPow(r, this)
6609 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
6611 while (j++ < k && y.compareTo(n1) !=
0) {
6612 y = y.modPowInt(
2, this)
6613 if (y.compareTo(BigInteger.ONE) ==
0) return false
6615 if (y.compareTo(n1) !=
0) return false
6622 proto.chunkSize = bnpChunkSize
6623 proto.toRadix = bnpToRadix
6624 proto.fromRadix = bnpFromRadix
6625 proto.fromNumber = bnpFromNumber
6626 proto.bitwiseTo = bnpBitwiseTo
6627 proto.changeBit = bnpChangeBit
6628 proto.addTo = bnpAddTo
6629 proto.dMultiply = bnpDMultiply
6630 proto.dAddOffset = bnpDAddOffset
6631 proto.multiplyLowerTo = bnpMultiplyLowerTo
6632 proto.multiplyUpperTo = bnpMultiplyUpperTo
6633 proto.modInt = bnpModInt
6634 proto.millerRabin = bnpMillerRabin
6637 proto.clone = bnClone
6638 proto.intValue = bnIntValue
6639 proto.byteValue = bnByteValue
6640 proto.shortValue = bnShortValue
6641 proto.signum = bnSigNum
6642 proto.toByteArray = bnToByteArray
6643 proto.equals = bnEquals
6649 proto.andNot = bnAndNot
6651 proto.shiftLeft = bnShiftLeft
6652 proto.shiftRight = bnShiftRight
6653 proto.getLowestSetBit = bnGetLowestSetBit
6654 proto.bitCount = bnBitCount
6655 proto.testBit = bnTestBit
6656 proto.setBit = bnSetBit
6657 proto.clearBit = bnClearBit
6658 proto.flipBit = bnFlipBit
6660 proto.subtract = bnSubtract
6661 proto.multiply = bnMultiply
6662 proto.divide = bnDivide
6663 proto.remainder = bnRemainder
6664 proto.divideAndRemainder = bnDivideAndRemainder
6665 proto.modPow = bnModPow
6666 proto.modInverse = bnModInverse
6669 proto.isProbablePrime = bnIsProbablePrime
6671 // JSBN-specific extension
6672 proto.square = bnSquare
6675 BigInteger.ZERO = nbv(
0)
6676 BigInteger.ONE = nbv(
1)
6677 BigInteger.valueOf = nbv
6679 module.exports = BigInteger
6681 },{"../package.json":
4}],
2:[function(require,module,exports){
6683 // FIXME: Kind of a weird way to throw exceptions, consider removing
6684 var assert = require('assert')
6685 var BigInteger = require('./bigi')
6688 * Turns a byte array into a big integer.
6690 * This function will interpret a byte array as a big integer in big
6693 BigInteger.fromByteArrayUnsigned = function(byteArray) {
6694 // BigInteger expects a DER integer conformant byte array
6695 if (byteArray[
0] &
0x80) {
6696 return new BigInteger([
0].concat(byteArray))
6699 return new BigInteger(byteArray)
6703 * Returns a byte array representation of the big integer.
6705 * This returns the absolute of the contained value in big endian
6706 * form. A value of zero results in an empty array.
6708 BigInteger.prototype.toByteArrayUnsigned = function() {
6709 var byteArray = this.toByteArray()
6710 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
6713 BigInteger.fromDERInteger = function(byteArray) {
6714 return new BigInteger(byteArray)
6718 * Converts BigInteger to a DER integer representation.
6720 * The format for this value uses the most significant bit as a sign
6721 * bit. If the most significant bit is already set and the integer is
6722 * positive, a
0x00 is prepended.
6738 * -
62300 =
> 0xff0ca4
6740 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
6742 BigInteger.fromBuffer = function(buffer) {
6743 // BigInteger expects a DER integer conformant byte array
6744 if (buffer[
0] &
0x80) {
6745 var byteArray = Array.prototype.slice.call(buffer)
6747 return new BigInteger([
0].concat(byteArray))
6750 return new BigInteger(buffer)
6753 BigInteger.fromHex = function(hex) {
6754 if (hex === '') return BigInteger.ZERO
6756 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
6757 assert.equal(hex.length %
2,
0, 'Incomplete hex')
6758 return new BigInteger(hex,
16)
6761 BigInteger.prototype.toBuffer = function(size) {
6762 var byteArray = this.toByteArrayUnsigned()
6765 var padding = size - byteArray.length
6766 while (zeros.length < padding) zeros.push(
0)
6768 return new Buffer(zeros.concat(byteArray))
6771 BigInteger.prototype.toHex = function(size) {
6772 return this.toBuffer(size).toString('hex')
6775 }).call(this,require(
"buffer").Buffer)
6776 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
6777 var BigInteger = require('./bigi')
6780 require('./convert')
6782 module.exports = BigInteger
6783 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
6787 "description":
"Big integers.",
6805 "devDependencies": {
6808 "coveralls":
"^2.10.0",
6809 "istanbul":
"^0.2.11"
6812 "url":
"https://github.com/cryptocoinjs/bigi",
6815 "main":
"./lib/index.js",
6817 "test":
"_mocha -- test/*.js",
6818 "jshint":
"jshint --config jshint.json lib/*.js ; true",
6820 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
6821 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
6825 "files":
"test/*.js",
6831 "safari/6.0..latest",
6832 "iphone/6.0..latest",
6833 "android-browser/4.2..latest"
6837 "url":
"https://github.com/cryptocoinjs/bigi/issues"
6839 "homepage":
"https://github.com/cryptocoinjs/bigi",
6840 "_id":
"bigi@1.4.0",
6842 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6843 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6845 "_from":
"bigi@^1.4.0",
6846 "_npmVersion":
"1.4.3",
6849 "email":
"jprichardson@gmail.com"
6854 "email":
"jprichardson@gmail.com"
6857 "name":
"midnightlightning",
6858 "email":
"boydb@midnightdesign.ws"
6861 "name":
"sidazhang",
6862 "email":
"sidazhang89@gmail.com"
6866 "email":
"npm@shesek.info"
6870 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6871 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6874 },{}],
5:[function(require,module,exports){
6875 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
6877 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
6879 // Originally from narwhal.js (http://narwhaljs.org)
6880 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
6882 // Permission is hereby granted, free of charge, to any person obtaining a copy
6883 // of this software and associated documentation files (the 'Software'), to
6884 // deal in the Software without restriction, including without limitation the
6885 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
6886 // sell copies of the Software, and to permit persons to whom the Software is
6887 // furnished to do so, subject to the following conditions:
6889 // The above copyright notice and this permission notice shall be included in
6890 // all copies or substantial portions of the Software.
6892 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6893 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6894 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
6895 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
6896 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
6897 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6899 // when used in node, this will actually load the util module we depend on
6900 // versus loading the builtin util module as happens otherwise
6901 // this is a bug in node module loading as far as I am concerned
6902 var util = require('util/');
6904 var pSlice = Array.prototype.slice;
6905 var hasOwn = Object.prototype.hasOwnProperty;
6907 //
1. The assert module provides functions that throw
6908 // AssertionError's when particular conditions are not met. The
6909 // assert module must conform to the following interface.
6911 var assert = module.exports = ok;
6913 //
2. The AssertionError is defined in assert.
6914 // new assert.AssertionError({ message: message,
6916 // expected: expected })
6918 assert.AssertionError = function AssertionError(options) {
6919 this.name = 'AssertionError';
6920 this.actual = options.actual;
6921 this.expected = options.expected;
6922 this.operator = options.operator;
6923 if (options.message) {
6924 this.message = options.message;
6925 this.generatedMessage = false;
6927 this.message = getMessage(this);
6928 this.generatedMessage = true;
6930 var stackStartFunction = options.stackStartFunction || fail;
6932 if (Error.captureStackTrace) {
6933 Error.captureStackTrace(this, stackStartFunction);
6936 // non v8 browsers so we can have a stacktrace
6937 var err = new Error();
6939 var out = err.stack;
6941 // try to strip useless frames
6942 var fn_name = stackStartFunction.name;
6943 var idx = out.indexOf('\n' + fn_name);
6945 // once we have located the function frame
6946 // we need to strip out everything before it (and its line)
6947 var next_line = out.indexOf('\n', idx +
1);
6948 out = out.substring(next_line +
1);
6956 // assert.AssertionError instanceof Error
6957 util.inherits(assert.AssertionError, Error);
6959 function replacer(key, value) {
6960 if (util.isUndefined(value)) {
6963 if (util.isNumber(value) && !isFinite(value)) {
6964 return value.toString();
6966 if (util.isFunction(value) || util.isRegExp(value)) {
6967 return value.toString();
6972 function truncate(s, n) {
6973 if (util.isString(s)) {
6974 return s.length < n ? s : s.slice(
0, n);
6980 function getMessage(self) {
6981 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
6982 self.operator + ' ' +
6983 truncate(JSON.stringify(self.expected, replacer),
128);
6986 // At present only the three keys mentioned above are used and
6987 // understood by the spec. Implementations or sub modules can pass
6988 // other keys to the AssertionError's constructor - they will be
6991 //
3. All of the following functions must throw an AssertionError
6992 // when a corresponding condition is not met, with a message that
6993 // may be undefined if not provided. All assertion methods provide
6994 // both the actual and expected values to the assertion error for
6995 // display purposes.
6997 function fail(actual, expected, message, operator, stackStartFunction) {
6998 throw new assert.AssertionError({
7003 stackStartFunction: stackStartFunction
7007 // EXTENSION! allows for well behaved errors defined elsewhere.
7010 //
4. Pure assertion tests whether a value is truthy, as determined
7012 // assert.ok(guard, message_opt);
7013 // This statement is equivalent to assert.equal(true, !!guard,
7014 // message_opt);. To test strictly for the value true, use
7015 // assert.strictEqual(true, guard, message_opt);.
7017 function ok(value, message) {
7018 if (!value) fail(value, true, message, '==', assert.ok);
7022 //
5. The equality assertion tests shallow, coercive equality with
7024 // assert.equal(actual, expected, message_opt);
7026 assert.equal = function equal(actual, expected, message) {
7027 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7030 //
6. The non-equality assertion tests for whether two objects are not equal
7031 // with != assert.notEqual(actual, expected, message_opt);
7033 assert.notEqual = function notEqual(actual, expected, message) {
7034 if (actual == expected) {
7035 fail(actual, expected, message, '!=', assert.notEqual);
7039 //
7. The equivalence assertion tests a deep equality relation.
7040 // assert.deepEqual(actual, expected, message_opt);
7042 assert.deepEqual = function deepEqual(actual, expected, message) {
7043 if (!_deepEqual(actual, expected)) {
7044 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7048 function _deepEqual(actual, expected) {
7049 //
7.1. All identical values are equivalent, as determined by ===.
7050 if (actual === expected) {
7053 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
7054 if (actual.length != expected.length) return false;
7056 for (var i =
0; i < actual.length; i++) {
7057 if (actual[i] !== expected[i]) return false;
7062 //
7.2. If the expected value is a Date object, the actual value is
7063 // equivalent if it is also a Date object that refers to the same time.
7064 } else if (util.isDate(actual) && util.isDate(expected)) {
7065 return actual.getTime() === expected.getTime();
7067 //
7.3 If the expected value is a RegExp object, the actual value is
7068 // equivalent if it is also a RegExp object with the same source and
7069 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7070 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7071 return actual.source === expected.source &&
7072 actual.global === expected.global &&
7073 actual.multiline === expected.multiline &&
7074 actual.lastIndex === expected.lastIndex &&
7075 actual.ignoreCase === expected.ignoreCase;
7077 //
7.4. Other pairs that do not both pass typeof value == 'object',
7078 // equivalence is determined by ==.
7079 } else if (!util.isObject(actual) && !util.isObject(expected)) {
7080 return actual == expected;
7082 //
7.5 For all other Object pairs, including Array objects, equivalence is
7083 // determined by having the same number of owned properties (as verified
7084 // with Object.prototype.hasOwnProperty.call), the same set of keys
7085 // (although not necessarily the same order), equivalent values for every
7086 // corresponding key, and an identical 'prototype' property. Note: this
7087 // accounts for both named and indexed properties on Arrays.
7089 return objEquiv(actual, expected);
7093 function isArguments(object) {
7094 return Object.prototype.toString.call(object) == '[object Arguments]';
7097 function objEquiv(a, b) {
7098 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
7100 // an identical 'prototype' property.
7101 if (a.prototype !== b.prototype) return false;
7102 // if one is a primitive, the other must be same
7103 if (util.isPrimitive(a) || util.isPrimitive(b)) {
7106 var aIsArgs = isArguments(a),
7107 bIsArgs = isArguments(b);
7108 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7113 return _deepEqual(a, b);
7115 var ka = objectKeys(a),
7118 // having the same number of owned properties (keys incorporates
7120 if (ka.length != kb.length)
7122 //the same set of keys (although not necessarily the same order),
7126 for (i = ka.length -
1; i
>=
0; i--) {
7130 //equivalent values for every corresponding key, and
7131 //~~~possibly expensive deep test
7132 for (i = ka.length -
1; i
>=
0; i--) {
7134 if (!_deepEqual(a[key], b[key])) return false;
7139 //
8. The non-equivalence assertion tests for any deep inequality.
7140 // assert.notDeepEqual(actual, expected, message_opt);
7142 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7143 if (_deepEqual(actual, expected)) {
7144 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7148 //
9. The strict equality assertion tests strict equality, as determined by ===.
7149 // assert.strictEqual(actual, expected, message_opt);
7151 assert.strictEqual = function strictEqual(actual, expected, message) {
7152 if (actual !== expected) {
7153 fail(actual, expected, message, '===', assert.strictEqual);
7157 //
10. The strict non-equality assertion tests for strict inequality, as
7158 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7160 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7161 if (actual === expected) {
7162 fail(actual, expected, message, '!==', assert.notStrictEqual);
7166 function expectedException(actual, expected) {
7167 if (!actual || !expected) {
7171 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7172 return expected.test(actual);
7173 } else if (actual instanceof expected) {
7175 } else if (expected.call({}, actual) === true) {
7182 function _throws(shouldThrow, block, expected, message) {
7185 if (util.isString(expected)) {
7196 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7197 (message ? ' ' + message : '.');
7199 if (shouldThrow && !actual) {
7200 fail(actual, expected, 'Missing expected exception' + message);
7203 if (!shouldThrow && expectedException(actual, expected)) {
7204 fail(actual, expected, 'Got unwanted exception' + message);
7207 if ((shouldThrow && actual && expected &&
7208 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7213 //
11. Expected to throw an error:
7214 // assert.throws(block, Error_opt, message_opt);
7216 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7217 _throws.apply(this, [true].concat(pSlice.call(arguments)));
7220 // EXTENSION! This is annoying to write outside this module.
7221 assert.doesNotThrow = function(block, /*optional*/message) {
7222 _throws.apply(this, [false].concat(pSlice.call(arguments)));
7225 assert.ifError = function(err) { if (err) {throw err;}};
7227 var objectKeys = Object.keys || function (obj) {
7229 for (var key in obj) {
7230 if (hasOwn.call(obj, key)) keys.push(key);
7235 },{"util/":
29}],
6:[function(require,module,exports){
7237 },{}],
7:[function(require,module,exports){
7239 * The buffer module from node.js, for the browser.
7241 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7245 var base64 = require('base64-js')
7246 var ieee754 = require('ieee754')
7247 var isArray = require('is-array')
7249 exports.Buffer = Buffer
7250 exports.SlowBuffer = SlowBuffer
7251 exports.INSPECT_MAX_BYTES =
50
7252 Buffer.poolSize =
8192 // not used by this implementation
7257 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7258 * === true Use Uint8Array implementation (fastest)
7259 * === false Use Object implementation (most compatible, even IE6)
7261 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7262 * Opera
11.6+, iOS
4.2+.
7264 * Due to various browser bugs, sometimes the Object implementation will be used even
7265 * when the browser supports typed arrays.
7269 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
7270 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
7272 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
7275 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
7277 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
7278 * incorrect length in some situations.
7280 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
7281 * get the Object implementation, which is slower but behaves correctly.
7283 Buffer.TYPED_ARRAY_SUPPORT = (function () {
7286 var arr = new Uint8Array(
1)
7287 arr.foo = function () { return
42 }
7288 arr.constructor = Bar
7289 return arr.foo() ===
42 && // typed array instances can be augmented
7290 arr.constructor === Bar && // constructor can be set
7291 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
7292 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
7298 function kMaxLength () {
7299 return Buffer.TYPED_ARRAY_SUPPORT
7308 * The Buffer constructor returns instances of `Uint8Array` that are augmented
7309 * with function properties for all the node `Buffer` API functions. We use
7310 * `Uint8Array` so that square bracket notation works as expected -- it returns
7313 * By augmenting the instances, we can avoid modifying the `Uint8Array`
7316 function Buffer (arg) {
7317 if (!(this instanceof Buffer)) {
7318 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
7319 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
7320 return new Buffer(arg)
7324 this.parent = undefined
7327 if (typeof arg === 'number') {
7328 return fromNumber(this, arg)
7331 // Slightly less common case.
7332 if (typeof arg === 'string') {
7333 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
7337 return fromObject(this, arg)
7340 function fromNumber (that, length) {
7341 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
7342 if (!Buffer.TYPED_ARRAY_SUPPORT) {
7343 for (var i =
0; i < length; i++) {
7350 function fromString (that, string, encoding) {
7351 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
7353 // Assumption: byteLength() return value is always < kMaxLength.
7354 var length = byteLength(string, encoding) |
0
7355 that = allocate(that, length)
7357 that.write(string, encoding)
7361 function fromObject (that, object) {
7362 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
7364 if (isArray(object)) return fromArray(that, object)
7366 if (object == null) {
7367 throw new TypeError('must start with number, buffer, array or string')
7370 if (typeof ArrayBuffer !== 'undefined') {
7371 if (object.buffer instanceof ArrayBuffer) {
7372 return fromTypedArray(that, object)
7374 if (object instanceof ArrayBuffer) {
7375 return fromArrayBuffer(that, object)
7379 if (object.length) return fromArrayLike(that, object)
7381 return fromJsonObject(that, object)
7384 function fromBuffer (that, buffer) {
7385 var length = checked(buffer.length) |
0
7386 that = allocate(that, length)
7387 buffer.copy(that,
0,
0, length)
7391 function fromArray (that, array) {
7392 var length = checked(array.length) |
0
7393 that = allocate(that, length)
7394 for (var i =
0; i < length; i +=
1) {
7395 that[i] = array[i] &
255
7400 // Duplicate of fromArray() to keep fromArray() monomorphic.
7401 function fromTypedArray (that, array) {
7402 var length = checked(array.length) |
0
7403 that = allocate(that, length)
7404 // Truncating the elements is probably not what people expect from typed
7405 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
7406 // of the old Buffer constructor.
7407 for (var i =
0; i < length; i +=
1) {
7408 that[i] = array[i] &
255
7413 function fromArrayBuffer (that, array) {
7414 if (Buffer.TYPED_ARRAY_SUPPORT) {
7415 // Return an augmented `Uint8Array` instance, for best performance
7417 that = Buffer._augment(new Uint8Array(array))
7419 // Fallback: Return an object instance of the Buffer class
7420 that = fromTypedArray(that, new Uint8Array(array))
7425 function fromArrayLike (that, array) {
7426 var length = checked(array.length) |
0
7427 that = allocate(that, length)
7428 for (var i =
0; i < length; i +=
1) {
7429 that[i] = array[i] &
255
7434 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
7435 // Returns a zero-length buffer for inputs that don't conform to the spec.
7436 function fromJsonObject (that, object) {
7440 if (object.type === 'Buffer' && isArray(object.data)) {
7442 length = checked(array.length) |
0
7444 that = allocate(that, length)
7446 for (var i =
0; i < length; i +=
1) {
7447 that[i] = array[i] &
255
7452 function allocate (that, length) {
7453 if (Buffer.TYPED_ARRAY_SUPPORT) {
7454 // Return an augmented `Uint8Array` instance, for best performance
7455 that = Buffer._augment(new Uint8Array(length))
7457 // Fallback: Return an object instance of the Buffer class
7458 that.length = length
7459 that._isBuffer = true
7462 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
7463 if (fromPool) that.parent = rootParent
7468 function checked (length) {
7469 // Note: cannot use `length < kMaxLength` here because that fails when
7470 // length is NaN (which is otherwise coerced to zero.)
7471 if (length
>= kMaxLength()) {
7472 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
7473 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
7478 function SlowBuffer (subject, encoding) {
7479 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
7481 var buf = new Buffer(subject, encoding)
7486 Buffer.isBuffer = function isBuffer (b) {
7487 return !!(b != null && b._isBuffer)
7490 Buffer.compare = function compare (a, b) {
7491 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
7492 throw new TypeError('Arguments must be Buffers')
7495 if (a === b) return
0
7501 var len = Math.min(x, y)
7503 if (a[i] !== b[i]) break
7513 if (x < y) return -
1
7518 Buffer.isEncoding = function isEncoding (encoding) {
7519 switch (String(encoding).toLowerCase()) {
7537 Buffer.concat = function concat (list, length) {
7538 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
7540 if (list.length ===
0) {
7541 return new Buffer(
0)
7545 if (length === undefined) {
7547 for (i =
0; i < list.length; i++) {
7548 length += list[i].length
7552 var buf = new Buffer(length)
7554 for (i =
0; i < list.length; i++) {
7562 function byteLength (string, encoding) {
7563 if (typeof string !== 'string') string = '' + string
7565 var len = string.length
7566 if (len ===
0) return
0
7568 // Use a for loop to avoid recursion
7569 var loweredCase = false
7580 return utf8ToBytes(string).length
7589 return base64ToBytes(string).length
7591 if (loweredCase) return utf8ToBytes(string).length // assume utf8
7592 encoding = ('' + encoding).toLowerCase()
7597 Buffer.byteLength = byteLength
7599 // pre-set for values that may exist in the future
7600 Buffer.prototype.length = undefined
7601 Buffer.prototype.parent = undefined
7603 function slowToString (encoding, start, end) {
7604 var loweredCase = false
7607 end = end === undefined || end === Infinity ? this.length : end |
0
7609 if (!encoding) encoding = 'utf8'
7610 if (start <
0) start =
0
7611 if (end
> this.length) end = this.length
7612 if (end <= start) return ''
7617 return hexSlice(this, start, end)
7621 return utf8Slice(this, start, end)
7624 return asciiSlice(this, start, end)
7627 return binarySlice(this, start, end)
7630 return base64Slice(this, start, end)
7636 return utf16leSlice(this, start, end)
7639 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7640 encoding = (encoding + '').toLowerCase()
7646 Buffer.prototype.toString = function toString () {
7647 var length = this.length |
0
7648 if (length ===
0) return ''
7649 if (arguments.length ===
0) return utf8Slice(this,
0, length)
7650 return slowToString.apply(this, arguments)
7653 Buffer.prototype.equals = function equals (b) {
7654 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7655 if (this === b) return true
7656 return Buffer.compare(this, b) ===
0
7659 Buffer.prototype.inspect = function inspect () {
7661 var max = exports.INSPECT_MAX_BYTES
7662 if (this.length
> 0) {
7663 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
7664 if (this.length
> max) str += ' ... '
7666 return '
<Buffer ' + str + '
>'
7669 Buffer.prototype.compare = function compare (b) {
7670 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7671 if (this === b) return
0
7672 return Buffer.compare(this, b)
7675 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
7676 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
7677 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
7680 if (this.length ===
0) return -
1
7681 if (byteOffset
>= this.length) return -
1
7683 // Negative offsets start from the end of the buffer
7684 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
7686 if (typeof val === 'string') {
7687 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
7688 return String.prototype.indexOf.call(this, val, byteOffset)
7690 if (Buffer.isBuffer(val)) {
7691 return arrayIndexOf(this, val, byteOffset)
7693 if (typeof val === 'number') {
7694 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
7695 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
7697 return arrayIndexOf(this, [ val ], byteOffset)
7700 function arrayIndexOf (arr, val, byteOffset) {
7702 for (var i =
0; byteOffset + i < arr.length; i++) {
7703 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
7704 if (foundIndex === -
1) foundIndex = i
7705 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
7713 throw new TypeError('val must be string, number or Buffer')
7716 // `get` is deprecated
7717 Buffer.prototype.get = function get (offset) {
7718 console.log('.get() is deprecated. Access using array indexes instead.')
7719 return this.readUInt8(offset)
7722 // `set` is deprecated
7723 Buffer.prototype.set = function set (v, offset) {
7724 console.log('.set() is deprecated. Access using array indexes instead.')
7725 return this.writeUInt8(v, offset)
7728 function hexWrite (buf, string, offset, length) {
7729 offset = Number(offset) ||
0
7730 var remaining = buf.length - offset
7734 length = Number(length)
7735 if (length
> remaining) {
7740 // must be an even number of digits
7741 var strLen = string.length
7742 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
7744 if (length
> strLen /
2) {
7747 for (var i =
0; i < length; i++) {
7748 var parsed = parseInt(string.substr(i *
2,
2),
16)
7749 if (isNaN(parsed)) throw new Error('Invalid hex string')
7750 buf[offset + i] = parsed
7755 function utf8Write (buf, string, offset, length) {
7756 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
7759 function asciiWrite (buf, string, offset, length) {
7760 return blitBuffer(asciiToBytes(string), buf, offset, length)
7763 function binaryWrite (buf, string, offset, length) {
7764 return asciiWrite(buf, string, offset, length)
7767 function base64Write (buf, string, offset, length) {
7768 return blitBuffer(base64ToBytes(string), buf, offset, length)
7771 function ucs2Write (buf, string, offset, length) {
7772 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
7775 Buffer.prototype.write = function write (string, offset, length, encoding) {
7776 // Buffer#write(string)
7777 if (offset === undefined) {
7779 length = this.length
7781 // Buffer#write(string, encoding)
7782 } else if (length === undefined && typeof offset === 'string') {
7784 length = this.length
7786 // Buffer#write(string, offset[, length][, encoding])
7787 } else if (isFinite(offset)) {
7789 if (isFinite(length)) {
7791 if (encoding === undefined) encoding = 'utf8'
7796 // legacy write(string, encoding, offset, length) - remove in v0.13
7804 var remaining = this.length - offset
7805 if (length === undefined || length
> remaining) length = remaining
7807 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
7808 throw new RangeError('attempt to write outside buffer bounds')
7811 if (!encoding) encoding = 'utf8'
7813 var loweredCase = false
7817 return hexWrite(this, string, offset, length)
7821 return utf8Write(this, string, offset, length)
7824 return asciiWrite(this, string, offset, length)
7827 return binaryWrite(this, string, offset, length)
7830 // Warning: maxLength not taken into account in base64Write
7831 return base64Write(this, string, offset, length)
7837 return ucs2Write(this, string, offset, length)
7840 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7841 encoding = ('' + encoding).toLowerCase()
7847 Buffer.prototype.toJSON = function toJSON () {
7850 data: Array.prototype.slice.call(this._arr || this,
0)
7854 function base64Slice (buf, start, end) {
7855 if (start ===
0 && end === buf.length) {
7856 return base64.fromByteArray(buf)
7858 return base64.fromByteArray(buf.slice(start, end))
7862 function utf8Slice (buf, start, end) {
7863 end = Math.min(buf.length, end)
7868 var bytesPerSequence
7874 for (; i < end; i += bytesPerSequence) {
7878 if (firstByte
> 0xEF) {
7879 bytesPerSequence =
4
7880 } else if (firstByte
> 0xDF) {
7881 bytesPerSequence =
3
7882 } else if (firstByte
> 0xBF) {
7883 bytesPerSequence =
2
7885 bytesPerSequence =
1
7888 if (i + bytesPerSequence <= end) {
7889 switch (bytesPerSequence) {
7891 if (firstByte <
0x80) {
7892 codePoint = firstByte
7896 secondByte = buf[i +
1]
7897 if ((secondByte &
0xC0) ===
0x80) {
7898 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
7899 if (tempCodePoint
> 0x7F) {
7900 codePoint = tempCodePoint
7905 secondByte = buf[i +
1]
7906 thirdByte = buf[i +
2]
7907 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
7908 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
7909 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
7910 codePoint = tempCodePoint
7915 secondByte = buf[i +
1]
7916 thirdByte = buf[i +
2]
7917 fourthByte = buf[i +
3]
7918 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
7919 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
7920 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
7921 codePoint = tempCodePoint
7927 if (codePoint ===
0xFFFD) {
7928 // we generated an invalid codePoint so make sure to only advance by
1 byte
7929 bytesPerSequence =
1
7930 } else if (codePoint
> 0xFFFF) {
7931 // encode to utf16 (surrogate pair dance)
7932 codePoint -=
0x10000
7933 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
7934 codePoint =
0xDC00 | codePoint &
0x3FF
7940 return String.fromCharCode.apply(String, res)
7943 function asciiSlice (buf, start, end) {
7945 end = Math.min(buf.length, end)
7947 for (var i = start; i < end; i++) {
7948 ret += String.fromCharCode(buf[i] &
0x7F)
7953 function binarySlice (buf, start, end) {
7955 end = Math.min(buf.length, end)
7957 for (var i = start; i < end; i++) {
7958 ret += String.fromCharCode(buf[i])
7963 function hexSlice (buf, start, end) {
7964 var len = buf.length
7966 if (!start || start <
0) start =
0
7967 if (!end || end <
0 || end
> len) end = len
7970 for (var i = start; i < end; i++) {
7971 out += toHex(buf[i])
7976 function utf16leSlice (buf, start, end) {
7977 var bytes = buf.slice(start, end)
7979 for (var i =
0; i < bytes.length; i +=
2) {
7980 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
7985 Buffer.prototype.slice = function slice (start, end) {
7986 var len = this.length
7988 end = end === undefined ? len : ~~end
7992 if (start <
0) start =
0
7993 } else if (start
> len) {
7999 if (end <
0) end =
0
8000 } else if (end
> len) {
8004 if (end < start) end = start
8007 if (Buffer.TYPED_ARRAY_SUPPORT) {
8008 newBuf = Buffer._augment(this.subarray(start, end))
8010 var sliceLen = end - start
8011 newBuf = new Buffer(sliceLen, undefined)
8012 for (var i =
0; i < sliceLen; i++) {
8013 newBuf[i] = this[i + start]
8017 if (newBuf.length) newBuf.parent = this.parent || this
8023 * Need to make sure that buffer isn't trying to write out of bounds.
8025 function checkOffset (offset, ext, length) {
8026 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8027 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8030 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8032 byteLength = byteLength |
0
8033 if (!noAssert) checkOffset(offset, byteLength, this.length)
8035 var val = this[offset]
8038 while (++i < byteLength && (mul *=
0x100)) {
8039 val += this[offset + i] * mul
8045 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8047 byteLength = byteLength |
0
8049 checkOffset(offset, byteLength, this.length)
8052 var val = this[offset + --byteLength]
8054 while (byteLength
> 0 && (mul *=
0x100)) {
8055 val += this[offset + --byteLength] * mul
8061 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8062 if (!noAssert) checkOffset(offset,
1, this.length)
8066 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
8067 if (!noAssert) checkOffset(offset,
2, this.length)
8068 return this[offset] | (this[offset +
1] <<
8)
8071 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
8072 if (!noAssert) checkOffset(offset,
2, this.length)
8073 return (this[offset] <<
8) | this[offset +
1]
8076 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
8077 if (!noAssert) checkOffset(offset,
4, this.length)
8079 return ((this[offset]) |
8080 (this[offset +
1] <<
8) |
8081 (this[offset +
2] <<
16)) +
8082 (this[offset +
3] *
0x1000000)
8085 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
8086 if (!noAssert) checkOffset(offset,
4, this.length)
8088 return (this[offset] *
0x1000000) +
8089 ((this[offset +
1] <<
16) |
8090 (this[offset +
2] <<
8) |
8094 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
8096 byteLength = byteLength |
0
8097 if (!noAssert) checkOffset(offset, byteLength, this.length)
8099 var val = this[offset]
8102 while (++i < byteLength && (mul *=
0x100)) {
8103 val += this[offset + i] * mul
8107 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
8112 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
8114 byteLength = byteLength |
0
8115 if (!noAssert) checkOffset(offset, byteLength, this.length)
8119 var val = this[offset + --i]
8120 while (i
> 0 && (mul *=
0x100)) {
8121 val += this[offset + --i] * mul
8125 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
8130 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
8131 if (!noAssert) checkOffset(offset,
1, this.length)
8132 if (!(this[offset] &
0x80)) return (this[offset])
8133 return ((
0xff - this[offset] +
1) * -
1)
8136 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
8137 if (!noAssert) checkOffset(offset,
2, this.length)
8138 var val = this[offset] | (this[offset +
1] <<
8)
8139 return (val &
0x8000) ? val |
0xFFFF0000 : val
8142 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
8143 if (!noAssert) checkOffset(offset,
2, this.length)
8144 var val = this[offset +
1] | (this[offset] <<
8)
8145 return (val &
0x8000) ? val |
0xFFFF0000 : val
8148 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
8149 if (!noAssert) checkOffset(offset,
4, this.length)
8151 return (this[offset]) |
8152 (this[offset +
1] <<
8) |
8153 (this[offset +
2] <<
16) |
8154 (this[offset +
3] <<
24)
8157 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
8158 if (!noAssert) checkOffset(offset,
4, this.length)
8160 return (this[offset] <<
24) |
8161 (this[offset +
1] <<
16) |
8162 (this[offset +
2] <<
8) |
8166 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
8167 if (!noAssert) checkOffset(offset,
4, this.length)
8168 return ieee754.read(this, offset, true,
23,
4)
8171 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
8172 if (!noAssert) checkOffset(offset,
4, this.length)
8173 return ieee754.read(this, offset, false,
23,
4)
8176 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
8177 if (!noAssert) checkOffset(offset,
8, this.length)
8178 return ieee754.read(this, offset, true,
52,
8)
8181 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
8182 if (!noAssert) checkOffset(offset,
8, this.length)
8183 return ieee754.read(this, offset, false,
52,
8)
8186 function checkInt (buf, value, offset, ext, max, min) {
8187 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
8188 if (value
> max || value < min) throw new RangeError('value is out of bounds')
8189 if (offset + ext
> buf.length) throw new RangeError('index out of range')
8192 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
8195 byteLength = byteLength |
0
8196 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
8200 this[offset] = value &
0xFF
8201 while (++i < byteLength && (mul *=
0x100)) {
8202 this[offset + i] = (value / mul) &
0xFF
8205 return offset + byteLength
8208 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
8211 byteLength = byteLength |
0
8212 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
8214 var i = byteLength -
1
8216 this[offset + i] = value &
0xFF
8217 while (--i
>=
0 && (mul *=
0x100)) {
8218 this[offset + i] = (value / mul) &
0xFF
8221 return offset + byteLength
8224 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
8227 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
8228 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
8229 this[offset] = value
8233 function objectWriteUInt16 (buf, value, offset, littleEndian) {
8234 if (value <
0) value =
0xffff + value +
1
8235 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
8236 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
8237 (littleEndian ? i :
1 - i) *
8
8241 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
8244 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
8245 if (Buffer.TYPED_ARRAY_SUPPORT) {
8246 this[offset] = value
8247 this[offset +
1] = (value
>>> 8)
8249 objectWriteUInt16(this, value, offset, true)
8254 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
8257 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
8258 if (Buffer.TYPED_ARRAY_SUPPORT) {
8259 this[offset] = (value
>>> 8)
8260 this[offset +
1] = value
8262 objectWriteUInt16(this, value, offset, false)
8267 function objectWriteUInt32 (buf, value, offset, littleEndian) {
8268 if (value <
0) value =
0xffffffff + value +
1
8269 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
8270 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
8274 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
8277 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
8278 if (Buffer.TYPED_ARRAY_SUPPORT) {
8279 this[offset +
3] = (value
>>> 24)
8280 this[offset +
2] = (value
>>> 16)
8281 this[offset +
1] = (value
>>> 8)
8282 this[offset] = value
8284 objectWriteUInt32(this, value, offset, true)
8289 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
8292 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
8293 if (Buffer.TYPED_ARRAY_SUPPORT) {
8294 this[offset] = (value
>>> 24)
8295 this[offset +
1] = (value
>>> 16)
8296 this[offset +
2] = (value
>>> 8)
8297 this[offset +
3] = value
8299 objectWriteUInt32(this, value, offset, false)
8304 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
8308 var limit = Math.pow(
2,
8 * byteLength -
1)
8310 checkInt(this, value, offset, byteLength, limit -
1, -limit)
8315 var sub = value <
0 ?
1 :
0
8316 this[offset] = value &
0xFF
8317 while (++i < byteLength && (mul *=
0x100)) {
8318 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
8321 return offset + byteLength
8324 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
8328 var limit = Math.pow(
2,
8 * byteLength -
1)
8330 checkInt(this, value, offset, byteLength, limit -
1, -limit)
8333 var i = byteLength -
1
8335 var sub = value <
0 ?
1 :
0
8336 this[offset + i] = value &
0xFF
8337 while (--i
>=
0 && (mul *=
0x100)) {
8338 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
8341 return offset + byteLength
8344 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
8347 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
8348 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
8349 if (value <
0) value =
0xff + value +
1
8350 this[offset] = value
8354 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
8357 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
8358 if (Buffer.TYPED_ARRAY_SUPPORT) {
8359 this[offset] = value
8360 this[offset +
1] = (value
>>> 8)
8362 objectWriteUInt16(this, value, offset, true)
8367 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
8370 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
8371 if (Buffer.TYPED_ARRAY_SUPPORT) {
8372 this[offset] = (value
>>> 8)
8373 this[offset +
1] = value
8375 objectWriteUInt16(this, value, offset, false)
8380 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
8383 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
8384 if (Buffer.TYPED_ARRAY_SUPPORT) {
8385 this[offset] = value
8386 this[offset +
1] = (value
>>> 8)
8387 this[offset +
2] = (value
>>> 16)
8388 this[offset +
3] = (value
>>> 24)
8390 objectWriteUInt32(this, value, offset, true)
8395 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
8398 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
8399 if (value <
0) value =
0xffffffff + value +
1
8400 if (Buffer.TYPED_ARRAY_SUPPORT) {
8401 this[offset] = (value
>>> 24)
8402 this[offset +
1] = (value
>>> 16)
8403 this[offset +
2] = (value
>>> 8)
8404 this[offset +
3] = value
8406 objectWriteUInt32(this, value, offset, false)
8411 function checkIEEE754 (buf, value, offset, ext, max, min) {
8412 if (value
> max || value < min) throw new RangeError('value is out of bounds')
8413 if (offset + ext
> buf.length) throw new RangeError('index out of range')
8414 if (offset <
0) throw new RangeError('index out of range')
8417 function writeFloat (buf, value, offset, littleEndian, noAssert) {
8419 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
8421 ieee754.write(buf, value, offset, littleEndian,
23,
4)
8425 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
8426 return writeFloat(this, value, offset, true, noAssert)
8429 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
8430 return writeFloat(this, value, offset, false, noAssert)
8433 function writeDouble (buf, value, offset, littleEndian, noAssert) {
8435 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
8437 ieee754.write(buf, value, offset, littleEndian,
52,
8)
8441 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
8442 return writeDouble(this, value, offset, true, noAssert)
8445 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
8446 return writeDouble(this, value, offset, false, noAssert)
8449 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
8450 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
8451 if (!start) start =
0
8452 if (!end && end !==
0) end = this.length
8453 if (targetStart
>= target.length) targetStart = target.length
8454 if (!targetStart) targetStart =
0
8455 if (end
> 0 && end < start) end = start
8457 // Copy
0 bytes; we're done
8458 if (end === start) return
0
8459 if (target.length ===
0 || this.length ===
0) return
0
8461 // Fatal error conditions
8462 if (targetStart <
0) {
8463 throw new RangeError('targetStart out of bounds')
8465 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
8466 if (end <
0) throw new RangeError('sourceEnd out of bounds')
8469 if (end
> this.length) end = this.length
8470 if (target.length - targetStart < end - start) {
8471 end = target.length - targetStart + start
8474 var len = end - start
8477 if (this === target && start < targetStart && targetStart < end) {
8478 // descending copy from end
8479 for (i = len -
1; i
>=
0; i--) {
8480 target[i + targetStart] = this[i + start]
8482 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
8483 // ascending copy from start
8484 for (i =
0; i < len; i++) {
8485 target[i + targetStart] = this[i + start]
8488 target._set(this.subarray(start, start + len), targetStart)
8494 // fill(value, start=
0, end=buffer.length)
8495 Buffer.prototype.fill = function fill (value, start, end) {
8496 if (!value) value =
0
8497 if (!start) start =
0
8498 if (!end) end = this.length
8500 if (end < start) throw new RangeError('end < start')
8502 // Fill
0 bytes; we're done
8503 if (end === start) return
8504 if (this.length ===
0) return
8506 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
8507 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
8510 if (typeof value === 'number') {
8511 for (i = start; i < end; i++) {
8515 var bytes = utf8ToBytes(value.toString())
8516 var len = bytes.length
8517 for (i = start; i < end; i++) {
8518 this[i] = bytes[i % len]
8526 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
8527 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
8529 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
8530 if (typeof Uint8Array !== 'undefined') {
8531 if (Buffer.TYPED_ARRAY_SUPPORT) {
8532 return (new Buffer(this)).buffer
8534 var buf = new Uint8Array(this.length)
8535 for (var i =
0, len = buf.length; i < len; i +=
1) {
8541 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
8548 var BP = Buffer.prototype
8551 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
8553 Buffer._augment = function _augment (arr) {
8554 arr.constructor = Buffer
8555 arr._isBuffer = true
8557 // save reference to original Uint8Array set method before overwriting
8564 arr.write = BP.write
8565 arr.toString = BP.toString
8566 arr.toLocaleString = BP.toString
8567 arr.toJSON = BP.toJSON
8568 arr.equals = BP.equals
8569 arr.compare = BP.compare
8570 arr.indexOf = BP.indexOf
8572 arr.slice = BP.slice
8573 arr.readUIntLE = BP.readUIntLE
8574 arr.readUIntBE = BP.readUIntBE
8575 arr.readUInt8 = BP.readUInt8
8576 arr.readUInt16LE = BP.readUInt16LE
8577 arr.readUInt16BE = BP.readUInt16BE
8578 arr.readUInt32LE = BP.readUInt32LE
8579 arr.readUInt32BE = BP.readUInt32BE
8580 arr.readIntLE = BP.readIntLE
8581 arr.readIntBE = BP.readIntBE
8582 arr.readInt8 = BP.readInt8
8583 arr.readInt16LE = BP.readInt16LE
8584 arr.readInt16BE = BP.readInt16BE
8585 arr.readInt32LE = BP.readInt32LE
8586 arr.readInt32BE = BP.readInt32BE
8587 arr.readFloatLE = BP.readFloatLE
8588 arr.readFloatBE = BP.readFloatBE
8589 arr.readDoubleLE = BP.readDoubleLE
8590 arr.readDoubleBE = BP.readDoubleBE
8591 arr.writeUInt8 = BP.writeUInt8
8592 arr.writeUIntLE = BP.writeUIntLE
8593 arr.writeUIntBE = BP.writeUIntBE
8594 arr.writeUInt16LE = BP.writeUInt16LE
8595 arr.writeUInt16BE = BP.writeUInt16BE
8596 arr.writeUInt32LE = BP.writeUInt32LE
8597 arr.writeUInt32BE = BP.writeUInt32BE
8598 arr.writeIntLE = BP.writeIntLE
8599 arr.writeIntBE = BP.writeIntBE
8600 arr.writeInt8 = BP.writeInt8
8601 arr.writeInt16LE = BP.writeInt16LE
8602 arr.writeInt16BE = BP.writeInt16BE
8603 arr.writeInt32LE = BP.writeInt32LE
8604 arr.writeInt32BE = BP.writeInt32BE
8605 arr.writeFloatLE = BP.writeFloatLE
8606 arr.writeFloatBE = BP.writeFloatBE
8607 arr.writeDoubleLE = BP.writeDoubleLE
8608 arr.writeDoubleBE = BP.writeDoubleBE
8610 arr.inspect = BP.inspect
8611 arr.toArrayBuffer = BP.toArrayBuffer
8616 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
8618 function base64clean (str) {
8619 // Node strips out invalid characters like \n and \t from the string, base64-js does not
8620 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
8621 // Node converts strings with length <
2 to ''
8622 if (str.length <
2) return ''
8623 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
8624 while (str.length %
4 !==
0) {
8630 function stringtrim (str) {
8631 if (str.trim) return str.trim()
8632 return str.replace(/^\s+|\s+$/g, '')
8635 function toHex (n) {
8636 if (n <
16) return '
0' + n.toString(
16)
8637 return n.toString(
16)
8640 function utf8ToBytes (string, units) {
8641 units = units || Infinity
8643 var length = string.length
8644 var leadSurrogate = null
8647 for (var i =
0; i < length; i++) {
8648 codePoint = string.charCodeAt(i)
8650 // is surrogate component
8651 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
8652 // last char was a lead
8653 if (!leadSurrogate) {
8655 if (codePoint
> 0xDBFF) {
8657 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8660 } else if (i +
1 === length) {
8662 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8667 leadSurrogate = codePoint
8673 if (codePoint <
0xDC00) {
8674 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8675 leadSurrogate = codePoint
8679 // valid surrogate pair
8680 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
8682 } else if (leadSurrogate) {
8683 // valid bmp char, but last char was a lead
8684 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8687 leadSurrogate = null
8690 if (codePoint <
0x80) {
8691 if ((units -=
1) <
0) break
8692 bytes.push(codePoint)
8693 } else if (codePoint <
0x800) {
8694 if ((units -=
2) <
0) break
8696 codePoint
>> 0x6 |
0xC0,
8697 codePoint &
0x3F |
0x80
8699 } else if (codePoint <
0x10000) {
8700 if ((units -=
3) <
0) break
8702 codePoint
>> 0xC |
0xE0,
8703 codePoint
>> 0x6 &
0x3F |
0x80,
8704 codePoint &
0x3F |
0x80
8706 } else if (codePoint <
0x110000) {
8707 if ((units -=
4) <
0) break
8709 codePoint
>> 0x12 |
0xF0,
8710 codePoint
>> 0xC &
0x3F |
0x80,
8711 codePoint
>> 0x6 &
0x3F |
0x80,
8712 codePoint &
0x3F |
0x80
8715 throw new Error('Invalid code point')
8722 function asciiToBytes (str) {
8724 for (var i =
0; i < str.length; i++) {
8725 // Node's code seems to be doing this and not &
0x7F..
8726 byteArray.push(str.charCodeAt(i) &
0xFF)
8731 function utf16leToBytes (str, units) {
8734 for (var i =
0; i < str.length; i++) {
8735 if ((units -=
2) <
0) break
8737 c = str.charCodeAt(i)
8747 function base64ToBytes (str) {
8748 return base64.toByteArray(base64clean(str))
8751 function blitBuffer (src, dst, offset, length) {
8752 for (var i =
0; i < length; i++) {
8753 if ((i + offset
>= dst.length) || (i
>= src.length)) break
8754 dst[i + offset] = src[i]
8759 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
8760 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
8762 ;(function (exports) {
8765 var Arr = (typeof Uint8Array !== 'undefined')
8769 var PLUS = '+'.charCodeAt(
0)
8770 var SLASH = '/'.charCodeAt(
0)
8771 var NUMBER = '
0'.charCodeAt(
0)
8772 var LOWER = 'a'.charCodeAt(
0)
8773 var UPPER = 'A'.charCodeAt(
0)
8774 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
8775 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
8777 function decode (elt) {
8778 var code = elt.charCodeAt(
0)
8779 if (code === PLUS ||
8780 code === PLUS_URL_SAFE)
8782 if (code === SLASH ||
8783 code === SLASH_URL_SAFE)
8786 return -
1 //no match
8787 if (code < NUMBER +
10)
8788 return code - NUMBER +
26 +
26
8789 if (code < UPPER +
26)
8791 if (code < LOWER +
26)
8792 return code - LOWER +
26
8795 function b64ToByteArray (b64) {
8796 var i, j, l, tmp, placeHolders, arr
8798 if (b64.length %
4 > 0) {
8799 throw new Error('Invalid string. Length must be a multiple of
4')
8802 // the number of equal signs (place holders)
8803 // if there are two placeholders, than the two characters before it
8804 // represent one byte
8805 // if there is only one, then the three characters before it represent
2 bytes
8806 // this is just a cheap hack to not do indexOf twice
8807 var len = b64.length
8808 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
8810 // base64 is
4/
3 + up to two characters of the original data
8811 arr = new Arr(b64.length *
3 /
4 - placeHolders)
8813 // if there are placeholders, only get up to the last complete
4 chars
8814 l = placeHolders
> 0 ? b64.length -
4 : b64.length
8822 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
8823 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
8824 push((tmp &
0xFF0000)
>> 16)
8825 push((tmp &
0xFF00)
>> 8)
8829 if (placeHolders ===
2) {
8830 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
8832 } else if (placeHolders ===
1) {
8833 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
8834 push((tmp
>> 8) &
0xFF)
8841 function uint8ToBase64 (uint8) {
8843 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
8847 function encode (num) {
8848 return lookup.charAt(num)
8851 function tripletToBase64 (num) {
8852 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
8855 // go through the array every three bytes, we'll deal with trailing stuff later
8856 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
8857 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
8858 output += tripletToBase64(temp)
8861 // pad the end with zeros, but make sure to not forget the extra bytes
8862 switch (extraBytes) {
8864 temp = uint8[uint8.length -
1]
8865 output += encode(temp
>> 2)
8866 output += encode((temp <<
4) &
0x3F)
8870 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
8871 output += encode(temp
>> 10)
8872 output += encode((temp
>> 4) &
0x3F)
8873 output += encode((temp <<
2) &
0x3F)
8881 exports.toByteArray = b64ToByteArray
8882 exports.fromByteArray = uint8ToBase64
8883 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
8885 },{}],
9:[function(require,module,exports){
8886 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
8888 var eLen = nBytes *
8 - mLen -
1
8889 var eMax = (
1 << eLen) -
1
8890 var eBias = eMax
>> 1
8892 var i = isLE ? (nBytes -
1) :
0
8893 var d = isLE ? -
1 :
1
8894 var s = buffer[offset + i]
8898 e = s & ((
1 << (-nBits)) -
1)
8901 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8903 m = e & ((
1 << (-nBits)) -
1)
8906 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8910 } else if (e === eMax) {
8911 return m ? NaN : ((s ? -
1 :
1) * Infinity)
8913 m = m + Math.pow(
2, mLen)
8916 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
8919 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
8921 var eLen = nBytes *
8 - mLen -
1
8922 var eMax = (
1 << eLen) -
1
8923 var eBias = eMax
>> 1
8924 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
8925 var i = isLE ?
0 : (nBytes -
1)
8926 var d = isLE ?
1 : -
1
8927 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
8929 value = Math.abs(value)
8931 if (isNaN(value) || value === Infinity) {
8932 m = isNaN(value) ?
1 :
0
8935 e = Math.floor(Math.log(value) / Math.LN2)
8936 if (value * (c = Math.pow(
2, -e)) <
1) {
8940 if (e + eBias
>=
1) {
8943 value += rt * Math.pow(
2,
1 - eBias)
8945 if (value * c
>=
2) {
8950 if (e + eBias
>= eMax) {
8953 } else if (e + eBias
>=
1) {
8954 m = (value * c -
1) * Math.pow(
2, mLen)
8957 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
8962 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
8966 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
8968 buffer[offset + i - d] |= s *
128
8971 },{}],
10:[function(require,module,exports){
8977 var isArray = Array.isArray;
8983 var str = Object.prototype.toString;
8986 * Whether or not the given `val`
8993 * isArray(arguments);
8998 * @param {mixed} val
9002 module.exports = isArray || function (val) {
9003 return !! val && '[object Array]' == str.call(val);
9006 },{}],
11:[function(require,module,exports){
9007 // Copyright Joyent, Inc. and other Node contributors.
9009 // Permission is hereby granted, free of charge, to any person obtaining a
9010 // copy of this software and associated documentation files (the
9011 // "Software"), to deal in the Software without restriction, including
9012 // without limitation the rights to use, copy, modify, merge, publish,
9013 // distribute, sublicense, and/or sell copies of the Software, and to permit
9014 // persons to whom the Software is furnished to do so, subject to the
9015 // following conditions:
9017 // The above copyright notice and this permission notice shall be included
9018 // in all copies or substantial portions of the Software.
9020 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9021 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9022 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9023 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9024 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9025 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9026 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9028 function EventEmitter() {
9029 this._events = this._events || {};
9030 this._maxListeners = this._maxListeners || undefined;
9032 module.exports = EventEmitter;
9034 // Backwards-compat with node
0.10.x
9035 EventEmitter.EventEmitter = EventEmitter;
9037 EventEmitter.prototype._events = undefined;
9038 EventEmitter.prototype._maxListeners = undefined;
9040 // By default EventEmitters will print a warning if more than
10 listeners are
9041 // added to it. This is a useful default which helps finding memory leaks.
9042 EventEmitter.defaultMaxListeners =
10;
9044 // Obviously not all Emitters should be limited to
10. This function allows
9045 // that to be increased. Set to zero for unlimited.
9046 EventEmitter.prototype.setMaxListeners = function(n) {
9047 if (!isNumber(n) || n <
0 || isNaN(n))
9048 throw TypeError('n must be a positive number');
9049 this._maxListeners = n;
9053 EventEmitter.prototype.emit = function(type) {
9054 var er, handler, len, args, i, listeners;
9059 // If there is no 'error' event listener then throw.
9060 if (type === 'error') {
9061 if (!this._events.error ||
9062 (isObject(this._events.error) && !this._events.error.length)) {
9064 if (er instanceof Error) {
9065 throw er; // Unhandled 'error' event
9067 throw TypeError('Uncaught, unspecified "error" event.');
9071 handler = this._events[type];
9073 if (isUndefined(handler))
9076 if (isFunction(handler)) {
9077 switch (arguments.length) {
9083 handler.call(this, arguments[
1]);
9086 handler.call(this, arguments[
1], arguments[
2]);
9090 len = arguments.length;
9091 args = new Array(len -
1);
9092 for (i =
1; i < len; i++)
9093 args[i -
1] = arguments[i];
9094 handler.apply(this, args);
9096 } else if (isObject(handler)) {
9097 len = arguments.length;
9098 args = new Array(len -
1);
9099 for (i =
1; i < len; i++)
9100 args[i -
1] = arguments[i];
9102 listeners = handler.slice();
9103 len = listeners.length;
9104 for (i =
0; i < len; i++)
9105 listeners[i].apply(this, args);
9111 EventEmitter.prototype.addListener = function(type, listener) {
9114 if (!isFunction(listener))
9115 throw TypeError('listener must be a function');
9120 // To avoid recursion in the case that type === "newListener"! Before
9121 // adding it to the listeners, first emit "newListener".
9122 if (this._events.newListener)
9123 this.emit('newListener', type,
9124 isFunction(listener.listener) ?
9125 listener.listener : listener);
9127 if (!this._events[type])
9128 // Optimize the case of one listener. Don't need the extra array object.
9129 this._events[type] = listener;
9130 else if (isObject(this._events[type]))
9131 // If we've already got an array, just append.
9132 this._events[type].push(listener);
9134 // Adding the second element, need to change to array.
9135 this._events[type] = [this._events[type], listener];
9137 // Check for listener leak
9138 if (isObject(this._events[type]) && !this._events[type].warned) {
9140 if (!isUndefined(this._maxListeners)) {
9141 m = this._maxListeners;
9143 m = EventEmitter.defaultMaxListeners;
9146 if (m && m
> 0 && this._events[type].length
> m) {
9147 this._events[type].warned = true;
9148 console.error('(node) warning: possible EventEmitter memory ' +
9149 'leak detected. %d listeners added. ' +
9150 'Use emitter.setMaxListeners() to increase limit.',
9151 this._events[type].length);
9152 if (typeof console.trace === 'function') {
9153 // not supported in IE
10
9162 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9164 EventEmitter.prototype.once = function(type, listener) {
9165 if (!isFunction(listener))
9166 throw TypeError('listener must be a function');
9171 this.removeListener(type, g);
9175 listener.apply(this, arguments);
9179 g.listener = listener;
9185 // emits a 'removeListener' event iff the listener was removed
9186 EventEmitter.prototype.removeListener = function(type, listener) {
9187 var list, position, length, i;
9189 if (!isFunction(listener))
9190 throw TypeError('listener must be a function');
9192 if (!this._events || !this._events[type])
9195 list = this._events[type];
9196 length = list.length;
9199 if (list === listener ||
9200 (isFunction(list.listener) && list.listener === listener)) {
9201 delete this._events[type];
9202 if (this._events.removeListener)
9203 this.emit('removeListener', type, listener);
9205 } else if (isObject(list)) {
9206 for (i = length; i--
> 0;) {
9207 if (list[i] === listener ||
9208 (list[i].listener && list[i].listener === listener)) {
9217 if (list.length ===
1) {
9219 delete this._events[type];
9221 list.splice(position,
1);
9224 if (this._events.removeListener)
9225 this.emit('removeListener', type, listener);
9231 EventEmitter.prototype.removeAllListeners = function(type) {
9237 // not listening for removeListener, no need to emit
9238 if (!this._events.removeListener) {
9239 if (arguments.length ===
0)
9241 else if (this._events[type])
9242 delete this._events[type];
9246 // emit removeListener for all listeners on all events
9247 if (arguments.length ===
0) {
9248 for (key in this._events) {
9249 if (key === 'removeListener') continue;
9250 this.removeAllListeners(key);
9252 this.removeAllListeners('removeListener');
9257 listeners = this._events[type];
9259 if (isFunction(listeners)) {
9260 this.removeListener(type, listeners);
9263 while (listeners.length)
9264 this.removeListener(type, listeners[listeners.length -
1]);
9266 delete this._events[type];
9271 EventEmitter.prototype.listeners = function(type) {
9273 if (!this._events || !this._events[type])
9275 else if (isFunction(this._events[type]))
9276 ret = [this._events[type]];
9278 ret = this._events[type].slice();
9282 EventEmitter.listenerCount = function(emitter, type) {
9284 if (!emitter._events || !emitter._events[type])
9286 else if (isFunction(emitter._events[type]))
9289 ret = emitter._events[type].length;
9293 function isFunction(arg) {
9294 return typeof arg === 'function';
9297 function isNumber(arg) {
9298 return typeof arg === 'number';
9301 function isObject(arg) {
9302 return typeof arg === 'object' && arg !== null;
9305 function isUndefined(arg) {
9306 return arg === void
0;
9309 },{}],
12:[function(require,module,exports){
9310 if (typeof Object.create === 'function') {
9311 // implementation from standard node.js 'util' module
9312 module.exports = function inherits(ctor, superCtor) {
9313 ctor.super_ = superCtor
9314 ctor.prototype = Object.create(superCtor.prototype, {
9324 // old school shim for old browsers
9325 module.exports = function inherits(ctor, superCtor) {
9326 ctor.super_ = superCtor
9327 var TempCtor = function () {}
9328 TempCtor.prototype = superCtor.prototype
9329 ctor.prototype = new TempCtor()
9330 ctor.prototype.constructor = ctor
9334 },{}],
13:[function(require,module,exports){
9335 module.exports = Array.isArray || function (arr) {
9336 return Object.prototype.toString.call(arr) == '[object Array]';
9339 },{}],
14:[function(require,module,exports){
9340 // shim for using process in browser
9342 var process = module.exports = {};
9344 var draining = false;
9346 var queueIndex = -
1;
9348 function cleanUpNextTick() {
9350 if (currentQueue.length) {
9351 queue = currentQueue.concat(queue);
9360 function drainQueue() {
9364 var timeout = setTimeout(cleanUpNextTick);
9367 var len = queue.length;
9369 currentQueue = queue;
9371 while (++queueIndex < len) {
9372 currentQueue[queueIndex].run();
9377 currentQueue = null;
9379 clearTimeout(timeout);
9382 process.nextTick = function (fun) {
9383 var args = new Array(arguments.length -
1);
9384 if (arguments.length
> 1) {
9385 for (var i =
1; i < arguments.length; i++) {
9386 args[i -
1] = arguments[i];
9389 queue.push(new Item(fun, args));
9390 if (queue.length ===
1 && !draining) {
9391 setTimeout(drainQueue,
0);
9395 // v8 likes predictible objects
9396 function Item(fun, array) {
9400 Item.prototype.run = function () {
9401 this.fun.apply(null, this.array);
9403 process.title = 'browser';
9404 process.browser = true;
9407 process.version = ''; // empty string to avoid regexp issues
9408 process.versions = {};
9413 process.addListener = noop;
9414 process.once = noop;
9416 process.removeListener = noop;
9417 process.removeAllListeners = noop;
9418 process.emit = noop;
9420 process.binding = function (name) {
9421 throw new Error('process.binding is not supported');
9425 process.cwd = function () { return '/' };
9426 process.chdir = function (dir) {
9427 throw new Error('process.chdir is not supported');
9429 process.umask = function() { return
0; };
9431 },{}],
15:[function(require,module,exports){
9432 module.exports = require(
"./lib/_stream_duplex.js")
9434 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
9435 (function (process){
9436 // Copyright Joyent, Inc. and other Node contributors.
9438 // Permission is hereby granted, free of charge, to any person obtaining a
9439 // copy of this software and associated documentation files (the
9440 //
"Software"), to deal in the Software without restriction, including
9441 // without limitation the rights to use, copy, modify, merge, publish,
9442 // distribute, sublicense, and/or sell copies of the Software, and to permit
9443 // persons to whom the Software is furnished to do so, subject to the
9444 // following conditions:
9446 // The above copyright notice and this permission notice shall be included
9447 // in all copies or substantial portions of the Software.
9449 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9450 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9451 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9452 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9453 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9454 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9455 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9457 // a duplex stream is just a stream that is both readable and writable.
9458 // Since JS doesn't have multiple prototypal inheritance, this class
9459 // prototypally inherits from Readable, and then parasitically from
9462 module.exports = Duplex;
9465 var objectKeys = Object.keys || function (obj) {
9467 for (var key in obj) keys.push(key);
9474 var util = require('core-util-is');
9475 util.inherits = require('inherits');
9478 var Readable = require('./_stream_readable');
9479 var Writable = require('./_stream_writable');
9481 util.inherits(Duplex, Readable);
9483 forEach(objectKeys(Writable.prototype), function(method) {
9484 if (!Duplex.prototype[method])
9485 Duplex.prototype[method] = Writable.prototype[method];
9488 function Duplex(options) {
9489 if (!(this instanceof Duplex))
9490 return new Duplex(options);
9492 Readable.call(this, options);
9493 Writable.call(this, options);
9495 if (options && options.readable === false)
9496 this.readable = false;
9498 if (options && options.writable === false)
9499 this.writable = false;
9501 this.allowHalfOpen = true;
9502 if (options && options.allowHalfOpen === false)
9503 this.allowHalfOpen = false;
9505 this.once('end', onend);
9508 // the no-half-open enforcer
9510 // if we allow half-open state, or if the writable side ended,
9512 if (this.allowHalfOpen || this._writableState.ended)
9515 // no more data can be written.
9516 // But allow more writes to happen in this tick.
9517 process.nextTick(this.end.bind(this));
9520 function forEach (xs, f) {
9521 for (var i =
0, l = xs.length; i < l; i++) {
9526 }).call(this,require('_process'))
9527 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
9528 // Copyright Joyent, Inc. and other Node contributors.
9530 // Permission is hereby granted, free of charge, to any person obtaining a
9531 // copy of this software and associated documentation files (the
9532 // "Software"), to deal in the Software without restriction, including
9533 // without limitation the rights to use, copy, modify, merge, publish,
9534 // distribute, sublicense, and/or sell copies of the Software, and to permit
9535 // persons to whom the Software is furnished to do so, subject to the
9536 // following conditions:
9538 // The above copyright notice and this permission notice shall be included
9539 // in all copies or substantial portions of the Software.
9541 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9542 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9543 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9544 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9545 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9546 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9547 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9549 // a passthrough stream.
9550 // basically just the most minimal sort of Transform stream.
9551 // Every written chunk gets output as-is.
9553 module.exports = PassThrough;
9555 var Transform = require('./_stream_transform');
9558 var util = require('core-util-is');
9559 util.inherits = require('inherits');
9562 util.inherits(PassThrough, Transform);
9564 function PassThrough(options) {
9565 if (!(this instanceof PassThrough))
9566 return new PassThrough(options);
9568 Transform.call(this, options);
9571 PassThrough.prototype._transform = function(chunk, encoding, cb) {
9575 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
9576 (function (process){
9577 // Copyright Joyent, Inc. and other Node contributors.
9579 // Permission is hereby granted, free of charge, to any person obtaining a
9580 // copy of this software and associated documentation files (the
9581 // "Software"), to deal in the Software without restriction, including
9582 // without limitation the rights to use, copy, modify, merge, publish,
9583 // distribute, sublicense, and/or sell copies of the Software, and to permit
9584 // persons to whom the Software is furnished to do so, subject to the
9585 // following conditions:
9587 // The above copyright notice and this permission notice shall be included
9588 // in all copies or substantial portions of the Software.
9590 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9591 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9592 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9593 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9594 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9595 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9596 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9598 module.exports = Readable;
9601 var isArray = require('isarray');
9606 var Buffer = require('buffer').Buffer;
9609 Readable.ReadableState = ReadableState;
9611 var EE = require('events').EventEmitter;
9614 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
9615 return emitter.listeners(type).length;
9619 var Stream = require('stream');
9622 var util = require('core-util-is');
9623 util.inherits = require('inherits');
9630 var debug = require('util');
9631 if (debug && debug.debuglog) {
9632 debug = debug.debuglog('stream');
9634 debug = function () {};
9639 util.inherits(Readable, Stream);
9641 function ReadableState(options, stream) {
9642 var Duplex = require('./_stream_duplex');
9644 options = options || {};
9646 // the point at which it stops calling _read() to fill the buffer
9647 // Note:
0 is a valid value, means "don't call _read preemptively ever"
9648 var hwm = options.highWaterMark;
9649 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
9650 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
9653 this.highWaterMark = ~~this.highWaterMark;
9658 this.pipesCount =
0;
9659 this.flowing = null;
9661 this.endEmitted = false;
9662 this.reading = false;
9664 // a flag to be able to tell if the onwrite cb is called immediately,
9665 // or on a later tick. We set this to true at first, because any
9666 // actions that shouldn't happen until "later" should generally also
9667 // not happen before the first write call.
9670 // whenever we return null, then we set a flag to say
9671 // that we're awaiting a 'readable' event emission.
9672 this.needReadable = false;
9673 this.emittedReadable = false;
9674 this.readableListening = false;
9677 // object stream flag. Used to make read(n) ignore n and to
9678 // make all the buffer merging and length checks go away
9679 this.objectMode = !!options.objectMode;
9681 if (stream instanceof Duplex)
9682 this.objectMode = this.objectMode || !!options.readableObjectMode;
9684 // Crypto is kind of old and crusty. Historically, its default string
9685 // encoding is 'binary' so we have to make this configurable.
9686 // Everything else in the universe uses 'utf8', though.
9687 this.defaultEncoding = options.defaultEncoding || 'utf8';
9689 // when piping, we only care about 'readable' events that happen
9690 // after read()ing all the bytes and not getting any pushback.
9691 this.ranOut = false;
9693 // the number of writers that are awaiting a drain event in .pipe()s
9694 this.awaitDrain =
0;
9696 // if true, a maybeReadMore has been scheduled
9697 this.readingMore = false;
9699 this.decoder = null;
9700 this.encoding = null;
9701 if (options.encoding) {
9703 StringDecoder = require('string_decoder/').StringDecoder;
9704 this.decoder = new StringDecoder(options.encoding);
9705 this.encoding = options.encoding;
9709 function Readable(options) {
9710 var Duplex = require('./_stream_duplex');
9712 if (!(this instanceof Readable))
9713 return new Readable(options);
9715 this._readableState = new ReadableState(options, this);
9718 this.readable = true;
9723 // Manually shove something into the read() buffer.
9724 // This returns true if the highWaterMark has not been hit yet,
9725 // similar to how Writable.write() returns true if you should
9726 // write() some more.
9727 Readable.prototype.push = function(chunk, encoding) {
9728 var state = this._readableState;
9730 if (util.isString(chunk) && !state.objectMode) {
9731 encoding = encoding || state.defaultEncoding;
9732 if (encoding !== state.encoding) {
9733 chunk = new Buffer(chunk, encoding);
9738 return readableAddChunk(this, state, chunk, encoding, false);
9741 // Unshift should *always* be something directly out of read()
9742 Readable.prototype.unshift = function(chunk) {
9743 var state = this._readableState;
9744 return readableAddChunk(this, state, chunk, '', true);
9747 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
9748 var er = chunkInvalid(state, chunk);
9750 stream.emit('error', er);
9751 } else if (util.isNullOrUndefined(chunk)) {
9752 state.reading = false;
9754 onEofChunk(stream, state);
9755 } else if (state.objectMode || chunk && chunk.length
> 0) {
9756 if (state.ended && !addToFront) {
9757 var e = new Error('stream.push() after EOF');
9758 stream.emit('error', e);
9759 } else if (state.endEmitted && addToFront) {
9760 var e = new Error('stream.unshift() after end event');
9761 stream.emit('error', e);
9763 if (state.decoder && !addToFront && !encoding)
9764 chunk = state.decoder.write(chunk);
9767 state.reading = false;
9769 // if we want the data now, just emit it.
9770 if (state.flowing && state.length ===
0 && !state.sync) {
9771 stream.emit('data', chunk);
9774 // update the buffer info.
9775 state.length += state.objectMode ?
1 : chunk.length;
9777 state.buffer.unshift(chunk);
9779 state.buffer.push(chunk);
9781 if (state.needReadable)
9782 emitReadable(stream);
9785 maybeReadMore(stream, state);
9787 } else if (!addToFront) {
9788 state.reading = false;
9791 return needMoreData(state);
9796 // if it's past the high water mark, we can push in some more.
9797 // Also, if we have no data yet, we can stand some
9798 // more bytes. This is to work around cases where hwm=
0,
9799 // such as the repl. Also, if the push() triggered a
9800 // readable event, and the user called read(largeNumber) such that
9801 // needReadable was set, then we ought to push more, so that another
9802 // 'readable' event will be triggered.
9803 function needMoreData(state) {
9804 return !state.ended &&
9805 (state.needReadable ||
9806 state.length < state.highWaterMark ||
9807 state.length ===
0);
9810 // backwards compatibility.
9811 Readable.prototype.setEncoding = function(enc) {
9813 StringDecoder = require('string_decoder/').StringDecoder;
9814 this._readableState.decoder = new StringDecoder(enc);
9815 this._readableState.encoding = enc;
9819 // Don't raise the hwm
> 128MB
9820 var MAX_HWM =
0x800000;
9821 function roundUpToNextPowerOf2(n) {
9825 // Get the next highest power of
2
9827 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
9833 function howMuchToRead(n, state) {
9834 if (state.length ===
0 && state.ended)
9837 if (state.objectMode)
9838 return n ===
0 ?
0 :
1;
9840 if (isNaN(n) || util.isNull(n)) {
9841 // only flow one buffer at a time
9842 if (state.flowing && state.buffer.length)
9843 return state.buffer[
0].length;
9845 return state.length;
9851 // If we're asking for more than the target buffer level,
9852 // then raise the water mark. Bump up to the next highest
9853 // power of
2, to prevent increasing it excessively in tiny
9855 if (n
> state.highWaterMark)
9856 state.highWaterMark = roundUpToNextPowerOf2(n);
9858 // don't have that much. return null, unless we've ended.
9859 if (n
> state.length) {
9861 state.needReadable = true;
9864 return state.length;
9870 // you can override either this method, or the async _read(n) below.
9871 Readable.prototype.read = function(n) {
9873 var state = this._readableState;
9876 if (!util.isNumber(n) || n
> 0)
9877 state.emittedReadable = false;
9879 // if we're doing read(
0) to trigger a readable event, but we
9880 // already have a bunch of data in the buffer, then just trigger
9881 // the 'readable' event and move on.
9883 state.needReadable &&
9884 (state.length
>= state.highWaterMark || state.ended)) {
9885 debug('read: emitReadable', state.length, state.ended);
9886 if (state.length ===
0 && state.ended)
9893 n = howMuchToRead(n, state);
9895 // if we've ended, and we're now clear, then finish it up.
9896 if (n ===
0 && state.ended) {
9897 if (state.length ===
0)
9902 // All the actual chunk generation logic needs to be
9903 // *below* the call to _read. The reason is that in certain
9904 // synthetic stream cases, such as passthrough streams, _read
9905 // may be a completely synchronous operation which may change
9906 // the state of the read buffer, providing enough data when
9907 // before there was *not* enough.
9909 // So, the steps are:
9910 //
1. Figure out what the state of things will be after we do
9911 // a read from the buffer.
9913 //
2. If that resulting state will trigger a _read, then call _read.
9914 // Note that this may be asynchronous, or synchronous. Yes, it is
9915 // deeply ugly to write APIs this way, but that still doesn't mean
9916 // that the Readable class should behave improperly, as streams are
9917 // designed to be sync/async agnostic.
9918 // Take note if the _read call is sync or async (ie, if the read call
9919 // has returned yet), so that we know whether or not it's safe to emit
9922 //
3. Actually pull the requested chunks out of the buffer and return.
9924 // if we need a readable event, then we need to do some reading.
9925 var doRead = state.needReadable;
9926 debug('need readable', doRead);
9928 // if we currently have less than the highWaterMark, then also read some
9929 if (state.length ===
0 || state.length - n < state.highWaterMark) {
9931 debug('length less than watermark', doRead);
9934 // however, if we've ended, then there's no point, and if we're already
9935 // reading, then it's unnecessary.
9936 if (state.ended || state.reading) {
9938 debug('reading or ended', doRead);
9943 state.reading = true;
9945 // if the length is currently zero, then we *need* a readable event.
9946 if (state.length ===
0)
9947 state.needReadable = true;
9948 // call internal read method
9949 this._read(state.highWaterMark);
9953 // If _read pushed data synchronously, then `reading` will be false,
9954 // and we need to re-evaluate how much data we can return to the user.
9955 if (doRead && !state.reading)
9956 n = howMuchToRead(nOrig, state);
9960 ret = fromList(n, state);
9964 if (util.isNull(ret)) {
9965 state.needReadable = true;
9971 // If we have nothing in the buffer, then we want to know
9972 // as soon as we *do* get something into the buffer.
9973 if (state.length ===
0 && !state.ended)
9974 state.needReadable = true;
9976 // If we tried to read() past the EOF, then emit end on the next tick.
9977 if (nOrig !== n && state.ended && state.length ===
0)
9980 if (!util.isNull(ret))
9981 this.emit('data', ret);
9986 function chunkInvalid(state, chunk) {
9988 if (!util.isBuffer(chunk) &&
9989 !util.isString(chunk) &&
9990 !util.isNullOrUndefined(chunk) &&
9991 !state.objectMode) {
9992 er = new TypeError('Invalid non-string/buffer chunk');
9998 function onEofChunk(stream, state) {
9999 if (state.decoder && !state.ended) {
10000 var chunk = state.decoder.end();
10001 if (chunk && chunk.length) {
10002 state.buffer.push(chunk);
10003 state.length += state.objectMode ?
1 : chunk.length;
10006 state.ended = true;
10008 // emit 'readable' now to make sure it gets picked up.
10009 emitReadable(stream);
10012 // Don't emit readable right away in sync mode, because this can trigger
10013 // another read() call =
> stack overflow. This way, it might trigger
10014 // a nextTick recursion warning, but that's not so bad.
10015 function emitReadable(stream) {
10016 var state = stream._readableState;
10017 state.needReadable = false;
10018 if (!state.emittedReadable) {
10019 debug('emitReadable', state.flowing);
10020 state.emittedReadable = true;
10022 process.nextTick(function() {
10023 emitReadable_(stream);
10026 emitReadable_(stream);
10030 function emitReadable_(stream) {
10031 debug('emit readable');
10032 stream.emit('readable');
10037 // at this point, the user has presumably seen the 'readable' event,
10038 // and called read() to consume some data. that may have triggered
10039 // in turn another _read(n) call, in which case reading = true if
10040 // it's in progress.
10041 // However, if we're not ended, or reading, and the length < hwm,
10042 // then go ahead and try to read some more preemptively.
10043 function maybeReadMore(stream, state) {
10044 if (!state.readingMore) {
10045 state.readingMore = true;
10046 process.nextTick(function() {
10047 maybeReadMore_(stream, state);
10052 function maybeReadMore_(stream, state) {
10053 var len = state.length;
10054 while (!state.reading && !state.flowing && !state.ended &&
10055 state.length < state.highWaterMark) {
10056 debug('maybeReadMore read
0');
10058 if (len === state.length)
10059 // didn't get any data, stop spinning.
10062 len = state.length;
10064 state.readingMore = false;
10067 // abstract method. to be overridden in specific implementation classes.
10068 // call cb(er, data) where data is <= n in length.
10069 // for virtual (non-string, non-buffer) streams, "length" is somewhat
10070 // arbitrary, and perhaps not very meaningful.
10071 Readable.prototype._read = function(n) {
10072 this.emit('error', new Error('not implemented'));
10075 Readable.prototype.pipe = function(dest, pipeOpts) {
10077 var state = this._readableState;
10079 switch (state.pipesCount) {
10081 state.pipes = dest;
10084 state.pipes = [state.pipes, dest];
10087 state.pipes.push(dest);
10090 state.pipesCount +=
1;
10091 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
10093 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
10094 dest !== process.stdout &&
10095 dest !== process.stderr;
10097 var endFn = doEnd ? onend : cleanup;
10098 if (state.endEmitted)
10099 process.nextTick(endFn);
10101 src.once('end', endFn);
10103 dest.on('unpipe', onunpipe);
10104 function onunpipe(readable) {
10106 if (readable === src) {
10116 // when the dest drains, it reduces the awaitDrain counter
10117 // on the source. This would be more elegant with a .once()
10118 // handler in flow(), but adding and removing repeatedly is
10120 var ondrain = pipeOnDrain(src);
10121 dest.on('drain', ondrain);
10123 function cleanup() {
10125 // cleanup event handlers once the pipe is broken
10126 dest.removeListener('close', onclose);
10127 dest.removeListener('finish', onfinish);
10128 dest.removeListener('drain', ondrain);
10129 dest.removeListener('error', onerror);
10130 dest.removeListener('unpipe', onunpipe);
10131 src.removeListener('end', onend);
10132 src.removeListener('end', cleanup);
10133 src.removeListener('data', ondata);
10135 // if the reader is waiting for a drain event from this
10136 // specific writer, then it would cause it to never start
10138 // So, if this is awaiting a drain, then we just call it now.
10139 // If we don't know, then assume that we are waiting for one.
10140 if (state.awaitDrain &&
10141 (!dest._writableState || dest._writableState.needDrain))
10145 src.on('data', ondata);
10146 function ondata(chunk) {
10148 var ret = dest.write(chunk);
10149 if (false === ret) {
10150 debug('false write response, pause',
10151 src._readableState.awaitDrain);
10152 src._readableState.awaitDrain++;
10157 // if the dest has an error, then stop piping into it.
10158 // however, don't suppress the throwing behavior for this.
10159 function onerror(er) {
10160 debug('onerror', er);
10162 dest.removeListener('error', onerror);
10163 if (EE.listenerCount(dest, 'error') ===
0)
10164 dest.emit('error', er);
10166 // This is a brutally ugly hack to make sure that our error handler
10167 // is attached before any userland ones. NEVER DO THIS.
10168 if (!dest._events || !dest._events.error)
10169 dest.on('error', onerror);
10170 else if (isArray(dest._events.error))
10171 dest._events.error.unshift(onerror);
10173 dest._events.error = [onerror, dest._events.error];
10177 // Both close and finish should trigger unpipe, but only once.
10178 function onclose() {
10179 dest.removeListener('finish', onfinish);
10182 dest.once('close', onclose);
10183 function onfinish() {
10185 dest.removeListener('close', onclose);
10188 dest.once('finish', onfinish);
10190 function unpipe() {
10195 // tell the dest that it's being piped to
10196 dest.emit('pipe', src);
10198 // start the flow if it hasn't been started already.
10199 if (!state.flowing) {
10200 debug('pipe resume');
10207 function pipeOnDrain(src) {
10208 return function() {
10209 var state = src._readableState;
10210 debug('pipeOnDrain', state.awaitDrain);
10211 if (state.awaitDrain)
10212 state.awaitDrain--;
10213 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
10214 state.flowing = true;
10221 Readable.prototype.unpipe = function(dest) {
10222 var state = this._readableState;
10224 // if we're not piping anywhere, then do nothing.
10225 if (state.pipesCount ===
0)
10228 // just one destination. most common case.
10229 if (state.pipesCount ===
1) {
10230 // passed in one, but it's not the right one.
10231 if (dest && dest !== state.pipes)
10235 dest = state.pipes;
10238 state.pipes = null;
10239 state.pipesCount =
0;
10240 state.flowing = false;
10242 dest.emit('unpipe', this);
10246 // slow case. multiple pipe destinations.
10250 var dests = state.pipes;
10251 var len = state.pipesCount;
10252 state.pipes = null;
10253 state.pipesCount =
0;
10254 state.flowing = false;
10256 for (var i =
0; i < len; i++)
10257 dests[i].emit('unpipe', this);
10261 // try to find the right one.
10262 var i = indexOf(state.pipes, dest);
10266 state.pipes.splice(i,
1);
10267 state.pipesCount -=
1;
10268 if (state.pipesCount ===
1)
10269 state.pipes = state.pipes[
0];
10271 dest.emit('unpipe', this);
10276 // set up data events if they are asked for
10277 // Ensure readable listeners eventually get something
10278 Readable.prototype.on = function(ev, fn) {
10279 var res = Stream.prototype.on.call(this, ev, fn);
10281 // If listening to data, and it has not explicitly been paused,
10282 // then call resume to start the flow of data on the next tick.
10283 if (ev === 'data' && false !== this._readableState.flowing) {
10287 if (ev === 'readable' && this.readable) {
10288 var state = this._readableState;
10289 if (!state.readableListening) {
10290 state.readableListening = true;
10291 state.emittedReadable = false;
10292 state.needReadable = true;
10293 if (!state.reading) {
10295 process.nextTick(function() {
10296 debug('readable nexttick read
0');
10299 } else if (state.length) {
10300 emitReadable(this, state);
10307 Readable.prototype.addListener = Readable.prototype.on;
10309 // pause() and resume() are remnants of the legacy readable stream API
10310 // If the user uses them, then switch into old mode.
10311 Readable.prototype.resume = function() {
10312 var state = this._readableState;
10313 if (!state.flowing) {
10315 state.flowing = true;
10316 if (!state.reading) {
10317 debug('resume read
0');
10320 resume(this, state);
10325 function resume(stream, state) {
10326 if (!state.resumeScheduled) {
10327 state.resumeScheduled = true;
10328 process.nextTick(function() {
10329 resume_(stream, state);
10334 function resume_(stream, state) {
10335 state.resumeScheduled = false;
10336 stream.emit('resume');
10338 if (state.flowing && !state.reading)
10342 Readable.prototype.pause = function() {
10343 debug('call pause flowing=%j', this._readableState.flowing);
10344 if (false !== this._readableState.flowing) {
10346 this._readableState.flowing = false;
10347 this.emit('pause');
10352 function flow(stream) {
10353 var state = stream._readableState;
10354 debug('flow', state.flowing);
10355 if (state.flowing) {
10357 var chunk = stream.read();
10358 } while (null !== chunk && state.flowing);
10362 // wrap an old-style stream as the async data source.
10363 // This is *not* part of the readable stream interface.
10364 // It is an ugly unfortunate mess of history.
10365 Readable.prototype.wrap = function(stream) {
10366 var state = this._readableState;
10367 var paused = false;
10370 stream.on('end', function() {
10371 debug('wrapped end');
10372 if (state.decoder && !state.ended) {
10373 var chunk = state.decoder.end();
10374 if (chunk && chunk.length)
10381 stream.on('data', function(chunk) {
10382 debug('wrapped data');
10384 chunk = state.decoder.write(chunk);
10385 if (!chunk || !state.objectMode && !chunk.length)
10388 var ret = self.push(chunk);
10395 // proxy all the other methods.
10396 // important when wrapping filters and duplexes.
10397 for (var i in stream) {
10398 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
10399 this[i] = function(method) { return function() {
10400 return stream[method].apply(stream, arguments);
10405 // proxy certain important events.
10406 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
10407 forEach(events, function(ev) {
10408 stream.on(ev, self.emit.bind(self, ev));
10411 // when we try to consume some more bytes, simply unpause the
10412 // underlying stream.
10413 self._read = function(n) {
10414 debug('wrapped _read', n);
10426 // exposed for testing purposes only.
10427 Readable._fromList = fromList;
10429 // Pluck off n bytes from an array of buffers.
10430 // Length is the combined lengths of all the buffers in the list.
10431 function fromList(n, state) {
10432 var list = state.buffer;
10433 var length = state.length;
10434 var stringMode = !!state.decoder;
10435 var objectMode = !!state.objectMode;
10438 // nothing in the list, definitely empty.
10439 if (list.length ===
0)
10444 else if (objectMode)
10445 ret = list.shift();
10446 else if (!n || n
>= length) {
10447 // read it all, truncate the array.
10449 ret = list.join('');
10451 ret = Buffer.concat(list, length);
10454 // read just some of it.
10455 if (n < list[
0].length) {
10456 // just take a part of the first list item.
10457 // slice is the same for buffers and strings.
10459 ret = buf.slice(
0, n);
10460 list[
0] = buf.slice(n);
10461 } else if (n === list[
0].length) {
10462 // first list is a perfect match
10463 ret = list.shift();
10466 // we have enough to cover it, but it spans past the first buffer.
10470 ret = new Buffer(n);
10473 for (var i =
0, l = list.length; i < l && c < n; i++) {
10475 var cpy = Math.min(n - c, buf.length);
10478 ret += buf.slice(
0, cpy);
10480 buf.copy(ret, c,
0, cpy);
10482 if (cpy < buf.length)
10483 list[
0] = buf.slice(cpy);
10495 function endReadable(stream) {
10496 var state = stream._readableState;
10498 // If we get here before consuming all the bytes, then that is a
10499 // bug in node. Should never happen.
10500 if (state.length
> 0)
10501 throw new Error('endReadable called on non-empty stream');
10503 if (!state.endEmitted) {
10504 state.ended = true;
10505 process.nextTick(function() {
10506 // Check that we didn't get one last unshift.
10507 if (!state.endEmitted && state.length ===
0) {
10508 state.endEmitted = true;
10509 stream.readable = false;
10510 stream.emit('end');
10516 function forEach (xs, f) {
10517 for (var i =
0, l = xs.length; i < l; i++) {
10522 function indexOf (xs, x) {
10523 for (var i =
0, l = xs.length; i < l; i++) {
10524 if (xs[i] === x) return i;
10529 }).call(this,require('_process'))
10530 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"events":
11,
"inherits":
12,
"isarray":
13,
"stream":
26,
"string_decoder/":
27,
"util":
6}],
19:[function(require,module,exports){
10531 // Copyright Joyent, Inc. and other Node contributors.
10533 // Permission is hereby granted, free of charge, to any person obtaining a
10534 // copy of this software and associated documentation files (the
10535 //
"Software"), to deal in the Software without restriction, including
10536 // without limitation the rights to use, copy, modify, merge, publish,
10537 // distribute, sublicense, and/or sell copies of the Software, and to permit
10538 // persons to whom the Software is furnished to do so, subject to the
10539 // following conditions:
10541 // The above copyright notice and this permission notice shall be included
10542 // in all copies or substantial portions of the Software.
10544 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10545 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10546 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10547 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10548 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10549 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10550 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10553 // a transform stream is a readable/writable stream where you do
10554 // something with the data. Sometimes it's called a
"filter",
10555 // but that's not a great name for it, since that implies a thing where
10556 // some bits pass through, and others are simply ignored. (That would
10557 // be a valid example of a transform, of course.)
10559 // While the output is causally related to the input, it's not a
10560 // necessarily symmetric or synchronous transformation. For example,
10561 // a zlib stream might take multiple plain-text writes(), and then
10562 // emit a single compressed chunk some time in the future.
10564 // Here's how this works:
10566 // The Transform stream has all the aspects of the readable and writable
10567 // stream classes. When you write(chunk), that calls _write(chunk,cb)
10568 // internally, and returns false if there's a lot of pending writes
10569 // buffered up. When you call read(), that calls _read(n) until
10570 // there's enough pending readable data buffered up.
10572 // In a transform stream, the written data is placed in a buffer. When
10573 // _read(n) is called, it transforms the queued up data, calling the
10574 // buffered _write cb's as it consumes chunks. If consuming a single
10575 // written chunk would result in multiple output chunks, then the first
10576 // outputted bit calls the readcb, and subsequent chunks just go into
10577 // the read buffer, and will cause it to emit 'readable' if necessary.
10579 // This way, back-pressure is actually determined by the reading side,
10580 // since _read has to be called to start processing a new chunk. However,
10581 // a pathological inflate type of transform can cause excessive buffering
10582 // here. For example, imagine a stream where every byte of input is
10583 // interpreted as an integer from
0-
255, and then results in that many
10584 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
10585 //
1kb of data being output. In this case, you could write a very small
10586 // amount of input, and end up with a very large amount of output. In
10587 // such a pathological inflating mechanism, there'd be no way to tell
10588 // the system to stop doing the transform. A single
4MB write could
10589 // cause the system to run out of memory.
10591 // However, even in such a pathological case, only a single written chunk
10592 // would be consumed, and then the rest would wait (un-transformed) until
10593 // the results of the previous transformed chunk were consumed.
10595 module.exports = Transform;
10597 var Duplex = require('./_stream_duplex');
10600 var util = require('core-util-is');
10601 util.inherits = require('inherits');
10604 util.inherits(Transform, Duplex);
10607 function TransformState(options, stream) {
10608 this.afterTransform = function(er, data) {
10609 return afterTransform(stream, er, data);
10612 this.needTransform = false;
10613 this.transforming = false;
10614 this.writecb = null;
10615 this.writechunk = null;
10618 function afterTransform(stream, er, data) {
10619 var ts = stream._transformState;
10620 ts.transforming = false;
10622 var cb = ts.writecb;
10625 return stream.emit('error', new Error('no writecb in Transform class'));
10627 ts.writechunk = null;
10630 if (!util.isNullOrUndefined(data))
10636 var rs = stream._readableState;
10637 rs.reading = false;
10638 if (rs.needReadable || rs.length < rs.highWaterMark) {
10639 stream._read(rs.highWaterMark);
10644 function Transform(options) {
10645 if (!(this instanceof Transform))
10646 return new Transform(options);
10648 Duplex.call(this, options);
10650 this._transformState = new TransformState(options, this);
10652 // when the writable side finishes, then flush out anything remaining.
10655 // start out asking for a readable event once data is transformed.
10656 this._readableState.needReadable = true;
10658 // we have implemented the _read method, and done the other things
10659 // that Readable wants before the first _read call, so unset the
10660 // sync guard flag.
10661 this._readableState.sync = false;
10663 this.once('prefinish', function() {
10664 if (util.isFunction(this._flush))
10665 this._flush(function(er) {
10673 Transform.prototype.push = function(chunk, encoding) {
10674 this._transformState.needTransform = false;
10675 return Duplex.prototype.push.call(this, chunk, encoding);
10678 // This is the part where you do stuff!
10679 // override this function in implementation classes.
10680 // 'chunk' is an input chunk.
10682 // Call `push(newChunk)` to pass along transformed output
10683 // to the readable side. You may call 'push' zero or more times.
10685 // Call `cb(err)` when you are done with this chunk. If you pass
10686 // an error, then that'll put the hurt on the whole operation. If you
10687 // never call cb(), then you'll never get another chunk.
10688 Transform.prototype._transform = function(chunk, encoding, cb) {
10689 throw new Error('not implemented');
10692 Transform.prototype._write = function(chunk, encoding, cb) {
10693 var ts = this._transformState;
10695 ts.writechunk = chunk;
10696 ts.writeencoding = encoding;
10697 if (!ts.transforming) {
10698 var rs = this._readableState;
10699 if (ts.needTransform ||
10701 rs.length < rs.highWaterMark)
10702 this._read(rs.highWaterMark);
10706 // Doesn't matter what the args are here.
10707 // _transform does all the work.
10708 // That we got here means that the readable side wants more data.
10709 Transform.prototype._read = function(n) {
10710 var ts = this._transformState;
10712 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
10713 ts.transforming = true;
10714 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
10716 // mark that we need a transform, so that any data that comes in
10717 // will get processed, now that we've asked for it.
10718 ts.needTransform = true;
10723 function done(stream, er) {
10725 return stream.emit('error', er);
10727 // if there's nothing in the write buffer, then that means
10728 // that nothing more will ever be provided
10729 var ws = stream._writableState;
10730 var ts = stream._transformState;
10733 throw new Error('calling transform done when ws.length !=
0');
10735 if (ts.transforming)
10736 throw new Error('calling transform done when still transforming');
10738 return stream.push(null);
10741 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
10742 (function (process){
10743 // Copyright Joyent, Inc. and other Node contributors.
10745 // Permission is hereby granted, free of charge, to any person obtaining a
10746 // copy of this software and associated documentation files (the
10747 // "Software"), to deal in the Software without restriction, including
10748 // without limitation the rights to use, copy, modify, merge, publish,
10749 // distribute, sublicense, and/or sell copies of the Software, and to permit
10750 // persons to whom the Software is furnished to do so, subject to the
10751 // following conditions:
10753 // The above copyright notice and this permission notice shall be included
10754 // in all copies or substantial portions of the Software.
10756 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10757 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10758 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10759 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10760 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10761 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10762 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10764 // A bit simpler than readable streams.
10765 // Implement an async ._write(chunk, cb), and it'll handle all
10766 // the drain event emission and buffering.
10768 module.exports = Writable;
10771 var Buffer = require('buffer').Buffer;
10774 Writable.WritableState = WritableState;
10778 var util = require('core-util-is');
10779 util.inherits = require('inherits');
10782 var Stream = require('stream');
10784 util.inherits(Writable, Stream);
10786 function WriteReq(chunk, encoding, cb) {
10787 this.chunk = chunk;
10788 this.encoding = encoding;
10789 this.callback = cb;
10792 function WritableState(options, stream) {
10793 var Duplex = require('./_stream_duplex');
10795 options = options || {};
10797 // the point at which write() starts returning false
10798 // Note:
0 is a valid value, means that we always return false if
10799 // the entire buffer is not flushed immediately on write()
10800 var hwm = options.highWaterMark;
10801 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
10802 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
10804 // object stream flag to indicate whether or not this stream
10805 // contains buffers or objects.
10806 this.objectMode = !!options.objectMode;
10808 if (stream instanceof Duplex)
10809 this.objectMode = this.objectMode || !!options.writableObjectMode;
10812 this.highWaterMark = ~~this.highWaterMark;
10814 this.needDrain = false;
10815 // at the start of calling end()
10816 this.ending = false;
10817 // when end() has been called, and returned
10818 this.ended = false;
10819 // when 'finish' is emitted
10820 this.finished = false;
10822 // should we decode strings into buffers before passing to _write?
10823 // this is here so that some node-core streams can optimize string
10824 // handling at a lower level.
10825 var noDecode = options.decodeStrings === false;
10826 this.decodeStrings = !noDecode;
10828 // Crypto is kind of old and crusty. Historically, its default string
10829 // encoding is 'binary' so we have to make this configurable.
10830 // Everything else in the universe uses 'utf8', though.
10831 this.defaultEncoding = options.defaultEncoding || 'utf8';
10833 // not an actual buffer we keep track of, but a measurement
10834 // of how much we're waiting to get pushed to some underlying
10838 // a flag to see when we're in the middle of a write.
10839 this.writing = false;
10841 // when true all writes will be buffered until .uncork() call
10844 // a flag to be able to tell if the onwrite cb is called immediately,
10845 // or on a later tick. We set this to true at first, because any
10846 // actions that shouldn't happen until "later" should generally also
10847 // not happen before the first write call.
10850 // a flag to know if we're processing previously buffered items, which
10851 // may call the _write() callback in the same tick, so that we don't
10852 // end up in an overlapped onwrite situation.
10853 this.bufferProcessing = false;
10855 // the callback that's passed to _write(chunk,cb)
10856 this.onwrite = function(er) {
10857 onwrite(stream, er);
10860 // the callback that the user supplies to write(chunk,encoding,cb)
10861 this.writecb = null;
10863 // the amount that is being written when _write is called.
10868 // number of pending user-supplied write callbacks
10869 // this must be
0 before 'finish' can be emitted
10870 this.pendingcb =
0;
10872 // emit prefinish if the only thing we're waiting for is _write cbs
10873 // This is relevant for synchronous Transform streams
10874 this.prefinished = false;
10876 // True if the error was already emitted and should not be thrown again
10877 this.errorEmitted = false;
10880 function Writable(options) {
10881 var Duplex = require('./_stream_duplex');
10883 // Writable ctor is applied to Duplexes, though they're not
10884 // instanceof Writable, they're instanceof Readable.
10885 if (!(this instanceof Writable) && !(this instanceof Duplex))
10886 return new Writable(options);
10888 this._writableState = new WritableState(options, this);
10891 this.writable = true;
10896 // Otherwise people can pipe Writable streams, which is just wrong.
10897 Writable.prototype.pipe = function() {
10898 this.emit('error', new Error('Cannot pipe. Not readable.'));
10902 function writeAfterEnd(stream, state, cb) {
10903 var er = new Error('write after end');
10904 // TODO: defer error events consistently everywhere, not just the cb
10905 stream.emit('error', er);
10906 process.nextTick(function() {
10911 // If we get something that is not a buffer, string, null, or undefined,
10912 // and we're not in objectMode, then that's an error.
10913 // Otherwise stream chunks are all considered to be of length=
1, and the
10914 // watermarks determine how many objects to keep in the buffer, rather than
10915 // how many bytes or characters.
10916 function validChunk(stream, state, chunk, cb) {
10918 if (!util.isBuffer(chunk) &&
10919 !util.isString(chunk) &&
10920 !util.isNullOrUndefined(chunk) &&
10921 !state.objectMode) {
10922 var er = new TypeError('Invalid non-string/buffer chunk');
10923 stream.emit('error', er);
10924 process.nextTick(function() {
10932 Writable.prototype.write = function(chunk, encoding, cb) {
10933 var state = this._writableState;
10936 if (util.isFunction(encoding)) {
10941 if (util.isBuffer(chunk))
10942 encoding = 'buffer';
10943 else if (!encoding)
10944 encoding = state.defaultEncoding;
10946 if (!util.isFunction(cb))
10947 cb = function() {};
10950 writeAfterEnd(this, state, cb);
10951 else if (validChunk(this, state, chunk, cb)) {
10953 ret = writeOrBuffer(this, state, chunk, encoding, cb);
10959 Writable.prototype.cork = function() {
10960 var state = this._writableState;
10965 Writable.prototype.uncork = function() {
10966 var state = this._writableState;
10968 if (state.corked) {
10971 if (!state.writing &&
10974 !state.bufferProcessing &&
10975 state.buffer.length)
10976 clearBuffer(this, state);
10980 function decodeChunk(state, chunk, encoding) {
10981 if (!state.objectMode &&
10982 state.decodeStrings !== false &&
10983 util.isString(chunk)) {
10984 chunk = new Buffer(chunk, encoding);
10989 // if we're already writing something, then just put this
10990 // in the queue, and wait our turn. Otherwise, call _write
10991 // If we return false, then we need a drain event, so set that flag.
10992 function writeOrBuffer(stream, state, chunk, encoding, cb) {
10993 chunk = decodeChunk(state, chunk, encoding);
10994 if (util.isBuffer(chunk))
10995 encoding = 'buffer';
10996 var len = state.objectMode ?
1 : chunk.length;
10998 state.length += len;
11000 var ret = state.length < state.highWaterMark;
11001 // we must ensure that previous needDrain will not be reset to false.
11003 state.needDrain = true;
11005 if (state.writing || state.corked)
11006 state.buffer.push(new WriteReq(chunk, encoding, cb));
11008 doWrite(stream, state, false, len, chunk, encoding, cb);
11013 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
11014 state.writelen = len;
11015 state.writecb = cb;
11016 state.writing = true;
11019 stream._writev(chunk, state.onwrite);
11021 stream._write(chunk, encoding, state.onwrite);
11022 state.sync = false;
11025 function onwriteError(stream, state, sync, er, cb) {
11027 process.nextTick(function() {
11036 stream._writableState.errorEmitted = true;
11037 stream.emit('error', er);
11040 function onwriteStateUpdate(state) {
11041 state.writing = false;
11042 state.writecb = null;
11043 state.length -= state.writelen;
11044 state.writelen =
0;
11047 function onwrite(stream, er) {
11048 var state = stream._writableState;
11049 var sync = state.sync;
11050 var cb = state.writecb;
11052 onwriteStateUpdate(state);
11055 onwriteError(stream, state, sync, er, cb);
11057 // Check if we're actually ready to finish, but don't emit yet
11058 var finished = needFinish(stream, state);
11062 !state.bufferProcessing &&
11063 state.buffer.length) {
11064 clearBuffer(stream, state);
11068 process.nextTick(function() {
11069 afterWrite(stream, state, finished, cb);
11072 afterWrite(stream, state, finished, cb);
11077 function afterWrite(stream, state, finished, cb) {
11079 onwriteDrain(stream, state);
11082 finishMaybe(stream, state);
11085 // Must force callback to be called on nextTick, so that we don't
11086 // emit 'drain' before the write() consumer gets the 'false' return
11087 // value, and has a chance to attach a 'drain' listener.
11088 function onwriteDrain(stream, state) {
11089 if (state.length ===
0 && state.needDrain) {
11090 state.needDrain = false;
11091 stream.emit('drain');
11096 // if there's something in the buffer waiting, then process it
11097 function clearBuffer(stream, state) {
11098 state.bufferProcessing = true;
11100 if (stream._writev && state.buffer.length
> 1) {
11101 // Fast case, write everything using _writev()
11103 for (var c =
0; c < state.buffer.length; c++)
11104 cbs.push(state.buffer[c].callback);
11106 // count the one we are adding, as well.
11107 // TODO(isaacs) clean this up
11109 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
11110 for (var i =
0; i < cbs.length; i++) {
11119 // Slow case, write chunks one-by-one
11120 for (var c =
0; c < state.buffer.length; c++) {
11121 var entry = state.buffer[c];
11122 var chunk = entry.chunk;
11123 var encoding = entry.encoding;
11124 var cb = entry.callback;
11125 var len = state.objectMode ?
1 : chunk.length;
11127 doWrite(stream, state, false, len, chunk, encoding, cb);
11129 // if we didn't call the onwrite immediately, then
11130 // it means that we need to wait until it does.
11131 // also, that means that the chunk and cb are currently
11132 // being processed, so move the buffer counter past them.
11133 if (state.writing) {
11139 if (c < state.buffer.length)
11140 state.buffer = state.buffer.slice(c);
11142 state.buffer.length =
0;
11145 state.bufferProcessing = false;
11148 Writable.prototype._write = function(chunk, encoding, cb) {
11149 cb(new Error('not implemented'));
11153 Writable.prototype._writev = null;
11155 Writable.prototype.end = function(chunk, encoding, cb) {
11156 var state = this._writableState;
11158 if (util.isFunction(chunk)) {
11162 } else if (util.isFunction(encoding)) {
11167 if (!util.isNullOrUndefined(chunk))
11168 this.write(chunk, encoding);
11170 // .end() fully uncorks
11171 if (state.corked) {
11176 // ignore unnecessary end() calls.
11177 if (!state.ending && !state.finished)
11178 endWritable(this, state, cb);
11182 function needFinish(stream, state) {
11183 return (state.ending &&
11184 state.length ===
0 &&
11189 function prefinish(stream, state) {
11190 if (!state.prefinished) {
11191 state.prefinished = true;
11192 stream.emit('prefinish');
11196 function finishMaybe(stream, state) {
11197 var need = needFinish(stream, state);
11199 if (state.pendingcb ===
0) {
11200 prefinish(stream, state);
11201 state.finished = true;
11202 stream.emit('finish');
11204 prefinish(stream, state);
11209 function endWritable(stream, state, cb) {
11210 state.ending = true;
11211 finishMaybe(stream, state);
11213 if (state.finished)
11214 process.nextTick(cb);
11216 stream.once('finish', cb);
11218 state.ended = true;
11221 }).call(this,require('_process'))
11222 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
11223 (function (Buffer){
11224 // Copyright Joyent, Inc. and other Node contributors.
11226 // Permission is hereby granted, free of charge, to any person obtaining a
11227 // copy of this software and associated documentation files (the
11228 //
"Software"), to deal in the Software without restriction, including
11229 // without limitation the rights to use, copy, modify, merge, publish,
11230 // distribute, sublicense, and/or sell copies of the Software, and to permit
11231 // persons to whom the Software is furnished to do so, subject to the
11232 // following conditions:
11234 // The above copyright notice and this permission notice shall be included
11235 // in all copies or substantial portions of the Software.
11237 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11238 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11239 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11240 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11241 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11242 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11243 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11245 // NOTE: These type checking functions intentionally don't use `instanceof`
11246 // because it is fragile and can be easily faked with `Object.create()`.
11247 function isArray(ar) {
11248 return Array.isArray(ar);
11250 exports.isArray = isArray;
11252 function isBoolean(arg) {
11253 return typeof arg === 'boolean';
11255 exports.isBoolean = isBoolean;
11257 function isNull(arg) {
11258 return arg === null;
11260 exports.isNull = isNull;
11262 function isNullOrUndefined(arg) {
11263 return arg == null;
11265 exports.isNullOrUndefined = isNullOrUndefined;
11267 function isNumber(arg) {
11268 return typeof arg === 'number';
11270 exports.isNumber = isNumber;
11272 function isString(arg) {
11273 return typeof arg === 'string';
11275 exports.isString = isString;
11277 function isSymbol(arg) {
11278 return typeof arg === 'symbol';
11280 exports.isSymbol = isSymbol;
11282 function isUndefined(arg) {
11283 return arg === void
0;
11285 exports.isUndefined = isUndefined;
11287 function isRegExp(re) {
11288 return isObject(re) && objectToString(re) === '[object RegExp]';
11290 exports.isRegExp = isRegExp;
11292 function isObject(arg) {
11293 return typeof arg === 'object' && arg !== null;
11295 exports.isObject = isObject;
11297 function isDate(d) {
11298 return isObject(d) && objectToString(d) === '[object Date]';
11300 exports.isDate = isDate;
11302 function isError(e) {
11303 return isObject(e) &&
11304 (objectToString(e) === '[object Error]' || e instanceof Error);
11306 exports.isError = isError;
11308 function isFunction(arg) {
11309 return typeof arg === 'function';
11311 exports.isFunction = isFunction;
11313 function isPrimitive(arg) {
11314 return arg === null ||
11315 typeof arg === 'boolean' ||
11316 typeof arg === 'number' ||
11317 typeof arg === 'string' ||
11318 typeof arg === 'symbol' || // ES6 symbol
11319 typeof arg === 'undefined';
11321 exports.isPrimitive = isPrimitive;
11323 function isBuffer(arg) {
11324 return Buffer.isBuffer(arg);
11326 exports.isBuffer = isBuffer;
11328 function objectToString(o) {
11329 return Object.prototype.toString.call(o);
11331 }).call(this,require(
"buffer").Buffer)
11332 },{
"buffer":
7}],
22:[function(require,module,exports){
11333 module.exports = require(
"./lib/_stream_passthrough.js")
11335 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
11336 exports = module.exports = require('./lib/_stream_readable.js');
11337 exports.Stream = require('stream');
11338 exports.Readable = exports;
11339 exports.Writable = require('./lib/_stream_writable.js');
11340 exports.Duplex = require('./lib/_stream_duplex.js');
11341 exports.Transform = require('./lib/_stream_transform.js');
11342 exports.PassThrough = require('./lib/_stream_passthrough.js');
11344 },{
"./lib/_stream_duplex.js":
16,
"./lib/_stream_passthrough.js":
17,
"./lib/_stream_readable.js":
18,
"./lib/_stream_transform.js":
19,
"./lib/_stream_writable.js":
20,
"stream":
26}],
24:[function(require,module,exports){
11345 module.exports = require(
"./lib/_stream_transform.js")
11347 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
11348 module.exports = require(
"./lib/_stream_writable.js")
11350 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
11351 // Copyright Joyent, Inc. and other Node contributors.
11353 // Permission is hereby granted, free of charge, to any person obtaining a
11354 // copy of this software and associated documentation files (the
11355 //
"Software"), to deal in the Software without restriction, including
11356 // without limitation the rights to use, copy, modify, merge, publish,
11357 // distribute, sublicense, and/or sell copies of the Software, and to permit
11358 // persons to whom the Software is furnished to do so, subject to the
11359 // following conditions:
11361 // The above copyright notice and this permission notice shall be included
11362 // in all copies or substantial portions of the Software.
11364 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11365 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11366 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11367 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11368 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11369 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11370 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11372 module.exports = Stream;
11374 var EE = require('events').EventEmitter;
11375 var inherits = require('inherits');
11377 inherits(Stream, EE);
11378 Stream.Readable = require('readable-stream/readable.js');
11379 Stream.Writable = require('readable-stream/writable.js');
11380 Stream.Duplex = require('readable-stream/duplex.js');
11381 Stream.Transform = require('readable-stream/transform.js');
11382 Stream.PassThrough = require('readable-stream/passthrough.js');
11384 // Backwards-compat with node
0.4.x
11385 Stream.Stream = Stream;
11389 // old-style streams. Note that the pipe method (the only relevant
11390 // part of this class) is overridden in the Readable class.
11392 function Stream() {
11396 Stream.prototype.pipe = function(dest, options) {
11399 function ondata(chunk) {
11400 if (dest.writable) {
11401 if (false === dest.write(chunk) && source.pause) {
11407 source.on('data', ondata);
11409 function ondrain() {
11410 if (source.readable && source.resume) {
11415 dest.on('drain', ondrain);
11417 // If the 'end' option is not supplied, dest.end() will be called when
11418 // source gets the 'end' or 'close' events. Only dest.end() once.
11419 if (!dest._isStdio && (!options || options.end !== false)) {
11420 source.on('end', onend);
11421 source.on('close', onclose);
11424 var didOnEnd = false;
11426 if (didOnEnd) return;
11433 function onclose() {
11434 if (didOnEnd) return;
11437 if (typeof dest.destroy === 'function') dest.destroy();
11440 // don't leave dangling pipes when there are errors.
11441 function onerror(er) {
11443 if (EE.listenerCount(this, 'error') ===
0) {
11444 throw er; // Unhandled stream error in pipe.
11448 source.on('error', onerror);
11449 dest.on('error', onerror);
11451 // remove all the event listeners that were added.
11452 function cleanup() {
11453 source.removeListener('data', ondata);
11454 dest.removeListener('drain', ondrain);
11456 source.removeListener('end', onend);
11457 source.removeListener('close', onclose);
11459 source.removeListener('error', onerror);
11460 dest.removeListener('error', onerror);
11462 source.removeListener('end', cleanup);
11463 source.removeListener('close', cleanup);
11465 dest.removeListener('close', cleanup);
11468 source.on('end', cleanup);
11469 source.on('close', cleanup);
11471 dest.on('close', cleanup);
11473 dest.emit('pipe', source);
11475 // Allow for unix-like usage: A.pipe(B).pipe(C)
11479 },{
"events":
11,
"inherits":
12,
"readable-stream/duplex.js":
15,
"readable-stream/passthrough.js":
22,
"readable-stream/readable.js":
23,
"readable-stream/transform.js":
24,
"readable-stream/writable.js":
25}],
27:[function(require,module,exports){
11480 // Copyright Joyent, Inc. and other Node contributors.
11482 // Permission is hereby granted, free of charge, to any person obtaining a
11483 // copy of this software and associated documentation files (the
11484 //
"Software"), to deal in the Software without restriction, including
11485 // without limitation the rights to use, copy, modify, merge, publish,
11486 // distribute, sublicense, and/or sell copies of the Software, and to permit
11487 // persons to whom the Software is furnished to do so, subject to the
11488 // following conditions:
11490 // The above copyright notice and this permission notice shall be included
11491 // in all copies or substantial portions of the Software.
11493 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11494 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11495 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11496 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11497 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11498 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11499 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11501 var Buffer = require('buffer').Buffer;
11503 var isBufferEncoding = Buffer.isEncoding
11504 || function(encoding) {
11505 switch (encoding && encoding.toLowerCase()) {
11506 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;
11507 default: return false;
11512 function assertEncoding(encoding) {
11513 if (encoding && !isBufferEncoding(encoding)) {
11514 throw new Error('Unknown encoding: ' + encoding);
11518 // StringDecoder provides an interface for efficiently splitting a series of
11519 // buffers into a series of JS strings without breaking apart multi-byte
11520 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
11522 // @TODO Handling all encodings inside a single object makes it very difficult
11523 // to reason about this code, so it should be split up in the future.
11524 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
11525 // points as used by CESU-
8.
11526 var StringDecoder = exports.StringDecoder = function(encoding) {
11527 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
11528 assertEncoding(encoding);
11529 switch (this.encoding) {
11531 // CESU-
8 represents each of Surrogate Pair by
3-bytes
11532 this.surrogateSize =
3;
11536 // UTF-
16 represents each of Surrogate Pair by
2-bytes
11537 this.surrogateSize =
2;
11538 this.detectIncompleteChar = utf16DetectIncompleteChar;
11541 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
11542 this.surrogateSize =
3;
11543 this.detectIncompleteChar = base64DetectIncompleteChar;
11546 this.write = passThroughWrite;
11550 // Enough space to store all bytes of a single character. UTF-
8 needs
4
11551 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
11552 this.charBuffer = new Buffer(
6);
11553 // Number of bytes received for the current incomplete multi-byte character.
11554 this.charReceived =
0;
11555 // Number of bytes expected for the current incomplete multi-byte character.
11556 this.charLength =
0;
11560 // write decodes the given buffer and returns it as JS string that is
11561 // guaranteed to not contain any partial multi-byte characters. Any partial
11562 // character found at the end of the buffer is buffered up, and will be
11563 // returned when calling write again with the remaining bytes.
11565 // Note: Converting a Buffer containing an orphan surrogate to a String
11566 // currently works, but converting a String to a Buffer (via `new Buffer`, or
11567 // Buffer#write) will replace incomplete surrogates with the unicode
11568 // replacement character. See https://codereview.chromium.org/
121173009/ .
11569 StringDecoder.prototype.write = function(buffer) {
11571 // if our last write ended with an incomplete multibyte character
11572 while (this.charLength) {
11573 // determine how many remaining bytes this buffer has to offer for this char
11574 var available = (buffer.length
>= this.charLength - this.charReceived) ?
11575 this.charLength - this.charReceived :
11578 // add the new bytes to the char buffer
11579 buffer.copy(this.charBuffer, this.charReceived,
0, available);
11580 this.charReceived += available;
11582 if (this.charReceived < this.charLength) {
11583 // still not enough chars in this buffer? wait for more ...
11587 // remove bytes belonging to the current character from the buffer
11588 buffer = buffer.slice(available, buffer.length);
11590 // get the character that was split
11591 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
11593 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11594 var charCode = charStr.charCodeAt(charStr.length -
1);
11595 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11596 this.charLength += this.surrogateSize;
11600 this.charReceived = this.charLength =
0;
11602 // if there are no more bytes in this buffer, just emit our char
11603 if (buffer.length ===
0) {
11609 // determine and set charLength / charReceived
11610 this.detectIncompleteChar(buffer);
11612 var end = buffer.length;
11613 if (this.charLength) {
11614 // buffer the incomplete character bytes we got
11615 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
11616 end -= this.charReceived;
11619 charStr += buffer.toString(this.encoding,
0, end);
11621 var end = charStr.length -
1;
11622 var charCode = charStr.charCodeAt(end);
11623 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11624 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11625 var size = this.surrogateSize;
11626 this.charLength += size;
11627 this.charReceived += size;
11628 this.charBuffer.copy(this.charBuffer, size,
0, size);
11629 buffer.copy(this.charBuffer,
0,
0, size);
11630 return charStr.substring(
0, end);
11633 // or just emit the charStr
11637 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
11638 // the end of the given buffer. If so, it sets this.charLength to the byte
11639 // length that character, and sets this.charReceived to the number of bytes
11640 // that are available for this character.
11641 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
11642 // determine how many bytes we have to check at the end of this buffer
11643 var i = (buffer.length
>=
3) ?
3 : buffer.length;
11645 // Figure out if one of the last i bytes of our buffer announces an
11646 // incomplete char.
11647 for (; i
> 0; i--) {
11648 var c = buffer[buffer.length - i];
11650 // See http://en.wikipedia.org/wiki/UTF-
8#Description
11653 if (i ==
1 && c
>> 5 ==
0x06) {
11654 this.charLength =
2;
11659 if (i <=
2 && c
>> 4 ==
0x0E) {
11660 this.charLength =
3;
11665 if (i <=
3 && c
>> 3 ==
0x1E) {
11666 this.charLength =
4;
11670 this.charReceived = i;
11673 StringDecoder.prototype.end = function(buffer) {
11675 if (buffer && buffer.length)
11676 res = this.write(buffer);
11678 if (this.charReceived) {
11679 var cr = this.charReceived;
11680 var buf = this.charBuffer;
11681 var enc = this.encoding;
11682 res += buf.slice(
0, cr).toString(enc);
11688 function passThroughWrite(buffer) {
11689 return buffer.toString(this.encoding);
11692 function utf16DetectIncompleteChar(buffer) {
11693 this.charReceived = buffer.length %
2;
11694 this.charLength = this.charReceived ?
2 :
0;
11697 function base64DetectIncompleteChar(buffer) {
11698 this.charReceived = buffer.length %
3;
11699 this.charLength = this.charReceived ?
3 :
0;
11702 },{
"buffer":
7}],
28:[function(require,module,exports){
11703 module.exports = function isBuffer(arg) {
11704 return arg && typeof arg === 'object'
11705 && typeof arg.copy === 'function'
11706 && typeof arg.fill === 'function'
11707 && typeof arg.readUInt8 === 'function';
11709 },{}],
29:[function(require,module,exports){
11710 (function (process,global){
11711 // Copyright Joyent, Inc. and other Node contributors.
11713 // Permission is hereby granted, free of charge, to any person obtaining a
11714 // copy of this software and associated documentation files (the
11715 //
"Software"), to deal in the Software without restriction, including
11716 // without limitation the rights to use, copy, modify, merge, publish,
11717 // distribute, sublicense, and/or sell copies of the Software, and to permit
11718 // persons to whom the Software is furnished to do so, subject to the
11719 // following conditions:
11721 // The above copyright notice and this permission notice shall be included
11722 // in all copies or substantial portions of the Software.
11724 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11725 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11726 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11727 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11728 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11729 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11730 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11732 var formatRegExp = /%[sdj%]/g;
11733 exports.format = function(f) {
11734 if (!isString(f)) {
11736 for (var i =
0; i < arguments.length; i++) {
11737 objects.push(inspect(arguments[i]));
11739 return objects.join(' ');
11743 var args = arguments;
11744 var len = args.length;
11745 var str = String(f).replace(formatRegExp, function(x) {
11746 if (x === '%%') return '%';
11747 if (i
>= len) return x;
11749 case '%s': return String(args[i++]);
11750 case '%d': return Number(args[i++]);
11753 return JSON.stringify(args[i++]);
11755 return '[Circular]';
11761 for (var x = args[i]; i < len; x = args[++i]) {
11762 if (isNull(x) || !isObject(x)) {
11765 str += ' ' + inspect(x);
11772 // Mark that a method should not be used.
11773 // Returns a modified function which warns once by default.
11774 // If --no-deprecation is set, then it is a no-op.
11775 exports.deprecate = function(fn, msg) {
11776 // Allow for deprecating things in the process of starting up.
11777 if (isUndefined(global.process)) {
11778 return function() {
11779 return exports.deprecate(fn, msg).apply(this, arguments);
11783 if (process.noDeprecation === true) {
11787 var warned = false;
11788 function deprecated() {
11790 if (process.throwDeprecation) {
11791 throw new Error(msg);
11792 } else if (process.traceDeprecation) {
11793 console.trace(msg);
11795 console.error(msg);
11799 return fn.apply(this, arguments);
11808 exports.debuglog = function(set) {
11809 if (isUndefined(debugEnviron))
11810 debugEnviron = process.env.NODE_DEBUG || '';
11811 set = set.toUpperCase();
11812 if (!debugs[set]) {
11813 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
11814 var pid = process.pid;
11815 debugs[set] = function() {
11816 var msg = exports.format.apply(exports, arguments);
11817 console.error('%s %d: %s', set, pid, msg);
11820 debugs[set] = function() {};
11823 return debugs[set];
11828 * Echos the value of a value. Trys to print the value out
11829 * in the best way possible given the different types.
11831 * @param {Object} obj The object to print out.
11832 * @param {Object} opts Optional options object that alters the output.
11834 /* legacy: obj, showHidden, depth, colors*/
11835 function inspect(obj, opts) {
11839 stylize: stylizeNoColor
11842 if (arguments.length
>=
3) ctx.depth = arguments[
2];
11843 if (arguments.length
>=
4) ctx.colors = arguments[
3];
11844 if (isBoolean(opts)) {
11846 ctx.showHidden = opts;
11848 // got an "options" object
11849 exports._extend(ctx, opts);
11851 // set default options
11852 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
11853 if (isUndefined(ctx.depth)) ctx.depth =
2;
11854 if (isUndefined(ctx.colors)) ctx.colors = false;
11855 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
11856 if (ctx.colors) ctx.stylize = stylizeWithColor;
11857 return formatValue(ctx, obj, ctx.depth);
11859 exports.inspect = inspect;
11862 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
11865 'italic' : [
3,
23],
11866 'underline' : [
4,
24],
11867 'inverse' : [
7,
27],
11868 'white' : [
37,
39],
11870 'black' : [
30,
39],
11873 'green' : [
32,
39],
11874 'magenta' : [
35,
39],
11876 'yellow' : [
33,
39]
11879 // Don't use 'blue' not visible on cmd.exe
11882 'number': 'yellow',
11883 'boolean': 'yellow',
11884 'undefined': 'grey',
11888 // "name": intentionally not styling
11893 function stylizeWithColor(str, styleType) {
11894 var style = inspect.styles[styleType];
11897 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
11898 '\u001b[' + inspect.colors[style][
1] + 'm';
11905 function stylizeNoColor(str, styleType) {
11910 function arrayToHash(array) {
11913 array.forEach(function(val, idx) {
11921 function formatValue(ctx, value, recurseTimes) {
11922 // Provide a hook for user-specified inspect functions.
11923 // Check that value is an object with an inspect function on it
11924 if (ctx.customInspect &&
11926 isFunction(value.inspect) &&
11927 // Filter out the util module, it's inspect function is special
11928 value.inspect !== exports.inspect &&
11929 // Also filter out any prototype objects using the circular check.
11930 !(value.constructor && value.constructor.prototype === value)) {
11931 var ret = value.inspect(recurseTimes, ctx);
11932 if (!isString(ret)) {
11933 ret = formatValue(ctx, ret, recurseTimes);
11938 // Primitive types cannot have properties
11939 var primitive = formatPrimitive(ctx, value);
11944 // Look up the keys of the object.
11945 var keys = Object.keys(value);
11946 var visibleKeys = arrayToHash(keys);
11948 if (ctx.showHidden) {
11949 keys = Object.getOwnPropertyNames(value);
11952 // IE doesn't make error fields non-enumerable
11953 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
11955 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
11956 return formatError(value);
11959 // Some type of object without properties can be shortcutted.
11960 if (keys.length ===
0) {
11961 if (isFunction(value)) {
11962 var name = value.name ? ': ' + value.name : '';
11963 return ctx.stylize('[Function' + name + ']', 'special');
11965 if (isRegExp(value)) {
11966 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11968 if (isDate(value)) {
11969 return ctx.stylize(Date.prototype.toString.call(value), 'date');
11971 if (isError(value)) {
11972 return formatError(value);
11976 var base = '', array = false, braces = ['{', '}'];
11978 // Make Array say that they are Array
11979 if (isArray(value)) {
11981 braces = ['[', ']'];
11984 // Make functions say that they are functions
11985 if (isFunction(value)) {
11986 var n = value.name ? ': ' + value.name : '';
11987 base = ' [Function' + n + ']';
11990 // Make RegExps say that they are RegExps
11991 if (isRegExp(value)) {
11992 base = ' ' + RegExp.prototype.toString.call(value);
11995 // Make dates with properties first say the date
11996 if (isDate(value)) {
11997 base = ' ' + Date.prototype.toUTCString.call(value);
12000 // Make error with message first say the error
12001 if (isError(value)) {
12002 base = ' ' + formatError(value);
12005 if (keys.length ===
0 && (!array || value.length ==
0)) {
12006 return braces[
0] + base + braces[
1];
12009 if (recurseTimes <
0) {
12010 if (isRegExp(value)) {
12011 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
12013 return ctx.stylize('[Object]', 'special');
12017 ctx.seen.push(value);
12021 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
12023 output = keys.map(function(key) {
12024 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
12030 return reduceToSingleString(output, base, braces);
12034 function formatPrimitive(ctx, value) {
12035 if (isUndefined(value))
12036 return ctx.stylize('undefined', 'undefined');
12037 if (isString(value)) {
12038 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
12039 .replace(/'/g, "\\'")
12040 .replace(/\\"/g, '"') + '\'';
12041 return ctx.stylize(simple, 'string');
12043 if (isNumber(value))
12044 return ctx.stylize('' + value, 'number');
12045 if (isBoolean(value))
12046 return ctx.stylize('' + value, 'boolean');
12047 // For some reason typeof null is "object", so special case here.
12049 return ctx.stylize('null', 'null');
12053 function formatError(value) {
12054 return '[' + Error.prototype.toString.call(value) + ']';
12058 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
12060 for (var i =
0, l = value.length; i < l; ++i) {
12061 if (hasOwnProperty(value, String(i))) {
12062 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
12068 keys.forEach(function(key) {
12069 if (!key.match(/^\d+$/)) {
12070 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
12078 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
12079 var name, str, desc;
12080 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
12083 str = ctx.stylize('[Getter/Setter]', 'special');
12085 str = ctx.stylize('[Getter]', 'special');
12089 str = ctx.stylize('[Setter]', 'special');
12092 if (!hasOwnProperty(visibleKeys, key)) {
12093 name = '[' + key + ']';
12096 if (ctx.seen.indexOf(desc.value) <
0) {
12097 if (isNull(recurseTimes)) {
12098 str = formatValue(ctx, desc.value, null);
12100 str = formatValue(ctx, desc.value, recurseTimes -
1);
12102 if (str.indexOf('\n')
> -
1) {
12104 str = str.split('\n').map(function(line) {
12106 }).join('\n').substr(
2);
12108 str = '\n' + str.split('\n').map(function(line) {
12114 str = ctx.stylize('[Circular]', 'special');
12117 if (isUndefined(name)) {
12118 if (array && key.match(/^\d+$/)) {
12121 name = JSON.stringify('' + key);
12122 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
12123 name = name.substr(
1, name.length -
2);
12124 name = ctx.stylize(name, 'name');
12126 name = name.replace(/'/g, "\\'")
12127 .replace(/\\"/g, '"')
12128 .replace(/(^"|"$)/g, "'");
12129 name = ctx.stylize(name, 'string');
12133 return name + ': ' + str;
12137 function reduceToSingleString(output, base, braces) {
12138 var numLinesEst =
0;
12139 var length = output.reduce(function(prev, cur) {
12141 if (cur.indexOf('\n')
>=
0) numLinesEst++;
12142 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
12147 (base === '' ? '' : base + '\n ') +
12149 output.join(',\n ') +
12154 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
12158 // NOTE: These type checking functions intentionally don't use `instanceof`
12159 // because it is fragile and can be easily faked with `Object.create()`.
12160 function isArray(ar) {
12161 return Array.isArray(ar);
12163 exports.isArray = isArray;
12165 function isBoolean(arg) {
12166 return typeof arg === 'boolean';
12168 exports.isBoolean = isBoolean;
12170 function isNull(arg) {
12171 return arg === null;
12173 exports.isNull = isNull;
12175 function isNullOrUndefined(arg) {
12176 return arg == null;
12178 exports.isNullOrUndefined = isNullOrUndefined;
12180 function isNumber(arg) {
12181 return typeof arg === 'number';
12183 exports.isNumber = isNumber;
12185 function isString(arg) {
12186 return typeof arg === 'string';
12188 exports.isString = isString;
12190 function isSymbol(arg) {
12191 return typeof arg === 'symbol';
12193 exports.isSymbol = isSymbol;
12195 function isUndefined(arg) {
12196 return arg === void
0;
12198 exports.isUndefined = isUndefined;
12200 function isRegExp(re) {
12201 return isObject(re) && objectToString(re) === '[object RegExp]';
12203 exports.isRegExp = isRegExp;
12205 function isObject(arg) {
12206 return typeof arg === 'object' && arg !== null;
12208 exports.isObject = isObject;
12210 function isDate(d) {
12211 return isObject(d) && objectToString(d) === '[object Date]';
12213 exports.isDate = isDate;
12215 function isError(e) {
12216 return isObject(e) &&
12217 (objectToString(e) === '[object Error]' || e instanceof Error);
12219 exports.isError = isError;
12221 function isFunction(arg) {
12222 return typeof arg === 'function';
12224 exports.isFunction = isFunction;
12226 function isPrimitive(arg) {
12227 return arg === null ||
12228 typeof arg === 'boolean' ||
12229 typeof arg === 'number' ||
12230 typeof arg === 'string' ||
12231 typeof arg === 'symbol' || // ES6 symbol
12232 typeof arg === 'undefined';
12234 exports.isPrimitive = isPrimitive;
12236 exports.isBuffer = require('./support/isBuffer');
12238 function objectToString(o) {
12239 return Object.prototype.toString.call(o);
12244 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
12248 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
12249 'Oct', 'Nov', 'Dec'];
12252 function timestamp() {
12253 var d = new Date();
12254 var time = [pad(d.getHours()),
12255 pad(d.getMinutes()),
12256 pad(d.getSeconds())].join(':');
12257 return [d.getDate(), months[d.getMonth()], time].join(' ');
12261 // log is just a thin wrapper to console.log that prepends a timestamp
12262 exports.log = function() {
12263 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
12268 * Inherit the prototype methods from one constructor into another.
12270 * The Function.prototype.inherits from lang.js rewritten as a standalone
12271 * function (not on Function.prototype). NOTE: If this file is to be loaded
12272 * during bootstrapping this function needs to be rewritten using some native
12273 * functions as prototype setup using normal JavaScript does not work as
12274 * expected during bootstrapping (see mirror.js in r114903).
12276 * @param {function} ctor Constructor function which needs to inherit the
12278 * @param {function} superCtor Constructor function to inherit prototype from.
12280 exports.inherits = require('inherits');
12282 exports._extend = function(origin, add) {
12283 // Don't do anything if add isn't an object
12284 if (!add || !isObject(add)) return origin;
12286 var keys = Object.keys(add);
12287 var i = keys.length;
12289 origin[keys[i]] = add[keys[i]];
12294 function hasOwnProperty(obj, prop) {
12295 return Object.prototype.hasOwnProperty.call(obj, prop);
12298 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
12299 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
12300 // Base58 encoding/decoding
12301 // Originally written by Mike Hearn for BitcoinJ
12302 // Copyright (c)
2011 Google Inc
12303 // Ported to JavaScript by Stefan Thomas
12304 // Merged Buffer refactorings from base58-native by Stephen Pair
12305 // Copyright (c)
2013 BitPay Inc
12307 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
12308 var ALPHABET_MAP = {}
12309 for(var i =
0; i < ALPHABET.length; i++) {
12310 ALPHABET_MAP[ALPHABET.charAt(i)] = i
12314 function encode(buffer) {
12315 if (buffer.length ===
0) return ''
12317 var i, j, digits = [
0]
12318 for (i =
0; i < buffer.length; i++) {
12319 for (j =
0; j < digits.length; j++) digits[j] <<=
8
12321 digits[
0] += buffer[i]
12324 for (j =
0; j < digits.length; ++j) {
12327 carry = (digits[j] / BASE) |
0
12332 digits.push(carry % BASE)
12334 carry = (carry / BASE) |
0
12338 // deal with leading zeros
12339 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
12341 // convert digits to a string
12342 var stringOutput =
""
12343 for (var i = digits.length -
1; i
>=
0; i--) {
12344 stringOutput = stringOutput + ALPHABET[digits[i]]
12346 return stringOutput
12349 function decode(string) {
12350 if (string.length ===
0) return []
12352 var i, j, bytes = [
0]
12353 for (i =
0; i < string.length; i++) {
12355 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
12357 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
12358 bytes[
0] += ALPHABET_MAP[c]
12361 for (j =
0; j < bytes.length; ++j) {
12364 carry = bytes[j]
>> 8
12369 bytes.push(carry &
0xff)
12375 // deal with leading zeros
12376 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
12378 return bytes.reverse()
12386 },{}],
31:[function(require,module,exports){
12387 (function (Buffer){
12390 var base58 = require('bs58')
12391 var createHash = require('create-hash')
12393 // SHA256(SHA256(buffer))
12394 function sha256x2 (buffer) {
12395 buffer = createHash('sha256').update(buffer).digest()
12396 return createHash('sha256').update(buffer).digest()
12399 // Encode a buffer as a base58-check encoded string
12400 function encode (payload) {
12401 var checksum = sha256x2(payload).slice(
0,
4)
12403 return base58.encode(Buffer.concat([
12409 // Decode a base58-check encoded string to a buffer
12410 function decode (string) {
12411 var buffer = new Buffer(base58.decode(string))
12413 var payload = buffer.slice(
0, -
4)
12414 var checksum = buffer.slice(-
4)
12415 var newChecksum = sha256x2(payload).slice(
0,
4)
12417 for (var i =
0; i < newChecksum.length; ++i) {
12418 if (newChecksum[i] === checksum[i]) continue
12420 throw new Error('Invalid checksum')
12431 }).call(this,require("buffer").Buffer)
12432 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
12433 (function (Buffer){
12435 var inherits = require('inherits')
12436 var md5 = require('./md5')
12437 var rmd160 = require('ripemd160')
12438 var sha = require('sha.js')
12440 var Transform = require('stream').Transform
12442 function HashNoConstructor(hash) {
12443 Transform.call(this)
12449 inherits(HashNoConstructor, Transform)
12451 HashNoConstructor.prototype._transform = function (data, _, next) {
12452 this.buffers.push(data)
12457 HashNoConstructor.prototype._flush = function (next) {
12458 this.push(this.digest())
12462 HashNoConstructor.prototype.update = function (data, enc) {
12463 if (typeof data === 'string') {
12464 data = new Buffer(data, enc)
12467 this.buffers.push(data)
12471 HashNoConstructor.prototype.digest = function (enc) {
12472 var buf = Buffer.concat(this.buffers)
12473 var r = this._hash(buf)
12474 this.buffers = null
12476 return enc ? r.toString(enc) : r
12479 function Hash(hash) {
12480 Transform.call(this)
12485 inherits(Hash, Transform)
12487 Hash.prototype._transform = function (data, enc, next) {
12488 if (enc) data = new Buffer(data, enc)
12490 this._hash.update(data)
12495 Hash.prototype._flush = function (next) {
12496 this.push(this._hash.digest())
12502 Hash.prototype.update = function (data, enc) {
12503 if (typeof data === 'string') {
12504 data = new Buffer(data, enc)
12507 this._hash.update(data)
12511 Hash.prototype.digest = function (enc) {
12512 var outData = this._hash.digest()
12514 return enc ? outData.toString(enc) : outData
12517 module.exports = function createHash (alg) {
12518 if ('md5' === alg) return new HashNoConstructor(md5)
12519 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
12521 return new Hash(sha(alg))
12524 }).call(this,require("buffer").Buffer)
12525 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
12526 (function (Buffer){
12529 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
12532 function toArray(buf, bigEndian) {
12533 if ((buf.length % intSize) !==
0) {
12534 var len = buf.length + (intSize - (buf.length % intSize));
12535 buf = Buffer.concat([buf, zeroBuffer], len);
12539 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
12540 for (var i =
0; i < buf.length; i += intSize) {
12541 arr.push(fn.call(buf, i));
12546 function toBuffer(arr, size, bigEndian) {
12547 var buf = new Buffer(size);
12548 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
12549 for (var i =
0; i < arr.length; i++) {
12550 fn.call(buf, arr[i], i *
4, true);
12555 function hash(buf, fn, hashSize, bigEndian) {
12556 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
12557 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
12558 return toBuffer(arr, hashSize, bigEndian);
12560 exports.hash = hash;
12561 }).call(this,require("buffer").Buffer)
12562 },{"buffer":
7}],
34:[function(require,module,exports){
12565 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
12566 * Digest Algorithm, as defined in RFC
1321.
12567 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
12568 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12569 * Distributed under the BSD License
12570 * See http://pajhome.org.uk/crypt/md5 for more info.
12573 var helpers = require('./helpers');
12576 * Calculate the MD5 of an array of little-endian words, and a bit length
12578 function core_md5(x, len)
12580 /* append padding */
12581 x[len
>> 5] |=
0x80 << ((len) %
32);
12582 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
12584 var a =
1732584193;
12585 var b = -
271733879;
12586 var c = -
1732584194;
12589 for(var i =
0; i < x.length; i +=
16)
12596 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
12597 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
12598 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
12599 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
12600 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
12601 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
12602 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
12603 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
12604 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
12605 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
12606 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
12607 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
12608 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
12609 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
12610 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
12611 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
12613 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
12614 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
12615 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
12616 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
12617 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
12618 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
12619 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
12620 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
12621 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
12622 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
12623 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
12624 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
12625 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
12626 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
12627 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
12628 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
12630 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
12631 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
12632 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
12633 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
12634 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
12635 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
12636 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
12637 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
12638 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
12639 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
12640 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
12641 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
12642 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
12643 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
12644 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
12645 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
12647 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
12648 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
12649 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
12650 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
12651 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
12652 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
12653 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
12654 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
12655 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
12656 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
12657 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
12658 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
12659 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
12660 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
12661 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
12662 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
12664 a = safe_add(a, olda);
12665 b = safe_add(b, oldb);
12666 c = safe_add(c, oldc);
12667 d = safe_add(d, oldd);
12669 return Array(a, b, c, d);
12674 * These functions implement the four basic operations the algorithm uses.
12676 function md5_cmn(q, a, b, x, s, t)
12678 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
12680 function md5_ff(a, b, c, d, x, s, t)
12682 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
12684 function md5_gg(a, b, c, d, x, s, t)
12686 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
12688 function md5_hh(a, b, c, d, x, s, t)
12690 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
12692 function md5_ii(a, b, c, d, x, s, t)
12694 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
12698 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
12699 * to work around bugs in some JS interpreters.
12701 function safe_add(x, y)
12703 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
12704 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
12705 return (msw <<
16) | (lsw &
0xFFFF);
12709 * Bitwise rotate a
32-bit number to the left.
12711 function bit_rol(num, cnt)
12713 return (num << cnt) | (num
>>> (
32 - cnt));
12716 module.exports = function md5(buf) {
12717 return helpers.hash(buf, core_md5,
16);
12719 },{"./helpers":
33}],
35:[function(require,module,exports){
12720 arguments[
4][
12][
0].apply(exports,arguments)
12721 },{"dup":
12}],
36:[function(require,module,exports){
12722 (function (Buffer){
12725 code.google.com/p/crypto-js
12726 (c)
2009-
2013 by Jeff Mott. All rights reserved.
12727 code.google.com/p/crypto-js/wiki/License
12730 (c)
2012 by Cédric Mesnil. All rights reserved.
12732 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12734 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
12735 - 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.
12737 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.
12742 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
12743 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
12744 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
12745 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
12746 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
12750 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
12751 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
12752 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
12753 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
12754 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
12758 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
12759 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
12760 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
12761 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
12762 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
12766 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
12767 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
12768 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
12769 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
12770 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
12773 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
12774 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
12776 function bytesToWords (bytes) {
12778 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
12779 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
12784 function wordsToBytes (words) {
12786 for (var b =
0; b < words.length *
32; b +=
8) {
12787 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
12792 function processBlock (H, M, offset) {
12794 for (var i =
0; i <
16; i++) {
12795 var offset_i = offset + i
12796 var M_offset_i = M[offset_i]
12800 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
12801 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
12805 // Working variables
12806 var al, bl, cl, dl, el
12807 var ar, br, cr, dr, er
12817 for (i =
0; i <
80; i +=
1) {
12818 t = (al + M[offset + zl[i]]) |
0
12820 t += f1(bl, cl, dl) + hl[
0]
12821 } else if (i <
32) {
12822 t += f2(bl, cl, dl) + hl[
1]
12823 } else if (i <
48) {
12824 t += f3(bl, cl, dl) + hl[
2]
12825 } else if (i <
64) {
12826 t += f4(bl, cl, dl) + hl[
3]
12827 } else {// if (i
<80) {
12828 t += f5(bl, cl, dl) + hl[
4]
12839 t = (ar + M[offset + zr[i]]) |
0
12841 t += f5(br, cr, dr) + hr[
0]
12842 } else if (i <
32) {
12843 t += f4(br, cr, dr) + hr[
1]
12844 } else if (i <
48) {
12845 t += f3(br, cr, dr) + hr[
2]
12846 } else if (i <
64) {
12847 t += f2(br, cr, dr) + hr[
3]
12848 } else {// if (i
<80) {
12849 t += f1(br, cr, dr) + hr[
4]
12862 // intermediate hash value
12863 t = (H[
1] + cl + dr) |
0
12864 H[
1] = (H[
2] + dl + er) |
0
12865 H[
2] = (H[
3] + el + ar) |
0
12866 H[
3] = (H[
4] + al + br) |
0
12867 H[
4] = (H[
0] + bl + cr) |
0
12871 function f1 (x, y, z) {
12872 return ((x) ^ (y) ^ (z))
12875 function f2 (x, y, z) {
12876 return (((x) & (y)) | ((~x) & (z)))
12879 function f3 (x, y, z) {
12880 return (((x) | (~(y))) ^ (z))
12883 function f4 (x, y, z) {
12884 return (((x) & (z)) | ((y) & (~(z))))
12887 function f5 (x, y, z) {
12888 return ((x) ^ ((y) | (~(z))))
12891 function rotl (x, n) {
12892 return (x << n) | (x
>>> (
32 - n))
12895 function ripemd160 (message) {
12896 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
12898 if (typeof message === 'string') {
12899 message = new Buffer(message, 'utf8')
12902 var m = bytesToWords(message)
12904 var nBitsLeft = message.length *
8
12905 var nBitsTotal = message.length *
8
12908 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
12909 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
12910 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
12911 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
12914 for (var i =
0; i < m.length; i +=
16) {
12915 processBlock(H, m, i)
12919 for (i =
0; i <
5; i++) {
12924 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
12925 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
12928 var digestbytes = wordsToBytes(H)
12929 return new Buffer(digestbytes)
12932 module.exports = ripemd160
12934 }).call(this,require(
"buffer").Buffer)
12935 },{
"buffer":
7}],
37:[function(require,module,exports){
12936 (function (Buffer){
12937 // prototype class for hash functions
12938 function Hash (blockSize, finalSize) {
12939 this._block = new Buffer(blockSize)
12940 this._finalSize = finalSize
12941 this._blockSize = blockSize
12946 Hash.prototype.update = function (data, enc) {
12947 if (typeof data === 'string') {
12948 enc = enc || 'utf8'
12949 data = new Buffer(data, enc)
12952 var l = this._len += data.length
12953 var s = this._s ||
0
12955 var buffer = this._block
12958 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
12961 for (var i =
0; i < ch; i++) {
12962 buffer[(s % this._blockSize) + i] = data[i + f]
12968 if ((s % this._blockSize) ===
0) {
12969 this._update(buffer)
12977 Hash.prototype.digest = function (enc) {
12978 // Suppose the length of the message M, in bits, is l
12979 var l = this._len *
8
12981 // Append the bit
1 to the end of the message
12982 this._block[this._len % this._blockSize] =
0x80
12984 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
12985 this._block.fill(
0, this._len % this._blockSize +
1)
12987 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
12988 this._update(this._block)
12989 this._block.fill(
0)
12992 // to this append the block which is equal to the number l written in binary
12993 // TODO: handle case where l is
> Math.pow(
2,
29)
12994 this._block.writeInt32BE(l, this._blockSize -
4)
12996 var hash = this._update(this._block) || this._hash()
12998 return enc ? hash.toString(enc) : hash
13001 Hash.prototype._update = function () {
13002 throw new Error('_update must be implemented by subclass')
13005 module.exports = Hash
13007 }).call(this,require("buffer").Buffer)
13008 },{"buffer":
7}],
38:[function(require,module,exports){
13009 var exports = module.exports = function SHA (algorithm) {
13010 algorithm = algorithm.toLowerCase()
13012 var Algorithm = exports[algorithm]
13013 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
13015 return new Algorithm()
13018 exports.sha = require('./sha')
13019 exports.sha1 = require('./sha1')
13020 exports.sha224 = require('./sha224')
13021 exports.sha256 = require('./sha256')
13022 exports.sha384 = require('./sha384')
13023 exports.sha512 = require('./sha512')
13025 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
13026 (function (Buffer){
13028 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
13029 * in FIPS PUB
180-
1
13030 * This source code is derived from sha1.js of the same repository.
13031 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
13032 * operation was added.
13035 var inherits = require('inherits')
13036 var Hash = require('./hash')
13038 var W = new Array(
80)
13044 Hash.call(this,
64,
56)
13047 inherits(Sha, Hash)
13049 Sha.prototype.init = function () {
13050 this._a =
0x67452301 |
0
13051 this._b =
0xefcdab89 |
0
13052 this._c =
0x98badcfe |
0
13053 this._d =
0x10325476 |
0
13054 this._e =
0xc3d2e1f0 |
0
13060 * Bitwise rotate a
32-bit number to the left.
13062 function rol (num, cnt) {
13063 return (num << cnt) | (num
>>> (
32 - cnt))
13066 Sha.prototype._update = function (M) {
13078 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
13079 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
13081 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
13082 function loop (w, f) {
13085 var t = rol(a,
5) + f + e + w + k
13096 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
13097 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
13099 while (j <
40) loop(calcW(), b ^ c ^ d)
13101 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
13103 while (j <
80) loop(calcW(), b ^ c ^ d)
13105 this._a = (a + this._a) |
0
13106 this._b = (b + this._b) |
0
13107 this._c = (c + this._c) |
0
13108 this._d = (d + this._d) |
0
13109 this._e = (e + this._e) |
0
13112 Sha.prototype._hash = function () {
13113 var H = new Buffer(
20)
13115 H.writeInt32BE(this._a |
0,
0)
13116 H.writeInt32BE(this._b |
0,
4)
13117 H.writeInt32BE(this._c |
0,
8)
13118 H.writeInt32BE(this._d |
0,
12)
13119 H.writeInt32BE(this._e |
0,
16)
13124 module.exports = Sha
13127 }).call(this,require("buffer").Buffer)
13128 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
13129 (function (Buffer){
13131 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
13132 * in FIPS PUB
180-
1
13133 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
13134 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13135 * Distributed under the BSD License
13136 * See http://pajhome.org.uk/crypt/md5 for details.
13139 var inherits = require('inherits')
13140 var Hash = require('./hash')
13142 var W = new Array(
80)
13148 Hash.call(this,
64,
56)
13151 inherits(Sha1, Hash)
13153 Sha1.prototype.init = function () {
13154 this._a =
0x67452301 |
0
13155 this._b =
0xefcdab89 |
0
13156 this._c =
0x98badcfe |
0
13157 this._d =
0x10325476 |
0
13158 this._e =
0xc3d2e1f0 |
0
13164 * Bitwise rotate a
32-bit number to the left.
13166 function rol (num, cnt) {
13167 return (num << cnt) | (num
>>> (
32 - cnt))
13170 Sha1.prototype._update = function (M) {
13181 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
13182 function loop (w, f) {
13185 var t = rol(a,
5) + f + e + w + k
13196 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
13197 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
13199 while (j <
40) loop(calcW(), b ^ c ^ d)
13201 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
13203 while (j <
80) loop(calcW(), b ^ c ^ d)
13205 this._a = (a + this._a) |
0
13206 this._b = (b + this._b) |
0
13207 this._c = (c + this._c) |
0
13208 this._d = (d + this._d) |
0
13209 this._e = (e + this._e) |
0
13212 Sha1.prototype._hash = function () {
13213 var H = new Buffer(
20)
13215 H.writeInt32BE(this._a |
0,
0)
13216 H.writeInt32BE(this._b |
0,
4)
13217 H.writeInt32BE(this._c |
0,
8)
13218 H.writeInt32BE(this._d |
0,
12)
13219 H.writeInt32BE(this._e |
0,
16)
13224 module.exports = Sha1
13226 }).call(this,require("buffer").Buffer)
13227 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
13228 (function (Buffer){
13230 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
13232 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
13233 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13237 var inherits = require('inherits')
13238 var Sha256 = require('./sha256')
13239 var Hash = require('./hash')
13241 var W = new Array(
64)
13243 function Sha224 () {
13246 this._w = W // new Array(
64)
13248 Hash.call(this,
64,
56)
13251 inherits(Sha224, Sha256)
13253 Sha224.prototype.init = function () {
13254 this._a =
0xc1059ed8 |
0
13255 this._b =
0x367cd507 |
0
13256 this._c =
0x3070dd17 |
0
13257 this._d =
0xf70e5939 |
0
13258 this._e =
0xffc00b31 |
0
13259 this._f =
0x68581511 |
0
13260 this._g =
0x64f98fa7 |
0
13261 this._h =
0xbefa4fa4 |
0
13266 Sha224.prototype._hash = function () {
13267 var H = new Buffer(
28)
13269 H.writeInt32BE(this._a,
0)
13270 H.writeInt32BE(this._b,
4)
13271 H.writeInt32BE(this._c,
8)
13272 H.writeInt32BE(this._d,
12)
13273 H.writeInt32BE(this._e,
16)
13274 H.writeInt32BE(this._f,
20)
13275 H.writeInt32BE(this._g,
24)
13280 module.exports = Sha224
13282 }).call(this,require("buffer").Buffer)
13283 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
13284 (function (Buffer){
13286 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
13288 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
13289 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
13293 var inherits = require('inherits')
13294 var Hash = require('./hash')
13297 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
13298 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
13299 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
13300 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
13301 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
13302 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
13303 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
13304 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
13305 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
13306 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
13307 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
13308 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
13309 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
13310 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
13311 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
13312 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
13315 var W = new Array(
64)
13317 function Sha256 () {
13320 this._w = W // new Array(
64)
13322 Hash.call(this,
64,
56)
13325 inherits(Sha256, Hash)
13327 Sha256.prototype.init = function () {
13328 this._a =
0x6a09e667 |
0
13329 this._b =
0xbb67ae85 |
0
13330 this._c =
0x3c6ef372 |
0
13331 this._d =
0xa54ff53a |
0
13332 this._e =
0x510e527f |
0
13333 this._f =
0x9b05688c |
0
13334 this._g =
0x1f83d9ab |
0
13335 this._h =
0x5be0cd19 |
0
13340 function S (X, n) {
13341 return (X
>>> n) | (X << (
32 - n))
13344 function R (X, n) {
13348 function Ch (x, y, z) {
13349 return ((x & y) ^ ((~x) & z))
13352 function Maj (x, y, z) {
13353 return ((x & y) ^ (x & z) ^ (y & z))
13356 function Sigma0256 (x) {
13357 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
13360 function Sigma1256 (x) {
13361 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
13364 function Gamma0256 (x) {
13365 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
13368 function Gamma1256 (x) {
13369 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
13372 Sha256.prototype._update = function (M) {
13375 var a = this._a |
0
13376 var b = this._b |
0
13377 var c = this._c |
0
13378 var d = this._d |
0
13379 var e = this._e |
0
13380 var f = this._f |
0
13381 var g = this._g |
0
13382 var h = this._h |
0
13386 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
13387 function loop (w) {
13390 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
13391 var T2 = Sigma0256(a) + Maj(a, b, c)
13405 while (j <
16) loop(M.readInt32BE(j *
4))
13406 while (j <
64) loop(calcW())
13408 this._a = (a + this._a) |
0
13409 this._b = (b + this._b) |
0
13410 this._c = (c + this._c) |
0
13411 this._d = (d + this._d) |
0
13412 this._e = (e + this._e) |
0
13413 this._f = (f + this._f) |
0
13414 this._g = (g + this._g) |
0
13415 this._h = (h + this._h) |
0
13418 Sha256.prototype._hash = function () {
13419 var H = new Buffer(
32)
13421 H.writeInt32BE(this._a,
0)
13422 H.writeInt32BE(this._b,
4)
13423 H.writeInt32BE(this._c,
8)
13424 H.writeInt32BE(this._d,
12)
13425 H.writeInt32BE(this._e,
16)
13426 H.writeInt32BE(this._f,
20)
13427 H.writeInt32BE(this._g,
24)
13428 H.writeInt32BE(this._h,
28)
13433 module.exports = Sha256
13435 }).call(this,require("buffer").Buffer)
13436 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
13437 (function (Buffer){
13438 var inherits = require('inherits')
13439 var SHA512 = require('./sha512')
13440 var Hash = require('./hash')
13442 var W = new Array(
160)
13444 function Sha384 () {
13448 Hash.call(this,
128,
112)
13451 inherits(Sha384, SHA512)
13453 Sha384.prototype.init = function () {
13454 this._a =
0xcbbb9d5d |
0
13455 this._b =
0x629a292a |
0
13456 this._c =
0x9159015a |
0
13457 this._d =
0x152fecd8 |
0
13458 this._e =
0x67332667 |
0
13459 this._f =
0x8eb44a87 |
0
13460 this._g =
0xdb0c2e0d |
0
13461 this._h =
0x47b5481d |
0
13463 this._al =
0xc1059ed8 |
0
13464 this._bl =
0x367cd507 |
0
13465 this._cl =
0x3070dd17 |
0
13466 this._dl =
0xf70e5939 |
0
13467 this._el =
0xffc00b31 |
0
13468 this._fl =
0x68581511 |
0
13469 this._gl =
0x64f98fa7 |
0
13470 this._hl =
0xbefa4fa4 |
0
13475 Sha384.prototype._hash = function () {
13476 var H = new Buffer(
48)
13478 function writeInt64BE (h, l, offset) {
13479 H.writeInt32BE(h, offset)
13480 H.writeInt32BE(l, offset +
4)
13483 writeInt64BE(this._a, this._al,
0)
13484 writeInt64BE(this._b, this._bl,
8)
13485 writeInt64BE(this._c, this._cl,
16)
13486 writeInt64BE(this._d, this._dl,
24)
13487 writeInt64BE(this._e, this._el,
32)
13488 writeInt64BE(this._f, this._fl,
40)
13493 module.exports = Sha384
13495 }).call(this,require("buffer").Buffer)
13496 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
13497 (function (Buffer){
13498 var inherits = require('inherits')
13499 var Hash = require('./hash')
13502 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
13503 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
13504 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
13505 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
13506 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
13507 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
13508 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
13509 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
13510 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
13511 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
13512 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
13513 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
13514 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
13515 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
13516 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
13517 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
13518 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
13519 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
13520 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
13521 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
13522 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
13523 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
13524 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
13525 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
13526 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
13527 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
13528 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
13529 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
13530 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
13531 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
13532 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
13533 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
13534 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
13535 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
13536 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
13537 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
13538 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
13539 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
13540 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
13541 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
13544 var W = new Array(
160)
13546 function Sha512 () {
13550 Hash.call(this,
128,
112)
13553 inherits(Sha512, Hash)
13555 Sha512.prototype.init = function () {
13556 this._a =
0x6a09e667 |
0
13557 this._b =
0xbb67ae85 |
0
13558 this._c =
0x3c6ef372 |
0
13559 this._d =
0xa54ff53a |
0
13560 this._e =
0x510e527f |
0
13561 this._f =
0x9b05688c |
0
13562 this._g =
0x1f83d9ab |
0
13563 this._h =
0x5be0cd19 |
0
13565 this._al =
0xf3bcc908 |
0
13566 this._bl =
0x84caa73b |
0
13567 this._cl =
0xfe94f82b |
0
13568 this._dl =
0x5f1d36f1 |
0
13569 this._el =
0xade682d1 |
0
13570 this._fl =
0x2b3e6c1f |
0
13571 this._gl =
0xfb41bd6b |
0
13572 this._hl =
0x137e2179 |
0
13577 function S (X, Xl, n) {
13578 return (X
>>> n) | (Xl << (
32 - n))
13581 function Ch (x, y, z) {
13582 return ((x & y) ^ ((~x) & z))
13585 function Maj (x, y, z) {
13586 return ((x & y) ^ (x & z) ^ (y & z))
13589 Sha512.prototype._update = function (M) {
13592 var a = this._a |
0
13593 var b = this._b |
0
13594 var c = this._c |
0
13595 var d = this._d |
0
13596 var e = this._e |
0
13597 var f = this._f |
0
13598 var g = this._g |
0
13599 var h = this._h |
0
13601 var al = this._al |
0
13602 var bl = this._bl |
0
13603 var cl = this._cl |
0
13604 var dl = this._dl |
0
13605 var el = this._el |
0
13606 var fl = this._fl |
0
13607 var gl = this._gl |
0
13608 var hl = this._hl |
0
13612 function calcW () {
13613 var x = W[j -
15 *
2]
13614 var xl = W[j -
15 *
2 +
1]
13615 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
13616 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
13619 xl = W[j -
2 *
2 +
1]
13620 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
13621 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
13623 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
13624 var Wi7 = W[j -
7 *
2]
13625 var Wi7l = W[j -
7 *
2 +
1]
13627 var Wi16 = W[j -
16 *
2]
13628 var Wi16l = W[j -
16 *
2 +
1]
13630 Wil = gamma0l + Wi7l
13631 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
13632 Wil = Wil + gamma1l
13633 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
13635 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
13642 var maj = Maj(a, b, c)
13643 var majl = Maj(al, bl, cl)
13645 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
13646 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
13647 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
13648 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
13650 // t1 = h + sigma1 + ch + K[i] + W[i]
13654 var ch = Ch(e, f, g)
13655 var chl = Ch(el, fl, gl)
13657 var t1l = hl + sigma1l
13658 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
13660 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
13662 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
13664 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
13666 // t2 = sigma0 + maj
13667 var t2l = sigma0l + majl
13668 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
13676 el = (dl + t1l) |
0
13677 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13684 al = (t1l + t2l) |
0
13685 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
13692 Wi = M.readInt32BE(j *
4)
13693 Wil = M.readInt32BE(j *
4 +
4)
13703 this._al = (this._al + al) |
0
13704 this._bl = (this._bl + bl) |
0
13705 this._cl = (this._cl + cl) |
0
13706 this._dl = (this._dl + dl) |
0
13707 this._el = (this._el + el) |
0
13708 this._fl = (this._fl + fl) |
0
13709 this._gl = (this._gl + gl) |
0
13710 this._hl = (this._hl + hl) |
0
13712 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
13713 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
13714 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
13715 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13716 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
13717 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
13718 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
13719 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
13722 Sha512.prototype._hash = function () {
13723 var H = new Buffer(
64)
13725 function writeInt64BE (h, l, offset) {
13726 H.writeInt32BE(h, offset)
13727 H.writeInt32BE(l, offset +
4)
13730 writeInt64BE(this._a, this._al,
0)
13731 writeInt64BE(this._b, this._bl,
8)
13732 writeInt64BE(this._c, this._cl,
16)
13733 writeInt64BE(this._d, this._dl,
24)
13734 writeInt64BE(this._e, this._el,
32)
13735 writeInt64BE(this._f, this._fl,
40)
13736 writeInt64BE(this._g, this._gl,
48)
13737 writeInt64BE(this._h, this._hl,
56)
13742 module.exports = Sha512
13744 }).call(this,require(
"buffer").Buffer)
13745 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
13746 (function (Buffer){
13748 var createHash = require('create-hash/browser');
13749 var inherits = require('inherits')
13751 var Transform = require('stream').Transform
13753 var ZEROS = new Buffer(
128)
13756 function Hmac(alg, key) {
13757 Transform.call(this)
13759 if (typeof key === 'string') {
13760 key = new Buffer(key)
13763 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
13768 if (key.length
> blocksize) {
13769 key = createHash(alg).update(key).digest()
13771 } else if (key.length < blocksize) {
13772 key = Buffer.concat([key, ZEROS], blocksize)
13775 var ipad = this._ipad = new Buffer(blocksize)
13776 var opad = this._opad = new Buffer(blocksize)
13778 for (var i =
0; i < blocksize; i++) {
13779 ipad[i] = key[i] ^
0x36
13780 opad[i] = key[i] ^
0x5C
13783 this._hash = createHash(alg).update(ipad)
13786 inherits(Hmac, Transform)
13788 Hmac.prototype.update = function (data, enc) {
13789 this._hash.update(data, enc)
13794 Hmac.prototype._transform = function (data, _, next) {
13795 this._hash.update(data)
13800 Hmac.prototype._flush = function (next) {
13801 this.push(this.digest())
13806 Hmac.prototype.digest = function (enc) {
13807 var h = this._hash.digest()
13809 return createHash(this._alg).update(this._opad).update(h).digest(enc)
13812 module.exports = function createHmac(alg, key) {
13813 return new Hmac(alg, key)
13816 }).call(this,require("buffer").Buffer)
13817 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
13818 arguments[
4][
12][
0].apply(exports,arguments)
13819 },{"dup":
12}],
47:[function(require,module,exports){
13820 var assert = require('assert')
13821 var BigInteger = require('bigi')
13823 var Point = require('./point')
13825 function Curve(p, a, b, Gx, Gy, n, h) {
13829 this.G = Point.fromAffine(this, Gx, Gy)
13833 this.infinity = new Point(this, null, null, BigInteger.ZERO)
13836 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
13839 Curve.prototype.pointFromX = function(isOdd, x) {
13840 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
13841 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
13844 if (beta.isEven() ^ !isOdd) {
13845 y = this.p.subtract(y) // -y % p
13848 return Point.fromAffine(this, x, y)
13851 Curve.prototype.isInfinity = function(Q) {
13852 if (Q === this.infinity) return true
13854 return Q.z.signum() ===
0 && Q.y.signum() !==
0
13857 Curve.prototype.isOnCurve = function(Q) {
13858 if (this.isInfinity(Q)) return true
13866 // Check that xQ and yQ are integers in the interval [
0, p -
1]
13867 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
13868 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
13870 // and check that y^
2 = x^
3 + ax + b (mod p)
13871 var lhs = y.square().mod(p)
13872 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
13873 return lhs.equals(rhs)
13877 * Validate an elliptic curve point.
13879 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
13881 Curve.prototype.validate = function(Q) {
13883 assert(!this.isInfinity(Q), 'Point is at infinity')
13884 assert(this.isOnCurve(Q), 'Point is not on the curve')
13886 // Check nQ = O (where Q is a scalar multiple of G)
13887 var nQ = Q.multiply(this.n)
13888 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
13893 module.exports = Curve
13895 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
13898 "p": "fffffffdffffffffffffffffffffffff",
13899 "a": "fffffffdfffffffffffffffffffffffc",
13900 "b": "e87579c11079f43dd824993c2cee5ed3",
13901 "n": "fffffffe0000000075a30d1b9038a115",
13903 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
13904 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
13907 "p": "fffffffffffffffffffffffffffffffeffffac73",
13910 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
13912 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
13913 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
13916 "p": "ffffffffffffffffffffffffffffffff7fffffff",
13917 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
13918 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
13919 "n": "
0100000000000000000001f4c8f927aed3ca752257",
13921 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
13922 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
13925 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
13928 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
13930 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
13931 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
13934 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
13935 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
13936 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
13937 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
13939 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
13940 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
13943 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
13946 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
13948 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
13949 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
13952 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
13953 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
13954 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
13955 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
13957 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
13958 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
13962 },{}],
49:[function(require,module,exports){
13963 var Point = require('./point')
13964 var Curve = require('./curve')
13966 var getCurveByName = require('./names')
13971 getCurveByName: getCurveByName
13974 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
13975 var BigInteger = require('bigi')
13977 var curves = require('./curves')
13978 var Curve = require('./curve')
13980 function getCurveByName(name) {
13981 var curve = curves[name]
13982 if (!curve) return null
13984 var p = new BigInteger(curve.p,
16)
13985 var a = new BigInteger(curve.a,
16)
13986 var b = new BigInteger(curve.b,
16)
13987 var n = new BigInteger(curve.n,
16)
13988 var h = new BigInteger(curve.h,
16)
13989 var Gx = new BigInteger(curve.Gx,
16)
13990 var Gy = new BigInteger(curve.Gy,
16)
13992 return new Curve(p, a, b, Gx, Gy, n, h)
13995 module.exports = getCurveByName
13997 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
13998 (function (Buffer){
13999 var assert = require('assert')
14000 var BigInteger = require('bigi')
14002 var THREE = BigInteger.valueOf(
3)
14004 function Point(curve, x, y, z) {
14005 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
14013 this.compressed = true
14016 Object.defineProperty(Point.prototype, 'zInv', {
14018 if (this._zInv === null) {
14019 this._zInv = this.z.modInverse(this.curve.p)
14026 Object.defineProperty(Point.prototype, 'affineX', {
14028 return this.x.multiply(this.zInv).mod(this.curve.p)
14032 Object.defineProperty(Point.prototype, 'affineY', {
14034 return this.y.multiply(this.zInv).mod(this.curve.p)
14038 Point.fromAffine = function(curve, x, y) {
14039 return new Point(curve, x, y, BigInteger.ONE)
14042 Point.prototype.equals = function(other) {
14043 if (other === this) return true
14044 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
14045 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
14047 // u = Y2 * Z1 - Y1 * Z2
14048 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
14050 if (u.signum() !==
0) return false
14052 // v = X2 * Z1 - X1 * Z2
14053 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
14055 return v.signum() ===
0
14058 Point.prototype.negate = function() {
14059 var y = this.curve.p.subtract(this.y)
14061 return new Point(this.curve, this.x, y, this.z)
14064 Point.prototype.add = function(b) {
14065 if (this.curve.isInfinity(this)) return b
14066 if (this.curve.isInfinity(b)) return this
14073 // u = Y2 * Z1 - Y1 * Z2
14074 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
14075 // v = X2 * Z1 - X1 * Z2
14076 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
14078 if (v.signum() ===
0) {
14079 if (u.signum() ===
0) {
14080 return this.twice() // this == b, so double
14083 return this.curve.infinity // this = -b, so infinity
14086 var v2 = v.square()
14087 var v3 = v2.multiply(v)
14088 var x1v2 = x1.multiply(v2)
14089 var zu2 = u.square().multiply(this.z)
14091 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
14092 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
14093 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
14094 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)
14095 // z3 = v^
3 * z1 * z2
14096 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
14098 return new Point(this.curve, x3, y3, z3)
14101 Point.prototype.twice = function() {
14102 if (this.curve.isInfinity(this)) return this
14103 if (this.y.signum() ===
0) return this.curve.infinity
14108 var y1z1 = y1.multiply(this.z)
14109 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
14110 var a = this.curve.a
14112 // w =
3 * x1^
2 + a * z1^
2
14113 var w = x1.square().multiply(THREE)
14115 if (a.signum() !==
0) {
14116 w = w.add(this.z.square().multiply(a))
14119 w = w.mod(this.curve.p)
14120 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
14121 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
14122 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
14123 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
14124 // z3 =
8 * (y1 * z1)^
3
14125 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
14127 return new Point(this.curve, x3, y3, z3)
14130 // Simple NAF (Non-Adjacent Form) multiplication algorithm
14131 // TODO: modularize the multiplication algorithm
14132 Point.prototype.multiply = function(k) {
14133 if (this.curve.isInfinity(this)) return this
14134 if (k.signum() ===
0) return this.curve.infinity
14137 var h = e.multiply(THREE)
14139 var neg = this.negate()
14142 for (var i = h.bitLength() -
2; i
> 0; --i) {
14145 var hBit = h.testBit(i)
14146 var eBit = e.testBit(i)
14148 if (hBit != eBit) {
14149 R = R.add(hBit ? this : neg)
14156 // Compute this*j + x*k (simultaneous multiplication)
14157 Point.prototype.multiplyTwo = function(j, x, k) {
14160 if (j.bitLength()
> k.bitLength())
14161 i = j.bitLength() -
1
14163 i = k.bitLength() -
1
14165 var R = this.curve.infinity
14166 var both = this.add(x)
14171 var jBit = j.testBit(i)
14172 var kBit = k.testBit(i)
14193 Point.prototype.getEncoded = function(compressed) {
14194 if (compressed == undefined) compressed = this.compressed
14195 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
14197 var x = this.affineX
14198 var y = this.affineY
14202 // Determine size of q in bytes
14203 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
14207 buffer = new Buffer(
1 + byteLength)
14208 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
14212 buffer = new Buffer(
1 + byteLength + byteLength)
14213 buffer.writeUInt8(
0x04,
0)
14215 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
14218 x.toBuffer(byteLength).copy(buffer,
1)
14223 Point.decodeFrom = function(curve, buffer) {
14224 var type = buffer.readUInt8(
0)
14225 var compressed = (type !==
4)
14227 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
14228 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
14232 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
14233 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
14235 var isOdd = (type ===
0x03)
14236 Q = curve.pointFromX(isOdd, x)
14239 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
14241 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
14242 Q = Point.fromAffine(curve, x, y)
14245 Q.compressed = compressed
14249 Point.prototype.toString = function () {
14250 if (this.curve.isInfinity(this)) return '(INFINITY)'
14252 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
14255 module.exports = Point
14257 }).call(this,require("buffer").Buffer)
14258 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
14259 (function (process,global,Buffer){
14262 var crypto = global.crypto || global.msCrypto
14263 if(crypto && crypto.getRandomValues) {
14264 module.exports = randomBytes;
14266 module.exports = oldBrowser;
14268 function randomBytes(size, cb) {
14269 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
14270 /* This will not work in older browsers.
14271 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
14274 crypto.getRandomValues(bytes);
14275 if (typeof cb === 'function') {
14276 return process.nextTick(function () {
14282 function oldBrowser() {
14284 'secure random number generation not supported by this browser\n'+
14285 'use chrome, FireFox or Internet Explorer
11'
14289 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
14290 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
14291 (function (Buffer){
14294 function getFunctionName(fn) {
14295 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
14298 function getTypeTypeName(type) {
14299 if (nativeTypes.Function(type)) {
14300 type = type.toJSON ? type.toJSON() : getFunctionName(type);
14302 if (nativeTypes.Object(type)) return JSON.stringify(type);
14307 function getValueTypeName(value) {
14308 if (nativeTypes.Null(value)) return '';
14310 return getFunctionName(value.constructor);
14313 function tfErrorString(type, value) {
14314 var typeTypeName = getTypeTypeName(type);
14315 var valueTypeName = getValueTypeName(value);
14317 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
14320 function tfPropertyErrorString(type, name, value) {
14321 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
14324 var nativeTypes = {
14325 Array: (function (_Array) {
14326 function Array(_x) {
14327 return _Array.apply(this, arguments);
14330 Array.toString = function () {
14331 return _Array.toString();
14335 })(function (value) {
14336 return value !== null && value !== undefined && value.constructor === Array;
14338 Boolean: function Boolean(value) {
14339 return typeof value === 'boolean';
14341 Buffer: (function (_Buffer) {
14342 function Buffer(_x2) {
14343 return _Buffer.apply(this, arguments);
14346 Buffer.toString = function () {
14347 return _Buffer.toString();
14351 })(function (value) {
14352 return Buffer.isBuffer(value);
14354 Function: function Function(value) {
14355 return typeof value === 'function';
14357 Null: function Null(value) {
14358 return value === undefined || value === null;
14360 Number: function Number(value) {
14361 return typeof value === 'number';
14363 Object: function Object(value) {
14364 return typeof value === 'object';
14366 String: function String(value) {
14367 return typeof value === 'string';
14374 function tJSON(type) {
14375 return type && type.toJSON ? type.toJSON() : type;
14378 function sJSON(type) {
14379 var json = tJSON(type);
14380 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
14384 arrayOf: function arrayOf(type) {
14385 function arrayOf(value, strict) {
14387 return nativeTypes.Array(value) && value.every(function (x) {
14388 return typeforce(type, x, strict);
14394 arrayOf.toJSON = function () {
14395 return [tJSON(type)];
14401 maybe: function maybe(type) {
14402 function maybe(value, strict) {
14403 return nativeTypes.Null(value) || typeforce(type, value, strict);
14405 maybe.toJSON = function () {
14406 return '?' + sJSON(type);
14412 object: function object(type) {
14413 function object(value, strict) {
14414 typeforce(nativeTypes.Object, value, strict);
14416 var propertyName, propertyType, propertyValue;
14419 for (propertyName in type) {
14420 propertyType = type[propertyName];
14421 propertyValue = value[propertyName];
14423 typeforce(propertyType, propertyValue, strict);
14426 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
14430 for (propertyName in value) {
14431 if (type[propertyName]) continue;
14433 throw new TypeError('Unexpected property "' + propertyName + '"');
14439 object.toJSON = function () {
14446 oneOf: function oneOf() {
14447 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
14448 types[_key] = arguments[_key];
14451 function oneOf(value, strict) {
14452 return types.some(function (type) {
14454 return typeforce(type, value, strict);
14460 oneOf.toJSON = function () {
14461 return types.map(sJSON).join('|');
14467 quacksLike: function quacksLike(type) {
14468 function quacksLike(value, strict) {
14469 return type === getValueTypeName(value);
14471 quacksLike.toJSON = function () {
14478 tuple: function tuple() {
14479 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
14480 types[_key2] = arguments[_key2];
14483 function tuple(value, strict) {
14484 return types.every(function (type, i) {
14485 return typeforce(type, value[i], strict);
14488 tuple.toJSON = function () {
14489 return '(' + types.map(sJSON).join(', ') + ')';
14495 value: function value(expected) {
14496 function value(actual) {
14497 return actual === expected;
14499 value.toJSON = function () {
14507 function compile(type) {
14508 if (nativeTypes.String(type)) {
14509 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
14511 return nativeTypes[type] || otherTypes.quacksLike(type);
14512 } else if (type && nativeTypes.Object(type)) {
14513 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
14517 for (var propertyName in type) {
14518 compiled[propertyName] = compile(type[propertyName]);
14521 return otherTypes.object(compiled);
14522 } else if (nativeTypes.Function(type)) {
14526 return otherTypes.value(type);
14529 function typeforce(_x3, _x4, _x5) {
14532 _function: while (_again) {
14538 if (nativeTypes.Function(type)) {
14539 if (type(value, strict)) return true;
14541 throw new TypeError(tfErrorString(type, value));
14545 _x3 = compile(type);
14549 continue _function;
14553 // assign all types to typeforce function
14555 Object.keys(nativeTypes).forEach(function (typeName) {
14556 var nativeType = nativeTypes[typeName];
14557 nativeType.toJSON = function () {
14561 typeforce[typeName] = nativeType;
14564 for (typeName in otherTypes) {
14565 typeforce[typeName] = otherTypes[typeName];
14568 module.exports = typeforce;
14569 module.exports.compile = compile;
14570 }).call(this,require("buffer").Buffer)
14571 },{"buffer":
7}],
54:[function(require,module,exports){
14572 (function (Buffer){
14573 var assert = require('assert')
14574 var base58check = require('bs58check')
14575 var typeForce = require('typeforce')
14576 var networks = require('./networks')
14577 var scripts = require('./scripts')
14579 function findScriptTypeByVersion (version) {
14580 for (var networkName in networks) {
14581 var network = networks[networkName]
14583 if (version === network.pubKeyHash) return 'pubkeyhash'
14584 if (version === network.scriptHash) return 'scripthash'
14588 function Address (hash, version) {
14589 typeForce('Buffer', hash)
14591 assert.strictEqual(hash.length,
20, 'Invalid hash length')
14592 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
14595 this.version = version
14598 Address.fromBase58Check = function (string) {
14599 var payload = base58check.decode(string)
14600 var version = payload.readUInt8(
0)
14601 var hash = payload.slice(
1)
14603 return new Address(hash, version)
14606 Address.fromOutputScript = function (script, network) {
14607 network = network || networks.bitcoin
14609 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
14610 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
14612 assert(false, script.toASM() + ' has no matching Address')
14615 Address.prototype.toBase58Check = function () {
14616 var payload = new Buffer(
21)
14617 payload.writeUInt8(this.version,
0)
14618 this.hash.copy(payload,
1)
14620 return base58check.encode(payload)
14623 Address.prototype.toOutputScript = function () {
14624 var scriptType = findScriptTypeByVersion(this.version)
14626 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
14627 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
14629 assert(false, this.toString() + ' has no matching Script')
14632 Address.prototype.toString = Address.prototype.toBase58Check
14634 module.exports = Address
14636 }).call(this,require("buffer").Buffer)
14637 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
14638 var bs58check = require('bs58check')
14640 function decode () {
14641 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14643 return bs58check.decode.apply(undefined, arguments)
14646 function encode () {
14647 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14649 return bs58check.encode.apply(undefined, arguments)
14657 },{"bs58check":
31}],
56:[function(require,module,exports){
14658 (function (Buffer){
14659 var assert = require('assert')
14660 var bufferutils = require('./bufferutils')
14661 var crypto = require('./crypto')
14663 var Transaction = require('./transaction')
14665 function Block () {
14667 this.prevHash = null
14668 this.merkleRoot = null
14674 Block.fromBuffer = function (buffer) {
14675 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
14678 function readSlice (n) {
14680 return buffer.slice(offset - n, offset)
14683 function readUInt32 () {
14684 var i = buffer.readUInt32LE(offset)
14689 var block = new Block()
14690 block.version = readUInt32()
14691 block.prevHash = readSlice(
32)
14692 block.merkleRoot = readSlice(
32)
14693 block.timestamp = readUInt32()
14694 block.bits = readUInt32()
14695 block.nonce = readUInt32()
14697 if (buffer.length ===
80) return block
14699 function readVarInt () {
14700 var vi = bufferutils.readVarInt(buffer, offset)
14705 // FIXME: poor performance
14706 function readTransaction () {
14707 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
14709 offset += tx.toBuffer().length
14713 var nTransactions = readVarInt()
14714 block.transactions = []
14716 for (var i =
0; i < nTransactions; ++i) {
14717 var tx = readTransaction()
14718 block.transactions.push(tx)
14724 Block.fromHex = function (hex) {
14725 return Block.fromBuffer(new Buffer(hex, 'hex'))
14728 Block.prototype.getHash = function () {
14729 return crypto.hash256(this.toBuffer(true))
14732 Block.prototype.getId = function () {
14733 return bufferutils.reverse(this.getHash()).toString('hex')
14736 Block.prototype.getUTCDate = function () {
14737 var date = new Date(
0) // epoch
14738 date.setUTCSeconds(this.timestamp)
14743 Block.prototype.toBuffer = function (headersOnly) {
14744 var buffer = new Buffer(
80)
14747 function writeSlice (slice) {
14748 slice.copy(buffer, offset)
14749 offset += slice.length
14752 function writeUInt32 (i) {
14753 buffer.writeUInt32LE(i, offset)
14757 writeUInt32(this.version)
14758 writeSlice(this.prevHash)
14759 writeSlice(this.merkleRoot)
14760 writeUInt32(this.timestamp)
14761 writeUInt32(this.bits)
14762 writeUInt32(this.nonce)
14764 if (headersOnly || !this.transactions) return buffer
14766 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
14767 var txBuffers = this.transactions.map(function (tx) {
14768 return tx.toBuffer()
14771 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
14774 Block.prototype.toHex = function (headersOnly) {
14775 return this.toBuffer(headersOnly).toString('hex')
14778 module.exports = Block
14780 }).call(this,require("buffer").Buffer)
14781 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
14782 (function (Buffer){
14783 var assert = require('assert')
14784 var opcodes = require('./opcodes')
14786 // https://github.com/feross/buffer/blob/master/index.js#L1127
14787 function verifuint (value, max) {
14788 assert(typeof value === 'number', 'cannot write a non-number as a number')
14789 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
14790 assert(value <= max, 'value is larger than maximum value for type')
14791 assert(Math.floor(value) === value, 'value has a fractional component')
14794 function pushDataSize (i) {
14795 return i < opcodes.OP_PUSHDATA1 ?
1
14801 function readPushDataInt (buffer, offset) {
14802 var opcode = buffer.readUInt8(offset)
14806 if (opcode < opcodes.OP_PUSHDATA1) {
14811 } else if (opcode === opcodes.OP_PUSHDATA1) {
14812 if (offset +
2 > buffer.length) return null
14813 number = buffer.readUInt8(offset +
1)
14817 } else if (opcode === opcodes.OP_PUSHDATA2) {
14818 if (offset +
3 > buffer.length) return null
14819 number = buffer.readUInt16LE(offset +
1)
14824 if (offset +
5 > buffer.length) return null
14825 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
14827 number = buffer.readUInt32LE(offset +
1)
14838 function readUInt64LE (buffer, offset) {
14839 var a = buffer.readUInt32LE(offset)
14840 var b = buffer.readUInt32LE(offset +
4)
14843 verifuint(b + a,
0x001fffffffffffff)
14848 function readVarInt (buffer, offset) {
14849 var t = buffer.readUInt8(offset)
14858 } else if (t <
254) {
14859 number = buffer.readUInt16LE(offset +
1)
14863 } else if (t <
255) {
14864 number = buffer.readUInt32LE(offset +
1)
14869 number = readUInt64LE(buffer, offset +
1)
14879 function writePushDataInt (buffer, number, offset) {
14880 var size = pushDataSize(number)
14884 buffer.writeUInt8(number, offset)
14887 } else if (size ===
2) {
14888 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
14889 buffer.writeUInt8(number, offset +
1)
14892 } else if (size ===
3) {
14893 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
14894 buffer.writeUInt16LE(number, offset +
1)
14898 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
14899 buffer.writeUInt32LE(number, offset +
1)
14905 function writeUInt64LE (buffer, value, offset) {
14906 verifuint(value,
0x001fffffffffffff)
14908 buffer.writeInt32LE(value & -
1, offset)
14909 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
14912 function varIntSize (i) {
14915 : i <
0x100000000 ?
5
14919 function writeVarInt (buffer, number, offset) {
14920 var size = varIntSize(number)
14924 buffer.writeUInt8(number, offset)
14927 } else if (size ===
3) {
14928 buffer.writeUInt8(
253, offset)
14929 buffer.writeUInt16LE(number, offset +
1)
14932 } else if (size ===
5) {
14933 buffer.writeUInt8(
254, offset)
14934 buffer.writeUInt32LE(number, offset +
1)
14938 buffer.writeUInt8(
255, offset)
14939 writeUInt64LE(buffer, number, offset +
1)
14945 function varIntBuffer (i) {
14946 var size = varIntSize(i)
14947 var buffer = new Buffer(size)
14948 writeVarInt(buffer, i,
0)
14953 function reverse (buffer) {
14954 var buffer2 = new Buffer(buffer)
14955 Array.prototype.reverse.call(buffer2)
14960 pushDataSize: pushDataSize,
14961 readPushDataInt: readPushDataInt,
14962 readUInt64LE: readUInt64LE,
14963 readVarInt: readVarInt,
14965 varIntBuffer: varIntBuffer,
14966 varIntSize: varIntSize,
14967 writePushDataInt: writePushDataInt,
14968 writeUInt64LE: writeUInt64LE,
14969 writeVarInt: writeVarInt
14972 }).call(this,require("buffer").Buffer)
14973 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
14974 var createHash = require('create-hash')
14976 function hash160 (buffer) {
14977 return ripemd160(sha256(buffer))
14980 function hash256 (buffer) {
14981 return sha256(sha256(buffer))
14984 function ripemd160 (buffer) {
14985 return createHash('rmd160').update(buffer).digest()
14988 function sha1 (buffer) {
14989 return createHash('sha1').update(buffer).digest()
14992 function sha256 (buffer) {
14993 return createHash('sha256').update(buffer).digest()
14996 // FIXME: Name not consistent with others
14997 var createHmac = require('create-hmac')
14999 function HmacSHA256 (buffer, secret) {
15000 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
15001 return createHmac('sha256', secret).update(buffer).digest()
15004 function HmacSHA512 (buffer, secret) {
15005 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
15006 return createHmac('sha512', secret).update(buffer).digest()
15010 ripemd160: ripemd160,
15015 HmacSHA256: HmacSHA256,
15016 HmacSHA512: HmacSHA512
15019 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
15020 (function (Buffer){
15021 var assert = require('assert')
15022 var createHmac = require('create-hmac')
15023 var typeForce = require('typeforce')
15025 var BigInteger = require('bigi')
15026 var ECSignature = require('./ecsignature')
15028 var ZERO = new Buffer([
0])
15029 var ONE = new Buffer([
1])
15031 // https://tools.ietf.org/html/rfc6979#section-
3.2
15032 function deterministicGenerateK (curve, hash, d, checkSig) {
15033 typeForce('Buffer', hash)
15034 typeForce('BigInteger', d)
15036 // FIXME: remove/uncomment for
2.0.0
15037 // typeForce('Function', checkSig)
15039 if (typeof checkSig !== 'function') {
15040 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
15042 checkSig = function (k) {
15045 var e = BigInteger.fromBuffer(hash)
15047 var Q = G.multiply(k)
15049 if (curve.isInfinity(Q))
15052 var r = Q.affineX.mod(n)
15053 if (r.signum() ===
0)
15056 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
15057 if (s.signum() ===
0)
15065 assert.equal(hash.length,
32, 'Hash must be
256 bit')
15067 var x = d.toBuffer(
32)
15068 var k = new Buffer(
32)
15069 var v = new Buffer(
32)
15071 // Step A, ignored as hash already provided
15079 k = createHmac('sha256', k)
15087 v = createHmac('sha256', k).update(v).digest()
15090 k = createHmac('sha256', k)
15098 v = createHmac('sha256', k).update(v).digest()
15100 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
15102 v = createHmac('sha256', k).update(v).digest()
15104 var T = BigInteger.fromBuffer(v)
15106 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
15107 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
15108 k = createHmac('sha256', k)
15113 v = createHmac('sha256', k).update(v).digest()
15115 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
15117 v = createHmac('sha256', k).update(v).digest()
15118 T = BigInteger.fromBuffer(v)
15124 function sign (curve, hash, d) {
15127 var e = BigInteger.fromBuffer(hash)
15131 deterministicGenerateK(curve, hash, d, function (k) {
15132 var Q = G.multiply(k)
15134 if (curve.isInfinity(Q))
15137 r = Q.affineX.mod(n)
15138 if (r.signum() ===
0)
15141 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
15142 if (s.signum() ===
0)
15148 var N_OVER_TWO = n.shiftRight(
1)
15150 // enforce low S values, see bip62: 'low s values in signatures'
15151 if (s.compareTo(N_OVER_TWO)
> 0) {
15155 return new ECSignature(r, s)
15158 function verifyRaw (curve, e, signature, Q) {
15162 var r = signature.r
15163 var s = signature.s
15165 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
15166 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
15167 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
15170 var c = s.modInverse(n)
15172 //
1.4.4 Compute u1 = es^−
1 mod n
15173 // u2 = rs^−
1 mod n
15174 var u1 = e.multiply(c).mod(n)
15175 var u2 = r.multiply(c).mod(n)
15177 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
15178 var R = G.multiplyTwo(u1, Q, u2)
15179 var v = R.affineX.mod(n)
15181 //
1.4.5 (cont.) Enforce R is not at infinity
15182 if (curve.isInfinity(R)) return false
15184 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
15188 function verify (curve, hash, signature, Q) {
15189 //
1.4.2 H = Hash(M), already done by the user
15191 var e = BigInteger.fromBuffer(hash)
15193 return verifyRaw(curve, e, signature, Q)
15197 * Recover a public key from a signature.
15199 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
15200 * Key Recovery Operation".
15202 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
15204 function recoverPubKey (curve, e, signature, i) {
15205 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
15210 var r = signature.r
15211 var s = signature.s
15213 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
15214 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
15216 // A set LSB signifies that the y-coordinate is odd
15219 // The more significant bit specifies whether we should use the
15220 // first or second candidate key.
15221 var isSecondKey = i
>> 1
15223 //
1.1 Let x = r + jn
15224 var x = isSecondKey ? r.add(n) : r
15225 var R = curve.pointFromX(isYOdd, x)
15227 //
1.4 Check that nR is at infinity
15228 var nR = R.multiply(n)
15229 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
15231 // Compute -e from e
15232 var eNeg = e.negate().mod(n)
15234 //
1.6.1 Compute Q = r^-
1 (sR - eG)
15235 // Q = r^-
1 (sR + -eG)
15236 var rInv = r.modInverse(n)
15238 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
15245 * Calculate pubkey extraction parameter.
15247 * When extracting a pubkey from a signature, we have to
15248 * distinguish four different cases. Rather than putting this
15249 * burden on the verifier, Bitcoin includes a
2-bit value with the
15252 * This function simply tries all four cases and returns the value
15253 * that resulted in a successful pubkey recovery.
15255 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
15256 for (var i =
0; i <
4; i++) {
15257 var Qprime = recoverPubKey(curve, e, signature, i)
15260 if (Qprime.equals(Q)) {
15265 throw new Error('Unable to find valid recovery factor')
15269 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
15270 deterministicGenerateK: deterministicGenerateK,
15271 recoverPubKey: recoverPubKey,
15274 verifyRaw: verifyRaw
15277 }).call(this,require(
"buffer").Buffer)
15278 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
15279 (function (Buffer){
15280 var assert = require('assert')
15281 var base58check = require('bs58check')
15282 var ecdsa = require('./ecdsa')
15283 var networks = require('./networks')
15284 var randomBytes = require('randombytes')
15285 var typeForce = require('typeforce')
15287 var BigInteger = require('bigi')
15288 var ECPubKey = require('./ecpubkey')
15290 var ecurve = require('ecurve')
15291 var secp256k1 = ecurve.getCurveByName('secp256k1')
15293 function ECKey (d, compressed) {
15294 assert(d.signum()
> 0, 'Private key must be greater than
0')
15295 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
15297 var Q = ECKey.curve.G.multiply(d)
15300 this.pub = new ECPubKey(Q, compressed)
15304 ECKey.curve = secp256k1
15306 // Static constructors
15307 ECKey.fromWIF = function (string) {
15308 var payload = base58check.decode(string)
15309 var compressed = false
15311 // Ignore the version byte
15312 payload = payload.slice(
1)
15314 if (payload.length ===
33) {
15315 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
15317 // Truncate the compression flag
15318 payload = payload.slice(
0, -
1)
15322 assert.equal(payload.length,
32, 'Invalid WIF payload length')
15324 var d = BigInteger.fromBuffer(payload)
15325 return new ECKey(d, compressed)
15328 ECKey.makeRandom = function (compressed, rng) {
15329 rng = rng || randomBytes
15331 var buffer = rng(
32)
15332 typeForce('Buffer', buffer)
15333 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
15335 var d = BigInteger.fromBuffer(buffer)
15336 d = d.mod(ECKey.curve.n)
15338 return new ECKey(d, compressed)
15341 // Export functions
15342 ECKey.prototype.toWIF = function (network) {
15343 network = network || networks.bitcoin
15345 var bufferLen = this.pub.compressed ?
34 :
33
15346 var buffer = new Buffer(bufferLen)
15348 buffer.writeUInt8(network.wif,
0)
15349 this.d.toBuffer(
32).copy(buffer,
1)
15351 if (this.pub.compressed) {
15352 buffer.writeUInt8(
0x01,
33)
15355 return base58check.encode(buffer)
15359 ECKey.prototype.sign = function (hash) {
15360 return ecdsa.sign(ECKey.curve, hash, this.d)
15363 module.exports = ECKey
15365 }).call(this,require(
"buffer").Buffer)
15366 },{
"./ecdsa":
59,
"./ecpubkey":
61,
"./networks":
66,
"assert":
5,
"bigi":
3,
"bs58check":
31,
"buffer":
7,
"ecurve":
49,
"randombytes":
52,
"typeforce":
53}],
61:[function(require,module,exports){
15367 (function (Buffer){
15368 var crypto = require('./crypto')
15369 var ecdsa = require('./ecdsa')
15370 var typeForce = require('typeforce')
15371 var networks = require('./networks')
15373 var Address = require('./address')
15375 var ecurve = require('ecurve')
15376 var secp256k1 = ecurve.getCurveByName('secp256k1')
15378 function ECPubKey (Q, compressed) {
15379 if (compressed === undefined) {
15383 typeForce('Point', Q)
15384 typeForce('Boolean', compressed)
15386 this.compressed = compressed
15391 ECPubKey.curve = secp256k1
15393 // Static constructors
15394 ECPubKey.fromBuffer = function (buffer) {
15395 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
15396 return new ECPubKey(Q, Q.compressed)
15399 ECPubKey.fromHex = function (hex) {
15400 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
15404 ECPubKey.prototype.getAddress = function (network) {
15405 network = network || networks.bitcoin
15407 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
15410 ECPubKey.prototype.verify = function (hash, signature) {
15411 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
15414 // Export functions
15415 ECPubKey.prototype.toBuffer = function () {
15416 return this.Q.getEncoded(this.compressed)
15419 ECPubKey.prototype.toHex = function () {
15420 return this.toBuffer().toString('hex')
15423 module.exports = ECPubKey
15425 }).call(this,require(
"buffer").Buffer)
15426 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
15427 (function (Buffer){
15428 var assert = require('assert')
15429 var typeForce = require('typeforce')
15431 var BigInteger = require('bigi')
15433 function ECSignature (r, s) {
15434 typeForce('BigInteger', r)
15435 typeForce('BigInteger', s)
15441 ECSignature.parseCompact = function (buffer) {
15442 assert.equal(buffer.length,
65, 'Invalid signature length')
15443 var i = buffer.readUInt8(
0) -
27
15446 assert.equal(i, i &
7, 'Invalid signature parameter')
15447 var compressed = !!(i &
4)
15449 // Recovery param only
15452 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
15453 var s = BigInteger.fromBuffer(buffer.slice(
33))
15456 compressed: compressed,
15458 signature: new ECSignature(r, s)
15462 ECSignature.fromDER = function (buffer) {
15463 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
15464 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
15465 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
15467 var rLen = buffer.readUInt8(
3)
15468 assert(rLen
> 0, 'R length is zero')
15470 var offset =
4 + rLen
15471 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
15473 var sLen = buffer.readUInt8(offset +
1)
15474 assert(sLen
> 0, 'S length is zero')
15476 var rB = buffer.slice(
4, offset)
15477 var sB = buffer.slice(offset +
2)
15480 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
15481 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
15484 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
15485 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
15488 assert.equal(offset, buffer.length, 'Invalid DER encoding')
15489 var r = BigInteger.fromDERInteger(rB)
15490 var s = BigInteger.fromDERInteger(sB)
15492 assert(r.signum()
>=
0, 'R value is negative')
15493 assert(s.signum()
>=
0, 'S value is negative')
15495 return new ECSignature(r, s)
15498 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
15499 ECSignature.parseScriptSignature = function (buffer) {
15500 var hashType = buffer.readUInt8(buffer.length -
1)
15501 var hashTypeMod = hashType & ~
0x80
15503 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15506 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
15511 ECSignature.prototype.toCompact = function (i, compressed) {
15518 var buffer = new Buffer(
65)
15519 buffer.writeUInt8(i,
0)
15521 this.r.toBuffer(
32).copy(buffer,
1)
15522 this.s.toBuffer(
32).copy(buffer,
33)
15527 ECSignature.prototype.toDER = function () {
15528 var rBa = this.r.toDERInteger()
15529 var sBa = this.s.toDERInteger()
15534 sequence.push(
0x02, rBa.length)
15535 sequence = sequence.concat(rBa)
15538 sequence.push(
0x02, sBa.length)
15539 sequence = sequence.concat(sBa)
15542 sequence.unshift(
0x30, sequence.length)
15544 return new Buffer(sequence)
15547 ECSignature.prototype.toScriptSignature = function (hashType) {
15548 var hashTypeMod = hashType & ~
0x80
15549 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15551 var hashTypeBuffer = new Buffer(
1)
15552 hashTypeBuffer.writeUInt8(hashType,
0)
15554 return Buffer.concat([this.toDER(), hashTypeBuffer])
15557 module.exports = ECSignature
15559 }).call(this,require(
"buffer").Buffer)
15560 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
15561 (function (Buffer){
15562 var assert = require('assert')
15563 var base58check = require('bs58check')
15564 var bcrypto = require('./crypto')
15565 var createHmac = require('create-hmac')
15566 var typeForce = require('typeforce')
15567 var networks = require('./networks')
15569 var BigInteger = require('bigi')
15570 var ECKey = require('./eckey')
15571 var ECPubKey = require('./ecpubkey')
15573 var ecurve = require('ecurve')
15574 var curve = ecurve.getCurveByName('secp256k1')
15576 function findBIP32NetworkByVersion (version) {
15577 for (var name in networks) {
15578 var network = networks[name]
15580 if (version === network.bip32.private || version === network.bip32.public) {
15585 assert(false, 'Could not find network for ' + version.toString(
16))
15588 function HDNode (K, chainCode, network) {
15589 network = network || networks.bitcoin
15591 typeForce('Buffer', chainCode)
15593 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
15594 assert(network.bip32, 'Unknown BIP32 constants for network')
15596 this.chainCode = chainCode
15599 this.parentFingerprint =
0x00000000
15600 this.network = network
15602 if (K instanceof BigInteger) {
15603 this.privKey = new ECKey(K, true)
15604 this.pubKey = this.privKey.pub
15605 } else if (K instanceof ECKey) {
15606 assert(K.pub.compressed, 'ECKey must be compressed')
15608 this.pubKey = K.pub
15609 } else if (K instanceof ECPubKey) {
15610 assert(K.compressed, 'ECPubKey must be compressed')
15613 this.pubKey = new ECPubKey(K, true)
15617 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
15618 HDNode.HIGHEST_BIT =
0x80000000
15621 HDNode.fromSeedBuffer = function (seed, network) {
15622 typeForce('Buffer', seed)
15624 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
15625 assert(seed.length <=
64, 'Seed should be at most
512 bits')
15627 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
15628 var IL = I.slice(
0,
32)
15629 var IR = I.slice(
32)
15631 // In case IL is
0 or
>= n, the master key is invalid
15632 // This is handled by `new ECKey` in the HDNode constructor
15633 var pIL = BigInteger.fromBuffer(IL)
15635 return new HDNode(pIL, IR, network)
15638 HDNode.fromSeedHex = function (hex, network) {
15639 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
15642 HDNode.fromBase58 = function (string, network) {
15643 return HDNode.fromBuffer(base58check.decode(string), network, true)
15646 // FIXME: remove in
2.x.y
15647 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
15648 if (!__ignoreDeprecation) {
15649 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
15652 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
15654 //
4 byte: version bytes
15655 var version = buffer.readUInt32BE(
0)
15658 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
15662 network = findBIP32NetworkByVersion(version)
15665 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
15666 var depth = buffer.readUInt8(
4)
15668 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15669 var parentFingerprint = buffer.readUInt32BE(
5)
15671 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
15674 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15675 // This is encoded in MSB order. (
0x00000000 if master key)
15676 var index = buffer.readUInt32BE(
9)
15677 assert(depth
> 0 || index ===
0, 'Invalid index')
15679 //
32 bytes: the chain code
15680 var chainCode = buffer.slice(
13,
45)
15683 //
33 bytes: private key data (
0x00 + k)
15684 if (version === network.bip32.private) {
15685 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
15686 data = buffer.slice(
46,
78)
15687 var d = BigInteger.fromBuffer(data)
15688 hd = new HDNode(d, chainCode, network)
15690 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
15692 data = buffer.slice(
45,
78)
15693 var Q = ecurve.Point.decodeFrom(curve, data)
15694 assert.equal(Q.compressed, true, 'Invalid public key')
15696 // Verify that the X coordinate in the public point corresponds to a point on the curve.
15697 // If not, the extended public key is invalid.
15700 hd = new HDNode(Q, chainCode, network)
15705 hd.parentFingerprint = parentFingerprint
15710 // FIXME: remove in
2.x.y
15711 HDNode.fromHex = function (hex, network) {
15712 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
15715 HDNode.prototype.getIdentifier = function () {
15716 return bcrypto.hash160(this.pubKey.toBuffer())
15719 HDNode.prototype.getFingerprint = function () {
15720 return this.getIdentifier().slice(
0,
4)
15723 HDNode.prototype.getAddress = function () {
15724 return this.pubKey.getAddress(this.network)
15727 HDNode.prototype.neutered = function () {
15728 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
15729 neutered.depth = this.depth
15730 neutered.index = this.index
15731 neutered.parentFingerprint = this.parentFingerprint
15736 HDNode.prototype.toBase58 = function (isPrivate) {
15737 return base58check.encode(this.toBuffer(isPrivate, true))
15740 // FIXME: remove in
2.x.y
15741 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
15742 if (isPrivate === undefined) {
15743 isPrivate = !!this.privKey
15745 // FIXME: remove in
2.x.y
15747 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
15750 if (!__ignoreDeprecation) {
15751 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
15755 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
15756 var buffer = new Buffer(HDNode.LENGTH)
15758 //
4 bytes: version bytes
15759 buffer.writeUInt32BE(version,
0)
15762 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
15763 buffer.writeUInt8(this.depth,
4)
15765 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15766 buffer.writeUInt32BE(this.parentFingerprint,
5)
15768 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15769 // This is encoded in Big endian. (
0x00000000 if master key)
15770 buffer.writeUInt32BE(this.index,
9)
15772 //
32 bytes: the chain code
15773 this.chainCode.copy(buffer,
13)
15775 //
33 bytes: the public key or private key data
15777 // FIXME: remove in
2.x.y
15778 assert(this.privKey, 'Missing private key')
15780 //
0x00 + k for private keys
15781 buffer.writeUInt8(
0,
45)
15782 this.privKey.d.toBuffer(
32).copy(buffer,
46)
15784 // X9.62 encoding for public keys
15785 this.pubKey.toBuffer().copy(buffer,
45)
15791 // FIXME: remove in
2.x.y
15792 HDNode.prototype.toHex = function (isPrivate) {
15793 return this.toBuffer(isPrivate).toString('hex')
15796 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
15797 HDNode.prototype.derive = function (index) {
15798 var isHardened = index
>= HDNode.HIGHEST_BIT
15799 var indexBuffer = new Buffer(
4)
15800 indexBuffer.writeUInt32BE(index,
0)
15806 assert(this.privKey, 'Could not derive hardened child key')
15808 // data =
0x00 || ser256(kpar) || ser32(index)
15809 data = Buffer.concat([
15810 this.privKey.d.toBuffer(
33),
15816 // data = serP(point(kpar)) || ser32(index)
15817 // = serP(Kpar) || ser32(index)
15818 data = Buffer.concat([
15819 this.pubKey.toBuffer(),
15824 var I = createHmac('sha512', this.chainCode).update(data).digest()
15825 var IL = I.slice(
0,
32)
15826 var IR = I.slice(
32)
15828 var pIL = BigInteger.fromBuffer(IL)
15830 // In case parse256(IL)
>= n, proceed with the next value for i
15831 if (pIL.compareTo(curve.n)
>=
0) {
15832 return this.derive(index +
1)
15835 // Private parent key -
> private child key
15837 if (this.privKey) {
15838 // ki = parse256(IL) + kpar (mod n)
15839 var ki = pIL.add(this.privKey.d).mod(curve.n)
15841 // In case ki ==
0, proceed with the next value for i
15842 if (ki.signum() ===
0) {
15843 return this.derive(index +
1)
15846 hd = new HDNode(ki, IR, this.network)
15848 // Public parent key -
> public child key
15850 // Ki = point(parse256(IL)) + Kpar
15852 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
15854 // In case Ki is the point at infinity, proceed with the next value for i
15855 if (curve.isInfinity(Ki)) {
15856 return this.derive(index +
1)
15859 hd = new HDNode(Ki, IR, this.network)
15862 hd.depth = this.depth +
1
15864 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
15869 HDNode.prototype.deriveHardened = function (index) {
15870 // Only derives hardened private keys by default
15871 return this.derive(index + HDNode.HIGHEST_BIT)
15874 HDNode.prototype.toString = HDNode.prototype.toBase58
15876 module.exports = HDNode
15878 }).call(this,require("buffer").Buffer)
15879 },{"./crypto":
58,"./eckey":
60,"./ecpubkey":
61,"./networks":
66,"assert":
5,"bigi":
3,"bs58check":
31,"buffer":
7,"create-hmac":
45,"ecurve":
49,"typeforce":
53}],
64:[function(require,module,exports){
15881 Address: require('./address'),
15882 base58check: require('./base58check'),
15883 Block: require('./block'),
15884 bufferutils: require('./bufferutils'),
15885 crypto: require('./crypto'),
15886 ecdsa: require('./ecdsa'),
15887 ECKey: require('./eckey'),
15888 ECPubKey: require('./ecpubkey'),
15889 ECSignature: require('./ecsignature'),
15890 Message: require('./message'),
15891 opcodes: require('./opcodes'),
15892 HDNode: require('./hdnode'),
15893 Script: require('./script'),
15894 scripts: require('./scripts'),
15895 Transaction: require('./transaction'),
15896 TransactionBuilder: require('./transaction_builder'),
15897 networks: require('./networks'),
15898 Wallet: require('./wallet')
15901 },{"./address":
54,"./base58check":
55,"./block":
56,"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./eckey":
60,"./ecpubkey":
61,"./ecsignature":
62,"./hdnode":
63,"./message":
65,"./networks":
66,"./opcodes":
67,"./script":
68,"./scripts":
69,"./transaction":
70,"./transaction_builder":
71,"./wallet":
72}],
65:[function(require,module,exports){
15902 (function (Buffer){
15903 var bufferutils = require('./bufferutils')
15904 var crypto = require('./crypto')
15905 var ecdsa = require('./ecdsa')
15906 var networks = require('./networks')
15908 var BigInteger = require('bigi')
15909 var ECPubKey = require('./ecpubkey')
15910 var ECSignature = require('./ecsignature')
15912 var ecurve = require('ecurve')
15913 var ecparams = ecurve.getCurveByName('secp256k1')
15915 function magicHash (message, network) {
15916 var magicPrefix = new Buffer(network.magicPrefix)
15917 var messageBuffer = new Buffer(message)
15918 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
15920 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
15921 return crypto.hash256(buffer)
15924 function sign (privKey, message, network) {
15925 network = network || networks.bitcoin
15927 var hash = magicHash(message, network)
15928 var signature = privKey.sign(hash)
15929 var e = BigInteger.fromBuffer(hash)
15930 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
15932 return signature.toCompact(i, privKey.pub.compressed)
15935 // TODO: network could be implied from address
15936 function verify (address, signature, message, network) {
15937 if (!Buffer.isBuffer(signature)) {
15938 signature = new Buffer(signature, 'base64')
15941 network = network || networks.bitcoin
15943 var hash = magicHash(message, network)
15944 var parsed = ECSignature.parseCompact(signature)
15945 var e = BigInteger.fromBuffer(hash)
15946 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
15948 var pubKey = new ECPubKey(Q, parsed.compressed)
15949 return pubKey.getAddress(network).toString() === address.toString()
15953 magicHash: magicHash,
15958 }).call(this,require("buffer").Buffer)
15959 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
15960 // https://en.bitcoin.it/wiki/List_of_address_prefixes
15961 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
15965 magicPrefix: '\x18Bitcoin Signed Message:\n',
15967 public:
0x0488b21e,
15968 private:
0x0488ade4
15973 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
15974 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
15975 estimateFee: estimateFee('bitcoin')
15978 magicPrefix: '\x18Bitcoin Signed Message:\n',
15980 public:
0x043587cf,
15981 private:
0x04358394
15986 dustThreshold:
546,
15988 estimateFee: estimateFee('testnet')
15991 magicPrefix: '\x19Litecoin Signed Message:\n',
15993 public:
0x019da462,
15994 private:
0x019d9cfe
15999 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
16000 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
16001 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
16002 estimateFee: estimateFee('litecoin')
16005 magicPrefix: '\x19Dogecoin Signed Message:\n',
16007 public:
0x02facafd,
16008 private:
0x02fac398
16013 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
16014 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
16015 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
16016 estimateFee: estimateFee('dogecoin')
16019 magicPrefix: '\x18Viacoin Signed Message:\n',
16021 public:
0x0488b21e,
16022 private:
0x0488ade4
16027 dustThreshold:
560,
16028 dustSoftThreshold:
100000,
16029 feePerKb:
100000, //
16030 estimateFee: estimateFee('viacoin')
16033 magicPrefix: '\x18Viacoin Signed Message:\n',
16035 public:
0x043587cf,
16036 private:
0x04358394
16041 dustThreshold:
560,
16042 dustSoftThreshold:
100000,
16044 estimateFee: estimateFee('viacointestnet')
16047 magicPrefix: '\x19Gamerscoin Signed Message:\n',
16049 public:
0x019da462,
16050 private:
0x019d9cfe
16055 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
16056 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
16057 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
16058 estimateFee: estimateFee('gamerscoin')
16061 magicPrefix: '\x19Jumbucks Signed Message:\n',
16063 public:
0x037a689a,
16064 private:
0x037a6460
16070 dustSoftThreshold:
10000,
16072 estimateFee: estimateFee('jumbucks')
16075 magicPrefix: '\x18Zetacoin Signed Message:\n',
16077 public:
0x0488b21e,
16078 private:
0x0488ade4
16083 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
16084 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
16085 estimateFee: estimateFee('zetacoin')
16089 function estimateFee (type) {
16090 return function (tx) {
16091 var network = networks[type]
16092 var baseFee = network.feePerKb
16093 var byteSize = tx.toBuffer().length
16095 var fee = baseFee * Math.ceil(byteSize /
1000)
16096 if (network.dustSoftThreshold === undefined) return fee
16098 tx.outs.forEach(function (e) {
16099 if (e.value < network.dustSoftThreshold) {
16108 module.exports = networks
16110 },{}],
67:[function(require,module,exports){
16151 OP_TOALTSTACK:
107,
16152 OP_FROMALTSTACK:
108,
16184 OP_EQUALVERIFY:
136,
16209 OP_NUMEQUALVERIFY:
157,
16210 OP_NUMNOTEQUAL:
158,
16212 OP_GREATERTHAN:
160,
16213 OP_LESSTHANOREQUAL:
161,
16214 OP_GREATERTHANOREQUAL:
162,
16226 OP_CODESEPARATOR:
171,
16228 OP_CHECKSIGVERIFY:
173,
16229 OP_CHECKMULTISIG:
174,
16230 OP_CHECKMULTISIGVERIFY:
175,
16244 // template matching params
16245 OP_PUBKEYHASH:
253,
16247 OP_INVALIDOPCODE:
255
16250 },{}],
68:[function(require,module,exports){
16251 (function (Buffer){
16252 var assert = require('assert')
16253 var bufferutils = require('./bufferutils')
16254 var crypto = require('./crypto')
16255 var typeForce = require('typeforce')
16256 var opcodes = require('./opcodes')
16258 function Script (buffer, chunks) {
16259 typeForce('Buffer', buffer)
16260 typeForce('Array', chunks)
16262 this.buffer = buffer
16263 this.chunks = chunks
16266 Script.fromASM = function (asm) {
16267 var strChunks = asm.split(' ')
16268 var chunks = strChunks.map(function (strChunk) {
16270 if (strChunk in opcodes) {
16271 return opcodes[strChunk]
16275 return new Buffer(strChunk, 'hex')
16279 return Script.fromChunks(chunks)
16282 Script.fromBuffer = function (buffer) {
16286 while (i < buffer.length) {
16287 var opcode = buffer.readUInt8(i)
16290 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
16291 var d = bufferutils.readPushDataInt(buffer, i)
16293 // did reading a pushDataInt fail? return non-chunked script
16294 if (d === null) return new Script(buffer, [])
16297 // attempt to read too much data?
16298 if (i + d.number
> buffer.length) return new Script(buffer, [])
16300 var data = buffer.slice(i, i + d.number)
16307 chunks.push(opcode)
16313 return new Script(buffer, chunks)
16316 Script.fromChunks = function (chunks) {
16317 typeForce('Array', chunks)
16319 var bufferSize = chunks.reduce(function (accum, chunk) {
16321 if (Buffer.isBuffer(chunk)) {
16322 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
16329 var buffer = new Buffer(bufferSize)
16332 chunks.forEach(function (chunk) {
16334 if (Buffer.isBuffer(chunk)) {
16335 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
16337 chunk.copy(buffer, offset)
16338 offset += chunk.length
16342 buffer.writeUInt8(chunk, offset)
16347 assert.equal(offset, buffer.length, 'Could not decode chunks')
16348 return new Script(buffer, chunks)
16351 Script.fromHex = function (hex) {
16352 return Script.fromBuffer(new Buffer(hex, 'hex'))
16355 Script.EMPTY = Script.fromChunks([])
16357 Script.prototype.getHash = function () {
16358 return crypto.hash160(this.buffer)
16361 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
16362 Script.prototype.without = function (needle) {
16363 return Script.fromChunks(this.chunks.filter(function (op) {
16364 return op !== needle
16368 var reverseOps = []
16369 for (var op in opcodes) {
16370 var code = opcodes[op]
16371 reverseOps[code] = op
16374 Script.prototype.toASM = function () {
16375 return this.chunks.map(function (chunk) {
16377 if (Buffer.isBuffer(chunk)) {
16378 return chunk.toString('hex')
16382 return reverseOps[chunk]
16387 Script.prototype.toBuffer = function () {
16391 Script.prototype.toHex = function () {
16392 return this.toBuffer().toString('hex')
16395 module.exports = Script
16397 }).call(this,require("buffer").Buffer)
16398 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
16399 (function (Buffer){
16400 var assert = require('assert')
16401 var ops = require('./opcodes')
16402 var typeForce = require('typeforce')
16404 var ecurve = require('ecurve')
16405 var curve = ecurve.getCurveByName('secp256k1')
16407 var ECSignature = require('./ecsignature')
16408 var Script = require('./script')
16410 function isCanonicalPubKey (buffer) {
16411 if (!Buffer.isBuffer(buffer)) return false
16414 ecurve.Point.decodeFrom(curve, buffer)
16416 if (!(e.message.match(/Invalid sequence (length|tag)/)))
16425 function isCanonicalSignature (buffer) {
16426 if (!Buffer.isBuffer(buffer)) return false
16429 ECSignature.parseScriptSignature(buffer)
16431 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
16441 function isPubKeyHashInput (script) {
16442 return script.chunks.length ===
2 &&
16443 isCanonicalSignature(script.chunks[
0]) &&
16444 isCanonicalPubKey(script.chunks[
1])
16447 function isPubKeyHashOutput (script) {
16448 return script.chunks.length ===
5 &&
16449 script.chunks[
0] === ops.OP_DUP &&
16450 script.chunks[
1] === ops.OP_HASH160 &&
16451 Buffer.isBuffer(script.chunks[
2]) &&
16452 script.chunks[
2].length ===
20 &&
16453 script.chunks[
3] === ops.OP_EQUALVERIFY &&
16454 script.chunks[
4] === ops.OP_CHECKSIG
16457 function isPubKeyInput (script) {
16458 return script.chunks.length ===
1 &&
16459 isCanonicalSignature(script.chunks[
0])
16462 function isPubKeyOutput (script) {
16463 return script.chunks.length ===
2 &&
16464 isCanonicalPubKey(script.chunks[
0]) &&
16465 script.chunks[
1] === ops.OP_CHECKSIG
16468 function isScriptHashInput (script, allowIncomplete) {
16469 if (script.chunks.length <
2) return false
16471 var lastChunk = script.chunks[script.chunks.length -
1]
16472 if (!Buffer.isBuffer(lastChunk)) return false
16474 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
16475 var redeemScript = Script.fromBuffer(lastChunk)
16477 // is redeemScript a valid script?
16478 if (redeemScript.chunks.length ===
0) return false
16480 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
16483 function isScriptHashOutput (script) {
16484 return script.chunks.length ===
3 &&
16485 script.chunks[
0] === ops.OP_HASH160 &&
16486 Buffer.isBuffer(script.chunks[
1]) &&
16487 script.chunks[
1].length ===
20 &&
16488 script.chunks[
2] === ops.OP_EQUAL
16491 // allowIncomplete is to account for combining signatures
16492 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
16493 function isMultisigInput (script, allowIncomplete) {
16494 if (script.chunks.length <
2) return false
16495 if (script.chunks[
0] !== ops.OP_0) return false
16497 if (allowIncomplete) {
16498 return script.chunks.slice(
1).every(function (chunk) {
16499 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
16503 return script.chunks.slice(
1).every(isCanonicalSignature)
16506 function isMultisigOutput (script) {
16507 if (script.chunks.length <
4) return false
16508 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
16510 var mOp = script.chunks[
0]
16511 if (mOp === ops.OP_0) return false
16512 if (mOp < ops.OP_1) return false
16513 if (mOp
> ops.OP_16) return false
16515 var nOp = script.chunks[script.chunks.length -
2]
16516 if (nOp === ops.OP_0) return false
16517 if (nOp < ops.OP_1) return false
16518 if (nOp
> ops.OP_16) return false
16520 var m = mOp - (ops.OP_1 -
1)
16521 var n = nOp - (ops.OP_1 -
1)
16522 if (n < m) return false
16524 var pubKeys = script.chunks.slice(
1, -
2)
16525 if (n < pubKeys.length) return false
16527 return pubKeys.every(isCanonicalPubKey)
16530 function isNullDataOutput (script) {
16531 return script.chunks[
0] === ops.OP_RETURN
16534 function classifyOutput (script) {
16535 typeForce('Script', script)
16537 if (isPubKeyHashOutput(script)) {
16538 return 'pubkeyhash'
16539 } else if (isScriptHashOutput(script)) {
16540 return 'scripthash'
16541 } else if (isMultisigOutput(script)) {
16543 } else if (isPubKeyOutput(script)) {
16545 } else if (isNullDataOutput(script)) {
16549 return 'nonstandard'
16552 function classifyInput (script, allowIncomplete) {
16553 typeForce('Script', script)
16555 if (isPubKeyHashInput(script)) {
16556 return 'pubkeyhash'
16557 } else if (isMultisigInput(script, allowIncomplete)) {
16559 } else if (isScriptHashInput(script, allowIncomplete)) {
16560 return 'scripthash'
16561 } else if (isPubKeyInput(script)) {
16565 return 'nonstandard'
16568 // Standard Script Templates
16569 // {pubKey} OP_CHECKSIG
16570 function pubKeyOutput (pubKey) {
16571 return Script.fromChunks([
16577 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
16578 function pubKeyHashOutput (hash) {
16579 typeForce('Buffer', hash)
16581 return Script.fromChunks([
16585 ops.OP_EQUALVERIFY,
16590 // OP_HASH160 {scriptHash} OP_EQUAL
16591 function scriptHashOutput (hash) {
16592 typeForce('Buffer', hash)
16594 return Script.fromChunks([
16601 // m [pubKeys ...] n OP_CHECKMULTISIG
16602 function multisigOutput (m, pubKeys) {
16603 typeForce(['ECPubKey'], pubKeys)
16605 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
16607 var pubKeyBuffers = pubKeys.map(function (pubKey) {
16608 return pubKey.toBuffer()
16610 var n = pubKeys.length
16612 return Script.fromChunks([].concat(
16613 (ops.OP_1 -
1) + m,
16615 (ops.OP_1 -
1) + n,
16616 ops.OP_CHECKMULTISIG
16621 function pubKeyInput (signature) {
16622 typeForce('Buffer', signature)
16624 return Script.fromChunks([signature])
16627 // {signature} {pubKey}
16628 function pubKeyHashInput (signature, pubKey) {
16629 typeForce('Buffer', signature)
16631 return Script.fromChunks([signature, pubKey.toBuffer()])
16634 //
<scriptSig> {serialized scriptPubKey script}
16635 function scriptHashInput (scriptSig, scriptPubKey) {
16636 return Script.fromChunks([].concat(
16638 scriptPubKey.toBuffer()
16642 // OP_0 [signatures ...]
16643 function multisigInput (signatures, scriptPubKey) {
16644 if (scriptPubKey) {
16645 assert(isMultisigOutput(scriptPubKey))
16647 var mOp = scriptPubKey.chunks[
0]
16648 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
16649 var m = mOp - (ops.OP_1 -
1)
16650 var n = nOp - (ops.OP_1 -
1)
16652 assert(signatures.length
>= m, 'Not enough signatures provided')
16653 assert(signatures.length <= n, 'Too many signatures provided')
16656 return Script.fromChunks([].concat(ops.OP_0, signatures))
16659 function nullDataOutput (data) {
16660 return Script.fromChunks([ops.OP_RETURN, data])
16664 isCanonicalPubKey: isCanonicalPubKey,
16665 isCanonicalSignature: isCanonicalSignature,
16666 isPubKeyHashInput: isPubKeyHashInput,
16667 isPubKeyHashOutput: isPubKeyHashOutput,
16668 isPubKeyInput: isPubKeyInput,
16669 isPubKeyOutput: isPubKeyOutput,
16670 isScriptHashInput: isScriptHashInput,
16671 isScriptHashOutput: isScriptHashOutput,
16672 isMultisigInput: isMultisigInput,
16673 isMultisigOutput: isMultisigOutput,
16674 isNullDataOutput: isNullDataOutput,
16675 classifyOutput: classifyOutput,
16676 classifyInput: classifyInput,
16677 pubKeyOutput: pubKeyOutput,
16678 pubKeyHashOutput: pubKeyHashOutput,
16679 scriptHashOutput: scriptHashOutput,
16680 multisigOutput: multisigOutput,
16681 pubKeyInput: pubKeyInput,
16682 pubKeyHashInput: pubKeyHashInput,
16683 scriptHashInput: scriptHashInput,
16684 multisigInput: multisigInput,
16685 dataOutput: function (data) {
16686 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
16687 return nullDataOutput(data)
16689 nullDataOutput: nullDataOutput
16692 }).call(this,require("buffer").Buffer)
16693 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
16694 (function (Buffer){
16695 var assert = require('assert')
16696 var bufferutils = require('./bufferutils')
16697 var crypto = require('./crypto')
16698 var typeForce = require('typeforce')
16699 var opcodes = require('./opcodes')
16700 var scripts = require('./scripts')
16702 var Address = require('./address')
16703 var ECSignature = require('./ecsignature')
16704 var Script = require('./script')
16706 function Transaction () {
16713 Transaction.DEFAULT_SEQUENCE =
0xffffffff
16714 Transaction.SIGHASH_ALL =
0x01
16715 Transaction.SIGHASH_NONE =
0x02
16716 Transaction.SIGHASH_SINGLE =
0x03
16717 Transaction.SIGHASH_ANYONECANPAY =
0x80
16719 Transaction.fromBuffer = function (buffer, __disableAssert) {
16721 function readSlice (n) {
16723 return buffer.slice(offset - n, offset)
16726 function readUInt32 () {
16727 var i = buffer.readUInt32LE(offset)
16732 function readUInt64 () {
16733 var i = bufferutils.readUInt64LE(buffer, offset)
16738 function readVarInt () {
16739 var vi = bufferutils.readVarInt(buffer, offset)
16744 function readScript () {
16745 return Script.fromBuffer(readSlice(readVarInt()))
16748 function readGenerationScript () {
16749 return new Script(readSlice(readVarInt()), [])
16752 var tx = new Transaction()
16753 tx.version = readUInt32()
16755 var vinLen = readVarInt()
16756 for (var i =
0; i < vinLen; ++i) {
16757 var hash = readSlice(
32)
16759 if (Transaction.isCoinbaseHash(hash)) {
16762 index: readUInt32(),
16763 script: readGenerationScript(),
16764 sequence: readUInt32()
16769 index: readUInt32(),
16770 script: readScript(),
16771 sequence: readUInt32()
16776 var voutLen = readVarInt()
16777 for (i =
0; i < voutLen; ++i) {
16779 value: readUInt64(),
16780 script: readScript()
16784 tx.locktime = readUInt32()
16786 if (!__disableAssert) {
16787 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
16793 Transaction.fromHex = function (hex) {
16794 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
16797 Transaction.isCoinbaseHash = function (buffer) {
16798 return Array.prototype.every.call(buffer, function (x) {
16804 * Create a new txIn.
16806 * Can be called with any of:
16808 * - A transaction and an index
16809 * - A transaction hash and an index
16811 * Note that this method does not sign the created input.
16813 Transaction.prototype.addInput = function (hash, index, sequence, script) {
16814 if (sequence === undefined || sequence === null) {
16815 sequence = Transaction.DEFAULT_SEQUENCE
16818 script = script || Script.EMPTY
16820 if (typeof hash === 'string') {
16821 // TxId hex is big-endian, we need little-endian
16822 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
16823 } else if (hash instanceof Transaction) {
16824 hash = hash.getHash()
16827 typeForce('Buffer', hash)
16828 typeForce('Number', index)
16829 typeForce('Number', sequence)
16830 typeForce('Script', script)
16832 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
16834 // Add the input and return the input's index
16835 return (this.ins.push({
16844 * Create a new txOut.
16846 * Can be called with:
16848 * - A base58 address string and a value
16849 * - An Address object and a value
16850 * - A scriptPubKey Script and a value
16852 Transaction.prototype.addOutput = function (scriptPubKey, value) {
16853 // Attempt to get a valid address if it's a base58 address string
16854 if (typeof scriptPubKey === 'string') {
16855 scriptPubKey = Address.fromBase58Check(scriptPubKey)
16858 // Attempt to get a valid script if it's an Address object
16859 if (scriptPubKey instanceof Address) {
16860 scriptPubKey = scriptPubKey.toOutputScript()
16863 typeForce('Script', scriptPubKey)
16864 typeForce('Number', value)
16866 // Add the output and return the output's index
16867 return (this.outs.push({
16868 script: scriptPubKey,
16873 Transaction.prototype.clone = function () {
16874 var newTx = new Transaction()
16875 newTx.version = this.version
16876 newTx.locktime = this.locktime
16878 newTx.ins = this.ins.map(function (txIn) {
16882 script: txIn.script,
16883 sequence: txIn.sequence
16887 newTx.outs = this.outs.map(function (txOut) {
16889 script: txOut.script,
16898 * Hash transaction for signing a specific input.
16900 * Bitcoin uses a different hash for each signed transaction input. This
16901 * method copies the transaction, makes the necessary changes based on the
16902 * hashType, serializes and finally hashes the result. This hash can then be
16903 * used to sign the transaction input in question.
16905 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
16906 // FIXME: remove in
2.x.y
16907 if (arguments[
0] instanceof Script) {
16908 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
16910 // swap the arguments (must be stored in tmp, arguments is special)
16911 var tmp = arguments[
0]
16912 inIndex = arguments[
1]
16913 prevOutScript = tmp
16916 typeForce('Number', inIndex)
16917 typeForce('Script', prevOutScript)
16918 typeForce('Number', hashType)
16920 assert(inIndex
>=
0, 'Invalid vin index')
16921 assert(inIndex < this.ins.length, 'Invalid vin index')
16923 var txTmp = this.clone()
16924 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
16926 // Blank out other inputs' signatures
16927 txTmp.ins.forEach(function (txIn) {
16928 txIn.script = Script.EMPTY
16930 txTmp.ins[inIndex].script = hashScript
16932 var hashTypeModifier = hashType &
0x1f
16934 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
16935 assert(false, 'SIGHASH_NONE not yet supported')
16936 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
16937 assert(false, 'SIGHASH_SINGLE not yet supported')
16940 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
16941 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
16944 var hashTypeBuffer = new Buffer(
4)
16945 hashTypeBuffer.writeInt32LE(hashType,
0)
16947 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
16948 return crypto.hash256(buffer)
16951 Transaction.prototype.getHash = function () {
16952 return crypto.hash256(this.toBuffer())
16955 Transaction.prototype.getId = function () {
16956 // TxHash is little-endian, we need big-endian
16957 return bufferutils.reverse(this.getHash()).toString('hex')
16960 Transaction.prototype.toBuffer = function () {
16961 function scriptSize (script) {
16962 var length = script.buffer.length
16964 return bufferutils.varIntSize(length) + length
16967 var buffer = new Buffer(
16969 bufferutils.varIntSize(this.ins.length) +
16970 bufferutils.varIntSize(this.outs.length) +
16971 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
16972 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
16976 function writeSlice (slice) {
16977 slice.copy(buffer, offset)
16978 offset += slice.length
16981 function writeUInt32 (i) {
16982 buffer.writeUInt32LE(i, offset)
16986 function writeUInt64 (i) {
16987 bufferutils.writeUInt64LE(buffer, i, offset)
16991 function writeVarInt (i) {
16992 var n = bufferutils.writeVarInt(buffer, i, offset)
16996 writeUInt32(this.version)
16997 writeVarInt(this.ins.length)
16999 this.ins.forEach(function (txIn) {
17000 writeSlice(txIn.hash)
17001 writeUInt32(txIn.index)
17002 writeVarInt(txIn.script.buffer.length)
17003 writeSlice(txIn.script.buffer)
17004 writeUInt32(txIn.sequence)
17007 writeVarInt(this.outs.length)
17008 this.outs.forEach(function (txOut) {
17009 writeUInt64(txOut.value)
17010 writeVarInt(txOut.script.buffer.length)
17011 writeSlice(txOut.script.buffer)
17014 writeUInt32(this.locktime)
17019 Transaction.prototype.toHex = function () {
17020 return this.toBuffer().toString('hex')
17023 Transaction.prototype.setInputScript = function (index, script) {
17024 typeForce('Number', index)
17025 typeForce('Script', script)
17027 this.ins[index].script = script
17030 // FIXME: remove in
2.x.y
17031 Transaction.prototype.sign = function (index, privKey, hashType) {
17032 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
17034 var prevOutScript = privKey.pub.getAddress().toOutputScript()
17035 var signature = this.signInput(index, prevOutScript, privKey, hashType)
17037 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
17038 this.setInputScript(index, scriptSig)
17041 // FIXME: remove in
2.x.y
17042 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
17043 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
17045 hashType = hashType || Transaction.SIGHASH_ALL
17047 var hash = this.hashForSignature(index, prevOutScript, hashType)
17048 var signature = privKey.sign(hash)
17050 return signature.toScriptSignature(hashType)
17053 // FIXME: remove in
2.x.y
17054 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
17055 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
17057 var parsed = ECSignature.parseScriptSignature(buffer)
17058 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
17060 return pubKey.verify(hash, parsed.signature)
17063 module.exports = Transaction
17065 }).call(this,require("buffer").Buffer)
17066 },{"./address":
54,"./bufferutils":
57,"./crypto":
58,"./ecsignature":
62,"./opcodes":
67,"./script":
68,"./scripts":
69,"assert":
5,"buffer":
7,"typeforce":
53}],
71:[function(require,module,exports){
17067 (function (Buffer){
17068 var assert = require('assert')
17069 var ops = require('./opcodes')
17070 var scripts = require('./scripts')
17072 var ECPubKey = require('./ecpubkey')
17073 var ECSignature = require('./ecsignature')
17074 var Script = require('./script')
17075 var Transaction = require('./transaction')
17077 function extractInput (txIn) {
17079 var scriptSig = txIn.script
17081 var prevOutType = scripts.classifyInput(scriptSig, true)
17084 // Re-classify if scriptHash
17085 if (prevOutType === 'scripthash') {
17086 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
17087 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
17089 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
17090 scriptType = scripts.classifyInput(scriptSig, true)
17092 scriptType = prevOutType
17095 // Extract hashType, pubKeys and signatures
17096 var hashType, parsed, pubKeys, signatures
17098 switch (scriptType) {
17099 case 'pubkeyhash': {
17100 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
17101 hashType = parsed.hashType
17102 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
17103 signatures = [parsed.signature]
17104 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
17110 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
17111 hashType = parsed.hashType
17112 signatures = [parsed.signature]
17114 if (redeemScript) {
17115 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
17122 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
17123 if (chunk === ops.OP_0) return chunk
17125 var parsed = ECSignature.parseScriptSignature(chunk)
17126 hashType = parsed.hashType
17128 return parsed.signature
17131 if (redeemScript) {
17132 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
17140 hashType: hashType,
17141 prevOutScript: prevOutScript,
17142 prevOutType: prevOutType,
17144 redeemScript: redeemScript,
17145 scriptType: scriptType,
17146 signatures: signatures
17150 function TransactionBuilder () {
17151 this.prevTxMap = {}
17152 this.prevOutScripts = {}
17153 this.prevOutTypes = {}
17156 this.tx = new Transaction()
17159 TransactionBuilder.fromTransaction = function (transaction) {
17160 var txb = new TransactionBuilder()
17162 // Copy other transaction fields
17163 txb.tx.version = transaction.version
17164 txb.tx.locktime = transaction.locktime
17166 // Extract/add inputs
17167 transaction.ins.forEach(function (txIn) {
17168 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
17171 // Extract/add outputs
17172 transaction.outs.forEach(function (txOut) {
17173 txb.addOutput(txOut.script, txOut.value)
17176 // Extract/add signatures
17177 txb.inputs = transaction.ins.map(function (txIn) {
17178 // TODO: remove me after testcase added
17179 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
17181 // Ignore empty scripts
17182 if (txIn.script.buffer.length ===
0) return {}
17184 return extractInput(txIn)
17190 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
17194 if (typeof prevTx === 'string') {
17195 prevOutHash = new Buffer(prevTx, 'hex')
17197 // TxId hex is big-endian, we want little-endian hash
17198 Array.prototype.reverse.call(prevOutHash)
17201 } else if (prevTx instanceof Transaction) {
17202 prevOutHash = prevTx.getHash()
17203 prevOutScript = prevTx.outs[index].script
17207 prevOutHash = prevTx
17211 if (prevOutScript) {
17212 var prevOutType = scripts.classifyOutput(prevOutScript)
17214 // if we can, extract pubKey information
17215 switch (prevOutType) {
17217 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
17222 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
17227 if (prevOutType !== 'scripthash') {
17228 input.scriptType = prevOutType
17231 input.prevOutScript = prevOutScript
17232 input.prevOutType = prevOutType
17235 assert(this.inputs.every(function (input2) {
17236 if (input2.hashType === undefined) return true
17238 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
17239 }), 'No, this would invalidate signatures')
17241 var prevOut = prevOutHash.toString('hex') + ':' + index
17242 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
17244 var vin = this.tx.addInput(prevOutHash, index, sequence)
17245 this.inputs[vin] = input
17246 this.prevTxMap[prevOut] = vin
17251 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
17252 assert(this.inputs.every(function (input) {
17253 if (input.hashType === undefined) return true
17255 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
17256 }), 'No, this would invalidate signatures')
17258 return this.tx.addOutput(scriptPubKey, value)
17261 TransactionBuilder.prototype.build = function () {
17262 return this.__build(false)
17264 TransactionBuilder.prototype.buildIncomplete = function () {
17265 return this.__build(true)
17268 var canSignTypes = {
17269 'pubkeyhash': true,
17274 TransactionBuilder.prototype.__build = function (allowIncomplete) {
17275 if (!allowIncomplete) {
17276 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
17277 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
17280 var tx = this.tx.clone()
17282 // Create script signatures from signature meta-data
17283 this.inputs.forEach(function (input, index) {
17284 var scriptType = input.scriptType
17287 if (!allowIncomplete) {
17288 assert(!!scriptType, 'Transaction is not complete')
17289 assert(scriptType in canSignTypes, scriptType + ' not supported')
17290 assert(input.signatures, 'Transaction is missing signatures')
17293 if (input.signatures) {
17294 switch (scriptType) {
17295 case 'pubkeyhash': {
17296 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
17297 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
17302 // Array.prototype.map is sparse-compatible
17303 var msSignatures = input.signatures.map(function (signature) {
17304 return signature && signature.toScriptSignature(input.hashType)
17307 // fill in blanks with OP_0
17308 if (allowIncomplete) {
17309 for (var i =
0; i < msSignatures.length; ++i) {
17310 if (msSignatures[i]) continue
17312 msSignatures[i] = ops.OP_0
17315 // Array.prototype.filter returns non-sparse array
17316 msSignatures = msSignatures.filter(function (x) { return x })
17319 var redeemScript = allowIncomplete ? undefined : input.redeemScript
17320 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
17325 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
17326 scriptSig = scripts.pubKeyInput(pkSignature)
17332 // did we build a scriptSig?
17334 // wrap as scriptHash if necessary
17335 if (input.prevOutType === 'scripthash') {
17336 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
17339 tx.setInputScript(index, scriptSig)
17346 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
17347 assert(index in this.inputs, 'No input at index: ' + index)
17348 hashType = hashType || Transaction.SIGHASH_ALL
17350 var input = this.inputs[index]
17351 var canSign = input.hashType &&
17352 input.prevOutScript &&
17353 input.prevOutType &&
17355 input.scriptType &&
17358 // are we almost ready to sign?
17360 // if redeemScript was provided, enforce consistency
17361 if (redeemScript) {
17362 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
17365 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
17369 // must be pay-to-scriptHash?
17370 if (redeemScript) {
17371 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
17372 if (input.prevOutScript) {
17373 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
17375 var scriptHash = input.prevOutScript.chunks[
1]
17376 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
17379 var scriptType = scripts.classifyOutput(redeemScript)
17380 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
17383 switch (scriptType) {
17385 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
17389 case 'pubkeyhash': {
17390 var pkh1 = redeemScript.chunks[
2]
17391 var pkh2 = privKey.pub.getAddress().hash
17393 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
17394 pubKeys = [privKey.pub]
17399 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
17404 if (!input.prevOutScript) {
17405 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
17406 input.prevOutType = 'scripthash'
17409 input.pubKeys = pubKeys
17410 input.redeemScript = redeemScript
17411 input.scriptType = scriptType
17413 // cannot be pay-to-scriptHash
17415 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
17417 // can we otherwise sign this?
17418 if (input.scriptType) {
17419 assert(input.pubKeys, input.scriptType + ' not supported')
17421 // we know nothin' Jon Snow, assume pubKeyHash
17423 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
17424 input.prevOutType = 'pubkeyhash'
17425 input.pubKeys = [privKey.pub]
17426 input.scriptType = input.prevOutType
17430 input.hashType = hashType
17431 input.signatures = input.signatures || []
17434 var signatureScript = input.redeemScript || input.prevOutScript
17435 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
17437 // enforce signature order matches public keys
17438 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
17439 // maintain a local copy of unmatched signatures
17440 var unmatched = input.signatures.slice()
17442 input.signatures = input.pubKeys.map(function (pubKey) {
17445 // check for any matching signatures
17446 unmatched.some(function (signature, i) {
17447 if (!pubKey.verify(signatureHash, signature)) return false
17450 // remove matched signature from unmatched
17451 unmatched.splice(i,
1)
17456 return match || undefined
17460 // enforce in order signing of public keys
17461 assert(input.pubKeys.some(function (pubKey, i) {
17462 if (!privKey.pub.Q.equals(pubKey.Q)) return false
17464 assert(!input.signatures[i], 'Signature already exists')
17465 var signature = privKey.sign(signatureHash)
17466 input.signatures[i] = signature
17469 }, this), 'privateKey cannot sign for this input')
17472 module.exports = TransactionBuilder
17474 }).call(this,require(
"buffer").Buffer)
17475 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
17476 (function (Buffer){
17477 var assert = require('assert')
17478 var bufferutils = require('./bufferutils')
17479 var typeForce = require('typeforce')
17480 var networks = require('./networks')
17481 var randomBytes = require('randombytes')
17483 var Address = require('./address')
17484 var HDNode = require('./hdnode')
17485 var TransactionBuilder = require('./transaction_builder')
17486 var Script = require('./script')
17488 function Wallet (seed, network) {
17489 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
17491 seed = seed || randomBytes(
32)
17492 network = network || networks.bitcoin
17494 // Stored in a closure to make accidental serialization less likely
17495 var masterKey = HDNode.fromSeedBuffer(seed, network)
17497 // HD first-level child derivation method should be hardened
17498 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
17499 var accountZero = masterKey.deriveHardened(
0)
17500 var externalAccount = accountZero.derive(
0)
17501 var internalAccount = accountZero.derive(
1)
17503 this.addresses = []
17504 this.changeAddresses = []
17505 this.network = network
17508 // FIXME: remove in
2.0.0
17509 this.unspentMap = {}
17511 // FIXME: remove in
2.0.0
17513 this.newMasterKey = function (seed) {
17514 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
17516 seed = seed || randomBytes(
32)
17517 masterKey = HDNode.fromSeedBuffer(seed, network)
17519 accountZero = masterKey.deriveHardened(
0)
17520 externalAccount = accountZero.derive(
0)
17521 internalAccount = accountZero.derive(
1)
17524 me.changeAddresses = []
17530 this.getMasterKey = function () {
17533 this.getAccountZero = function () {
17536 this.getExternalAccount = function () {
17537 return externalAccount
17539 this.getInternalAccount = function () {
17540 return internalAccount
17544 Wallet.prototype.createTransaction = function (to, value, options) {
17545 // FIXME: remove in
2.0.0
17546 if (typeof options !== 'object') {
17547 if (options !== undefined) {
17548 console.warn('Non options object parameters are deprecated, use options object instead')
17551 fixedFee: arguments[
2],
17552 changeAddress: arguments[
3]
17557 options = options || {}
17559 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
17561 var changeAddress = options.changeAddress
17562 var fixedFee = options.fixedFee
17563 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
17565 // filter by minConf, then pending and sort by descending value
17566 var unspents = this.unspents.filter(function (unspent) {
17567 return unspent.confirmations
>= minConf
17568 }).filter(function (unspent) {
17569 return !unspent.pending
17570 }).sort(function (o1, o2) {
17571 return o2.value - o1.value
17576 var subTotal = value
17578 var txb = new TransactionBuilder()
17579 txb.addOutput(to, value)
17581 for (var i =
0; i < unspents.length; ++i) {
17582 var unspent = unspents[i]
17583 addresses.push(unspent.address)
17585 txb.addInput(unspent.txHash, unspent.index)
17587 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
17589 accum += unspent.value
17590 subTotal = value + fee
17592 if (accum
>= subTotal) {
17593 var change = accum - subTotal
17595 if (change
> this.network.dustThreshold) {
17596 txb.addOutput(changeAddress || this.getChangeAddress(), change)
17603 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
17605 return this.signWith(txb, addresses).build()
17608 // FIXME: remove in
2.0.0
17609 Wallet.prototype.processPendingTx = function (tx) {
17610 this.__processTx(tx, true)
17613 // FIXME: remove in
2.0.0
17614 Wallet.prototype.processConfirmedTx = function (tx) {
17615 this.__processTx(tx, false)
17618 // FIXME: remove in
2.0.0
17619 Wallet.prototype.__processTx = function (tx, isPending) {
17620 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
17622 var txId = tx.getId()
17623 var txHash = tx.getHash()
17625 tx.outs.forEach(function (txOut, i) {
17629 address = Address.fromOutputScript(txOut.script, this.network).toString()
17631 if (!(e.message.match(/has no matching Address/)))
17635 var myAddresses = this.addresses.concat(this.changeAddresses)
17636 if (myAddresses.indexOf(address)
> -
1) {
17637 var lookup = txId + ':' + i
17638 if (lookup in this.unspentMap) return
17640 // its unique, add it
17643 confirmations:
0, // no way to determine this without more information
17647 value: txOut.value,
17651 this.unspentMap[lookup] = unspent
17652 this.unspents.push(unspent)
17656 tx.ins.forEach(function (txIn) {
17657 // copy and convert to big-endian hex
17658 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
17660 var lookup = txInId + ':' + txIn.index
17661 if (!(lookup in this.unspentMap)) return
17663 var unspent = this.unspentMap[lookup]
17666 unspent.pending = true
17667 unspent.spent = true
17669 delete this.unspentMap[lookup]
17671 this.unspents = this.unspents.filter(function (unspent2) {
17672 return unspent !== unspent2
17678 Wallet.prototype.generateAddress = function () {
17679 var k = this.addresses.length
17680 var address = this.getExternalAccount().derive(k).getAddress()
17682 this.addresses.push(address.toString())
17684 return this.getReceiveAddress()
17687 Wallet.prototype.generateChangeAddress = function () {
17688 var k = this.changeAddresses.length
17689 var address = this.getInternalAccount().derive(k).getAddress()
17691 this.changeAddresses.push(address.toString())
17693 return this.getChangeAddress()
17696 Wallet.prototype.getAddress = function () {
17697 if (this.addresses.length ===
0) {
17698 this.generateAddress()
17701 return this.addresses[this.addresses.length -
1]
17704 Wallet.prototype.getBalance = function (minConf) {
17705 minConf = minConf ||
0
17707 return this.unspents.filter(function (unspent) {
17708 return unspent.confirmations
>= minConf
17710 // FIXME: remove spent filter in
2.0.0
17711 }).filter(function (unspent) {
17712 return !unspent.spent
17713 }).reduce(function (accum, unspent) {
17714 return accum + unspent.value
17718 Wallet.prototype.getChangeAddress = function () {
17719 if (this.changeAddresses.length ===
0) {
17720 this.generateChangeAddress()
17723 return this.changeAddresses[this.changeAddresses.length -
1]
17726 Wallet.prototype.getInternalPrivateKey = function (index) {
17727 return this.getInternalAccount().derive(index).privKey
17730 Wallet.prototype.getPrivateKey = function (index) {
17731 return this.getExternalAccount().derive(index).privKey
17734 Wallet.prototype.getPrivateKeyForAddress = function (address) {
17737 if ((index = this.addresses.indexOf(address))
> -
1) {
17738 return this.getPrivateKey(index)
17741 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
17742 return this.getInternalPrivateKey(index)
17745 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
17748 Wallet.prototype.getUnspentOutputs = function (minConf) {
17749 minConf = minConf ||
0
17751 return this.unspents.filter(function (unspent) {
17752 return unspent.confirmations
>= minConf
17754 // FIXME: remove spent filter in
2.0.0
17755 }).filter(function (unspent) {
17756 return !unspent.spent
17757 }).map(function (unspent) {
17759 address: unspent.address,
17760 confirmations: unspent.confirmations,
17761 index: unspent.index,
17762 txId: unspent.txId,
17763 value: unspent.value,
17765 // FIXME: remove in
2.0.0
17766 hash: unspent.txId,
17767 pending: unspent.pending
17772 Wallet.prototype.setUnspentOutputs = function (unspents) {
17773 this.unspentMap = {}
17774 this.unspents = unspents.map(function (unspent) {
17775 // FIXME: remove unspent.hash in
2.0.0
17776 var txId = unspent.txId || unspent.hash
17777 var index = unspent.index
17779 // FIXME: remove in
2.0.0
17780 if (unspent.hash !== undefined) {
17781 console.warn('unspent.hash is deprecated, use unspent.txId instead')
17784 // FIXME: remove in
2.0.0
17785 if (index === undefined) {
17786 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
17787 index = unspent.outputIndex
17790 typeForce('String', txId)
17791 typeForce('Number', index)
17792 typeForce('Number', unspent.value)
17794 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
17795 assert.doesNotThrow(function () {
17796 Address.fromBase58Check(unspent.address)
17797 }, 'Expected Base58 Address, got ' + unspent.address)
17798 assert(isFinite(index), 'Expected finite index, got ' + index)
17800 // FIXME: remove branch in
2.0.0
17801 if (unspent.confirmations !== undefined) {
17802 typeForce('Number', unspent.confirmations)
17805 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
17808 address: unspent.address,
17809 confirmations: unspent.confirmations ||
0,
17813 value: unspent.value,
17815 // FIXME: remove in
2.0.0
17816 pending: unspent.pending || false
17819 // FIXME: remove in
2.0.0
17820 this.unspentMap[txId + ':' + index] = unspent
17826 Wallet.prototype.signWith = function (tx, addresses) {
17827 addresses.forEach(function (address, i) {
17828 var privKey = this.getPrivateKeyForAddress(address)
17830 tx.sign(i, privKey)
17836 function estimatePaddedFee (tx, network) {
17837 var tmpTx = tx.clone()
17838 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
17840 return network.estimateFee(tmpTx)
17843 // FIXME:
1.0.0 shims, remove in
2.0.0
17844 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
17845 Wallet.prototype.createTx = Wallet.prototype.createTransaction
17847 module.exports = Wallet
17849 }).call(this,require("buffer").Buffer)
17850 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
17852 <script>bitcoin.networks.shadow = {
17853 magicPrefix: '\x19ShadowCash Signed Message:\n',
17855 public:
0xEE80286A,
17856 private:
0xEE8031E8
17863 estimateFee: function() { return "unused in this app" },
17866 bitcoin.networks.shadowtn = {
17867 magicPrefix: '\x19ShadowCash Signed Message:\n',
17869 public:
0x76C0FDFB,
17870 private:
0x76C1077A
17877 estimateFee: function() { return "unused in this app" },
17880 bitcoin.networks.clam = {
17882 public:
0xa8c26d64,
17883 private:
0xa8c17826
17889 bitcoin.networks.dash = {
17891 public:
0x0488b21e,
17892 private:
0x0488ade4
17899 bitcoin.networks.game = {
17901 public:
0x0488b21e,
17902 private:
0x0488ade4
17909 bitcoin.networks.namecoin = {
17911 public:
0x0488b21e,
17912 private:
0x0488ade4
17915 //scriptHash:
0x10,
17919 bitcoin.networks.peercoin = {
17921 public:
0x0488b21e,
17922 private:
0x0488ade4
17925 //scriptHash:
0x10,
17929 bitcoin.networks.slimcoin = {
17931 public:
0xef6adf10,
17932 private:
0xef69ea80
17939 bitcoin.networks.slimcointn = {
17941 public:
0x043587CF,
17942 private:
0x04358394
17950 <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){
17951 (function (global){
17954 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
17955 // original notice:
17958 * The buffer module from node.js, for the browser.
17960 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
17963 function compare(a, b) {
17971 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
17972 if (a[i] !== b[i]) {
17987 function isBuffer(b) {
17988 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
17989 return global.Buffer.isBuffer(b);
17991 return !!(b != null && b._isBuffer);
17994 // based on node assert, original notice:
17996 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
17998 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
18000 // Originally from narwhal.js (http://narwhaljs.org)
18001 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
18003 // Permission is hereby granted, free of charge, to any person obtaining a copy
18004 // of this software and associated documentation files (the 'Software'), to
18005 // deal in the Software without restriction, including without limitation the
18006 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18007 // sell copies of the Software, and to permit persons to whom the Software is
18008 // furnished to do so, subject to the following conditions:
18010 // The above copyright notice and this permission notice shall be included in
18011 // all copies or substantial portions of the Software.
18013 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18014 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18015 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18016 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
18017 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18018 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18020 var util = require('util/');
18021 var hasOwn = Object.prototype.hasOwnProperty;
18022 var pSlice = Array.prototype.slice;
18023 var functionsHaveNames = (function () {
18024 return function foo() {}.name === 'foo';
18026 function pToString (obj) {
18027 return Object.prototype.toString.call(obj);
18029 function isView(arrbuf) {
18030 if (isBuffer(arrbuf)) {
18033 if (typeof global.ArrayBuffer !== 'function') {
18036 if (typeof ArrayBuffer.isView === 'function') {
18037 return ArrayBuffer.isView(arrbuf);
18042 if (arrbuf instanceof DataView) {
18045 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
18050 //
1. The assert module provides functions that throw
18051 // AssertionError's when particular conditions are not met. The
18052 // assert module must conform to the following interface.
18054 var assert = module.exports = ok;
18056 //
2. The AssertionError is defined in assert.
18057 // new assert.AssertionError({ message: message,
18059 // expected: expected })
18061 var regex = /\s*function\s+([^\(\s]*)\s*/;
18062 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
18063 function getName(func) {
18064 if (!util.isFunction(func)) {
18067 if (functionsHaveNames) {
18070 var str = func.toString();
18071 var match = str.match(regex);
18072 return match && match[
1];
18074 assert.AssertionError = function AssertionError(options) {
18075 this.name = 'AssertionError';
18076 this.actual = options.actual;
18077 this.expected = options.expected;
18078 this.operator = options.operator;
18079 if (options.message) {
18080 this.message = options.message;
18081 this.generatedMessage = false;
18083 this.message = getMessage(this);
18084 this.generatedMessage = true;
18086 var stackStartFunction = options.stackStartFunction || fail;
18087 if (Error.captureStackTrace) {
18088 Error.captureStackTrace(this, stackStartFunction);
18090 // non v8 browsers so we can have a stacktrace
18091 var err = new Error();
18093 var out = err.stack;
18095 // try to strip useless frames
18096 var fn_name = getName(stackStartFunction);
18097 var idx = out.indexOf('\n' + fn_name);
18099 // once we have located the function frame
18100 // we need to strip out everything before it (and its line)
18101 var next_line = out.indexOf('\n', idx +
1);
18102 out = out.substring(next_line +
1);
18110 // assert.AssertionError instanceof Error
18111 util.inherits(assert.AssertionError, Error);
18113 function truncate(s, n) {
18114 if (typeof s === 'string') {
18115 return s.length < n ? s : s.slice(
0, n);
18120 function inspect(something) {
18121 if (functionsHaveNames || !util.isFunction(something)) {
18122 return util.inspect(something);
18124 var rawname = getName(something);
18125 var name = rawname ? ': ' + rawname : '';
18126 return '[Function' + name + ']';
18128 function getMessage(self) {
18129 return truncate(inspect(self.actual),
128) + ' ' +
18130 self.operator + ' ' +
18131 truncate(inspect(self.expected),
128);
18134 // At present only the three keys mentioned above are used and
18135 // understood by the spec. Implementations or sub modules can pass
18136 // other keys to the AssertionError's constructor - they will be
18139 //
3. All of the following functions must throw an AssertionError
18140 // when a corresponding condition is not met, with a message that
18141 // may be undefined if not provided. All assertion methods provide
18142 // both the actual and expected values to the assertion error for
18143 // display purposes.
18145 function fail(actual, expected, message, operator, stackStartFunction) {
18146 throw new assert.AssertionError({
18149 expected: expected,
18150 operator: operator,
18151 stackStartFunction: stackStartFunction
18155 // EXTENSION! allows for well behaved errors defined elsewhere.
18156 assert.fail = fail;
18158 //
4. Pure assertion tests whether a value is truthy, as determined
18160 // assert.ok(guard, message_opt);
18161 // This statement is equivalent to assert.equal(true, !!guard,
18162 // message_opt);. To test strictly for the value true, use
18163 // assert.strictEqual(true, guard, message_opt);.
18165 function ok(value, message) {
18166 if (!value) fail(value, true, message, '==', assert.ok);
18170 //
5. The equality assertion tests shallow, coercive equality with
18172 // assert.equal(actual, expected, message_opt);
18174 assert.equal = function equal(actual, expected, message) {
18175 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
18178 //
6. The non-equality assertion tests for whether two objects are not equal
18179 // with != assert.notEqual(actual, expected, message_opt);
18181 assert.notEqual = function notEqual(actual, expected, message) {
18182 if (actual == expected) {
18183 fail(actual, expected, message, '!=', assert.notEqual);
18187 //
7. The equivalence assertion tests a deep equality relation.
18188 // assert.deepEqual(actual, expected, message_opt);
18190 assert.deepEqual = function deepEqual(actual, expected, message) {
18191 if (!_deepEqual(actual, expected, false)) {
18192 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
18196 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
18197 if (!_deepEqual(actual, expected, true)) {
18198 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
18202 function _deepEqual(actual, expected, strict, memos) {
18203 //
7.1. All identical values are equivalent, as determined by ===.
18204 if (actual === expected) {
18206 } else if (isBuffer(actual) && isBuffer(expected)) {
18207 return compare(actual, expected) ===
0;
18209 //
7.2. If the expected value is a Date object, the actual value is
18210 // equivalent if it is also a Date object that refers to the same time.
18211 } else if (util.isDate(actual) && util.isDate(expected)) {
18212 return actual.getTime() === expected.getTime();
18214 //
7.3 If the expected value is a RegExp object, the actual value is
18215 // equivalent if it is also a RegExp object with the same source and
18216 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
18217 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
18218 return actual.source === expected.source &&
18219 actual.global === expected.global &&
18220 actual.multiline === expected.multiline &&
18221 actual.lastIndex === expected.lastIndex &&
18222 actual.ignoreCase === expected.ignoreCase;
18224 //
7.4. Other pairs that do not both pass typeof value == 'object',
18225 // equivalence is determined by ==.
18226 } else if ((actual === null || typeof actual !== 'object') &&
18227 (expected === null || typeof expected !== 'object')) {
18228 return strict ? actual === expected : actual == expected;
18230 // If both values are instances of typed arrays, wrap their underlying
18231 // ArrayBuffers in a Buffer each to increase performance
18232 // This optimization requires the arrays to have the same type as checked by
18233 // Object.prototype.toString (aka pToString). Never perform binary
18234 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
18235 // bit patterns are not identical.
18236 } else if (isView(actual) && isView(expected) &&
18237 pToString(actual) === pToString(expected) &&
18238 !(actual instanceof Float32Array ||
18239 actual instanceof Float64Array)) {
18240 return compare(new Uint8Array(actual.buffer),
18241 new Uint8Array(expected.buffer)) ===
0;
18243 //
7.5 For all other Object pairs, including Array objects, equivalence is
18244 // determined by having the same number of owned properties (as verified
18245 // with Object.prototype.hasOwnProperty.call), the same set of keys
18246 // (although not necessarily the same order), equivalent values for every
18247 // corresponding key, and an identical 'prototype' property. Note: this
18248 // accounts for both named and indexed properties on Arrays.
18249 } else if (isBuffer(actual) !== isBuffer(expected)) {
18252 memos = memos || {actual: [], expected: []};
18254 var actualIndex = memos.actual.indexOf(actual);
18255 if (actualIndex !== -
1) {
18256 if (actualIndex === memos.expected.indexOf(expected)) {
18261 memos.actual.push(actual);
18262 memos.expected.push(expected);
18264 return objEquiv(actual, expected, strict, memos);
18268 function isArguments(object) {
18269 return Object.prototype.toString.call(object) == '[object Arguments]';
18272 function objEquiv(a, b, strict, actualVisitedObjects) {
18273 if (a === null || a === undefined || b === null || b === undefined)
18275 // if one is a primitive, the other must be same
18276 if (util.isPrimitive(a) || util.isPrimitive(b))
18278 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
18280 var aIsArgs = isArguments(a);
18281 var bIsArgs = isArguments(b);
18282 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
18285 a = pSlice.call(a);
18286 b = pSlice.call(b);
18287 return _deepEqual(a, b, strict);
18289 var ka = objectKeys(a);
18290 var kb = objectKeys(b);
18292 // having the same number of owned properties (keys incorporates
18294 if (ka.length !== kb.length)
18296 //the same set of keys (although not necessarily the same order),
18299 //~~~cheap key test
18300 for (i = ka.length -
1; i
>=
0; i--) {
18301 if (ka[i] !== kb[i])
18304 //equivalent values for every corresponding key, and
18305 //~~~possibly expensive deep test
18306 for (i = ka.length -
1; i
>=
0; i--) {
18308 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
18314 //
8. The non-equivalence assertion tests for any deep inequality.
18315 // assert.notDeepEqual(actual, expected, message_opt);
18317 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
18318 if (_deepEqual(actual, expected, false)) {
18319 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
18323 assert.notDeepStrictEqual = notDeepStrictEqual;
18324 function notDeepStrictEqual(actual, expected, message) {
18325 if (_deepEqual(actual, expected, true)) {
18326 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
18331 //
9. The strict equality assertion tests strict equality, as determined by ===.
18332 // assert.strictEqual(actual, expected, message_opt);
18334 assert.strictEqual = function strictEqual(actual, expected, message) {
18335 if (actual !== expected) {
18336 fail(actual, expected, message, '===', assert.strictEqual);
18340 //
10. The strict non-equality assertion tests for strict inequality, as
18341 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
18343 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
18344 if (actual === expected) {
18345 fail(actual, expected, message, '!==', assert.notStrictEqual);
18349 function expectedException(actual, expected) {
18350 if (!actual || !expected) {
18354 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
18355 return expected.test(actual);
18359 if (actual instanceof expected) {
18363 // Ignore. The instanceof check doesn't work for arrow functions.
18366 if (Error.isPrototypeOf(expected)) {
18370 return expected.call({}, actual) === true;
18373 function _tryBlock(block) {
18383 function _throws(shouldThrow, block, expected, message) {
18386 if (typeof block !== 'function') {
18387 throw new TypeError('"block" argument must be a function');
18390 if (typeof expected === 'string') {
18391 message = expected;
18395 actual = _tryBlock(block);
18397 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
18398 (message ? ' ' + message : '.');
18400 if (shouldThrow && !actual) {
18401 fail(actual, expected, 'Missing expected exception' + message);
18404 var userProvidedMessage = typeof message === 'string';
18405 var isUnwantedException = !shouldThrow && util.isError(actual);
18406 var isUnexpectedException = !shouldThrow && actual && !expected;
18408 if ((isUnwantedException &&
18409 userProvidedMessage &&
18410 expectedException(actual, expected)) ||
18411 isUnexpectedException) {
18412 fail(actual, expected, 'Got unwanted exception' + message);
18415 if ((shouldThrow && actual && expected &&
18416 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
18421 //
11. Expected to throw an error:
18422 // assert.throws(block, Error_opt, message_opt);
18424 assert.throws = function(block, /*optional*/error, /*optional*/message) {
18425 _throws(true, block, error, message);
18428 // EXTENSION! This is annoying to write outside this module.
18429 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
18430 _throws(false, block, error, message);
18433 assert.ifError = function(err) { if (err) throw err; };
18435 var objectKeys = Object.keys || function (obj) {
18437 for (var key in obj) {
18438 if (hasOwn.call(obj, key)) keys.push(key);
18443 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
18444 },{"util/":
30}],
2:[function(require,module,exports){
18447 exports.byteLength = byteLength
18448 exports.toByteArray = toByteArray
18449 exports.fromByteArray = fromByteArray
18453 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
18455 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
18456 for (var i =
0, len = code.length; i < len; ++i) {
18457 lookup[i] = code[i]
18458 revLookup[code.charCodeAt(i)] = i
18461 revLookup['-'.charCodeAt(
0)] =
62
18462 revLookup['_'.charCodeAt(
0)] =
63
18464 function placeHoldersCount (b64) {
18465 var len = b64.length
18467 throw new Error('Invalid string. Length must be a multiple of
4')
18470 // the number of equal signs (place holders)
18471 // if there are two placeholders, than the two characters before it
18472 // represent one byte
18473 // if there is only one, then the three characters before it represent
2 bytes
18474 // this is just a cheap hack to not do indexOf twice
18475 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
18478 function byteLength (b64) {
18479 // base64 is
4/
3 + up to two characters of the original data
18480 return b64.length *
3 /
4 - placeHoldersCount(b64)
18483 function toByteArray (b64) {
18484 var i, j, l, tmp, placeHolders, arr
18485 var len = b64.length
18486 placeHolders = placeHoldersCount(b64)
18488 arr = new Arr(len *
3 /
4 - placeHolders)
18490 // if there are placeholders, only get up to the last complete
4 chars
18491 l = placeHolders
> 0 ? len -
4 : len
18495 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
18496 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
18497 arr[L++] = (tmp
>> 16) &
0xFF
18498 arr[L++] = (tmp
>> 8) &
0xFF
18499 arr[L++] = tmp &
0xFF
18502 if (placeHolders ===
2) {
18503 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
18504 arr[L++] = tmp &
0xFF
18505 } else if (placeHolders ===
1) {
18506 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
18507 arr[L++] = (tmp
>> 8) &
0xFF
18508 arr[L++] = tmp &
0xFF
18514 function tripletToBase64 (num) {
18515 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
18518 function encodeChunk (uint8, start, end) {
18521 for (var i = start; i < end; i +=
3) {
18522 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
18523 output.push(tripletToBase64(tmp))
18525 return output.join('')
18528 function fromByteArray (uint8) {
18530 var len = uint8.length
18531 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
18534 var maxChunkLength =
16383 // must be multiple of
3
18536 // go through the array every three bytes, we'll deal with trailing stuff later
18537 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
18538 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
18541 // pad the end with zeros, but make sure to not forget the extra bytes
18542 if (extraBytes ===
1) {
18543 tmp = uint8[len -
1]
18544 output += lookup[tmp
>> 2]
18545 output += lookup[(tmp <<
4) &
0x3F]
18547 } else if (extraBytes ===
2) {
18548 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
18549 output += lookup[tmp
>> 10]
18550 output += lookup[(tmp
>> 4) &
0x3F]
18551 output += lookup[(tmp <<
2) &
0x3F]
18557 return parts.join('')
18560 },{}],
3:[function(require,module,exports){
18562 },{}],
4:[function(require,module,exports){
18563 (function (global){
18566 var buffer = require('buffer');
18567 var Buffer = buffer.Buffer;
18568 var SlowBuffer = buffer.SlowBuffer;
18569 var MAX_LEN = buffer.kMaxLength ||
2147483647;
18570 exports.alloc = function alloc(size, fill, encoding) {
18571 if (typeof Buffer.alloc === 'function') {
18572 return Buffer.alloc(size, fill, encoding);
18574 if (typeof encoding === 'number') {
18575 throw new TypeError('encoding must not be number');
18577 if (typeof size !== 'number') {
18578 throw new TypeError('size must be a number');
18580 if (size
> MAX_LEN) {
18581 throw new RangeError('size is too large');
18583 var enc = encoding;
18585 if (_fill === undefined) {
18589 var buf = new Buffer(size);
18590 if (typeof _fill === 'string') {
18591 var fillBuf = new Buffer(_fill, enc);
18592 var flen = fillBuf.length;
18594 while (++i < size) {
18595 buf[i] = fillBuf[i % flen];
18602 exports.allocUnsafe = function allocUnsafe(size) {
18603 if (typeof Buffer.allocUnsafe === 'function') {
18604 return Buffer.allocUnsafe(size);
18606 if (typeof size !== 'number') {
18607 throw new TypeError('size must be a number');
18609 if (size
> MAX_LEN) {
18610 throw new RangeError('size is too large');
18612 return new Buffer(size);
18614 exports.from = function from(value, encodingOrOffset, length) {
18615 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
18616 return Buffer.from(value, encodingOrOffset, length);
18618 if (typeof value === 'number') {
18619 throw new TypeError('"value" argument must not be a number');
18621 if (typeof value === 'string') {
18622 return new Buffer(value, encodingOrOffset);
18624 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
18625 var offset = encodingOrOffset;
18626 if (arguments.length ===
1) {
18627 return new Buffer(value);
18629 if (typeof offset === 'undefined') {
18633 if (typeof len === 'undefined') {
18634 len = value.byteLength - offset;
18636 if (offset
>= value.byteLength) {
18637 throw new RangeError('\'offset\' is out of bounds');
18639 if (len
> value.byteLength - offset) {
18640 throw new RangeError('\'length\' is out of bounds');
18642 return new Buffer(value.slice(offset, offset + len));
18644 if (Buffer.isBuffer(value)) {
18645 var out = new Buffer(value.length);
18646 value.copy(out,
0,
0, value.length);
18650 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
18651 return new Buffer(value);
18653 if (value.type === 'Buffer' && Array.isArray(value.data)) {
18654 return new Buffer(value.data);
18658 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
18660 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
18661 if (typeof Buffer.allocUnsafeSlow === 'function') {
18662 return Buffer.allocUnsafeSlow(size);
18664 if (typeof size !== 'number') {
18665 throw new TypeError('size must be a number');
18667 if (size
>= MAX_LEN) {
18668 throw new RangeError('size is too large');
18670 return new SlowBuffer(size);
18673 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
18674 },{"buffer":
5}],
5:[function(require,module,exports){
18676 * The buffer module from node.js, for the browser.
18678 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
18681 /* eslint-disable no-proto */
18685 var base64 = require('base64-js')
18686 var ieee754 = require('ieee754')
18688 exports.Buffer = Buffer
18689 exports.SlowBuffer = SlowBuffer
18690 exports.INSPECT_MAX_BYTES =
50
18692 var K_MAX_LENGTH =
0x7fffffff
18693 exports.kMaxLength = K_MAX_LENGTH
18696 * If `Buffer.TYPED_ARRAY_SUPPORT`:
18697 * === true Use Uint8Array implementation (fastest)
18698 * === false Print warning and recommend using `buffer` v4.x which has an Object
18699 * implementation (most compatible, even IE6)
18701 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
18702 * Opera
11.6+, iOS
4.2+.
18704 * We report that the browser does not support typed arrays if the are not subclassable
18705 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
18706 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
18707 * for __proto__ and has a buggy typed array implementation.
18709 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
18711 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
18712 typeof console.error === 'function') {
18714 'This browser lacks typed array (Uint8Array) support which is required by ' +
18715 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
18719 function typedArraySupport () {
18720 // Can typed array instances can be augmented?
18722 var arr = new Uint8Array(
1)
18723 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
18724 return arr.foo() ===
42
18730 function createBuffer (length) {
18731 if (length
> K_MAX_LENGTH) {
18732 throw new RangeError('Invalid typed array length')
18734 // Return an augmented `Uint8Array` instance
18735 var buf = new Uint8Array(length)
18736 buf.__proto__ = Buffer.prototype
18741 * The Buffer constructor returns instances of `Uint8Array` that have their
18742 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
18743 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
18744 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
18745 * returns a single octet.
18747 * The `Uint8Array` prototype remains unmodified.
18750 function Buffer (arg, encodingOrOffset, length) {
18752 if (typeof arg === 'number') {
18753 if (typeof encodingOrOffset === 'string') {
18755 'If encoding is specified then the first argument must be a string'
18758 return allocUnsafe(arg)
18760 return from(arg, encodingOrOffset, length)
18763 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
18764 if (typeof Symbol !== 'undefined' && Symbol.species &&
18765 Buffer[Symbol.species] === Buffer) {
18766 Object.defineProperty(Buffer, Symbol.species, {
18768 configurable: true,
18774 Buffer.poolSize =
8192 // not used by this implementation
18776 function from (value, encodingOrOffset, length) {
18777 if (typeof value === 'number') {
18778 throw new TypeError('"value" argument must not be a number')
18781 if (value instanceof ArrayBuffer) {
18782 return fromArrayBuffer(value, encodingOrOffset, length)
18785 if (typeof value === 'string') {
18786 return fromString(value, encodingOrOffset)
18789 return fromObject(value)
18793 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
18794 * if value is a number.
18795 * Buffer.from(str[, encoding])
18796 * Buffer.from(array)
18797 * Buffer.from(buffer)
18798 * Buffer.from(arrayBuffer[, byteOffset[, length]])
18800 Buffer.from = function (value, encodingOrOffset, length) {
18801 return from(value, encodingOrOffset, length)
18804 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
18805 // https://github.com/feross/buffer/pull/
148
18806 Buffer.prototype.__proto__ = Uint8Array.prototype
18807 Buffer.__proto__ = Uint8Array
18809 function assertSize (size) {
18810 if (typeof size !== 'number') {
18811 throw new TypeError('"size" argument must be a number')
18812 } else if (size <
0) {
18813 throw new RangeError('"size" argument must not be negative')
18817 function alloc (size, fill, encoding) {
18820 return createBuffer(size)
18822 if (fill !== undefined) {
18823 // Only pay attention to encoding if it's a string. This
18824 // prevents accidentally sending in a number that would
18825 // be interpretted as a start offset.
18826 return typeof encoding === 'string'
18827 ? createBuffer(size).fill(fill, encoding)
18828 : createBuffer(size).fill(fill)
18830 return createBuffer(size)
18834 * Creates a new filled Buffer instance.
18835 * alloc(size[, fill[, encoding]])
18837 Buffer.alloc = function (size, fill, encoding) {
18838 return alloc(size, fill, encoding)
18841 function allocUnsafe (size) {
18843 return createBuffer(size <
0 ?
0 : checked(size) |
0)
18847 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
18849 Buffer.allocUnsafe = function (size) {
18850 return allocUnsafe(size)
18853 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
18855 Buffer.allocUnsafeSlow = function (size) {
18856 return allocUnsafe(size)
18859 function fromString (string, encoding) {
18860 if (typeof encoding !== 'string' || encoding === '') {
18864 if (!Buffer.isEncoding(encoding)) {
18865 throw new TypeError('"encoding" must be a valid string encoding')
18868 var length = byteLength(string, encoding) |
0
18869 var buf = createBuffer(length)
18871 var actual = buf.write(string, encoding)
18873 if (actual !== length) {
18874 // Writing a hex string, for example, that contains invalid characters will
18875 // cause everything after the first invalid character to be ignored. (e.g.
18876 // 'abxxcd' will be treated as 'ab')
18877 buf = buf.slice(
0, actual)
18883 function fromArrayLike (array) {
18884 var length = array.length <
0 ?
0 : checked(array.length) |
0
18885 var buf = createBuffer(length)
18886 for (var i =
0; i < length; i +=
1) {
18887 buf[i] = array[i] &
255
18892 function fromArrayBuffer (array, byteOffset, length) {
18893 if (byteOffset <
0 || array.byteLength < byteOffset) {
18894 throw new RangeError('\'offset\' is out of bounds')
18897 if (array.byteLength < byteOffset + (length ||
0)) {
18898 throw new RangeError('\'length\' is out of bounds')
18902 if (byteOffset === undefined && length === undefined) {
18903 buf = new Uint8Array(array)
18904 } else if (length === undefined) {
18905 buf = new Uint8Array(array, byteOffset)
18907 buf = new Uint8Array(array, byteOffset, length)
18910 // Return an augmented `Uint8Array` instance
18911 buf.__proto__ = Buffer.prototype
18915 function fromObject (obj) {
18916 if (Buffer.isBuffer(obj)) {
18917 var len = checked(obj.length) |
0
18918 var buf = createBuffer(len)
18920 if (buf.length ===
0) {
18924 obj.copy(buf,
0,
0, len)
18929 if (ArrayBuffer.isView(obj) || 'length' in obj) {
18930 if (typeof obj.length !== 'number' || isnan(obj.length)) {
18931 return createBuffer(
0)
18933 return fromArrayLike(obj)
18936 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
18937 return fromArrayLike(obj.data)
18941 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
18944 function checked (length) {
18945 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
18946 // length is NaN (which is otherwise coerced to zero.)
18947 if (length
>= K_MAX_LENGTH) {
18948 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
18949 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
18954 function SlowBuffer (length) {
18955 if (+length != length) { // eslint-disable-line eqeqeq
18958 return Buffer.alloc(+length)
18961 Buffer.isBuffer = function isBuffer (b) {
18962 return b != null && b._isBuffer === true
18965 Buffer.compare = function compare (a, b) {
18966 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
18967 throw new TypeError('Arguments must be Buffers')
18970 if (a === b) return
0
18975 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
18976 if (a[i] !== b[i]) {
18983 if (x < y) return -
1
18984 if (y < x) return
1
18988 Buffer.isEncoding = function isEncoding (encoding) {
18989 switch (String(encoding).toLowerCase()) {
19007 Buffer.concat = function concat (list, length) {
19008 if (!Array.isArray(list)) {
19009 throw new TypeError('"list" argument must be an Array of Buffers')
19012 if (list.length ===
0) {
19013 return Buffer.alloc(
0)
19017 if (length === undefined) {
19019 for (i =
0; i < list.length; ++i) {
19020 length += list[i].length
19024 var buffer = Buffer.allocUnsafe(length)
19026 for (i =
0; i < list.length; ++i) {
19028 if (!Buffer.isBuffer(buf)) {
19029 throw new TypeError('"list" argument must be an Array of Buffers')
19031 buf.copy(buffer, pos)
19037 function byteLength (string, encoding) {
19038 if (Buffer.isBuffer(string)) {
19039 return string.length
19041 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
19042 return string.byteLength
19044 if (typeof string !== 'string') {
19045 string = '' + string
19048 var len = string.length
19049 if (len ===
0) return
0
19051 // Use a for loop to avoid recursion
19052 var loweredCase = false
19054 switch (encoding) {
19062 return utf8ToBytes(string).length
19071 return base64ToBytes(string).length
19073 if (loweredCase) return utf8ToBytes(string).length // assume utf8
19074 encoding = ('' + encoding).toLowerCase()
19079 Buffer.byteLength = byteLength
19081 function slowToString (encoding, start, end) {
19082 var loweredCase = false
19084 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
19085 // property of a typed array.
19087 // This behaves neither like String nor Uint8Array in that we set start/end
19088 // to their upper/lower bounds if the value passed is out of range.
19089 // undefined is handled specially as per ECMA-
262 6th Edition,
19090 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
19091 if (start === undefined || start <
0) {
19094 // Return early if start
> this.length. Done here to prevent potential uint32
19095 // coercion fail below.
19096 if (start
> this.length) {
19100 if (end === undefined || end
> this.length) {
19108 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
19112 if (end <= start) {
19116 if (!encoding) encoding = 'utf8'
19119 switch (encoding) {
19121 return hexSlice(this, start, end)
19125 return utf8Slice(this, start, end)
19128 return asciiSlice(this, start, end)
19132 return latin1Slice(this, start, end)
19135 return base64Slice(this, start, end)
19141 return utf16leSlice(this, start, end)
19144 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
19145 encoding = (encoding + '').toLowerCase()
19151 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
19152 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
19153 // reliably in a browserify context because there could be multiple different
19154 // copies of the 'buffer' package in use. This method works even for Buffer
19155 // instances that were created from another copy of the `buffer` package.
19156 // See: https://github.com/feross/buffer/issues/
154
19157 Buffer.prototype._isBuffer = true
19159 function swap (b, n, m) {
19165 Buffer.prototype.swap16 = function swap16 () {
19166 var len = this.length
19167 if (len %
2 !==
0) {
19168 throw new RangeError('Buffer size must be a multiple of
16-bits')
19170 for (var i =
0; i < len; i +=
2) {
19171 swap(this, i, i +
1)
19176 Buffer.prototype.swap32 = function swap32 () {
19177 var len = this.length
19178 if (len %
4 !==
0) {
19179 throw new RangeError('Buffer size must be a multiple of
32-bits')
19181 for (var i =
0; i < len; i +=
4) {
19182 swap(this, i, i +
3)
19183 swap(this, i +
1, i +
2)
19188 Buffer.prototype.swap64 = function swap64 () {
19189 var len = this.length
19190 if (len %
8 !==
0) {
19191 throw new RangeError('Buffer size must be a multiple of
64-bits')
19193 for (var i =
0; i < len; i +=
8) {
19194 swap(this, i, i +
7)
19195 swap(this, i +
1, i +
6)
19196 swap(this, i +
2, i +
5)
19197 swap(this, i +
3, i +
4)
19202 Buffer.prototype.toString = function toString () {
19203 var length = this.length
19204 if (length ===
0) return ''
19205 if (arguments.length ===
0) return utf8Slice(this,
0, length)
19206 return slowToString.apply(this, arguments)
19209 Buffer.prototype.equals = function equals (b) {
19210 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
19211 if (this === b) return true
19212 return Buffer.compare(this, b) ===
0
19215 Buffer.prototype.inspect = function inspect () {
19217 var max = exports.INSPECT_MAX_BYTES
19218 if (this.length
> 0) {
19219 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
19220 if (this.length
> max) str += ' ... '
19222 return '
<Buffer ' + str + '
>'
19225 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
19226 if (!Buffer.isBuffer(target)) {
19227 throw new TypeError('Argument must be a Buffer')
19230 if (start === undefined) {
19233 if (end === undefined) {
19234 end = target ? target.length :
0
19236 if (thisStart === undefined) {
19239 if (thisEnd === undefined) {
19240 thisEnd = this.length
19243 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
19244 throw new RangeError('out of range index')
19247 if (thisStart
>= thisEnd && start
>= end) {
19250 if (thisStart
>= thisEnd) {
19253 if (start
>= end) {
19262 if (this === target) return
0
19264 var x = thisEnd - thisStart
19265 var y = end - start
19266 var len = Math.min(x, y)
19268 var thisCopy = this.slice(thisStart, thisEnd)
19269 var targetCopy = target.slice(start, end)
19271 for (var i =
0; i < len; ++i) {
19272 if (thisCopy[i] !== targetCopy[i]) {
19279 if (x < y) return -
1
19280 if (y < x) return
1
19284 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
19285 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
19288 // - buffer - a Buffer to search
19289 // - val - a string, Buffer, or number
19290 // - byteOffset - an index into `buffer`; will be clamped to an int32
19291 // - encoding - an optional encoding, relevant is val is a string
19292 // - dir - true for indexOf, false for lastIndexOf
19293 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
19294 // Empty buffer means no match
19295 if (buffer.length ===
0) return -
1
19297 // Normalize byteOffset
19298 if (typeof byteOffset === 'string') {
19299 encoding = byteOffset
19301 } else if (byteOffset
> 0x7fffffff) {
19302 byteOffset =
0x7fffffff
19303 } else if (byteOffset < -
0x80000000) {
19304 byteOffset = -
0x80000000
19306 byteOffset = +byteOffset // Coerce to Number.
19307 if (isNaN(byteOffset)) {
19308 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
19309 byteOffset = dir ?
0 : (buffer.length -
1)
19312 // Normalize byteOffset: negative offsets start from the end of the buffer
19313 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
19314 if (byteOffset
>= buffer.length) {
19316 else byteOffset = buffer.length -
1
19317 } else if (byteOffset <
0) {
19318 if (dir) byteOffset =
0
19323 if (typeof val === 'string') {
19324 val = Buffer.from(val, encoding)
19327 // Finally, search either indexOf (if dir is true) or lastIndexOf
19328 if (Buffer.isBuffer(val)) {
19329 // Special case: looking for empty string/buffer always fails
19330 if (val.length ===
0) {
19333 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
19334 } else if (typeof val === 'number') {
19335 val = val &
0xFF // Search for a byte value [
0-
255]
19336 if (typeof Uint8Array.prototype.indexOf === 'function') {
19338 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
19340 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
19343 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
19346 throw new TypeError('val must be string, number or Buffer')
19349 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
19351 var arrLength = arr.length
19352 var valLength = val.length
19354 if (encoding !== undefined) {
19355 encoding = String(encoding).toLowerCase()
19356 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
19357 encoding === 'utf16le' || encoding === 'utf-
16le') {
19358 if (arr.length <
2 || val.length <
2) {
19368 function read (buf, i) {
19369 if (indexSize ===
1) {
19372 return buf.readUInt16BE(i * indexSize)
19378 var foundIndex = -
1
19379 for (i = byteOffset; i < arrLength; i++) {
19380 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
19381 if (foundIndex === -
1) foundIndex = i
19382 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
19384 if (foundIndex !== -
1) i -= i - foundIndex
19389 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
19390 for (i = byteOffset; i
>=
0; i--) {
19392 for (var j =
0; j < valLength; j++) {
19393 if (read(arr, i + j) !== read(val, j)) {
19398 if (found) return i
19405 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
19406 return this.indexOf(val, byteOffset, encoding) !== -
1
19409 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
19410 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
19413 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
19414 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
19417 function hexWrite (buf, string, offset, length) {
19418 offset = Number(offset) ||
0
19419 var remaining = buf.length - offset
19423 length = Number(length)
19424 if (length
> remaining) {
19429 // must be an even number of digits
19430 var strLen = string.length
19431 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
19433 if (length
> strLen /
2) {
19434 length = strLen /
2
19436 for (var i =
0; i < length; ++i) {
19437 var parsed = parseInt(string.substr(i *
2,
2),
16)
19438 if (isNaN(parsed)) return i
19439 buf[offset + i] = parsed
19444 function utf8Write (buf, string, offset, length) {
19445 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
19448 function asciiWrite (buf, string, offset, length) {
19449 return blitBuffer(asciiToBytes(string), buf, offset, length)
19452 function latin1Write (buf, string, offset, length) {
19453 return asciiWrite(buf, string, offset, length)
19456 function base64Write (buf, string, offset, length) {
19457 return blitBuffer(base64ToBytes(string), buf, offset, length)
19460 function ucs2Write (buf, string, offset, length) {
19461 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
19464 Buffer.prototype.write = function write (string, offset, length, encoding) {
19465 // Buffer#write(string)
19466 if (offset === undefined) {
19468 length = this.length
19470 // Buffer#write(string, encoding)
19471 } else if (length === undefined && typeof offset === 'string') {
19473 length = this.length
19475 // Buffer#write(string, offset[, length][, encoding])
19476 } else if (isFinite(offset)) {
19477 offset = offset
>>> 0
19478 if (isFinite(length)) {
19479 length = length
>>> 0
19480 if (encoding === undefined) encoding = 'utf8'
19487 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
19491 var remaining = this.length - offset
19492 if (length === undefined || length
> remaining) length = remaining
19494 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
19495 throw new RangeError('Attempt to write outside buffer bounds')
19498 if (!encoding) encoding = 'utf8'
19500 var loweredCase = false
19502 switch (encoding) {
19504 return hexWrite(this, string, offset, length)
19508 return utf8Write(this, string, offset, length)
19511 return asciiWrite(this, string, offset, length)
19515 return latin1Write(this, string, offset, length)
19518 // Warning: maxLength not taken into account in base64Write
19519 return base64Write(this, string, offset, length)
19525 return ucs2Write(this, string, offset, length)
19528 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
19529 encoding = ('' + encoding).toLowerCase()
19535 Buffer.prototype.toJSON = function toJSON () {
19538 data: Array.prototype.slice.call(this._arr || this,
0)
19542 function base64Slice (buf, start, end) {
19543 if (start ===
0 && end === buf.length) {
19544 return base64.fromByteArray(buf)
19546 return base64.fromByteArray(buf.slice(start, end))
19550 function utf8Slice (buf, start, end) {
19551 end = Math.min(buf.length, end)
19556 var firstByte = buf[i]
19557 var codePoint = null
19558 var bytesPerSequence = (firstByte
> 0xEF) ?
4
19559 : (firstByte
> 0xDF) ?
3
19560 : (firstByte
> 0xBF) ?
2
19563 if (i + bytesPerSequence <= end) {
19564 var secondByte, thirdByte, fourthByte, tempCodePoint
19566 switch (bytesPerSequence) {
19568 if (firstByte <
0x80) {
19569 codePoint = firstByte
19573 secondByte = buf[i +
1]
19574 if ((secondByte &
0xC0) ===
0x80) {
19575 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
19576 if (tempCodePoint
> 0x7F) {
19577 codePoint = tempCodePoint
19582 secondByte = buf[i +
1]
19583 thirdByte = buf[i +
2]
19584 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
19585 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
19586 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
19587 codePoint = tempCodePoint
19592 secondByte = buf[i +
1]
19593 thirdByte = buf[i +
2]
19594 fourthByte = buf[i +
3]
19595 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
19596 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
19597 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
19598 codePoint = tempCodePoint
19604 if (codePoint === null) {
19605 // we did not generate a valid codePoint so insert a
19606 // replacement char (U+FFFD) and advance only
1 byte
19608 bytesPerSequence =
1
19609 } else if (codePoint
> 0xFFFF) {
19610 // encode to utf16 (surrogate pair dance)
19611 codePoint -=
0x10000
19612 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
19613 codePoint =
0xDC00 | codePoint &
0x3FF
19616 res.push(codePoint)
19617 i += bytesPerSequence
19620 return decodeCodePointsArray(res)
19623 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
19624 // the lowest limit is Chrome, with
0x10000 args.
19625 // We go
1 magnitude less, for safety
19626 var MAX_ARGUMENTS_LENGTH =
0x1000
19628 function decodeCodePointsArray (codePoints) {
19629 var len = codePoints.length
19630 if (len <= MAX_ARGUMENTS_LENGTH) {
19631 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
19634 // Decode in chunks to avoid
"call stack size exceeded".
19638 res += String.fromCharCode.apply(
19640 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
19646 function asciiSlice (buf, start, end) {
19648 end = Math.min(buf.length, end)
19650 for (var i = start; i < end; ++i) {
19651 ret += String.fromCharCode(buf[i] &
0x7F)
19656 function latin1Slice (buf, start, end) {
19658 end = Math.min(buf.length, end)
19660 for (var i = start; i < end; ++i) {
19661 ret += String.fromCharCode(buf[i])
19666 function hexSlice (buf, start, end) {
19667 var len = buf.length
19669 if (!start || start <
0) start =
0
19670 if (!end || end <
0 || end
> len) end = len
19673 for (var i = start; i < end; ++i) {
19674 out += toHex(buf[i])
19679 function utf16leSlice (buf, start, end) {
19680 var bytes = buf.slice(start, end)
19682 for (var i =
0; i < bytes.length; i +=
2) {
19683 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
19688 Buffer.prototype.slice = function slice (start, end) {
19689 var len = this.length
19691 end = end === undefined ? len : ~~end
19695 if (start <
0) start =
0
19696 } else if (start
> len) {
19702 if (end <
0) end =
0
19703 } else if (end
> len) {
19707 if (end < start) end = start
19709 var newBuf = this.subarray(start, end)
19710 // Return an augmented `Uint8Array` instance
19711 newBuf.__proto__ = Buffer.prototype
19716 * Need to make sure that buffer isn't trying to write out of bounds.
19718 function checkOffset (offset, ext, length) {
19719 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
19720 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
19723 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
19724 offset = offset
>>> 0
19725 byteLength = byteLength
>>> 0
19726 if (!noAssert) checkOffset(offset, byteLength, this.length)
19728 var val = this[offset]
19731 while (++i < byteLength && (mul *=
0x100)) {
19732 val += this[offset + i] * mul
19738 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
19739 offset = offset
>>> 0
19740 byteLength = byteLength
>>> 0
19742 checkOffset(offset, byteLength, this.length)
19745 var val = this[offset + --byteLength]
19747 while (byteLength
> 0 && (mul *=
0x100)) {
19748 val += this[offset + --byteLength] * mul
19754 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
19755 offset = offset
>>> 0
19756 if (!noAssert) checkOffset(offset,
1, this.length)
19757 return this[offset]
19760 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
19761 offset = offset
>>> 0
19762 if (!noAssert) checkOffset(offset,
2, this.length)
19763 return this[offset] | (this[offset +
1] <<
8)
19766 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
19767 offset = offset
>>> 0
19768 if (!noAssert) checkOffset(offset,
2, this.length)
19769 return (this[offset] <<
8) | this[offset +
1]
19772 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
19773 offset = offset
>>> 0
19774 if (!noAssert) checkOffset(offset,
4, this.length)
19776 return ((this[offset]) |
19777 (this[offset +
1] <<
8) |
19778 (this[offset +
2] <<
16)) +
19779 (this[offset +
3] *
0x1000000)
19782 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
19783 offset = offset
>>> 0
19784 if (!noAssert) checkOffset(offset,
4, this.length)
19786 return (this[offset] *
0x1000000) +
19787 ((this[offset +
1] <<
16) |
19788 (this[offset +
2] <<
8) |
19792 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
19793 offset = offset
>>> 0
19794 byteLength = byteLength
>>> 0
19795 if (!noAssert) checkOffset(offset, byteLength, this.length)
19797 var val = this[offset]
19800 while (++i < byteLength && (mul *=
0x100)) {
19801 val += this[offset + i] * mul
19805 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19810 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
19811 offset = offset
>>> 0
19812 byteLength = byteLength
>>> 0
19813 if (!noAssert) checkOffset(offset, byteLength, this.length)
19817 var val = this[offset + --i]
19818 while (i
> 0 && (mul *=
0x100)) {
19819 val += this[offset + --i] * mul
19823 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19828 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
19829 offset = offset
>>> 0
19830 if (!noAssert) checkOffset(offset,
1, this.length)
19831 if (!(this[offset] &
0x80)) return (this[offset])
19832 return ((
0xff - this[offset] +
1) * -
1)
19835 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
19836 offset = offset
>>> 0
19837 if (!noAssert) checkOffset(offset,
2, this.length)
19838 var val = this[offset] | (this[offset +
1] <<
8)
19839 return (val &
0x8000) ? val |
0xFFFF0000 : val
19842 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
19843 offset = offset
>>> 0
19844 if (!noAssert) checkOffset(offset,
2, this.length)
19845 var val = this[offset +
1] | (this[offset] <<
8)
19846 return (val &
0x8000) ? val |
0xFFFF0000 : val
19849 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
19850 offset = offset
>>> 0
19851 if (!noAssert) checkOffset(offset,
4, this.length)
19853 return (this[offset]) |
19854 (this[offset +
1] <<
8) |
19855 (this[offset +
2] <<
16) |
19856 (this[offset +
3] <<
24)
19859 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
19860 offset = offset
>>> 0
19861 if (!noAssert) checkOffset(offset,
4, this.length)
19863 return (this[offset] <<
24) |
19864 (this[offset +
1] <<
16) |
19865 (this[offset +
2] <<
8) |
19869 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
19870 offset = offset
>>> 0
19871 if (!noAssert) checkOffset(offset,
4, this.length)
19872 return ieee754.read(this, offset, true,
23,
4)
19875 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
19876 offset = offset
>>> 0
19877 if (!noAssert) checkOffset(offset,
4, this.length)
19878 return ieee754.read(this, offset, false,
23,
4)
19881 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
19882 offset = offset
>>> 0
19883 if (!noAssert) checkOffset(offset,
8, this.length)
19884 return ieee754.read(this, offset, true,
52,
8)
19887 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
19888 offset = offset
>>> 0
19889 if (!noAssert) checkOffset(offset,
8, this.length)
19890 return ieee754.read(this, offset, false,
52,
8)
19893 function checkInt (buf, value, offset, ext, max, min) {
19894 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
19895 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
19896 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19899 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
19901 offset = offset
>>> 0
19902 byteLength = byteLength
>>> 0
19904 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19905 checkInt(this, value, offset, byteLength, maxBytes,
0)
19910 this[offset] = value &
0xFF
19911 while (++i < byteLength && (mul *=
0x100)) {
19912 this[offset + i] = (value / mul) &
0xFF
19915 return offset + byteLength
19918 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
19920 offset = offset
>>> 0
19921 byteLength = byteLength
>>> 0
19923 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19924 checkInt(this, value, offset, byteLength, maxBytes,
0)
19927 var i = byteLength -
1
19929 this[offset + i] = value &
0xFF
19930 while (--i
>=
0 && (mul *=
0x100)) {
19931 this[offset + i] = (value / mul) &
0xFF
19934 return offset + byteLength
19937 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
19939 offset = offset
>>> 0
19940 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
19941 this[offset] = (value &
0xff)
19945 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
19947 offset = offset
>>> 0
19948 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19949 this[offset] = (value &
0xff)
19950 this[offset +
1] = (value
>>> 8)
19954 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
19956 offset = offset
>>> 0
19957 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19958 this[offset] = (value
>>> 8)
19959 this[offset +
1] = (value &
0xff)
19963 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
19965 offset = offset
>>> 0
19966 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19967 this[offset +
3] = (value
>>> 24)
19968 this[offset +
2] = (value
>>> 16)
19969 this[offset +
1] = (value
>>> 8)
19970 this[offset] = (value &
0xff)
19974 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
19976 offset = offset
>>> 0
19977 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19978 this[offset] = (value
>>> 24)
19979 this[offset +
1] = (value
>>> 16)
19980 this[offset +
2] = (value
>>> 8)
19981 this[offset +
3] = (value &
0xff)
19985 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
19987 offset = offset
>>> 0
19989 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19991 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19997 this[offset] = value &
0xFF
19998 while (++i < byteLength && (mul *=
0x100)) {
19999 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
20002 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
20005 return offset + byteLength
20008 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
20010 offset = offset
>>> 0
20012 var limit = Math.pow(
2, (
8 * byteLength) -
1)
20014 checkInt(this, value, offset, byteLength, limit -
1, -limit)
20017 var i = byteLength -
1
20020 this[offset + i] = value &
0xFF
20021 while (--i
>=
0 && (mul *=
0x100)) {
20022 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
20025 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
20028 return offset + byteLength
20031 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
20033 offset = offset
>>> 0
20034 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
20035 if (value <
0) value =
0xff + value +
1
20036 this[offset] = (value &
0xff)
20040 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
20042 offset = offset
>>> 0
20043 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
20044 this[offset] = (value &
0xff)
20045 this[offset +
1] = (value
>>> 8)
20049 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
20051 offset = offset
>>> 0
20052 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
20053 this[offset] = (value
>>> 8)
20054 this[offset +
1] = (value &
0xff)
20058 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
20060 offset = offset
>>> 0
20061 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
20062 this[offset] = (value &
0xff)
20063 this[offset +
1] = (value
>>> 8)
20064 this[offset +
2] = (value
>>> 16)
20065 this[offset +
3] = (value
>>> 24)
20069 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
20071 offset = offset
>>> 0
20072 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
20073 if (value <
0) value =
0xffffffff + value +
1
20074 this[offset] = (value
>>> 24)
20075 this[offset +
1] = (value
>>> 16)
20076 this[offset +
2] = (value
>>> 8)
20077 this[offset +
3] = (value &
0xff)
20081 function checkIEEE754 (buf, value, offset, ext, max, min) {
20082 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
20083 if (offset <
0) throw new RangeError('Index out of range')
20086 function writeFloat (buf, value, offset, littleEndian, noAssert) {
20088 offset = offset
>>> 0
20090 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
20092 ieee754.write(buf, value, offset, littleEndian,
23,
4)
20096 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
20097 return writeFloat(this, value, offset, true, noAssert)
20100 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
20101 return writeFloat(this, value, offset, false, noAssert)
20104 function writeDouble (buf, value, offset, littleEndian, noAssert) {
20106 offset = offset
>>> 0
20108 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
20110 ieee754.write(buf, value, offset, littleEndian,
52,
8)
20114 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
20115 return writeDouble(this, value, offset, true, noAssert)
20118 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
20119 return writeDouble(this, value, offset, false, noAssert)
20122 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
20123 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
20124 if (!start) start =
0
20125 if (!end && end !==
0) end = this.length
20126 if (targetStart
>= target.length) targetStart = target.length
20127 if (!targetStart) targetStart =
0
20128 if (end
> 0 && end < start) end = start
20130 // Copy
0 bytes; we're done
20131 if (end === start) return
0
20132 if (target.length ===
0 || this.length ===
0) return
0
20134 // Fatal error conditions
20135 if (targetStart <
0) {
20136 throw new RangeError('targetStart out of bounds')
20138 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
20139 if (end <
0) throw new RangeError('sourceEnd out of bounds')
20142 if (end
> this.length) end = this.length
20143 if (target.length - targetStart < end - start) {
20144 end = target.length - targetStart + start
20147 var len = end - start
20150 if (this === target && start < targetStart && targetStart < end) {
20151 // descending copy from end
20152 for (i = len -
1; i
>=
0; --i) {
20153 target[i + targetStart] = this[i + start]
20155 } else if (len <
1000) {
20156 // ascending copy from start
20157 for (i =
0; i < len; ++i) {
20158 target[i + targetStart] = this[i + start]
20161 Uint8Array.prototype.set.call(
20163 this.subarray(start, start + len),
20172 // buffer.fill(number[, offset[, end]])
20173 // buffer.fill(buffer[, offset[, end]])
20174 // buffer.fill(string[, offset[, end]][, encoding])
20175 Buffer.prototype.fill = function fill (val, start, end, encoding) {
20176 // Handle string cases:
20177 if (typeof val === 'string') {
20178 if (typeof start === 'string') {
20182 } else if (typeof end === 'string') {
20186 if (val.length ===
1) {
20187 var code = val.charCodeAt(
0)
20192 if (encoding !== undefined && typeof encoding !== 'string') {
20193 throw new TypeError('encoding must be a string')
20195 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
20196 throw new TypeError('Unknown encoding: ' + encoding)
20198 } else if (typeof val === 'number') {
20202 // Invalid ranges are not set to a default, so can range check early.
20203 if (start <
0 || this.length < start || this.length < end) {
20204 throw new RangeError('Out of range index')
20207 if (end <= start) {
20211 start = start
>>> 0
20212 end = end === undefined ? this.length : end
>>> 0
20217 if (typeof val === 'number') {
20218 for (i = start; i < end; ++i) {
20222 var bytes = Buffer.isBuffer(val)
20224 : new Buffer(val, encoding)
20225 var len = bytes.length
20226 for (i =
0; i < end - start; ++i) {
20227 this[i + start] = bytes[i % len]
20234 // HELPER FUNCTIONS
20235 // ================
20237 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
20239 function base64clean (str) {
20240 // Node strips out invalid characters like \n and \t from the string, base64-js does not
20241 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
20242 // Node converts strings with length <
2 to ''
20243 if (str.length <
2) return ''
20244 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
20245 while (str.length %
4 !==
0) {
20251 function stringtrim (str) {
20252 if (str.trim) return str.trim()
20253 return str.replace(/^\s+|\s+$/g, '')
20256 function toHex (n) {
20257 if (n <
16) return '
0' + n.toString(
16)
20258 return n.toString(
16)
20261 function utf8ToBytes (string, units) {
20262 units = units || Infinity
20264 var length = string.length
20265 var leadSurrogate = null
20268 for (var i =
0; i < length; ++i) {
20269 codePoint = string.charCodeAt(i)
20271 // is surrogate component
20272 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
20273 // last char was a lead
20274 if (!leadSurrogate) {
20276 if (codePoint
> 0xDBFF) {
20277 // unexpected trail
20278 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
20280 } else if (i +
1 === length) {
20282 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
20287 leadSurrogate = codePoint
20292 //
2 leads in a row
20293 if (codePoint <
0xDC00) {
20294 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
20295 leadSurrogate = codePoint
20299 // valid surrogate pair
20300 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
20301 } else if (leadSurrogate) {
20302 // valid bmp char, but last char was a lead
20303 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
20306 leadSurrogate = null
20309 if (codePoint <
0x80) {
20310 if ((units -=
1) <
0) break
20311 bytes.push(codePoint)
20312 } else if (codePoint <
0x800) {
20313 if ((units -=
2) <
0) break
20315 codePoint
>> 0x6 |
0xC0,
20316 codePoint &
0x3F |
0x80
20318 } else if (codePoint <
0x10000) {
20319 if ((units -=
3) <
0) break
20321 codePoint
>> 0xC |
0xE0,
20322 codePoint
>> 0x6 &
0x3F |
0x80,
20323 codePoint &
0x3F |
0x80
20325 } else if (codePoint <
0x110000) {
20326 if ((units -=
4) <
0) break
20328 codePoint
>> 0x12 |
0xF0,
20329 codePoint
>> 0xC &
0x3F |
0x80,
20330 codePoint
>> 0x6 &
0x3F |
0x80,
20331 codePoint &
0x3F |
0x80
20334 throw new Error('Invalid code point')
20341 function asciiToBytes (str) {
20343 for (var i =
0; i < str.length; ++i) {
20344 // Node's code seems to be doing this and not &
0x7F..
20345 byteArray.push(str.charCodeAt(i) &
0xFF)
20350 function utf16leToBytes (str, units) {
20353 for (var i =
0; i < str.length; ++i) {
20354 if ((units -=
2) <
0) break
20356 c = str.charCodeAt(i)
20366 function base64ToBytes (str) {
20367 return base64.toByteArray(base64clean(str))
20370 function blitBuffer (src, dst, offset, length) {
20371 for (var i =
0; i < length; ++i) {
20372 if ((i + offset
>= dst.length) || (i
>= src.length)) break
20373 dst[i + offset] = src[i]
20378 function isnan (val) {
20379 return val !== val // eslint-disable-line no-self-compare
20382 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
20383 (function (Buffer){
20384 // Copyright Joyent, Inc. and other Node contributors.
20386 // Permission is hereby granted, free of charge, to any person obtaining a
20387 // copy of this software and associated documentation files (the
20388 // "Software"), to deal in the Software without restriction, including
20389 // without limitation the rights to use, copy, modify, merge, publish,
20390 // distribute, sublicense, and/or sell copies of the Software, and to permit
20391 // persons to whom the Software is furnished to do so, subject to the
20392 // following conditions:
20394 // The above copyright notice and this permission notice shall be included
20395 // in all copies or substantial portions of the Software.
20397 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20398 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20399 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20400 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20401 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20402 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20403 // USE OR OTHER DEALINGS IN THE SOFTWARE.
20405 // NOTE: These type checking functions intentionally don't use `instanceof`
20406 // because it is fragile and can be easily faked with `Object.create()`.
20408 function isArray(arg) {
20409 if (Array.isArray) {
20410 return Array.isArray(arg);
20412 return objectToString(arg) === '[object Array]';
20414 exports.isArray = isArray;
20416 function isBoolean(arg) {
20417 return typeof arg === 'boolean';
20419 exports.isBoolean = isBoolean;
20421 function isNull(arg) {
20422 return arg === null;
20424 exports.isNull = isNull;
20426 function isNullOrUndefined(arg) {
20427 return arg == null;
20429 exports.isNullOrUndefined = isNullOrUndefined;
20431 function isNumber(arg) {
20432 return typeof arg === 'number';
20434 exports.isNumber = isNumber;
20436 function isString(arg) {
20437 return typeof arg === 'string';
20439 exports.isString = isString;
20441 function isSymbol(arg) {
20442 return typeof arg === 'symbol';
20444 exports.isSymbol = isSymbol;
20446 function isUndefined(arg) {
20447 return arg === void
0;
20449 exports.isUndefined = isUndefined;
20451 function isRegExp(re) {
20452 return objectToString(re) === '[object RegExp]';
20454 exports.isRegExp = isRegExp;
20456 function isObject(arg) {
20457 return typeof arg === 'object' && arg !== null;
20459 exports.isObject = isObject;
20461 function isDate(d) {
20462 return objectToString(d) === '[object Date]';
20464 exports.isDate = isDate;
20466 function isError(e) {
20467 return (objectToString(e) === '[object Error]' || e instanceof Error);
20469 exports.isError = isError;
20471 function isFunction(arg) {
20472 return typeof arg === 'function';
20474 exports.isFunction = isFunction;
20476 function isPrimitive(arg) {
20477 return arg === null ||
20478 typeof arg === 'boolean' ||
20479 typeof arg === 'number' ||
20480 typeof arg === 'string' ||
20481 typeof arg === 'symbol' || // ES6 symbol
20482 typeof arg === 'undefined';
20484 exports.isPrimitive = isPrimitive;
20486 exports.isBuffer = Buffer.isBuffer;
20488 function objectToString(o) {
20489 return Object.prototype.toString.call(o);
20492 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
20493 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
20494 // Copyright Joyent, Inc. and other Node contributors.
20496 // Permission is hereby granted, free of charge, to any person obtaining a
20497 // copy of this software and associated documentation files (the
20498 // "Software"), to deal in the Software without restriction, including
20499 // without limitation the rights to use, copy, modify, merge, publish,
20500 // distribute, sublicense, and/or sell copies of the Software, and to permit
20501 // persons to whom the Software is furnished to do so, subject to the
20502 // following conditions:
20504 // The above copyright notice and this permission notice shall be included
20505 // in all copies or substantial portions of the Software.
20507 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20508 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20509 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20510 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20511 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20512 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20513 // USE OR OTHER DEALINGS IN THE SOFTWARE.
20515 function EventEmitter() {
20516 this._events = this._events || {};
20517 this._maxListeners = this._maxListeners || undefined;
20519 module.exports = EventEmitter;
20521 // Backwards-compat with node
0.10.x
20522 EventEmitter.EventEmitter = EventEmitter;
20524 EventEmitter.prototype._events = undefined;
20525 EventEmitter.prototype._maxListeners = undefined;
20527 // By default EventEmitters will print a warning if more than
10 listeners are
20528 // added to it. This is a useful default which helps finding memory leaks.
20529 EventEmitter.defaultMaxListeners =
10;
20531 // Obviously not all Emitters should be limited to
10. This function allows
20532 // that to be increased. Set to zero for unlimited.
20533 EventEmitter.prototype.setMaxListeners = function(n) {
20534 if (!isNumber(n) || n <
0 || isNaN(n))
20535 throw TypeError('n must be a positive number');
20536 this._maxListeners = n;
20540 EventEmitter.prototype.emit = function(type) {
20541 var er, handler, len, args, i, listeners;
20546 // If there is no 'error' event listener then throw.
20547 if (type === 'error') {
20548 if (!this._events.error ||
20549 (isObject(this._events.error) && !this._events.error.length)) {
20551 if (er instanceof Error) {
20552 throw er; // Unhandled 'error' event
20554 // At least give some kind of context to the user
20555 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
20562 handler = this._events[type];
20564 if (isUndefined(handler))
20567 if (isFunction(handler)) {
20568 switch (arguments.length) {
20571 handler.call(this);
20574 handler.call(this, arguments[
1]);
20577 handler.call(this, arguments[
1], arguments[
2]);
20581 args = Array.prototype.slice.call(arguments,
1);
20582 handler.apply(this, args);
20584 } else if (isObject(handler)) {
20585 args = Array.prototype.slice.call(arguments,
1);
20586 listeners = handler.slice();
20587 len = listeners.length;
20588 for (i =
0; i < len; i++)
20589 listeners[i].apply(this, args);
20595 EventEmitter.prototype.addListener = function(type, listener) {
20598 if (!isFunction(listener))
20599 throw TypeError('listener must be a function');
20604 // To avoid recursion in the case that type === "newListener"! Before
20605 // adding it to the listeners, first emit "newListener".
20606 if (this._events.newListener)
20607 this.emit('newListener', type,
20608 isFunction(listener.listener) ?
20609 listener.listener : listener);
20611 if (!this._events[type])
20612 // Optimize the case of one listener. Don't need the extra array object.
20613 this._events[type] = listener;
20614 else if (isObject(this._events[type]))
20615 // If we've already got an array, just append.
20616 this._events[type].push(listener);
20618 // Adding the second element, need to change to array.
20619 this._events[type] = [this._events[type], listener];
20621 // Check for listener leak
20622 if (isObject(this._events[type]) && !this._events[type].warned) {
20623 if (!isUndefined(this._maxListeners)) {
20624 m = this._maxListeners;
20626 m = EventEmitter.defaultMaxListeners;
20629 if (m && m
> 0 && this._events[type].length
> m) {
20630 this._events[type].warned = true;
20631 console.error('(node) warning: possible EventEmitter memory ' +
20632 'leak detected. %d listeners added. ' +
20633 'Use emitter.setMaxListeners() to increase limit.',
20634 this._events[type].length);
20635 if (typeof console.trace === 'function') {
20636 // not supported in IE
10
20645 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
20647 EventEmitter.prototype.once = function(type, listener) {
20648 if (!isFunction(listener))
20649 throw TypeError('listener must be a function');
20654 this.removeListener(type, g);
20658 listener.apply(this, arguments);
20662 g.listener = listener;
20668 // emits a 'removeListener' event iff the listener was removed
20669 EventEmitter.prototype.removeListener = function(type, listener) {
20670 var list, position, length, i;
20672 if (!isFunction(listener))
20673 throw TypeError('listener must be a function');
20675 if (!this._events || !this._events[type])
20678 list = this._events[type];
20679 length = list.length;
20682 if (list === listener ||
20683 (isFunction(list.listener) && list.listener === listener)) {
20684 delete this._events[type];
20685 if (this._events.removeListener)
20686 this.emit('removeListener', type, listener);
20688 } else if (isObject(list)) {
20689 for (i = length; i--
> 0;) {
20690 if (list[i] === listener ||
20691 (list[i].listener && list[i].listener === listener)) {
20700 if (list.length ===
1) {
20702 delete this._events[type];
20704 list.splice(position,
1);
20707 if (this._events.removeListener)
20708 this.emit('removeListener', type, listener);
20714 EventEmitter.prototype.removeAllListeners = function(type) {
20715 var key, listeners;
20720 // not listening for removeListener, no need to emit
20721 if (!this._events.removeListener) {
20722 if (arguments.length ===
0)
20724 else if (this._events[type])
20725 delete this._events[type];
20729 // emit removeListener for all listeners on all events
20730 if (arguments.length ===
0) {
20731 for (key in this._events) {
20732 if (key === 'removeListener') continue;
20733 this.removeAllListeners(key);
20735 this.removeAllListeners('removeListener');
20740 listeners = this._events[type];
20742 if (isFunction(listeners)) {
20743 this.removeListener(type, listeners);
20744 } else if (listeners) {
20746 while (listeners.length)
20747 this.removeListener(type, listeners[listeners.length -
1]);
20749 delete this._events[type];
20754 EventEmitter.prototype.listeners = function(type) {
20756 if (!this._events || !this._events[type])
20758 else if (isFunction(this._events[type]))
20759 ret = [this._events[type]];
20761 ret = this._events[type].slice();
20765 EventEmitter.prototype.listenerCount = function(type) {
20766 if (this._events) {
20767 var evlistener = this._events[type];
20769 if (isFunction(evlistener))
20771 else if (evlistener)
20772 return evlistener.length;
20777 EventEmitter.listenerCount = function(emitter, type) {
20778 return emitter.listenerCount(type);
20781 function isFunction(arg) {
20782 return typeof arg === 'function';
20785 function isNumber(arg) {
20786 return typeof arg === 'number';
20789 function isObject(arg) {
20790 return typeof arg === 'object' && arg !== null;
20793 function isUndefined(arg) {
20794 return arg === void
0;
20797 },{}],
8:[function(require,module,exports){
20798 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
20800 var eLen = nBytes *
8 - mLen -
1
20801 var eMax = (
1 << eLen) -
1
20802 var eBias = eMax
>> 1
20804 var i = isLE ? (nBytes -
1) :
0
20805 var d = isLE ? -
1 :
1
20806 var s = buffer[offset + i]
20810 e = s & ((
1 << (-nBits)) -
1)
20813 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20815 m = e & ((
1 << (-nBits)) -
1)
20818 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20822 } else if (e === eMax) {
20823 return m ? NaN : ((s ? -
1 :
1) * Infinity)
20825 m = m + Math.pow(
2, mLen)
20828 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
20831 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
20833 var eLen = nBytes *
8 - mLen -
1
20834 var eMax = (
1 << eLen) -
1
20835 var eBias = eMax
>> 1
20836 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
20837 var i = isLE ?
0 : (nBytes -
1)
20838 var d = isLE ?
1 : -
1
20839 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
20841 value = Math.abs(value)
20843 if (isNaN(value) || value === Infinity) {
20844 m = isNaN(value) ?
1 :
0
20847 e = Math.floor(Math.log(value) / Math.LN2)
20848 if (value * (c = Math.pow(
2, -e)) <
1) {
20852 if (e + eBias
>=
1) {
20855 value += rt * Math.pow(
2,
1 - eBias)
20857 if (value * c
>=
2) {
20862 if (e + eBias
>= eMax) {
20865 } else if (e + eBias
>=
1) {
20866 m = (value * c -
1) * Math.pow(
2, mLen)
20869 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
20874 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
20876 e = (e << mLen) | m
20878 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
20880 buffer[offset + i - d] |= s *
128
20883 },{}],
9:[function(require,module,exports){
20884 if (typeof Object.create === 'function') {
20885 // implementation from standard node.js 'util' module
20886 module.exports = function inherits(ctor, superCtor) {
20887 ctor.super_ = superCtor
20888 ctor.prototype = Object.create(superCtor.prototype, {
20898 // old school shim for old browsers
20899 module.exports = function inherits(ctor, superCtor) {
20900 ctor.super_ = superCtor
20901 var TempCtor = function () {}
20902 TempCtor.prototype = superCtor.prototype
20903 ctor.prototype = new TempCtor()
20904 ctor.prototype.constructor = ctor
20908 },{}],
10:[function(require,module,exports){
20910 * Determine if an object is a Buffer
20912 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20916 // The _isBuffer check is for Safari
5-
7 support, because it's missing
20917 // Object.prototype.constructor. Remove this eventually
20918 module.exports = function (obj) {
20919 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
20922 function isBuffer (obj) {
20923 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
20926 // For Node v0.10 support. Remove this eventually.
20927 function isSlowBuffer (obj) {
20928 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
20931 },{}],
11:[function(require,module,exports){
20932 var toString = {}.toString;
20934 module.exports = Array.isArray || function (arr) {
20935 return toString.call(arr) == '[object Array]';
20938 },{}],
12:[function(require,module,exports){
20939 (function (process){
20942 if (!process.version ||
20943 process.version.indexOf('v0.') ===
0 ||
20944 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
20945 module.exports = nextTick;
20947 module.exports = process.nextTick;
20950 function nextTick(fn, arg1, arg2, arg3) {
20951 if (typeof fn !== 'function') {
20952 throw new TypeError('"callback" argument must be a function');
20954 var len = arguments.length;
20959 return process.nextTick(fn);
20961 return process.nextTick(function afterTickOne() {
20962 fn.call(null, arg1);
20965 return process.nextTick(function afterTickTwo() {
20966 fn.call(null, arg1, arg2);
20969 return process.nextTick(function afterTickThree() {
20970 fn.call(null, arg1, arg2, arg3);
20973 args = new Array(len -
1);
20975 while (i < args.length) {
20976 args[i++] = arguments[i];
20978 return process.nextTick(function afterTick() {
20979 fn.apply(null, args);
20984 }).call(this,require('_process'))
20985 },{"_process":
13}],
13:[function(require,module,exports){
20986 // shim for using process in browser
20987 var process = module.exports = {};
20989 // cached from whatever global is present so that test runners that stub it
20990 // don't break things. But we need to wrap it in a try catch in case it is
20991 // wrapped in strict mode code which doesn't define any globals. It's inside a
20992 // function because try/catches deoptimize in certain engines.
20994 var cachedSetTimeout;
20995 var cachedClearTimeout;
20997 function defaultSetTimout() {
20998 throw new Error('setTimeout has not been defined');
21000 function defaultClearTimeout () {
21001 throw new Error('clearTimeout has not been defined');
21005 if (typeof setTimeout === 'function') {
21006 cachedSetTimeout = setTimeout;
21008 cachedSetTimeout = defaultSetTimout;
21011 cachedSetTimeout = defaultSetTimout;
21014 if (typeof clearTimeout === 'function') {
21015 cachedClearTimeout = clearTimeout;
21017 cachedClearTimeout = defaultClearTimeout;
21020 cachedClearTimeout = defaultClearTimeout;
21023 function runTimeout(fun) {
21024 if (cachedSetTimeout === setTimeout) {
21025 //normal enviroments in sane situations
21026 return setTimeout(fun,
0);
21028 // if setTimeout wasn't available but was latter defined
21029 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
21030 cachedSetTimeout = setTimeout;
21031 return setTimeout(fun,
0);
21034 // when when somebody has screwed with setTimeout but no I.E. maddness
21035 return cachedSetTimeout(fun,
0);
21038 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
21039 return cachedSetTimeout.call(null, fun,
0);
21041 // 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
21042 return cachedSetTimeout.call(this, fun,
0);
21048 function runClearTimeout(marker) {
21049 if (cachedClearTimeout === clearTimeout) {
21050 //normal enviroments in sane situations
21051 return clearTimeout(marker);
21053 // if clearTimeout wasn't available but was latter defined
21054 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
21055 cachedClearTimeout = clearTimeout;
21056 return clearTimeout(marker);
21059 // when when somebody has screwed with setTimeout but no I.E. maddness
21060 return cachedClearTimeout(marker);
21063 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
21064 return cachedClearTimeout.call(null, marker);
21066 // 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.
21067 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
21068 return cachedClearTimeout.call(this, marker);
21076 var draining = false;
21078 var queueIndex = -
1;
21080 function cleanUpNextTick() {
21081 if (!draining || !currentQueue) {
21085 if (currentQueue.length) {
21086 queue = currentQueue.concat(queue);
21090 if (queue.length) {
21095 function drainQueue() {
21099 var timeout = runTimeout(cleanUpNextTick);
21102 var len = queue.length;
21104 currentQueue = queue;
21106 while (++queueIndex < len) {
21107 if (currentQueue) {
21108 currentQueue[queueIndex].run();
21112 len = queue.length;
21114 currentQueue = null;
21116 runClearTimeout(timeout);
21119 process.nextTick = function (fun) {
21120 var args = new Array(arguments.length -
1);
21121 if (arguments.length
> 1) {
21122 for (var i =
1; i < arguments.length; i++) {
21123 args[i -
1] = arguments[i];
21126 queue.push(new Item(fun, args));
21127 if (queue.length ===
1 && !draining) {
21128 runTimeout(drainQueue);
21132 // v8 likes predictible objects
21133 function Item(fun, array) {
21135 this.array = array;
21137 Item.prototype.run = function () {
21138 this.fun.apply(null, this.array);
21140 process.title = 'browser';
21141 process.browser = true;
21144 process.version = ''; // empty string to avoid regexp issues
21145 process.versions = {};
21150 process.addListener = noop;
21151 process.once = noop;
21152 process.off = noop;
21153 process.removeListener = noop;
21154 process.removeAllListeners = noop;
21155 process.emit = noop;
21157 process.binding = function (name) {
21158 throw new Error('process.binding is not supported');
21161 process.cwd = function () { return '/' };
21162 process.chdir = function (dir) {
21163 throw new Error('process.chdir is not supported');
21165 process.umask = function() { return
0; };
21167 },{}],
14:[function(require,module,exports){
21168 module.exports = require(
"./lib/_stream_duplex.js")
21170 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
21171 // a duplex stream is just a stream that is both readable and writable.
21172 // Since JS doesn't have multiple prototypal inheritance, this class
21173 // prototypally inherits from Readable, and then parasitically from
21180 var objectKeys = Object.keys || function (obj) {
21182 for (var key in obj) {
21188 module.exports = Duplex;
21191 var processNextTick = require('process-nextick-args');
21195 var util = require('core-util-is');
21196 util.inherits = require('inherits');
21199 var Readable = require('./_stream_readable');
21200 var Writable = require('./_stream_writable');
21202 util.inherits(Duplex, Readable);
21204 var keys = objectKeys(Writable.prototype);
21205 for (var v =
0; v < keys.length; v++) {
21206 var method = keys[v];
21207 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
21210 function Duplex(options) {
21211 if (!(this instanceof Duplex)) return new Duplex(options);
21213 Readable.call(this, options);
21214 Writable.call(this, options);
21216 if (options && options.readable === false) this.readable = false;
21218 if (options && options.writable === false) this.writable = false;
21220 this.allowHalfOpen = true;
21221 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
21223 this.once('end', onend);
21226 // the no-half-open enforcer
21228 // if we allow half-open state, or if the writable side ended,
21230 if (this.allowHalfOpen || this._writableState.ended) return;
21232 // no more data can be written.
21233 // But allow more writes to happen in this tick.
21234 processNextTick(onEndNT, this);
21237 function onEndNT(self) {
21241 function forEach(xs, f) {
21242 for (var i =
0, l = xs.length; i < l; i++) {
21246 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
21247 // a passthrough stream.
21248 // basically just the most minimal sort of Transform stream.
21249 // Every written chunk gets output as-is.
21253 module.exports = PassThrough;
21255 var Transform = require('./_stream_transform');
21258 var util = require('core-util-is');
21259 util.inherits = require('inherits');
21262 util.inherits(PassThrough, Transform);
21264 function PassThrough(options) {
21265 if (!(this instanceof PassThrough)) return new PassThrough(options);
21267 Transform.call(this, options);
21270 PassThrough.prototype._transform = function (chunk, encoding, cb) {
21273 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
21274 (function (process){
21277 module.exports = Readable;
21280 var processNextTick = require('process-nextick-args');
21284 var isArray = require('isarray');
21291 Readable.ReadableState = ReadableState;
21294 var EE = require('events').EventEmitter;
21296 var EElistenerCount = function (emitter, type) {
21297 return emitter.listeners(type).length;
21305 Stream = require('st' + 'ream');
21306 } catch (_) {} finally {
21307 if (!Stream) Stream = require('events').EventEmitter;
21312 var Buffer = require('buffer').Buffer;
21314 var bufferShim = require('buffer-shims');
21318 var util = require('core-util-is');
21319 util.inherits = require('inherits');
21323 var debugUtil = require('util');
21324 var debug = void
0;
21325 if (debugUtil && debugUtil.debuglog) {
21326 debug = debugUtil.debuglog('stream');
21328 debug = function () {};
21332 var BufferList = require('./internal/streams/BufferList');
21335 util.inherits(Readable, Stream);
21337 function prependListener(emitter, event, fn) {
21338 // Sadly this is not cacheable as some libraries bundle their own
21339 // event emitter implementation with them.
21340 if (typeof emitter.prependListener === 'function') {
21341 return emitter.prependListener(event, fn);
21343 // This is a hack to make sure that our error handler is attached before any
21344 // userland ones. NEVER DO THIS. This is here only because this code needs
21345 // to continue to work with older versions of Node.js that do not include
21346 // the prependListener() method. The goal is to eventually remove this hack.
21347 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]];
21351 function ReadableState(options, stream) {
21352 Duplex = Duplex || require('./_stream_duplex');
21354 options = options || {};
21356 // object stream flag. Used to make read(n) ignore n and to
21357 // make all the buffer merging and length checks go away
21358 this.objectMode = !!options.objectMode;
21360 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
21362 // the point at which it stops calling _read() to fill the buffer
21363 // Note:
0 is a valid value, means "don't call _read preemptively ever"
21364 var hwm = options.highWaterMark;
21365 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
21366 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
21369 this.highWaterMark = ~ ~this.highWaterMark;
21371 // A linked list is used to store data chunks instead of an array because the
21372 // linked list can remove elements from the beginning faster than
21374 this.buffer = new BufferList();
21377 this.pipesCount =
0;
21378 this.flowing = null;
21379 this.ended = false;
21380 this.endEmitted = false;
21381 this.reading = false;
21383 // a flag to be able to tell if the onwrite cb is called immediately,
21384 // or on a later tick. We set this to true at first, because any
21385 // actions that shouldn't happen until "later" should generally also
21386 // not happen before the first write call.
21389 // whenever we return null, then we set a flag to say
21390 // that we're awaiting a 'readable' event emission.
21391 this.needReadable = false;
21392 this.emittedReadable = false;
21393 this.readableListening = false;
21394 this.resumeScheduled = false;
21396 // Crypto is kind of old and crusty. Historically, its default string
21397 // encoding is 'binary' so we have to make this configurable.
21398 // Everything else in the universe uses 'utf8', though.
21399 this.defaultEncoding = options.defaultEncoding || 'utf8';
21401 // when piping, we only care about 'readable' events that happen
21402 // after read()ing all the bytes and not getting any pushback.
21403 this.ranOut = false;
21405 // the number of writers that are awaiting a drain event in .pipe()s
21406 this.awaitDrain =
0;
21408 // if true, a maybeReadMore has been scheduled
21409 this.readingMore = false;
21411 this.decoder = null;
21412 this.encoding = null;
21413 if (options.encoding) {
21414 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
21415 this.decoder = new StringDecoder(options.encoding);
21416 this.encoding = options.encoding;
21420 function Readable(options) {
21421 Duplex = Duplex || require('./_stream_duplex');
21423 if (!(this instanceof Readable)) return new Readable(options);
21425 this._readableState = new ReadableState(options, this);
21428 this.readable = true;
21430 if (options && typeof options.read === 'function') this._read = options.read;
21435 // Manually shove something into the read() buffer.
21436 // This returns true if the highWaterMark has not been hit yet,
21437 // similar to how Writable.write() returns true if you should
21438 // write() some more.
21439 Readable.prototype.push = function (chunk, encoding) {
21440 var state = this._readableState;
21442 if (!state.objectMode && typeof chunk === 'string') {
21443 encoding = encoding || state.defaultEncoding;
21444 if (encoding !== state.encoding) {
21445 chunk = bufferShim.from(chunk, encoding);
21450 return readableAddChunk(this, state, chunk, encoding, false);
21453 // Unshift should *always* be something directly out of read()
21454 Readable.prototype.unshift = function (chunk) {
21455 var state = this._readableState;
21456 return readableAddChunk(this, state, chunk, '', true);
21459 Readable.prototype.isPaused = function () {
21460 return this._readableState.flowing === false;
21463 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
21464 var er = chunkInvalid(state, chunk);
21466 stream.emit('error', er);
21467 } else if (chunk === null) {
21468 state.reading = false;
21469 onEofChunk(stream, state);
21470 } else if (state.objectMode || chunk && chunk.length
> 0) {
21471 if (state.ended && !addToFront) {
21472 var e = new Error('stream.push() after EOF');
21473 stream.emit('error', e);
21474 } else if (state.endEmitted && addToFront) {
21475 var _e = new Error('stream.unshift() after end event');
21476 stream.emit('error', _e);
21479 if (state.decoder && !addToFront && !encoding) {
21480 chunk = state.decoder.write(chunk);
21481 skipAdd = !state.objectMode && chunk.length ===
0;
21484 if (!addToFront) state.reading = false;
21486 // Don't add to the buffer if we've decoded to an empty string chunk and
21487 // we're not in object mode
21489 // if we want the data now, just emit it.
21490 if (state.flowing && state.length ===
0 && !state.sync) {
21491 stream.emit('data', chunk);
21494 // update the buffer info.
21495 state.length += state.objectMode ?
1 : chunk.length;
21496 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
21498 if (state.needReadable) emitReadable(stream);
21502 maybeReadMore(stream, state);
21504 } else if (!addToFront) {
21505 state.reading = false;
21508 return needMoreData(state);
21511 // if it's past the high water mark, we can push in some more.
21512 // Also, if we have no data yet, we can stand some
21513 // more bytes. This is to work around cases where hwm=
0,
21514 // such as the repl. Also, if the push() triggered a
21515 // readable event, and the user called read(largeNumber) such that
21516 // needReadable was set, then we ought to push more, so that another
21517 // 'readable' event will be triggered.
21518 function needMoreData(state) {
21519 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
21522 // backwards compatibility.
21523 Readable.prototype.setEncoding = function (enc) {
21524 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
21525 this._readableState.decoder = new StringDecoder(enc);
21526 this._readableState.encoding = enc;
21530 // Don't raise the hwm
> 8MB
21531 var MAX_HWM =
0x800000;
21532 function computeNewHighWaterMark(n) {
21533 if (n
>= MAX_HWM) {
21536 // Get the next highest power of
2 to prevent increasing hwm excessively in
21549 // This function is designed to be inlinable, so please take care when making
21550 // changes to the function body.
21551 function howMuchToRead(n, state) {
21552 if (n <=
0 || state.length ===
0 && state.ended) return
0;
21553 if (state.objectMode) return
1;
21555 // Only flow one buffer at a time
21556 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
21558 // If we're asking for more than the current hwm, then raise the hwm.
21559 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
21560 if (n <= state.length) return n;
21561 // Don't have enough
21562 if (!state.ended) {
21563 state.needReadable = true;
21566 return state.length;
21569 // you can override either this method, or the async _read(n) below.
21570 Readable.prototype.read = function (n) {
21572 n = parseInt(n,
10);
21573 var state = this._readableState;
21576 if (n !==
0) state.emittedReadable = false;
21578 // if we're doing read(
0) to trigger a readable event, but we
21579 // already have a bunch of data in the buffer, then just trigger
21580 // the 'readable' event and move on.
21581 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
21582 debug('read: emitReadable', state.length, state.ended);
21583 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
21587 n = howMuchToRead(n, state);
21589 // if we've ended, and we're now clear, then finish it up.
21590 if (n ===
0 && state.ended) {
21591 if (state.length ===
0) endReadable(this);
21595 // All the actual chunk generation logic needs to be
21596 // *below* the call to _read. The reason is that in certain
21597 // synthetic stream cases, such as passthrough streams, _read
21598 // may be a completely synchronous operation which may change
21599 // the state of the read buffer, providing enough data when
21600 // before there was *not* enough.
21602 // So, the steps are:
21603 //
1. Figure out what the state of things will be after we do
21604 // a read from the buffer.
21606 //
2. If that resulting state will trigger a _read, then call _read.
21607 // Note that this may be asynchronous, or synchronous. Yes, it is
21608 // deeply ugly to write APIs this way, but that still doesn't mean
21609 // that the Readable class should behave improperly, as streams are
21610 // designed to be sync/async agnostic.
21611 // Take note if the _read call is sync or async (ie, if the read call
21612 // has returned yet), so that we know whether or not it's safe to emit
21615 //
3. Actually pull the requested chunks out of the buffer and return.
21617 // if we need a readable event, then we need to do some reading.
21618 var doRead = state.needReadable;
21619 debug('need readable', doRead);
21621 // if we currently have less than the highWaterMark, then also read some
21622 if (state.length ===
0 || state.length - n < state.highWaterMark) {
21624 debug('length less than watermark', doRead);
21627 // however, if we've ended, then there's no point, and if we're already
21628 // reading, then it's unnecessary.
21629 if (state.ended || state.reading) {
21631 debug('reading or ended', doRead);
21632 } else if (doRead) {
21634 state.reading = true;
21636 // if the length is currently zero, then we *need* a readable event.
21637 if (state.length ===
0) state.needReadable = true;
21638 // call internal read method
21639 this._read(state.highWaterMark);
21640 state.sync = false;
21641 // If _read pushed data synchronously, then `reading` will be false,
21642 // and we need to re-evaluate how much data we can return to the user.
21643 if (!state.reading) n = howMuchToRead(nOrig, state);
21647 if (n
> 0) ret = fromList(n, state);else ret = null;
21649 if (ret === null) {
21650 state.needReadable = true;
21656 if (state.length ===
0) {
21657 // If we have nothing in the buffer, then we want to know
21658 // as soon as we *do* get something into the buffer.
21659 if (!state.ended) state.needReadable = true;
21661 // If we tried to read() past the EOF, then emit end on the next tick.
21662 if (nOrig !== n && state.ended) endReadable(this);
21665 if (ret !== null) this.emit('data', ret);
21670 function chunkInvalid(state, chunk) {
21672 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
21673 er = new TypeError('Invalid non-string/buffer chunk');
21678 function onEofChunk(stream, state) {
21679 if (state.ended) return;
21680 if (state.decoder) {
21681 var chunk = state.decoder.end();
21682 if (chunk && chunk.length) {
21683 state.buffer.push(chunk);
21684 state.length += state.objectMode ?
1 : chunk.length;
21687 state.ended = true;
21689 // emit 'readable' now to make sure it gets picked up.
21690 emitReadable(stream);
21693 // Don't emit readable right away in sync mode, because this can trigger
21694 // another read() call =
> stack overflow. This way, it might trigger
21695 // a nextTick recursion warning, but that's not so bad.
21696 function emitReadable(stream) {
21697 var state = stream._readableState;
21698 state.needReadable = false;
21699 if (!state.emittedReadable) {
21700 debug('emitReadable', state.flowing);
21701 state.emittedReadable = true;
21702 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
21706 function emitReadable_(stream) {
21707 debug('emit readable');
21708 stream.emit('readable');
21712 // at this point, the user has presumably seen the 'readable' event,
21713 // and called read() to consume some data. that may have triggered
21714 // in turn another _read(n) call, in which case reading = true if
21715 // it's in progress.
21716 // However, if we're not ended, or reading, and the length < hwm,
21717 // then go ahead and try to read some more preemptively.
21718 function maybeReadMore(stream, state) {
21719 if (!state.readingMore) {
21720 state.readingMore = true;
21721 processNextTick(maybeReadMore_, stream, state);
21725 function maybeReadMore_(stream, state) {
21726 var len = state.length;
21727 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
21728 debug('maybeReadMore read
0');
21730 if (len === state.length)
21731 // didn't get any data, stop spinning.
21732 break;else len = state.length;
21734 state.readingMore = false;
21737 // abstract method. to be overridden in specific implementation classes.
21738 // call cb(er, data) where data is <= n in length.
21739 // for virtual (non-string, non-buffer) streams, "length" is somewhat
21740 // arbitrary, and perhaps not very meaningful.
21741 Readable.prototype._read = function (n) {
21742 this.emit('error', new Error('_read() is not implemented'));
21745 Readable.prototype.pipe = function (dest, pipeOpts) {
21747 var state = this._readableState;
21749 switch (state.pipesCount) {
21751 state.pipes = dest;
21754 state.pipes = [state.pipes, dest];
21757 state.pipes.push(dest);
21760 state.pipesCount +=
1;
21761 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
21763 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
21765 var endFn = doEnd ? onend : cleanup;
21766 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
21768 dest.on('unpipe', onunpipe);
21769 function onunpipe(readable) {
21771 if (readable === src) {
21781 // when the dest drains, it reduces the awaitDrain counter
21782 // on the source. This would be more elegant with a .once()
21783 // handler in flow(), but adding and removing repeatedly is
21785 var ondrain = pipeOnDrain(src);
21786 dest.on('drain', ondrain);
21788 var cleanedUp = false;
21789 function cleanup() {
21791 // cleanup event handlers once the pipe is broken
21792 dest.removeListener('close', onclose);
21793 dest.removeListener('finish', onfinish);
21794 dest.removeListener('drain', ondrain);
21795 dest.removeListener('error', onerror);
21796 dest.removeListener('unpipe', onunpipe);
21797 src.removeListener('end', onend);
21798 src.removeListener('end', cleanup);
21799 src.removeListener('data', ondata);
21803 // if the reader is waiting for a drain event from this
21804 // specific writer, then it would cause it to never start
21806 // So, if this is awaiting a drain, then we just call it now.
21807 // If we don't know, then assume that we are waiting for one.
21808 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
21811 // If the user pushes more data while we're writing to dest then we'll end up
21812 // in ondata again. However, we only want to increase awaitDrain once because
21813 // dest will only emit one 'drain' event for the multiple writes.
21814 // =
> Introduce a guard on increasing awaitDrain.
21815 var increasedAwaitDrain = false;
21816 src.on('data', ondata);
21817 function ondata(chunk) {
21819 increasedAwaitDrain = false;
21820 var ret = dest.write(chunk);
21821 if (false === ret && !increasedAwaitDrain) {
21822 // If the user unpiped during `dest.write()`, it is possible
21823 // to get stuck in a permanently paused state if that write
21824 // also returned false.
21825 // =
> Check whether `dest` is still a piping destination.
21826 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
21827 debug('false write response, pause', src._readableState.awaitDrain);
21828 src._readableState.awaitDrain++;
21829 increasedAwaitDrain = true;
21835 // if the dest has an error, then stop piping into it.
21836 // however, don't suppress the throwing behavior for this.
21837 function onerror(er) {
21838 debug('onerror', er);
21840 dest.removeListener('error', onerror);
21841 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
21844 // Make sure our error handler is attached before userland ones.
21845 prependListener(dest, 'error', onerror);
21847 // Both close and finish should trigger unpipe, but only once.
21848 function onclose() {
21849 dest.removeListener('finish', onfinish);
21852 dest.once('close', onclose);
21853 function onfinish() {
21855 dest.removeListener('close', onclose);
21858 dest.once('finish', onfinish);
21860 function unpipe() {
21865 // tell the dest that it's being piped to
21866 dest.emit('pipe', src);
21868 // start the flow if it hasn't been started already.
21869 if (!state.flowing) {
21870 debug('pipe resume');
21877 function pipeOnDrain(src) {
21878 return function () {
21879 var state = src._readableState;
21880 debug('pipeOnDrain', state.awaitDrain);
21881 if (state.awaitDrain) state.awaitDrain--;
21882 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
21883 state.flowing = true;
21889 Readable.prototype.unpipe = function (dest) {
21890 var state = this._readableState;
21892 // if we're not piping anywhere, then do nothing.
21893 if (state.pipesCount ===
0) return this;
21895 // just one destination. most common case.
21896 if (state.pipesCount ===
1) {
21897 // passed in one, but it's not the right one.
21898 if (dest && dest !== state.pipes) return this;
21900 if (!dest) dest = state.pipes;
21903 state.pipes = null;
21904 state.pipesCount =
0;
21905 state.flowing = false;
21906 if (dest) dest.emit('unpipe', this);
21910 // slow case. multiple pipe destinations.
21914 var dests = state.pipes;
21915 var len = state.pipesCount;
21916 state.pipes = null;
21917 state.pipesCount =
0;
21918 state.flowing = false;
21920 for (var i =
0; i < len; i++) {
21921 dests[i].emit('unpipe', this);
21925 // try to find the right one.
21926 var index = indexOf(state.pipes, dest);
21927 if (index === -
1) return this;
21929 state.pipes.splice(index,
1);
21930 state.pipesCount -=
1;
21931 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
21933 dest.emit('unpipe', this);
21938 // set up data events if they are asked for
21939 // Ensure readable listeners eventually get something
21940 Readable.prototype.on = function (ev, fn) {
21941 var res = Stream.prototype.on.call(this, ev, fn);
21943 if (ev === 'data') {
21944 // Start flowing on next tick if stream isn't explicitly paused
21945 if (this._readableState.flowing !== false) this.resume();
21946 } else if (ev === 'readable') {
21947 var state = this._readableState;
21948 if (!state.endEmitted && !state.readableListening) {
21949 state.readableListening = state.needReadable = true;
21950 state.emittedReadable = false;
21951 if (!state.reading) {
21952 processNextTick(nReadingNextTick, this);
21953 } else if (state.length) {
21954 emitReadable(this, state);
21961 Readable.prototype.addListener = Readable.prototype.on;
21963 function nReadingNextTick(self) {
21964 debug('readable nexttick read
0');
21968 // pause() and resume() are remnants of the legacy readable stream API
21969 // If the user uses them, then switch into old mode.
21970 Readable.prototype.resume = function () {
21971 var state = this._readableState;
21972 if (!state.flowing) {
21974 state.flowing = true;
21975 resume(this, state);
21980 function resume(stream, state) {
21981 if (!state.resumeScheduled) {
21982 state.resumeScheduled = true;
21983 processNextTick(resume_, stream, state);
21987 function resume_(stream, state) {
21988 if (!state.reading) {
21989 debug('resume read
0');
21993 state.resumeScheduled = false;
21994 state.awaitDrain =
0;
21995 stream.emit('resume');
21997 if (state.flowing && !state.reading) stream.read(
0);
22000 Readable.prototype.pause = function () {
22001 debug('call pause flowing=%j', this._readableState.flowing);
22002 if (false !== this._readableState.flowing) {
22004 this._readableState.flowing = false;
22005 this.emit('pause');
22010 function flow(stream) {
22011 var state = stream._readableState;
22012 debug('flow', state.flowing);
22013 while (state.flowing && stream.read() !== null) {}
22016 // wrap an old-style stream as the async data source.
22017 // This is *not* part of the readable stream interface.
22018 // It is an ugly unfortunate mess of history.
22019 Readable.prototype.wrap = function (stream) {
22020 var state = this._readableState;
22021 var paused = false;
22024 stream.on('end', function () {
22025 debug('wrapped end');
22026 if (state.decoder && !state.ended) {
22027 var chunk = state.decoder.end();
22028 if (chunk && chunk.length) self.push(chunk);
22034 stream.on('data', function (chunk) {
22035 debug('wrapped data');
22036 if (state.decoder) chunk = state.decoder.write(chunk);
22038 // don't skip over falsy values in objectMode
22039 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
22041 var ret = self.push(chunk);
22048 // proxy all the other methods.
22049 // important when wrapping filters and duplexes.
22050 for (var i in stream) {
22051 if (this[i] === undefined && typeof stream[i] === 'function') {
22052 this[i] = function (method) {
22053 return function () {
22054 return stream[method].apply(stream, arguments);
22060 // proxy certain important events.
22061 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
22062 forEach(events, function (ev) {
22063 stream.on(ev, self.emit.bind(self, ev));
22066 // when we try to consume some more bytes, simply unpause the
22067 // underlying stream.
22068 self._read = function (n) {
22069 debug('wrapped _read', n);
22079 // exposed for testing purposes only.
22080 Readable._fromList = fromList;
22082 // Pluck off n bytes from an array of buffers.
22083 // Length is the combined lengths of all the buffers in the list.
22084 // This function is designed to be inlinable, so please take care when making
22085 // changes to the function body.
22086 function fromList(n, state) {
22087 // nothing buffered
22088 if (state.length ===
0) return null;
22091 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
22092 // read it all, truncate the list
22093 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);
22094 state.buffer.clear();
22096 // read part of list
22097 ret = fromListPartial(n, state.buffer, state.decoder);
22103 // Extracts only enough buffered data to satisfy the amount requested.
22104 // This function is designed to be inlinable, so please take care when making
22105 // changes to the function body.
22106 function fromListPartial(n, list, hasStrings) {
22108 if (n < list.head.data.length) {
22109 // slice is the same for buffers and strings
22110 ret = list.head.data.slice(
0, n);
22111 list.head.data = list.head.data.slice(n);
22112 } else if (n === list.head.data.length) {
22113 // first chunk is a perfect match
22114 ret = list.shift();
22116 // result spans more than one buffer
22117 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
22122 // Copies a specified amount of characters from the list of buffered data
22124 // This function is designed to be inlinable, so please take care when making
22125 // changes to the function body.
22126 function copyFromBufferString(n, list) {
22131 while (p = p.next) {
22133 var nb = n
> str.length ? str.length : n;
22134 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
22137 if (nb === str.length) {
22139 if (p.next) list.head = p.next;else list.head = list.tail = null;
22142 p.data = str.slice(nb);
22152 // Copies a specified amount of bytes from the list of buffered data chunks.
22153 // This function is designed to be inlinable, so please take care when making
22154 // changes to the function body.
22155 function copyFromBuffer(n, list) {
22156 var ret = bufferShim.allocUnsafe(n);
22160 n -= p.data.length;
22161 while (p = p.next) {
22163 var nb = n
> buf.length ? buf.length : n;
22164 buf.copy(ret, ret.length - n,
0, nb);
22167 if (nb === buf.length) {
22169 if (p.next) list.head = p.next;else list.head = list.tail = null;
22172 p.data = buf.slice(nb);
22182 function endReadable(stream) {
22183 var state = stream._readableState;
22185 // If we get here before consuming all the bytes, then that is a
22186 // bug in node. Should never happen.
22187 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
22189 if (!state.endEmitted) {
22190 state.ended = true;
22191 processNextTick(endReadableNT, state, stream);
22195 function endReadableNT(state, stream) {
22196 // Check that we didn't get one last unshift.
22197 if (!state.endEmitted && state.length ===
0) {
22198 state.endEmitted = true;
22199 stream.readable = false;
22200 stream.emit('end');
22204 function forEach(xs, f) {
22205 for (var i =
0, l = xs.length; i < l; i++) {
22210 function indexOf(xs, x) {
22211 for (var i =
0, l = xs.length; i < l; i++) {
22212 if (xs[i] === x) return i;
22216 }).call(this,require('_process'))
22217 },{
"./_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){
22218 // a transform stream is a readable/writable stream where you do
22219 // something with the data. Sometimes it's called a
"filter",
22220 // but that's not a great name for it, since that implies a thing where
22221 // some bits pass through, and others are simply ignored. (That would
22222 // be a valid example of a transform, of course.)
22224 // While the output is causally related to the input, it's not a
22225 // necessarily symmetric or synchronous transformation. For example,
22226 // a zlib stream might take multiple plain-text writes(), and then
22227 // emit a single compressed chunk some time in the future.
22229 // Here's how this works:
22231 // The Transform stream has all the aspects of the readable and writable
22232 // stream classes. When you write(chunk), that calls _write(chunk,cb)
22233 // internally, and returns false if there's a lot of pending writes
22234 // buffered up. When you call read(), that calls _read(n) until
22235 // there's enough pending readable data buffered up.
22237 // In a transform stream, the written data is placed in a buffer. When
22238 // _read(n) is called, it transforms the queued up data, calling the
22239 // buffered _write cb's as it consumes chunks. If consuming a single
22240 // written chunk would result in multiple output chunks, then the first
22241 // outputted bit calls the readcb, and subsequent chunks just go into
22242 // the read buffer, and will cause it to emit 'readable' if necessary.
22244 // This way, back-pressure is actually determined by the reading side,
22245 // since _read has to be called to start processing a new chunk. However,
22246 // a pathological inflate type of transform can cause excessive buffering
22247 // here. For example, imagine a stream where every byte of input is
22248 // interpreted as an integer from
0-
255, and then results in that many
22249 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
22250 //
1kb of data being output. In this case, you could write a very small
22251 // amount of input, and end up with a very large amount of output. In
22252 // such a pathological inflating mechanism, there'd be no way to tell
22253 // the system to stop doing the transform. A single
4MB write could
22254 // cause the system to run out of memory.
22256 // However, even in such a pathological case, only a single written chunk
22257 // would be consumed, and then the rest would wait (un-transformed) until
22258 // the results of the previous transformed chunk were consumed.
22262 module.exports = Transform;
22264 var Duplex = require('./_stream_duplex');
22267 var util = require('core-util-is');
22268 util.inherits = require('inherits');
22271 util.inherits(Transform, Duplex);
22273 function TransformState(stream) {
22274 this.afterTransform = function (er, data) {
22275 return afterTransform(stream, er, data);
22278 this.needTransform = false;
22279 this.transforming = false;
22280 this.writecb = null;
22281 this.writechunk = null;
22282 this.writeencoding = null;
22285 function afterTransform(stream, er, data) {
22286 var ts = stream._transformState;
22287 ts.transforming = false;
22289 var cb = ts.writecb;
22291 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
22293 ts.writechunk = null;
22296 if (data !== null && data !== undefined) stream.push(data);
22300 var rs = stream._readableState;
22301 rs.reading = false;
22302 if (rs.needReadable || rs.length < rs.highWaterMark) {
22303 stream._read(rs.highWaterMark);
22307 function Transform(options) {
22308 if (!(this instanceof Transform)) return new Transform(options);
22310 Duplex.call(this, options);
22312 this._transformState = new TransformState(this);
22316 // start out asking for a readable event once data is transformed.
22317 this._readableState.needReadable = true;
22319 // we have implemented the _read method, and done the other things
22320 // that Readable wants before the first _read call, so unset the
22321 // sync guard flag.
22322 this._readableState.sync = false;
22325 if (typeof options.transform === 'function') this._transform = options.transform;
22327 if (typeof options.flush === 'function') this._flush = options.flush;
22330 // When the writable side finishes, then flush out anything remaining.
22331 this.once('prefinish', function () {
22332 if (typeof this._flush === 'function') this._flush(function (er, data) {
22333 done(stream, er, data);
22334 });else done(stream);
22338 Transform.prototype.push = function (chunk, encoding) {
22339 this._transformState.needTransform = false;
22340 return Duplex.prototype.push.call(this, chunk, encoding);
22343 // This is the part where you do stuff!
22344 // override this function in implementation classes.
22345 // 'chunk' is an input chunk.
22347 // Call `push(newChunk)` to pass along transformed output
22348 // to the readable side. You may call 'push' zero or more times.
22350 // Call `cb(err)` when you are done with this chunk. If you pass
22351 // an error, then that'll put the hurt on the whole operation. If you
22352 // never call cb(), then you'll never get another chunk.
22353 Transform.prototype._transform = function (chunk, encoding, cb) {
22354 throw new Error('_transform() is not implemented');
22357 Transform.prototype._write = function (chunk, encoding, cb) {
22358 var ts = this._transformState;
22360 ts.writechunk = chunk;
22361 ts.writeencoding = encoding;
22362 if (!ts.transforming) {
22363 var rs = this._readableState;
22364 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
22368 // Doesn't matter what the args are here.
22369 // _transform does all the work.
22370 // That we got here means that the readable side wants more data.
22371 Transform.prototype._read = function (n) {
22372 var ts = this._transformState;
22374 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
22375 ts.transforming = true;
22376 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
22378 // mark that we need a transform, so that any data that comes in
22379 // will get processed, now that we've asked for it.
22380 ts.needTransform = true;
22384 function done(stream, er, data) {
22385 if (er) return stream.emit('error', er);
22387 if (data !== null && data !== undefined) stream.push(data);
22389 // if there's nothing in the write buffer, then that means
22390 // that nothing more will ever be provided
22391 var ws = stream._writableState;
22392 var ts = stream._transformState;
22394 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
22396 if (ts.transforming) throw new Error('Calling transform done when still transforming');
22398 return stream.push(null);
22400 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
22401 (function (process){
22402 // A bit simpler than readable streams.
22403 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
22404 // the drain event emission and buffering.
22408 module.exports = Writable;
22411 var processNextTick = require('process-nextick-args');
22415 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
22422 Writable.WritableState = WritableState;
22425 var util = require('core-util-is');
22426 util.inherits = require('inherits');
22430 var internalUtil = {
22431 deprecate: require('util-deprecate')
22439 Stream = require('st' + 'ream');
22440 } catch (_) {} finally {
22441 if (!Stream) Stream = require('events').EventEmitter;
22446 var Buffer = require('buffer').Buffer;
22448 var bufferShim = require('buffer-shims');
22451 util.inherits(Writable, Stream);
22455 function WriteReq(chunk, encoding, cb) {
22456 this.chunk = chunk;
22457 this.encoding = encoding;
22458 this.callback = cb;
22462 function WritableState(options, stream) {
22463 Duplex = Duplex || require('./_stream_duplex');
22465 options = options || {};
22467 // object stream flag to indicate whether or not this stream
22468 // contains buffers or objects.
22469 this.objectMode = !!options.objectMode;
22471 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
22473 // the point at which write() starts returning false
22474 // Note:
0 is a valid value, means that we always return false if
22475 // the entire buffer is not flushed immediately on write()
22476 var hwm = options.highWaterMark;
22477 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
22478 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
22481 this.highWaterMark = ~ ~this.highWaterMark;
22483 // drain event flag.
22484 this.needDrain = false;
22485 // at the start of calling end()
22486 this.ending = false;
22487 // when end() has been called, and returned
22488 this.ended = false;
22489 // when 'finish' is emitted
22490 this.finished = false;
22492 // should we decode strings into buffers before passing to _write?
22493 // this is here so that some node-core streams can optimize string
22494 // handling at a lower level.
22495 var noDecode = options.decodeStrings === false;
22496 this.decodeStrings = !noDecode;
22498 // Crypto is kind of old and crusty. Historically, its default string
22499 // encoding is 'binary' so we have to make this configurable.
22500 // Everything else in the universe uses 'utf8', though.
22501 this.defaultEncoding = options.defaultEncoding || 'utf8';
22503 // not an actual buffer we keep track of, but a measurement
22504 // of how much we're waiting to get pushed to some underlying
22508 // a flag to see when we're in the middle of a write.
22509 this.writing = false;
22511 // when true all writes will be buffered until .uncork() call
22514 // a flag to be able to tell if the onwrite cb is called immediately,
22515 // or on a later tick. We set this to true at first, because any
22516 // actions that shouldn't happen until "later" should generally also
22517 // not happen before the first write call.
22520 // a flag to know if we're processing previously buffered items, which
22521 // may call the _write() callback in the same tick, so that we don't
22522 // end up in an overlapped onwrite situation.
22523 this.bufferProcessing = false;
22525 // the callback that's passed to _write(chunk,cb)
22526 this.onwrite = function (er) {
22527 onwrite(stream, er);
22530 // the callback that the user supplies to write(chunk,encoding,cb)
22531 this.writecb = null;
22533 // the amount that is being written when _write is called.
22536 this.bufferedRequest = null;
22537 this.lastBufferedRequest = null;
22539 // number of pending user-supplied write callbacks
22540 // this must be
0 before 'finish' can be emitted
22541 this.pendingcb =
0;
22543 // emit prefinish if the only thing we're waiting for is _write cbs
22544 // This is relevant for synchronous Transform streams
22545 this.prefinished = false;
22547 // True if the error was already emitted and should not be thrown again
22548 this.errorEmitted = false;
22550 // count buffered requests
22551 this.bufferedRequestCount =
0;
22553 // allocate the first CorkedRequest, there is always
22554 // one allocated and free to use, and we maintain at most two
22555 this.corkedRequestsFree = new CorkedRequest(this);
22558 WritableState.prototype.getBuffer = function getBuffer() {
22559 var current = this.bufferedRequest;
22563 current = current.next;
22570 Object.defineProperty(WritableState.prototype, 'buffer', {
22571 get: internalUtil.deprecate(function () {
22572 return this.getBuffer();
22573 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
22578 // Test _writableState for inheritance to account for Duplex streams,
22579 // whose prototype chain only points to Readable.
22580 var realHasInstance;
22581 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
22582 realHasInstance = Function.prototype[Symbol.hasInstance];
22583 Object.defineProperty(Writable, Symbol.hasInstance, {
22584 value: function (object) {
22585 if (realHasInstance.call(this, object)) return true;
22587 return object && object._writableState instanceof WritableState;
22591 realHasInstance = function (object) {
22592 return object instanceof this;
22596 function Writable(options) {
22597 Duplex = Duplex || require('./_stream_duplex');
22599 // Writable ctor is applied to Duplexes, too.
22600 // `realHasInstance` is necessary because using plain `instanceof`
22601 // would return false, as no `_writableState` property is attached.
22603 // Trying to use the custom `instanceof` for Writable here will also break the
22604 // Node.js LazyTransform implementation, which has a non-trivial getter for
22605 // `_writableState` that would lead to infinite recursion.
22606 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
22607 return new Writable(options);
22610 this._writableState = new WritableState(options, this);
22613 this.writable = true;
22616 if (typeof options.write === 'function') this._write = options.write;
22618 if (typeof options.writev === 'function') this._writev = options.writev;
22624 // Otherwise people can pipe Writable streams, which is just wrong.
22625 Writable.prototype.pipe = function () {
22626 this.emit('error', new Error('Cannot pipe, not readable'));
22629 function writeAfterEnd(stream, cb) {
22630 var er = new Error('write after end');
22631 // TODO: defer error events consistently everywhere, not just the cb
22632 stream.emit('error', er);
22633 processNextTick(cb, er);
22636 // If we get something that is not a buffer, string, null, or undefined,
22637 // and we're not in objectMode, then that's an error.
22638 // Otherwise stream chunks are all considered to be of length=
1, and the
22639 // watermarks determine how many objects to keep in the buffer, rather than
22640 // how many bytes or characters.
22641 function validChunk(stream, state, chunk, cb) {
22644 // Always throw error if a null is written
22645 // if we are not in object mode then throw
22646 // if it is not a buffer, string, or undefined.
22647 if (chunk === null) {
22648 er = new TypeError('May not write null values to stream');
22649 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
22650 er = new TypeError('Invalid non-string/buffer chunk');
22653 stream.emit('error', er);
22654 processNextTick(cb, er);
22660 Writable.prototype.write = function (chunk, encoding, cb) {
22661 var state = this._writableState;
22664 if (typeof encoding === 'function') {
22669 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
22671 if (typeof cb !== 'function') cb = nop;
22673 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
22675 ret = writeOrBuffer(this, state, chunk, encoding, cb);
22681 Writable.prototype.cork = function () {
22682 var state = this._writableState;
22687 Writable.prototype.uncork = function () {
22688 var state = this._writableState;
22690 if (state.corked) {
22693 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
22697 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
22698 // node::ParseEncoding() requires lower case.
22699 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
22700 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);
22701 this._writableState.defaultEncoding = encoding;
22705 function decodeChunk(state, chunk, encoding) {
22706 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
22707 chunk = bufferShim.from(chunk, encoding);
22712 // if we're already writing something, then just put this
22713 // in the queue, and wait our turn. Otherwise, call _write
22714 // If we return false, then we need a drain event, so set that flag.
22715 function writeOrBuffer(stream, state, chunk, encoding, cb) {
22716 chunk = decodeChunk(state, chunk, encoding);
22718 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
22719 var len = state.objectMode ?
1 : chunk.length;
22721 state.length += len;
22723 var ret = state.length < state.highWaterMark;
22724 // we must ensure that previous needDrain will not be reset to false.
22725 if (!ret) state.needDrain = true;
22727 if (state.writing || state.corked) {
22728 var last = state.lastBufferedRequest;
22729 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
22731 last.next = state.lastBufferedRequest;
22733 state.bufferedRequest = state.lastBufferedRequest;
22735 state.bufferedRequestCount +=
1;
22737 doWrite(stream, state, false, len, chunk, encoding, cb);
22743 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
22744 state.writelen = len;
22745 state.writecb = cb;
22746 state.writing = true;
22748 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
22749 state.sync = false;
22752 function onwriteError(stream, state, sync, er, cb) {
22754 if (sync) processNextTick(cb, er);else cb(er);
22756 stream._writableState.errorEmitted = true;
22757 stream.emit('error', er);
22760 function onwriteStateUpdate(state) {
22761 state.writing = false;
22762 state.writecb = null;
22763 state.length -= state.writelen;
22764 state.writelen =
0;
22767 function onwrite(stream, er) {
22768 var state = stream._writableState;
22769 var sync = state.sync;
22770 var cb = state.writecb;
22772 onwriteStateUpdate(state);
22774 if (er) onwriteError(stream, state, sync, er, cb);else {
22775 // Check if we're actually ready to finish, but don't emit yet
22776 var finished = needFinish(state);
22778 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
22779 clearBuffer(stream, state);
22784 asyncWrite(afterWrite, stream, state, finished, cb);
22787 afterWrite(stream, state, finished, cb);
22792 function afterWrite(stream, state, finished, cb) {
22793 if (!finished) onwriteDrain(stream, state);
22796 finishMaybe(stream, state);
22799 // Must force callback to be called on nextTick, so that we don't
22800 // emit 'drain' before the write() consumer gets the 'false' return
22801 // value, and has a chance to attach a 'drain' listener.
22802 function onwriteDrain(stream, state) {
22803 if (state.length ===
0 && state.needDrain) {
22804 state.needDrain = false;
22805 stream.emit('drain');
22809 // if there's something in the buffer waiting, then process it
22810 function clearBuffer(stream, state) {
22811 state.bufferProcessing = true;
22812 var entry = state.bufferedRequest;
22814 if (stream._writev && entry && entry.next) {
22815 // Fast case, write everything using _writev()
22816 var l = state.bufferedRequestCount;
22817 var buffer = new Array(l);
22818 var holder = state.corkedRequestsFree;
22819 holder.entry = entry;
22823 buffer[count] = entry;
22824 entry = entry.next;
22828 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
22830 // doWrite is almost always async, defer these to save a bit of time
22831 // as the hot path ends with doWrite
22833 state.lastBufferedRequest = null;
22835 state.corkedRequestsFree = holder.next;
22836 holder.next = null;
22838 state.corkedRequestsFree = new CorkedRequest(state);
22841 // Slow case, write chunks one-by-one
22843 var chunk = entry.chunk;
22844 var encoding = entry.encoding;
22845 var cb = entry.callback;
22846 var len = state.objectMode ?
1 : chunk.length;
22848 doWrite(stream, state, false, len, chunk, encoding, cb);
22849 entry = entry.next;
22850 // if we didn't call the onwrite immediately, then
22851 // it means that we need to wait until it does.
22852 // also, that means that the chunk and cb are currently
22853 // being processed, so move the buffer counter past them.
22854 if (state.writing) {
22859 if (entry === null) state.lastBufferedRequest = null;
22862 state.bufferedRequestCount =
0;
22863 state.bufferedRequest = entry;
22864 state.bufferProcessing = false;
22867 Writable.prototype._write = function (chunk, encoding, cb) {
22868 cb(new Error('_write() is not implemented'));
22871 Writable.prototype._writev = null;
22873 Writable.prototype.end = function (chunk, encoding, cb) {
22874 var state = this._writableState;
22876 if (typeof chunk === 'function') {
22880 } else if (typeof encoding === 'function') {
22885 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
22887 // .end() fully uncorks
22888 if (state.corked) {
22893 // ignore unnecessary end() calls.
22894 if (!state.ending && !state.finished) endWritable(this, state, cb);
22897 function needFinish(state) {
22898 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
22901 function prefinish(stream, state) {
22902 if (!state.prefinished) {
22903 state.prefinished = true;
22904 stream.emit('prefinish');
22908 function finishMaybe(stream, state) {
22909 var need = needFinish(state);
22911 if (state.pendingcb ===
0) {
22912 prefinish(stream, state);
22913 state.finished = true;
22914 stream.emit('finish');
22916 prefinish(stream, state);
22922 function endWritable(stream, state, cb) {
22923 state.ending = true;
22924 finishMaybe(stream, state);
22926 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
22928 state.ended = true;
22929 stream.writable = false;
22932 // It seems a linked list but it is not
22933 // there will be only
2 of these for each stream
22934 function CorkedRequest(state) {
22940 this.finish = function (err) {
22941 var entry = _this.entry;
22942 _this.entry = null;
22944 var cb = entry.callback;
22947 entry = entry.next;
22949 if (state.corkedRequestsFree) {
22950 state.corkedRequestsFree.next = _this;
22952 state.corkedRequestsFree = _this;
22956 }).call(this,require('_process'))
22957 },{"./_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){
22960 var Buffer = require('buffer').Buffer;
22962 var bufferShim = require('buffer-shims');
22965 module.exports = BufferList;
22967 function BufferList() {
22973 BufferList.prototype.push = function (v) {
22974 var entry = { data: v, next: null };
22975 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
22980 BufferList.prototype.unshift = function (v) {
22981 var entry = { data: v, next: this.head };
22982 if (this.length ===
0) this.tail = entry;
22987 BufferList.prototype.shift = function () {
22988 if (this.length ===
0) return;
22989 var ret = this.head.data;
22990 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
22995 BufferList.prototype.clear = function () {
22996 this.head = this.tail = null;
23000 BufferList.prototype.join = function (s) {
23001 if (this.length ===
0) return '';
23003 var ret = '' + p.data;
23004 while (p = p.next) {
23009 BufferList.prototype.concat = function (n) {
23010 if (this.length ===
0) return bufferShim.alloc(
0);
23011 if (this.length ===
1) return this.head.data;
23012 var ret = bufferShim.allocUnsafe(n
>>> 0);
23016 p.data.copy(ret, i);
23017 i += p.data.length;
23022 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
23023 module.exports = require(
"./lib/_stream_passthrough.js")
23025 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
23026 (function (process){
23027 var Stream = (function (){
23029 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
23032 exports = module.exports = require('./lib/_stream_readable.js');
23033 exports.Stream = Stream || exports;
23034 exports.Readable = exports;
23035 exports.Writable = require('./lib/_stream_writable.js');
23036 exports.Duplex = require('./lib/_stream_duplex.js');
23037 exports.Transform = require('./lib/_stream_transform.js');
23038 exports.PassThrough = require('./lib/_stream_passthrough.js');
23040 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
23041 module.exports = Stream;
23044 }).call(this,require('_process'))
23045 },{
"./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){
23046 module.exports = require(
"./lib/_stream_transform.js")
23048 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
23049 module.exports = require(
"./lib/_stream_writable.js")
23051 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
23052 // Copyright Joyent, Inc. and other Node contributors.
23054 // Permission is hereby granted, free of charge, to any person obtaining a
23055 // copy of this software and associated documentation files (the
23056 //
"Software"), to deal in the Software without restriction, including
23057 // without limitation the rights to use, copy, modify, merge, publish,
23058 // distribute, sublicense, and/or sell copies of the Software, and to permit
23059 // persons to whom the Software is furnished to do so, subject to the
23060 // following conditions:
23062 // The above copyright notice and this permission notice shall be included
23063 // in all copies or substantial portions of the Software.
23065 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23066 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23067 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23068 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23069 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23070 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23071 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23073 module.exports = Stream;
23075 var EE = require('events').EventEmitter;
23076 var inherits = require('inherits');
23078 inherits(Stream, EE);
23079 Stream.Readable = require('readable-stream/readable.js');
23080 Stream.Writable = require('readable-stream/writable.js');
23081 Stream.Duplex = require('readable-stream/duplex.js');
23082 Stream.Transform = require('readable-stream/transform.js');
23083 Stream.PassThrough = require('readable-stream/passthrough.js');
23085 // Backwards-compat with node
0.4.x
23086 Stream.Stream = Stream;
23090 // old-style streams. Note that the pipe method (the only relevant
23091 // part of this class) is overridden in the Readable class.
23093 function Stream() {
23097 Stream.prototype.pipe = function(dest, options) {
23100 function ondata(chunk) {
23101 if (dest.writable) {
23102 if (false === dest.write(chunk) && source.pause) {
23108 source.on('data', ondata);
23110 function ondrain() {
23111 if (source.readable && source.resume) {
23116 dest.on('drain', ondrain);
23118 // If the 'end' option is not supplied, dest.end() will be called when
23119 // source gets the 'end' or 'close' events. Only dest.end() once.
23120 if (!dest._isStdio && (!options || options.end !== false)) {
23121 source.on('end', onend);
23122 source.on('close', onclose);
23125 var didOnEnd = false;
23127 if (didOnEnd) return;
23134 function onclose() {
23135 if (didOnEnd) return;
23138 if (typeof dest.destroy === 'function') dest.destroy();
23141 // don't leave dangling pipes when there are errors.
23142 function onerror(er) {
23144 if (EE.listenerCount(this, 'error') ===
0) {
23145 throw er; // Unhandled stream error in pipe.
23149 source.on('error', onerror);
23150 dest.on('error', onerror);
23152 // remove all the event listeners that were added.
23153 function cleanup() {
23154 source.removeListener('data', ondata);
23155 dest.removeListener('drain', ondrain);
23157 source.removeListener('end', onend);
23158 source.removeListener('close', onclose);
23160 source.removeListener('error', onerror);
23161 dest.removeListener('error', onerror);
23163 source.removeListener('end', cleanup);
23164 source.removeListener('close', cleanup);
23166 dest.removeListener('close', cleanup);
23169 source.on('end', cleanup);
23170 source.on('close', cleanup);
23172 dest.on('close', cleanup);
23174 dest.emit('pipe', source);
23176 // Allow for unix-like usage: A.pipe(B).pipe(C)
23180 },{
"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){
23181 // Copyright Joyent, Inc. and other Node contributors.
23183 // Permission is hereby granted, free of charge, to any person obtaining a
23184 // copy of this software and associated documentation files (the
23185 //
"Software"), to deal in the Software without restriction, including
23186 // without limitation the rights to use, copy, modify, merge, publish,
23187 // distribute, sublicense, and/or sell copies of the Software, and to permit
23188 // persons to whom the Software is furnished to do so, subject to the
23189 // following conditions:
23191 // The above copyright notice and this permission notice shall be included
23192 // in all copies or substantial portions of the Software.
23194 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23195 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23196 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23197 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23198 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23199 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23200 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23202 var Buffer = require('buffer').Buffer;
23204 var isBufferEncoding = Buffer.isEncoding
23205 || function(encoding) {
23206 switch (encoding && encoding.toLowerCase()) {
23207 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;
23208 default: return false;
23213 function assertEncoding(encoding) {
23214 if (encoding && !isBufferEncoding(encoding)) {
23215 throw new Error('Unknown encoding: ' + encoding);
23219 // StringDecoder provides an interface for efficiently splitting a series of
23220 // buffers into a series of JS strings without breaking apart multi-byte
23221 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
23223 // @TODO Handling all encodings inside a single object makes it very difficult
23224 // to reason about this code, so it should be split up in the future.
23225 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
23226 // points as used by CESU-
8.
23227 var StringDecoder = exports.StringDecoder = function(encoding) {
23228 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
23229 assertEncoding(encoding);
23230 switch (this.encoding) {
23232 // CESU-
8 represents each of Surrogate Pair by
3-bytes
23233 this.surrogateSize =
3;
23237 // UTF-
16 represents each of Surrogate Pair by
2-bytes
23238 this.surrogateSize =
2;
23239 this.detectIncompleteChar = utf16DetectIncompleteChar;
23242 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
23243 this.surrogateSize =
3;
23244 this.detectIncompleteChar = base64DetectIncompleteChar;
23247 this.write = passThroughWrite;
23251 // Enough space to store all bytes of a single character. UTF-
8 needs
4
23252 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
23253 this.charBuffer = new Buffer(
6);
23254 // Number of bytes received for the current incomplete multi-byte character.
23255 this.charReceived =
0;
23256 // Number of bytes expected for the current incomplete multi-byte character.
23257 this.charLength =
0;
23261 // write decodes the given buffer and returns it as JS string that is
23262 // guaranteed to not contain any partial multi-byte characters. Any partial
23263 // character found at the end of the buffer is buffered up, and will be
23264 // returned when calling write again with the remaining bytes.
23266 // Note: Converting a Buffer containing an orphan surrogate to a String
23267 // currently works, but converting a String to a Buffer (via `new Buffer`, or
23268 // Buffer#write) will replace incomplete surrogates with the unicode
23269 // replacement character. See https://codereview.chromium.org/
121173009/ .
23270 StringDecoder.prototype.write = function(buffer) {
23272 // if our last write ended with an incomplete multibyte character
23273 while (this.charLength) {
23274 // determine how many remaining bytes this buffer has to offer for this char
23275 var available = (buffer.length
>= this.charLength - this.charReceived) ?
23276 this.charLength - this.charReceived :
23279 // add the new bytes to the char buffer
23280 buffer.copy(this.charBuffer, this.charReceived,
0, available);
23281 this.charReceived += available;
23283 if (this.charReceived < this.charLength) {
23284 // still not enough chars in this buffer? wait for more ...
23288 // remove bytes belonging to the current character from the buffer
23289 buffer = buffer.slice(available, buffer.length);
23291 // get the character that was split
23292 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
23294 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
23295 var charCode = charStr.charCodeAt(charStr.length -
1);
23296 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
23297 this.charLength += this.surrogateSize;
23301 this.charReceived = this.charLength =
0;
23303 // if there are no more bytes in this buffer, just emit our char
23304 if (buffer.length ===
0) {
23310 // determine and set charLength / charReceived
23311 this.detectIncompleteChar(buffer);
23313 var end = buffer.length;
23314 if (this.charLength) {
23315 // buffer the incomplete character bytes we got
23316 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
23317 end -= this.charReceived;
23320 charStr += buffer.toString(this.encoding,
0, end);
23322 var end = charStr.length -
1;
23323 var charCode = charStr.charCodeAt(end);
23324 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
23325 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
23326 var size = this.surrogateSize;
23327 this.charLength += size;
23328 this.charReceived += size;
23329 this.charBuffer.copy(this.charBuffer, size,
0, size);
23330 buffer.copy(this.charBuffer,
0,
0, size);
23331 return charStr.substring(
0, end);
23334 // or just emit the charStr
23338 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
23339 // the end of the given buffer. If so, it sets this.charLength to the byte
23340 // length that character, and sets this.charReceived to the number of bytes
23341 // that are available for this character.
23342 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
23343 // determine how many bytes we have to check at the end of this buffer
23344 var i = (buffer.length
>=
3) ?
3 : buffer.length;
23346 // Figure out if one of the last i bytes of our buffer announces an
23347 // incomplete char.
23348 for (; i
> 0; i--) {
23349 var c = buffer[buffer.length - i];
23351 // See http://en.wikipedia.org/wiki/UTF-
8#Description
23354 if (i ==
1 && c
>> 5 ==
0x06) {
23355 this.charLength =
2;
23360 if (i <=
2 && c
>> 4 ==
0x0E) {
23361 this.charLength =
3;
23366 if (i <=
3 && c
>> 3 ==
0x1E) {
23367 this.charLength =
4;
23371 this.charReceived = i;
23374 StringDecoder.prototype.end = function(buffer) {
23376 if (buffer && buffer.length)
23377 res = this.write(buffer);
23379 if (this.charReceived) {
23380 var cr = this.charReceived;
23381 var buf = this.charBuffer;
23382 var enc = this.encoding;
23383 res += buf.slice(
0, cr).toString(enc);
23389 function passThroughWrite(buffer) {
23390 return buffer.toString(this.encoding);
23393 function utf16DetectIncompleteChar(buffer) {
23394 this.charReceived = buffer.length %
2;
23395 this.charLength = this.charReceived ?
2 :
0;
23398 function base64DetectIncompleteChar(buffer) {
23399 this.charReceived = buffer.length %
3;
23400 this.charLength = this.charReceived ?
3 :
0;
23403 },{
"buffer":
5}],
27:[function(require,module,exports){
23404 (function (global){
23410 module.exports = deprecate;
23413 * Mark that a method should not be used.
23414 * Returns a modified function which warns once by default.
23416 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
23418 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
23419 * will throw an Error when invoked.
23421 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
23422 * will invoke `console.trace()` instead of `console.error()`.
23424 * @param {Function} fn - the function to deprecate
23425 * @param {String} msg - the string to print to the console when `fn` is invoked
23426 * @returns {Function} a new
"deprecated" version of `fn`
23430 function deprecate (fn, msg) {
23431 if (config('noDeprecation')) {
23435 var warned = false;
23436 function deprecated() {
23438 if (config('throwDeprecation')) {
23439 throw new Error(msg);
23440 } else if (config('traceDeprecation')) {
23441 console.trace(msg);
23447 return fn.apply(this, arguments);
23454 * Checks `localStorage` for boolean values for the given `name`.
23456 * @param {String} name
23457 * @returns {Boolean}
23461 function config (name) {
23462 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
23464 if (!global.localStorage) return false;
23468 var val = global.localStorage[name];
23469 if (null == val) return false;
23470 return String(val).toLowerCase() === 'true';
23473 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23474 },{}],
28:[function(require,module,exports){
23475 arguments[
4][
9][
0].apply(exports,arguments)
23476 },{
"dup":
9}],
29:[function(require,module,exports){
23477 module.exports = function isBuffer(arg) {
23478 return arg && typeof arg === 'object'
23479 && typeof arg.copy === 'function'
23480 && typeof arg.fill === 'function'
23481 && typeof arg.readUInt8 === 'function';
23483 },{}],
30:[function(require,module,exports){
23484 (function (process,global){
23485 // Copyright Joyent, Inc. and other Node contributors.
23487 // Permission is hereby granted, free of charge, to any person obtaining a
23488 // copy of this software and associated documentation files (the
23489 //
"Software"), to deal in the Software without restriction, including
23490 // without limitation the rights to use, copy, modify, merge, publish,
23491 // distribute, sublicense, and/or sell copies of the Software, and to permit
23492 // persons to whom the Software is furnished to do so, subject to the
23493 // following conditions:
23495 // The above copyright notice and this permission notice shall be included
23496 // in all copies or substantial portions of the Software.
23498 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23499 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23500 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23501 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23502 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23503 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23504 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23506 var formatRegExp = /%[sdj%]/g;
23507 exports.format = function(f) {
23508 if (!isString(f)) {
23510 for (var i =
0; i < arguments.length; i++) {
23511 objects.push(inspect(arguments[i]));
23513 return objects.join(' ');
23517 var args = arguments;
23518 var len = args.length;
23519 var str = String(f).replace(formatRegExp, function(x) {
23520 if (x === '%%') return '%';
23521 if (i
>= len) return x;
23523 case '%s': return String(args[i++]);
23524 case '%d': return Number(args[i++]);
23527 return JSON.stringify(args[i++]);
23529 return '[Circular]';
23535 for (var x = args[i]; i < len; x = args[++i]) {
23536 if (isNull(x) || !isObject(x)) {
23539 str += ' ' + inspect(x);
23546 // Mark that a method should not be used.
23547 // Returns a modified function which warns once by default.
23548 // If --no-deprecation is set, then it is a no-op.
23549 exports.deprecate = function(fn, msg) {
23550 // Allow for deprecating things in the process of starting up.
23551 if (isUndefined(global.process)) {
23552 return function() {
23553 return exports.deprecate(fn, msg).apply(this, arguments);
23557 if (process.noDeprecation === true) {
23561 var warned = false;
23562 function deprecated() {
23564 if (process.throwDeprecation) {
23565 throw new Error(msg);
23566 } else if (process.traceDeprecation) {
23567 console.trace(msg);
23569 console.error(msg);
23573 return fn.apply(this, arguments);
23582 exports.debuglog = function(set) {
23583 if (isUndefined(debugEnviron))
23584 debugEnviron = process.env.NODE_DEBUG || '';
23585 set = set.toUpperCase();
23586 if (!debugs[set]) {
23587 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
23588 var pid = process.pid;
23589 debugs[set] = function() {
23590 var msg = exports.format.apply(exports, arguments);
23591 console.error('%s %d: %s', set, pid, msg);
23594 debugs[set] = function() {};
23597 return debugs[set];
23602 * Echos the value of a value. Trys to print the value out
23603 * in the best way possible given the different types.
23605 * @param {Object} obj The object to print out.
23606 * @param {Object} opts Optional options object that alters the output.
23608 /* legacy: obj, showHidden, depth, colors*/
23609 function inspect(obj, opts) {
23613 stylize: stylizeNoColor
23616 if (arguments.length
>=
3) ctx.depth = arguments[
2];
23617 if (arguments.length
>=
4) ctx.colors = arguments[
3];
23618 if (isBoolean(opts)) {
23620 ctx.showHidden = opts;
23622 // got an "options" object
23623 exports._extend(ctx, opts);
23625 // set default options
23626 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
23627 if (isUndefined(ctx.depth)) ctx.depth =
2;
23628 if (isUndefined(ctx.colors)) ctx.colors = false;
23629 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
23630 if (ctx.colors) ctx.stylize = stylizeWithColor;
23631 return formatValue(ctx, obj, ctx.depth);
23633 exports.inspect = inspect;
23636 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
23639 'italic' : [
3,
23],
23640 'underline' : [
4,
24],
23641 'inverse' : [
7,
27],
23642 'white' : [
37,
39],
23644 'black' : [
30,
39],
23647 'green' : [
32,
39],
23648 'magenta' : [
35,
39],
23650 'yellow' : [
33,
39]
23653 // Don't use 'blue' not visible on cmd.exe
23656 'number': 'yellow',
23657 'boolean': 'yellow',
23658 'undefined': 'grey',
23662 // "name": intentionally not styling
23667 function stylizeWithColor(str, styleType) {
23668 var style = inspect.styles[styleType];
23671 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
23672 '\u001b[' + inspect.colors[style][
1] + 'm';
23679 function stylizeNoColor(str, styleType) {
23684 function arrayToHash(array) {
23687 array.forEach(function(val, idx) {
23695 function formatValue(ctx, value, recurseTimes) {
23696 // Provide a hook for user-specified inspect functions.
23697 // Check that value is an object with an inspect function on it
23698 if (ctx.customInspect &&
23700 isFunction(value.inspect) &&
23701 // Filter out the util module, it's inspect function is special
23702 value.inspect !== exports.inspect &&
23703 // Also filter out any prototype objects using the circular check.
23704 !(value.constructor && value.constructor.prototype === value)) {
23705 var ret = value.inspect(recurseTimes, ctx);
23706 if (!isString(ret)) {
23707 ret = formatValue(ctx, ret, recurseTimes);
23712 // Primitive types cannot have properties
23713 var primitive = formatPrimitive(ctx, value);
23718 // Look up the keys of the object.
23719 var keys = Object.keys(value);
23720 var visibleKeys = arrayToHash(keys);
23722 if (ctx.showHidden) {
23723 keys = Object.getOwnPropertyNames(value);
23726 // IE doesn't make error fields non-enumerable
23727 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
23729 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
23730 return formatError(value);
23733 // Some type of object without properties can be shortcutted.
23734 if (keys.length ===
0) {
23735 if (isFunction(value)) {
23736 var name = value.name ? ': ' + value.name : '';
23737 return ctx.stylize('[Function' + name + ']', 'special');
23739 if (isRegExp(value)) {
23740 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23742 if (isDate(value)) {
23743 return ctx.stylize(Date.prototype.toString.call(value), 'date');
23745 if (isError(value)) {
23746 return formatError(value);
23750 var base = '', array = false, braces = ['{', '}'];
23752 // Make Array say that they are Array
23753 if (isArray(value)) {
23755 braces = ['[', ']'];
23758 // Make functions say that they are functions
23759 if (isFunction(value)) {
23760 var n = value.name ? ': ' + value.name : '';
23761 base = ' [Function' + n + ']';
23764 // Make RegExps say that they are RegExps
23765 if (isRegExp(value)) {
23766 base = ' ' + RegExp.prototype.toString.call(value);
23769 // Make dates with properties first say the date
23770 if (isDate(value)) {
23771 base = ' ' + Date.prototype.toUTCString.call(value);
23774 // Make error with message first say the error
23775 if (isError(value)) {
23776 base = ' ' + formatError(value);
23779 if (keys.length ===
0 && (!array || value.length ==
0)) {
23780 return braces[
0] + base + braces[
1];
23783 if (recurseTimes <
0) {
23784 if (isRegExp(value)) {
23785 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23787 return ctx.stylize('[Object]', 'special');
23791 ctx.seen.push(value);
23795 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
23797 output = keys.map(function(key) {
23798 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
23804 return reduceToSingleString(output, base, braces);
23808 function formatPrimitive(ctx, value) {
23809 if (isUndefined(value))
23810 return ctx.stylize('undefined', 'undefined');
23811 if (isString(value)) {
23812 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
23813 .replace(/'/g, "\\'")
23814 .replace(/\\"/g, '"') + '\'';
23815 return ctx.stylize(simple, 'string');
23817 if (isNumber(value))
23818 return ctx.stylize('' + value, 'number');
23819 if (isBoolean(value))
23820 return ctx.stylize('' + value, 'boolean');
23821 // For some reason typeof null is "object", so special case here.
23823 return ctx.stylize('null', 'null');
23827 function formatError(value) {
23828 return '[' + Error.prototype.toString.call(value) + ']';
23832 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
23834 for (var i =
0, l = value.length; i < l; ++i) {
23835 if (hasOwnProperty(value, String(i))) {
23836 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23842 keys.forEach(function(key) {
23843 if (!key.match(/^\d+$/)) {
23844 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23852 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
23853 var name, str, desc;
23854 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
23857 str = ctx.stylize('[Getter/Setter]', 'special');
23859 str = ctx.stylize('[Getter]', 'special');
23863 str = ctx.stylize('[Setter]', 'special');
23866 if (!hasOwnProperty(visibleKeys, key)) {
23867 name = '[' + key + ']';
23870 if (ctx.seen.indexOf(desc.value) <
0) {
23871 if (isNull(recurseTimes)) {
23872 str = formatValue(ctx, desc.value, null);
23874 str = formatValue(ctx, desc.value, recurseTimes -
1);
23876 if (str.indexOf('\n')
> -
1) {
23878 str = str.split('\n').map(function(line) {
23880 }).join('\n').substr(
2);
23882 str = '\n' + str.split('\n').map(function(line) {
23888 str = ctx.stylize('[Circular]', 'special');
23891 if (isUndefined(name)) {
23892 if (array && key.match(/^\d+$/)) {
23895 name = JSON.stringify('' + key);
23896 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
23897 name = name.substr(
1, name.length -
2);
23898 name = ctx.stylize(name, 'name');
23900 name = name.replace(/'/g, "\\'")
23901 .replace(/\\"/g, '"')
23902 .replace(/(^"|"$)/g, "'");
23903 name = ctx.stylize(name, 'string');
23907 return name + ': ' + str;
23911 function reduceToSingleString(output, base, braces) {
23912 var numLinesEst =
0;
23913 var length = output.reduce(function(prev, cur) {
23915 if (cur.indexOf('\n')
>=
0) numLinesEst++;
23916 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
23921 (base === '' ? '' : base + '\n ') +
23923 output.join(',\n ') +
23928 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
23932 // NOTE: These type checking functions intentionally don't use `instanceof`
23933 // because it is fragile and can be easily faked with `Object.create()`.
23934 function isArray(ar) {
23935 return Array.isArray(ar);
23937 exports.isArray = isArray;
23939 function isBoolean(arg) {
23940 return typeof arg === 'boolean';
23942 exports.isBoolean = isBoolean;
23944 function isNull(arg) {
23945 return arg === null;
23947 exports.isNull = isNull;
23949 function isNullOrUndefined(arg) {
23950 return arg == null;
23952 exports.isNullOrUndefined = isNullOrUndefined;
23954 function isNumber(arg) {
23955 return typeof arg === 'number';
23957 exports.isNumber = isNumber;
23959 function isString(arg) {
23960 return typeof arg === 'string';
23962 exports.isString = isString;
23964 function isSymbol(arg) {
23965 return typeof arg === 'symbol';
23967 exports.isSymbol = isSymbol;
23969 function isUndefined(arg) {
23970 return arg === void
0;
23972 exports.isUndefined = isUndefined;
23974 function isRegExp(re) {
23975 return isObject(re) && objectToString(re) === '[object RegExp]';
23977 exports.isRegExp = isRegExp;
23979 function isObject(arg) {
23980 return typeof arg === 'object' && arg !== null;
23982 exports.isObject = isObject;
23984 function isDate(d) {
23985 return isObject(d) && objectToString(d) === '[object Date]';
23987 exports.isDate = isDate;
23989 function isError(e) {
23990 return isObject(e) &&
23991 (objectToString(e) === '[object Error]' || e instanceof Error);
23993 exports.isError = isError;
23995 function isFunction(arg) {
23996 return typeof arg === 'function';
23998 exports.isFunction = isFunction;
24000 function isPrimitive(arg) {
24001 return arg === null ||
24002 typeof arg === 'boolean' ||
24003 typeof arg === 'number' ||
24004 typeof arg === 'string' ||
24005 typeof arg === 'symbol' || // ES6 symbol
24006 typeof arg === 'undefined';
24008 exports.isPrimitive = isPrimitive;
24010 exports.isBuffer = require('./support/isBuffer');
24012 function objectToString(o) {
24013 return Object.prototype.toString.call(o);
24018 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
24022 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
24023 'Oct', 'Nov', 'Dec'];
24026 function timestamp() {
24027 var d = new Date();
24028 var time = [pad(d.getHours()),
24029 pad(d.getMinutes()),
24030 pad(d.getSeconds())].join(':');
24031 return [d.getDate(), months[d.getMonth()], time].join(' ');
24035 // log is just a thin wrapper to console.log that prepends a timestamp
24036 exports.log = function() {
24037 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
24042 * Inherit the prototype methods from one constructor into another.
24044 * The Function.prototype.inherits from lang.js rewritten as a standalone
24045 * function (not on Function.prototype). NOTE: If this file is to be loaded
24046 * during bootstrapping this function needs to be rewritten using some native
24047 * functions as prototype setup using normal JavaScript does not work as
24048 * expected during bootstrapping (see mirror.js in r114903).
24050 * @param {function} ctor Constructor function which needs to inherit the
24052 * @param {function} superCtor Constructor function to inherit prototype from.
24054 exports.inherits = require('inherits');
24056 exports._extend = function(origin, add) {
24057 // Don't do anything if add isn't an object
24058 if (!add || !isObject(add)) return origin;
24060 var keys = Object.keys(add);
24061 var i = keys.length;
24063 origin[keys[i]] = add[keys[i]];
24068 function hasOwnProperty(obj, prop) {
24069 return Object.prototype.hasOwnProperty.call(obj, prop);
24072 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
24073 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
24074 (function (Buffer){
24075 const createKeccakHash = require('keccak')
24076 const secp256k1 = require('secp256k1')
24077 const assert = require('assert')
24078 const rlp = require('rlp')
24079 const BN = require('bn.js')
24080 const createHash = require('create-hash')
24081 Object.assign(exports, require('ethjs-util'))
24084 * the max integer that this VM can handle (a ```BN```)
24085 * @var {BN} MAX_INTEGER
24087 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
24090 *
2^
256 (a ```BN```)
24091 * @var {BN} TWO_POW256
24093 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
24096 * SHA3-
256 hash of null (a ```String```)
24097 * @var {String} SHA3_NULL_S
24099 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
24102 * SHA3-
256 hash of null (a ```Buffer```)
24103 * @var {Buffer} SHA3_NULL
24105 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
24108 * SHA3-
256 of an RLP of an empty array (a ```String```)
24109 * @var {String} SHA3_RLP_ARRAY_S
24111 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
24114 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
24115 * @var {Buffer} SHA3_RLP_ARRAY
24117 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
24120 * SHA3-
256 hash of the RLP of null (a ```String```)
24121 * @var {String} SHA3_RLP_S
24123 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
24126 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
24127 * @var {Buffer} SHA3_RLP
24129 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
24132 * [`BN`](https://github.com/indutny/bn.js)
24138 * [`rlp`](https://github.com/ethereumjs/rlp)
24144 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
24147 exports.secp256k1 = secp256k1
24150 * Returns a buffer filled with
0s
24152 * @param {Number} bytes the number of bytes the buffer should be
24155 exports.zeros = function (bytes) {
24156 return Buffer.allocUnsafe(bytes).fill(
0)
24160 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
24161 * Or it truncates the beginning if it exceeds.
24162 * @method lsetLength
24163 * @param {Buffer|Array} msg the value to pad
24164 * @param {Number} length the number of bytes the output should be
24165 * @param {Boolean} [right=false] whether to start padding form the left or right
24166 * @return {Buffer|Array}
24168 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
24169 var buf = exports.zeros(length)
24170 msg = exports.toBuffer(msg)
24172 if (msg.length < length) {
24176 return msg.slice(
0, length)
24178 if (msg.length < length) {
24179 msg.copy(buf, length - msg.length)
24182 return msg.slice(-length)
24187 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
24188 * Or it truncates the beginning if it exceeds.
24189 * @param {Buffer|Array} msg the value to pad
24190 * @param {Number} length the number of bytes the output should be
24191 * @return {Buffer|Array}
24193 exports.setLengthRight = function (msg, length) {
24194 return exports.setLength(msg, length, true)
24198 * Trims leading zeros from a `Buffer` or an `Array`
24199 * @param {Buffer|Array|String} a
24200 * @return {Buffer|Array|String}
24202 exports.unpad = exports.stripZeros = function (a) {
24203 a = exports.stripHexPrefix(a)
24205 while (a.length
> 0 && first.toString() === '
0') {
24212 * 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.
24213 * @param {*} v the value
24215 exports.toBuffer = function (v) {
24216 if (!Buffer.isBuffer(v)) {
24217 if (Array.isArray(v)) {
24219 } else if (typeof v === 'string') {
24220 if (exports.isHexPrefixed(v)) {
24221 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
24225 } else if (typeof v === 'number') {
24226 v = exports.intToBuffer(v)
24227 } else if (v === null || v === undefined) {
24228 v = Buffer.allocUnsafe(
0)
24229 } else if (v.toArray) {
24230 // converts a BN to a Buffer
24231 v = Buffer.from(v.toArray())
24233 throw new Error('invalid type')
24240 * Converts a `Buffer` to a `Number`
24241 * @param {Buffer} buf
24243 * @throws If the input number exceeds
53 bits.
24245 exports.bufferToInt = function (buf) {
24246 return new BN(exports.toBuffer(buf)).toNumber()
24250 * Converts a `Buffer` into a hex `String`
24251 * @param {Buffer} buf
24254 exports.bufferToHex = function (buf) {
24255 buf = exports.toBuffer(buf)
24256 return '
0x' + buf.toString('hex')
24260 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
24261 * @param {Buffer} num
24264 exports.fromSigned = function (num) {
24265 return new BN(num).fromTwos(
256)
24269 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
24273 exports.toUnsigned = function (num) {
24274 return Buffer.from(num.toTwos(
256).toArray())
24278 * Creates SHA-
3 hash of the input
24279 * @param {Buffer|Array|String|Number} a the input data
24280 * @param {Number} [bits=
256] the SHA width
24283 exports.sha3 = function (a, bits) {
24284 a = exports.toBuffer(a)
24285 if (!bits) bits =
256
24287 return createKeccakHash('keccak' + bits).update(a).digest()
24291 * Creates SHA256 hash of the input
24292 * @param {Buffer|Array|String|Number} a the input data
24295 exports.sha256 = function (a) {
24296 a = exports.toBuffer(a)
24297 return createHash('sha256').update(a).digest()
24301 * Creates RIPEMD160 hash of the input
24302 * @param {Buffer|Array|String|Number} a the input data
24303 * @param {Boolean} padded whether it should be padded to
256 bits or not
24306 exports.ripemd160 = function (a, padded) {
24307 a = exports.toBuffer(a)
24308 var hash = createHash('rmd160').update(a).digest()
24309 if (padded === true) {
24310 return exports.setLength(hash,
32)
24317 * Creates SHA-
3 hash of the RLP encoded version of the input
24318 * @param {Buffer|Array|String|Number} a the input data
24321 exports.rlphash = function (a) {
24322 return exports.sha3(rlp.encode(a))
24326 * Checks if the private key satisfies the rules of the curve secp256k1.
24327 * @param {Buffer} privateKey
24328 * @return {Boolean}
24330 exports.isValidPrivate = function (privateKey) {
24331 return secp256k1.privateKeyVerify(privateKey)
24335 * Checks if the public key satisfies the rules of the curve secp256k1
24336 * and the requirements of Ethereum.
24337 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
24338 * @param {Boolean} [sanitize=false] Accept public keys in other formats
24339 * @return {Boolean}
24341 exports.isValidPublic = function (publicKey, sanitize) {
24342 if (publicKey.length ===
64) {
24343 // Convert to SEC1 for secp256k1
24344 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
24351 return secp256k1.publicKeyVerify(publicKey)
24355 * Returns the ethereum address of a given public key.
24356 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
24357 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
24358 * @param {Boolean} [sanitize=false] Accept public keys in other formats
24361 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
24362 pubKey = exports.toBuffer(pubKey)
24363 if (sanitize && (pubKey.length !==
64)) {
24364 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
24366 assert(pubKey.length ===
64)
24367 // Only take the lower
160bits of the hash
24368 return exports.sha3(pubKey).slice(-
20)
24372 * Returns the ethereum public key of a given private key
24373 * @param {Buffer} privateKey A private key must be
256 bits wide
24376 var privateToPublic = exports.privateToPublic = function (privateKey) {
24377 privateKey = exports.toBuffer(privateKey)
24378 // skip the type flag and use the X, Y points
24379 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
24383 * Converts a public key to the Ethereum format.
24384 * @param {Buffer} publicKey
24387 exports.importPublic = function (publicKey) {
24388 publicKey = exports.toBuffer(publicKey)
24389 if (publicKey.length !==
64) {
24390 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
24397 * @param {Buffer} msgHash
24398 * @param {Buffer} privateKey
24401 exports.ecsign = function (msgHash, privateKey) {
24402 var sig = secp256k1.sign(msgHash, privateKey)
24405 ret.r = sig.signature.slice(
0,
32)
24406 ret.s = sig.signature.slice(
32,
64)
24407 ret.v = sig.recovery +
27
24412 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
24413 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
24414 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
24415 * used to produce the signature.
24417 * @returns {Buffer} hash
24419 exports.hashPersonalMessage = function (message) {
24420 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
24421 return exports.sha3(Buffer.concat([prefix, message]))
24425 * ECDSA public key recovery from signature
24426 * @param {Buffer} msgHash
24427 * @param {Number} v
24428 * @param {Buffer} r
24429 * @param {Buffer} s
24430 * @return {Buffer} publicKey
24432 exports.ecrecover = function (msgHash, v, r, s) {
24433 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
24434 var recovery = v -
27
24435 if (recovery !==
0 && recovery !==
1) {
24436 throw new Error('Invalid signature v value')
24438 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
24439 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
24443 * Convert signature parameters into the format of `eth_sign` RPC method
24444 * @param {Number} v
24445 * @param {Buffer} r
24446 * @param {Buffer} s
24447 * @return {String} sig
24449 exports.toRpcSig = function (v, r, s) {
24450 // NOTE: with potential introduction of chainId this might need to be updated
24451 if (v !==
27 && v !==
28) {
24452 throw new Error('Invalid recovery id')
24455 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
24456 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
24457 return exports.bufferToHex(Buffer.concat([
24458 exports.setLengthLeft(r,
32),
24459 exports.setLengthLeft(s,
32),
24460 exports.toBuffer(v -
27)
24465 * Convert signature format of the `eth_sign` RPC method to signature parameters
24466 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
24467 * @param {String} sig
24470 exports.fromRpcSig = function (sig) {
24471 sig = exports.toBuffer(sig)
24473 // NOTE: with potential introduction of chainId this might need to be updated
24474 if (sig.length !==
65) {
24475 throw new Error('Invalid signature length')
24479 // support both versions of `eth_sign` responses
24486 r: sig.slice(
0,
32),
24487 s: sig.slice(
32,
64)
24492 * Returns the ethereum address of a given private key
24493 * @param {Buffer} privateKey A private key must be
256 bits wide
24496 exports.privateToAddress = function (privateKey) {
24497 return exports.publicToAddress(privateToPublic(privateKey))
24501 * Checks if the address is a valid. Accepts checksummed addresses too
24502 * @param {String} address
24503 * @return {Boolean}
24505 exports.isValidAddress = function (address) {
24506 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
24510 * Returns a checksummed address
24511 * @param {String} address
24514 exports.toChecksumAddress = function (address) {
24515 address = exports.stripHexPrefix(address).toLowerCase()
24516 var hash = exports.sha3(address).toString('hex')
24519 for (var i =
0; i < address.length; i++) {
24520 if (parseInt(hash[i],
16)
>=
8) {
24521 ret += address[i].toUpperCase()
24531 * Checks if the address is a valid checksummed address
24532 * @param {Buffer} address
24533 * @return {Boolean}
24535 exports.isValidChecksumAddress = function (address) {
24536 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
24540 * Generates an address of a newly created contract
24541 * @param {Buffer} from the address which is creating this new address
24542 * @param {Buffer} nonce the nonce of the from account
24545 exports.generateAddress = function (from, nonce) {
24546 from = exports.toBuffer(from)
24547 nonce = new BN(nonce)
24549 if (nonce.isZero()) {
24550 // in RLP we want to encode null in the case of zero nonce
24551 // read the RLP documentation for an answer if you dare
24554 nonce = Buffer.from(nonce.toArray())
24557 // Only take the lower
160bits of the hash
24558 return exports.rlphash([from, nonce]).slice(-
20)
24562 * Returns true if the supplied address belongs to a precompiled account
24563 * @param {Buffer|String} address
24564 * @return {Boolean}
24566 exports.isPrecompiled = function (address) {
24567 var a = exports.unpad(address)
24568 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
24572 * Adds
"0x" to a given `String` if it does not already start with
"0x"
24573 * @param {String} str
24576 exports.addHexPrefix = function (str) {
24577 if (typeof str !== 'string') {
24581 return exports.isHexPrefixed(str) ? str : '
0x' + str
24585 * Validate ECDSA signature
24586 * @method isValidSignature
24587 * @param {Buffer} v
24588 * @param {Buffer} r
24589 * @param {Buffer} s
24590 * @param {Boolean} [homestead=true]
24591 * @return {Boolean}
24594 exports.isValidSignature = function (v, r, s, homestead) {
24595 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
24596 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
24598 if (r.length !==
32 || s.length !==
32) {
24602 if (v !==
27 && v !==
28) {
24609 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
24613 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
24621 * Converts a `Buffer` or `Array` to JSON
24622 * @param {Buffer|Array} ba
24623 * @return {Array|String|null}
24625 exports.baToJSON = function (ba) {
24626 if (Buffer.isBuffer(ba)) {
24627 return '
0x' + ba.toString('hex')
24628 } else if (ba instanceof Array) {
24630 for (var i =
0; i < ba.length; i++) {
24631 array.push(exports.baToJSON(ba[i]))
24638 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
24639 * @param {Object} self the `Object` to define properties on
24640 * @param {Array} fields an array fields to define. Fields can contain:
24641 * * `name` - the name of the properties
24642 * * `length` - the number of bytes the field can have
24643 * * `allowLess` - if the field can be less than the length
24645 * @param {*} data data to be validated against the definitions
24647 exports.defineProperties = function (self, fields, data) {
24651 // attach the `toJSON`
24652 self.toJSON = function (label) {
24655 self._fields.forEach(function (field) {
24656 obj[field] = '
0x' + self[field].toString('hex')
24660 return exports.baToJSON(this.raw)
24663 self.serialize = function serialize () {
24664 return rlp.encode(self.raw)
24667 fields.forEach(function (field, i) {
24668 self._fields.push(field.name)
24669 function getter () {
24672 function setter (v) {
24673 v = exports.toBuffer(v)
24675 if (v.toString('hex') === '
00' && !field.allowZero) {
24676 v = Buffer.allocUnsafe(
0)
24679 if (field.allowLess && field.length) {
24680 v = exports.stripZeros(v)
24681 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
24682 } else if (!(field.allowZero && v.length ===
0) && field.length) {
24683 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
24689 Object.defineProperty(self, field.name, {
24691 configurable: true,
24696 if (field.default) {
24697 self[field.name] = field.default
24702 Object.defineProperty(self, field.alias, {
24704 configurable: true,
24711 // if the constuctor is passed data
24713 if (typeof data === 'string') {
24714 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
24717 if (Buffer.isBuffer(data)) {
24718 data = rlp.decode(data)
24721 if (Array.isArray(data)) {
24722 if (data.length
> self._fields.length) {
24723 throw (new Error('wrong number of fields in data'))
24726 // make sure all the items are buffers
24727 data.forEach(function (d, i) {
24728 self[self._fields[i]] = exports.toBuffer(d)
24730 } else if (typeof data === 'object') {
24731 const keys = Object.keys(data)
24732 fields.forEach(function (field) {
24733 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
24734 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
24737 throw new Error('invalid data')
24742 }).call(this,require("buffer").Buffer)
24743 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
24744 (function (Buffer){
24745 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
24746 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24747 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
24749 function check (buffer) {
24750 if (buffer.length <
8) return false
24751 if (buffer.length
> 72) return false
24752 if (buffer[
0] !==
0x30) return false
24753 if (buffer[
1] !== buffer.length -
2) return false
24754 if (buffer[
2] !==
0x02) return false
24756 var lenR = buffer[
3]
24757 if (lenR ===
0) return false
24758 if (
5 + lenR
>= buffer.length) return false
24759 if (buffer[
4 + lenR] !==
0x02) return false
24761 var lenS = buffer[
5 + lenR]
24762 if (lenS ===
0) return false
24763 if ((
6 + lenR + lenS) !== buffer.length) return false
24765 if (buffer[
4] &
0x80) return false
24766 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
24768 if (buffer[lenR +
6] &
0x80) return false
24769 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
24773 function decode (buffer) {
24774 if (buffer.length <
8) throw new Error('DER sequence length is too short')
24775 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
24776 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
24777 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
24778 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
24780 var lenR = buffer[
3]
24781 if (lenR ===
0) throw new Error('R length is zero')
24782 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
24783 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
24785 var lenS = buffer[
5 + lenR]
24786 if (lenS ===
0) throw new Error('S length is zero')
24787 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
24789 if (buffer[
4] &
0x80) throw new Error('R value is negative')
24790 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
24792 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
24793 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
24795 // non-BIP66 - extract R, S values
24797 r: buffer.slice(
4,
4 + lenR),
24798 s: buffer.slice(
6 + lenR)
24803 * Expects r and s to be positive DER integers.
24805 * The DER format uses the most significant bit as a sign bit (&
0x80).
24806 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
24821 *
62300 =
> 0x00f35c
24822 * -
62300 =
> 0xff0ca4
24824 function encode (r, s) {
24825 var lenR = r.length
24826 var lenS = s.length
24827 if (lenR ===
0) throw new Error('R length is zero')
24828 if (lenS ===
0) throw new Error('S length is zero')
24829 if (lenR
> 33) throw new Error('R length is too long')
24830 if (lenS
> 33) throw new Error('S length is too long')
24831 if (r[
0] &
0x80) throw new Error('R value is negative')
24832 if (s[
0] &
0x80) throw new Error('S value is negative')
24833 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
24834 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
24836 var signature = new Buffer(
6 + lenR + lenS)
24838 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24839 signature[
0] =
0x30
24840 signature[
1] = signature.length -
2
24841 signature[
2] =
0x02
24842 signature[
3] = r.length
24843 r.copy(signature,
4)
24844 signature[
4 + lenR] =
0x02
24845 signature[
5 + lenR] = s.length
24846 s.copy(signature,
6 + lenR)
24857 }).call(this,require(
"buffer").Buffer)
24858 },{
"buffer":
5}],
33:[function(require,module,exports){
24859 (function (module, exports) {
24863 function assert (val, msg) {
24864 if (!val) throw new Error(msg || 'Assertion failed');
24867 // Could use `inherits` module, but don't want to move from single file
24868 // architecture yet.
24869 function inherits (ctor, superCtor) {
24870 ctor.super_ = superCtor;
24871 var TempCtor = function () {};
24872 TempCtor.prototype = superCtor.prototype;
24873 ctor.prototype = new TempCtor();
24874 ctor.prototype.constructor = ctor;
24879 function BN (number, base, endian) {
24880 if (BN.isBN(number)) {
24888 // Reduction context
24891 if (number !== null) {
24892 if (base === 'le' || base === 'be') {
24897 this._init(number ||
0, base ||
10, endian || 'be');
24900 if (typeof module === 'object') {
24901 module.exports = BN;
24911 Buffer = require('buf' + 'fer').Buffer;
24915 BN.isBN = function isBN (num) {
24916 if (num instanceof BN) {
24920 return num !== null && typeof num === 'object' &&
24921 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
24924 BN.max = function max (left, right) {
24925 if (left.cmp(right)
> 0) return left;
24929 BN.min = function min (left, right) {
24930 if (left.cmp(right) <
0) return left;
24934 BN.prototype._init = function init (number, base, endian) {
24935 if (typeof number === 'number') {
24936 return this._initNumber(number, base, endian);
24939 if (typeof number === 'object') {
24940 return this._initArray(number, base, endian);
24943 if (base === 'hex') {
24946 assert(base === (base |
0) && base
>=
2 && base <=
36);
24948 number = number.toString().replace(/\s+/g, '');
24950 if (number[
0] === '-') {
24955 this._parseHex(number, start);
24957 this._parseBase(number, base, start);
24960 if (number[
0] === '-') {
24966 if (endian !== 'le') return;
24968 this._initArray(this.toArray(), base, endian);
24971 BN.prototype._initNumber = function _initNumber (number, base, endian) {
24976 if (number <
0x4000000) {
24977 this.words = [ number &
0x3ffffff ];
24979 } else if (number <
0x10000000000000) {
24981 number &
0x3ffffff,
24982 (number /
0x4000000) &
0x3ffffff
24986 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
24988 number &
0x3ffffff,
24989 (number /
0x4000000) &
0x3ffffff,
24995 if (endian !== 'le') return;
24997 // Reverse the bytes
24998 this._initArray(this.toArray(), base, endian);
25001 BN.prototype._initArray = function _initArray (number, base, endian) {
25002 // Perhaps a Uint8Array
25003 assert(typeof number.length === 'number');
25004 if (number.length <=
0) {
25005 this.words = [
0 ];
25010 this.length = Math.ceil(number.length /
3);
25011 this.words = new Array(this.length);
25012 for (var i =
0; i < this.length; i++) {
25018 if (endian === 'be') {
25019 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
25020 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
25021 this.words[j] |= (w << off) &
0x3ffffff;
25022 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
25029 } else if (endian === 'le') {
25030 for (i =
0, j =
0; i < number.length; i +=
3) {
25031 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
25032 this.words[j] |= (w << off) &
0x3ffffff;
25033 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
25041 return this.strip();
25044 function parseHex (str, start, end) {
25046 var len = Math.min(str.length, end);
25047 for (var i = start; i < len; i++) {
25048 var c = str.charCodeAt(i) -
48;
25053 if (c
>=
49 && c <=
54) {
25057 } else if (c
>=
17 && c <=
22) {
25068 BN.prototype._parseHex = function _parseHex (number, start) {
25069 // Create possibly bigger array to ensure that it fits the number
25070 this.length = Math.ceil((number.length - start) /
6);
25071 this.words = new Array(this.length);
25072 for (var i =
0; i < this.length; i++) {
25077 // Scan
24-bit chunks and add them to the number
25079 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
25080 w = parseHex(number, i, i +
6);
25081 this.words[j] |= (w << off) &
0x3ffffff;
25082 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
25083 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
25090 if (i +
6 !== start) {
25091 w = parseHex(number, start, i +
6);
25092 this.words[j] |= (w << off) &
0x3ffffff;
25093 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
25098 function parseBase (str, start, end, mul) {
25100 var len = Math.min(str.length, end);
25101 for (var i = start; i < len; i++) {
25102 var c = str.charCodeAt(i) -
48;
25111 } else if (c
>=
17) {
25122 BN.prototype._parseBase = function _parseBase (number, base, start) {
25123 // Initialize as zero
25124 this.words = [
0 ];
25127 // Find length of limb in base
25128 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
25132 limbPow = (limbPow / base) |
0;
25134 var total = number.length - start;
25135 var mod = total % limbLen;
25136 var end = Math.min(total, total - mod) + start;
25139 for (var i = start; i < end; i += limbLen) {
25140 word = parseBase(number, i, i + limbLen, base);
25142 this.imuln(limbPow);
25143 if (this.words[
0] + word <
0x4000000) {
25144 this.words[
0] += word;
25152 word = parseBase(number, i, number.length, base);
25154 for (i =
0; i < mod; i++) {
25159 if (this.words[
0] + word <
0x4000000) {
25160 this.words[
0] += word;
25167 BN.prototype.copy = function copy (dest) {
25168 dest.words = new Array(this.length);
25169 for (var i =
0; i < this.length; i++) {
25170 dest.words[i] = this.words[i];
25172 dest.length = this.length;
25173 dest.negative = this.negative;
25174 dest.red = this.red;
25177 BN.prototype.clone = function clone () {
25178 var r = new BN(null);
25183 BN.prototype._expand = function _expand (size) {
25184 while (this.length < size) {
25185 this.words[this.length++] =
0;
25190 // Remove leading `
0` from `this`
25191 BN.prototype.strip = function strip () {
25192 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
25195 return this._normSign();
25198 BN.prototype._normSign = function _normSign () {
25200 if (this.length ===
1 && this.words[
0] ===
0) {
25206 BN.prototype.inspect = function inspect () {
25207 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
25213 var groupSizes = [];
25214 var groupBases = [];
25218 while (++i < BN.wordSize) {
25227 while (++base <
36 +
1) {
25230 while (groupBase < (
1 << BN.wordSize) / base) {
25234 groupSizes[base] = groupSize;
25235 groupBases[base] = groupBase;
25257 '
0000000000000000',
25258 '
00000000000000000',
25259 '
000000000000000000',
25260 '
0000000000000000000',
25261 '
00000000000000000000',
25262 '
000000000000000000000',
25263 '
0000000000000000000000',
25264 '
00000000000000000000000',
25265 '
000000000000000000000000',
25266 '
0000000000000000000000000'
25271 25,
16,
12,
11,
10,
9,
8,
25272 8,
7,
7,
7,
7,
6,
6,
25273 6,
6,
6,
6,
6,
5,
5,
25274 5,
5,
5,
5,
5,
5,
5,
25275 5,
5,
5,
5,
5,
5,
5
25280 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
25281 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
25282 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
25283 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
25284 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
25287 BN.prototype.toString = function toString (base, padding) {
25289 padding = padding |
0 ||
1;
25292 if (base ===
16 || base === 'hex') {
25296 for (var i =
0; i < this.length; i++) {
25297 var w = this.words[i];
25298 var word = (((w << off) | carry) &
0xffffff).toString(
16);
25299 carry = (w
>>> (
24 - off)) &
0xffffff;
25300 if (carry !==
0 || i !== this.length -
1) {
25301 out = zeros[
6 - word.length] + word + out;
25312 out = carry.toString(
16) + out;
25314 while (out.length % padding !==
0) {
25317 if (this.negative !==
0) {
25323 if (base === (base |
0) && base
>=
2 && base <=
36) {
25324 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
25325 var groupSize = groupSizes[base];
25326 // var groupBase = Math.pow(base, groupSize);
25327 var groupBase = groupBases[base];
25329 var c = this.clone();
25331 while (!c.isZero()) {
25332 var r = c.modn(groupBase).toString(base);
25333 c = c.idivn(groupBase);
25336 out = zeros[groupSize - r.length] + r + out;
25341 if (this.isZero()) {
25344 while (out.length % padding !==
0) {
25347 if (this.negative !==
0) {
25353 assert(false, 'Base should be between
2 and
36');
25356 BN.prototype.toNumber = function toNumber () {
25357 var ret = this.words[
0];
25358 if (this.length ===
2) {
25359 ret += this.words[
1] *
0x4000000;
25360 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
25361 // NOTE: at this stage it is known that the top bit is set
25362 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
25363 } else if (this.length
> 2) {
25364 assert(false, 'Number can only safely store up to
53 bits');
25366 return (this.negative !==
0) ? -ret : ret;
25369 BN.prototype.toJSON = function toJSON () {
25370 return this.toString(
16);
25373 BN.prototype.toBuffer = function toBuffer (endian, length) {
25374 assert(typeof Buffer !== 'undefined');
25375 return this.toArrayLike(Buffer, endian, length);
25378 BN.prototype.toArray = function toArray (endian, length) {
25379 return this.toArrayLike(Array, endian, length);
25382 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
25383 var byteLength = this.byteLength();
25384 var reqLength = length || Math.max(
1, byteLength);
25385 assert(byteLength <= reqLength, 'byte array longer than desired length');
25386 assert(reqLength
> 0, 'Requested array length <=
0');
25389 var littleEndian = endian === 'le';
25390 var res = new ArrayType(reqLength);
25393 var q = this.clone();
25394 if (!littleEndian) {
25395 // Assume big-endian
25396 for (i =
0; i < reqLength - byteLength; i++) {
25400 for (i =
0; !q.isZero(); i++) {
25404 res[reqLength - i -
1] = b;
25407 for (i =
0; !q.isZero(); i++) {
25414 for (; i < reqLength; i++) {
25423 BN.prototype._countBits = function _countBits (w) {
25424 return
32 - Math.clz32(w);
25427 BN.prototype._countBits = function _countBits (w) {
25450 BN.prototype._zeroBits = function _zeroBits (w) {
25452 if (w ===
0) return
26;
25456 if ((t &
0x1fff) ===
0) {
25460 if ((t &
0x7f) ===
0) {
25464 if ((t &
0xf) ===
0) {
25468 if ((t &
0x3) ===
0) {
25472 if ((t &
0x1) ===
0) {
25478 // Return number of used bits in a BN
25479 BN.prototype.bitLength = function bitLength () {
25480 var w = this.words[this.length -
1];
25481 var hi = this._countBits(w);
25482 return (this.length -
1) *
26 + hi;
25485 function toBitArray (num) {
25486 var w = new Array(num.bitLength());
25488 for (var bit =
0; bit < w.length; bit++) {
25489 var off = (bit /
26) |
0;
25490 var wbit = bit %
26;
25492 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
25498 // Number of trailing zero bits
25499 BN.prototype.zeroBits = function zeroBits () {
25500 if (this.isZero()) return
0;
25503 for (var i =
0; i < this.length; i++) {
25504 var b = this._zeroBits(this.words[i]);
25506 if (b !==
26) break;
25511 BN.prototype.byteLength = function byteLength () {
25512 return Math.ceil(this.bitLength() /
8);
25515 BN.prototype.toTwos = function toTwos (width) {
25516 if (this.negative !==
0) {
25517 return this.abs().inotn(width).iaddn(
1);
25519 return this.clone();
25522 BN.prototype.fromTwos = function fromTwos (width) {
25523 if (this.testn(width -
1)) {
25524 return this.notn(width).iaddn(
1).ineg();
25526 return this.clone();
25529 BN.prototype.isNeg = function isNeg () {
25530 return this.negative !==
0;
25533 // Return negative clone of `this`
25534 BN.prototype.neg = function neg () {
25535 return this.clone().ineg();
25538 BN.prototype.ineg = function ineg () {
25539 if (!this.isZero()) {
25540 this.negative ^=
1;
25546 // Or `num` with `this` in-place
25547 BN.prototype.iuor = function iuor (num) {
25548 while (this.length < num.length) {
25549 this.words[this.length++] =
0;
25552 for (var i =
0; i < num.length; i++) {
25553 this.words[i] = this.words[i] | num.words[i];
25556 return this.strip();
25559 BN.prototype.ior = function ior (num) {
25560 assert((this.negative | num.negative) ===
0);
25561 return this.iuor(num);
25564 // Or `num` with `this`
25565 BN.prototype.or = function or (num) {
25566 if (this.length
> num.length) return this.clone().ior(num);
25567 return num.clone().ior(this);
25570 BN.prototype.uor = function uor (num) {
25571 if (this.length
> num.length) return this.clone().iuor(num);
25572 return num.clone().iuor(this);
25575 // And `num` with `this` in-place
25576 BN.prototype.iuand = function iuand (num) {
25577 // b = min-length(num, this)
25579 if (this.length
> num.length) {
25585 for (var i =
0; i < b.length; i++) {
25586 this.words[i] = this.words[i] & num.words[i];
25589 this.length = b.length;
25591 return this.strip();
25594 BN.prototype.iand = function iand (num) {
25595 assert((this.negative | num.negative) ===
0);
25596 return this.iuand(num);
25599 // And `num` with `this`
25600 BN.prototype.and = function and (num) {
25601 if (this.length
> num.length) return this.clone().iand(num);
25602 return num.clone().iand(this);
25605 BN.prototype.uand = function uand (num) {
25606 if (this.length
> num.length) return this.clone().iuand(num);
25607 return num.clone().iuand(this);
25610 // Xor `num` with `this` in-place
25611 BN.prototype.iuxor = function iuxor (num) {
25612 // a.length
> b.length
25615 if (this.length
> num.length) {
25623 for (var i =
0; i < b.length; i++) {
25624 this.words[i] = a.words[i] ^ b.words[i];
25628 for (; i < a.length; i++) {
25629 this.words[i] = a.words[i];
25633 this.length = a.length;
25635 return this.strip();
25638 BN.prototype.ixor = function ixor (num) {
25639 assert((this.negative | num.negative) ===
0);
25640 return this.iuxor(num);
25643 // Xor `num` with `this`
25644 BN.prototype.xor = function xor (num) {
25645 if (this.length
> num.length) return this.clone().ixor(num);
25646 return num.clone().ixor(this);
25649 BN.prototype.uxor = function uxor (num) {
25650 if (this.length
> num.length) return this.clone().iuxor(num);
25651 return num.clone().iuxor(this);
25654 // Not ``this`` with ``width`` bitwidth
25655 BN.prototype.inotn = function inotn (width) {
25656 assert(typeof width === 'number' && width
>=
0);
25658 var bytesNeeded = Math.ceil(width /
26) |
0;
25659 var bitsLeft = width %
26;
25661 // Extend the buffer with leading zeroes
25662 this._expand(bytesNeeded);
25664 if (bitsLeft
> 0) {
25668 // Handle complete words
25669 for (var i =
0; i < bytesNeeded; i++) {
25670 this.words[i] = ~this.words[i] &
0x3ffffff;
25673 // Handle the residue
25674 if (bitsLeft
> 0) {
25675 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
25678 // And remove leading zeroes
25679 return this.strip();
25682 BN.prototype.notn = function notn (width) {
25683 return this.clone().inotn(width);
25686 // Set `bit` of `this`
25687 BN.prototype.setn = function setn (bit, val) {
25688 assert(typeof bit === 'number' && bit
>=
0);
25690 var off = (bit /
26) |
0;
25691 var wbit = bit %
26;
25693 this._expand(off +
1);
25696 this.words[off] = this.words[off] | (
1 << wbit);
25698 this.words[off] = this.words[off] & ~(
1 << wbit);
25701 return this.strip();
25704 // Add `num` to `this` in-place
25705 BN.prototype.iadd = function iadd (num) {
25708 // negative + positive
25709 if (this.negative !==
0 && num.negative ===
0) {
25711 r = this.isub(num);
25712 this.negative ^=
1;
25713 return this._normSign();
25715 // positive + negative
25716 } else if (this.negative ===
0 && num.negative !==
0) {
25718 r = this.isub(num);
25720 return r._normSign();
25723 // a.length
> b.length
25725 if (this.length
> num.length) {
25734 for (var i =
0; i < b.length; i++) {
25735 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
25736 this.words[i] = r &
0x3ffffff;
25739 for (; carry !==
0 && i < a.length; i++) {
25740 r = (a.words[i] |
0) + carry;
25741 this.words[i] = r &
0x3ffffff;
25745 this.length = a.length;
25747 this.words[this.length] = carry;
25749 // Copy the rest of the words
25750 } else if (a !== this) {
25751 for (; i < a.length; i++) {
25752 this.words[i] = a.words[i];
25759 // Add `num` to `this`
25760 BN.prototype.add = function add (num) {
25762 if (num.negative !==
0 && this.negative ===
0) {
25764 res = this.sub(num);
25767 } else if (num.negative ===
0 && this.negative !==
0) {
25769 res = num.sub(this);
25774 if (this.length
> num.length) return this.clone().iadd(num);
25776 return num.clone().iadd(this);
25779 // Subtract `num` from `this` in-place
25780 BN.prototype.isub = function isub (num) {
25781 // this - (-num) = this + num
25782 if (num.negative !==
0) {
25784 var r = this.iadd(num);
25786 return r._normSign();
25788 // -this - num = -(this + num)
25789 } else if (this.negative !==
0) {
25793 return this._normSign();
25796 // At this point both numbers are positive
25797 var cmp = this.cmp(num);
25799 // Optimization - zeroify
25818 for (var i =
0; i < b.length; i++) {
25819 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
25821 this.words[i] = r &
0x3ffffff;
25823 for (; carry !==
0 && i < a.length; i++) {
25824 r = (a.words[i] |
0) + carry;
25826 this.words[i] = r &
0x3ffffff;
25829 // Copy rest of the words
25830 if (carry ===
0 && i < a.length && a !== this) {
25831 for (; i < a.length; i++) {
25832 this.words[i] = a.words[i];
25836 this.length = Math.max(this.length, i);
25842 return this.strip();
25845 // Subtract `num` from `this`
25846 BN.prototype.sub = function sub (num) {
25847 return this.clone().isub(num);
25850 function smallMulTo (self, num, out) {
25851 out.negative = num.negative ^ self.negative;
25852 var len = (self.length + num.length) |
0;
25854 len = (len -
1) |
0;
25856 // Peel one iteration (compiler can't do it, because of code complexity)
25857 var a = self.words[
0] |
0;
25858 var b = num.words[
0] |
0;
25861 var lo = r &
0x3ffffff;
25862 var carry = (r /
0x4000000) |
0;
25865 for (var k =
1; k < len; k++) {
25866 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
25867 // note that ncarry could be
>=
0x3ffffff
25868 var ncarry = carry
>>> 26;
25869 var rword = carry &
0x3ffffff;
25870 var maxJ = Math.min(k, num.length -
1);
25871 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
25872 var i = (k - j) |
0;
25873 a = self.words[i] |
0;
25874 b = num.words[j] |
0;
25876 ncarry += (r /
0x4000000) |
0;
25877 rword = r &
0x3ffffff;
25879 out.words[k] = rword |
0;
25880 carry = ncarry |
0;
25883 out.words[k] = carry |
0;
25888 return out.strip();
25891 // TODO(indutny): it may be reasonable to omit it for users who don't need
25892 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
25893 // multiplication (like elliptic secp256k1).
25894 var comb10MulTo = function comb10MulTo (self, num, out) {
25895 var a = self.words;
25903 var al0 = a0 &
0x1fff;
25904 var ah0 = a0
>>> 13;
25906 var al1 = a1 &
0x1fff;
25907 var ah1 = a1
>>> 13;
25909 var al2 = a2 &
0x1fff;
25910 var ah2 = a2
>>> 13;
25912 var al3 = a3 &
0x1fff;
25913 var ah3 = a3
>>> 13;
25915 var al4 = a4 &
0x1fff;
25916 var ah4 = a4
>>> 13;
25918 var al5 = a5 &
0x1fff;
25919 var ah5 = a5
>>> 13;
25921 var al6 = a6 &
0x1fff;
25922 var ah6 = a6
>>> 13;
25924 var al7 = a7 &
0x1fff;
25925 var ah7 = a7
>>> 13;
25927 var al8 = a8 &
0x1fff;
25928 var ah8 = a8
>>> 13;
25930 var al9 = a9 &
0x1fff;
25931 var ah9 = a9
>>> 13;
25933 var bl0 = b0 &
0x1fff;
25934 var bh0 = b0
>>> 13;
25936 var bl1 = b1 &
0x1fff;
25937 var bh1 = b1
>>> 13;
25939 var bl2 = b2 &
0x1fff;
25940 var bh2 = b2
>>> 13;
25942 var bl3 = b3 &
0x1fff;
25943 var bh3 = b3
>>> 13;
25945 var bl4 = b4 &
0x1fff;
25946 var bh4 = b4
>>> 13;
25948 var bl5 = b5 &
0x1fff;
25949 var bh5 = b5
>>> 13;
25951 var bl6 = b6 &
0x1fff;
25952 var bh6 = b6
>>> 13;
25954 var bl7 = b7 &
0x1fff;
25955 var bh7 = b7
>>> 13;
25957 var bl8 = b8 &
0x1fff;
25958 var bh8 = b8
>>> 13;
25960 var bl9 = b9 &
0x1fff;
25961 var bh9 = b9
>>> 13;
25963 out.negative = self.negative ^ num.negative;
25966 lo = Math.imul(al0, bl0);
25967 mid = Math.imul(al0, bh0);
25968 mid = (mid + Math.imul(ah0, bl0)) |
0;
25969 hi = Math.imul(ah0, bh0);
25970 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25971 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
25974 lo = Math.imul(al1, bl0);
25975 mid = Math.imul(al1, bh0);
25976 mid = (mid + Math.imul(ah1, bl0)) |
0;
25977 hi = Math.imul(ah1, bh0);
25978 lo = (lo + Math.imul(al0, bl1)) |
0;
25979 mid = (mid + Math.imul(al0, bh1)) |
0;
25980 mid = (mid + Math.imul(ah0, bl1)) |
0;
25981 hi = (hi + Math.imul(ah0, bh1)) |
0;
25982 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25983 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
25986 lo = Math.imul(al2, bl0);
25987 mid = Math.imul(al2, bh0);
25988 mid = (mid + Math.imul(ah2, bl0)) |
0;
25989 hi = Math.imul(ah2, bh0);
25990 lo = (lo + Math.imul(al1, bl1)) |
0;
25991 mid = (mid + Math.imul(al1, bh1)) |
0;
25992 mid = (mid + Math.imul(ah1, bl1)) |
0;
25993 hi = (hi + Math.imul(ah1, bh1)) |
0;
25994 lo = (lo + Math.imul(al0, bl2)) |
0;
25995 mid = (mid + Math.imul(al0, bh2)) |
0;
25996 mid = (mid + Math.imul(ah0, bl2)) |
0;
25997 hi = (hi + Math.imul(ah0, bh2)) |
0;
25998 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25999 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
26002 lo = Math.imul(al3, bl0);
26003 mid = Math.imul(al3, bh0);
26004 mid = (mid + Math.imul(ah3, bl0)) |
0;
26005 hi = Math.imul(ah3, bh0);
26006 lo = (lo + Math.imul(al2, bl1)) |
0;
26007 mid = (mid + Math.imul(al2, bh1)) |
0;
26008 mid = (mid + Math.imul(ah2, bl1)) |
0;
26009 hi = (hi + Math.imul(ah2, bh1)) |
0;
26010 lo = (lo + Math.imul(al1, bl2)) |
0;
26011 mid = (mid + Math.imul(al1, bh2)) |
0;
26012 mid = (mid + Math.imul(ah1, bl2)) |
0;
26013 hi = (hi + Math.imul(ah1, bh2)) |
0;
26014 lo = (lo + Math.imul(al0, bl3)) |
0;
26015 mid = (mid + Math.imul(al0, bh3)) |
0;
26016 mid = (mid + Math.imul(ah0, bl3)) |
0;
26017 hi = (hi + Math.imul(ah0, bh3)) |
0;
26018 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26019 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
26022 lo = Math.imul(al4, bl0);
26023 mid = Math.imul(al4, bh0);
26024 mid = (mid + Math.imul(ah4, bl0)) |
0;
26025 hi = Math.imul(ah4, bh0);
26026 lo = (lo + Math.imul(al3, bl1)) |
0;
26027 mid = (mid + Math.imul(al3, bh1)) |
0;
26028 mid = (mid + Math.imul(ah3, bl1)) |
0;
26029 hi = (hi + Math.imul(ah3, bh1)) |
0;
26030 lo = (lo + Math.imul(al2, bl2)) |
0;
26031 mid = (mid + Math.imul(al2, bh2)) |
0;
26032 mid = (mid + Math.imul(ah2, bl2)) |
0;
26033 hi = (hi + Math.imul(ah2, bh2)) |
0;
26034 lo = (lo + Math.imul(al1, bl3)) |
0;
26035 mid = (mid + Math.imul(al1, bh3)) |
0;
26036 mid = (mid + Math.imul(ah1, bl3)) |
0;
26037 hi = (hi + Math.imul(ah1, bh3)) |
0;
26038 lo = (lo + Math.imul(al0, bl4)) |
0;
26039 mid = (mid + Math.imul(al0, bh4)) |
0;
26040 mid = (mid + Math.imul(ah0, bl4)) |
0;
26041 hi = (hi + Math.imul(ah0, bh4)) |
0;
26042 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26043 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
26046 lo = Math.imul(al5, bl0);
26047 mid = Math.imul(al5, bh0);
26048 mid = (mid + Math.imul(ah5, bl0)) |
0;
26049 hi = Math.imul(ah5, bh0);
26050 lo = (lo + Math.imul(al4, bl1)) |
0;
26051 mid = (mid + Math.imul(al4, bh1)) |
0;
26052 mid = (mid + Math.imul(ah4, bl1)) |
0;
26053 hi = (hi + Math.imul(ah4, bh1)) |
0;
26054 lo = (lo + Math.imul(al3, bl2)) |
0;
26055 mid = (mid + Math.imul(al3, bh2)) |
0;
26056 mid = (mid + Math.imul(ah3, bl2)) |
0;
26057 hi = (hi + Math.imul(ah3, bh2)) |
0;
26058 lo = (lo + Math.imul(al2, bl3)) |
0;
26059 mid = (mid + Math.imul(al2, bh3)) |
0;
26060 mid = (mid + Math.imul(ah2, bl3)) |
0;
26061 hi = (hi + Math.imul(ah2, bh3)) |
0;
26062 lo = (lo + Math.imul(al1, bl4)) |
0;
26063 mid = (mid + Math.imul(al1, bh4)) |
0;
26064 mid = (mid + Math.imul(ah1, bl4)) |
0;
26065 hi = (hi + Math.imul(ah1, bh4)) |
0;
26066 lo = (lo + Math.imul(al0, bl5)) |
0;
26067 mid = (mid + Math.imul(al0, bh5)) |
0;
26068 mid = (mid + Math.imul(ah0, bl5)) |
0;
26069 hi = (hi + Math.imul(ah0, bh5)) |
0;
26070 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26071 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
26074 lo = Math.imul(al6, bl0);
26075 mid = Math.imul(al6, bh0);
26076 mid = (mid + Math.imul(ah6, bl0)) |
0;
26077 hi = Math.imul(ah6, bh0);
26078 lo = (lo + Math.imul(al5, bl1)) |
0;
26079 mid = (mid + Math.imul(al5, bh1)) |
0;
26080 mid = (mid + Math.imul(ah5, bl1)) |
0;
26081 hi = (hi + Math.imul(ah5, bh1)) |
0;
26082 lo = (lo + Math.imul(al4, bl2)) |
0;
26083 mid = (mid + Math.imul(al4, bh2)) |
0;
26084 mid = (mid + Math.imul(ah4, bl2)) |
0;
26085 hi = (hi + Math.imul(ah4, bh2)) |
0;
26086 lo = (lo + Math.imul(al3, bl3)) |
0;
26087 mid = (mid + Math.imul(al3, bh3)) |
0;
26088 mid = (mid + Math.imul(ah3, bl3)) |
0;
26089 hi = (hi + Math.imul(ah3, bh3)) |
0;
26090 lo = (lo + Math.imul(al2, bl4)) |
0;
26091 mid = (mid + Math.imul(al2, bh4)) |
0;
26092 mid = (mid + Math.imul(ah2, bl4)) |
0;
26093 hi = (hi + Math.imul(ah2, bh4)) |
0;
26094 lo = (lo + Math.imul(al1, bl5)) |
0;
26095 mid = (mid + Math.imul(al1, bh5)) |
0;
26096 mid = (mid + Math.imul(ah1, bl5)) |
0;
26097 hi = (hi + Math.imul(ah1, bh5)) |
0;
26098 lo = (lo + Math.imul(al0, bl6)) |
0;
26099 mid = (mid + Math.imul(al0, bh6)) |
0;
26100 mid = (mid + Math.imul(ah0, bl6)) |
0;
26101 hi = (hi + Math.imul(ah0, bh6)) |
0;
26102 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26103 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
26106 lo = Math.imul(al7, bl0);
26107 mid = Math.imul(al7, bh0);
26108 mid = (mid + Math.imul(ah7, bl0)) |
0;
26109 hi = Math.imul(ah7, bh0);
26110 lo = (lo + Math.imul(al6, bl1)) |
0;
26111 mid = (mid + Math.imul(al6, bh1)) |
0;
26112 mid = (mid + Math.imul(ah6, bl1)) |
0;
26113 hi = (hi + Math.imul(ah6, bh1)) |
0;
26114 lo = (lo + Math.imul(al5, bl2)) |
0;
26115 mid = (mid + Math.imul(al5, bh2)) |
0;
26116 mid = (mid + Math.imul(ah5, bl2)) |
0;
26117 hi = (hi + Math.imul(ah5, bh2)) |
0;
26118 lo = (lo + Math.imul(al4, bl3)) |
0;
26119 mid = (mid + Math.imul(al4, bh3)) |
0;
26120 mid = (mid + Math.imul(ah4, bl3)) |
0;
26121 hi = (hi + Math.imul(ah4, bh3)) |
0;
26122 lo = (lo + Math.imul(al3, bl4)) |
0;
26123 mid = (mid + Math.imul(al3, bh4)) |
0;
26124 mid = (mid + Math.imul(ah3, bl4)) |
0;
26125 hi = (hi + Math.imul(ah3, bh4)) |
0;
26126 lo = (lo + Math.imul(al2, bl5)) |
0;
26127 mid = (mid + Math.imul(al2, bh5)) |
0;
26128 mid = (mid + Math.imul(ah2, bl5)) |
0;
26129 hi = (hi + Math.imul(ah2, bh5)) |
0;
26130 lo = (lo + Math.imul(al1, bl6)) |
0;
26131 mid = (mid + Math.imul(al1, bh6)) |
0;
26132 mid = (mid + Math.imul(ah1, bl6)) |
0;
26133 hi = (hi + Math.imul(ah1, bh6)) |
0;
26134 lo = (lo + Math.imul(al0, bl7)) |
0;
26135 mid = (mid + Math.imul(al0, bh7)) |
0;
26136 mid = (mid + Math.imul(ah0, bl7)) |
0;
26137 hi = (hi + Math.imul(ah0, bh7)) |
0;
26138 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26139 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
26142 lo = Math.imul(al8, bl0);
26143 mid = Math.imul(al8, bh0);
26144 mid = (mid + Math.imul(ah8, bl0)) |
0;
26145 hi = Math.imul(ah8, bh0);
26146 lo = (lo + Math.imul(al7, bl1)) |
0;
26147 mid = (mid + Math.imul(al7, bh1)) |
0;
26148 mid = (mid + Math.imul(ah7, bl1)) |
0;
26149 hi = (hi + Math.imul(ah7, bh1)) |
0;
26150 lo = (lo + Math.imul(al6, bl2)) |
0;
26151 mid = (mid + Math.imul(al6, bh2)) |
0;
26152 mid = (mid + Math.imul(ah6, bl2)) |
0;
26153 hi = (hi + Math.imul(ah6, bh2)) |
0;
26154 lo = (lo + Math.imul(al5, bl3)) |
0;
26155 mid = (mid + Math.imul(al5, bh3)) |
0;
26156 mid = (mid + Math.imul(ah5, bl3)) |
0;
26157 hi = (hi + Math.imul(ah5, bh3)) |
0;
26158 lo = (lo + Math.imul(al4, bl4)) |
0;
26159 mid = (mid + Math.imul(al4, bh4)) |
0;
26160 mid = (mid + Math.imul(ah4, bl4)) |
0;
26161 hi = (hi + Math.imul(ah4, bh4)) |
0;
26162 lo = (lo + Math.imul(al3, bl5)) |
0;
26163 mid = (mid + Math.imul(al3, bh5)) |
0;
26164 mid = (mid + Math.imul(ah3, bl5)) |
0;
26165 hi = (hi + Math.imul(ah3, bh5)) |
0;
26166 lo = (lo + Math.imul(al2, bl6)) |
0;
26167 mid = (mid + Math.imul(al2, bh6)) |
0;
26168 mid = (mid + Math.imul(ah2, bl6)) |
0;
26169 hi = (hi + Math.imul(ah2, bh6)) |
0;
26170 lo = (lo + Math.imul(al1, bl7)) |
0;
26171 mid = (mid + Math.imul(al1, bh7)) |
0;
26172 mid = (mid + Math.imul(ah1, bl7)) |
0;
26173 hi = (hi + Math.imul(ah1, bh7)) |
0;
26174 lo = (lo + Math.imul(al0, bl8)) |
0;
26175 mid = (mid + Math.imul(al0, bh8)) |
0;
26176 mid = (mid + Math.imul(ah0, bl8)) |
0;
26177 hi = (hi + Math.imul(ah0, bh8)) |
0;
26178 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26179 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
26182 lo = Math.imul(al9, bl0);
26183 mid = Math.imul(al9, bh0);
26184 mid = (mid + Math.imul(ah9, bl0)) |
0;
26185 hi = Math.imul(ah9, bh0);
26186 lo = (lo + Math.imul(al8, bl1)) |
0;
26187 mid = (mid + Math.imul(al8, bh1)) |
0;
26188 mid = (mid + Math.imul(ah8, bl1)) |
0;
26189 hi = (hi + Math.imul(ah8, bh1)) |
0;
26190 lo = (lo + Math.imul(al7, bl2)) |
0;
26191 mid = (mid + Math.imul(al7, bh2)) |
0;
26192 mid = (mid + Math.imul(ah7, bl2)) |
0;
26193 hi = (hi + Math.imul(ah7, bh2)) |
0;
26194 lo = (lo + Math.imul(al6, bl3)) |
0;
26195 mid = (mid + Math.imul(al6, bh3)) |
0;
26196 mid = (mid + Math.imul(ah6, bl3)) |
0;
26197 hi = (hi + Math.imul(ah6, bh3)) |
0;
26198 lo = (lo + Math.imul(al5, bl4)) |
0;
26199 mid = (mid + Math.imul(al5, bh4)) |
0;
26200 mid = (mid + Math.imul(ah5, bl4)) |
0;
26201 hi = (hi + Math.imul(ah5, bh4)) |
0;
26202 lo = (lo + Math.imul(al4, bl5)) |
0;
26203 mid = (mid + Math.imul(al4, bh5)) |
0;
26204 mid = (mid + Math.imul(ah4, bl5)) |
0;
26205 hi = (hi + Math.imul(ah4, bh5)) |
0;
26206 lo = (lo + Math.imul(al3, bl6)) |
0;
26207 mid = (mid + Math.imul(al3, bh6)) |
0;
26208 mid = (mid + Math.imul(ah3, bl6)) |
0;
26209 hi = (hi + Math.imul(ah3, bh6)) |
0;
26210 lo = (lo + Math.imul(al2, bl7)) |
0;
26211 mid = (mid + Math.imul(al2, bh7)) |
0;
26212 mid = (mid + Math.imul(ah2, bl7)) |
0;
26213 hi = (hi + Math.imul(ah2, bh7)) |
0;
26214 lo = (lo + Math.imul(al1, bl8)) |
0;
26215 mid = (mid + Math.imul(al1, bh8)) |
0;
26216 mid = (mid + Math.imul(ah1, bl8)) |
0;
26217 hi = (hi + Math.imul(ah1, bh8)) |
0;
26218 lo = (lo + Math.imul(al0, bl9)) |
0;
26219 mid = (mid + Math.imul(al0, bh9)) |
0;
26220 mid = (mid + Math.imul(ah0, bl9)) |
0;
26221 hi = (hi + Math.imul(ah0, bh9)) |
0;
26222 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26223 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
26226 lo = Math.imul(al9, bl1);
26227 mid = Math.imul(al9, bh1);
26228 mid = (mid + Math.imul(ah9, bl1)) |
0;
26229 hi = Math.imul(ah9, bh1);
26230 lo = (lo + Math.imul(al8, bl2)) |
0;
26231 mid = (mid + Math.imul(al8, bh2)) |
0;
26232 mid = (mid + Math.imul(ah8, bl2)) |
0;
26233 hi = (hi + Math.imul(ah8, bh2)) |
0;
26234 lo = (lo + Math.imul(al7, bl3)) |
0;
26235 mid = (mid + Math.imul(al7, bh3)) |
0;
26236 mid = (mid + Math.imul(ah7, bl3)) |
0;
26237 hi = (hi + Math.imul(ah7, bh3)) |
0;
26238 lo = (lo + Math.imul(al6, bl4)) |
0;
26239 mid = (mid + Math.imul(al6, bh4)) |
0;
26240 mid = (mid + Math.imul(ah6, bl4)) |
0;
26241 hi = (hi + Math.imul(ah6, bh4)) |
0;
26242 lo = (lo + Math.imul(al5, bl5)) |
0;
26243 mid = (mid + Math.imul(al5, bh5)) |
0;
26244 mid = (mid + Math.imul(ah5, bl5)) |
0;
26245 hi = (hi + Math.imul(ah5, bh5)) |
0;
26246 lo = (lo + Math.imul(al4, bl6)) |
0;
26247 mid = (mid + Math.imul(al4, bh6)) |
0;
26248 mid = (mid + Math.imul(ah4, bl6)) |
0;
26249 hi = (hi + Math.imul(ah4, bh6)) |
0;
26250 lo = (lo + Math.imul(al3, bl7)) |
0;
26251 mid = (mid + Math.imul(al3, bh7)) |
0;
26252 mid = (mid + Math.imul(ah3, bl7)) |
0;
26253 hi = (hi + Math.imul(ah3, bh7)) |
0;
26254 lo = (lo + Math.imul(al2, bl8)) |
0;
26255 mid = (mid + Math.imul(al2, bh8)) |
0;
26256 mid = (mid + Math.imul(ah2, bl8)) |
0;
26257 hi = (hi + Math.imul(ah2, bh8)) |
0;
26258 lo = (lo + Math.imul(al1, bl9)) |
0;
26259 mid = (mid + Math.imul(al1, bh9)) |
0;
26260 mid = (mid + Math.imul(ah1, bl9)) |
0;
26261 hi = (hi + Math.imul(ah1, bh9)) |
0;
26262 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26263 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
26266 lo = Math.imul(al9, bl2);
26267 mid = Math.imul(al9, bh2);
26268 mid = (mid + Math.imul(ah9, bl2)) |
0;
26269 hi = Math.imul(ah9, bh2);
26270 lo = (lo + Math.imul(al8, bl3)) |
0;
26271 mid = (mid + Math.imul(al8, bh3)) |
0;
26272 mid = (mid + Math.imul(ah8, bl3)) |
0;
26273 hi = (hi + Math.imul(ah8, bh3)) |
0;
26274 lo = (lo + Math.imul(al7, bl4)) |
0;
26275 mid = (mid + Math.imul(al7, bh4)) |
0;
26276 mid = (mid + Math.imul(ah7, bl4)) |
0;
26277 hi = (hi + Math.imul(ah7, bh4)) |
0;
26278 lo = (lo + Math.imul(al6, bl5)) |
0;
26279 mid = (mid + Math.imul(al6, bh5)) |
0;
26280 mid = (mid + Math.imul(ah6, bl5)) |
0;
26281 hi = (hi + Math.imul(ah6, bh5)) |
0;
26282 lo = (lo + Math.imul(al5, bl6)) |
0;
26283 mid = (mid + Math.imul(al5, bh6)) |
0;
26284 mid = (mid + Math.imul(ah5, bl6)) |
0;
26285 hi = (hi + Math.imul(ah5, bh6)) |
0;
26286 lo = (lo + Math.imul(al4, bl7)) |
0;
26287 mid = (mid + Math.imul(al4, bh7)) |
0;
26288 mid = (mid + Math.imul(ah4, bl7)) |
0;
26289 hi = (hi + Math.imul(ah4, bh7)) |
0;
26290 lo = (lo + Math.imul(al3, bl8)) |
0;
26291 mid = (mid + Math.imul(al3, bh8)) |
0;
26292 mid = (mid + Math.imul(ah3, bl8)) |
0;
26293 hi = (hi + Math.imul(ah3, bh8)) |
0;
26294 lo = (lo + Math.imul(al2, bl9)) |
0;
26295 mid = (mid + Math.imul(al2, bh9)) |
0;
26296 mid = (mid + Math.imul(ah2, bl9)) |
0;
26297 hi = (hi + Math.imul(ah2, bh9)) |
0;
26298 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26299 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
26302 lo = Math.imul(al9, bl3);
26303 mid = Math.imul(al9, bh3);
26304 mid = (mid + Math.imul(ah9, bl3)) |
0;
26305 hi = Math.imul(ah9, bh3);
26306 lo = (lo + Math.imul(al8, bl4)) |
0;
26307 mid = (mid + Math.imul(al8, bh4)) |
0;
26308 mid = (mid + Math.imul(ah8, bl4)) |
0;
26309 hi = (hi + Math.imul(ah8, bh4)) |
0;
26310 lo = (lo + Math.imul(al7, bl5)) |
0;
26311 mid = (mid + Math.imul(al7, bh5)) |
0;
26312 mid = (mid + Math.imul(ah7, bl5)) |
0;
26313 hi = (hi + Math.imul(ah7, bh5)) |
0;
26314 lo = (lo + Math.imul(al6, bl6)) |
0;
26315 mid = (mid + Math.imul(al6, bh6)) |
0;
26316 mid = (mid + Math.imul(ah6, bl6)) |
0;
26317 hi = (hi + Math.imul(ah6, bh6)) |
0;
26318 lo = (lo + Math.imul(al5, bl7)) |
0;
26319 mid = (mid + Math.imul(al5, bh7)) |
0;
26320 mid = (mid + Math.imul(ah5, bl7)) |
0;
26321 hi = (hi + Math.imul(ah5, bh7)) |
0;
26322 lo = (lo + Math.imul(al4, bl8)) |
0;
26323 mid = (mid + Math.imul(al4, bh8)) |
0;
26324 mid = (mid + Math.imul(ah4, bl8)) |
0;
26325 hi = (hi + Math.imul(ah4, bh8)) |
0;
26326 lo = (lo + Math.imul(al3, bl9)) |
0;
26327 mid = (mid + Math.imul(al3, bh9)) |
0;
26328 mid = (mid + Math.imul(ah3, bl9)) |
0;
26329 hi = (hi + Math.imul(ah3, bh9)) |
0;
26330 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26331 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
26334 lo = Math.imul(al9, bl4);
26335 mid = Math.imul(al9, bh4);
26336 mid = (mid + Math.imul(ah9, bl4)) |
0;
26337 hi = Math.imul(ah9, bh4);
26338 lo = (lo + Math.imul(al8, bl5)) |
0;
26339 mid = (mid + Math.imul(al8, bh5)) |
0;
26340 mid = (mid + Math.imul(ah8, bl5)) |
0;
26341 hi = (hi + Math.imul(ah8, bh5)) |
0;
26342 lo = (lo + Math.imul(al7, bl6)) |
0;
26343 mid = (mid + Math.imul(al7, bh6)) |
0;
26344 mid = (mid + Math.imul(ah7, bl6)) |
0;
26345 hi = (hi + Math.imul(ah7, bh6)) |
0;
26346 lo = (lo + Math.imul(al6, bl7)) |
0;
26347 mid = (mid + Math.imul(al6, bh7)) |
0;
26348 mid = (mid + Math.imul(ah6, bl7)) |
0;
26349 hi = (hi + Math.imul(ah6, bh7)) |
0;
26350 lo = (lo + Math.imul(al5, bl8)) |
0;
26351 mid = (mid + Math.imul(al5, bh8)) |
0;
26352 mid = (mid + Math.imul(ah5, bl8)) |
0;
26353 hi = (hi + Math.imul(ah5, bh8)) |
0;
26354 lo = (lo + Math.imul(al4, bl9)) |
0;
26355 mid = (mid + Math.imul(al4, bh9)) |
0;
26356 mid = (mid + Math.imul(ah4, bl9)) |
0;
26357 hi = (hi + Math.imul(ah4, bh9)) |
0;
26358 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26359 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
26362 lo = Math.imul(al9, bl5);
26363 mid = Math.imul(al9, bh5);
26364 mid = (mid + Math.imul(ah9, bl5)) |
0;
26365 hi = Math.imul(ah9, bh5);
26366 lo = (lo + Math.imul(al8, bl6)) |
0;
26367 mid = (mid + Math.imul(al8, bh6)) |
0;
26368 mid = (mid + Math.imul(ah8, bl6)) |
0;
26369 hi = (hi + Math.imul(ah8, bh6)) |
0;
26370 lo = (lo + Math.imul(al7, bl7)) |
0;
26371 mid = (mid + Math.imul(al7, bh7)) |
0;
26372 mid = (mid + Math.imul(ah7, bl7)) |
0;
26373 hi = (hi + Math.imul(ah7, bh7)) |
0;
26374 lo = (lo + Math.imul(al6, bl8)) |
0;
26375 mid = (mid + Math.imul(al6, bh8)) |
0;
26376 mid = (mid + Math.imul(ah6, bl8)) |
0;
26377 hi = (hi + Math.imul(ah6, bh8)) |
0;
26378 lo = (lo + Math.imul(al5, bl9)) |
0;
26379 mid = (mid + Math.imul(al5, bh9)) |
0;
26380 mid = (mid + Math.imul(ah5, bl9)) |
0;
26381 hi = (hi + Math.imul(ah5, bh9)) |
0;
26382 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26383 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
26386 lo = Math.imul(al9, bl6);
26387 mid = Math.imul(al9, bh6);
26388 mid = (mid + Math.imul(ah9, bl6)) |
0;
26389 hi = Math.imul(ah9, bh6);
26390 lo = (lo + Math.imul(al8, bl7)) |
0;
26391 mid = (mid + Math.imul(al8, bh7)) |
0;
26392 mid = (mid + Math.imul(ah8, bl7)) |
0;
26393 hi = (hi + Math.imul(ah8, bh7)) |
0;
26394 lo = (lo + Math.imul(al7, bl8)) |
0;
26395 mid = (mid + Math.imul(al7, bh8)) |
0;
26396 mid = (mid + Math.imul(ah7, bl8)) |
0;
26397 hi = (hi + Math.imul(ah7, bh8)) |
0;
26398 lo = (lo + Math.imul(al6, bl9)) |
0;
26399 mid = (mid + Math.imul(al6, bh9)) |
0;
26400 mid = (mid + Math.imul(ah6, bl9)) |
0;
26401 hi = (hi + Math.imul(ah6, bh9)) |
0;
26402 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26403 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
26406 lo = Math.imul(al9, bl7);
26407 mid = Math.imul(al9, bh7);
26408 mid = (mid + Math.imul(ah9, bl7)) |
0;
26409 hi = Math.imul(ah9, bh7);
26410 lo = (lo + Math.imul(al8, bl8)) |
0;
26411 mid = (mid + Math.imul(al8, bh8)) |
0;
26412 mid = (mid + Math.imul(ah8, bl8)) |
0;
26413 hi = (hi + Math.imul(ah8, bh8)) |
0;
26414 lo = (lo + Math.imul(al7, bl9)) |
0;
26415 mid = (mid + Math.imul(al7, bh9)) |
0;
26416 mid = (mid + Math.imul(ah7, bl9)) |
0;
26417 hi = (hi + Math.imul(ah7, bh9)) |
0;
26418 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26419 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
26422 lo = Math.imul(al9, bl8);
26423 mid = Math.imul(al9, bh8);
26424 mid = (mid + Math.imul(ah9, bl8)) |
0;
26425 hi = Math.imul(ah9, bh8);
26426 lo = (lo + Math.imul(al8, bl9)) |
0;
26427 mid = (mid + Math.imul(al8, bh9)) |
0;
26428 mid = (mid + Math.imul(ah8, bl9)) |
0;
26429 hi = (hi + Math.imul(ah8, bh9)) |
0;
26430 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26431 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
26434 lo = Math.imul(al9, bl9);
26435 mid = Math.imul(al9, bh9);
26436 mid = (mid + Math.imul(ah9, bl9)) |
0;
26437 hi = Math.imul(ah9, bh9);
26438 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
26439 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
26469 comb10MulTo = smallMulTo;
26472 function bigMulTo (self, num, out) {
26473 out.negative = num.negative ^ self.negative;
26474 out.length = self.length + num.length;
26478 for (var k =
0; k < out.length -
1; k++) {
26479 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
26480 // note that ncarry could be
>=
0x3ffffff
26481 var ncarry = hncarry;
26483 var rword = carry &
0x3ffffff;
26484 var maxJ = Math.min(k, num.length -
1);
26485 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
26487 var a = self.words[i] |
0;
26488 var b = num.words[j] |
0;
26491 var lo = r &
0x3ffffff;
26492 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
26493 lo = (lo + rword) |
0;
26494 rword = lo &
0x3ffffff;
26495 ncarry = (ncarry + (lo
>>> 26)) |
0;
26497 hncarry += ncarry
>>> 26;
26498 ncarry &=
0x3ffffff;
26500 out.words[k] = rword;
26505 out.words[k] = carry;
26510 return out.strip();
26513 function jumboMulTo (self, num, out) {
26514 var fftm = new FFTM();
26515 return fftm.mulp(self, num, out);
26518 BN.prototype.mulTo = function mulTo (num, out) {
26520 var len = this.length + num.length;
26521 if (this.length ===
10 && num.length ===
10) {
26522 res = comb10MulTo(this, num, out);
26523 } else if (len <
63) {
26524 res = smallMulTo(this, num, out);
26525 } else if (len <
1024) {
26526 res = bigMulTo(this, num, out);
26528 res = jumboMulTo(this, num, out);
26534 // Cooley-Tukey algorithm for FFT
26535 // slightly revisited to rely on looping instead of recursion
26537 function FFTM (x, y) {
26542 FFTM.prototype.makeRBT = function makeRBT (N) {
26543 var t = new Array(N);
26544 var l = BN.prototype._countBits(N) -
1;
26545 for (var i =
0; i < N; i++) {
26546 t[i] = this.revBin(i, l, N);
26552 // Returns binary-reversed representation of `x`
26553 FFTM.prototype.revBin = function revBin (x, l, N) {
26554 if (x ===
0 || x === N -
1) return x;
26557 for (var i =
0; i < l; i++) {
26558 rb |= (x &
1) << (l - i -
1);
26565 // Performs "tweedling" phase, therefore 'emulating'
26566 // behaviour of the recursive algorithm
26567 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
26568 for (var i =
0; i < N; i++) {
26569 rtws[i] = rws[rbt[i]];
26570 itws[i] = iws[rbt[i]];
26574 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
26575 this.permute(rbt, rws, iws, rtws, itws, N);
26577 for (var s =
1; s < N; s <<=
1) {
26580 var rtwdf = Math.cos(
2 * Math.PI / l);
26581 var itwdf = Math.sin(
2 * Math.PI / l);
26583 for (var p =
0; p < N; p += l) {
26584 var rtwdf_ = rtwdf;
26585 var itwdf_ = itwdf;
26587 for (var j =
0; j < s; j++) {
26588 var re = rtws[p + j];
26589 var ie = itws[p + j];
26591 var ro = rtws[p + j + s];
26592 var io = itws[p + j + s];
26594 var rx = rtwdf_ * ro - itwdf_ * io;
26596 io = rtwdf_ * io + itwdf_ * ro;
26599 rtws[p + j] = re + ro;
26600 itws[p + j] = ie + io;
26602 rtws[p + j + s] = re - ro;
26603 itws[p + j + s] = ie - io;
26605 /* jshint maxdepth : false */
26607 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
26609 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
26617 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
26618 var N = Math.max(m, n) |
1;
26621 for (N = N /
2 |
0; N; N = N
>>> 1) {
26625 return
1 << i +
1 + odd;
26628 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
26629 if (N <=
1) return;
26631 for (var i =
0; i < N /
2; i++) {
26634 rws[i] = rws[N - i -
1];
26635 rws[N - i -
1] = t;
26639 iws[i] = -iws[N - i -
1];
26640 iws[N - i -
1] = -t;
26644 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
26646 for (var i =
0; i < N /
2; i++) {
26647 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
26648 Math.round(ws[
2 * i] / N) +
26651 ws[i] = w &
0x3ffffff;
26653 if (w <
0x4000000) {
26656 carry = w /
0x4000000 |
0;
26663 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
26665 for (var i =
0; i < len; i++) {
26666 carry = carry + (ws[i] |
0);
26668 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
26669 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
26673 for (i =
2 * len; i < N; ++i) {
26677 assert(carry ===
0);
26678 assert((carry & ~
0x1fff) ===
0);
26681 FFTM.prototype.stub = function stub (N) {
26682 var ph = new Array(N);
26683 for (var i =
0; i < N; i++) {
26690 FFTM.prototype.mulp = function mulp (x, y, out) {
26691 var N =
2 * this.guessLen13b(x.length, y.length);
26693 var rbt = this.makeRBT(N);
26695 var _ = this.stub(N);
26697 var rws = new Array(N);
26698 var rwst = new Array(N);
26699 var iwst = new Array(N);
26701 var nrws = new Array(N);
26702 var nrwst = new Array(N);
26703 var niwst = new Array(N);
26705 var rmws = out.words;
26708 this.convert13b(x.words, x.length, rws, N);
26709 this.convert13b(y.words, y.length, nrws, N);
26711 this.transform(rws, _, rwst, iwst, N, rbt);
26712 this.transform(nrws, _, nrwst, niwst, N, rbt);
26714 for (var i =
0; i < N; i++) {
26715 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
26716 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
26720 this.conjugate(rwst, iwst, N);
26721 this.transform(rwst, iwst, rmws, _, N, rbt);
26722 this.conjugate(rmws, _, N);
26723 this.normalize13b(rmws, N);
26725 out.negative = x.negative ^ y.negative;
26726 out.length = x.length + y.length;
26727 return out.strip();
26730 // Multiply `this` by `num`
26731 BN.prototype.mul = function mul (num) {
26732 var out = new BN(null);
26733 out.words = new Array(this.length + num.length);
26734 return this.mulTo(num, out);
26737 // Multiply employing FFT
26738 BN.prototype.mulf = function mulf (num) {
26739 var out = new BN(null);
26740 out.words = new Array(this.length + num.length);
26741 return jumboMulTo(this, num, out);
26744 // In-place Multiplication
26745 BN.prototype.imul = function imul (num) {
26746 return this.clone().mulTo(num, this);
26749 BN.prototype.imuln = function imuln (num) {
26750 assert(typeof num === 'number');
26751 assert(num <
0x4000000);
26755 for (var i =
0; i < this.length; i++) {
26756 var w = (this.words[i] |
0) * num;
26757 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
26759 carry += (w /
0x4000000) |
0;
26760 // NOTE: lo is
27bit maximum
26761 carry += lo
>>> 26;
26762 this.words[i] = lo &
0x3ffffff;
26766 this.words[i] = carry;
26773 BN.prototype.muln = function muln (num) {
26774 return this.clone().imuln(num);
26778 BN.prototype.sqr = function sqr () {
26779 return this.mul(this);
26782 // `this` * `this` in-place
26783 BN.prototype.isqr = function isqr () {
26784 return this.imul(this.clone());
26787 // Math.pow(`this`, `num`)
26788 BN.prototype.pow = function pow (num) {
26789 var w = toBitArray(num);
26790 if (w.length ===
0) return new BN(
1);
26792 // Skip leading zeroes
26794 for (var i =
0; i < w.length; i++, res = res.sqr()) {
26795 if (w[i] !==
0) break;
26798 if (++i < w.length) {
26799 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
26800 if (w[i] ===
0) continue;
26809 // Shift-left in-place
26810 BN.prototype.iushln = function iushln (bits) {
26811 assert(typeof bits === 'number' && bits
>=
0);
26813 var s = (bits - r) /
26;
26814 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
26820 for (i =
0; i < this.length; i++) {
26821 var newCarry = this.words[i] & carryMask;
26822 var c = ((this.words[i] |
0) - newCarry) << r;
26823 this.words[i] = c | carry;
26824 carry = newCarry
>>> (
26 - r);
26828 this.words[i] = carry;
26834 for (i = this.length -
1; i
>=
0; i--) {
26835 this.words[i + s] = this.words[i];
26838 for (i =
0; i < s; i++) {
26845 return this.strip();
26848 BN.prototype.ishln = function ishln (bits) {
26849 // TODO(indutny): implement me
26850 assert(this.negative ===
0);
26851 return this.iushln(bits);
26854 // Shift-right in-place
26855 // NOTE: `hint` is a lowest bit before trailing zeroes
26856 // NOTE: if `extended` is present - it will be filled with destroyed bits
26857 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
26858 assert(typeof bits === 'number' && bits
>=
0);
26861 h = (hint - (hint %
26)) /
26;
26867 var s = Math.min((bits - r) /
26, this.length);
26868 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26869 var maskedWords = extended;
26872 h = Math.max(
0, h);
26874 // Extended mode, copy masked part
26876 for (var i =
0; i < s; i++) {
26877 maskedWords.words[i] = this.words[i];
26879 maskedWords.length = s;
26883 // No-op, we should not move anything at all
26884 } else if (this.length
> s) {
26886 for (i =
0; i < this.length; i++) {
26887 this.words[i] = this.words[i + s];
26895 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
26896 var word = this.words[i] |
0;
26897 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
26898 carry = word & mask;
26901 // Push carried bits as a mask
26902 if (maskedWords && carry !==
0) {
26903 maskedWords.words[maskedWords.length++] = carry;
26906 if (this.length ===
0) {
26911 return this.strip();
26914 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
26915 // TODO(indutny): implement me
26916 assert(this.negative ===
0);
26917 return this.iushrn(bits, hint, extended);
26921 BN.prototype.shln = function shln (bits) {
26922 return this.clone().ishln(bits);
26925 BN.prototype.ushln = function ushln (bits) {
26926 return this.clone().iushln(bits);
26930 BN.prototype.shrn = function shrn (bits) {
26931 return this.clone().ishrn(bits);
26934 BN.prototype.ushrn = function ushrn (bits) {
26935 return this.clone().iushrn(bits);
26938 // Test if n bit is set
26939 BN.prototype.testn = function testn (bit) {
26940 assert(typeof bit === 'number' && bit
>=
0);
26942 var s = (bit - r) /
26;
26945 // Fast case: bit is much higher than all existing words
26946 if (this.length <= s) return false;
26948 // Check bit and return
26949 var w = this.words[s];
26954 // Return only lowers bits of number (in-place)
26955 BN.prototype.imaskn = function imaskn (bits) {
26956 assert(typeof bits === 'number' && bits
>=
0);
26958 var s = (bits - r) /
26;
26960 assert(this.negative ===
0, 'imaskn works only with positive numbers');
26962 if (this.length <= s) {
26969 this.length = Math.min(s, this.length);
26972 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26973 this.words[this.length -
1] &= mask;
26976 return this.strip();
26979 // Return only lowers bits of number
26980 BN.prototype.maskn = function maskn (bits) {
26981 return this.clone().imaskn(bits);
26984 // Add plain number `num` to `this`
26985 BN.prototype.iaddn = function iaddn (num) {
26986 assert(typeof num === 'number');
26987 assert(num <
0x4000000);
26988 if (num <
0) return this.isubn(-num);
26990 // Possible sign change
26991 if (this.negative !==
0) {
26992 if (this.length ===
1 && (this.words[
0] |
0) < num) {
26993 this.words[
0] = num - (this.words[
0] |
0);
27004 // Add without checks
27005 return this._iaddn(num);
27008 BN.prototype._iaddn = function _iaddn (num) {
27009 this.words[
0] += num;
27012 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
27013 this.words[i] -=
0x4000000;
27014 if (i === this.length -
1) {
27015 this.words[i +
1] =
1;
27017 this.words[i +
1]++;
27020 this.length = Math.max(this.length, i +
1);
27025 // Subtract plain number `num` from `this`
27026 BN.prototype.isubn = function isubn (num) {
27027 assert(typeof num === 'number');
27028 assert(num <
0x4000000);
27029 if (num <
0) return this.iaddn(-num);
27031 if (this.negative !==
0) {
27038 this.words[
0] -= num;
27040 if (this.length ===
1 && this.words[
0] <
0) {
27041 this.words[
0] = -this.words[
0];
27045 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
27046 this.words[i] +=
0x4000000;
27047 this.words[i +
1] -=
1;
27051 return this.strip();
27054 BN.prototype.addn = function addn (num) {
27055 return this.clone().iaddn(num);
27058 BN.prototype.subn = function subn (num) {
27059 return this.clone().isubn(num);
27062 BN.prototype.iabs = function iabs () {
27068 BN.prototype.abs = function abs () {
27069 return this.clone().iabs();
27072 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
27073 var len = num.length + shift;
27080 for (i =
0; i < num.length; i++) {
27081 w = (this.words[i + shift] |
0) + carry;
27082 var right = (num.words[i] |
0) * mul;
27083 w -= right &
0x3ffffff;
27084 carry = (w
>> 26) - ((right /
0x4000000) |
0);
27085 this.words[i + shift] = w &
0x3ffffff;
27087 for (; i < this.length - shift; i++) {
27088 w = (this.words[i + shift] |
0) + carry;
27090 this.words[i + shift] = w &
0x3ffffff;
27093 if (carry ===
0) return this.strip();
27095 // Subtraction overflow
27096 assert(carry === -
1);
27098 for (i =
0; i < this.length; i++) {
27099 w = -(this.words[i] |
0) + carry;
27101 this.words[i] = w &
0x3ffffff;
27105 return this.strip();
27108 BN.prototype._wordDiv = function _wordDiv (num, mode) {
27109 var shift = this.length - num.length;
27111 var a = this.clone();
27115 var bhi = b.words[b.length -
1] |
0;
27116 var bhiBits = this._countBits(bhi);
27117 shift =
26 - bhiBits;
27119 b = b.ushln(shift);
27121 bhi = b.words[b.length -
1] |
0;
27124 // Initialize quotient
27125 var m = a.length - b.length;
27128 if (mode !== 'mod') {
27131 q.words = new Array(q.length);
27132 for (var i =
0; i < q.length; i++) {
27137 var diff = a.clone()._ishlnsubmul(b,
1, m);
27138 if (diff.negative ===
0) {
27145 for (var j = m -
1; j
>=
0; j--) {
27146 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
27147 (a.words[b.length + j -
1] |
0);
27149 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
27151 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
27153 a._ishlnsubmul(b, qj, j);
27154 while (a.negative !==
0) {
27157 a._ishlnsubmul(b,
1, j);
27172 if (mode !== 'div' && shift !==
0) {
27182 // NOTE:
1) `mode` can be set to `mod` to request mod only,
27183 // to `div` to request div only, or be absent to
27184 // request both div & mod
27185 //
2) `positive` is true if unsigned mod is requested
27186 BN.prototype.divmod = function divmod (num, mode, positive) {
27187 assert(!num.isZero());
27189 if (this.isZero()) {
27197 if (this.negative !==
0 && num.negative ===
0) {
27198 res = this.neg().divmod(num, mode);
27200 if (mode !== 'mod') {
27201 div = res.div.neg();
27204 if (mode !== 'div') {
27205 mod = res.mod.neg();
27206 if (positive && mod.negative !==
0) {
27217 if (this.negative ===
0 && num.negative !==
0) {
27218 res = this.divmod(num.neg(), mode);
27220 if (mode !== 'mod') {
27221 div = res.div.neg();
27230 if ((this.negative & num.negative) !==
0) {
27231 res = this.neg().divmod(num.neg(), mode);
27233 if (mode !== 'div') {
27234 mod = res.mod.neg();
27235 if (positive && mod.negative !==
0) {
27246 // Both numbers are positive at this point
27248 // Strip both numbers to approximate shift value
27249 if (num.length
> this.length || this.cmp(num) <
0) {
27256 // Very short reduction
27257 if (num.length ===
1) {
27258 if (mode === 'div') {
27260 div: this.divn(num.words[
0]),
27265 if (mode === 'mod') {
27268 mod: new BN(this.modn(num.words[
0]))
27273 div: this.divn(num.words[
0]),
27274 mod: new BN(this.modn(num.words[
0]))
27278 return this._wordDiv(num, mode);
27281 // Find `this` / `num`
27282 BN.prototype.div = function div (num) {
27283 return this.divmod(num, 'div', false).div;
27286 // Find `this` % `num`
27287 BN.prototype.mod = function mod (num) {
27288 return this.divmod(num, 'mod', false).mod;
27291 BN.prototype.umod = function umod (num) {
27292 return this.divmod(num, 'mod', true).mod;
27295 // Find Round(`this` / `num`)
27296 BN.prototype.divRound = function divRound (num) {
27297 var dm = this.divmod(num);
27299 // Fast case - exact division
27300 if (dm.mod.isZero()) return dm.div;
27302 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
27304 var half = num.ushrn(
1);
27305 var r2 = num.andln(
1);
27306 var cmp = mod.cmp(half);
27309 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
27312 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
27315 BN.prototype.modn = function modn (num) {
27316 assert(num <=
0x3ffffff);
27317 var p = (
1 <<
26) % num;
27320 for (var i = this.length -
1; i
>=
0; i--) {
27321 acc = (p * acc + (this.words[i] |
0)) % num;
27327 // In-place division by number
27328 BN.prototype.idivn = function idivn (num) {
27329 assert(num <=
0x3ffffff);
27332 for (var i = this.length -
1; i
>=
0; i--) {
27333 var w = (this.words[i] |
0) + carry *
0x4000000;
27334 this.words[i] = (w / num) |
0;
27338 return this.strip();
27341 BN.prototype.divn = function divn (num) {
27342 return this.clone().idivn(num);
27345 BN.prototype.egcd = function egcd (p) {
27346 assert(p.negative ===
0);
27347 assert(!p.isZero());
27352 if (x.negative !==
0) {
27358 // A * x + B * y = x
27362 // C * x + D * y = y
27368 while (x.isEven() && y.isEven()) {
27374 var yp = y.clone();
27375 var xp = x.clone();
27377 while (!x.isZero()) {
27378 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
27382 if (A.isOdd() || B.isOdd()) {
27392 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
27396 if (C.isOdd() || D.isOdd()) {
27406 if (x.cmp(y)
>=
0) {
27424 // This is reduced incarnation of the binary EEA
27425 // above, designated to invert members of the
27426 // _prime_ fields F(p) at a maximal speed
27427 BN.prototype._invmp = function _invmp (p) {
27428 assert(p.negative ===
0);
27429 assert(!p.isZero());
27434 if (a.negative !==
0) {
27440 var x1 = new BN(
1);
27441 var x2 = new BN(
0);
27443 var delta = b.clone();
27445 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
27446 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
27458 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
27470 if (a.cmp(b)
>=
0) {
27480 if (a.cmpn(
1) ===
0) {
27486 if (res.cmpn(
0) <
0) {
27493 BN.prototype.gcd = function gcd (num) {
27494 if (this.isZero()) return num.abs();
27495 if (num.isZero()) return this.abs();
27497 var a = this.clone();
27498 var b = num.clone();
27502 // Remove common factor of two
27503 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
27509 while (a.isEven()) {
27512 while (b.isEven()) {
27518 // Swap `a` and `b` to make `a` always bigger than `b`
27522 } else if (r ===
0 || b.cmpn(
1) ===
0) {
27529 return b.iushln(shift);
27532 // Invert number in the field F(num)
27533 BN.prototype.invm = function invm (num) {
27534 return this.egcd(num).a.umod(num);
27537 BN.prototype.isEven = function isEven () {
27538 return (this.words[
0] &
1) ===
0;
27541 BN.prototype.isOdd = function isOdd () {
27542 return (this.words[
0] &
1) ===
1;
27545 // And first word and num
27546 BN.prototype.andln = function andln (num) {
27547 return this.words[
0] & num;
27550 // Increment at the bit position in-line
27551 BN.prototype.bincn = function bincn (bit) {
27552 assert(typeof bit === 'number');
27554 var s = (bit - r) /
26;
27557 // Fast case: bit is much higher than all existing words
27558 if (this.length <= s) {
27559 this._expand(s +
1);
27560 this.words[s] |= q;
27564 // Add bit and propagate, if needed
27566 for (var i = s; carry !==
0 && i < this.length; i++) {
27567 var w = this.words[i] |
0;
27574 this.words[i] = carry;
27580 BN.prototype.isZero = function isZero () {
27581 return this.length ===
1 && this.words[
0] ===
0;
27584 BN.prototype.cmpn = function cmpn (num) {
27585 var negative = num <
0;
27587 if (this.negative !==
0 && !negative) return -
1;
27588 if (this.negative ===
0 && negative) return
1;
27593 if (this.length
> 1) {
27600 assert(num <=
0x3ffffff, 'Number is too big');
27602 var w = this.words[
0] |
0;
27603 res = w === num ?
0 : w < num ? -
1 :
1;
27605 if (this.negative !==
0) return -res |
0;
27609 // Compare two numbers and return:
27610 //
1 - if `this`
> `num`
27611 //
0 - if `this` == `num`
27612 // -
1 - if `this` < `num`
27613 BN.prototype.cmp = function cmp (num) {
27614 if (this.negative !==
0 && num.negative ===
0) return -
1;
27615 if (this.negative ===
0 && num.negative !==
0) return
1;
27617 var res = this.ucmp(num);
27618 if (this.negative !==
0) return -res |
0;
27622 // Unsigned comparison
27623 BN.prototype.ucmp = function ucmp (num) {
27624 // At this point both numbers have the same sign
27625 if (this.length
> num.length) return
1;
27626 if (this.length < num.length) return -
1;
27629 for (var i = this.length -
1; i
>=
0; i--) {
27630 var a = this.words[i] |
0;
27631 var b = num.words[i] |
0;
27633 if (a === b) continue;
27636 } else if (a
> b) {
27644 BN.prototype.gtn = function gtn (num) {
27645 return this.cmpn(num) ===
1;
27648 BN.prototype.gt = function gt (num) {
27649 return this.cmp(num) ===
1;
27652 BN.prototype.gten = function gten (num) {
27653 return this.cmpn(num)
>=
0;
27656 BN.prototype.gte = function gte (num) {
27657 return this.cmp(num)
>=
0;
27660 BN.prototype.ltn = function ltn (num) {
27661 return this.cmpn(num) === -
1;
27664 BN.prototype.lt = function lt (num) {
27665 return this.cmp(num) === -
1;
27668 BN.prototype.lten = function lten (num) {
27669 return this.cmpn(num) <=
0;
27672 BN.prototype.lte = function lte (num) {
27673 return this.cmp(num) <=
0;
27676 BN.prototype.eqn = function eqn (num) {
27677 return this.cmpn(num) ===
0;
27680 BN.prototype.eq = function eq (num) {
27681 return this.cmp(num) ===
0;
27685 // A reduce context, could be using montgomery or something better, depending
27686 // on the `m` itself.
27688 BN.red = function red (num) {
27689 return new Red(num);
27692 BN.prototype.toRed = function toRed (ctx) {
27693 assert(!this.red, 'Already a number in reduction context');
27694 assert(this.negative ===
0, 'red works only with positives');
27695 return ctx.convertTo(this)._forceRed(ctx);
27698 BN.prototype.fromRed = function fromRed () {
27699 assert(this.red, 'fromRed works only with numbers in reduction context');
27700 return this.red.convertFrom(this);
27703 BN.prototype._forceRed = function _forceRed (ctx) {
27708 BN.prototype.forceRed = function forceRed (ctx) {
27709 assert(!this.red, 'Already a number in reduction context');
27710 return this._forceRed(ctx);
27713 BN.prototype.redAdd = function redAdd (num) {
27714 assert(this.red, 'redAdd works only with red numbers');
27715 return this.red.add(this, num);
27718 BN.prototype.redIAdd = function redIAdd (num) {
27719 assert(this.red, 'redIAdd works only with red numbers');
27720 return this.red.iadd(this, num);
27723 BN.prototype.redSub = function redSub (num) {
27724 assert(this.red, 'redSub works only with red numbers');
27725 return this.red.sub(this, num);
27728 BN.prototype.redISub = function redISub (num) {
27729 assert(this.red, 'redISub works only with red numbers');
27730 return this.red.isub(this, num);
27733 BN.prototype.redShl = function redShl (num) {
27734 assert(this.red, 'redShl works only with red numbers');
27735 return this.red.shl(this, num);
27738 BN.prototype.redMul = function redMul (num) {
27739 assert(this.red, 'redMul works only with red numbers');
27740 this.red._verify2(this, num);
27741 return this.red.mul(this, num);
27744 BN.prototype.redIMul = function redIMul (num) {
27745 assert(this.red, 'redMul works only with red numbers');
27746 this.red._verify2(this, num);
27747 return this.red.imul(this, num);
27750 BN.prototype.redSqr = function redSqr () {
27751 assert(this.red, 'redSqr works only with red numbers');
27752 this.red._verify1(this);
27753 return this.red.sqr(this);
27756 BN.prototype.redISqr = function redISqr () {
27757 assert(this.red, 'redISqr works only with red numbers');
27758 this.red._verify1(this);
27759 return this.red.isqr(this);
27762 // Square root over p
27763 BN.prototype.redSqrt = function redSqrt () {
27764 assert(this.red, 'redSqrt works only with red numbers');
27765 this.red._verify1(this);
27766 return this.red.sqrt(this);
27769 BN.prototype.redInvm = function redInvm () {
27770 assert(this.red, 'redInvm works only with red numbers');
27771 this.red._verify1(this);
27772 return this.red.invm(this);
27775 // Return negative clone of `this` % `red modulo`
27776 BN.prototype.redNeg = function redNeg () {
27777 assert(this.red, 'redNeg works only with red numbers');
27778 this.red._verify1(this);
27779 return this.red.neg(this);
27782 BN.prototype.redPow = function redPow (num) {
27783 assert(this.red && !num.red, 'redPow(normalNum)');
27784 this.red._verify1(this);
27785 return this.red.pow(this, num);
27788 // Prime numbers with efficient reduction
27796 // Pseudo-Mersenne prime
27797 function MPrime (name, p) {
27800 this.p = new BN(p,
16);
27801 this.n = this.p.bitLength();
27802 this.k = new BN(
1).iushln(this.n).isub(this.p);
27804 this.tmp = this._tmp();
27807 MPrime.prototype._tmp = function _tmp () {
27808 var tmp = new BN(null);
27809 tmp.words = new Array(Math.ceil(this.n /
13));
27813 MPrime.prototype.ireduce = function ireduce (num) {
27814 // Assumes that `num` is less than `P^
2`
27815 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
27820 this.split(r, this.tmp);
27822 r = r.iadd(this.tmp);
27823 rlen = r.bitLength();
27824 } while (rlen
> this.n);
27826 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
27830 } else if (cmp
> 0) {
27839 MPrime.prototype.split = function split (input, out) {
27840 input.iushrn(this.n,
0, out);
27843 MPrime.prototype.imulK = function imulK (num) {
27844 return num.imul(this.k);
27851 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
27853 inherits(K256, MPrime);
27855 K256.prototype.split = function split (input, output) {
27856 //
256 =
9 *
26 +
22
27857 var mask =
0x3fffff;
27859 var outLen = Math.min(input.length,
9);
27860 for (var i =
0; i < outLen; i++) {
27861 output.words[i] = input.words[i];
27863 output.length = outLen;
27865 if (input.length <=
9) {
27866 input.words[
0] =
0;
27871 // Shift by
9 limbs
27872 var prev = input.words[
9];
27873 output.words[output.length++] = prev & mask;
27875 for (i =
10; i < input.length; i++) {
27876 var next = input.words[i] |
0;
27877 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
27881 input.words[i -
10] = prev;
27882 if (prev ===
0 && input.length
> 10) {
27883 input.length -=
10;
27889 K256.prototype.imulK = function imulK (num) {
27890 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
27891 num.words[num.length] =
0;
27892 num.words[num.length +
1] =
0;
27895 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
27897 for (var i =
0; i < num.length; i++) {
27898 var w = num.words[i] |
0;
27900 num.words[i] = lo &
0x3ffffff;
27901 lo = w *
0x40 + ((lo /
0x4000000) |
0);
27904 // Fast length reduction
27905 if (num.words[num.length -
1] ===
0) {
27907 if (num.words[num.length -
1] ===
0) {
27918 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
27920 inherits(P224, MPrime);
27926 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
27928 inherits(P192, MPrime);
27930 function P25519 () {
27935 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
27937 inherits(P25519, MPrime);
27939 P25519.prototype.imulK = function imulK (num) {
27942 for (var i =
0; i < num.length; i++) {
27943 var hi = (num.words[i] |
0) *
0x13 + carry;
27944 var lo = hi &
0x3ffffff;
27951 num.words[num.length++] = carry;
27956 // Exported mostly for testing purposes, use plain name instead
27957 BN._prime = function prime (name) {
27958 // Cached version of prime
27959 if (primes[name]) return primes[name];
27962 if (name === 'k256') {
27963 prime = new K256();
27964 } else if (name === 'p224') {
27965 prime = new P224();
27966 } else if (name === 'p192') {
27967 prime = new P192();
27968 } else if (name === 'p25519') {
27969 prime = new P25519();
27971 throw new Error('Unknown prime ' + name);
27973 primes[name] = prime;
27979 // Base reduction engine
27982 if (typeof m === 'string') {
27983 var prime = BN._prime(m);
27985 this.prime = prime;
27987 assert(m.gtn(
1), 'modulus must be greater than
1');
27993 Red.prototype._verify1 = function _verify1 (a) {
27994 assert(a.negative ===
0, 'red works only with positives');
27995 assert(a.red, 'red works only with red numbers');
27998 Red.prototype._verify2 = function _verify2 (a, b) {
27999 assert((a.negative | b.negative) ===
0, 'red works only with positives');
28000 assert(a.red && a.red === b.red,
28001 'red works only with red numbers');
28004 Red.prototype.imod = function imod (a) {
28005 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
28006 return a.umod(this.m)._forceRed(this);
28009 Red.prototype.neg = function neg (a) {
28014 return this.m.sub(a)._forceRed(this);
28017 Red.prototype.add = function add (a, b) {
28018 this._verify2(a, b);
28020 var res = a.add(b);
28021 if (res.cmp(this.m)
>=
0) {
28024 return res._forceRed(this);
28027 Red.prototype.iadd = function iadd (a, b) {
28028 this._verify2(a, b);
28030 var res = a.iadd(b);
28031 if (res.cmp(this.m)
>=
0) {
28037 Red.prototype.sub = function sub (a, b) {
28038 this._verify2(a, b);
28040 var res = a.sub(b);
28041 if (res.cmpn(
0) <
0) {
28044 return res._forceRed(this);
28047 Red.prototype.isub = function isub (a, b) {
28048 this._verify2(a, b);
28050 var res = a.isub(b);
28051 if (res.cmpn(
0) <
0) {
28057 Red.prototype.shl = function shl (a, num) {
28059 return this.imod(a.ushln(num));
28062 Red.prototype.imul = function imul (a, b) {
28063 this._verify2(a, b);
28064 return this.imod(a.imul(b));
28067 Red.prototype.mul = function mul (a, b) {
28068 this._verify2(a, b);
28069 return this.imod(a.mul(b));
28072 Red.prototype.isqr = function isqr (a) {
28073 return this.imul(a, a.clone());
28076 Red.prototype.sqr = function sqr (a) {
28077 return this.mul(a, a);
28080 Red.prototype.sqrt = function sqrt (a) {
28081 if (a.isZero()) return a.clone();
28083 var mod3 = this.m.andln(
3);
28084 assert(mod3 %
2 ===
1);
28088 var pow = this.m.add(new BN(
1)).iushrn(
2);
28089 return this.pow(a, pow);
28092 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
28094 // Find Q and S, that Q *
2 ^ S = (P -
1)
28095 var q = this.m.subn(
1);
28097 while (!q.isZero() && q.andln(
1) ===
0) {
28101 assert(!q.isZero());
28103 var one = new BN(
1).toRed(this);
28104 var nOne = one.redNeg();
28106 // Find quadratic non-residue
28107 // NOTE: Max is such because of generalized Riemann hypothesis.
28108 var lpow = this.m.subn(
1).iushrn(
1);
28109 var z = this.m.bitLength();
28110 z = new BN(
2 * z * z).toRed(this);
28112 while (this.pow(z, lpow).cmp(nOne) !==
0) {
28116 var c = this.pow(z, q);
28117 var r = this.pow(a, q.addn(
1).iushrn(
1));
28118 var t = this.pow(a, q);
28120 while (t.cmp(one) !==
0) {
28122 for (var i =
0; tmp.cmp(one) !==
0; i++) {
28123 tmp = tmp.redSqr();
28126 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
28137 Red.prototype.invm = function invm (a) {
28138 var inv = a._invmp(this.m);
28139 if (inv.negative !==
0) {
28141 return this.imod(inv).redNeg();
28143 return this.imod(inv);
28147 Red.prototype.pow = function pow (a, num) {
28148 if (num.isZero()) return new BN(
1);
28149 if (num.cmpn(
1) ===
0) return a.clone();
28151 var windowSize =
4;
28152 var wnd = new Array(
1 << windowSize);
28153 wnd[
0] = new BN(
1).toRed(this);
28155 for (var i =
2; i < wnd.length; i++) {
28156 wnd[i] = this.mul(wnd[i -
1], a);
28161 var currentLen =
0;
28162 var start = num.bitLength() %
26;
28167 for (i = num.length -
1; i
>=
0; i--) {
28168 var word = num.words[i];
28169 for (var j = start -
1; j
>=
0; j--) {
28170 var bit = (word
>> j) &
1;
28171 if (res !== wnd[
0]) {
28172 res = this.sqr(res);
28175 if (bit ===
0 && current ===
0) {
28183 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
28185 res = this.mul(res, wnd[current]);
28195 Red.prototype.convertTo = function convertTo (num) {
28196 var r = num.umod(this.m);
28198 return r === num ? r.clone() : r;
28201 Red.prototype.convertFrom = function convertFrom (num) {
28202 var res = num.clone();
28208 // Montgomery method engine
28211 BN.mont = function mont (num) {
28212 return new Mont(num);
28215 function Mont (m) {
28218 this.shift = this.m.bitLength();
28219 if (this.shift %
26 !==
0) {
28220 this.shift +=
26 - (this.shift %
26);
28223 this.r = new BN(
1).iushln(this.shift);
28224 this.r2 = this.imod(this.r.sqr());
28225 this.rinv = this.r._invmp(this.m);
28227 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
28228 this.minv = this.minv.umod(this.r);
28229 this.minv = this.r.sub(this.minv);
28231 inherits(Mont, Red);
28233 Mont.prototype.convertTo = function convertTo (num) {
28234 return this.imod(num.ushln(this.shift));
28237 Mont.prototype.convertFrom = function convertFrom (num) {
28238 var r = this.imod(num.mul(this.rinv));
28243 Mont.prototype.imul = function imul (a, b) {
28244 if (a.isZero() || b.isZero()) {
28251 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
28252 var u = t.isub(c).iushrn(this.shift);
28255 if (u.cmp(this.m)
>=
0) {
28256 res = u.isub(this.m);
28257 } else if (u.cmpn(
0) <
0) {
28258 res = u.iadd(this.m);
28261 return res._forceRed(this);
28264 Mont.prototype.mul = function mul (a, b) {
28265 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
28268 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
28269 var u = t.isub(c).iushrn(this.shift);
28271 if (u.cmp(this.m)
>=
0) {
28272 res = u.isub(this.m);
28273 } else if (u.cmpn(
0) <
0) {
28274 res = u.iadd(this.m);
28277 return res._forceRed(this);
28280 Mont.prototype.invm = function invm (a) {
28281 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
28282 var res = this.imod(a._invmp(this.m).mul(this.r2));
28283 return res._forceRed(this);
28285 })(typeof module === 'undefined' || module, this);
28287 },{}],
34:[function(require,module,exports){
28290 module.exports = function rand(len) {
28292 r = new Rand(null);
28294 return r.generate(len);
28297 function Rand(rand) {
28300 module.exports.Rand = Rand;
28302 Rand.prototype.generate = function generate(len) {
28303 return this._rand(len);
28306 if (typeof self === 'object') {
28307 if (self.crypto && self.crypto.getRandomValues) {
28309 Rand.prototype._rand = function _rand(n) {
28310 var arr = new Uint8Array(n);
28311 self.crypto.getRandomValues(arr);
28314 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
28316 Rand.prototype._rand = function _rand(n) {
28317 var arr = new Uint8Array(n);
28318 self.msCrypto.getRandomValues(arr);
28323 Rand.prototype._rand = function() {
28324 throw new Error('Not implemented yet');
28328 // Node.js or Web worker with no crypto support
28330 var crypto = require('crypto');
28332 Rand.prototype._rand = function _rand(n) {
28333 return crypto.randomBytes(n);
28336 // Emulate crypto API using randy
28337 Rand.prototype._rand = function _rand(n) {
28338 var res = new Uint8Array(n);
28339 for (var i =
0; i < res.length; i++)
28340 res[i] = this.rand.getByte();
28346 },{"crypto":
3}],
35:[function(require,module,exports){
28347 (function (Buffer){
28348 var Transform = require('stream').Transform
28349 var inherits = require('inherits')
28350 var StringDecoder = require('string_decoder').StringDecoder
28351 module.exports = CipherBase
28352 inherits(CipherBase, Transform)
28353 function CipherBase (hashMode) {
28354 Transform.call(this)
28355 this.hashMode = typeof hashMode === 'string'
28356 if (this.hashMode) {
28357 this[hashMode] = this._finalOrDigest
28359 this.final = this._finalOrDigest
28361 this._decoder = null
28362 this._encoding = null
28364 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
28365 if (typeof data === 'string') {
28366 data = new Buffer(data, inputEnc)
28368 var outData = this._update(data)
28369 if (this.hashMode) {
28373 outData = this._toString(outData, outputEnc)
28378 CipherBase.prototype.setAutoPadding = function () {}
28380 CipherBase.prototype.getAuthTag = function () {
28381 throw new Error('trying to get auth tag in unsupported state')
28384 CipherBase.prototype.setAuthTag = function () {
28385 throw new Error('trying to set auth tag in unsupported state')
28388 CipherBase.prototype.setAAD = function () {
28389 throw new Error('trying to set aad in unsupported state')
28392 CipherBase.prototype._transform = function (data, _, next) {
28395 if (this.hashMode) {
28398 this.push(this._update(data))
28406 CipherBase.prototype._flush = function (done) {
28409 this.push(this._final())
28416 CipherBase.prototype._finalOrDigest = function (outputEnc) {
28417 var outData = this._final() || new Buffer('')
28419 outData = this._toString(outData, outputEnc, true)
28424 CipherBase.prototype._toString = function (value, enc, fin) {
28425 if (!this._decoder) {
28426 this._decoder = new StringDecoder(enc)
28427 this._encoding = enc
28429 if (this._encoding !== enc) {
28430 throw new Error('can\'t switch encodings')
28432 var out = this._decoder.write(value)
28434 out += this._decoder.end()
28439 }).call(this,require("buffer").Buffer)
28440 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
28441 (function (Buffer){
28443 var inherits = require('inherits')
28444 var md5 = require('./md5')
28445 var rmd160 = require('ripemd160')
28446 var sha = require('sha.js')
28448 var Base = require('cipher-base')
28450 function HashNoConstructor(hash) {
28451 Base.call(this, 'digest')
28457 inherits(HashNoConstructor, Base)
28459 HashNoConstructor.prototype._update = function (data) {
28460 this.buffers.push(data)
28463 HashNoConstructor.prototype._final = function () {
28464 var buf = Buffer.concat(this.buffers)
28465 var r = this._hash(buf)
28466 this.buffers = null
28471 function Hash(hash) {
28472 Base.call(this, 'digest')
28477 inherits(Hash, Base)
28479 Hash.prototype._update = function (data) {
28480 this._hash.update(data)
28483 Hash.prototype._final = function () {
28484 return this._hash.digest()
28487 module.exports = function createHash (alg) {
28488 alg = alg.toLowerCase()
28489 if ('md5' === alg) return new HashNoConstructor(md5)
28490 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
28492 return new Hash(sha(alg))
28495 }).call(this,require("buffer").Buffer)
28496 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
28497 (function (Buffer){
28500 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
28503 function toArray(buf, bigEndian) {
28504 if ((buf.length % intSize) !==
0) {
28505 var len = buf.length + (intSize - (buf.length % intSize));
28506 buf = Buffer.concat([buf, zeroBuffer], len);
28510 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
28511 for (var i =
0; i < buf.length; i += intSize) {
28512 arr.push(fn.call(buf, i));
28517 function toBuffer(arr, size, bigEndian) {
28518 var buf = new Buffer(size);
28519 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
28520 for (var i =
0; i < arr.length; i++) {
28521 fn.call(buf, arr[i], i *
4, true);
28526 function hash(buf, fn, hashSize, bigEndian) {
28527 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
28528 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
28529 return toBuffer(arr, hashSize, bigEndian);
28531 exports.hash = hash;
28532 }).call(this,require("buffer").Buffer)
28533 },{"buffer":
5}],
38:[function(require,module,exports){
28536 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
28537 * Digest Algorithm, as defined in RFC
1321.
28538 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
28539 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
28540 * Distributed under the BSD License
28541 * See http://pajhome.org.uk/crypt/md5 for more info.
28544 var helpers = require('./helpers');
28547 * Calculate the MD5 of an array of little-endian words, and a bit length
28549 function core_md5(x, len)
28551 /* append padding */
28552 x[len
>> 5] |=
0x80 << ((len) %
32);
28553 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
28555 var a =
1732584193;
28556 var b = -
271733879;
28557 var c = -
1732584194;
28560 for(var i =
0; i < x.length; i +=
16)
28567 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
28568 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
28569 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
28570 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
28571 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
28572 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
28573 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
28574 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
28575 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
28576 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
28577 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
28578 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
28579 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
28580 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
28581 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
28582 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
28584 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
28585 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
28586 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
28587 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
28588 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
28589 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
28590 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
28591 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
28592 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
28593 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
28594 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
28595 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
28596 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
28597 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
28598 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
28599 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
28601 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
28602 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
28603 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
28604 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
28605 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
28606 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
28607 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
28608 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
28609 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
28610 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
28611 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
28612 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
28613 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
28614 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
28615 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
28616 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
28618 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
28619 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
28620 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
28621 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
28622 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
28623 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
28624 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
28625 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
28626 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
28627 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
28628 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
28629 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
28630 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
28631 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
28632 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
28633 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
28635 a = safe_add(a, olda);
28636 b = safe_add(b, oldb);
28637 c = safe_add(c, oldc);
28638 d = safe_add(d, oldd);
28640 return Array(a, b, c, d);
28645 * These functions implement the four basic operations the algorithm uses.
28647 function md5_cmn(q, a, b, x, s, t)
28649 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
28651 function md5_ff(a, b, c, d, x, s, t)
28653 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
28655 function md5_gg(a, b, c, d, x, s, t)
28657 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
28659 function md5_hh(a, b, c, d, x, s, t)
28661 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
28663 function md5_ii(a, b, c, d, x, s, t)
28665 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
28669 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
28670 * to work around bugs in some JS interpreters.
28672 function safe_add(x, y)
28674 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
28675 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
28676 return (msw <<
16) | (lsw &
0xFFFF);
28680 * Bitwise rotate a
32-bit number to the left.
28682 function bit_rol(num, cnt)
28684 return (num << cnt) | (num
>>> (
32 - cnt));
28687 module.exports = function md5(buf) {
28688 return helpers.hash(buf, core_md5,
16);
28690 },{"./helpers":
37}],
39:[function(require,module,exports){
28693 var elliptic = exports;
28695 elliptic.version = require('../package.json').version;
28696 elliptic.utils = require('./elliptic/utils');
28697 elliptic.rand = require('brorand');
28698 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
28699 elliptic.curve = require('./elliptic/curve');
28700 elliptic.curves = require('./elliptic/curves');
28703 elliptic.ec = require('./elliptic/ec');
28704 elliptic.eddsa = require('./elliptic/eddsa');
28706 },{"../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){
28709 var BN = require('bn.js');
28710 var elliptic = require('../../elliptic');
28711 var utils = elliptic.utils;
28712 var getNAF = utils.getNAF;
28713 var getJSF = utils.getJSF;
28714 var assert = utils.assert;
28716 function BaseCurve(type, conf) {
28718 this.p = new BN(conf.p,
16);
28720 // Use Montgomery, when there is no fast reduction for the prime
28721 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
28723 // Useful for many curves
28724 this.zero = new BN(
0).toRed(this.red);
28725 this.one = new BN(
1).toRed(this.red);
28726 this.two = new BN(
2).toRed(this.red);
28728 // Curve configuration, optional
28729 this.n = conf.n && new BN(conf.n,
16);
28730 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
28732 // Temporary arrays
28733 this._wnafT1 = new Array(
4);
28734 this._wnafT2 = new Array(
4);
28735 this._wnafT3 = new Array(
4);
28736 this._wnafT4 = new Array(
4);
28738 // Generalized Greg Maxwell's trick
28739 var adjustCount = this.n && this.p.div(this.n);
28740 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
28743 this._maxwellTrick = true;
28744 this.redN = this.n.toRed(this.red);
28747 module.exports = BaseCurve;
28749 BaseCurve.prototype.point = function point() {
28750 throw new Error('Not implemented');
28753 BaseCurve.prototype.validate = function validate() {
28754 throw new Error('Not implemented');
28757 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
28758 assert(p.precomputed);
28759 var doubles = p._getDoubles();
28761 var naf = getNAF(k,
1);
28762 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
28765 // Translate into more windowed form
28767 for (var j =
0; j < naf.length; j += doubles.step) {
28769 for (var k = j + doubles.step -
1; k
>= j; k--)
28770 nafW = (nafW <<
1) + naf[k];
28774 var a = this.jpoint(null, null, null);
28775 var b = this.jpoint(null, null, null);
28776 for (var i = I; i
> 0; i--) {
28777 for (var j =
0; j < repr.length; j++) {
28778 var nafW = repr[j];
28780 b = b.mixedAdd(doubles.points[j]);
28781 else if (nafW === -i)
28782 b = b.mixedAdd(doubles.points[j].neg());
28789 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
28792 // Precompute window
28793 var nafPoints = p._getNAFPoints(w);
28795 var wnd = nafPoints.points;
28798 var naf = getNAF(k, w);
28800 // Add `this`*(N+
1) for every w-NAF index
28801 var acc = this.jpoint(null, null, null);
28802 for (var i = naf.length -
1; i
>=
0; i--) {
28804 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
28814 if (p.type === 'affine') {
28817 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
28819 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
28823 acc = acc.add(wnd[(z -
1)
>> 1]);
28825 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
28828 return p.type === 'affine' ? acc.toP() : acc;
28831 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
28836 var wndWidth = this._wnafT1;
28837 var wnd = this._wnafT2;
28838 var naf = this._wnafT3;
28842 for (var i =
0; i < len; i++) {
28844 var nafPoints = p._getNAFPoints(defW);
28845 wndWidth[i] = nafPoints.wnd;
28846 wnd[i] = nafPoints.points;
28849 // Comb small window NAFs
28850 for (var i = len -
1; i
>=
1; i -=
2) {
28853 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
28854 naf[a] = getNAF(coeffs[a], wndWidth[a]);
28855 naf[b] = getNAF(coeffs[b], wndWidth[b]);
28856 max = Math.max(naf[a].length, max);
28857 max = Math.max(naf[b].length, max);
28868 // Try to avoid Projective points, if possible
28869 if (points[a].y.cmp(points[b].y) ===
0) {
28870 comb[
1] = points[a].add(points[b]);
28871 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28872 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
28873 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28874 comb[
2] = points[a].add(points[b].neg());
28876 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28877 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28892 var jsf = getJSF(coeffs[a], coeffs[b]);
28893 max = Math.max(jsf[
0].length, max);
28894 naf[a] = new Array(max);
28895 naf[b] = new Array(max);
28896 for (var j =
0; j < max; j++) {
28897 var ja = jsf[
0][j] |
0;
28898 var jb = jsf[
1][j] |
0;
28900 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
28906 var acc = this.jpoint(null, null, null);
28907 var tmp = this._wnafT4;
28908 for (var i = max; i
>=
0; i--) {
28913 for (var j =
0; j < len; j++) {
28914 tmp[j] = naf[j][i] |
0;
28929 for (var j =
0; j < len; j++) {
28935 p = wnd[j][(z -
1)
>> 1];
28937 p = wnd[j][(-z -
1)
>> 1].neg();
28939 if (p.type === 'affine')
28940 acc = acc.mixedAdd(p);
28945 // Zeroify references
28946 for (var i =
0; i < len; i++)
28949 if (jacobianResult)
28955 function BasePoint(curve, type) {
28956 this.curve = curve;
28958 this.precomputed = null;
28960 BaseCurve.BasePoint = BasePoint;
28962 BasePoint.prototype.eq = function eq(/*other*/) {
28963 throw new Error('Not implemented');
28966 BasePoint.prototype.validate = function validate() {
28967 return this.curve.validate(this);
28970 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
28971 bytes = utils.toArray(bytes, enc);
28973 var len = this.p.byteLength();
28975 // uncompressed, hybrid-odd, hybrid-even
28976 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
28977 bytes.length -
1 ===
2 * len) {
28978 if (bytes[
0] ===
0x06)
28979 assert(bytes[bytes.length -
1] %
2 ===
0);
28980 else if (bytes[
0] ===
0x07)
28981 assert(bytes[bytes.length -
1] %
2 ===
1);
28983 var res = this.point(bytes.slice(
1,
1 + len),
28984 bytes.slice(
1 + len,
1 +
2 * len));
28987 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
28988 bytes.length -
1 === len) {
28989 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
28991 throw new Error('Unknown point format');
28994 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
28995 return this.encode(enc, true);
28998 BasePoint.prototype._encode = function _encode(compact) {
28999 var len = this.curve.p.byteLength();
29000 var x = this.getX().toArray('be', len);
29003 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
29005 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
29008 BasePoint.prototype.encode = function encode(enc, compact) {
29009 return utils.encode(this._encode(compact), enc);
29012 BasePoint.prototype.precompute = function precompute(power) {
29013 if (this.precomputed)
29016 var precomputed = {
29021 precomputed.naf = this._getNAFPoints(
8);
29022 precomputed.doubles = this._getDoubles(
4, power);
29023 precomputed.beta = this._getBeta();
29024 this.precomputed = precomputed;
29029 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
29030 if (!this.precomputed)
29033 var doubles = this.precomputed.doubles;
29037 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
29040 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
29041 if (this.precomputed && this.precomputed.doubles)
29042 return this.precomputed.doubles;
29044 var doubles = [ this ];
29046 for (var i =
0; i < power; i += step) {
29047 for (var j =
0; j < step; j++)
29057 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
29058 if (this.precomputed && this.precomputed.naf)
29059 return this.precomputed.naf;
29061 var res = [ this ];
29062 var max = (
1 << wnd) -
1;
29063 var dbl = max ===
1 ? null : this.dbl();
29064 for (var i =
1; i < max; i++)
29065 res[i] = res[i -
1].add(dbl);
29072 BasePoint.prototype._getBeta = function _getBeta() {
29076 BasePoint.prototype.dblp = function dblp(k) {
29078 for (var i =
0; i < k; i++)
29083 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
29086 var curve = require('../curve');
29087 var elliptic = require('../../elliptic');
29088 var BN = require('bn.js');
29089 var inherits = require('inherits');
29090 var Base = curve.base;
29092 var assert = elliptic.utils.assert;
29094 function EdwardsCurve(conf) {
29095 // NOTE: Important as we are creating point in Base.call()
29096 this.twisted = (conf.a |
0) !==
1;
29097 this.mOneA = this.twisted && (conf.a |
0) === -
1;
29098 this.extended = this.mOneA;
29100 Base.call(this, 'edwards', conf);
29102 this.a = new BN(conf.a,
16).umod(this.red.m);
29103 this.a = this.a.toRed(this.red);
29104 this.c = new BN(conf.c,
16).toRed(this.red);
29105 this.c2 = this.c.redSqr();
29106 this.d = new BN(conf.d,
16).toRed(this.red);
29107 this.dd = this.d.redAdd(this.d);
29109 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
29110 this.oneC = (conf.c |
0) ===
1;
29112 inherits(EdwardsCurve, Base);
29113 module.exports = EdwardsCurve;
29115 EdwardsCurve.prototype._mulA = function _mulA(num) {
29117 return num.redNeg();
29119 return this.a.redMul(num);
29122 EdwardsCurve.prototype._mulC = function _mulC(num) {
29126 return this.c.redMul(num);
29129 // Just for compatibility with Short curve
29130 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
29131 return this.point(x, y, z, t);
29134 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
29137 x = x.toRed(this.red);
29139 var x2 = x.redSqr();
29140 var rhs = this.c2.redSub(this.a.redMul(x2));
29141 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
29143 var y2 = rhs.redMul(lhs.redInvm());
29144 var y = y2.redSqrt();
29145 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
29146 throw new Error('invalid point');
29148 var isOdd = y.fromRed().isOdd();
29149 if (odd && !isOdd || !odd && isOdd)
29152 return this.point(x, y);
29155 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
29158 y = y.toRed(this.red);
29160 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
29161 var y2 = y.redSqr();
29162 var lhs = y2.redSub(this.one);
29163 var rhs = y2.redMul(this.d).redAdd(this.one);
29164 var x2 = lhs.redMul(rhs.redInvm());
29166 if (x2.cmp(this.zero) ===
0) {
29168 throw new Error('invalid point');
29170 return this.point(this.zero, y);
29173 var x = x2.redSqrt();
29174 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
29175 throw new Error('invalid point');
29177 if (x.isOdd() !== odd)
29180 return this.point(x, y);
29183 EdwardsCurve.prototype.validate = function validate(point) {
29184 if (point.isInfinity())
29187 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
29190 var x2 = point.x.redSqr();
29191 var y2 = point.y.redSqr();
29192 var lhs = x2.redMul(this.a).redAdd(y2);
29193 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
29195 return lhs.cmp(rhs) ===
0;
29198 function Point(curve, x, y, z, t) {
29199 Base.BasePoint.call(this, curve, 'projective');
29200 if (x === null && y === null && z === null) {
29201 this.x = this.curve.zero;
29202 this.y = this.curve.one;
29203 this.z = this.curve.one;
29204 this.t = this.curve.zero;
29207 this.x = new BN(x,
16);
29208 this.y = new BN(y,
16);
29209 this.z = z ? new BN(z,
16) : this.curve.one;
29210 this.t = t && new BN(t,
16);
29212 this.x = this.x.toRed(this.curve.red);
29214 this.y = this.y.toRed(this.curve.red);
29216 this.z = this.z.toRed(this.curve.red);
29217 if (this.t && !this.t.red)
29218 this.t = this.t.toRed(this.curve.red);
29219 this.zOne = this.z === this.curve.one;
29221 // Use extended coordinates
29222 if (this.curve.extended && !this.t) {
29223 this.t = this.x.redMul(this.y);
29225 this.t = this.t.redMul(this.z.redInvm());
29229 inherits(Point, Base.BasePoint);
29231 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
29232 return Point.fromJSON(this, obj);
29235 EdwardsCurve.prototype.point = function point(x, y, z, t) {
29236 return new Point(this, x, y, z, t);
29239 Point.fromJSON = function fromJSON(curve, obj) {
29240 return new Point(curve, obj[
0], obj[
1], obj[
2]);
29243 Point.prototype.inspect = function inspect() {
29244 if (this.isInfinity())
29245 return '
<EC Point Infinity
>';
29246 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29247 ' y: ' + this.y.fromRed().toString(
16,
2) +
29248 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
29251 Point.prototype.isInfinity = function isInfinity() {
29252 // XXX This code assumes that zero is always zero in red
29253 return this.x.cmpn(
0) ===
0 &&
29254 this.y.cmp(this.z) ===
0;
29257 Point.prototype._extDbl = function _extDbl() {
29258 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
29259 // #doubling-dbl-
2008-hwcd
29263 var a = this.x.redSqr();
29265 var b = this.y.redSqr();
29267 var c = this.z.redSqr();
29270 var d = this.curve._mulA(a);
29271 // E = (X1 + Y1)^
2 - A - B
29272 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
29274 var g = d.redAdd(b);
29276 var f = g.redSub(c);
29278 var h = d.redSub(b);
29280 var nx = e.redMul(f);
29282 var ny = g.redMul(h);
29284 var nt = e.redMul(h);
29286 var nz = f.redMul(g);
29287 return this.curve.point(nx, ny, nz, nt);
29290 Point.prototype._projDbl = function _projDbl() {
29291 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
29292 // #doubling-dbl-
2008-bbjlp
29293 // #doubling-dbl-
2007-bl
29295 // Generally
3M +
4S or
2M +
4S
29298 var b = this.x.redAdd(this.y).redSqr();
29300 var c = this.x.redSqr();
29302 var d = this.y.redSqr();
29307 if (this.curve.twisted) {
29309 var e = this.curve._mulA(c);
29311 var f = e.redAdd(d);
29313 // X3 = (B - C - D) * (F -
2)
29314 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
29315 // Y3 = F * (E - D)
29316 ny = f.redMul(e.redSub(d));
29317 // Z3 = F^
2 -
2 * F
29318 nz = f.redSqr().redSub(f).redSub(f);
29321 var h = this.z.redSqr();
29323 var j = f.redSub(h).redISub(h);
29325 nx = b.redSub(c).redISub(d).redMul(j);
29326 // Y3 = F * (E - D)
29327 ny = f.redMul(e.redSub(d));
29333 var e = c.redAdd(d);
29335 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
29337 var j = e.redSub(h).redSub(h);
29338 // X3 = c * (B - E) * J
29339 nx = this.curve._mulC(b.redISub(e)).redMul(j);
29340 // Y3 = c * E * (C - D)
29341 ny = this.curve._mulC(e).redMul(c.redISub(d));
29345 return this.curve.point(nx, ny, nz);
29348 Point.prototype.dbl = function dbl() {
29349 if (this.isInfinity())
29352 // Double in extended coordinates
29353 if (this.curve.extended)
29354 return this._extDbl();
29356 return this._projDbl();
29359 Point.prototype._extAdd = function _extAdd(p) {
29360 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
29361 // #addition-add-
2008-hwcd-
3
29364 // A = (Y1 - X1) * (Y2 - X2)
29365 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
29366 // B = (Y1 + X1) * (Y2 + X2)
29367 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
29369 var c = this.t.redMul(this.curve.dd).redMul(p.t);
29371 var d = this.z.redMul(p.z.redAdd(p.z));
29373 var e = b.redSub(a);
29375 var f = d.redSub(c);
29377 var g = d.redAdd(c);
29379 var h = b.redAdd(a);
29381 var nx = e.redMul(f);
29383 var ny = g.redMul(h);
29385 var nt = e.redMul(h);
29387 var nz = f.redMul(g);
29388 return this.curve.point(nx, ny, nz, nt);
29391 Point.prototype._projAdd = function _projAdd(p) {
29392 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
29393 // #addition-add-
2008-bbjlp
29394 // #addition-add-
2007-bl
29398 var a = this.z.redMul(p.z);
29400 var b = a.redSqr();
29402 var c = this.x.redMul(p.x);
29404 var d = this.y.redMul(p.y);
29406 var e = this.curve.d.redMul(c).redMul(d);
29408 var f = b.redSub(e);
29410 var g = b.redAdd(e);
29411 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
29412 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
29413 var nx = a.redMul(f).redMul(tmp);
29416 if (this.curve.twisted) {
29417 // Y3 = A * G * (D - a * C)
29418 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
29422 // Y3 = A * G * (D - C)
29423 ny = a.redMul(g).redMul(d.redSub(c));
29425 nz = this.curve._mulC(f).redMul(g);
29427 return this.curve.point(nx, ny, nz);
29430 Point.prototype.add = function add(p) {
29431 if (this.isInfinity())
29433 if (p.isInfinity())
29436 if (this.curve.extended)
29437 return this._extAdd(p);
29439 return this._projAdd(p);
29442 Point.prototype.mul = function mul(k) {
29443 if (this._hasDoubles(k))
29444 return this.curve._fixedNafMul(this, k);
29446 return this.curve._wnafMul(this, k);
29449 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
29450 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
29453 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
29454 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
29457 Point.prototype.normalize = function normalize() {
29461 // Normalize coordinates
29462 var zi = this.z.redInvm();
29463 this.x = this.x.redMul(zi);
29464 this.y = this.y.redMul(zi);
29466 this.t = this.t.redMul(zi);
29467 this.z = this.curve.one;
29472 Point.prototype.neg = function neg() {
29473 return this.curve.point(this.x.redNeg(),
29476 this.t && this.t.redNeg());
29479 Point.prototype.getX = function getX() {
29481 return this.x.fromRed();
29484 Point.prototype.getY = function getY() {
29486 return this.y.fromRed();
29489 Point.prototype.eq = function eq(other) {
29490 return this === other ||
29491 this.getX().cmp(other.getX()) ===
0 &&
29492 this.getY().cmp(other.getY()) ===
0;
29495 Point.prototype.eqXToP = function eqXToP(x) {
29496 var rx = x.toRed(this.curve.red).redMul(this.z);
29497 if (this.x.cmp(rx) ===
0)
29500 var xc = x.clone();
29501 var t = this.curve.redN.redMul(this.z);
29503 xc.iadd(this.curve.n);
29504 if (xc.cmp(this.curve.p)
>=
0)
29508 if (this.x.cmp(rx) ===
0)
29514 // Compatibility with BaseCurve
29515 Point.prototype.toP = Point.prototype.normalize;
29516 Point.prototype.mixedAdd = Point.prototype.add;
29518 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
29521 var curve = exports;
29523 curve.base = require('./base');
29524 curve.short = require('./short');
29525 curve.mont = require('./mont');
29526 curve.edwards = require('./edwards');
29528 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
29531 var curve = require('../curve');
29532 var BN = require('bn.js');
29533 var inherits = require('inherits');
29534 var Base = curve.base;
29536 var elliptic = require('../../elliptic');
29537 var utils = elliptic.utils;
29539 function MontCurve(conf) {
29540 Base.call(this, 'mont', conf);
29542 this.a = new BN(conf.a,
16).toRed(this.red);
29543 this.b = new BN(conf.b,
16).toRed(this.red);
29544 this.i4 = new BN(
4).toRed(this.red).redInvm();
29545 this.two = new BN(
2).toRed(this.red);
29546 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
29548 inherits(MontCurve, Base);
29549 module.exports = MontCurve;
29551 MontCurve.prototype.validate = function validate(point) {
29552 var x = point.normalize().x;
29553 var x2 = x.redSqr();
29554 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
29555 var y = rhs.redSqrt();
29557 return y.redSqr().cmp(rhs) ===
0;
29560 function Point(curve, x, z) {
29561 Base.BasePoint.call(this, curve, 'projective');
29562 if (x === null && z === null) {
29563 this.x = this.curve.one;
29564 this.z = this.curve.zero;
29566 this.x = new BN(x,
16);
29567 this.z = new BN(z,
16);
29569 this.x = this.x.toRed(this.curve.red);
29571 this.z = this.z.toRed(this.curve.red);
29574 inherits(Point, Base.BasePoint);
29576 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
29577 return this.point(utils.toArray(bytes, enc),
1);
29580 MontCurve.prototype.point = function point(x, z) {
29581 return new Point(this, x, z);
29584 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
29585 return Point.fromJSON(this, obj);
29588 Point.prototype.precompute = function precompute() {
29592 Point.prototype._encode = function _encode() {
29593 return this.getX().toArray('be', this.curve.p.byteLength());
29596 Point.fromJSON = function fromJSON(curve, obj) {
29597 return new Point(curve, obj[
0], obj[
1] || curve.one);
29600 Point.prototype.inspect = function inspect() {
29601 if (this.isInfinity())
29602 return '
<EC Point Infinity
>';
29603 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29604 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
29607 Point.prototype.isInfinity = function isInfinity() {
29608 // XXX This code assumes that zero is always zero in red
29609 return this.z.cmpn(
0) ===
0;
29612 Point.prototype.dbl = function dbl() {
29613 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
29617 var a = this.x.redAdd(this.z);
29619 var aa = a.redSqr();
29621 var b = this.x.redSub(this.z);
29623 var bb = b.redSqr();
29625 var c = aa.redSub(bb);
29627 var nx = aa.redMul(bb);
29628 // Z3 = C * (BB + A24 * C)
29629 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
29630 return this.curve.point(nx, nz);
29633 Point.prototype.add = function add() {
29634 throw new Error('Not supported on Montgomery curve');
29637 Point.prototype.diffAdd = function diffAdd(p, diff) {
29638 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
29642 var a = this.x.redAdd(this.z);
29644 var b = this.x.redSub(this.z);
29646 var c = p.x.redAdd(p.z);
29648 var d = p.x.redSub(p.z);
29650 var da = d.redMul(a);
29652 var cb = c.redMul(b);
29653 // X5 = Z1 * (DA + CB)^
2
29654 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
29655 // Z5 = X1 * (DA - CB)^
2
29656 var nz = diff.x.redMul(da.redISub(cb).redSqr());
29657 return this.curve.point(nx, nz);
29660 Point.prototype.mul = function mul(k) {
29662 var a = this; // (N /
2) * Q + Q
29663 var b = this.curve.point(null, null); // (N /
2) * Q
29666 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
29667 bits.push(t.andln(
1));
29669 for (var i = bits.length -
1; i
>=
0; i--) {
29670 if (bits[i] ===
0) {
29671 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
29672 a = a.diffAdd(b, c);
29673 // N * Q =
2 * ((N /
2) * Q + Q))
29676 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
29677 b = a.diffAdd(b, c);
29678 // N * Q + Q =
2 * ((N /
2) * Q + Q)
29685 Point.prototype.mulAdd = function mulAdd() {
29686 throw new Error('Not supported on Montgomery curve');
29689 Point.prototype.jumlAdd = function jumlAdd() {
29690 throw new Error('Not supported on Montgomery curve');
29693 Point.prototype.eq = function eq(other) {
29694 return this.getX().cmp(other.getX()) ===
0;
29697 Point.prototype.normalize = function normalize() {
29698 this.x = this.x.redMul(this.z.redInvm());
29699 this.z = this.curve.one;
29703 Point.prototype.getX = function getX() {
29704 // Normalize coordinates
29707 return this.x.fromRed();
29710 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
29713 var curve = require('../curve');
29714 var elliptic = require('../../elliptic');
29715 var BN = require('bn.js');
29716 var inherits = require('inherits');
29717 var Base = curve.base;
29719 var assert = elliptic.utils.assert;
29721 function ShortCurve(conf) {
29722 Base.call(this, 'short', conf);
29724 this.a = new BN(conf.a,
16).toRed(this.red);
29725 this.b = new BN(conf.b,
16).toRed(this.red);
29726 this.tinv = this.two.redInvm();
29728 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
29729 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
29731 // If the curve is endomorphic, precalculate beta and lambda
29732 this.endo = this._getEndomorphism(conf);
29733 this._endoWnafT1 = new Array(
4);
29734 this._endoWnafT2 = new Array(
4);
29736 inherits(ShortCurve, Base);
29737 module.exports = ShortCurve;
29739 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
29740 // No efficient endomorphism
29741 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
29744 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
29748 beta = new BN(conf.beta,
16).toRed(this.red);
29750 var betas = this._getEndoRoots(this.p);
29751 // Choose the smallest beta
29752 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
29753 beta = beta.toRed(this.red);
29756 lambda = new BN(conf.lambda,
16);
29758 // Choose the lambda that is matching selected beta
29759 var lambdas = this._getEndoRoots(this.n);
29760 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
29761 lambda = lambdas[
0];
29763 lambda = lambdas[
1];
29764 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
29768 // Get basis vectors, used for balanced length-two representation
29771 basis = conf.basis.map(function(vec) {
29773 a: new BN(vec.a,
16),
29774 b: new BN(vec.b,
16)
29778 basis = this._getEndoBasis(lambda);
29788 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
29789 // Find roots of for x^
2 + x +
1 in F
29790 // Root = (-
1 +- Sqrt(-
3)) /
2
29792 var red = num === this.p ? this.red : BN.mont(num);
29793 var tinv = new BN(
2).toRed(red).redInvm();
29794 var ntinv = tinv.redNeg();
29796 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
29798 var l1 = ntinv.redAdd(s).fromRed();
29799 var l2 = ntinv.redSub(s).fromRed();
29803 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
29804 // aprxSqrt
>= sqrt(this.n)
29805 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
29808 // Run EGCD, until r(L +
1) < aprxSqrt
29810 var v = this.n.clone();
29811 var x1 = new BN(
1);
29812 var y1 = new BN(
0);
29813 var x2 = new BN(
0);
29814 var y2 = new BN(
1);
29816 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
29830 while (u.cmpn(
0) !==
0) {
29832 r = v.sub(q.mul(u));
29833 x = x2.sub(q.mul(x1));
29834 var y = y2.sub(q.mul(y1));
29836 if (!a1 && r.cmp(aprxSqrt) <
0) {
29841 } else if (a1 && ++i ===
2) {
29856 var len1 = a1.sqr().add(b1.sqr());
29857 var len2 = a2.sqr().add(b2.sqr());
29858 if (len2.cmp(len1)
>=
0) {
29879 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
29880 var basis = this.endo.basis;
29884 var c1 = v2.b.mul(k).divRound(this.n);
29885 var c2 = v1.b.neg().mul(k).divRound(this.n);
29887 var p1 = c1.mul(v1.a);
29888 var p2 = c2.mul(v2.a);
29889 var q1 = c1.mul(v1.b);
29890 var q2 = c2.mul(v2.b);
29892 // Calculate answer
29893 var k1 = k.sub(p1).sub(p2);
29894 var k2 = q1.add(q2).neg();
29895 return { k1: k1, k2: k2 };
29898 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
29901 x = x.toRed(this.red);
29903 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
29904 var y = y2.redSqrt();
29905 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
29906 throw new Error('invalid point');
29908 // XXX Is there any way to tell if the number is odd without converting it
29909 // to non-red form?
29910 var isOdd = y.fromRed().isOdd();
29911 if (odd && !isOdd || !odd && isOdd)
29914 return this.point(x, y);
29917 ShortCurve.prototype.validate = function validate(point) {
29924 var ax = this.a.redMul(x);
29925 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
29926 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
29929 ShortCurve.prototype._endoWnafMulAdd =
29930 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
29931 var npoints = this._endoWnafT1;
29932 var ncoeffs = this._endoWnafT2;
29933 for (var i =
0; i < points.length; i++) {
29934 var split = this._endoSplit(coeffs[i]);
29936 var beta = p._getBeta();
29938 if (split.k1.negative) {
29942 if (split.k2.negative) {
29944 beta = beta.neg(true);
29947 npoints[i *
2] = p;
29948 npoints[i *
2 +
1] = beta;
29949 ncoeffs[i *
2] = split.k1;
29950 ncoeffs[i *
2 +
1] = split.k2;
29952 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
29954 // Clean-up references to points and coefficients
29955 for (var j =
0; j < i *
2; j++) {
29962 function Point(curve, x, y, isRed) {
29963 Base.BasePoint.call(this, curve, 'affine');
29964 if (x === null && y === null) {
29969 this.x = new BN(x,
16);
29970 this.y = new BN(y,
16);
29971 // Force redgomery representation when loading from JSON
29973 this.x.forceRed(this.curve.red);
29974 this.y.forceRed(this.curve.red);
29977 this.x = this.x.toRed(this.curve.red);
29979 this.y = this.y.toRed(this.curve.red);
29983 inherits(Point, Base.BasePoint);
29985 ShortCurve.prototype.point = function point(x, y, isRed) {
29986 return new Point(this, x, y, isRed);
29989 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
29990 return Point.fromJSON(this, obj, red);
29993 Point.prototype._getBeta = function _getBeta() {
29994 if (!this.curve.endo)
29997 var pre = this.precomputed;
29998 if (pre && pre.beta)
30001 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
30003 var curve = this.curve;
30004 var endoMul = function(p) {
30005 return curve.point(p.x.redMul(curve.endo.beta), p.y);
30008 beta.precomputed = {
30012 points: pre.naf.points.map(endoMul)
30014 doubles: pre.doubles && {
30015 step: pre.doubles.step,
30016 points: pre.doubles.points.map(endoMul)
30023 Point.prototype.toJSON = function toJSON() {
30024 if (!this.precomputed)
30025 return [ this.x, this.y ];
30027 return [ this.x, this.y, this.precomputed && {
30028 doubles: this.precomputed.doubles && {
30029 step: this.precomputed.doubles.step,
30030 points: this.precomputed.doubles.points.slice(
1)
30032 naf: this.precomputed.naf && {
30033 wnd: this.precomputed.naf.wnd,
30034 points: this.precomputed.naf.points.slice(
1)
30039 Point.fromJSON = function fromJSON(curve, obj, red) {
30040 if (typeof obj === 'string')
30041 obj = JSON.parse(obj);
30042 var res = curve.point(obj[
0], obj[
1], red);
30046 function obj2point(obj) {
30047 return curve.point(obj[
0], obj[
1], red);
30051 res.precomputed = {
30053 doubles: pre.doubles && {
30054 step: pre.doubles.step,
30055 points: [ res ].concat(pre.doubles.points.map(obj2point))
30059 points: [ res ].concat(pre.naf.points.map(obj2point))
30065 Point.prototype.inspect = function inspect() {
30066 if (this.isInfinity())
30067 return '
<EC Point Infinity
>';
30068 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
30069 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
30072 Point.prototype.isInfinity = function isInfinity() {
30076 Point.prototype.add = function add(p) {
30090 if (this.neg().eq(p))
30091 return this.curve.point(null, null);
30094 if (this.x.cmp(p.x) ===
0)
30095 return this.curve.point(null, null);
30097 var c = this.y.redSub(p.y);
30098 if (c.cmpn(
0) !==
0)
30099 c = c.redMul(this.x.redSub(p.x).redInvm());
30100 var nx = c.redSqr().redISub(this.x).redISub(p.x);
30101 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
30102 return this.curve.point(nx, ny);
30105 Point.prototype.dbl = function dbl() {
30110 var ys1 = this.y.redAdd(this.y);
30111 if (ys1.cmpn(
0) ===
0)
30112 return this.curve.point(null, null);
30114 var a = this.curve.a;
30116 var x2 = this.x.redSqr();
30117 var dyinv = ys1.redInvm();
30118 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
30120 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
30121 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
30122 return this.curve.point(nx, ny);
30125 Point.prototype.getX = function getX() {
30126 return this.x.fromRed();
30129 Point.prototype.getY = function getY() {
30130 return this.y.fromRed();
30133 Point.prototype.mul = function mul(k) {
30136 if (this._hasDoubles(k))
30137 return this.curve._fixedNafMul(this, k);
30138 else if (this.curve.endo)
30139 return this.curve._endoWnafMulAdd([ this ], [ k ]);
30141 return this.curve._wnafMul(this, k);
30144 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
30145 var points = [ this, p2 ];
30146 var coeffs = [ k1, k2 ];
30147 if (this.curve.endo)
30148 return this.curve._endoWnafMulAdd(points, coeffs);
30150 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
30153 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
30154 var points = [ this, p2 ];
30155 var coeffs = [ k1, k2 ];
30156 if (this.curve.endo)
30157 return this.curve._endoWnafMulAdd(points, coeffs, true);
30159 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
30162 Point.prototype.eq = function eq(p) {
30163 return this === p ||
30164 this.inf === p.inf &&
30165 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
30168 Point.prototype.neg = function neg(_precompute) {
30172 var res = this.curve.point(this.x, this.y.redNeg());
30173 if (_precompute && this.precomputed) {
30174 var pre = this.precomputed;
30175 var negate = function(p) {
30178 res.precomputed = {
30181 points: pre.naf.points.map(negate)
30183 doubles: pre.doubles && {
30184 step: pre.doubles.step,
30185 points: pre.doubles.points.map(negate)
30192 Point.prototype.toJ = function toJ() {
30194 return this.curve.jpoint(null, null, null);
30196 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
30200 function JPoint(curve, x, y, z) {
30201 Base.BasePoint.call(this, curve, 'jacobian');
30202 if (x === null && y === null && z === null) {
30203 this.x = this.curve.one;
30204 this.y = this.curve.one;
30205 this.z = new BN(
0);
30207 this.x = new BN(x,
16);
30208 this.y = new BN(y,
16);
30209 this.z = new BN(z,
16);
30212 this.x = this.x.toRed(this.curve.red);
30214 this.y = this.y.toRed(this.curve.red);
30216 this.z = this.z.toRed(this.curve.red);
30218 this.zOne = this.z === this.curve.one;
30220 inherits(JPoint, Base.BasePoint);
30222 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
30223 return new JPoint(this, x, y, z);
30226 JPoint.prototype.toP = function toP() {
30227 if (this.isInfinity())
30228 return this.curve.point(null, null);
30230 var zinv = this.z.redInvm();
30231 var zinv2 = zinv.redSqr();
30232 var ax = this.x.redMul(zinv2);
30233 var ay = this.y.redMul(zinv2).redMul(zinv);
30235 return this.curve.point(ax, ay);
30238 JPoint.prototype.neg = function neg() {
30239 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
30242 JPoint.prototype.add = function add(p) {
30244 if (this.isInfinity())
30248 if (p.isInfinity())
30252 var pz2 = p.z.redSqr();
30253 var z2 = this.z.redSqr();
30254 var u1 = this.x.redMul(pz2);
30255 var u2 = p.x.redMul(z2);
30256 var s1 = this.y.redMul(pz2.redMul(p.z));
30257 var s2 = p.y.redMul(z2.redMul(this.z));
30259 var h = u1.redSub(u2);
30260 var r = s1.redSub(s2);
30261 if (h.cmpn(
0) ===
0) {
30262 if (r.cmpn(
0) !==
0)
30263 return this.curve.jpoint(null, null, null);
30268 var h2 = h.redSqr();
30269 var h3 = h2.redMul(h);
30270 var v = u1.redMul(h2);
30272 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
30273 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
30274 var nz = this.z.redMul(p.z).redMul(h);
30276 return this.curve.jpoint(nx, ny, nz);
30279 JPoint.prototype.mixedAdd = function mixedAdd(p) {
30281 if (this.isInfinity())
30285 if (p.isInfinity())
30289 var z2 = this.z.redSqr();
30291 var u2 = p.x.redMul(z2);
30293 var s2 = p.y.redMul(z2).redMul(this.z);
30295 var h = u1.redSub(u2);
30296 var r = s1.redSub(s2);
30297 if (h.cmpn(
0) ===
0) {
30298 if (r.cmpn(
0) !==
0)
30299 return this.curve.jpoint(null, null, null);
30304 var h2 = h.redSqr();
30305 var h3 = h2.redMul(h);
30306 var v = u1.redMul(h2);
30308 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
30309 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
30310 var nz = this.z.redMul(h);
30312 return this.curve.jpoint(nx, ny, nz);
30315 JPoint.prototype.dblp = function dblp(pow) {
30318 if (this.isInfinity())
30323 if (this.curve.zeroA || this.curve.threeA) {
30325 for (var i =
0; i < pow; i++)
30330 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
30331 // N =
1 =
> 6M +
6S +
9A
30332 var a = this.curve.a;
30333 var tinv = this.curve.tinv;
30338 var jz4 = jz.redSqr().redSqr();
30341 var jyd = jy.redAdd(jy);
30342 for (var i =
0; i < pow; i++) {
30343 var jx2 = jx.redSqr();
30344 var jyd2 = jyd.redSqr();
30345 var jyd4 = jyd2.redSqr();
30346 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
30348 var t1 = jx.redMul(jyd2);
30349 var nx = c.redSqr().redISub(t1.redAdd(t1));
30350 var t2 = t1.redISub(nx);
30351 var dny = c.redMul(t2);
30352 dny = dny.redIAdd(dny).redISub(jyd4);
30353 var nz = jyd.redMul(jz);
30355 jz4 = jz4.redMul(jyd4);
30362 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
30365 JPoint.prototype.dbl = function dbl() {
30366 if (this.isInfinity())
30369 if (this.curve.zeroA)
30370 return this._zeroDbl();
30371 else if (this.curve.threeA)
30372 return this._threeDbl();
30374 return this._dbl();
30377 JPoint.prototype._zeroDbl = function _zeroDbl() {
30383 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
30384 // #doubling-mdbl-
2007-bl
30388 var xx = this.x.redSqr();
30390 var yy = this.y.redSqr();
30392 var yyyy = yy.redSqr();
30393 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
30394 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30396 // M =
3 * XX + a; a =
0
30397 var m = xx.redAdd(xx).redIAdd(xx);
30399 var t = m.redSqr().redISub(s).redISub(s);
30402 var yyyy8 = yyyy.redIAdd(yyyy);
30403 yyyy8 = yyyy8.redIAdd(yyyy8);
30404 yyyy8 = yyyy8.redIAdd(yyyy8);
30408 // Y3 = M * (S - T) -
8 * YYYY
30409 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
30411 nz = this.y.redAdd(this.y);
30413 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
30414 // #doubling-dbl-
2009-l
30418 var a = this.x.redSqr();
30420 var b = this.y.redSqr();
30422 var c = b.redSqr();
30423 // D =
2 * ((X1 + B)^
2 - A - C)
30424 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
30427 var e = a.redAdd(a).redIAdd(a);
30429 var f = e.redSqr();
30432 var c8 = c.redIAdd(c);
30433 c8 = c8.redIAdd(c8);
30434 c8 = c8.redIAdd(c8);
30437 nx = f.redISub(d).redISub(d);
30438 // Y3 = E * (D - X3) -
8 * C
30439 ny = e.redMul(d.redISub(nx)).redISub(c8);
30440 // Z3 =
2 * Y1 * Z1
30441 nz = this.y.redMul(this.z);
30442 nz = nz.redIAdd(nz);
30445 return this.curve.jpoint(nx, ny, nz);
30448 JPoint.prototype._threeDbl = function _threeDbl() {
30454 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
30455 // #doubling-mdbl-
2007-bl
30459 var xx = this.x.redSqr();
30461 var yy = this.y.redSqr();
30463 var yyyy = yy.redSqr();
30464 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
30465 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30468 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
30470 var t = m.redSqr().redISub(s).redISub(s);
30473 // Y3 = M * (S - T) -
8 * YYYY
30474 var yyyy8 = yyyy.redIAdd(yyyy);
30475 yyyy8 = yyyy8.redIAdd(yyyy8);
30476 yyyy8 = yyyy8.redIAdd(yyyy8);
30477 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
30479 nz = this.y.redAdd(this.y);
30481 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
30485 var delta = this.z.redSqr();
30487 var gamma = this.y.redSqr();
30488 // beta = X1 * gamma
30489 var beta = this.x.redMul(gamma);
30490 // alpha =
3 * (X1 - delta) * (X1 + delta)
30491 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
30492 alpha = alpha.redAdd(alpha).redIAdd(alpha);
30493 // X3 = alpha^
2 -
8 * beta
30494 var beta4 = beta.redIAdd(beta);
30495 beta4 = beta4.redIAdd(beta4);
30496 var beta8 = beta4.redAdd(beta4);
30497 nx = alpha.redSqr().redISub(beta8);
30498 // Z3 = (Y1 + Z1)^
2 - gamma - delta
30499 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
30500 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
30501 var ggamma8 = gamma.redSqr();
30502 ggamma8 = ggamma8.redIAdd(ggamma8);
30503 ggamma8 = ggamma8.redIAdd(ggamma8);
30504 ggamma8 = ggamma8.redIAdd(ggamma8);
30505 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
30508 return this.curve.jpoint(nx, ny, nz);
30511 JPoint.prototype._dbl = function _dbl() {
30512 var a = this.curve.a;
30518 var jz4 = jz.redSqr().redSqr();
30520 var jx2 = jx.redSqr();
30521 var jy2 = jy.redSqr();
30523 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
30525 var jxd4 = jx.redAdd(jx);
30526 jxd4 = jxd4.redIAdd(jxd4);
30527 var t1 = jxd4.redMul(jy2);
30528 var nx = c.redSqr().redISub(t1.redAdd(t1));
30529 var t2 = t1.redISub(nx);
30531 var jyd8 = jy2.redSqr();
30532 jyd8 = jyd8.redIAdd(jyd8);
30533 jyd8 = jyd8.redIAdd(jyd8);
30534 jyd8 = jyd8.redIAdd(jyd8);
30535 var ny = c.redMul(t2).redISub(jyd8);
30536 var nz = jy.redAdd(jy).redMul(jz);
30538 return this.curve.jpoint(nx, ny, nz);
30541 JPoint.prototype.trpl = function trpl() {
30542 if (!this.curve.zeroA)
30543 return this.dbl().add(this);
30545 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
30549 var xx = this.x.redSqr();
30551 var yy = this.y.redSqr();
30553 var zz = this.z.redSqr();
30555 var yyyy = yy.redSqr();
30556 // M =
3 * XX + a * ZZ2; a =
0
30557 var m = xx.redAdd(xx).redIAdd(xx);
30559 var mm = m.redSqr();
30560 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
30561 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30563 e = e.redAdd(e).redIAdd(e);
30566 var ee = e.redSqr();
30568 var t = yyyy.redIAdd(yyyy);
30572 // U = (M + E)^
2 - MM - EE - T
30573 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
30574 // X3 =
4 * (X1 * EE -
4 * YY * U)
30575 var yyu4 = yy.redMul(u);
30576 yyu4 = yyu4.redIAdd(yyu4);
30577 yyu4 = yyu4.redIAdd(yyu4);
30578 var nx = this.x.redMul(ee).redISub(yyu4);
30579 nx = nx.redIAdd(nx);
30580 nx = nx.redIAdd(nx);
30581 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
30582 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
30583 ny = ny.redIAdd(ny);
30584 ny = ny.redIAdd(ny);
30585 ny = ny.redIAdd(ny);
30586 // Z3 = (Z1 + E)^
2 - ZZ - EE
30587 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
30589 return this.curve.jpoint(nx, ny, nz);
30592 JPoint.prototype.mul = function mul(k, kbase) {
30593 k = new BN(k, kbase);
30595 return this.curve._wnafMul(this, k);
30598 JPoint.prototype.eq = function eq(p) {
30599 if (p.type === 'affine')
30600 return this.eq(p.toJ());
30605 // x1 * z2^
2 == x2 * z1^
2
30606 var z2 = this.z.redSqr();
30607 var pz2 = p.z.redSqr();
30608 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
30611 // y1 * z2^
3 == y2 * z1^
3
30612 var z3 = z2.redMul(this.z);
30613 var pz3 = pz2.redMul(p.z);
30614 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
30617 JPoint.prototype.eqXToP = function eqXToP(x) {
30618 var zs = this.z.redSqr();
30619 var rx = x.toRed(this.curve.red).redMul(zs);
30620 if (this.x.cmp(rx) ===
0)
30623 var xc = x.clone();
30624 var t = this.curve.redN.redMul(zs);
30626 xc.iadd(this.curve.n);
30627 if (xc.cmp(this.curve.p)
>=
0)
30631 if (this.x.cmp(rx) ===
0)
30637 JPoint.prototype.inspect = function inspect() {
30638 if (this.isInfinity())
30639 return '
<EC JPoint Infinity
>';
30640 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
30641 ' y: ' + this.y.toString(
16,
2) +
30642 ' z: ' + this.z.toString(
16,
2) + '
>';
30645 JPoint.prototype.isInfinity = function isInfinity() {
30646 // XXX This code assumes that zero is always zero in red
30647 return this.z.cmpn(
0) ===
0;
30650 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
30653 var curves = exports;
30655 var hash = require('hash.js');
30656 var elliptic = require('../elliptic');
30658 var assert = elliptic.utils.assert;
30660 function PresetCurve(options) {
30661 if (options.type === 'short')
30662 this.curve = new elliptic.curve.short(options);
30663 else if (options.type === 'edwards')
30664 this.curve = new elliptic.curve.edwards(options);
30666 this.curve = new elliptic.curve.mont(options);
30667 this.g = this.curve.g;
30668 this.n = this.curve.n;
30669 this.hash = options.hash;
30671 assert(this.g.validate(), 'Invalid curve');
30672 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
30674 curves.PresetCurve = PresetCurve;
30676 function defineCurve(name, options) {
30677 Object.defineProperty(curves, name, {
30678 configurable: true,
30681 var curve = new PresetCurve(options);
30682 Object.defineProperty(curves, name, {
30683 configurable: true,
30692 defineCurve('p192', {
30695 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
30696 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
30697 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
30698 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
30702 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
30703 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
30707 defineCurve('p224', {
30710 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
30711 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
30712 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
30713 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
30717 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
30718 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
30722 defineCurve('p256', {
30725 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
30726 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
30727 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
30728 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
30732 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
30733 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
30737 defineCurve('p384', {
30740 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30741 'fffffffe ffffffff
00000000 00000000 ffffffff',
30742 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30743 'fffffffe ffffffff
00000000 00000000 fffffffc',
30744 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
30745 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
30746 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
30747 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
30751 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
30752 '
5502f25d bf55296c
3a545e38
72760ab7',
30753 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
30754 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
30758 defineCurve('p521', {
30761 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30762 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30763 'ffffffff ffffffff ffffffff ffffffff ffffffff',
30764 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30765 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30766 'ffffffff ffffffff ffffffff ffffffff fffffffc',
30767 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
30768 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
30769 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
30770 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30771 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
30772 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
30776 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
30777 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
30778 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
30779 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
30780 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
30781 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
30785 defineCurve('curve25519', {
30788 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30791 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30799 defineCurve('ed25519', {
30802 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30805 // -
121665 * (
121666^(-
1)) (mod P)
30806 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
30807 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30811 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
30814 '
6666666666666666666666666666666666666666666666666666666666666658'
30820 pre = require('./precomputed/secp256k1');
30825 defineCurve('secp256k1', {
30828 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
30831 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
30835 // Precomputed endomorphism
30836 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
30837 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
30840 a: '
3086d221a7d46bcde86c90e49284eb15',
30841 b: '-e4437ed6010e88286f547fa90abfe4c3'
30844 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
30845 b: '
3086d221a7d46bcde86c90e49284eb15'
30851 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
30852 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
30857 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
30860 var BN = require('bn.js');
30861 var elliptic = require('../../elliptic');
30862 var utils = elliptic.utils;
30863 var assert = utils.assert;
30865 var KeyPair = require('./key');
30866 var Signature = require('./signature');
30868 function EC(options) {
30869 if (!(this instanceof EC))
30870 return new EC(options);
30872 // Shortcut `elliptic.ec(curve-name)`
30873 if (typeof options === 'string') {
30874 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
30876 options = elliptic.curves[options];
30879 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
30880 if (options instanceof elliptic.curves.PresetCurve)
30881 options = { curve: options };
30883 this.curve = options.curve.curve;
30884 this.n = this.curve.n;
30885 this.nh = this.n.ushrn(
1);
30886 this.g = this.curve.g;
30889 this.g = options.curve.g;
30890 this.g.precompute(options.curve.n.bitLength() +
1);
30892 // Hash for function for DRBG
30893 this.hash = options.hash || options.curve.hash;
30895 module.exports = EC;
30897 EC.prototype.keyPair = function keyPair(options) {
30898 return new KeyPair(this, options);
30901 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
30902 return KeyPair.fromPrivate(this, priv, enc);
30905 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
30906 return KeyPair.fromPublic(this, pub, enc);
30909 EC.prototype.genKeyPair = function genKeyPair(options) {
30913 // Instantiate Hmac_DRBG
30914 var drbg = new elliptic.hmacDRBG({
30916 pers: options.pers,
30917 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
30918 nonce: this.n.toArray()
30921 var bytes = this.n.byteLength();
30922 var ns2 = this.n.sub(new BN(
2));
30924 var priv = new BN(drbg.generate(bytes));
30925 if (priv.cmp(ns2)
> 0)
30929 return this.keyFromPrivate(priv);
30933 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
30934 var delta = msg.byteLength() *
8 - this.n.bitLength();
30936 msg = msg.ushrn(delta);
30937 if (!truncOnly && msg.cmp(this.n)
>=
0)
30938 return msg.sub(this.n);
30943 EC.prototype.sign = function sign(msg, key, enc, options) {
30944 if (typeof enc === 'object') {
30951 key = this.keyFromPrivate(key, enc);
30952 msg = this._truncateToN(new BN(msg,
16));
30954 // Zero-extend key to provide enough entropy
30955 var bytes = this.n.byteLength();
30956 var bkey = key.getPrivate().toArray('be', bytes);
30958 // Zero-extend nonce to have the same byte size as N
30959 var nonce = msg.toArray('be', bytes);
30961 // Instantiate Hmac_DRBG
30962 var drbg = new elliptic.hmacDRBG({
30966 pers: options.pers,
30967 persEnc: options.persEnc
30970 // Number of bytes to generate
30971 var ns1 = this.n.sub(new BN(
1));
30973 for (var iter =
0; true; iter++) {
30974 var k = options.k ?
30976 new BN(drbg.generate(this.n.byteLength()));
30977 k = this._truncateToN(k, true);
30978 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
30981 var kp = this.g.mul(k);
30982 if (kp.isInfinity())
30985 var kpX = kp.getX();
30986 var r = kpX.umod(this.n);
30987 if (r.cmpn(
0) ===
0)
30990 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
30991 s = s.umod(this.n);
30992 if (s.cmpn(
0) ===
0)
30995 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
30996 (kpX.cmp(r) !==
0 ?
2 :
0);
30998 // Use complement of `s`, if it is
> `n /
2`
30999 if (options.canonical && s.cmp(this.nh)
> 0) {
31001 recoveryParam ^=
1;
31004 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
31008 EC.prototype.verify = function verify(msg, signature, key, enc) {
31009 msg = this._truncateToN(new BN(msg,
16));
31010 key = this.keyFromPublic(key, enc);
31011 signature = new Signature(signature, 'hex');
31013 // Perform primitive values validation
31014 var r = signature.r;
31015 var s = signature.s;
31016 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
31018 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
31021 // Validate signature
31022 var sinv = s.invm(this.n);
31023 var u1 = sinv.mul(msg).umod(this.n);
31024 var u2 = sinv.mul(r).umod(this.n);
31026 if (!this.curve._maxwellTrick) {
31027 var p = this.g.mulAdd(u1, key.getPublic(), u2);
31028 if (p.isInfinity())
31031 return p.getX().umod(this.n).cmp(r) ===
0;
31034 // NOTE: Greg Maxwell's trick, inspired by:
31035 // https://git.io/vad3K
31037 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
31038 if (p.isInfinity())
31041 // Compare `p.x` of Jacobian point with `r`,
31042 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
31043 // inverse of `p.z^
2`
31044 return p.eqXToP(r);
31047 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
31048 assert((
3 & j) === j, 'The recovery param is more than two bits');
31049 signature = new Signature(signature, enc);
31052 var e = new BN(msg);
31053 var r = signature.r;
31054 var s = signature.s;
31056 // A set LSB signifies that the y-coordinate is odd
31057 var isYOdd = j &
1;
31058 var isSecondKey = j
>> 1;
31059 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
31060 throw new Error('Unable to find sencond key candinate');
31062 //
1.1. Let x = r + jn.
31064 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
31066 r = this.curve.pointFromX(r, isYOdd);
31068 var rInv = signature.r.invm(n);
31069 var s1 = n.sub(e).mul(rInv).umod(n);
31070 var s2 = s.mul(rInv).umod(n);
31072 //
1.6.1 Compute Q = r^-
1 (sR - eG)
31073 // Q = r^-
1 (sR + -eG)
31074 return this.g.mulAdd(s1, r, s2);
31077 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
31078 signature = new Signature(signature, enc);
31079 if (signature.recoveryParam !== null)
31080 return signature.recoveryParam;
31082 for (var i =
0; i <
4; i++) {
31085 Qprime = this.recoverPubKey(e, signature, i);
31093 throw new Error('Unable to find valid recovery factor');
31096 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
31099 var BN = require('bn.js');
31100 var elliptic = require('../../elliptic');
31101 var utils = elliptic.utils;
31102 var assert = utils.assert;
31104 function KeyPair(ec, options) {
31109 // KeyPair(ec, { priv: ..., pub: ... })
31111 this._importPrivate(options.priv, options.privEnc);
31113 this._importPublic(options.pub, options.pubEnc);
31115 module.exports = KeyPair;
31117 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
31118 if (pub instanceof KeyPair)
31121 return new KeyPair(ec, {
31127 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
31128 if (priv instanceof KeyPair)
31131 return new KeyPair(ec, {
31137 KeyPair.prototype.validate = function validate() {
31138 var pub = this.getPublic();
31140 if (pub.isInfinity())
31141 return { result: false, reason: 'Invalid public key' };
31142 if (!pub.validate())
31143 return { result: false, reason: 'Public key is not a point' };
31144 if (!pub.mul(this.ec.curve.n).isInfinity())
31145 return { result: false, reason: 'Public key * N != O' };
31147 return { result: true, reason: null };
31150 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
31151 // compact is optional argument
31152 if (typeof compact === 'string') {
31158 this.pub = this.ec.g.mul(this.priv);
31163 return this.pub.encode(enc, compact);
31166 KeyPair.prototype.getPrivate = function getPrivate(enc) {
31168 return this.priv.toString(
16,
2);
31173 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
31174 this.priv = new BN(key, enc ||
16);
31176 // Ensure that the priv won't be bigger than n, otherwise we may fail
31177 // in fixed multiplication method
31178 this.priv = this.priv.umod(this.ec.curve.n);
31181 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
31182 if (key.x || key.y) {
31183 // Montgomery points only have an `x` coordinate.
31184 // Weierstrass/Edwards points on the other hand have both `x` and
31185 // `y` coordinates.
31186 if (this.ec.curve.type === 'mont') {
31187 assert(key.x, 'Need x coordinate');
31188 } else if (this.ec.curve.type === 'short' ||
31189 this.ec.curve.type === 'edwards') {
31190 assert(key.x && key.y, 'Need both x and y coordinate');
31192 this.pub = this.ec.curve.point(key.x, key.y);
31195 this.pub = this.ec.curve.decodePoint(key, enc);
31199 KeyPair.prototype.derive = function derive(pub) {
31200 return pub.mul(this.priv).getX();
31204 KeyPair.prototype.sign = function sign(msg, enc, options) {
31205 return this.ec.sign(msg, this, enc, options);
31208 KeyPair.prototype.verify = function verify(msg, signature) {
31209 return this.ec.verify(msg, signature, this);
31212 KeyPair.prototype.inspect = function inspect() {
31213 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
31214 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
31217 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
31220 var BN = require('bn.js');
31222 var elliptic = require('../../elliptic');
31223 var utils = elliptic.utils;
31224 var assert = utils.assert;
31226 function Signature(options, enc) {
31227 if (options instanceof Signature)
31230 if (this._importDER(options, enc))
31233 assert(options.r && options.s, 'Signature without r or s');
31234 this.r = new BN(options.r,
16);
31235 this.s = new BN(options.s,
16);
31236 if (options.recoveryParam === undefined)
31237 this.recoveryParam = null;
31239 this.recoveryParam = options.recoveryParam;
31241 module.exports = Signature;
31243 function Position() {
31247 function getLength(buf, p) {
31248 var initial = buf[p.place++];
31249 if (!(initial &
0x80)) {
31252 var octetLen = initial &
0xf;
31254 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
31262 function rmPadding(buf) {
31264 var len = buf.length -
1;
31265 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
31271 return buf.slice(i);
31274 Signature.prototype._importDER = function _importDER(data, enc) {
31275 data = utils.toArray(data, enc);
31276 var p = new Position();
31277 if (data[p.place++] !==
0x30) {
31280 var len = getLength(data, p);
31281 if ((len + p.place) !== data.length) {
31284 if (data[p.place++] !==
0x02) {
31287 var rlen = getLength(data, p);
31288 var r = data.slice(p.place, rlen + p.place);
31290 if (data[p.place++] !==
0x02) {
31293 var slen = getLength(data, p);
31294 if (data.length !== slen + p.place) {
31297 var s = data.slice(p.place, slen + p.place);
31298 if (r[
0] ===
0 && (r[
1] &
0x80)) {
31301 if (s[
0] ===
0 && (s[
1] &
0x80)) {
31305 this.r = new BN(r);
31306 this.s = new BN(s);
31307 this.recoveryParam = null;
31312 function constructLength(arr, len) {
31317 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
31318 arr.push(octets |
0x80);
31320 arr.push((len
>>> (octets <<
3)) &
0xff);
31325 Signature.prototype.toDER = function toDER(enc) {
31326 var r = this.r.toArray();
31327 var s = this.s.toArray();
31331 r = [
0 ].concat(r);
31334 s = [
0 ].concat(s);
31339 while (!s[
0] && !(s[
1] &
0x80)) {
31342 var arr = [
0x02 ];
31343 constructLength(arr, r.length);
31344 arr = arr.concat(r);
31346 constructLength(arr, s.length);
31347 var backHalf = arr.concat(s);
31348 var res = [
0x30 ];
31349 constructLength(res, backHalf.length);
31350 res = res.concat(backHalf);
31351 return utils.encode(res, enc);
31354 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
31357 var hash = require('hash.js');
31358 var elliptic = require('../../elliptic');
31359 var utils = elliptic.utils;
31360 var assert = utils.assert;
31361 var parseBytes = utils.parseBytes;
31362 var KeyPair = require('./key');
31363 var Signature = require('./signature');
31365 function EDDSA(curve) {
31366 assert(curve === 'ed25519', 'only tested with ed25519 so far');
31368 if (!(this instanceof EDDSA))
31369 return new EDDSA(curve);
31371 var curve = elliptic.curves[curve].curve;
31372 this.curve = curve;
31374 this.g.precompute(curve.n.bitLength() +
1);
31376 this.pointClass = curve.point().constructor;
31377 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
31378 this.hash = hash.sha512;
31381 module.exports = EDDSA;
31384 * @param {Array|String} message - message bytes
31385 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
31386 * @returns {Signature} - signature
31388 EDDSA.prototype.sign = function sign(message, secret) {
31389 message = parseBytes(message);
31390 var key = this.keyFromSecret(secret);
31391 var r = this.hashInt(key.messagePrefix(), message);
31392 var R = this.g.mul(r);
31393 var Rencoded = this.encodePoint(R);
31394 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
31396 var S = r.add(s_).umod(this.curve.n);
31397 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
31401 * @param {Array} message - message bytes
31402 * @param {Array|String|Signature} sig - sig bytes
31403 * @param {Array|String|Point|KeyPair} pub - public key
31404 * @returns {Boolean} - true if public key matches sig of message
31406 EDDSA.prototype.verify = function verify(message, sig, pub) {
31407 message = parseBytes(message);
31408 sig = this.makeSignature(sig);
31409 var key = this.keyFromPublic(pub);
31410 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
31411 var SG = this.g.mul(sig.S());
31412 var RplusAh = sig.R().add(key.pub().mul(h));
31413 return RplusAh.eq(SG);
31416 EDDSA.prototype.hashInt = function hashInt() {
31417 var hash = this.hash();
31418 for (var i =
0; i < arguments.length; i++)
31419 hash.update(arguments[i]);
31420 return utils.intFromLE(hash.digest()).umod(this.curve.n);
31423 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
31424 return KeyPair.fromPublic(this, pub);
31427 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
31428 return KeyPair.fromSecret(this, secret);
31431 EDDSA.prototype.makeSignature = function makeSignature(sig) {
31432 if (sig instanceof Signature)
31434 return new Signature(this, sig);
31438 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
31440 * EDDSA defines methods for encoding and decoding points and integers. These are
31441 * helper convenience methods, that pass along to utility functions implied
31445 EDDSA.prototype.encodePoint = function encodePoint(point) {
31446 var enc = point.getY().toArray('le', this.encodingLength);
31447 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
31451 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
31452 bytes = utils.parseBytes(bytes);
31454 var lastIx = bytes.length -
1;
31455 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
31456 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
31458 var y = utils.intFromLE(normed);
31459 return this.curve.pointFromY(y, xIsOdd);
31462 EDDSA.prototype.encodeInt = function encodeInt(num) {
31463 return num.toArray('le', this.encodingLength);
31466 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
31467 return utils.intFromLE(bytes);
31470 EDDSA.prototype.isPoint = function isPoint(val) {
31471 return val instanceof this.pointClass;
31474 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
31477 var elliptic = require('../../elliptic');
31478 var utils = elliptic.utils;
31479 var assert = utils.assert;
31480 var parseBytes = utils.parseBytes;
31481 var cachedProperty = utils.cachedProperty;
31484 * @param {EDDSA} eddsa - instance
31485 * @param {Object} params - public/private key parameters
31487 * @param {Array
<Byte>} [params.secret] - secret seed bytes
31488 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
31489 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
31492 function KeyPair(eddsa, params) {
31493 this.eddsa = eddsa;
31494 this._secret = parseBytes(params.secret);
31495 if (eddsa.isPoint(params.pub))
31496 this._pub = params.pub;
31498 this._pubBytes = parseBytes(params.pub);
31501 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
31502 if (pub instanceof KeyPair)
31504 return new KeyPair(eddsa, { pub: pub });
31507 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
31508 if (secret instanceof KeyPair)
31510 return new KeyPair(eddsa, { secret: secret });
31513 KeyPair.prototype.secret = function secret() {
31514 return this._secret;
31517 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
31518 return this.eddsa.encodePoint(this.pub());
31521 cachedProperty(KeyPair, 'pub', function pub() {
31522 if (this._pubBytes)
31523 return this.eddsa.decodePoint(this._pubBytes);
31524 return this.eddsa.g.mul(this.priv());
31527 cachedProperty(KeyPair, 'privBytes', function privBytes() {
31528 var eddsa = this.eddsa;
31529 var hash = this.hash();
31530 var lastIx = eddsa.encodingLength -
1;
31532 var a = hash.slice(
0, eddsa.encodingLength);
31540 cachedProperty(KeyPair, 'priv', function priv() {
31541 return this.eddsa.decodeInt(this.privBytes());
31544 cachedProperty(KeyPair, 'hash', function hash() {
31545 return this.eddsa.hash().update(this.secret()).digest();
31548 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
31549 return this.hash().slice(this.eddsa.encodingLength);
31552 KeyPair.prototype.sign = function sign(message) {
31553 assert(this._secret, 'KeyPair can only verify');
31554 return this.eddsa.sign(message, this);
31557 KeyPair.prototype.verify = function verify(message, sig) {
31558 return this.eddsa.verify(message, sig, this);
31561 KeyPair.prototype.getSecret = function getSecret(enc) {
31562 assert(this._secret, 'KeyPair is public only');
31563 return utils.encode(this.secret(), enc);
31566 KeyPair.prototype.getPublic = function getPublic(enc) {
31567 return utils.encode(this.pubBytes(), enc);
31570 module.exports = KeyPair;
31572 },{"../../elliptic":
39}],
51:[function(require,module,exports){
31575 var BN = require('bn.js');
31576 var elliptic = require('../../elliptic');
31577 var utils = elliptic.utils;
31578 var assert = utils.assert;
31579 var cachedProperty = utils.cachedProperty;
31580 var parseBytes = utils.parseBytes;
31583 * @param {EDDSA} eddsa - eddsa instance
31584 * @param {Array
<Bytes>|Object} sig -
31585 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
31586 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
31587 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
31588 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
31590 function Signature(eddsa, sig) {
31591 this.eddsa = eddsa;
31593 if (typeof sig !== 'object')
31594 sig = parseBytes(sig);
31596 if (Array.isArray(sig)) {
31598 R: sig.slice(
0, eddsa.encodingLength),
31599 S: sig.slice(eddsa.encodingLength)
31603 assert(sig.R && sig.S, 'Signature without R or S');
31605 if (eddsa.isPoint(sig.R))
31607 if (sig.S instanceof BN)
31610 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
31611 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
31614 cachedProperty(Signature, 'S', function S() {
31615 return this.eddsa.decodeInt(this.Sencoded());
31618 cachedProperty(Signature, 'R', function R() {
31619 return this.eddsa.decodePoint(this.Rencoded());
31622 cachedProperty(Signature, 'Rencoded', function Rencoded() {
31623 return this.eddsa.encodePoint(this.R());
31626 cachedProperty(Signature, 'Sencoded', function Sencoded() {
31627 return this.eddsa.encodeInt(this.S());
31630 Signature.prototype.toBytes = function toBytes() {
31631 return this.Rencoded().concat(this.Sencoded());
31634 Signature.prototype.toHex = function toHex() {
31635 return utils.encode(this.toBytes(), 'hex').toUpperCase();
31638 module.exports = Signature;
31640 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
31643 var hash = require('hash.js');
31644 var elliptic = require('../elliptic');
31645 var utils = elliptic.utils;
31646 var assert = utils.assert;
31648 function HmacDRBG(options) {
31649 if (!(this instanceof HmacDRBG))
31650 return new HmacDRBG(options);
31651 this.hash = options.hash;
31652 this.predResist = !!options.predResist;
31654 this.outLen = this.hash.outSize;
31655 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
31657 this.reseed = null;
31658 this.reseedInterval = null;
31662 var entropy = utils.toArray(options.entropy, options.entropyEnc);
31663 var nonce = utils.toArray(options.nonce, options.nonceEnc);
31664 var pers = utils.toArray(options.pers, options.persEnc);
31665 assert(entropy.length
>= (this.minEntropy /
8),
31666 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31667 this._init(entropy, nonce, pers);
31669 module.exports = HmacDRBG;
31671 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
31672 var seed = entropy.concat(nonce).concat(pers);
31674 this.K = new Array(this.outLen /
8);
31675 this.V = new Array(this.outLen /
8);
31676 for (var i =
0; i < this.V.length; i++) {
31681 this._update(seed);
31683 this.reseedInterval =
0x1000000000000; //
2^
48
31686 HmacDRBG.prototype._hmac = function hmac() {
31687 return new hash.hmac(this.hash, this.K);
31690 HmacDRBG.prototype._update = function update(seed) {
31691 var kmac = this._hmac()
31695 kmac = kmac.update(seed);
31696 this.K = kmac.digest();
31697 this.V = this._hmac().update(this.V).digest();
31701 this.K = this._hmac()
31706 this.V = this._hmac().update(this.V).digest();
31709 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
31710 // Optional entropy enc
31711 if (typeof entropyEnc !== 'string') {
31717 entropy = utils.toBuffer(entropy, entropyEnc);
31718 add = utils.toBuffer(add, addEnc);
31720 assert(entropy.length
>= (this.minEntropy /
8),
31721 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31723 this._update(entropy.concat(add || []));
31727 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
31728 if (this.reseed
> this.reseedInterval)
31729 throw new Error('Reseed is required');
31731 // Optional encoding
31732 if (typeof enc !== 'string') {
31738 // Optional additional data
31740 add = utils.toArray(add, addEnc);
31745 while (temp.length < len) {
31746 this.V = this._hmac().update(this.V).digest();
31747 temp = temp.concat(this.V);
31750 var res = temp.slice(
0, len);
31753 return utils.encode(res, enc);
31756 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
31762 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
31763 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
31766 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
31767 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
31770 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
31771 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
31774 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
31775 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
31778 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
31779 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
31782 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
31783 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
31786 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
31787 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
31790 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
31791 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
31794 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
31795 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
31798 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
31799 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
31802 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
31803 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
31806 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
31807 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
31810 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
31811 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
31814 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
31815 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
31818 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
31819 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
31822 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
31823 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
31826 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
31827 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
31830 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
31831 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
31834 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
31835 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
31838 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
31839 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
31842 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
31843 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
31846 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
31847 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
31850 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
31851 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
31854 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
31855 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
31858 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
31859 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
31862 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
31863 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
31866 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
31867 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
31870 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
31871 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
31874 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
31875 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
31878 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
31879 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
31882 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
31883 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
31886 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
31887 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
31890 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
31891 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
31894 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
31895 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
31898 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
31899 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
31902 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
31903 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
31906 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
31907 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
31910 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
31911 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
31914 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
31915 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
31918 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
31919 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
31922 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
31923 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
31926 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
31927 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
31930 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
31931 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
31934 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
31935 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
31938 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
31939 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
31942 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
31943 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
31946 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
31947 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
31950 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
31951 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
31954 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
31955 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
31958 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
31959 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
31962 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
31963 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
31966 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
31967 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
31970 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
31971 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
31974 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
31975 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
31978 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
31979 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
31982 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
31983 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
31986 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
31987 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
31990 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
31991 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
31994 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
31995 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
31998 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
31999 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
32002 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
32003 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
32006 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
32007 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
32010 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
32011 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
32014 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
32015 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
32018 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
32019 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
32027 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
32028 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
32031 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
32032 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
32035 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
32036 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
32039 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
32040 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
32043 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
32044 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
32047 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
32048 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
32051 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
32052 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
32055 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
32056 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
32059 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
32060 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
32063 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
32064 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
32067 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
32068 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
32071 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
32072 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
32075 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
32076 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
32079 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
32080 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
32083 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
32084 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
32087 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
32088 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
32091 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
32092 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
32095 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
32096 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
32099 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
32100 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
32103 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
32104 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
32107 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
32108 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
32111 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
32112 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
32115 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
32116 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
32119 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
32120 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
32123 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
32124 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
32127 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
32128 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
32131 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
32132 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
32135 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
32136 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
32139 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
32140 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
32143 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
32144 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
32147 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
32148 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
32151 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
32152 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
32155 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
32156 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
32159 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
32160 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
32163 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
32164 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
32167 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
32168 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
32171 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
32172 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
32175 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
32176 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
32179 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
32180 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
32183 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
32184 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
32187 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
32188 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
32191 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
32192 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
32195 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
32196 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
32199 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
32200 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
32203 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
32204 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
32207 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
32208 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
32211 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
32212 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
32215 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
32216 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
32219 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
32220 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
32223 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
32224 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
32227 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
32228 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
32231 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
32232 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
32235 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
32236 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
32239 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
32240 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
32243 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
32244 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
32247 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
32248 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
32251 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
32252 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
32255 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
32256 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
32259 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
32260 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
32263 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
32264 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
32267 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
32268 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
32271 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
32272 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
32275 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
32276 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
32279 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
32280 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
32283 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
32284 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
32287 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
32288 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
32291 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
32292 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
32295 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
32296 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
32299 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
32300 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
32303 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
32304 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
32307 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
32308 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
32311 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
32312 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
32315 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
32316 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
32319 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
32320 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
32323 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
32324 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
32327 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
32328 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
32331 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
32332 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
32335 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
32336 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
32339 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
32340 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
32343 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
32344 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
32347 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
32348 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
32351 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
32352 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
32355 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
32356 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
32359 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
32360 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
32363 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
32364 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
32367 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
32368 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
32371 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
32372 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
32375 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
32376 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
32379 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
32380 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
32383 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
32384 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
32387 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
32388 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
32391 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
32392 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
32395 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
32396 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
32399 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
32400 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
32403 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
32404 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
32407 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
32408 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
32411 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
32412 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
32415 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
32416 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
32419 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
32420 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
32423 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
32424 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
32427 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
32428 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
32431 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
32432 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
32435 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
32436 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
32439 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
32440 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
32443 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
32444 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
32447 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
32448 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
32451 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
32452 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
32455 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
32456 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
32459 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
32460 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
32463 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
32464 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
32467 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
32468 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
32471 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
32472 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
32475 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
32476 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
32479 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
32480 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
32483 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
32484 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
32487 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
32488 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
32491 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
32492 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
32495 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
32496 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
32499 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
32500 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
32503 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
32504 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
32507 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
32508 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
32511 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
32512 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
32515 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
32516 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
32519 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
32520 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
32523 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
32524 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
32527 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
32528 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
32531 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
32532 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
32538 },{}],
54:[function(require,module,exports){
32541 var utils = exports;
32542 var BN = require('bn.js');
32544 utils.assert = function assert(val, msg) {
32546 throw new Error(msg || 'Assertion failed');
32549 function toArray(msg, enc) {
32550 if (Array.isArray(msg))
32551 return msg.slice();
32555 if (typeof msg !== 'string') {
32556 for (var i =
0; i < msg.length; i++)
32557 res[i] = msg[i] |
0;
32561 for (var i =
0; i < msg.length; i++) {
32562 var c = msg.charCodeAt(i);
32570 } else if (enc === 'hex') {
32571 msg = msg.replace(/[^a-z0-
9]+/ig, '');
32572 if (msg.length %
2 !==
0)
32574 for (var i =
0; i < msg.length; i +=
2)
32575 res.push(parseInt(msg[i] + msg[i +
1],
16));
32579 utils.toArray = toArray;
32581 function zero2(word) {
32582 if (word.length ===
1)
32587 utils.zero2 = zero2;
32589 function toHex(msg) {
32591 for (var i =
0; i < msg.length; i++)
32592 res += zero2(msg[i].toString(
16));
32595 utils.toHex = toHex;
32597 utils.encode = function encode(arr, enc) {
32604 // Represent num in a w-NAF form
32605 function getNAF(num, w) {
32607 var ws =
1 << (w +
1);
32608 var k = num.clone();
32609 while (k.cmpn(
1)
>=
0) {
32612 var mod = k.andln(ws -
1);
32613 if (mod
> (ws
>> 1) -
1)
32614 z = (ws
>> 1) - mod;
32623 // Optimization, shift by word if possible
32624 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
32625 for (var i =
1; i < shift; i++)
32632 utils.getNAF = getNAF;
32634 // Represent k1, k2 in a Joint Sparse Form
32635 function getJSF(k1, k2) {
32645 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
32648 var m14 = (k1.andln(
3) + d1) &
3;
32649 var m24 = (k2.andln(
3) + d2) &
3;
32655 if ((m14 &
1) ===
0) {
32658 var m8 = (k1.andln(
7) + d1) &
7;
32659 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
32667 if ((m24 &
1) ===
0) {
32670 var m8 = (k2.andln(
7) + d2) &
7;
32671 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
32679 if (
2 * d1 === u1 +
1)
32681 if (
2 * d2 === u2 +
1)
32689 utils.getJSF = getJSF;
32691 function cachedProperty(obj, name, computer) {
32692 var key = '_' + name;
32693 obj.prototype[name] = function cachedProperty() {
32694 return this[key] !== undefined ? this[key] :
32695 this[key] = computer.call(this);
32698 utils.cachedProperty = cachedProperty;
32700 function parseBytes(bytes) {
32701 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
32704 utils.parseBytes = parseBytes;
32706 function intFromLE(bytes) {
32707 return new BN(bytes, 'hex', 'le');
32709 utils.intFromLE = intFromLE;
32712 },{
"bn.js":
33}],
55:[function(require,module,exports){
32717 "raw":
"elliptic@^6.2.3",
32719 "escapedName":
"elliptic",
32720 "name":
"elliptic",
32721 "rawSpec":
"^6.2.3",
32722 "spec":
">=6.2.3 <7.0.0",
32725 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
32728 "_from":
"elliptic@>=6.2.3 <7.0.0",
32729 "_id":
"elliptic@6.3.3",
32731 "_location":
"/elliptic",
32732 "_nodeVersion":
"7.0.0",
32733 "_npmOperationalInternal": {
32734 "host":
"packages-18-east.internal.npmjs.com",
32735 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
32739 "email":
"fedor@indutny.com"
32741 "_npmVersion":
"3.10.8",
32742 "_phantomChildren": {},
32744 "raw":
"elliptic@^6.2.3",
32746 "escapedName":
"elliptic",
32747 "name":
"elliptic",
32748 "rawSpec":
"^6.2.3",
32749 "spec":
">=6.2.3 <7.0.0",
32753 "/browserify-sign",
32757 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
32758 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32759 "_shrinkwrap": null,
32760 "_spec":
"elliptic@^6.2.3",
32761 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
32763 "name":
"Fedor Indutny",
32764 "email":
"fedor@indutny.com"
32767 "url":
"https://github.com/indutny/elliptic/issues"
32771 "brorand":
"^1.0.1",
32772 "hash.js":
"^1.0.0",
32773 "inherits":
"^2.0.1"
32775 "description":
"EC cryptography",
32776 "devDependencies": {
32778 "coveralls":
"^2.11.3",
32780 "grunt-browserify":
"^5.0.0",
32781 "grunt-cli":
"^1.2.0",
32782 "grunt-contrib-connect":
"^1.0.0",
32783 "grunt-contrib-copy":
"^1.0.0",
32784 "grunt-contrib-uglify":
"^1.0.1",
32785 "grunt-mocha-istanbul":
"^3.0.1",
32786 "grunt-saucelabs":
"^8.6.2",
32787 "istanbul":
"^0.4.2",
32789 "jshint":
"^2.6.0",
32794 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32795 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
32800 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
32801 "homepage":
"https://github.com/indutny/elliptic",
32809 "main":
"lib/elliptic.js",
32813 "email":
"fedor@indutny.com"
32816 "name":
"elliptic",
32817 "optionalDependencies": {},
32818 "readme":
"ERROR: No README data found!",
32821 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
32824 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32825 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32826 "lint":
"npm run jscs && npm run jshint",
32827 "test":
"npm run lint && npm run unit",
32828 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
32829 "version":
"grunt dist && git add dist/"
32834 },{}],
56:[function(require,module,exports){
32835 (function (Buffer){
32838 var isHexPrefixed = require('is-hex-prefixed');
32839 var stripHexPrefix = require('strip-hex-prefix');
32842 * Pads a `String` to have an even length
32843 * @param {String} value
32844 * @return {String} output
32846 function padToEven(value) {
32847 var a = value; // eslint-disable-line
32849 if (typeof a !== 'string') {
32850 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
32853 if (a.length %
2) {
32861 * Converts a `Number` into a hex `String`
32862 * @param {Number} i
32865 function intToHex(i) {
32866 var hex = i.toString(
16); // eslint-disable-line
32868 return '
0x' + padToEven(hex);
32872 * Converts an `Number` to a `Buffer`
32873 * @param {Number} i
32876 function intToBuffer(i) {
32877 var hex = intToHex(i);
32879 return new Buffer(hex.slice(
2), 'hex');
32883 * Get the binary size of a string
32884 * @param {String} str
32887 function getBinarySize(str) {
32888 if (typeof str !== 'string') {
32889 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
32892 return Buffer.byteLength(str, 'utf8');
32896 * Returns TRUE if the first specified array contains all elements
32897 * from the second one. FALSE otherwise.
32899 * @param {array} superset
32900 * @param {array} subset
32902 * @returns {boolean}
32904 function arrayContainsArray(superset, subset, some) {
32905 if (Array.isArray(superset) !== true) {
32906 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
32908 if (Array.isArray(subset) !== true) {
32909 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
32912 return subset[Boolean(some) && 'some' || 'every'](function (value) {
32913 return superset.indexOf(value)
>=
0;
32918 * Should be called to get utf8 from it's hex representation
32921 * @param {String} string in hex
32922 * @returns {String} ascii string representation of hex value
32924 function toUtf8(hex) {
32925 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
32927 return bufferValue.toString('utf8');
32931 * Should be called to get ascii from it's hex representation
32934 * @param {String} string in hex
32935 * @returns {String} ascii string representation of hex value
32937 function toAscii(hex) {
32938 var str = ''; // eslint-disable-line
32940 l = hex.length; // eslint-disable-line
32942 if (hex.substring(
0,
2) === '
0x') {
32946 for (; i < l; i +=
2) {
32947 var code = parseInt(hex.substr(i,
2),
16);
32948 str += String.fromCharCode(code);
32955 * Should be called to get hex representation (prefixed by
0x) of utf8 string
32958 * @param {String} string
32959 * @param {Number} optional padding
32960 * @returns {String} hex representation of input string
32962 function fromUtf8(stringValue) {
32963 var str = new Buffer(stringValue, 'utf8');
32965 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
32969 * Should be called to get hex representation (prefixed by
0x) of ascii string
32971 * @method fromAscii
32972 * @param {String} string
32973 * @param {Number} optional padding
32974 * @returns {String} hex representation of input string
32976 function fromAscii(stringValue) {
32977 var hex = ''; // eslint-disable-line
32978 for (var i =
0; i < stringValue.length; i++) {
32979 // eslint-disable-line
32980 var code = stringValue.charCodeAt(i);
32981 var n = code.toString(
16);
32982 hex += n.length <
2 ? '
0' + n : n;
32989 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
32991 * @method getKeys get specific key from inner object array of objects
32992 * @param {String} params
32993 * @param {String} key
32994 * @param {Boolean} allowEmpty
32995 * @returns {Array} output just a simple array of output keys
32997 function getKeys(params, key, allowEmpty) {
32998 if (!Array.isArray(params)) {
32999 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
33001 if (typeof key !== 'string') {
33002 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
33005 var result = []; // eslint-disable-line
33007 for (var i =
0; i < params.length; i++) {
33008 // eslint-disable-line
33009 var value = params[i][key]; // eslint-disable-line
33010 if (allowEmpty && !value) {
33012 } else if (typeof value !== 'string') {
33013 throw new Error('invalid abi');
33015 result.push(value);
33022 * Is the string a hex string.
33024 * @method check if string is hex string of specific length
33025 * @param {String} value
33026 * @param {Number} length
33027 * @returns {Boolean} output the string is a hex string
33029 function isHexString(value, length) {
33030 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
33034 if (length && value.length !==
2 +
2 * length) {
33042 arrayContainsArray: arrayContainsArray,
33043 intToBuffer: intToBuffer,
33044 getBinarySize: getBinarySize,
33045 isHexPrefixed: isHexPrefixed,
33046 stripHexPrefix: stripHexPrefix,
33047 padToEven: padToEven,
33048 intToHex: intToHex,
33049 fromAscii: fromAscii,
33050 fromUtf8: fromUtf8,
33054 isHexString: isHexString
33056 }).call(this,require("buffer").Buffer)
33057 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
33058 var hash = exports;
33060 hash.utils = require('./hash/utils');
33061 hash.common = require('./hash/common');
33062 hash.sha = require('./hash/sha');
33063 hash.ripemd = require('./hash/ripemd');
33064 hash.hmac = require('./hash/hmac');
33066 // Proxy hash functions to the main object
33067 hash.sha1 = hash.sha.sha1;
33068 hash.sha256 = hash.sha.sha256;
33069 hash.sha224 = hash.sha.sha224;
33070 hash.sha384 = hash.sha.sha384;
33071 hash.sha512 = hash.sha.sha512;
33072 hash.ripemd160 = hash.ripemd.ripemd160;
33074 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
33075 var hash = require('../hash');
33076 var utils = hash.utils;
33077 var assert = utils.assert;
33079 function BlockHash() {
33080 this.pending = null;
33081 this.pendingTotal =
0;
33082 this.blockSize = this.constructor.blockSize;
33083 this.outSize = this.constructor.outSize;
33084 this.hmacStrength = this.constructor.hmacStrength;
33085 this.padLength = this.constructor.padLength /
8;
33086 this.endian = 'big';
33088 this._delta8 = this.blockSize /
8;
33089 this._delta32 = this.blockSize /
32;
33091 exports.BlockHash = BlockHash;
33093 BlockHash.prototype.update = function update(msg, enc) {
33094 // Convert message to array, pad it, and join into
32bit blocks
33095 msg = utils.toArray(msg, enc);
33097 this.pending = msg;
33099 this.pending = this.pending.concat(msg);
33100 this.pendingTotal += msg.length;
33102 // Enough data, try updating
33103 if (this.pending.length
>= this._delta8) {
33104 msg = this.pending;
33106 // Process pending data in blocks
33107 var r = msg.length % this._delta8;
33108 this.pending = msg.slice(msg.length - r, msg.length);
33109 if (this.pending.length ===
0)
33110 this.pending = null;
33112 msg = utils.join32(msg,
0, msg.length - r, this.endian);
33113 for (var i =
0; i < msg.length; i += this._delta32)
33114 this._update(msg, i, i + this._delta32);
33120 BlockHash.prototype.digest = function digest(enc) {
33121 this.update(this._pad());
33122 assert(this.pending === null);
33124 return this._digest(enc);
33127 BlockHash.prototype._pad = function pad() {
33128 var len = this.pendingTotal;
33129 var bytes = this._delta8;
33130 var k = bytes - ((len + this.padLength) % bytes);
33131 var res = new Array(k + this.padLength);
33133 for (var i =
1; i < k; i++)
33138 if (this.endian === 'big') {
33139 for (var t =
8; t < this.padLength; t++)
33146 res[i++] = (len
>>> 24) &
0xff;
33147 res[i++] = (len
>>> 16) &
0xff;
33148 res[i++] = (len
>>> 8) &
0xff;
33149 res[i++] = len &
0xff;
33151 res[i++] = len &
0xff;
33152 res[i++] = (len
>>> 8) &
0xff;
33153 res[i++] = (len
>>> 16) &
0xff;
33154 res[i++] = (len
>>> 24) &
0xff;
33160 for (var t =
8; t < this.padLength; t++)
33167 },{
"../hash":
57}],
59:[function(require,module,exports){
33168 var hmac = exports;
33170 var hash = require('../hash');
33171 var utils = hash.utils;
33172 var assert = utils.assert;
33174 function Hmac(hash, key, enc) {
33175 if (!(this instanceof Hmac))
33176 return new Hmac(hash, key, enc);
33178 this.blockSize = hash.blockSize /
8;
33179 this.outSize = hash.outSize /
8;
33183 this._init(utils.toArray(key, enc));
33185 module.exports = Hmac;
33187 Hmac.prototype._init = function init(key) {
33188 // Shorten key, if needed
33189 if (key.length
> this.blockSize)
33190 key = new this.Hash().update(key).digest();
33191 assert(key.length <= this.blockSize);
33193 // Add padding to key
33194 for (var i = key.length; i < this.blockSize; i++)
33197 for (var i =
0; i < key.length; i++)
33199 this.inner = new this.Hash().update(key);
33201 //
0x36 ^
0x5c =
0x6a
33202 for (var i =
0; i < key.length; i++)
33204 this.outer = new this.Hash().update(key);
33207 Hmac.prototype.update = function update(msg, enc) {
33208 this.inner.update(msg, enc);
33212 Hmac.prototype.digest = function digest(enc) {
33213 this.outer.update(this.inner.digest());
33214 return this.outer.digest(enc);
33217 },{"../hash":
57}],
60:[function(require,module,exports){
33218 var hash = require('../hash');
33219 var utils = hash.utils;
33221 var rotl32 = utils.rotl32;
33222 var sum32 = utils.sum32;
33223 var sum32_3 = utils.sum32_3;
33224 var sum32_4 = utils.sum32_4;
33225 var BlockHash = hash.common.BlockHash;
33227 function RIPEMD160() {
33228 if (!(this instanceof RIPEMD160))
33229 return new RIPEMD160();
33231 BlockHash.call(this);
33233 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
33234 this.endian = 'little';
33236 utils.inherits(RIPEMD160, BlockHash);
33237 exports.ripemd160 = RIPEMD160;
33239 RIPEMD160.blockSize =
512;
33240 RIPEMD160.outSize =
160;
33241 RIPEMD160.hmacStrength =
192;
33242 RIPEMD160.padLength =
64;
33244 RIPEMD160.prototype._update = function update(msg, start) {
33255 for (var j =
0; j <
80; j++) {
33258 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
33268 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
33273 Dh = rotl32(Ch,
10);
33277 T = sum32_3(this.h[
1], C, Dh);
33278 this.h[
1] = sum32_3(this.h[
2], D, Eh);
33279 this.h[
2] = sum32_3(this.h[
3], E, Ah);
33280 this.h[
3] = sum32_3(this.h[
4], A, Bh);
33281 this.h[
4] = sum32_3(this.h[
0], B, Ch);
33285 RIPEMD160.prototype._digest = function digest(enc) {
33287 return utils.toHex32(this.h, 'little');
33289 return utils.split32(this.h, 'little');
33292 function f(j, x, y, z) {
33296 return (x & y) | ((~x) & z);
33298 return (x | (~y)) ^ z;
33300 return (x & z) | (y & (~z));
33302 return x ^ (y | (~z));
33332 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
33333 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
33334 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
33335 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
33336 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
33340 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
33341 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
33342 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
33343 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
33344 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
33348 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
33349 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
33350 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
33351 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
33352 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
33356 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
33357 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
33358 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
33359 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
33360 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
33363 },{"../hash":
57}],
61:[function(require,module,exports){
33364 var hash = require('../hash');
33365 var utils = hash.utils;
33366 var assert = utils.assert;
33368 var rotr32 = utils.rotr32;
33369 var rotl32 = utils.rotl32;
33370 var sum32 = utils.sum32;
33371 var sum32_4 = utils.sum32_4;
33372 var sum32_5 = utils.sum32_5;
33373 var rotr64_hi = utils.rotr64_hi;
33374 var rotr64_lo = utils.rotr64_lo;
33375 var shr64_hi = utils.shr64_hi;
33376 var shr64_lo = utils.shr64_lo;
33377 var sum64 = utils.sum64;
33378 var sum64_hi = utils.sum64_hi;
33379 var sum64_lo = utils.sum64_lo;
33380 var sum64_4_hi = utils.sum64_4_hi;
33381 var sum64_4_lo = utils.sum64_4_lo;
33382 var sum64_5_hi = utils.sum64_5_hi;
33383 var sum64_5_lo = utils.sum64_5_lo;
33384 var BlockHash = hash.common.BlockHash;
33387 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
33388 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
33389 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
33390 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
33391 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
33392 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
33393 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
33394 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
33395 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
33396 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
33397 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
33398 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
33399 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
33400 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
33401 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
33402 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
33406 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
33407 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
33408 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
33409 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
33410 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
33411 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
33412 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
33413 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
33414 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
33415 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
33416 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
33417 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
33418 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
33419 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
33420 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
33421 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
33422 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
33423 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
33424 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
33425 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
33426 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
33427 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
33428 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
33429 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
33430 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
33431 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
33432 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
33433 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
33434 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
33435 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
33436 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
33437 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
33438 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
33439 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
33440 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
33441 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
33442 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
33443 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
33444 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
33445 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
33449 0x5A827999,
0x6ED9EBA1,
33450 0x8F1BBCDC,
0xCA62C1D6
33453 function SHA256() {
33454 if (!(this instanceof SHA256))
33455 return new SHA256();
33457 BlockHash.call(this);
33458 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
33459 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
33461 this.W = new Array(
64);
33463 utils.inherits(SHA256, BlockHash);
33464 exports.sha256 = SHA256;
33466 SHA256.blockSize =
512;
33467 SHA256.outSize =
256;
33468 SHA256.hmacStrength =
192;
33469 SHA256.padLength =
64;
33471 SHA256.prototype._update = function _update(msg, start) {
33474 for (var i =
0; i <
16; i++)
33475 W[i] = msg[start + i];
33476 for (; i < W.length; i++)
33477 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
33488 assert(this.k.length === W.length);
33489 for (var i =
0; i < W.length; i++) {
33490 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
33491 var T2 = sum32(s0_256(a), maj32(a, b, c));
33502 this.h[
0] = sum32(this.h[
0], a);
33503 this.h[
1] = sum32(this.h[
1], b);
33504 this.h[
2] = sum32(this.h[
2], c);
33505 this.h[
3] = sum32(this.h[
3], d);
33506 this.h[
4] = sum32(this.h[
4], e);
33507 this.h[
5] = sum32(this.h[
5], f);
33508 this.h[
6] = sum32(this.h[
6], g);
33509 this.h[
7] = sum32(this.h[
7], h);
33512 SHA256.prototype._digest = function digest(enc) {
33514 return utils.toHex32(this.h, 'big');
33516 return utils.split32(this.h, 'big');
33519 function SHA224() {
33520 if (!(this instanceof SHA224))
33521 return new SHA224();
33524 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
33525 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
33527 utils.inherits(SHA224, SHA256);
33528 exports.sha224 = SHA224;
33530 SHA224.blockSize =
512;
33531 SHA224.outSize =
224;
33532 SHA224.hmacStrength =
192;
33533 SHA224.padLength =
64;
33535 SHA224.prototype._digest = function digest(enc) {
33536 // Just truncate output
33538 return utils.toHex32(this.h.slice(
0,
7), 'big');
33540 return utils.split32(this.h.slice(
0,
7), 'big');
33543 function SHA512() {
33544 if (!(this instanceof SHA512))
33545 return new SHA512();
33547 BlockHash.call(this);
33548 this.h = [
0x6a09e667,
0xf3bcc908,
33549 0xbb67ae85,
0x84caa73b,
33550 0x3c6ef372,
0xfe94f82b,
33551 0xa54ff53a,
0x5f1d36f1,
33552 0x510e527f,
0xade682d1,
33553 0x9b05688c,
0x2b3e6c1f,
33554 0x1f83d9ab,
0xfb41bd6b,
33555 0x5be0cd19,
0x137e2179 ];
33557 this.W = new Array(
160);
33559 utils.inherits(SHA512, BlockHash);
33560 exports.sha512 = SHA512;
33562 SHA512.blockSize =
1024;
33563 SHA512.outSize =
512;
33564 SHA512.hmacStrength =
192;
33565 SHA512.padLength =
128;
33567 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
33570 //
32 x
32bit words
33571 for (var i =
0; i <
32; i++)
33572 W[i] = msg[start + i];
33573 for (; i < W.length; i +=
2) {
33574 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
33575 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
33576 var c1_hi = W[i -
14]; // i -
7
33577 var c1_lo = W[i -
13];
33578 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
33579 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
33580 var c3_hi = W[i -
32]; // i -
16
33581 var c3_lo = W[i -
31];
33583 W[i] = sum64_4_hi(c0_hi, c0_lo,
33587 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
33594 SHA512.prototype._update = function _update(msg, start) {
33595 this._prepareBlock(msg, start);
33599 var ah = this.h[
0];
33600 var al = this.h[
1];
33601 var bh = this.h[
2];
33602 var bl = this.h[
3];
33603 var ch = this.h[
4];
33604 var cl = this.h[
5];
33605 var dh = this.h[
6];
33606 var dl = this.h[
7];
33607 var eh = this.h[
8];
33608 var el = this.h[
9];
33609 var fh = this.h[
10];
33610 var fl = this.h[
11];
33611 var gh = this.h[
12];
33612 var gl = this.h[
13];
33613 var hh = this.h[
14];
33614 var hl = this.h[
15];
33616 assert(this.k.length === W.length);
33617 for (var i =
0; i < W.length; i +=
2) {
33620 var c1_hi = s1_512_hi(eh, el);
33621 var c1_lo = s1_512_lo(eh, el);
33622 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
33623 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
33624 var c3_hi = this.k[i];
33625 var c3_lo = this.k[i +
1];
33627 var c4_lo = W[i +
1];
33629 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
33634 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
33640 var c0_hi = s0_512_hi(ah, al);
33641 var c0_lo = s0_512_lo(ah, al);
33642 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
33643 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
33645 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
33646 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
33657 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
33658 el = sum64_lo(dl, dl, T1_hi, T1_lo);
33669 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
33670 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
33673 sum64(this.h,
0, ah, al);
33674 sum64(this.h,
2, bh, bl);
33675 sum64(this.h,
4, ch, cl);
33676 sum64(this.h,
6, dh, dl);
33677 sum64(this.h,
8, eh, el);
33678 sum64(this.h,
10, fh, fl);
33679 sum64(this.h,
12, gh, gl);
33680 sum64(this.h,
14, hh, hl);
33683 SHA512.prototype._digest = function digest(enc) {
33685 return utils.toHex32(this.h, 'big');
33687 return utils.split32(this.h, 'big');
33690 function SHA384() {
33691 if (!(this instanceof SHA384))
33692 return new SHA384();
33695 this.h = [
0xcbbb9d5d,
0xc1059ed8,
33696 0x629a292a,
0x367cd507,
33697 0x9159015a,
0x3070dd17,
33698 0x152fecd8,
0xf70e5939,
33699 0x67332667,
0xffc00b31,
33700 0x8eb44a87,
0x68581511,
33701 0xdb0c2e0d,
0x64f98fa7,
33702 0x47b5481d,
0xbefa4fa4 ];
33704 utils.inherits(SHA384, SHA512);
33705 exports.sha384 = SHA384;
33707 SHA384.blockSize =
1024;
33708 SHA384.outSize =
384;
33709 SHA384.hmacStrength =
192;
33710 SHA384.padLength =
128;
33712 SHA384.prototype._digest = function digest(enc) {
33714 return utils.toHex32(this.h.slice(
0,
12), 'big');
33716 return utils.split32(this.h.slice(
0,
12), 'big');
33720 if (!(this instanceof SHA1))
33723 BlockHash.call(this);
33724 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
33725 0x10325476,
0xc3d2e1f0 ];
33726 this.W = new Array(
80);
33729 utils.inherits(SHA1, BlockHash);
33730 exports.sha1 = SHA1;
33732 SHA1.blockSize =
512;
33733 SHA1.outSize =
160;
33734 SHA1.hmacStrength =
80;
33735 SHA1.padLength =
64;
33737 SHA1.prototype._update = function _update(msg, start) {
33740 for (var i =
0; i <
16; i++)
33741 W[i] = msg[start + i];
33743 for(; i < W.length; i++)
33744 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
33752 for (var i =
0; i < W.length; i++) {
33753 var s = ~~(i /
20);
33754 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
33762 this.h[
0] = sum32(this.h[
0], a);
33763 this.h[
1] = sum32(this.h[
1], b);
33764 this.h[
2] = sum32(this.h[
2], c);
33765 this.h[
3] = sum32(this.h[
3], d);
33766 this.h[
4] = sum32(this.h[
4], e);
33769 SHA1.prototype._digest = function digest(enc) {
33771 return utils.toHex32(this.h, 'big');
33773 return utils.split32(this.h, 'big');
33776 function ch32(x, y, z) {
33777 return (x & y) ^ ((~x) & z);
33780 function maj32(x, y, z) {
33781 return (x & y) ^ (x & z) ^ (y & z);
33784 function p32(x, y, z) {
33788 function s0_256(x) {
33789 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
33792 function s1_256(x) {
33793 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
33796 function g0_256(x) {
33797 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
33800 function g1_256(x) {
33801 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
33804 function ft_1(s, x, y, z) {
33806 return ch32(x, y, z);
33807 if (s ===
1 || s ===
3)
33808 return p32(x, y, z);
33810 return maj32(x, y, z);
33813 function ch64_hi(xh, xl, yh, yl, zh, zl) {
33814 var r = (xh & yh) ^ ((~xh) & zh);
33820 function ch64_lo(xh, xl, yh, yl, zh, zl) {
33821 var r = (xl & yl) ^ ((~xl) & zl);
33827 function maj64_hi(xh, xl, yh, yl, zh, zl) {
33828 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
33834 function maj64_lo(xh, xl, yh, yl, zh, zl) {
33835 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
33841 function s0_512_hi(xh, xl) {
33842 var c0_hi = rotr64_hi(xh, xl,
28);
33843 var c1_hi = rotr64_hi(xl, xh,
2); //
34
33844 var c2_hi = rotr64_hi(xl, xh,
7); //
39
33846 var r = c0_hi ^ c1_hi ^ c2_hi;
33852 function s0_512_lo(xh, xl) {
33853 var c0_lo = rotr64_lo(xh, xl,
28);
33854 var c1_lo = rotr64_lo(xl, xh,
2); //
34
33855 var c2_lo = rotr64_lo(xl, xh,
7); //
39
33857 var r = c0_lo ^ c1_lo ^ c2_lo;
33863 function s1_512_hi(xh, xl) {
33864 var c0_hi = rotr64_hi(xh, xl,
14);
33865 var c1_hi = rotr64_hi(xh, xl,
18);
33866 var c2_hi = rotr64_hi(xl, xh,
9); //
41
33868 var r = c0_hi ^ c1_hi ^ c2_hi;
33874 function s1_512_lo(xh, xl) {
33875 var c0_lo = rotr64_lo(xh, xl,
14);
33876 var c1_lo = rotr64_lo(xh, xl,
18);
33877 var c2_lo = rotr64_lo(xl, xh,
9); //
41
33879 var r = c0_lo ^ c1_lo ^ c2_lo;
33885 function g0_512_hi(xh, xl) {
33886 var c0_hi = rotr64_hi(xh, xl,
1);
33887 var c1_hi = rotr64_hi(xh, xl,
8);
33888 var c2_hi = shr64_hi(xh, xl,
7);
33890 var r = c0_hi ^ c1_hi ^ c2_hi;
33896 function g0_512_lo(xh, xl) {
33897 var c0_lo = rotr64_lo(xh, xl,
1);
33898 var c1_lo = rotr64_lo(xh, xl,
8);
33899 var c2_lo = shr64_lo(xh, xl,
7);
33901 var r = c0_lo ^ c1_lo ^ c2_lo;
33907 function g1_512_hi(xh, xl) {
33908 var c0_hi = rotr64_hi(xh, xl,
19);
33909 var c1_hi = rotr64_hi(xl, xh,
29); //
61
33910 var c2_hi = shr64_hi(xh, xl,
6);
33912 var r = c0_hi ^ c1_hi ^ c2_hi;
33918 function g1_512_lo(xh, xl) {
33919 var c0_lo = rotr64_lo(xh, xl,
19);
33920 var c1_lo = rotr64_lo(xl, xh,
29); //
61
33921 var c2_lo = shr64_lo(xh, xl,
6);
33923 var r = c0_lo ^ c1_lo ^ c2_lo;
33929 },{
"../hash":
57}],
62:[function(require,module,exports){
33930 var utils = exports;
33931 var inherits = require('inherits');
33933 function toArray(msg, enc) {
33934 if (Array.isArray(msg))
33935 return msg.slice();
33939 if (typeof msg === 'string') {
33941 for (var i =
0; i < msg.length; i++) {
33942 var c = msg.charCodeAt(i);
33950 } else if (enc === 'hex') {
33951 msg = msg.replace(/[^a-z0-
9]+/ig, '');
33952 if (msg.length %
2 !==
0)
33954 for (var i =
0; i < msg.length; i +=
2)
33955 res.push(parseInt(msg[i] + msg[i +
1],
16));
33958 for (var i =
0; i < msg.length; i++)
33959 res[i] = msg[i] |
0;
33963 utils.toArray = toArray;
33965 function toHex(msg) {
33967 for (var i =
0; i < msg.length; i++)
33968 res += zero2(msg[i].toString(
16));
33971 utils.toHex = toHex;
33973 function htonl(w) {
33974 var res = (w
>>> 24) |
33975 ((w
>>> 8) &
0xff00) |
33976 ((w <<
8) &
0xff0000) |
33977 ((w &
0xff) <<
24);
33980 utils.htonl = htonl;
33982 function toHex32(msg, endian) {
33984 for (var i =
0; i < msg.length; i++) {
33986 if (endian === 'little')
33988 res += zero8(w.toString(
16));
33992 utils.toHex32 = toHex32;
33994 function zero2(word) {
33995 if (word.length ===
1)
34000 utils.zero2 = zero2;
34002 function zero8(word) {
34003 if (word.length ===
7)
34005 else if (word.length ===
6)
34006 return '
00' + word;
34007 else if (word.length ===
5)
34008 return '
000' + word;
34009 else if (word.length ===
4)
34010 return '
0000' + word;
34011 else if (word.length ===
3)
34012 return '
00000' + word;
34013 else if (word.length ===
2)
34014 return '
000000' + word;
34015 else if (word.length ===
1)
34016 return '
0000000' + word;
34020 utils.zero8 = zero8;
34022 function join32(msg, start, end, endian) {
34023 var len = end - start;
34024 assert(len %
4 ===
0);
34025 var res = new Array(len /
4);
34026 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
34028 if (endian === 'big')
34029 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
34031 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
34036 utils.join32 = join32;
34038 function split32(msg, endian) {
34039 var res = new Array(msg.length *
4);
34040 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
34042 if (endian === 'big') {
34044 res[k +
1] = (m
>>> 16) &
0xff;
34045 res[k +
2] = (m
>>> 8) &
0xff;
34046 res[k +
3] = m &
0xff;
34048 res[k +
3] = m
>>> 24;
34049 res[k +
2] = (m
>>> 16) &
0xff;
34050 res[k +
1] = (m
>>> 8) &
0xff;
34056 utils.split32 = split32;
34058 function rotr32(w, b) {
34059 return (w
>>> b) | (w << (
32 - b));
34061 utils.rotr32 = rotr32;
34063 function rotl32(w, b) {
34064 return (w << b) | (w
>>> (
32 - b));
34066 utils.rotl32 = rotl32;
34068 function sum32(a, b) {
34069 return (a + b)
>>> 0;
34071 utils.sum32 = sum32;
34073 function sum32_3(a, b, c) {
34074 return (a + b + c)
>>> 0;
34076 utils.sum32_3 = sum32_3;
34078 function sum32_4(a, b, c, d) {
34079 return (a + b + c + d)
>>> 0;
34081 utils.sum32_4 = sum32_4;
34083 function sum32_5(a, b, c, d, e) {
34084 return (a + b + c + d + e)
>>> 0;
34086 utils.sum32_5 = sum32_5;
34088 function assert(cond, msg) {
34090 throw new Error(msg || 'Assertion failed');
34092 utils.assert = assert;
34094 utils.inherits = inherits;
34096 function sum64(buf, pos, ah, al) {
34098 var bl = buf[pos +
1];
34100 var lo = (al + bl)
>>> 0;
34101 var hi = (lo < al ?
1 :
0) + ah + bh;
34102 buf[pos] = hi
>>> 0;
34105 exports.sum64 = sum64;
34107 function sum64_hi(ah, al, bh, bl) {
34108 var lo = (al + bl)
>>> 0;
34109 var hi = (lo < al ?
1 :
0) + ah + bh;
34112 exports.sum64_hi = sum64_hi;
34114 function sum64_lo(ah, al, bh, bl) {
34118 exports.sum64_lo = sum64_lo;
34120 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
34123 lo = (lo + bl)
>>> 0;
34124 carry += lo < al ?
1 :
0;
34125 lo = (lo + cl)
>>> 0;
34126 carry += lo < cl ?
1 :
0;
34127 lo = (lo + dl)
>>> 0;
34128 carry += lo < dl ?
1 :
0;
34130 var hi = ah + bh + ch + dh + carry;
34133 exports.sum64_4_hi = sum64_4_hi;
34135 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
34136 var lo = al + bl + cl + dl;
34139 exports.sum64_4_lo = sum64_4_lo;
34141 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
34144 lo = (lo + bl)
>>> 0;
34145 carry += lo < al ?
1 :
0;
34146 lo = (lo + cl)
>>> 0;
34147 carry += lo < cl ?
1 :
0;
34148 lo = (lo + dl)
>>> 0;
34149 carry += lo < dl ?
1 :
0;
34150 lo = (lo + el)
>>> 0;
34151 carry += lo < el ?
1 :
0;
34153 var hi = ah + bh + ch + dh + eh + carry;
34156 exports.sum64_5_hi = sum64_5_hi;
34158 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
34159 var lo = al + bl + cl + dl + el;
34163 exports.sum64_5_lo = sum64_5_lo;
34165 function rotr64_hi(ah, al, num) {
34166 var r = (al << (
32 - num)) | (ah
>>> num);
34169 exports.rotr64_hi = rotr64_hi;
34171 function rotr64_lo(ah, al, num) {
34172 var r = (ah << (
32 - num)) | (al
>>> num);
34175 exports.rotr64_lo = rotr64_lo;
34177 function shr64_hi(ah, al, num) {
34180 exports.shr64_hi = shr64_hi;
34182 function shr64_lo(ah, al, num) {
34183 var r = (ah << (
32 - num)) | (al
>>> num);
34186 exports.shr64_lo = shr64_lo;
34188 },{
"inherits":
63}],
63:[function(require,module,exports){
34189 arguments[
4][
9][
0].apply(exports,arguments)
34190 },{
"dup":
9}],
64:[function(require,module,exports){
34192 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
34193 * @param {String} str the string input value
34194 * @return {Boolean} a boolean if it is or is not hex prefixed
34195 * @throws if the str input is not a string
34197 module.exports = function isHexPrefixed(str) {
34198 if (typeof str !== 'string') {
34199 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
34202 return str.slice(
0,
2) === '
0x';
34205 },{}],
65:[function(require,module,exports){
34207 module.exports = require('./lib/api')(require('./lib/keccak'))
34209 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
34211 var createKeccak = require('./keccak')
34212 var createShake = require('./shake')
34214 module.exports = function (KeccakState) {
34215 var Keccak = createKeccak(KeccakState)
34216 var Shake = createShake(KeccakState)
34218 return function (algorithm, options) {
34219 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
34221 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
34222 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
34223 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
34224 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
34226 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
34227 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
34228 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
34229 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
34231 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
34232 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
34234 default: throw new Error('Invald algorithm: ' + algorithm)
34239 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
34240 (function (Buffer){
34242 var Transform = require('stream').Transform
34243 var inherits = require('inherits')
34245 module.exports = function (KeccakState) {
34246 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
34247 Transform.call(this, options)
34250 this._capacity = capacity
34251 this._delimitedSuffix = delimitedSuffix
34252 this._hashBitLength = hashBitLength
34253 this._options = options
34255 this._state = new KeccakState()
34256 this._state.initialize(rate, capacity)
34257 this._finalized = false
34260 inherits(Keccak, Transform)
34262 Keccak.prototype._transform = function (chunk, encoding, callback) {
34265 this.update(chunk, encoding)
34273 Keccak.prototype._flush = function (callback) {
34276 this.push(this.digest())
34284 Keccak.prototype.update = function (data, encoding) {
34285 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
34286 if (this._finalized) throw new Error('Digest already called')
34287 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
34289 this._state.absorb(data)
34294 Keccak.prototype.digest = function (encoding) {
34295 if (this._finalized) throw new Error('Digest already called')
34296 this._finalized = true
34298 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
34299 var digest = this._state.squeeze(this._hashBitLength /
8)
34300 if (encoding !== undefined) digest = digest.toString(encoding)
34307 // remove result from memory
34308 Keccak.prototype._resetState = function () {
34309 this._state.initialize(this._rate, this._capacity)
34313 // because sometimes we need hash right now and little later
34314 Keccak.prototype._clone = function () {
34315 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
34316 this._state.copy(clone._state)
34317 clone._finalized = this._finalized
34325 }).call(this,require(
"buffer").Buffer)
34326 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
34327 (function (Buffer){
34329 var Transform = require('stream').Transform
34330 var inherits = require('inherits')
34332 module.exports = function (KeccakState) {
34333 function Shake (rate, capacity, delimitedSuffix, options) {
34334 Transform.call(this, options)
34337 this._capacity = capacity
34338 this._delimitedSuffix = delimitedSuffix
34339 this._options = options
34341 this._state = new KeccakState()
34342 this._state.initialize(rate, capacity)
34343 this._finalized = false
34346 inherits(Shake, Transform)
34348 Shake.prototype._transform = function (chunk, encoding, callback) {
34351 this.update(chunk, encoding)
34359 Shake.prototype._flush = function () {}
34361 Shake.prototype._read = function (size) {
34362 this.push(this.squeeze(size))
34365 Shake.prototype.update = function (data, encoding) {
34366 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
34367 if (this._finalized) throw new Error('Squeeze already called')
34368 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
34370 this._state.absorb(data)
34375 Shake.prototype.squeeze = function (dataByteLength, encoding) {
34376 if (!this._finalized) {
34377 this._finalized = true
34378 this._state.absorbLastFewBits(this._delimitedSuffix)
34381 var data = this._state.squeeze(dataByteLength)
34382 if (encoding !== undefined) data = data.toString(encoding)
34387 Shake.prototype._resetState = function () {
34388 this._state.initialize(this._rate, this._capacity)
34392 Shake.prototype._clone = function () {
34393 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
34394 this._state.copy(clone._state)
34395 clone._finalized = this._finalized
34403 }).call(this,require(
"buffer").Buffer)
34404 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
34406 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]
34408 exports.p1600 = function (s) {
34409 for (var round =
0; round <
24; ++round) {
34411 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
34412 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
34413 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
34414 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
34415 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
34416 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
34417 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
34418 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
34419 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
34420 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
34422 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
34423 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
34424 var t1slo0 = s[
0] ^ lo
34425 var t1shi0 = s[
1] ^ hi
34426 var t1slo5 = s[
10] ^ lo
34427 var t1shi5 = s[
11] ^ hi
34428 var t1slo10 = s[
20] ^ lo
34429 var t1shi10 = s[
21] ^ hi
34430 var t1slo15 = s[
30] ^ lo
34431 var t1shi15 = s[
31] ^ hi
34432 var t1slo20 = s[
40] ^ lo
34433 var t1shi20 = s[
41] ^ hi
34434 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
34435 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
34436 var t1slo1 = s[
2] ^ lo
34437 var t1shi1 = s[
3] ^ hi
34438 var t1slo6 = s[
12] ^ lo
34439 var t1shi6 = s[
13] ^ hi
34440 var t1slo11 = s[
22] ^ lo
34441 var t1shi11 = s[
23] ^ hi
34442 var t1slo16 = s[
32] ^ lo
34443 var t1shi16 = s[
33] ^ hi
34444 var t1slo21 = s[
42] ^ lo
34445 var t1shi21 = s[
43] ^ hi
34446 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
34447 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
34448 var t1slo2 = s[
4] ^ lo
34449 var t1shi2 = s[
5] ^ hi
34450 var t1slo7 = s[
14] ^ lo
34451 var t1shi7 = s[
15] ^ hi
34452 var t1slo12 = s[
24] ^ lo
34453 var t1shi12 = s[
25] ^ hi
34454 var t1slo17 = s[
34] ^ lo
34455 var t1shi17 = s[
35] ^ hi
34456 var t1slo22 = s[
44] ^ lo
34457 var t1shi22 = s[
45] ^ hi
34458 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
34459 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
34460 var t1slo3 = s[
6] ^ lo
34461 var t1shi3 = s[
7] ^ hi
34462 var t1slo8 = s[
16] ^ lo
34463 var t1shi8 = s[
17] ^ hi
34464 var t1slo13 = s[
26] ^ lo
34465 var t1shi13 = s[
27] ^ hi
34466 var t1slo18 = s[
36] ^ lo
34467 var t1shi18 = s[
37] ^ hi
34468 var t1slo23 = s[
46] ^ lo
34469 var t1shi23 = s[
47] ^ hi
34470 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
34471 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
34472 var t1slo4 = s[
8] ^ lo
34473 var t1shi4 = s[
9] ^ hi
34474 var t1slo9 = s[
18] ^ lo
34475 var t1shi9 = s[
19] ^ hi
34476 var t1slo14 = s[
28] ^ lo
34477 var t1shi14 = s[
29] ^ hi
34478 var t1slo19 = s[
38] ^ lo
34479 var t1shi19 = s[
39] ^ hi
34480 var t1slo24 = s[
48] ^ lo
34481 var t1shi24 = s[
49] ^ hi
34484 var t2slo0 = t1slo0
34485 var t2shi0 = t1shi0
34486 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
34487 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
34488 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
34489 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
34490 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
34491 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
34492 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
34493 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
34494 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
34495 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
34496 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
34497 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
34498 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
34499 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
34500 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
34501 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
34502 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
34503 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
34504 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
34505 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
34506 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
34507 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
34508 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
34509 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
34510 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
34511 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
34512 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
34513 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
34514 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
34515 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
34516 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
34517 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
34518 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
34519 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
34520 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
34521 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
34522 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
34523 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
34524 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
34525 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
34526 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
34527 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
34528 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
34529 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
34530 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
34531 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
34532 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
34533 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
34536 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
34537 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
34538 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
34539 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
34540 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
34541 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
34542 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
34543 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
34544 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
34545 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
34546 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
34547 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
34548 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
34549 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
34550 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
34551 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
34552 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
34553 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
34554 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
34555 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
34556 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
34557 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
34558 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
34559 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
34560 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
34561 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
34562 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
34563 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
34564 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
34565 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
34566 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
34567 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
34568 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
34569 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
34570 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
34571 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
34572 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
34573 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
34574 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
34575 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
34576 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
34577 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
34578 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
34579 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
34580 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
34581 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
34582 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
34583 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
34584 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
34585 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
34588 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
34589 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
34593 },{}],
70:[function(require,module,exports){
34594 (function (Buffer){
34596 var keccakState = require('./keccak-state-unroll')
34598 function Keccak () {
34599 // much faster than `new Array(
50)`
34608 this.blockSize = null
34610 this.squeezing = false
34613 Keccak.prototype.initialize = function (rate, capacity) {
34614 for (var i =
0; i <
50; ++i) this.state[i] =
0
34615 this.blockSize = rate /
8
34617 this.squeezing = false
34620 Keccak.prototype.absorb = function (data) {
34621 for (var i =
0; i < data.length; ++i) {
34622 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
34624 if (this.count === this.blockSize) {
34625 keccakState.p1600(this.state)
34631 Keccak.prototype.absorbLastFewBits = function (bits) {
34632 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
34633 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
34634 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
34635 keccakState.p1600(this.state)
34637 this.squeezing = true
34640 Keccak.prototype.squeeze = function (length) {
34641 if (!this.squeezing) this.absorbLastFewBits(
0x01)
34643 var output = Buffer.allocUnsafe(length)
34644 for (var i =
0; i < length; ++i) {
34645 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
34647 if (this.count === this.blockSize) {
34648 keccakState.p1600(this.state)
34656 Keccak.prototype.copy = function (dest) {
34657 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
34658 dest.blockSize = this.blockSize
34659 dest.count = this.count
34660 dest.squeezing = this.squeezing
34663 module.exports = Keccak
34665 }).call(this,require("buffer").Buffer)
34666 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
34667 (function (Buffer){
34670 code.google.com/p/crypto-js
34671 (c)
2009-
2013 by Jeff Mott. All rights reserved.
34672 code.google.com/p/crypto-js/wiki/License
34675 (c)
2012 by Cédric Mesnil. All rights reserved.
34677 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
34679 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
34680 - 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.
34682 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.
34687 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
34688 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
34689 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
34690 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
34691 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
34695 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
34696 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
34697 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
34698 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
34699 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
34703 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
34704 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
34705 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
34706 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
34707 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
34711 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
34712 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
34713 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
34714 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
34715 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
34718 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
34719 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
34721 function bytesToWords (bytes) {
34723 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
34724 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
34729 function wordsToBytes (words) {
34731 for (var b =
0; b < words.length *
32; b +=
8) {
34732 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
34737 function processBlock (H, M, offset) {
34739 for (var i =
0; i <
16; i++) {
34740 var offset_i = offset + i
34741 var M_offset_i = M[offset_i]
34745 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
34746 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
34750 // Working variables
34751 var al, bl, cl, dl, el
34752 var ar, br, cr, dr, er
34762 for (i =
0; i <
80; i +=
1) {
34763 t = (al + M[offset + zl[i]]) |
0
34765 t += f1(bl, cl, dl) + hl[
0]
34766 } else if (i <
32) {
34767 t += f2(bl, cl, dl) + hl[
1]
34768 } else if (i <
48) {
34769 t += f3(bl, cl, dl) + hl[
2]
34770 } else if (i <
64) {
34771 t += f4(bl, cl, dl) + hl[
3]
34772 } else {// if (i
<80) {
34773 t += f5(bl, cl, dl) + hl[
4]
34784 t = (ar + M[offset + zr[i]]) |
0
34786 t += f5(br, cr, dr) + hr[
0]
34787 } else if (i <
32) {
34788 t += f4(br, cr, dr) + hr[
1]
34789 } else if (i <
48) {
34790 t += f3(br, cr, dr) + hr[
2]
34791 } else if (i <
64) {
34792 t += f2(br, cr, dr) + hr[
3]
34793 } else {// if (i
<80) {
34794 t += f1(br, cr, dr) + hr[
4]
34807 // intermediate hash value
34808 t = (H[
1] + cl + dr) |
0
34809 H[
1] = (H[
2] + dl + er) |
0
34810 H[
2] = (H[
3] + el + ar) |
0
34811 H[
3] = (H[
4] + al + br) |
0
34812 H[
4] = (H[
0] + bl + cr) |
0
34816 function f1 (x, y, z) {
34817 return ((x) ^ (y) ^ (z))
34820 function f2 (x, y, z) {
34821 return (((x) & (y)) | ((~x) & (z)))
34824 function f3 (x, y, z) {
34825 return (((x) | (~(y))) ^ (z))
34828 function f4 (x, y, z) {
34829 return (((x) & (z)) | ((y) & (~(z))))
34832 function f5 (x, y, z) {
34833 return ((x) ^ ((y) | (~(z))))
34836 function rotl (x, n) {
34837 return (x << n) | (x
>>> (
32 - n))
34840 function ripemd160 (message) {
34841 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
34843 if (typeof message === 'string') {
34844 message = new Buffer(message, 'utf8')
34847 var m = bytesToWords(message)
34849 var nBitsLeft = message.length *
8
34850 var nBitsTotal = message.length *
8
34853 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
34854 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
34855 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
34856 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
34859 for (var i =
0; i < m.length; i +=
16) {
34860 processBlock(H, m, i)
34864 for (i =
0; i <
5; i++) {
34869 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
34870 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
34873 var digestbytes = wordsToBytes(H)
34874 return new Buffer(digestbytes)
34877 module.exports = ripemd160
34879 }).call(this,require(
"buffer").Buffer)
34880 },{
"buffer":
5}],
72:[function(require,module,exports){
34881 (function (Buffer){
34882 const assert = require('assert')
34884 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
34885 * This function takes in a data, convert it to buffer if not, and a length for recursion
34887 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34888 * @returns {Buffer} - returns buffer of encoded data
34890 exports.encode = function (input) {
34891 if (input instanceof Array) {
34893 for (var i =
0; i < input.length; i++) {
34894 output.push(exports.encode(input[i]))
34896 var buf = Buffer.concat(output)
34897 return Buffer.concat([encodeLength(buf.length,
192), buf])
34899 input = toBuffer(input)
34900 if (input.length ===
1 && input[
0] <
128) {
34903 return Buffer.concat([encodeLength(input.length,
128), input])
34908 function safeParseInt (v, base) {
34909 if (v.slice(
0,
2) === '
00') {
34910 throw (new Error('invalid RLP: extra zeros'))
34913 return parseInt(v, base)
34916 function encodeLength (len, offset) {
34918 return new Buffer([len + offset])
34920 var hexLength = intToHex(len)
34921 var lLength = hexLength.length /
2
34922 var firstByte = intToHex(offset +
55 + lLength)
34923 return new Buffer(firstByte + hexLength, 'hex')
34928 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
34929 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34930 * @returns {Array} - returns decode Array of Buffers containg the original message
34932 exports.decode = function (input, stream) {
34933 if (!input || input.length ===
0) {
34934 return new Buffer([])
34937 input = toBuffer(input)
34938 var decoded = _decode(input)
34944 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
34945 return decoded.data
34948 exports.getLength = function (input) {
34949 if (!input || input.length ===
0) {
34950 return new Buffer([])
34953 input = toBuffer(input)
34954 var firstByte = input[
0]
34955 if (firstByte <=
0x7f) {
34956 return input.length
34957 } else if (firstByte <=
0xb7) {
34958 return firstByte -
0x7f
34959 } else if (firstByte <=
0xbf) {
34960 return firstByte -
0xb6
34961 } else if (firstByte <=
0xf7) {
34962 // a list between
0-
55 bytes long
34963 return firstByte -
0xbf
34965 // a list over
55 bytes long
34966 var llength = firstByte -
0xf6
34967 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34968 return llength + length
34972 function _decode (input) {
34973 var length, llength, data, innerRemainder, d
34975 var firstByte = input[
0]
34977 if (firstByte <=
0x7f) {
34978 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
34980 data: input.slice(
0,
1),
34981 remainder: input.slice(
1)
34983 } else if (firstByte <=
0xb7) {
34984 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
34985 // The range of the first byte is [
0x80,
0xb7]
34986 length = firstByte -
0x7f
34988 // set
0x80 null to
0
34989 if (firstByte ===
0x80) {
34990 data = new Buffer([])
34992 data = input.slice(
1, length)
34995 if (length ===
2 && data[
0] <
0x80) {
34996 throw new Error('invalid rlp encoding: byte must be less
0x80')
35001 remainder: input.slice(length)
35003 } else if (firstByte <=
0xbf) {
35004 llength = firstByte -
0xb6
35005 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
35006 data = input.slice(llength, length + llength)
35007 if (data.length < length) {
35008 throw (new Error('invalid RLP'))
35013 remainder: input.slice(length + llength)
35015 } else if (firstByte <=
0xf7) {
35016 // a list between
0-
55 bytes long
35017 length = firstByte -
0xbf
35018 innerRemainder = input.slice(
1, length)
35019 while (innerRemainder.length) {
35020 d = _decode(innerRemainder)
35021 decoded.push(d.data)
35022 innerRemainder = d.remainder
35027 remainder: input.slice(length)
35030 // a list over
55 bytes long
35031 llength = firstByte -
0xf6
35032 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
35033 var totalLength = llength + length
35034 if (totalLength
> input.length) {
35035 throw new Error('invalid rlp: total length is larger than the data')
35038 innerRemainder = input.slice(llength, totalLength)
35039 if (innerRemainder.length ===
0) {
35040 throw new Error('invalid rlp, List has a invalid length')
35043 while (innerRemainder.length) {
35044 d = _decode(innerRemainder)
35045 decoded.push(d.data)
35046 innerRemainder = d.remainder
35050 remainder: input.slice(totalLength)
35055 function isHexPrefixed (str) {
35056 return str.slice(
0,
2) === '
0x'
35059 // Removes
0x from a given String
35060 function stripHexPrefix (str) {
35061 if (typeof str !== 'string') {
35064 return isHexPrefixed(str) ? str.slice(
2) : str
35067 function intToHex (i) {
35068 var hex = i.toString(
16)
35069 if (hex.length %
2) {
35076 function padToEven (a) {
35077 if (a.length %
2) a = '
0' + a
35081 function intToBuffer (i) {
35082 var hex = intToHex(i)
35083 return new Buffer(hex, 'hex')
35086 function toBuffer (v) {
35087 if (!Buffer.isBuffer(v)) {
35088 if (typeof v === 'string') {
35089 if (isHexPrefixed(v)) {
35090 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
35094 } else if (typeof v === 'number') {
35100 } else if (v === null || v === undefined) {
35102 } else if (v.toArray) {
35103 // converts a BN to a Buffer
35104 v = new Buffer(v.toArray())
35106 throw new Error('invalid type')
35112 }).call(this,require("buffer").Buffer)
35113 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
35115 module.exports = require('./lib')(require('./lib/elliptic'))
35117 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
35118 (function (Buffer){
35120 var toString = Object.prototype.toString
35123 exports.isArray = function (value, message) {
35124 if (!Array.isArray(value)) throw TypeError(message)
35127 exports.isBoolean = function (value, message) {
35128 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
35131 exports.isBuffer = function (value, message) {
35132 if (!Buffer.isBuffer(value)) throw TypeError(message)
35135 exports.isFunction = function (value, message) {
35136 if (toString.call(value) !== '[object Function]') throw TypeError(message)
35139 exports.isNumber = function (value, message) {
35140 if (toString.call(value) !== '[object Number]') throw TypeError(message)
35143 exports.isObject = function (value, message) {
35144 if (toString.call(value) !== '[object Object]') throw TypeError(message)
35148 exports.isBufferLength = function (buffer, length, message) {
35149 if (buffer.length !== length) throw RangeError(message)
35152 exports.isBufferLength2 = function (buffer, length1, length2, message) {
35153 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
35156 exports.isLengthGTZero = function (value, message) {
35157 if (value.length ===
0) throw RangeError(message)
35160 exports.isNumberInInterval = function (number, x, y, message) {
35161 if (number <= x || number
>= y) throw RangeError(message)
35164 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
35165 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
35166 (function (Buffer){
35168 var bip66 = require('bip66')
35170 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
35172 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
35174 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35175 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35177 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
35178 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35179 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35180 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
35181 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
35182 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
35183 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35184 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
35185 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
35187 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35188 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35192 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
35194 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
35196 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35197 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35199 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
35200 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35201 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35202 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
35203 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
35204 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
35205 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
35206 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
35207 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
35208 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
35209 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
35211 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35212 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35213 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35214 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35218 var ZERO_BUFFER_32 = new Buffer([
35219 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
35220 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
35223 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
35224 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
35225 privateKey.copy(result, compressed ?
8 :
9)
35226 publicKey.copy(result, compressed ?
181 :
214)
35230 exports.privateKeyImport = function (privateKey) {
35231 var length = privateKey.length
35235 if (length < index +
1 || privateKey[index] !==
0x30) return
35238 // sequence length constructor
35239 if (length < index +
1 || !(privateKey[index] &
0x80)) return
35241 var lenb = privateKey[index] &
0x7f
35243 if (lenb <
1 || lenb
> 2) return
35244 if (length < index + lenb) return
35247 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
35249 if (length < index + len) return
35251 // sequence element
0: version number (=
1)
35252 if (length < index +
3 ||
35253 privateKey[index] !==
0x02 ||
35254 privateKey[index +
1] !==
0x01 ||
35255 privateKey[index +
2] !==
0x01) {
35260 // sequence element
1: octet string, up to
32 bytes
35261 if (length < index +
2 ||
35262 privateKey[index] !==
0x04 ||
35263 privateKey[index +
1]
> 0x20 ||
35264 length < index +
2 + privateKey[index +
1]) {
35268 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
35271 exports.signatureExport = function (sigObj) {
35272 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
35273 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
35275 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
35276 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
35278 return bip66.encode(r.slice(posR), s.slice(posS))
35281 exports.signatureImport = function (sig) {
35282 var r = new Buffer(ZERO_BUFFER_32)
35283 var s = new Buffer(ZERO_BUFFER_32)
35286 var sigObj = bip66.decode(sig)
35287 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
35288 if (sigObj.r.length
> 32) throw new Error('R length is too long')
35289 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
35290 if (sigObj.s.length
> 32) throw new Error('S length is too long')
35295 sigObj.r.copy(r,
32 - sigObj.r.length)
35296 sigObj.s.copy(s,
32 - sigObj.s.length)
35298 return { r: r, s: s }
35301 exports.signatureImportLax = function (sig) {
35302 var r = new Buffer(ZERO_BUFFER_32)
35303 var s = new Buffer(ZERO_BUFFER_32)
35305 var length = sig.length
35308 // sequence tag byte
35309 if (sig[index++] !==
0x30) return
35311 // sequence length byte
35312 var lenbyte = sig[index++]
35313 if (lenbyte &
0x80) {
35314 index += lenbyte -
0x80
35315 if (index
> length) return
35318 // sequence tag byte for r
35319 if (sig[index++] !==
0x02) return
35322 var rlen = sig[index++]
35324 lenbyte = rlen -
0x80
35325 if (index + lenbyte
> length) return
35326 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
35327 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
35329 if (rlen
> length - index) return
35333 // sequence tag byte for s
35334 if (sig[index++] !==
0x02) return
35337 var slen = sig[index++]
35339 lenbyte = slen -
0x80
35340 if (index + lenbyte
> length) return
35341 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
35342 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
35344 if (slen
> length - index) return
35348 // ignore leading zeros in r
35349 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
35351 if (rlen
> 32) return
35352 var rvalue = sig.slice(rindex, rindex + rlen)
35353 rvalue.copy(r,
32 - rvalue.length)
35355 // ignore leading zeros in s
35356 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
35358 if (slen
> 32) return
35359 var svalue = sig.slice(sindex, sindex + slen)
35360 svalue.copy(s,
32 - svalue.length)
35362 return { r: r, s: s }
35365 }).call(this,require(
"buffer").Buffer)
35366 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
35367 (function (Buffer){
35369 var createHash = require('create-hash')
35370 var BN = require('bn.js')
35371 var EC = require('elliptic').ec
35373 var messages = require('../messages.json')
35375 var ec = new EC('secp256k1')
35376 var ecparams = ec.curve
35378 function loadCompressedPublicKey (first, xBuffer) {
35379 var x = new BN(xBuffer)
35382 if (x.cmp(ecparams.p)
>=
0) return null
35383 x = x.toRed(ecparams.red)
35385 // compute corresponding Y
35386 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
35387 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
35389 return ec.keyPair({ pub: { x: x, y: y } })
35392 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
35393 var x = new BN(xBuffer)
35394 var y = new BN(yBuffer)
35397 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
35399 x = x.toRed(ecparams.red)
35400 y = y.toRed(ecparams.red)
35403 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
35406 var x3 = x.redSqr().redIMul(x)
35407 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
35409 return ec.keyPair({ pub: { x: x, y: y } })
35412 function loadPublicKey (publicKey) {
35413 var first = publicKey[
0]
35417 if (publicKey.length !==
33) return null
35418 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
35422 if (publicKey.length !==
65) return null
35423 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
35429 exports.privateKeyVerify = function (privateKey) {
35430 var bn = new BN(privateKey)
35431 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
35434 exports.privateKeyExport = function (privateKey, compressed) {
35435 var d = new BN(privateKey)
35436 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
35438 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
35441 exports.privateKeyTweakAdd = function (privateKey, tweak) {
35442 var bn = new BN(tweak)
35443 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
35445 bn.iadd(new BN(privateKey))
35446 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
35447 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
35449 return bn.toArrayLike(Buffer, 'be',
32)
35452 exports.privateKeyTweakMul = function (privateKey, tweak) {
35453 var bn = new BN(tweak)
35454 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
35456 bn.imul(new BN(privateKey))
35457 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
35459 return bn.toArrayLike(Buffer, 'be',
32)
35462 exports.publicKeyCreate = function (privateKey, compressed) {
35463 var d = new BN(privateKey)
35464 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
35466 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
35469 exports.publicKeyConvert = function (publicKey, compressed) {
35470 var pair = loadPublicKey(publicKey)
35471 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35473 return new Buffer(pair.getPublic(compressed, true))
35476 exports.publicKeyVerify = function (publicKey) {
35477 return loadPublicKey(publicKey) !== null
35480 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
35481 var pair = loadPublicKey(publicKey)
35482 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35484 tweak = new BN(tweak)
35485 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
35487 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
35490 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
35491 var pair = loadPublicKey(publicKey)
35492 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35494 tweak = new BN(tweak)
35495 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
35497 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
35500 exports.publicKeyCombine = function (publicKeys, compressed) {
35501 var pairs = new Array(publicKeys.length)
35502 for (var i =
0; i < publicKeys.length; ++i) {
35503 pairs[i] = loadPublicKey(publicKeys[i])
35504 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35507 var point = pairs[
0].pub
35508 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
35509 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
35511 return new Buffer(point.encode(true, compressed))
35514 exports.signatureNormalize = function (signature) {
35515 var r = new BN(signature.slice(
0,
32))
35516 var s = new BN(signature.slice(
32,
64))
35517 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35519 var result = new Buffer(signature)
35520 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
35525 exports.signatureExport = function (signature) {
35526 var r = signature.slice(
0,
32)
35527 var s = signature.slice(
32,
64)
35528 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35530 return { r: r, s: s }
35533 exports.signatureImport = function (sigObj) {
35534 var r = new BN(sigObj.r)
35535 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
35537 var s = new BN(sigObj.s)
35538 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
35540 return Buffer.concat([
35541 r.toArrayLike(Buffer, 'be',
32),
35542 s.toArrayLike(Buffer, 'be',
32)
35546 exports.sign = function (message, privateKey, noncefn, data) {
35547 if (typeof noncefn === 'function') {
35548 var getNonce = noncefn
35549 noncefn = function (counter) {
35550 var nonce = getNonce(message, privateKey, null, data, counter)
35551 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
35553 return new BN(nonce)
35557 var d = new BN(privateKey)
35558 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
35560 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
35562 signature: Buffer.concat([
35563 result.r.toArrayLike(Buffer, 'be',
32),
35564 result.s.toArrayLike(Buffer, 'be',
32)
35566 recovery: result.recoveryParam
35570 exports.verify = function (message, signature, publicKey) {
35571 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35573 var sigr = new BN(sigObj.r)
35574 var sigs = new BN(sigObj.s)
35575 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35576 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
35578 var pair = loadPublicKey(publicKey)
35579 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35581 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
35584 exports.recover = function (message, signature, recovery, compressed) {
35585 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35587 var sigr = new BN(sigObj.r)
35588 var sigs = new BN(sigObj.s)
35589 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35592 if (sigr.isZero() || sigs.isZero()) throw new Error()
35594 var point = ec.recoverPubKey(message, sigObj, recovery)
35595 return new Buffer(point.encode(true, compressed))
35597 throw new Error(messages.ECDSA_RECOVER_FAIL)
35601 exports.ecdh = function (publicKey, privateKey) {
35602 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
35603 return createHash('sha256').update(shared).digest()
35606 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
35607 var pair = loadPublicKey(publicKey)
35608 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35610 var scalar = new BN(privateKey)
35611 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
35613 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
35616 }).call(this,require("buffer").Buffer)
35617 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
35619 var assert = require('./assert')
35620 var der = require('./der')
35621 var messages = require('./messages.json')
35623 function initCompressedValue (value, defaultValue) {
35624 if (value === undefined) return defaultValue
35626 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
35630 module.exports = function (secp256k1) {
35632 privateKeyVerify: function (privateKey) {
35633 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35634 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
35637 privateKeyExport: function (privateKey, compressed) {
35638 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35639 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35641 compressed = initCompressedValue(compressed, true)
35642 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
35644 return der.privateKeyExport(privateKey, publicKey, compressed)
35647 privateKeyImport: function (privateKey) {
35648 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35650 privateKey = der.privateKeyImport(privateKey)
35651 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
35653 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
35656 privateKeyTweakAdd: function (privateKey, tweak) {
35657 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35658 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35660 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35661 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35663 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
35666 privateKeyTweakMul: function (privateKey, tweak) {
35667 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35668 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35670 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35671 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35673 return secp256k1.privateKeyTweakMul(privateKey, tweak)
35676 publicKeyCreate: function (privateKey, compressed) {
35677 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35678 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35680 compressed = initCompressedValue(compressed, true)
35682 return secp256k1.publicKeyCreate(privateKey, compressed)
35685 publicKeyConvert: function (publicKey, compressed) {
35686 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35687 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35689 compressed = initCompressedValue(compressed, true)
35691 return secp256k1.publicKeyConvert(publicKey, compressed)
35694 publicKeyVerify: function (publicKey) {
35695 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35696 return secp256k1.publicKeyVerify(publicKey)
35699 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
35700 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35701 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35703 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35704 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35706 compressed = initCompressedValue(compressed, true)
35708 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
35711 publicKeyTweakMul: function (publicKey, tweak, compressed) {
35712 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35713 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35715 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35716 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35718 compressed = initCompressedValue(compressed, true)
35720 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
35723 publicKeyCombine: function (publicKeys, compressed) {
35724 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
35725 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
35726 for (var i =
0; i < publicKeys.length; ++i) {
35727 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
35728 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35731 compressed = initCompressedValue(compressed, true)
35733 return secp256k1.publicKeyCombine(publicKeys, compressed)
35736 signatureNormalize: function (signature) {
35737 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35738 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35740 return secp256k1.signatureNormalize(signature)
35743 signatureExport: function (signature) {
35744 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35745 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35747 var sigObj = secp256k1.signatureExport(signature)
35748 return der.signatureExport(sigObj)
35751 signatureImport: function (sig) {
35752 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35753 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35755 var sigObj = der.signatureImport(sig)
35756 if (sigObj) return secp256k1.signatureImport(sigObj)
35758 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35761 signatureImportLax: function (sig) {
35762 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35763 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35765 var sigObj = der.signatureImportLax(sig)
35766 if (sigObj) return secp256k1.signatureImport(sigObj)
35768 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35771 sign: function (message, privateKey, options) {
35772 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35773 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35775 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35776 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35780 if (options !== undefined) {
35781 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
35783 if (options.data !== undefined) {
35784 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
35785 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
35786 data = options.data
35789 if (options.noncefn !== undefined) {
35790 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
35791 noncefn = options.noncefn
35795 return secp256k1.sign(message, privateKey, noncefn, data)
35798 verify: function (message, signature, publicKey) {
35799 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35800 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35802 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35803 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35805 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35806 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35808 return secp256k1.verify(message, signature, publicKey)
35811 recover: function (message, signature, recovery, compressed) {
35812 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35813 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35815 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35816 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35818 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
35819 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
35821 compressed = initCompressedValue(compressed, true)
35823 return secp256k1.recover(message, signature, recovery, compressed)
35826 ecdh: function (publicKey, privateKey) {
35827 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35828 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35830 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35831 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35833 return secp256k1.ecdh(publicKey, privateKey)
35836 ecdhUnsafe: function (publicKey, privateKey, compressed) {
35837 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35838 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35840 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35841 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35843 compressed = initCompressedValue(compressed, true)
35845 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
35850 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
35852 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
35853 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
35854 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
35855 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
35856 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35857 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
35858 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
35859 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
35860 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
35861 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
35862 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
35863 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
35864 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
35865 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
35866 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35867 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
35868 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
35869 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
35870 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
35871 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
35872 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
35873 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
35874 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
35875 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
35876 "MSG32_TYPE_INVALID": "message should be a Buffer",
35877 "MSG32_LENGTH_INVALID": "message length is invalid",
35878 "OPTIONS_TYPE_INVALID": "options should be an Object",
35879 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
35880 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
35881 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
35882 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
35883 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
35884 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
35885 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
35888 },{}],
79:[function(require,module,exports){
35889 (function (Buffer){
35890 // prototype class for hash functions
35891 function Hash (blockSize, finalSize) {
35892 this._block = new Buffer(blockSize)
35893 this._finalSize = finalSize
35894 this._blockSize = blockSize
35899 Hash.prototype.update = function (data, enc) {
35900 if (typeof data === 'string') {
35901 enc = enc || 'utf8'
35902 data = new Buffer(data, enc)
35905 var l = this._len += data.length
35906 var s = this._s ||
0
35908 var buffer = this._block
35911 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
35914 for (var i =
0; i < ch; i++) {
35915 buffer[(s % this._blockSize) + i] = data[i + f]
35921 if ((s % this._blockSize) ===
0) {
35922 this._update(buffer)
35930 Hash.prototype.digest = function (enc) {
35931 // Suppose the length of the message M, in bits, is l
35932 var l = this._len *
8
35934 // Append the bit
1 to the end of the message
35935 this._block[this._len % this._blockSize] =
0x80
35937 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
35938 this._block.fill(
0, this._len % this._blockSize +
1)
35940 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
35941 this._update(this._block)
35942 this._block.fill(
0)
35945 // to this append the block which is equal to the number l written in binary
35946 // TODO: handle case where l is
> Math.pow(
2,
29)
35947 this._block.writeInt32BE(l, this._blockSize -
4)
35949 var hash = this._update(this._block) || this._hash()
35951 return enc ? hash.toString(enc) : hash
35954 Hash.prototype._update = function () {
35955 throw new Error('_update must be implemented by subclass')
35958 module.exports = Hash
35960 }).call(this,require("buffer").Buffer)
35961 },{"buffer":
5}],
80:[function(require,module,exports){
35962 var exports = module.exports = function SHA (algorithm) {
35963 algorithm = algorithm.toLowerCase()
35965 var Algorithm = exports[algorithm]
35966 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
35968 return new Algorithm()
35971 exports.sha = require('./sha')
35972 exports.sha1 = require('./sha1')
35973 exports.sha224 = require('./sha224')
35974 exports.sha256 = require('./sha256')
35975 exports.sha384 = require('./sha384')
35976 exports.sha512 = require('./sha512')
35978 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
35979 (function (Buffer){
35981 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
35982 * in FIPS PUB
180-
1
35983 * This source code is derived from sha1.js of the same repository.
35984 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
35985 * operation was added.
35988 var inherits = require('inherits')
35989 var Hash = require('./hash')
35992 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35995 var W = new Array(
80)
36001 Hash.call(this,
64,
56)
36004 inherits(Sha, Hash)
36006 Sha.prototype.init = function () {
36007 this._a =
0x67452301
36008 this._b =
0xefcdab89
36009 this._c =
0x98badcfe
36010 this._d =
0x10325476
36011 this._e =
0xc3d2e1f0
36016 function rotl5 (num) {
36017 return (num <<
5) | (num
>>> 27)
36020 function rotl30 (num) {
36021 return (num <<
30) | (num
>>> 2)
36024 function ft (s, b, c, d) {
36025 if (s ===
0) return (b & c) | ((~b) & d)
36026 if (s ===
2) return (b & c) | (b & d) | (c & d)
36030 Sha.prototype._update = function (M) {
36033 var a = this._a |
0
36034 var b = this._b |
0
36035 var c = this._c |
0
36036 var d = this._d |
0
36037 var e = this._e |
0
36039 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
36040 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
36042 for (var j =
0; j <
80; ++j) {
36044 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
36053 this._a = (a + this._a) |
0
36054 this._b = (b + this._b) |
0
36055 this._c = (c + this._c) |
0
36056 this._d = (d + this._d) |
0
36057 this._e = (e + this._e) |
0
36060 Sha.prototype._hash = function () {
36061 var H = new Buffer(
20)
36063 H.writeInt32BE(this._a |
0,
0)
36064 H.writeInt32BE(this._b |
0,
4)
36065 H.writeInt32BE(this._c |
0,
8)
36066 H.writeInt32BE(this._d |
0,
12)
36067 H.writeInt32BE(this._e |
0,
16)
36072 module.exports = Sha
36074 }).call(this,require(
"buffer").Buffer)
36075 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
36076 (function (Buffer){
36078 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
36079 * in FIPS PUB
180-
1
36080 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
36081 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
36082 * Distributed under the BSD License
36083 * See http://pajhome.org.uk/crypt/md5 for details.
36086 var inherits = require('inherits')
36087 var Hash = require('./hash')
36090 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
36093 var W = new Array(
80)
36099 Hash.call(this,
64,
56)
36102 inherits(Sha1, Hash)
36104 Sha1.prototype.init = function () {
36105 this._a =
0x67452301
36106 this._b =
0xefcdab89
36107 this._c =
0x98badcfe
36108 this._d =
0x10325476
36109 this._e =
0xc3d2e1f0
36114 function rotl1 (num) {
36115 return (num <<
1) | (num
>>> 31)
36118 function rotl5 (num) {
36119 return (num <<
5) | (num
>>> 27)
36122 function rotl30 (num) {
36123 return (num <<
30) | (num
>>> 2)
36126 function ft (s, b, c, d) {
36127 if (s ===
0) return (b & c) | ((~b) & d)
36128 if (s ===
2) return (b & c) | (b & d) | (c & d)
36132 Sha1.prototype._update = function (M) {
36135 var a = this._a |
0
36136 var b = this._b |
0
36137 var c = this._c |
0
36138 var d = this._d |
0
36139 var e = this._e |
0
36141 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
36142 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
36144 for (var j =
0; j <
80; ++j) {
36146 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
36155 this._a = (a + this._a) |
0
36156 this._b = (b + this._b) |
0
36157 this._c = (c + this._c) |
0
36158 this._d = (d + this._d) |
0
36159 this._e = (e + this._e) |
0
36162 Sha1.prototype._hash = function () {
36163 var H = new Buffer(
20)
36165 H.writeInt32BE(this._a |
0,
0)
36166 H.writeInt32BE(this._b |
0,
4)
36167 H.writeInt32BE(this._c |
0,
8)
36168 H.writeInt32BE(this._d |
0,
12)
36169 H.writeInt32BE(this._e |
0,
16)
36174 module.exports = Sha1
36176 }).call(this,require(
"buffer").Buffer)
36177 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
36178 (function (Buffer){
36180 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
36182 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
36183 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
36187 var inherits = require('inherits')
36188 var Sha256 = require('./sha256')
36189 var Hash = require('./hash')
36191 var W = new Array(
64)
36193 function Sha224 () {
36196 this._w = W // new Array(
64)
36198 Hash.call(this,
64,
56)
36201 inherits(Sha224, Sha256)
36203 Sha224.prototype.init = function () {
36204 this._a =
0xc1059ed8
36205 this._b =
0x367cd507
36206 this._c =
0x3070dd17
36207 this._d =
0xf70e5939
36208 this._e =
0xffc00b31
36209 this._f =
0x68581511
36210 this._g =
0x64f98fa7
36211 this._h =
0xbefa4fa4
36216 Sha224.prototype._hash = function () {
36217 var H = new Buffer(
28)
36219 H.writeInt32BE(this._a,
0)
36220 H.writeInt32BE(this._b,
4)
36221 H.writeInt32BE(this._c,
8)
36222 H.writeInt32BE(this._d,
12)
36223 H.writeInt32BE(this._e,
16)
36224 H.writeInt32BE(this._f,
20)
36225 H.writeInt32BE(this._g,
24)
36230 module.exports = Sha224
36232 }).call(this,require(
"buffer").Buffer)
36233 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
36234 (function (Buffer){
36236 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
36238 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
36239 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
36243 var inherits = require('inherits')
36244 var Hash = require('./hash')
36247 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
36248 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
36249 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
36250 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
36251 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
36252 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
36253 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
36254 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
36255 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
36256 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
36257 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
36258 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
36259 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
36260 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
36261 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
36262 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
36265 var W = new Array(
64)
36267 function Sha256 () {
36270 this._w = W // new Array(
64)
36272 Hash.call(this,
64,
56)
36275 inherits(Sha256, Hash)
36277 Sha256.prototype.init = function () {
36278 this._a =
0x6a09e667
36279 this._b =
0xbb67ae85
36280 this._c =
0x3c6ef372
36281 this._d =
0xa54ff53a
36282 this._e =
0x510e527f
36283 this._f =
0x9b05688c
36284 this._g =
0x1f83d9ab
36285 this._h =
0x5be0cd19
36290 function ch (x, y, z) {
36291 return z ^ (x & (y ^ z))
36294 function maj (x, y, z) {
36295 return (x & y) | (z & (x | y))
36298 function sigma0 (x) {
36299 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
36302 function sigma1 (x) {
36303 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
36306 function gamma0 (x) {
36307 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
36310 function gamma1 (x) {
36311 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
36314 Sha256.prototype._update = function (M) {
36317 var a = this._a |
0
36318 var b = this._b |
0
36319 var c = this._c |
0
36320 var d = this._d |
0
36321 var e = this._e |
0
36322 var f = this._f |
0
36323 var g = this._g |
0
36324 var h = this._h |
0
36326 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
36327 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
36329 for (var j =
0; j <
64; ++j) {
36330 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
36331 var T2 = (sigma0(a) + maj(a, b, c)) |
0
36343 this._a = (a + this._a) |
0
36344 this._b = (b + this._b) |
0
36345 this._c = (c + this._c) |
0
36346 this._d = (d + this._d) |
0
36347 this._e = (e + this._e) |
0
36348 this._f = (f + this._f) |
0
36349 this._g = (g + this._g) |
0
36350 this._h = (h + this._h) |
0
36353 Sha256.prototype._hash = function () {
36354 var H = new Buffer(
32)
36356 H.writeInt32BE(this._a,
0)
36357 H.writeInt32BE(this._b,
4)
36358 H.writeInt32BE(this._c,
8)
36359 H.writeInt32BE(this._d,
12)
36360 H.writeInt32BE(this._e,
16)
36361 H.writeInt32BE(this._f,
20)
36362 H.writeInt32BE(this._g,
24)
36363 H.writeInt32BE(this._h,
28)
36368 module.exports = Sha256
36370 }).call(this,require(
"buffer").Buffer)
36371 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
36372 (function (Buffer){
36373 var inherits = require('inherits')
36374 var SHA512 = require('./sha512')
36375 var Hash = require('./hash')
36377 var W = new Array(
160)
36379 function Sha384 () {
36383 Hash.call(this,
128,
112)
36386 inherits(Sha384, SHA512)
36388 Sha384.prototype.init = function () {
36389 this._ah =
0xcbbb9d5d
36390 this._bh =
0x629a292a
36391 this._ch =
0x9159015a
36392 this._dh =
0x152fecd8
36393 this._eh =
0x67332667
36394 this._fh =
0x8eb44a87
36395 this._gh =
0xdb0c2e0d
36396 this._hh =
0x47b5481d
36398 this._al =
0xc1059ed8
36399 this._bl =
0x367cd507
36400 this._cl =
0x3070dd17
36401 this._dl =
0xf70e5939
36402 this._el =
0xffc00b31
36403 this._fl =
0x68581511
36404 this._gl =
0x64f98fa7
36405 this._hl =
0xbefa4fa4
36410 Sha384.prototype._hash = function () {
36411 var H = new Buffer(
48)
36413 function writeInt64BE (h, l, offset) {
36414 H.writeInt32BE(h, offset)
36415 H.writeInt32BE(l, offset +
4)
36418 writeInt64BE(this._ah, this._al,
0)
36419 writeInt64BE(this._bh, this._bl,
8)
36420 writeInt64BE(this._ch, this._cl,
16)
36421 writeInt64BE(this._dh, this._dl,
24)
36422 writeInt64BE(this._eh, this._el,
32)
36423 writeInt64BE(this._fh, this._fl,
40)
36428 module.exports = Sha384
36430 }).call(this,require(
"buffer").Buffer)
36431 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
36432 (function (Buffer){
36433 var inherits = require('inherits')
36434 var Hash = require('./hash')
36437 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
36438 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
36439 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
36440 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
36441 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
36442 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
36443 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
36444 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
36445 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
36446 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
36447 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
36448 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
36449 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
36450 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
36451 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
36452 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
36453 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
36454 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
36455 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
36456 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
36457 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
36458 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
36459 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
36460 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
36461 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
36462 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
36463 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
36464 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
36465 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
36466 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
36467 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
36468 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
36469 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
36470 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
36471 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
36472 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
36473 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
36474 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36475 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
36476 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
36479 var W = new Array(
160)
36481 function Sha512 () {
36485 Hash.call(this,
128,
112)
36488 inherits(Sha512, Hash)
36490 Sha512.prototype.init = function () {
36491 this._ah =
0x6a09e667
36492 this._bh =
0xbb67ae85
36493 this._ch =
0x3c6ef372
36494 this._dh =
0xa54ff53a
36495 this._eh =
0x510e527f
36496 this._fh =
0x9b05688c
36497 this._gh =
0x1f83d9ab
36498 this._hh =
0x5be0cd19
36500 this._al =
0xf3bcc908
36501 this._bl =
0x84caa73b
36502 this._cl =
0xfe94f82b
36503 this._dl =
0x5f1d36f1
36504 this._el =
0xade682d1
36505 this._fl =
0x2b3e6c1f
36506 this._gl =
0xfb41bd6b
36507 this._hl =
0x137e2179
36512 function Ch (x, y, z) {
36513 return z ^ (x & (y ^ z))
36516 function maj (x, y, z) {
36517 return (x & y) | (z & (x | y))
36520 function sigma0 (x, xl) {
36521 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
36524 function sigma1 (x, xl) {
36525 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
36528 function Gamma0 (x, xl) {
36529 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
36532 function Gamma0l (x, xl) {
36533 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
36536 function Gamma1 (x, xl) {
36537 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
36540 function Gamma1l (x, xl) {
36541 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
36544 function getCarry (a, b) {
36545 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
36548 Sha512.prototype._update = function (M) {
36551 var ah = this._ah |
0
36552 var bh = this._bh |
0
36553 var ch = this._ch |
0
36554 var dh = this._dh |
0
36555 var eh = this._eh |
0
36556 var fh = this._fh |
0
36557 var gh = this._gh |
0
36558 var hh = this._hh |
0
36560 var al = this._al |
0
36561 var bl = this._bl |
0
36562 var cl = this._cl |
0
36563 var dl = this._dl |
0
36564 var el = this._el |
0
36565 var fl = this._fl |
0
36566 var gl = this._gl |
0
36567 var hl = this._hl |
0
36569 for (var i =
0; i <
32; i +=
2) {
36570 W[i] = M.readInt32BE(i *
4)
36571 W[i +
1] = M.readInt32BE(i *
4 +
4)
36573 for (; i <
160; i +=
2) {
36574 var xh = W[i -
15 *
2]
36575 var xl = W[i -
15 *
2 +
1]
36576 var gamma0 = Gamma0(xh, xl)
36577 var gamma0l = Gamma0l(xl, xh)
36580 xl = W[i -
2 *
2 +
1]
36581 var gamma1 = Gamma1(xh, xl)
36582 var gamma1l = Gamma1l(xl, xh)
36584 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
36585 var Wi7h = W[i -
7 *
2]
36586 var Wi7l = W[i -
7 *
2 +
1]
36588 var Wi16h = W[i -
16 *
2]
36589 var Wi16l = W[i -
16 *
2 +
1]
36591 var Wil = (gamma0l + Wi7l) |
0
36592 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
36593 Wil = (Wil + gamma1l) |
0
36594 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
36595 Wil = (Wil + Wi16l) |
0
36596 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
36602 for (var j =
0; j <
160; j +=
2) {
36606 var majh = maj(ah, bh, ch)
36607 var majl = maj(al, bl, cl)
36609 var sigma0h = sigma0(ah, al)
36610 var sigma0l = sigma0(al, ah)
36611 var sigma1h = sigma1(eh, el)
36612 var sigma1l = sigma1(el, eh)
36614 // t1 = h + sigma1 + ch + K[j] + W[j]
36618 var chh = Ch(eh, fh, gh)
36619 var chl = Ch(el, fl, gl)
36621 var t1l = (hl + sigma1l) |
0
36622 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
36623 t1l = (t1l + chl) |
0
36624 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
36625 t1l = (t1l + Kil) |
0
36626 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
36627 t1l = (t1l + Wil) |
0
36628 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
36630 // t2 = sigma0 + maj
36631 var t2l = (sigma0l + majl) |
0
36632 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
36640 el = (dl + t1l) |
0
36641 eh = (dh + t1h + getCarry(el, dl)) |
0
36648 al = (t1l + t2l) |
0
36649 ah = (t1h + t2h + getCarry(al, t1l)) |
0
36652 this._al = (this._al + al) |
0
36653 this._bl = (this._bl + bl) |
0
36654 this._cl = (this._cl + cl) |
0
36655 this._dl = (this._dl + dl) |
0
36656 this._el = (this._el + el) |
0
36657 this._fl = (this._fl + fl) |
0
36658 this._gl = (this._gl + gl) |
0
36659 this._hl = (this._hl + hl) |
0
36661 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
36662 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
36663 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
36664 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
36665 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
36666 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
36667 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
36668 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
36671 Sha512.prototype._hash = function () {
36672 var H = new Buffer(
64)
36674 function writeInt64BE (h, l, offset) {
36675 H.writeInt32BE(h, offset)
36676 H.writeInt32BE(l, offset +
4)
36679 writeInt64BE(this._ah, this._al,
0)
36680 writeInt64BE(this._bh, this._bl,
8)
36681 writeInt64BE(this._ch, this._cl,
16)
36682 writeInt64BE(this._dh, this._dl,
24)
36683 writeInt64BE(this._eh, this._el,
32)
36684 writeInt64BE(this._fh, this._fl,
40)
36685 writeInt64BE(this._gh, this._gl,
48)
36686 writeInt64BE(this._hh, this._hl,
56)
36691 module.exports = Sha512
36693 }).call(this,require(
"buffer").Buffer)
36694 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
36695 var isHexPrefixed = require('is-hex-prefixed');
36698 * Removes '
0x' from a given `String` is present
36699 * @param {String} str the string value
36700 * @return {String|Optional} a string by pass if necessary
36702 module.exports = function stripHexPrefix(str) {
36703 if (typeof str !== 'string') {
36707 return isHexPrefixed(str) ? str.slice(
2) : str;
36710 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
36712 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
36716 /** @fileOverview Javascript cryptography implementation.
36718 * Crush to remove comments, shorten variable names and
36719 * generally reduce transmission size.
36721 * @author Emily Stark
36722 * @author Mike Hamburg
36723 * @author Dan Boneh
36727 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
36728 /*global document, window, escape, unescape, module, require, Uint32Array */
36730 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
36732 /** @namespace Symmetric ciphers. */
36735 /** @namespace Hash functions. Right now only SHA256 is implemented. */
36738 /** @namespace Key exchange functions. Right now only SRP is implemented. */
36741 /** @namespace Block cipher modes of operation. */
36744 /** @namespace Miscellaneous. HMAC and PBKDF2. */
36748 * @namespace Bit array encoders and decoders.
36751 * The members of this namespace are functions which translate between
36752 * SJCL's bitArrays and other objects (usually strings). Because it
36753 * isn't always clear which direction is encoding and which is decoding,
36754 * the method names are "fromBits" and "toBits".
36758 /** @namespace Exceptions. */
36760 /** @constructor Ciphertext is corrupt. */
36761 corrupt: function(message) {
36762 this.toString = function() { return "CORRUPT: "+this.message; };
36763 this.message = message;
36766 /** @constructor Invalid parameter. */
36767 invalid: function(message) {
36768 this.toString = function() { return "INVALID: "+this.message; };
36769 this.message = message;
36772 /** @constructor Bug or missing feature in SJCL. @constructor */
36773 bug: function(message) {
36774 this.toString = function() { return "BUG: "+this.message; };
36775 this.message = message;
36778 /** @constructor Something isn't ready. */
36779 notReady: function(message) {
36780 this.toString = function() { return "NOT READY: "+this.message; };
36781 this.message = message;
36786 if(typeof module !== 'undefined' && module.exports){
36787 module.exports = sjcl;
36789 if (typeof define === "function") {
36790 define([], function () {
36798 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
36800 * @author Emily Stark
36801 * @author Mike Hamburg
36802 * @author Dan Boneh
36805 /** @namespace Arrays of bits, encoded as arrays of Numbers.
36809 * These objects are the currency accepted by SJCL's crypto functions.
36813 * Most of our crypto primitives operate on arrays of
4-byte words internally,
36814 * but many of them can take arguments that are not a multiple of
4 bytes.
36815 * This library encodes arrays of bits (whose size need not be a multiple of
8
36816 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
36817 * array of words,
32 bits at a time. Since the words are double-precision
36818 * floating point numbers, they fit some extra data. We use this (in a private,
36819 * possibly-changing manner) to encode the number of bits actually present
36820 * in the last word of the array.
36824 * Because bitwise ops clear this out-of-band data, these arrays can be passed
36825 * to ciphers like AES which want arrays of words.
36830 * Array slices in units of bits.
36831 * @param {bitArray} a The array to slice.
36832 * @param {Number} bstart The offset to the start of the slice, in bits.
36833 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
36834 * slice until the end of the array.
36835 * @return {bitArray} The requested slice.
36837 bitSlice: function (a, bstart, bend) {
36838 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
36839 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
36843 * Extract a number packed into a bit array.
36844 * @param {bitArray} a The array to slice.
36845 * @param {Number} bstart The offset to the start of the slice, in bits.
36846 * @param {Number} length The length of the number to extract.
36847 * @return {Number} The requested slice.
36849 extract: function(a, bstart, blength) {
36850 // FIXME: this Math.floor is not necessary at all, but for some reason
36851 // seems to suppress a bug in the Chromium JIT.
36852 var x, sh = Math.floor((-bstart-blength) &
31);
36853 if ((bstart + blength -
1 ^ bstart) & -
32) {
36854 // it crosses a boundary
36855 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
36857 // within a single word
36858 x = a[bstart/
32|
0]
>>> sh;
36860 return x & ((
1<
<blength) -
1);
36864 * Concatenate two bit arrays.
36865 * @param {bitArray} a1 The first array.
36866 * @param {bitArray} a2 The second array.
36867 * @return {bitArray} The concatenation of a1 and a2.
36869 concat: function (a1, a2) {
36870 if (a1.length ===
0 || a2.length ===
0) {
36871 return a1.concat(a2);
36874 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
36875 if (shift ===
32) {
36876 return a1.concat(a2);
36878 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
36883 * Find the length of an array of bits.
36884 * @param {bitArray} a The array.
36885 * @return {Number} The length of a, in bits.
36887 bitLength: function (a) {
36888 var l = a.length, x;
36889 if (l ===
0) { return
0; }
36891 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
36895 * Truncate an array.
36896 * @param {bitArray} a The array.
36897 * @param {Number} len The length to truncate to, in bits.
36898 * @return {bitArray} A new array, truncated to len bits.
36900 clamp: function (a, len) {
36901 if (a.length *
32 < len) { return a; }
36902 a = a.slice(
0, Math.ceil(len /
32));
36905 if (l
> 0 && len) {
36906 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
36912 * Make a partial word for a bit array.
36913 * @param {Number} len The number of bits in the word.
36914 * @param {Number} x The bits.
36915 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
36916 * @return {Number} The partial word.
36918 partial: function (len, x, _end) {
36919 if (len ===
32) { return x; }
36920 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
36924 * Get the number of bits used by a partial word.
36925 * @param {Number} x The partial word.
36926 * @return {Number} The number of bits used by the partial word.
36928 getPartial: function (x) {
36929 return Math.round(x/
0x10000000000) ||
32;
36933 * Compare two arrays for equality in a predictable amount of time.
36934 * @param {bitArray} a The first array.
36935 * @param {bitArray} b The second array.
36936 * @return {boolean} true if a == b; false otherwise.
36938 equal: function (a, b) {
36939 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
36943 for (i=
0; i
<a.length; i++) {
36949 /** Shift an array right.
36950 * @param {bitArray} a The array to shift.
36951 * @param {Number} shift The number of bits to shift.
36952 * @param {Number} [carry=
0] A byte to carry in
36953 * @param {bitArray} [out=[]] An array to prepend to the output.
36956 _shiftRight: function (a, shift, carry, out) {
36957 var i, last2=
0, shift2;
36958 if (out === undefined) { out = []; }
36960 for (; shift
>=
32; shift -=
32) {
36965 return out.concat(a);
36968 for (i=
0; i
<a.length; i++) {
36969 out.push(carry | a[i]
>>>shift);
36970 carry = a[i] << (
32-shift);
36972 last2 = a.length ? a[a.length-
1] :
0;
36973 shift2 = sjcl.bitArray.getPartial(last2);
36974 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
36978 /** xor a block of
4 words together.
36981 _xor4: function(x,y) {
36982 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
36985 /** byteswap a word array inplace.
36986 * (does not handle partial words)
36987 * @param {sjcl.bitArray} a word array
36988 * @return {sjcl.bitArray} byteswapped array
36990 byteswapM: function(a) {
36991 var i, v, m =
0xff00;
36992 for (i =
0; i < a.length; ++i) {
36994 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
37001 //// codecString.js
37003 /** @fileOverview Bit array codec implementations.
37005 * @author Emily Stark
37006 * @author Mike Hamburg
37007 * @author Dan Boneh
37010 /** @namespace UTF-
8 strings */
37011 sjcl.codec.utf8String = {
37012 /** Convert from a bitArray to a UTF-
8 string. */
37013 fromBits: function (arr) {
37014 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
37015 for (i=
0; i
<bl/
8; i++) {
37019 out += String.fromCharCode(tmp
>>> 24);
37022 return decodeURIComponent(escape(out));
37025 /** Convert from a UTF-
8 string to a bitArray. */
37026 toBits: function (str) {
37027 str = unescape(encodeURIComponent(str));
37028 var out = [], i, tmp=
0;
37029 for (i=
0; i
<str.length; i++) {
37030 tmp = tmp <<
8 | str.charCodeAt(i);
37037 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
37046 /** @fileOverview Bit array codec implementations.
37048 * @author Emily Stark
37049 * @author Mike Hamburg
37050 * @author Dan Boneh
37053 /** @namespace Hexadecimal */
37055 /** Convert from a bitArray to a hex string. */
37056 fromBits: function (arr) {
37058 for (i=
0; i
<arr.length; i++) {
37059 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
37061 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
37063 /** Convert from a hex string to a bitArray. */
37064 toBits: function (str) {
37065 var i, out=[], len;
37066 str = str.replace(/\s|
0x/g,
"");
37068 str = str +
"00000000";
37069 for (i=
0; i
<str.length; i+=
8) {
37070 out.push(parseInt(str.substr(i,
8),
16)^
0);
37072 return sjcl.bitArray.clamp(out, len*
4);
37079 /** @fileOverview Javascript SHA-
512 implementation.
37081 * This implementation was written for CryptoJS by Jeff Mott and adapted for
37082 * SJCL by Stefan Thomas.
37084 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
37085 * Released with New BSD License
37087 * @author Emily Stark
37088 * @author Mike Hamburg
37089 * @author Dan Boneh
37090 * @author Jeff Mott
37091 * @author Stefan Thomas
37095 * Context for a SHA-
512 operation in progress.
37097 * @class Secure Hash Algorithm,
512 bits.
37099 sjcl.hash.sha512 = function (hash) {
37100 if (!this._key[
0]) { this._precompute(); }
37102 this._h = hash._h.slice(
0);
37103 this._buffer = hash._buffer.slice(
0);
37104 this._length = hash._length;
37111 * Hash a string or an array of words.
37113 * @param {bitArray|String} data the data to hash.
37114 * @return {bitArray} The hash value, an array of
16 big-endian words.
37116 sjcl.hash.sha512.hash = function (data) {
37117 return (new sjcl.hash.sha512()).update(data).finalize();
37120 sjcl.hash.sha512.prototype = {
37122 * The hash's block size, in bits.
37128 * Reset the hash state.
37131 reset:function () {
37132 this._h = this._init.slice(
0);
37139 * Input several words to the hash.
37140 * @param {bitArray|String} data the data to hash.
37143 update: function (data) {
37144 if (typeof data ===
"string") {
37145 data = sjcl.codec.utf8String.toBits(data);
37147 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
37149 nl = this._length = ol + sjcl.bitArray.bitLength(data);
37150 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
37151 this._block(b.splice(
0,
32));
37157 * Complete hashing and output the hash value.
37158 * @return {bitArray} The hash value, an array of
16 big-endian words.
37160 finalize:function () {
37161 var i, b = this._buffer, h = this._h;
37163 // Round out and push the buffer
37164 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
37166 // Round out the buffer to a multiple of
32 words, less the
4 length words.
37167 for (i = b.length +
4; i &
31; i++) {
37171 // append the length
37174 b.push(Math.floor(this._length /
0x100000000));
37175 b.push(this._length |
0);
37178 this._block(b.splice(
0,
32));
37186 * The SHA-
512 initialization vector, to be precomputed.
37192 * Least significant
24 bits of SHA512 initialization values.
37194 * Javascript only has
53 bits of precision, so we compute the
40 most
37195 * significant bits and add the remaining
24 bits as constants.
37199 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
37203 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
37204 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
37208 * The SHA-
512 hash key, to be precomputed.
37214 * Least significant
24 bits of SHA512 key values.
37218 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
37219 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
37220 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
37221 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
37222 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
37223 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
37224 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
37225 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
37226 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
37227 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
37231 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37232 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37233 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37234 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37235 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37236 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37237 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37238 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37239 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37240 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37241 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37242 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37243 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37244 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37245 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37246 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37247 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37248 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37249 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37250 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
37254 * Function to precompute _init and _key.
37257 _precompute: function () {
37258 // XXX: This code is for precomputing the SHA256 constants, change for
37259 // SHA512 and re-enable.
37260 var i =
0, prime =
2, factor;
37262 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
37263 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
37265 outer: for (; i
<80; prime++) {
37266 for (factor=
2; factor*factor <= prime; factor++) {
37267 if (prime % factor ===
0) {
37274 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
37275 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
37277 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
37278 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
37284 * Perform one cycle of SHA-
512.
37285 * @param {bitArray} words one block of words.
37288 _block:function (words) {
37290 w = words.slice(
0),
37293 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
37294 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
37295 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
37296 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
37298 // Working variables
37299 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
37300 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
37301 eh = h4h, el = h4l, fh = h5h, fl = h5l,
37302 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
37304 for (i=
0; i
<80; i++) {
37305 // load up the input word for this round
37308 wrl = w[i *
2 +
1];
37311 var gamma0xh = w[(i-
15) *
2];
37312 var gamma0xl = w[(i-
15) *
2 +
1];
37314 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
37315 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
37318 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
37319 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
37320 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
37323 var gamma1xh = w[(i-
2) *
2];
37324 var gamma1xl = w[(i-
2) *
2 +
1];
37326 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
37327 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
37330 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
37331 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
37332 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
37335 var wr7h = w[(i-
7) *
2];
37336 var wr7l = w[(i-
7) *
2 +
1];
37338 var wr16h = w[(i-
16) *
2];
37339 var wr16l = w[(i-
16) *
2 +
1];
37341 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
37342 wrl = gamma0l + wr7l;
37343 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
37345 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
37347 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
37351 w[i*
2 +
1] = wrl |=
0;
37354 var chh = (eh & fh) ^ (~eh & gh);
37355 var chl = (el & fl) ^ (~el & gl);
37358 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
37359 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
37362 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
37363 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
37366 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
37367 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
37371 var krl = k[i*
2+
1];
37373 // t1 = h + sigma1 + ch + K(round) + W(round)
37374 var t1l = hl + sigma1l;
37375 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
37377 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
37379 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
37380 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
37381 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
37383 // t2 = sigma0 + maj
37384 var t2l = sigma0l + majl;
37385 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
37387 // Update working variables
37394 el = (dl + t1l) |
0;
37395 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
37402 al = (t1l + t2l) |
0;
37403 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
37406 // Intermediate hash
37407 h0l = h[
1] = (h0l + al) |
0;
37408 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
37409 h1l = h[
3] = (h1l + bl) |
0;
37410 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
37411 h2l = h[
5] = (h2l + cl) |
0;
37412 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
37413 h3l = h[
7] = (h3l + dl) |
0;
37414 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
37415 h4l = h[
9] = (h4l + el) |
0;
37416 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
37417 h5l = h[
11] = (h5l + fl) |
0;
37418 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
37419 h6l = h[
13] = (h6l + gl) |
0;
37420 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
37421 h7l = h[
15] = (h7l + hl) |
0;
37422 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
37429 /** @fileOverview HMAC implementation.
37431 * @author Emily Stark
37432 * @author Mike Hamburg
37433 * @author Dan Boneh
37436 /** HMAC with the specified hash function.
37438 * @param {bitArray} key the key for HMAC.
37439 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
37441 sjcl.misc.hmac = function (key, Hash) {
37442 this._hash = Hash = Hash || sjcl.hash.sha256;
37443 var exKey = [[],[]], i,
37444 bs = Hash.prototype.blockSize /
32;
37445 this._baseHash = [new Hash(), new Hash()];
37447 if (key.length
> bs) {
37448 key = Hash.hash(key);
37451 for (i=
0; i
<bs; i++) {
37452 exKey[
0][i] = key[i]^
0x36363636;
37453 exKey[
1][i] = key[i]^
0x5C5C5C5C;
37456 this._baseHash[
0].update(exKey[
0]);
37457 this._baseHash[
1].update(exKey[
1]);
37458 this._resultHash = new Hash(this._baseHash[
0]);
37461 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
37462 * @param {bitArray|String} data The data to mac.
37464 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
37465 if (!this._updated) {
37467 return this.digest(data);
37469 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
37473 sjcl.misc.hmac.prototype.reset = function () {
37474 this._resultHash = new this._hash(this._baseHash[
0]);
37475 this._updated = false;
37478 sjcl.misc.hmac.prototype.update = function (data) {
37479 this._updated = true;
37480 this._resultHash.update(data);
37483 sjcl.misc.hmac.prototype.digest = function () {
37484 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
37495 /** @fileOverview Password-based key-derivation function, version
2.0.
37497 * @author Emily Stark
37498 * @author Mike Hamburg
37499 * @author Dan Boneh
37502 /** Password-Based Key-Derivation Function, version
2.0.
37504 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
37506 * This is the method specified by RSA's PKCS #
5 standard.
37508 * @param {bitArray|String} password The password.
37509 * @param {bitArray|String} salt The salt. Should have lots of entropy.
37510 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
37511 * @param {Number} [length] The length of the derived key. Defaults to the
37512 output size of the hash function.
37513 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
37514 * @return {bitArray} the derived key.
37516 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
37517 count = count ||
1000;
37519 if (length <
0 || count <
0) {
37520 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
37523 if (typeof password ===
"string") {
37524 password = sjcl.codec.utf8String.toBits(password);
37527 if (typeof salt ===
"string") {
37528 salt = sjcl.codec.utf8String.toBits(salt);
37531 Prff = Prff || sjcl.misc.hmac;
37533 var prf = new Prff(password),
37534 u, ui, i, j, k, out = [], b = sjcl.bitArray;
37536 for (k =
1;
32 * out.length < (length ||
1); k++) {
37537 u = ui = prf.encrypt(b.concat(salt,[k]));
37539 for (i=
1; i
<count; i++) {
37540 ui = prf.encrypt(ui);
37541 for (j=
0; j
<ui.length; j++) {
37546 out = out.concat(u);
37549 if (length) { out = b.clamp(out, length); }
37557 /** @fileOverview Javascript SHA-
256 implementation.
37559 * An older version of this implementation is available in the public
37560 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
37561 * Stanford University
2008-
2010 and BSD-licensed for liability
37564 * Special thanks to Aldo Cortesi for pointing out several bugs in
37567 * @author Emily Stark
37568 * @author Mike Hamburg
37569 * @author Dan Boneh
37573 * Context for a SHA-
256 operation in progress.
37575 * @class Secure Hash Algorithm,
256 bits.
37577 sjcl.hash.sha256 = function (hash) {
37578 if (!this._key[
0]) { this._precompute(); }
37580 this._h = hash._h.slice(
0);
37581 this._buffer = hash._buffer.slice(
0);
37582 this._length = hash._length;
37589 * Hash a string or an array of words.
37591 * @param {bitArray|String} data the data to hash.
37592 * @return {bitArray} The hash value, an array of
16 big-endian words.
37594 sjcl.hash.sha256.hash = function (data) {
37595 return (new sjcl.hash.sha256()).update(data).finalize();
37598 sjcl.hash.sha256.prototype = {
37600 * The hash's block size, in bits.
37606 * Reset the hash state.
37609 reset:function () {
37610 this._h = this._init.slice(
0);
37617 * Input several words to the hash.
37618 * @param {bitArray|String} data the data to hash.
37621 update: function (data) {
37622 if (typeof data ===
"string") {
37623 data = sjcl.codec.utf8String.toBits(data);
37625 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
37627 nl = this._length = ol + sjcl.bitArray.bitLength(data);
37628 for (i =
512+ol & -
512; i <= nl; i+=
512) {
37629 this._block(b.splice(
0,
16));
37635 * Complete hashing and output the hash value.
37636 * @return {bitArray} The hash value, an array of
8 big-endian words.
37638 finalize:function () {
37639 var i, b = this._buffer, h = this._h;
37641 // Round out and push the buffer
37642 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
37644 // Round out the buffer to a multiple of
16 words, less the
2 length words.
37645 for (i = b.length +
2; i &
15; i++) {
37649 // append the length
37650 b.push(Math.floor(this._length /
0x100000000));
37651 b.push(this._length |
0);
37654 this._block(b.splice(
0,
16));
37662 * The SHA-
256 initialization vector, to be precomputed.
37667 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
37671 * The SHA-
256 hash key, to be precomputed.
37677 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37678 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37679 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37680 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37681 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37682 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37683 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37684 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
37689 * Function to precompute _init and _key.
37692 _precompute: function () {
37693 var i =
0, prime =
2, factor;
37695 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
37697 outer: for (; i
<64; prime++) {
37698 for (factor=
2; factor*factor <= prime; factor++) {
37699 if (prime % factor ===
0) {
37706 this._init[i] = frac(Math.pow(prime,
1/
2));
37708 this._key[i] = frac(Math.pow(prime,
1/
3));
37714 * Perform one cycle of SHA-
256.
37715 * @param {bitArray} words one block of words.
37718 _block:function (words) {
37720 w = words.slice(
0),
37723 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
37724 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
37726 /* Rationale for placement of |
0 :
37727 * If a value can overflow is original
32 bits by a factor of more than a few
37728 * million (
2^
23 ish), there is a possibility that it might overflow the
37729 *
53-bit mantissa and lose precision.
37731 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
37732 * propagates around the loop, and on the hash state h[]. I don't believe
37733 * that the clamps on h4 and on h0 are strictly necessary, but it's close
37734 * (for h4 anyway), and better safe than sorry.
37736 * The clamps on h[] are necessary for the output to be correct even in the
37737 * common case and for short inputs.
37739 for (i=
0; i
<64; i++) {
37740 // load up the input word for this round
37744 a = w[(i+
1 ) &
15];
37745 b = w[(i+
14) &
15];
37746 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
37747 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
37748 w[i&
15] + w[(i+
9) &
15]) |
0;
37751 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
37754 h7 = h6; h6 = h5; h5 = h4;
37756 h3 = h2; h2 = h1; h1 = h0;
37758 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
37761 h[
0] = h[
0]+h0 |
0;
37762 h[
1] = h[
1]+h1 |
0;
37763 h[
2] = h[
2]+h2 |
0;
37764 h[
3] = h[
3]+h3 |
0;
37765 h[
4] = h[
4]+h4 |
0;
37766 h[
5] = h[
5]+h5 |
0;
37767 h[
6] = h[
6]+h6 |
0;
37768 h[
7] = h[
7]+h7 |
0;
37772 <script>// An extremely basic translation library
37776 // Set some html to be translated. Do this using the 'data-translate' attribute:
37778 //
<div data-translate
>Test
</div>
37779 //
<div data-translate-html
><em>keep em tag
</em></div>
37780 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
37781 //
<span data-translate-title
title=
"Example title"></span>
37783 // Obtain all the phrases to be translated via js debug console:
37785 // Translate.phrasesAsJson();
37787 // Use that template to translate the phrases into another language.
37788 // Leave the key the same. Change the value to the new language.
37790 // Create a js file to load the new phrases. In this example for Spanish,
37791 // es.js will contain the following code:
37793 // Translate.loadForeignPhrases("es", {
37794 // "Test": "Test in Spanish",
37795 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
37796 // "Example placeholder
": "Example placeholder in Spanish
"
37797 // "Example title
": "Example title in Spanish
"
37800 // In your UI put a listener for clicking on the Spanish button:
37802 // mySpanishButton.addEventListener("click
", function() {
37803 // Translate.setLanguage("es
");
37805 // myEnglishButton.addEventListener("click
", function() {
37806 // Translate.setLanguage("en
");
37809 Translate = new (function() {
37811 var defaultLanguage = "en
";
37813 var allPhrases = {};
37814 allPhrases[defaultLanguage] = {};
37819 selector: "[data-translate]
",
37820 getKey: function() {
37821 return this.textContent.trim().replace(/\s+/g, " ");
37823 setPhrase: function(p) {
37824 this.textContent = p;
37829 selector: "[data-translate-html]
",
37830 getKey: function() {
37831 return this.innerHTML.trim().replace(/\s+/g, " ");
37833 setPhrase: function(p) {
37834 this.innerHTML = p;
37838 var placeholder = {
37839 selector: "[data-translate-placeholder]
",
37840 getKey: function() {
37841 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
37843 setPhrase: function(p) {
37844 this.setAttribute("placeholder
", p);
37849 selector: "[data-translate-title]
",
37850 getKey: function() {
37851 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
37853 setPhrase: function(p) {
37854 this.setAttribute("title
", p);
37858 // Get elements to be translated
37859 var allEls = getEls(text)
37860 .concat(getEls(html))
37861 .concat(getEls(placeholder))
37862 .concat(getEls(title));
37864 // Provides access to phrases from a non-default language.
37865 // See phrases_en.js for example usage.
37866 this.loadForeignPhrases = function(language, phrases) {
37867 allPhrases[language] = phrases;
37870 // Displays a different language, eg "en
" or "fr
"
37871 this.setLanguage = function(language) {
37872 for (var i=0; i<allEls.length; i++) {
37873 var el = allEls[i];
37875 if (!(language in allPhrases)) {
37876 console.log(language + " not in allPhrases
");
37879 if (!(key in allPhrases[language])) {
37880 console.log(language + " does not contain phrase:
" + key);
37883 var phrase = allPhrases[language][key];
37884 el.setPhrase(phrase);
37888 // Converts the phrases to a key-pair json file.
37889 // This is a good way to export phrases for use in translation tools.
37890 this.phrasesAsJson = function(language) {
37892 for (var i=0; i<allEls.length; i++) {
37893 var el = allEls[i];
37899 for (var i=0; i<keys.length; i++) {
37901 var translated = "";
37902 if (language in allPhrases && key in allPhrases[language]) {
37903 translated = allPhrases[language][key];
37905 output[key] = translated;
37907 return JSON.stringify(output, null, 2);
37910 function getEls(nodeType) {
37911 var nodes = document.querySelectorAll(nodeType.selector);
37913 for (var i=0; i<nodes.length; i++) {
37914 var node = nodes[i];
37915 node.getKey = nodeType.getKey;
37916 node.setPhrase = nodeType.setPhrase;
37917 node.key = node.getKey();
37918 allPhrases[defaultLanguage][node.key] = node.key;
37926 <script>Translate.loadForeignPhrases("en",
37928 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
37929 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
37930 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
37931 "
<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).",
37932 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
37933 "Account": "Account",
37934 "Address": "Address",
37935 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
37936 "BIP32 Derivation Path": "BIP32 Derivation Path",
37937 "BIP32 Extended Key": "BIP32 Extended Key",
37938 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
37939 "BIP32 Root Key": "BIP32 Root Key",
37940 "BIP39 Mnemonic": "BIP39 Mnemonic",
37941 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
37942 "BIP39 Seed": "BIP39 Seed",
37943 "Base
10": "Base
10",
37944 "Base
6": "Base
6",
37945 "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.",
37946 "Binary": "Binary",
37947 "Bitcoin Core": "Bitcoin Core",
37948 "Bits Per Event": "Bits Per Event",
37949 "Block Explorers": "Block Explorers",
37950 "Can be used with": "Can be used with",
37954 "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.",
37955 "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.",
37956 "Entropy": "Entropy",
37957 "Entropy Type": "Entropy Type",
37958 "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.",
37959 "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>.",
37960 "Event Count": "Event Count",
37961 "External / Internal": "External / Internal",
37962 "Filtered Entropy": "Filtered Entropy",
37963 "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>",
37964 "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>.",
37965 "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>.",
37966 "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>",
37967 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
37968 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
37969 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
37970 "Get the source code from the repository
": "Get the source code from the repository
",
37972 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
37973 "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.
",
37974 "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.
",
37975 "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.
",
37976 "Libraries
": "Libraries
",
37977 "Mnemonic Language
": "Mnemonic Language
",
37978 "Mnemonic Length
": "Mnemonic Length
",
37979 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
37980 "More info
": "More info
",
37981 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
37982 "Mycelium Wallet
": "Mycelium Wallet
",
37983 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
37984 "Offline Usage
": "Offline Usage
",
37985 "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.",
37987 "Private Key": "Private Key",
37988 "Private Keys": "Private Keys",
37989 "Public Key": "Public Key",
37990 "Purpose": "Purpose",
37991 "Raw Binary": "Raw Binary",
37992 "Read more": "Read more",
37993 "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>",
37994 "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>",
37995 "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>",
37996 "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>",
37998 "Show more rows
": "Show more rows
",
37999 "Strength
": "Strength
",
38000 "Supply my own source of entropy
": "Supply my own source of entropy
",
38001 "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.
",
38002 "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>.",
38003 "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.",
38004 "This project is
100% open-source code": "This project is
100% open-source code",
38005 "Toggle": "Toggle",
38006 "Total Bits": "Total Bits",
38007 "Use hardened addresses": "Use hardened addresses",
38008 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
38009 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
38010 "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>.",
38011 "Valid entropy values include:": "Valid entropy values include:",
38012 "Warning": "Warning",
38013 "Word Count": "Word Count",
38014 "You are not a good source of entropy.": "You are not a good source of entropy.",
38015 "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).",
38016 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
38021 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38022 WORDLISTS["english"] = [
38023 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
38024 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
38025 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
38026 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
38027 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
38028 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
38029 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
38030 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
38031 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
38032 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
38033 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
38034 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
38035 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
38036 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
38037 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
38038 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
38039 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
38040 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
38041 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
38042 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
38043 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
38044 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
38045 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
38046 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
38047 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
38048 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
38049 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
38050 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
38051 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
38052 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
38053 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
38054 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
38055 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
38056 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
38057 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
38058 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
38059 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
38060 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
38061 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
38062 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
38063 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
38064 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
38065 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
38066 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
38067 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
38068 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
38069 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
38070 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
38071 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
38072 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
38073 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
38074 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
38075 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
38076 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
38077 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
38078 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
38079 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
38080 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
38081 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
38082 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
38083 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
38084 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
38085 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
38086 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
38087 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
38088 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
38089 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
38090 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
38091 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
38092 "film","filter","final","find","fine","finger","finish","fire","firm","first",
38093 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
38094 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
38095 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
38096 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
38097 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
38098 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
38099 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
38100 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
38101 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
38102 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
38103 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
38104 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
38105 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
38106 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
38107 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
38108 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
38109 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
38110 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
38111 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
38112 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
38113 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
38114 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
38115 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
38116 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
38117 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
38118 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
38119 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
38120 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
38121 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
38122 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
38123 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
38124 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
38125 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
38126 "liar","liberty","library","license","life","lift","light","like","limb","limit",
38127 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
38128 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
38129 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
38130 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
38131 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
38132 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
38133 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
38134 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
38135 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
38136 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
38137 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
38138 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
38139 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
38140 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
38141 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
38142 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
38143 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
38144 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
38145 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
38146 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
38147 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
38148 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
38149 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
38150 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
38151 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
38152 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
38153 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
38154 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
38155 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
38156 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
38157 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
38158 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
38159 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
38160 "prize","problem","process","produce","profit","program","project","promote","proof","property",
38161 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
38162 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
38163 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
38164 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
38165 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
38166 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
38167 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
38168 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
38169 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
38170 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
38171 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
38172 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
38173 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
38174 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
38175 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
38176 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
38177 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
38178 "scrub","sea","search","season","seat","second","secret","section","security","seed",
38179 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
38180 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
38181 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
38182 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
38183 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
38184 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
38185 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
38186 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
38187 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
38188 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
38189 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
38190 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
38191 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
38192 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
38193 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
38194 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
38195 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
38196 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
38197 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
38198 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
38199 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
38200 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
38201 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
38202 "thank","that","theme","then","theory","there","they","thing","this","thought",
38203 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
38204 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
38205 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
38206 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
38207 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
38208 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
38209 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
38210 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
38211 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
38212 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
38213 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
38214 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
38215 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
38216 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
38217 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
38218 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
38219 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
38220 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
38221 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
38222 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
38223 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
38224 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
38225 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
38226 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
38227 "yellow","you","young","youth","zebra","zero","zone","zoo"]
38229 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38230 WORDLISTS["japanese"] = [
38231 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
38232 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
38233 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
38234 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
38235 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
38236 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
38237 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
38238 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
38239 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
38240 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
38241 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
38242 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
38243 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
38244 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
38245 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
38246 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
38247 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
38248 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
38249 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
38250 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
38251 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
38252 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
38253 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
38254 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
38255 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
38256 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
38257 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
38258 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
38259 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
38260 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
38261 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
38262 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
38263 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
38264 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
38265 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
38266 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
38267 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
38268 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
38269 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
38270 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
38271 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
38272 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
38273 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
38274 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
38275 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
38276 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
38277 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
38278 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
38279 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
38280 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
38281 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
38282 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
38283 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
38284 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
38285 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
38286 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
38287 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
38288 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
38289 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
38290 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
38291 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
38292 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
38293 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
38294 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
38295 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
38296 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
38297 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
38298 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
38299 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
38300 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
38301 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
38302 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
38303 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
38304 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
38305 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
38306 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
38307 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
38308 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
38309 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
38310 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
38311 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
38312 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
38313 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
38314 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
38315 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
38316 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
38317 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
38318 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
38319 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
38320 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
38321 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
38322 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
38323 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
38324 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
38325 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
38326 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
38327 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
38328 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
38329 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
38330 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
38331 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
38332 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
38333 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
38334 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
38335 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
38336 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
38337 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
38338 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
38339 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
38340 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
38341 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
38342 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
38343 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
38344 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
38345 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
38346 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
38347 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
38348 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
38349 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
38350 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
38351 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
38352 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
38353 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
38354 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
38355 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
38356 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
38357 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
38358 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
38359 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
38360 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
38361 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
38362 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
38363 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
38364 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
38365 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
38366 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
38367 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
38368 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
38369 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
38370 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
38371 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
38372 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
38373 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
38374 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
38375 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
38376 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
38377 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
38378 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
38379 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
38380 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
38381 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
38382 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
38383 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
38384 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
38385 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
38386 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
38387 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
38388 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
38389 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
38390 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
38391 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
38392 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
38393 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
38394 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
38395 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
38396 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
38397 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
38398 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
38399 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
38400 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
38401 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
38402 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
38403 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
38404 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
38405 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
38406 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
38407 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
38408 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
38409 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
38410 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
38411 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
38412 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
38413 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
38414 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
38415 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
38416 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
38417 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
38418 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
38419 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
38420 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
38421 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
38422 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
38423 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
38424 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
38425 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
38426 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
38427 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
38428 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
38429 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
38430 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
38431 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
38432 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
38433 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
38434 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
38435 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
38437 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38438 WORDLISTS["spanish"] = [
38439 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
38440 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
38441 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
38442 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
38443 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
38444 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
38445 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
38446 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
38447 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
38448 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
38449 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
38450 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
38451 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
38452 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
38453 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
38454 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
38455 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
38456 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
38457 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
38458 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
38459 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
38460 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
38461 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
38462 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
38463 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
38464 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
38465 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
38466 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
38467 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
38468 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
38469 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
38470 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
38471 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
38472 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
38473 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
38474 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
38475 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
38476 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
38477 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
38478 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
38479 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
38480 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
38481 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
38482 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
38483 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
38484 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
38485 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
38486 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
38487 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
38488 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
38489 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
38490 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
38491 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
38492 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
38493 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
38494 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
38495 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
38496 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
38497 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
38498 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
38499 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
38500 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
38501 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
38502 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
38503 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
38504 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
38505 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
38506 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
38507 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
38508 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
38509 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
38510 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
38511 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
38512 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
38513 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
38514 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
38515 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
38516 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
38517 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
38518 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
38519 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
38520 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
38521 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
38522 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
38523 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
38524 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
38525 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
38526 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
38527 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
38528 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
38529 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
38530 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
38531 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
38532 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
38533 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
38534 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
38535 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
38536 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
38537 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
38538 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
38539 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
38540 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
38541 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
38542 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
38543 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
38544 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
38545 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
38546 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
38547 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
38548 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
38549 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
38550 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
38551 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
38552 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
38553 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
38554 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
38555 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
38556 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
38557 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
38558 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
38559 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
38560 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
38561 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
38562 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
38563 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
38564 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
38565 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
38566 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
38567 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
38568 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
38569 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
38570 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
38571 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
38572 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
38573 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
38574 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
38575 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
38576 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
38577 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
38578 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
38579 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
38580 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
38581 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
38582 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
38583 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
38584 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
38585 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
38586 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
38587 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
38588 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
38589 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
38590 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
38591 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
38592 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
38593 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
38594 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
38595 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
38596 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
38597 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
38598 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
38599 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
38600 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
38601 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
38602 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
38603 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
38604 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
38605 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
38606 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
38607 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
38608 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
38609 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
38610 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
38611 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
38612 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
38613 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
38614 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
38615 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
38616 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
38617 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
38618 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
38619 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
38620 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
38621 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
38622 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
38623 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
38624 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
38625 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
38626 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
38627 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
38628 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
38629 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
38630 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
38631 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
38632 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
38633 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
38634 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
38635 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
38636 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
38637 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
38638 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
38639 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
38640 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
38641 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
38642 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
38643 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
38645 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38646 WORDLISTS["chinese_simplified"] = [
38647 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
38648 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
38649 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
38650 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
38651 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
38652 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
38653 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
38654 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
38655 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
38656 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
38657 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
38658 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38659 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
38660 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
38661 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
38662 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
38663 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
38664 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
38665 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
38666 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
38667 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
38668 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
38669 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
38670 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
38671 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
38672 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
38673 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
38674 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
38675 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
38676 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
38677 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
38678 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
38679 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
38680 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
38681 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
38682 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
38683 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
38684 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
38685 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
38686 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
38687 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
38688 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
38689 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
38690 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
38691 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
38692 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
38693 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
38694 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
38695 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
38696 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
38697 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
38698 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
38699 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
38700 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
38701 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
38702 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
38703 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
38704 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
38705 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
38706 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
38707 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
38708 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
38709 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
38710 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
38711 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
38712 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
38713 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
38714 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
38715 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
38716 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
38717 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
38718 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
38719 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
38720 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
38721 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
38722 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38723 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
38724 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
38725 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
38726 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
38727 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
38728 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
38729 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
38730 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
38731 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
38732 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
38733 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
38734 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
38735 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
38736 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
38737 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
38738 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
38739 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38740 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
38741 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
38742 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
38743 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
38744 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
38745 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
38746 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
38747 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
38748 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
38749 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
38750 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
38751 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
38752 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
38753 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
38754 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
38755 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38756 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38757 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
38758 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
38759 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
38760 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
38761 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
38762 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
38763 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
38764 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
38765 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
38766 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
38767 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
38768 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38769 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
38770 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
38771 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
38772 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
38773 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
38774 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
38775 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
38776 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
38777 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
38778 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
38779 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
38780 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
38781 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
38782 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
38783 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
38784 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
38785 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
38786 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
38787 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
38788 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
38789 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
38790 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
38791 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
38792 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
38793 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
38794 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
38795 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
38796 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
38797 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
38798 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
38799 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
38800 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
38801 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
38802 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
38803 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
38804 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
38805 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
38806 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
38807 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
38808 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
38809 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
38810 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
38811 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
38812 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
38813 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
38814 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
38815 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
38816 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
38817 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
38818 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
38819 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
38820 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
38821 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
38822 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
38823 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
38824 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
38825 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
38826 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
38827 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
38828 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
38829 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
38830 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
38831 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
38832 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
38833 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
38834 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
38835 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
38836 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
38837 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
38838 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
38839 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
38840 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
38841 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
38842 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
38843 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
38844 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
38845 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
38846 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
38847 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
38848 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
38849 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
38850 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
38851 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
38853 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38854 WORDLISTS["chinese_traditional"] = [
38855 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
38856 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
38857 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
38858 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
38859 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
38860 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
38861 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
38862 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
38863 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
38864 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
38865 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
38866 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38867 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
38868 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
38869 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
38870 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
38871 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
38872 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
38873 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
38874 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
38875 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
38876 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
38877 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
38878 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
38879 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
38880 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
38881 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
38882 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
38883 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
38884 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
38885 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
38886 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
38887 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
38888 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
38889 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
38890 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
38891 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
38892 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
38893 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
38894 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
38895 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
38896 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
38897 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
38898 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
38899 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
38900 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
38901 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
38902 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
38903 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
38904 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
38905 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
38906 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
38907 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
38908 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
38909 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
38910 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
38911 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
38912 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
38913 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
38914 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
38915 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
38916 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
38917 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
38918 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
38919 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
38920 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
38921 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
38922 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
38923 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
38924 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
38925 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
38926 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
38927 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
38928 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
38929 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
38930 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38931 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
38932 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
38933 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
38934 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
38935 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
38936 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
38937 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
38938 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
38939 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
38940 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
38941 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
38942 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
38943 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
38944 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
38945 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
38946 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
38947 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38948 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
38949 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
38950 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
38951 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
38952 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
38953 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
38954 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
38955 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
38956 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
38957 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
38958 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
38959 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
38960 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
38961 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
38962 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
38963 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38964 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38965 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
38966 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
38967 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
38968 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
38969 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
38970 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
38971 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
38972 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
38973 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
38974 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
38975 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
38976 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38977 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
38978 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
38979 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
38980 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
38981 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
38982 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
38983 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
38984 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
38985 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
38986 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
38987 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
38988 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
38989 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
38990 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
38991 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
38992 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
38993 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
38994 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
38995 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
38996 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
38997 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
38998 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
38999 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
39000 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
39001 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
39002 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
39003 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
39004 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
39005 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
39006 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
39007 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
39008 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
39009 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
39010 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
39011 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
39012 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
39013 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
39014 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
39015 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
39016 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
39017 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
39018 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
39019 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
39020 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
39021 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
39022 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
39023 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
39024 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
39025 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
39026 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
39027 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
39028 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
39029 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
39030 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
39031 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
39032 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
39033 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
39034 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
39035 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
39036 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
39037 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
39038 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
39039 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
39040 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
39041 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
39042 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
39043 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
39044 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
39045 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
39046 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
39047 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
39048 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
39049 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
39050 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
39051 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
39052 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
39053 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
39054 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
39055 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
39056 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
39057 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
39058 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
39059 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
39061 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
39062 WORDLISTS["french"] = [
39063 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
39064 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
39065 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
39066 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
39067 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
39068 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
39069 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
39070 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
39071 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
39072 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
39073 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
39074 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
39075 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
39076 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
39077 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
39078 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
39079 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
39080 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
39081 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
39082 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
39083 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
39084 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
39085 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
39086 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
39087 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
39088 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
39089 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
39090 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
39091 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
39092 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
39093 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
39094 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
39095 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
39096 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
39097 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
39098 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
39099 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
39100 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
39101 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
39102 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
39103 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
39104 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
39105 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
39106 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
39107 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
39108 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
39109 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
39110 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
39111 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
39112 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
39113 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
39114 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
39115 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
39116 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
39117 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
39118 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
39119 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
39120 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
39121 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
39122 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
39123 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
39124 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
39125 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
39126 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
39127 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
39128 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
39129 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
39130 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
39131 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
39132 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
39133 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
39134 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
39135 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
39136 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
39137 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
39138 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
39139 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
39140 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
39141 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
39142 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
39143 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
39144 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
39145 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
39146 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
39147 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
39148 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
39149 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
39150 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
39151 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
39152 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
39153 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
39154 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
39155 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
39156 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
39157 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
39158 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
39159 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
39160 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
39161 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
39162 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
39163 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
39164 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
39165 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
39166 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
39167 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
39168 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
39169 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
39170 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
39171 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
39172 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
39173 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
39174 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
39175 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
39176 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
39177 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
39178 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
39179 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
39180 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
39181 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
39182 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
39183 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
39184 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
39185 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
39186 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
39187 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
39188 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
39189 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
39190 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
39191 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
39192 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
39193 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
39194 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
39195 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
39196 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
39197 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
39198 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
39199 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
39200 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
39201 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
39202 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
39203 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
39204 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
39205 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
39206 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
39207 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
39208 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
39209 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
39210 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
39211 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
39212 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
39213 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
39214 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
39215 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
39216 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
39217 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
39218 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
39219 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
39220 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
39221 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
39222 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
39223 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
39224 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
39225 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
39226 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
39227 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
39228 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
39229 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
39230 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
39231 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
39232 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
39233 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
39234 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
39235 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
39236 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
39237 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
39238 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
39239 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
39240 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
39241 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
39242 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
39243 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
39244 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
39245 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
39246 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
39247 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
39248 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
39249 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
39250 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
39251 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
39252 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
39253 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
39254 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
39255 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
39256 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
39257 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
39258 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
39259 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
39260 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
39261 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
39262 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
39263 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
39264 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
39265 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
39266 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
39267 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
39269 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
39270 WORDLISTS["italian"] = [
39271 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
39272 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
39273 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
39274 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
39275 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
39276 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
39277 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
39278 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
39279 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
39280 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
39281 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
39282 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
39283 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
39284 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
39285 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
39286 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
39287 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
39288 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
39289 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
39290 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
39291 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
39292 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
39293 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
39294 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
39295 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
39296 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
39297 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
39298 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
39299 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
39300 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
39301 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
39302 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
39303 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
39304 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
39305 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
39306 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
39307 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
39308 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
39309 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
39310 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
39311 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
39312 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
39313 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
39314 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
39315 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
39316 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
39317 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
39318 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
39319 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
39320 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
39321 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
39322 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
39323 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
39324 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
39325 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
39326 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
39327 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
39328 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
39329 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
39330 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
39331 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
39332 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
39333 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
39334 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
39335 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
39336 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
39337 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
39338 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
39339 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
39340 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
39341 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
39342 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
39343 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
39344 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
39345 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
39346 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
39347 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
39348 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
39349 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
39350 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
39351 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
39352 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
39353 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
39354 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
39355 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
39356 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
39357 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
39358 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
39359 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
39360 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
39361 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
39362 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
39363 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
39364 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
39365 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
39366 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
39367 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
39368 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
39369 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
39370 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
39371 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
39372 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
39373 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
39374 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
39375 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
39376 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
39377 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
39378 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
39379 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
39380 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
39381 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
39382 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
39383 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
39384 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
39385 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
39386 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
39387 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
39388 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
39389 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
39390 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
39391 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
39392 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
39393 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
39394 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
39395 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
39396 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
39397 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
39398 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
39399 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
39400 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
39401 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
39402 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
39403 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
39404 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
39405 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
39406 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
39407 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
39408 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
39409 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
39410 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
39411 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
39412 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
39413 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
39414 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
39415 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
39416 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
39417 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
39418 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
39419 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
39420 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
39421 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
39422 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
39423 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
39424 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
39425 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
39426 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
39427 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
39428 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
39429 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
39430 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
39431 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
39432 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
39433 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
39434 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
39435 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
39436 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
39437 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
39438 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
39439 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
39440 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
39441 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
39442 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
39443 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
39444 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
39445 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
39446 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
39447 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
39448 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
39449 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
39450 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
39451 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
39452 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
39453 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
39454 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
39455 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
39456 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
39457 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
39458 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
39459 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
39460 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
39461 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
39462 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
39463 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
39464 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
39465 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
39466 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
39467 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
39468 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
39469 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
39470 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
39471 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
39472 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
39473 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
39474 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
39475 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
39478 * Copyright (c)
2013 Pavol Rusnak
39480 * Permission is hereby granted, free of charge, to any person obtaining a copy of
39481 * this software and associated documentation files (the "Software"), to deal in
39482 * the Software without restriction, including without limitation the rights to
39483 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
39484 * of the Software, and to permit persons to whom the Software is furnished to do
39485 * so, subject to the following conditions:
39487 * The above copyright notice and this permission notice shall be included in all
39488 * copies or substantial portions of the Software.
39490 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39491 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39492 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39493 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39494 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
39495 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39499 * Javascript port from python by Ian Coleman
39501 * Requires code from sjcl
39502 * https://github.com/bitwiseshiftleft/sjcl
39505 var Mnemonic = function(language) {
39507 var PBKDF2_ROUNDS =
2048;
39513 var hmacSHA512 = function(key) {
39514 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
39515 this.encrypt = function() {
39516 return hasher.encrypt.apply(hasher, arguments);
39521 wordlist = WORDLISTS[language];
39522 if (wordlist.length != RADIX) {
39523 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
39528 self.generate = function(strength) {
39529 strength = strength ||
128;
39530 var r = strength %
32;
39532 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
39534 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
39535 if (!hasStrongCrypto) {
39536 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
39538 var buffer = new Uint8Array(strength /
8);
39539 var data = crypto.getRandomValues(buffer);
39540 return self.toMnemonic(data);
39543 self.toMnemonic = function(byteArray) {
39544 if (byteArray.length %
4 > 0) {
39545 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
39548 //h = hashlib.sha256(data).hexdigest()
39549 var data = byteArrayToWordArray(byteArray);
39550 var hash = sjcl.hash.sha256.hash(data);
39551 var h = sjcl.codec.hex.fromBits(hash);
39553 // b is a binary string, eg '
00111010101100...'
39554 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
39555 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
39557 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
39558 // c = bin(int(h,
16))[
2:].zfill(
256)
39559 // d = c[:len(data) *
8 /
32]
39560 var a = byteArrayToBinaryString(byteArray);
39561 var c = zfill(hexStringToBinaryString(h),
256);
39562 var d = c.substring(
0, byteArray.length *
8 /
32);
39563 // b = line1 + line2
39567 var blen = b.length /
11;
39568 for (var i=
0; i
<blen; i++) {
39569 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
39570 result.push(wordlist[idx]);
39572 return self.joinWords(result);
39575 self.check = function(mnemonic) {
39576 var mnemonic = self.splitWords(mnemonic);
39577 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
39580 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
39582 for (var i=
0; i
<mnemonic.length; i++) {
39583 var word = mnemonic[i];
39584 var wordIndex = wordlist.indexOf(word);
39585 if (wordIndex == -
1) {
39588 var binaryIndex = zfill(wordIndex.toString(
2),
11);
39589 idx.push(binaryIndex);
39591 var b = idx.join('');
39593 //d = b[:l /
33 *
32]
39595 var d = b.substring(
0, l /
33 *
32);
39596 var h = b.substring(l - l /
33, l);
39597 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
39598 var nd = binaryStringToWordArray(d);
39599 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
39600 var ndHash = sjcl.hash.sha256.hash(nd);
39601 var ndHex = sjcl.codec.hex.fromBits(ndHash);
39602 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
39603 var nh = ndBstr.substring(
0,l/
33);
39607 self.toSeed = function(mnemonic, passphrase) {
39608 passphrase = passphrase || '';
39609 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
39610 var mnemonicNormalized = self.normalizeString(mnemonic);
39611 passphrase = self.normalizeString(passphrase)
39612 passphrase =
"mnemonic" + passphrase;
39613 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
39614 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
39615 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
39616 var hashHex = sjcl.codec.hex.fromBits(result);
39620 self.splitWords = function(mnemonic) {
39621 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
39624 self.joinWords = function(words) {
39625 // Set space correctly depending on the language
39626 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
39628 if (language ==
"japanese") {
39629 space =
"\u3000"; // ideographic space
39631 return words.join(space);
39634 self.normalizeString = function(str) {
39635 if (typeof str.normalize ==
"function") {
39636 return str.normalize(
"NFKD");
39639 // TODO decide how to handle this in the future.
39640 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
39645 function byteArrayToWordArray(data) {
39647 for (var i=
0; i
<data.length/
4; i++) {
39649 v += data[i*
4 +
0] <<
8 *
3;
39650 v += data[i*
4 +
1] <<
8 *
2;
39651 v += data[i*
4 +
2] <<
8 *
1;
39652 v += data[i*
4 +
3] <<
8 *
0;
39658 function byteArrayToBinaryString(data) {
39660 for (var i=
0; i
<data.length; i++) {
39661 bin += zfill(data[i].toString(
2),
8);
39666 function hexStringToBinaryString(hexString) {
39668 for (var i=
0; i
<hexString.length; i++) {
39669 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
39671 return binaryString;
39674 function binaryStringToWordArray(binary) {
39675 var aLen = binary.length /
32;
39677 for (var i=
0; i
<aLen; i++) {
39678 var valueStr = binary.substring(
0,
32);
39679 var value = parseInt(valueStr,
2);
39681 binary = binary.slice(
32);
39686 // Pad a numeric string on the left with zero digits until the given width
39688 // Note this differs to the python implementation because it does not
39689 // handle numbers starting with a sign.
39690 function zfill(source, length) {
39691 source = source.toString();
39692 while (source.length < length) {
39693 source = '
0' + source;
39703 JavaScript BigInteger library version
0.9.1
39704 http://silentmatt.com/biginteger/
39706 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
39707 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
39708 Licensed under the MIT license.
39710 Support for arbitrary internal representation base was added by
39715 File: biginteger.js
39721 (function(exports) {
39725 An arbitrarily-large integer.
39727 <BigInteger> objects should be considered immutable. None of the "built-in"
39728 methods modify *this* or their arguments. All properties should be
39729 considered private.
39731 All the methods of
<BigInteger> instances can be called "statically". The
39732 static versions are convenient if you don't already have a
<BigInteger>
39735 As an example, these calls are equivalent.
39737 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
39738 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
39741 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
39744 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
39747 Constructor: BigInteger()
39748 Convert a value to a
<BigInteger>.
39750 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
39751 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
39752 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
39753 without a radix argument.
39755 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
39756 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
39757 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
39758 > var n3 = BigInteger(n2); // Return n2, unchanged
39760 The constructor form only takes an array and a sign. *n* must be an
39761 array of numbers in little-endian order, where each digit is between
0
39762 and BigInteger.base. The second parameter sets the sign: -
1 for
39763 negative, +
1 for positive, or
0 for zero. The array is *not copied and
39764 may be modified*. If the array contains only zeros, the sign parameter
39765 is ignored and is forced to zero.
39767 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
39771 n - Value to convert to a
<BigInteger>.
39775 A
<BigInteger> value.
39779 <parse>,
<BigInteger>
39781 function BigInteger(n, s, token) {
39782 if (token !== CONSTRUCT) {
39783 if (n instanceof BigInteger) {
39786 else if (typeof n === "undefined") {
39789 return BigInteger.parse(n);
39792 n = n || []; // Provide the nullary constructor for subclasses.
39793 while (n.length && !n[n.length -
1]) {
39797 this._s = n.length ? (s ||
1) :
0;
39800 BigInteger._construct = function(n, s) {
39801 return new BigInteger(n, s, CONSTRUCT);
39804 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
39805 // require base to be a power of
10.
10^
7 is the largest such power
39806 // that won't cause a precision loss when digits are multiplied.
39807 var BigInteger_base =
10000000;
39808 var BigInteger_base_log10 =
7;
39810 BigInteger.base = BigInteger_base;
39811 BigInteger.base_log10 = BigInteger_base_log10;
39813 var ZERO = new BigInteger([],
0, CONSTRUCT);
39816 BigInteger.ZERO = ZERO;
39818 var ONE = new BigInteger([
1],
1, CONSTRUCT);
39821 BigInteger.ONE = ONE;
39823 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
39825 //
<BigInteger> -
1.
39826 BigInteger.M_ONE = M_ONE;
39829 // Shortcut for
<ZERO>.
39830 BigInteger._0 = ZERO;
39833 // Shortcut for
<ONE>.
39834 BigInteger._1 = ONE;
39838 Array of
<BigIntegers> from
0 to
36.
39840 These are used internally for parsing, but useful when you need a "small"
39845 <ZERO>,
<ONE>,
<_0>,
<_1>
39847 BigInteger.small = [
39850 /* Assuming BigInteger_base
> 36 */
39851 new BigInteger( [
2],
1, CONSTRUCT),
39852 new BigInteger( [
3],
1, CONSTRUCT),
39853 new BigInteger( [
4],
1, CONSTRUCT),
39854 new BigInteger( [
5],
1, CONSTRUCT),
39855 new BigInteger( [
6],
1, CONSTRUCT),
39856 new BigInteger( [
7],
1, CONSTRUCT),
39857 new BigInteger( [
8],
1, CONSTRUCT),
39858 new BigInteger( [
9],
1, CONSTRUCT),
39859 new BigInteger([
10],
1, CONSTRUCT),
39860 new BigInteger([
11],
1, CONSTRUCT),
39861 new BigInteger([
12],
1, CONSTRUCT),
39862 new BigInteger([
13],
1, CONSTRUCT),
39863 new BigInteger([
14],
1, CONSTRUCT),
39864 new BigInteger([
15],
1, CONSTRUCT),
39865 new BigInteger([
16],
1, CONSTRUCT),
39866 new BigInteger([
17],
1, CONSTRUCT),
39867 new BigInteger([
18],
1, CONSTRUCT),
39868 new BigInteger([
19],
1, CONSTRUCT),
39869 new BigInteger([
20],
1, CONSTRUCT),
39870 new BigInteger([
21],
1, CONSTRUCT),
39871 new BigInteger([
22],
1, CONSTRUCT),
39872 new BigInteger([
23],
1, CONSTRUCT),
39873 new BigInteger([
24],
1, CONSTRUCT),
39874 new BigInteger([
25],
1, CONSTRUCT),
39875 new BigInteger([
26],
1, CONSTRUCT),
39876 new BigInteger([
27],
1, CONSTRUCT),
39877 new BigInteger([
28],
1, CONSTRUCT),
39878 new BigInteger([
29],
1, CONSTRUCT),
39879 new BigInteger([
30],
1, CONSTRUCT),
39880 new BigInteger([
31],
1, CONSTRUCT),
39881 new BigInteger([
32],
1, CONSTRUCT),
39882 new BigInteger([
33],
1, CONSTRUCT),
39883 new BigInteger([
34],
1, CONSTRUCT),
39884 new BigInteger([
35],
1, CONSTRUCT),
39885 new BigInteger([
36],
1, CONSTRUCT)
39888 // Used for parsing/radix conversion
39889 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
39893 Convert a
<BigInteger> to a string.
39895 When *base* is greater than
10, letters are upper case.
39899 base - Optional base to represent the number in (default is base
10).
39900 Must be between
2 and
36 inclusive, or an Error will be thrown.
39904 The string representation of the
<BigInteger>.
39906 BigInteger.prototype.toString = function(base) {
39907 base = +base ||
10;
39908 if (base <
2 || base
> 36) {
39909 throw new Error(
"illegal radix " + base +
".");
39911 if (this._s ===
0) {
39915 var str = this._s <
0 ?
"-" :
"";
39916 str += this._d[this._d.length -
1].toString();
39917 for (var i = this._d.length -
2; i
>=
0; i--) {
39918 var group = this._d[i].toString();
39919 while (group.length < BigInteger_base_log10) group = '
0' + group;
39925 var numerals = BigInteger.digits;
39926 base = BigInteger.small[base];
39927 var sign = this._s;
39929 var n = this.abs();
39933 while (n._s !==
0) {
39934 var divmod = n.divRem(base);
39937 // TODO: This could be changed to unshift instead of reversing at the end.
39938 // Benchmark both to compare speeds.
39939 digits.push(numerals[digit.valueOf()]);
39941 return (sign <
0 ? "-" : "") + digits.reverse().join("");
39945 // Verify strings for parsing
39946 BigInteger.radixRegex = [
39988 Parse a string into a
<BigInteger>.
39990 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
39991 *base* is not provided, it will be guessed based on the leading characters
39994 - "
0x" or "
0X": *base* =
16
39995 - "
0c" or "
0C": *base* =
8
39996 - "
0b" or "
0B": *base* =
2
39997 - else: *base* =
10
39999 If no base is provided, or *base* is
10, the number can be in exponential
40000 form. For example, these are all valid:
40002 > BigInteger.parse("
1e9"); // Same as "
1000000000"
40003 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
40004 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
40006 If any characters fall outside the range defined by the radix, an exception
40011 s - The string to parse.
40012 base - Optional radix (default is to guess based on *s*).
40016 a
<BigInteger> instance.
40018 BigInteger.parse = function(s, base) {
40019 // Expands a number in exponential form to decimal form.
40020 // expandExponential("-
13.441*
10^
5") === "
1344100";
40021 // expandExponential("
1.12300e-1") === "
0.112300";
40022 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
40023 function expandExponential(str) {
40024 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
40026 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
40029 var i = n.length + c;
40030 x = (l ? n : f).length;
40031 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
40032 var z = (new Array(c +
1)).join("
0");
40034 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
40039 if (typeof base === "undefined" || +base ===
10) {
40040 s = expandExponential(s);
40044 if (typeof base === "undefined") {
40045 prefixRE = '
0[xcb]';
40047 else if (base ==
16) {
40050 else if (base ==
8) {
40053 else if (base ==
2) {
40059 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
40061 var sign = parts[
1] || "+";
40062 var baseSection = parts[
2] || "";
40063 var digits = parts[
3] || "";
40065 if (typeof base === "undefined") {
40067 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
40070 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
40073 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
40080 else if (base <
2 || base
> 36) {
40081 throw new Error(
"Illegal radix " + base +
".");
40086 // Check for digits outside the range
40087 if (!(BigInteger.radixRegex[base].test(digits))) {
40088 throw new Error(
"Bad digit for radix " + base);
40091 // Strip leading zeros, and convert to array
40092 digits = digits.replace(/^
0+/,
"").split(
"");
40093 if (digits.length ===
0) {
40097 // Get the sign (we know it's not zero)
40098 sign = (sign ===
"-") ? -
1 :
1;
40103 while (digits.length
>= BigInteger_base_log10) {
40104 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
40106 d.push(parseInt(digits.join(''),
10));
40107 return new BigInteger(d, sign, CONSTRUCT);
40110 // Do the conversion
40112 base = BigInteger.small[base];
40113 var small = BigInteger.small;
40114 for (var i =
0; i < digits.length; i++) {
40115 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
40117 return new BigInteger(d._d, sign, CONSTRUCT);
40120 throw new Error("Invalid BigInteger format: " + s);
40126 Add two
<BigIntegers>.
40130 n - The number to add to *this*. Will be converted to a
<BigInteger>.
40134 The numbers added together.
40138 <subtract>,
<multiply>,
<quotient>,
<next>
40140 BigInteger.prototype.add = function(n) {
40141 if (this._s ===
0) {
40142 return BigInteger(n);
40149 if (this._s !== n._s) {
40151 return this.subtract(n);
40158 var sum = new Array(Math.max(al, bl) +
1);
40159 var size = Math.min(al, bl);
40163 for (var i =
0; i < size; i++) {
40164 digit = a[i] + b[i] + carry;
40165 sum[i] = digit % BigInteger_base;
40166 carry = (digit / BigInteger_base) |
0;
40172 for (i = size; carry && i < al; i++) {
40173 digit = a[i] + carry;
40174 sum[i] = digit % BigInteger_base;
40175 carry = (digit / BigInteger_base) |
0;
40181 for ( ; i < al; i++) {
40185 return new BigInteger(sum, this._s, CONSTRUCT);
40190 Get the additive inverse of a
<BigInteger>.
40194 A
<BigInteger> with the same magnatude, but with the opposite sign.
40200 BigInteger.prototype.negate = function() {
40201 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
40206 Get the absolute value of a
<BigInteger>.
40210 A
<BigInteger> with the same magnatude, but always positive (or zero).
40216 BigInteger.prototype.abs = function() {
40217 return (this._s <
0) ? this.negate() : this;
40222 Subtract two
<BigIntegers>.
40226 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
40230 The *n* subtracted from *this*.
40234 <add>,
<multiply>,
<quotient>,
<prev>
40236 BigInteger.prototype.subtract = function(n) {
40237 if (this._s ===
0) {
40238 return BigInteger(n).negate();
40245 if (this._s !== n._s) {
40247 return this.add(n);
40251 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
40253 m = new BigInteger(n._d,
1, CONSTRUCT);
40254 n = new BigInteger(this._d,
1, CONSTRUCT);
40257 // Both are positive =
> a - b
40258 var sign = m.compareAbs(n);
40262 else if (sign <
0) {
40274 var diff = new Array(al); // al
>= bl since a
> b
40279 for (i =
0; i < bl; i++) {
40280 digit = a[i] - borrow - b[i];
40282 digit += BigInteger_base;
40290 for (i = bl; i < al; i++) {
40291 digit = a[i] - borrow;
40293 digit += BigInteger_base;
40301 for ( ; i < al; i++) {
40305 return new BigInteger(diff, sign, CONSTRUCT);
40309 function addOne(n, sign) {
40311 var sum = a.slice();
40316 var digit = (a[i] ||
0) +
1;
40317 sum[i] = digit % BigInteger_base;
40318 if (digit <= BigInteger_base -
1) {
40324 return new BigInteger(sum, sign, CONSTRUCT);
40327 function subtractOne(n, sign) {
40329 var sum = a.slice();
40334 var digit = (a[i] ||
0) -
1;
40336 sum[i] = digit + BigInteger_base;
40345 return new BigInteger(sum, sign, CONSTRUCT);
40350 Get the next
<BigInteger> (add one).
40360 BigInteger.prototype.next = function() {
40365 return subtractOne(this, -
1);
40368 return addOne(this,
1);
40374 Get the previous
<BigInteger> (subtract one).
40384 BigInteger.prototype.prev = function() {
40389 return addOne(this, -
1);
40392 return subtractOne(this,
1);
40398 Function: compareAbs
40399 Compare the absolute value of two
<BigIntegers>.
40401 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
40405 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
40409 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
40415 BigInteger.prototype.compareAbs = function(n) {
40420 if (!(n instanceof BigInteger)) {
40421 if (!isFinite(n)) {
40422 return(isNaN(n) ? n : -
1);
40427 if (this._s ===
0) {
40428 return (n._s !==
0) ? -
1 :
0;
40434 var l = this._d.length;
40435 var nl = n._d.length;
40445 for (var i = l-
1; i
>=
0; i--) {
40446 if (a[i] !== b[i]) {
40447 return a[i] < b[i] ? -
1 :
1;
40456 Compare two
<BigIntegers>.
40460 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
40464 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
40468 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
40470 BigInteger.prototype.compare = function(n) {
40477 if (this._s ===
0) {
40481 if (this._s === n._s) { // both positive or both negative
40482 var cmp = this.compareAbs(n);
40483 return cmp * this._s;
40492 Return true iff *this* is either
1 or -
1.
40496 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
40500 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
40501 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
40503 BigInteger.prototype.isUnit = function() {
40504 return this === ONE ||
40506 (this._d.length ===
1 && this._d[
0] ===
1);
40511 Multiply two
<BigIntegers>.
40515 n - The number to multiply *this* by. Will be converted to a
40520 The numbers multiplied together.
40524 <add>,
<subtract>,
<quotient>,
<square>
40526 BigInteger.prototype.multiply = function(n) {
40527 // TODO: Consider adding Karatsuba multiplication for large numbers
40528 if (this._s ===
0) {
40536 if (this.isUnit()) {
40544 return this.negate();
40549 return this.square();
40552 var r = (this._d.length
>= n._d.length);
40553 var a = (r ? this : n)._d; // a will be longer than b
40554 var b = (r ? n : this)._d;
40559 var partial = new Array(pl);
40561 for (i =
0; i < pl; i++) {
40565 for (i =
0; i < bl; i++) {
40568 var jlimit = al + i;
40570 for (var j = i; j < jlimit; j++) {
40571 digit = partial[j] + bi * a[j - i] + carry;
40572 carry = (digit / BigInteger_base) |
0;
40573 partial[j] = (digit % BigInteger_base) |
0;
40576 digit = partial[j] + carry;
40577 carry = (digit / BigInteger_base) |
0;
40578 partial[j] = digit % BigInteger_base;
40581 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
40584 // Multiply a BigInteger by a single-digit native number
40585 // Assumes that this and n are
>=
0
40586 // This is not really intended to be used outside the library itself
40587 BigInteger.prototype.multiplySingleDigit = function(n) {
40588 if (n ===
0 || this._s ===
0) {
40596 if (this._d.length ===
1) {
40597 digit = this._d[
0] * n;
40598 if (digit
>= BigInteger_base) {
40599 return new BigInteger([(digit % BigInteger_base)|
0,
40600 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
40602 return new BigInteger([digit],
1, CONSTRUCT);
40606 return this.add(this);
40608 if (this.isUnit()) {
40609 return new BigInteger([n],
1, CONSTRUCT);
40616 var partial = new Array(pl);
40617 for (var i =
0; i < pl; i++) {
40622 for (var j =
0; j < al; j++) {
40623 digit = n * a[j] + carry;
40624 carry = (digit / BigInteger_base) |
0;
40625 partial[j] = (digit % BigInteger_base) |
0;
40628 partial[j] = carry;
40631 return new BigInteger(partial,
1, CONSTRUCT);
40636 Multiply a
<BigInteger> by itself.
40638 This is slightly faster than regular multiplication, since it removes the
40639 duplicated multiplcations.
40643 > this.multiply(this)
40648 BigInteger.prototype.square = function() {
40649 // Normally, squaring a
10-digit number would take
100 multiplications.
40650 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
40651 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
40652 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
40654 if (this._s ===
0) {
40657 if (this.isUnit()) {
40661 var digits = this._d;
40662 var length = digits.length;
40663 var imult1 = new Array(length + length +
1);
40664 var product, carry, k;
40667 // Calculate diagonal
40668 for (i =
0; i < length; i++) {
40670 product = digits[i] * digits[i];
40671 carry = (product / BigInteger_base) |
0;
40672 imult1[k] = product % BigInteger_base;
40673 imult1[k +
1] = carry;
40676 // Calculate repeating part
40677 for (i =
0; i < length; i++) {
40680 for (var j = i +
1; j < length; j++, k++) {
40681 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
40682 carry = (product / BigInteger_base) |
0;
40683 imult1[k] = product % BigInteger_base;
40686 var digit = carry + imult1[k];
40687 carry = (digit / BigInteger_base) |
0;
40688 imult1[k] = digit % BigInteger_base;
40689 imult1[k +
1] += carry;
40692 return new BigInteger(imult1,
1, CONSTRUCT);
40697 Divide two
<BigIntegers> and truncate towards zero.
40699 <quotient> throws an exception if *n* is zero.
40703 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40707 The *this* / *n*, truncated to an integer.
40711 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
40713 BigInteger.prototype.quotient = function(n) {
40714 return this.divRem(n)[
0];
40719 Deprecated synonym for
<quotient>.
40721 BigInteger.prototype.divide = BigInteger.prototype.quotient;
40724 Function: remainder
40725 Calculate the remainder of two
<BigIntegers>.
40727 <remainder> throws an exception if *n* is zero.
40731 n - The remainder after *this* is divided *this* by *n*. Will be
40732 converted to a
<BigInteger>.
40740 <divRem>,
<quotient>
40742 BigInteger.prototype.remainder = function(n) {
40743 return this.divRem(n)[
1];
40748 Calculate the integer quotient and remainder of two
<BigIntegers>.
40750 <divRem> throws an exception if *n* is zero.
40754 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40758 A two-element array containing the quotient and the remainder.
40762 is exactly equivalent to
40764 > [a.quotient(b), a.remainder(b)]
40766 except it is faster, because they are calculated at the same time.
40770 <quotient>,
<remainder>
40772 BigInteger.prototype.divRem = function(n) {
40775 throw new Error("Divide by zero");
40777 if (this._s ===
0) {
40778 return [ZERO, ZERO];
40780 if (n._d.length ===
1) {
40781 return this.divRemSmall(n._s * n._d[
0]);
40784 // Test for easy cases -- |n1| <= |n2|
40785 switch (this.compareAbs(n)) {
40786 case
0: // n1 == n2
40787 return [this._s === n._s ? ONE : M_ONE, ZERO];
40788 case -
1: // |n1| < |n2|
40789 return [ZERO, this];
40792 var sign = this._s * n._s;
40794 var b_digits = this._d;
40795 var b_index = b_digits.length;
40796 var digits = n._d.length;
40800 var part = new BigInteger([],
0, CONSTRUCT);
40803 part._d.unshift(b_digits[--b_index]);
40804 part = new BigInteger(part._d,
1, CONSTRUCT);
40806 if (part.compareAbs(n) <
0) {
40810 if (part._s ===
0) {
40814 var xlen = part._d.length, ylen = a._d.length;
40815 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
40816 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
40817 if (part._d.length
> a._d.length) {
40818 // The length of part._d can either match a._d length,
40819 // or exceed it by one.
40820 highx = (highx+
1)*BigInteger_base;
40822 guess = Math.ceil(highx/highy);
40825 var check = a.multiplySingleDigit(guess);
40826 if (check.compareAbs(part) <=
0) {
40836 var diff = part.subtract(check);
40837 part._d = diff._d.slice();
40840 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
40841 new BigInteger(part._d, this._s, CONSTRUCT)];
40844 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
40845 // [
1, BigInteger.base). It's not necessary to call this, since the
40846 // other division functions will call it if they are able to.
40847 BigInteger.prototype.divRemSmall = function(n) {
40851 throw new Error("Divide by zero");
40854 var n_s = n <
0 ? -
1 :
1;
40855 var sign = this._s * n_s;
40858 if (n <
1 || n
>= BigInteger_base) {
40859 throw new Error("Argument out of range");
40862 if (this._s ===
0) {
40863 return [ZERO, ZERO];
40866 if (n ===
1 || n === -
1) {
40867 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
40870 //
2 <= n < BigInteger_base
40872 // divide a single digit by a single digit
40873 if (this._d.length ===
1) {
40874 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
40875 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
40885 var digits = this._d.slice();
40886 var quot = new Array(digits.length);
40892 while (digits.length) {
40893 part = part * BigInteger_base + digits[digits.length -
1];
40897 diff = BigInteger_base * diff + part;
40904 guess = (part / n) |
0;
40907 var check = n * guess;
40908 diff = part - check;
40919 r = new BigInteger([diff],
1, CONSTRUCT);
40923 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
40928 Return true iff *this* is divisible by two.
40930 Note that
<BigInteger.ZERO
> is even.
40934 true if *this* is even, false otherwise.
40940 BigInteger.prototype.isEven = function() {
40941 var digits = this._d;
40942 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
40947 Return true iff *this* is not divisible by two.
40951 true if *this* is odd, false otherwise.
40957 BigInteger.prototype.isOdd = function() {
40958 return !this.isEven();
40963 Get the sign of a
<BigInteger>.
40973 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
40975 BigInteger.prototype.sign = function() {
40980 Function: isPositive
40981 Return true iff *this*
> 0.
40985 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
40989 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40991 BigInteger.prototype.isPositive = function() {
40992 return this._s
> 0;
40996 Function: isNegative
40997 Return true iff *this* <
0.
41001 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
41005 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
41007 BigInteger.prototype.isNegative = function() {
41008 return this._s <
0;
41013 Return true iff *this* ==
0.
41017 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
41021 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
41023 BigInteger.prototype.isZero = function() {
41024 return this._s ===
0;
41029 Multiply a
<BigInteger> by a power of
10.
41031 This is equivalent to, but faster than
41034 > return this.multiply(BigInteger("
1e" + n));
41037 > return this.quotient(BigInteger("
1e" + -n));
41042 n - The power of
10 to multiply *this* by. *n* is converted to a
41043 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
41044 (
0x7FFFFFFF), or an exception will be thrown.
41048 *this* * (
10 ** *n*), truncated to an integer if necessary.
41054 BigInteger.prototype.exp10 = function(n) {
41059 if (Math.abs(n)
> Number(MAX_EXP)) {
41060 throw new Error("exponent too large in BigInteger.exp10");
41062 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
41063 if (this._s ===
0) {
41067 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
41069 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
41075 k = k.multiplySingleDigit(Math.pow(
10, n));
41076 return (this._s <
0 ? k.negate() : k);
41077 } else if (-n
>= this._d.length*BigInteger_base_log10) {
41080 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
41082 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
41085 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
41091 Raise a
<BigInteger> to a power.
41093 In this implementation,
0**
0 is
1.
41097 n - The exponent to raise *this* by. *n* must be no greater than
41098 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
41102 *this* raised to the *nth* power.
41108 BigInteger.prototype.pow = function(n) {
41109 if (this.isUnit()) {
41114 return BigInteger(n).isOdd() ? this : this.negate();
41122 else if (n._s <
0) {
41123 if (this._s ===
0) {
41124 throw new Error(
"Divide by zero");
41130 if (this._s ===
0) {
41137 if (n.compareAbs(MAX_EXP)
> 0) {
41138 throw new Error(
"exponent too large in BigInteger.pow");
41142 var two = BigInteger.small[
2];
41144 while (n.isPositive()) {
41146 aux = aux.multiply(x);
41152 n = n.quotient(two);
41160 Raise a
<BigInteger> to a power (mod m).
41162 Because it is reduced by a modulus,
<modPow> is not limited by
41163 <BigInteger.MAX_EXP
> like
<pow>.
41167 exponent - The exponent to raise *this* by. Must be positive.
41168 modulus - The modulus.
41172 *this* ^ *exponent* (mod *modulus*).
41178 BigInteger.prototype.modPow = function(exponent, modulus) {
41182 while (exponent.isPositive()) {
41183 if (exponent.isOdd()) {
41184 result = result.multiply(base).remainder(modulus);
41187 exponent = exponent.quotient(BigInteger.small[
2]);
41188 if (exponent.isPositive()) {
41189 base = base.square().remainder(modulus);
41198 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
41200 This is equivalent to
41202 > Math.log(this.toJSValue())
41204 but handles values outside of the native number range.
41214 BigInteger.prototype.log = function() {
41216 case
0: return -Infinity;
41217 case -
1: return NaN;
41218 default: // Fall through.
41221 var l = this._d.length;
41223 if (l*BigInteger_base_log10 <
30) {
41224 return Math.log(this.valueOf());
41227 var N = Math.ceil(
30/BigInteger_base_log10);
41228 var firstNdigits = this._d.slice(l - N);
41229 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
41234 Convert a
<BigInteger> to a native JavaScript integer.
41236 This is called automatically by JavaScipt to convert a
<BigInteger> to a
41241 > parseInt(this.toString(),
10)
41245 <toString>,
<toJSValue>
41247 BigInteger.prototype.valueOf = function() {
41248 return parseInt(this.toString(),
10);
41252 Function: toJSValue
41253 Convert a
<BigInteger> to a native JavaScript integer.
41255 This is the same as valueOf, but more explicitly named.
41259 > parseInt(this.toString(),
10)
41263 <toString>,
<valueOf>
41265 BigInteger.prototype.toJSValue = function() {
41266 return parseInt(this.toString(),
10);
41269 var MAX_EXP = BigInteger(
0x7FFFFFFF);
41270 // Constant: MAX_EXP
41271 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
41272 BigInteger.MAX_EXP = MAX_EXP;
41275 function makeUnary(fn) {
41276 return function(a) {
41277 return fn.call(BigInteger(a));
41281 function makeBinary(fn) {
41282 return function(a, b) {
41283 return fn.call(BigInteger(a), BigInteger(b));
41287 function makeTrinary(fn) {
41288 return function(a, b, c) {
41289 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
41295 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
41296 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
41297 var trinary = ["modPow"];
41299 for (i =
0; i < unary.length; i++) {
41301 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
41304 for (i =
0; i < binary.length; i++) {
41306 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
41309 for (i =
0; i < trinary.length; i++) {
41311 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
41314 BigInteger.exp10 = function(x, n) {
41315 return BigInteger(x).exp10(n);
41320 exports.BigInteger = BigInteger;
41321 })(typeof exports !== 'undefined' ? exports : this);
41323 <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){
41324 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;
41326 },{}],
2:[function(require,module,exports){
41327 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;
41329 },{"./scoring":
6}],
3:[function(require,module,exports){
41330 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(","),
41331 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(","),
41332 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(","),
41333 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(","),
41334 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;
41336 },{}],
4:[function(require,module,exports){
41337 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;
41339 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
41340 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;
41342 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
41343 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;
41345 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
41346 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;
41350 //# sourceMappingURL=zxcvbn.js.map
41353 * Detects entropy from a string.
41360 * hexadecimal [
0-
9A-F]
41361 * card [A2-
9TJQK][CDHS]
41363 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
41364 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
41368 window.Entropy = new (function() {
41370 var TWO = new BigInteger(
2);
41372 // matchers returns an array of the matched events for each type of entropy.
41374 // matchers.binary("
010") returns ["
0", "
1", "
0"]
41375 // matchers.binary("a10") returns ["
1", "
0"]
41376 // matchers.hex("a10") returns ["a", "
1", "
0"]
41378 binary: function(str) {
41379 return str.match(/[
0-
1]/gi) || [];
41381 base6: function(str) {
41382 return str.match(/[
0-
5]/gi) || [];
41384 dice: function(str) {
41385 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
41387 base10: function(str) {
41388 return str.match(/[
0-
9]/gi) || [];
41390 hex: function(str) {
41391 return str.match(/[
0-
9A-F]/gi) || [];
41393 card: function(str) {
41394 // Format is NumberSuit, eg
41395 // AH ace of hearts
41396 //
8C eight of clubs
41397 // TD ten of diamonds
41398 // JS jack of spades
41399 // QH queen of hearts
41400 // KC king of clubs
41401 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
41405 // Convert array of cards from ["ac", "
4d", "ks"]
41406 // to numbers between
0 and
51 [
0,
16,
51]
41407 function convertCardsToInts(cards) {
41409 var values = "a23456789tjqk";
41410 var suits = "cdhs";
41411 for (var i=
0; i
<cards.length; i++) {
41412 var card = cards[i].toLowerCase();
41413 var value = card[
0];
41414 var suit = card[
1];
41415 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
41421 this.fromString = function(rawEntropyStr) {
41422 // Find type of entropy being used (binary, hex, dice etc)
41423 var base = getBase(rawEntropyStr);
41424 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
41425 // This is done by changing all
6s to
0s
41426 if (base.str ==
"dice") {
41429 for (var i=
0; i
<base.parts.length; i++) {
41430 var c = base.parts[i];
41431 if (
"12345".indexOf(c)
> -
1) {
41432 newParts[i] = base.parts[i];
41433 newInts[i] = base.ints[i];
41440 base.str = "base
6 (dice)";
41441 base.ints = newInts;
41442 base.parts = newParts;
41443 base.matcher = matchers.base6;
41445 // Detect empty entropy
41446 if (base.parts.length ==
0) {
41454 // Convert base.ints to BigInteger.
41455 // Due to using unusual bases, eg cards of base52, this is not as simple as
41456 // using BigInteger.parse()
41457 var entropyInt = BigInteger.ZERO;
41458 for (var i=base.ints.length-
1; i
>=
0; i--) {
41459 var thisInt = BigInteger.parse(base.ints[i]);
41460 var power = (base.ints.length -
1) - i;
41461 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
41462 entropyInt = entropyInt.add(additionalEntropy);
41464 // Convert entropy to binary
41465 var entropyBin = entropyInt.toString(
2);
41466 // If the first integer is small, it must be padded with zeros.
41467 // Otherwise the chance of the first bit being
1 is
100%, which is
41468 // obviously incorrect.
41469 // This is not perfect for non-
2^n bases.
41470 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
41471 while (entropyBin.length < expectedBits) {
41472 entropyBin = "
0" + entropyBin;
41474 // Calculate the number of bits per event
41475 var bitsPerEvent = Math.log2(base.asInt);
41476 // Cards binary must be handled differently, since they're not replaced
41477 if (base.asInt ==
52) {
41478 var cardEntropy = processCardEntropy(base.parts);
41479 entropyBin = cardEntropy.binaryStr;
41480 bitsPerEvent = cardEntropy.bitsPerEvent;
41482 // Supply a 'filtered' entropy string for display purposes
41483 var entropyClean = base.parts.join("");
41484 var entropyHtml = base.parts.join("");
41485 if (base.asInt ==
52) {
41486 entropyClean = base.parts.join(" ").toUpperCase();
41487 entropyClean = entropyClean.replace(/C/g, "\u2663");
41488 entropyClean = entropyClean.replace(/D/g, "\u2666");
41489 entropyClean = entropyClean.replace(/H/g, "\u2665");
41490 entropyClean = entropyClean.replace(/S/g, "\u2660");
41491 entropyHtml = base.parts.join(" ").toUpperCase();
41492 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
41493 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
41494 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
41495 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
41497 // Return the result
41499 binaryStr: entropyBin,
41500 cleanStr: entropyClean,
41501 cleanHtml: entropyHtml,
41502 bitsPerEvent: bitsPerEvent,
41508 function getSortedDeck() {
41510 var suits = "CDHS
";
41511 var values = "A23456789TJQK
";
41512 for (var i=0; i<suits.length; i++) {
41513 for (var j=0; j<values.length; j++) {
41514 s.push(values[j]+suits[i]);
41520 function getBase(str) {
41521 // Need to get the lowest base for the supplied entropy.
41522 // This prevents interpreting, say, dice rolls as hexadecimal.
41523 var binaryMatches = matchers.binary(str);
41524 var hexMatches = matchers.hex(str);
41525 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
41526 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
41527 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
41530 parts: binaryMatches,
41531 matcher: matchers.binary,
41536 var cardMatches = matchers.card(str);
41537 if (cardMatches.length >= hexMatches.length / 2) {
41538 var ints = convertCardsToInts(cardMatches);
41541 parts: cardMatches,
41542 matcher: matchers.card,
41547 var diceMatches = matchers.dice(str);
41548 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
41549 var ints = diceMatches.map(function(i) { return parseInt(i) });
41552 parts: diceMatches,
41553 matcher: matchers.dice,
41558 var base6Matches = matchers.base6(str);
41559 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
41560 var ints = base6Matches.map(function(i) { return parseInt(i) });
41563 parts: base6Matches,
41564 matcher: matchers.base6,
41569 var base10Matches = matchers.base10(str);
41570 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
41571 var ints = base10Matches.map(function(i) { return parseInt(i) });
41574 parts: base10Matches,
41575 matcher: matchers.base10,
41580 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
41584 matcher: matchers.hex,
41586 str:
"hexadecimal",
41590 // Assume cards are NOT replaced.
41591 // Additional entropy decreases as more cards are used. This means
41592 // total possible entropy is measured using n!, not base^n.
41593 // eg the second last card can be only one of two, not one of fifty two
41594 // so the added entropy for that card is only one bit at most
41595 function processCardEntropy(cards) {
41596 // Track how many instances of each card have been used, and thus
41597 // how many decks are in use.
41598 var cardCounts = {};
41599 var numberOfDecks =
0;
41600 // Work out number of decks by max(duplicates)
41601 for (var i=
0; i
<cards.length; i++) {
41602 // Get the card that was drawn
41603 var cardLower = cards[i];
41604 var card = cardLower.toUpperCase();
41605 // Initialize the count for this card if needed
41606 if (!(card in cardCounts)) {
41607 cardCounts[card] =
0;
41609 cardCounts[card] +=
1;
41610 // See if this is max(duplicates)
41611 if (cardCounts[card]
> numberOfDecks) {
41612 numberOfDecks = cardCounts[card];
41615 // Work out the total number of bits for this many decks
41616 // See http://crypto.stackexchange.com/q/
41886
41617 var gainedBits =
0;
41618 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
41619 // which becomes infinity for numberOfDecks
> 4
41620 for (var i=
1; i<=
52*numberOfDecks; i++) {
41621 gainedBits = gainedBits + Math.log2(i);
41623 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
41624 var maxBits = gainedBits - lostBits;
41625 // Convert the drawn cards to a binary representation.
41626 // The exact technique for doing this is unclear.
41628 // http://crypto.stackexchange.com/a/
41896
41629 //
"I even doubt that this is well defined (only the average entropy
41630 // is, I believe)."
41632 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
41633 //
"The binary representation can be the first log(permutations,2) bits
41634 // of the sha-2 hash of the normalized deck string."
41636 // In this specific implementation, the first N bits of the hash of the
41637 // normalized cards string is being used. Uppercase, no spaces; eg
41638 // sha256(
"AH8DQSTC2H")
41639 var totalCards = numberOfDecks *
52;
41640 var percentUsed = cards.length / totalCards;
41641 // Calculate the average number of bits of entropy for the number of
41643 var numberOfBits = Math.floor(maxBits * percentUsed);
41644 // Create a normalized string of the selected cards
41645 var normalizedCards = cards.join(
"").toUpperCase();
41646 // Convert to binary using the SHA256 hash of the normalized cards.
41647 // If the number of bits is more than
256, multiple hashes
41648 // are used until the required number of bits is reached.
41649 var entropyBin =
"";
41650 var iterations =
0;
41651 while (entropyBin.length < numberOfBits) {
41652 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
41653 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
41654 for (var i=
0; i
<hashHex.length; i++) {
41655 var decimal = parseInt(hashHex[i],
16);
41656 var binary = decimal.toString(
2);
41657 while (binary.length <
4) {
41658 binary =
"0" + binary;
41660 entropyBin = entropyBin + binary;
41662 iterations = iterations +
1;
41664 // Truncate to the appropriate number of bits.
41665 entropyBin = entropyBin.substring(
0, numberOfBits);
41666 // Get the number of bits per event
41667 bitsPerEvent = maxBits / totalCards;
41669 binaryStr: entropyBin,
41670 bitsPerEvent: bitsPerEvent,
41674 // Polyfill for Math.log2
41675 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
41676 Math.log2 = Math.log2 || function(x) {
41677 // The polyfill isn't good enough because of the poor accuracy of
41679 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
41680 // So instead use the BigInteger library to get it right.
41681 return BigInteger.log(x) / BigInteger.log(
2);
41684 // Depends on BigInteger
41685 function factorial(n) {
41689 f = BigInteger.ONE;
41690 for (var i=
1; i<=n; i++) {
41691 f = f.multiply(new BigInteger(i));
41698 <script>(function() {
41700 // mnemonics is populated as required by getLanguage
41701 var mnemonics = { "english": new Mnemonic("english") };
41702 var mnemonic = mnemonics["english"];
41704 var bip32RootKey = null;
41705 var bip32ExtendedKey = null;
41706 var network = bitcoin.networks.bitcoin;
41707 var addressRowTemplate = $("#address-row-template");
41709 var showIndex = true;
41710 var showAddress = true;
41711 var showPubKey = true;
41712 var showPrivKey = true;
41713 var showQr = false;
41715 var entropyChangeTimeoutEvent = null;
41716 var phraseChangeTimeoutEvent = null;
41717 var rootKeyChangedTimeoutEvent = null;
41719 var generationProcesses = [];
41722 DOM.network = $(".network");
41723 DOM.bip32Client = $("#bip32-client");
41724 DOM.phraseNetwork = $("#network-phrase");
41725 DOM.useEntropy = $(".use-entropy");
41726 DOM.entropyContainer = $(".entropy-container");
41727 DOM.entropy = $(".entropy");
41728 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
41729 DOM.entropyType = DOM.entropyContainer.find(".type");
41730 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
41731 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
41732 DOM.entropyBits = DOM.entropyContainer.find(".bits");
41733 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
41734 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
41735 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
41736 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
41737 DOM.phrase = $(".phrase");
41738 DOM.passphrase = $(".passphrase");
41739 DOM.generateContainer = $(".generate-container");
41740 DOM.generate = $(".generate");
41741 DOM.seed = $(".seed");
41742 DOM.rootKey = $(".root-key");
41743 DOM.extendedPrivKey = $(".extended-priv-key");
41744 DOM.extendedPubKey = $(".extended-pub-key");
41745 DOM.bip32tab = $("#bip32-tab");
41746 DOM.bip44tab = $("#bip44-tab");
41747 DOM.bip32panel = $("#bip32");
41748 DOM.bip44panel = $("#bip44");
41749 DOM.bip32path = $("#bip32-path");
41750 DOM.bip44path = $("#bip44-path");
41751 DOM.bip44purpose = $("#bip44 .purpose");
41752 DOM.bip44coin = $("#bip44 .coin");
41753 DOM.bip44account = $("#bip44 .account");
41754 DOM.bip44accountXprv = $("#bip44 .account-xprv");
41755 DOM.bip44accountXpub = $("#bip44 .account-xpub");
41756 DOM.bip44change = $("#bip44 .change");
41757 DOM.generatedStrength = $(".generate-container .strength");
41758 DOM.hardenedAddresses = $(".hardened-addresses");
41759 DOM.addresses = $(".addresses");
41760 DOM.rowsToAdd = $(".rows-to-add");
41761 DOM.more = $(".more");
41762 DOM.feedback = $(".feedback");
41763 DOM.tab = $(".derivation-type a");
41764 DOM.indexToggle = $(".index-toggle");
41765 DOM.addressToggle = $(".address-toggle");
41766 DOM.publicKeyToggle = $(".public-key-toggle");
41767 DOM.privateKeyToggle = $(".private-key-toggle");
41768 DOM.languages = $(".languages a");
41769 DOM.qrContainer = $(".qr-container");
41770 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
41771 DOM.qrImage = DOM.qrContainer.find(".qr-image");
41772 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
41773 DOM.showQrEls = $("[data-show-qr]");
41777 DOM.network.on("change", networkChanged);
41778 DOM.bip32Client.on("change", bip32ClientChanged);
41779 DOM.useEntropy.on("change", setEntropyVisibility);
41780 DOM.entropy.on("input", delayedEntropyChanged);
41781 DOM.entropyMnemonicLength.on("change", entropyChanged);
41782 DOM.phrase.on("input", delayedPhraseChanged);
41783 DOM.passphrase.on("input", delayedPhraseChanged);
41784 DOM.generate.on("click", generateClicked);
41785 DOM.more.on("click", showMore);
41786 DOM.rootKey.on("input", delayedRootKeyChanged);
41787 DOM.bip32path.on("input", calcForDerivationPath);
41788 DOM.bip44purpose.on("input", calcForDerivationPath);
41789 DOM.bip44coin.on("input", calcForDerivationPath);
41790 DOM.bip44account.on("input", calcForDerivationPath);
41791 DOM.bip44change.on("input", calcForDerivationPath);
41792 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
41793 DOM.hardenedAddresses.on("change", calcForDerivationPath);
41794 DOM.indexToggle.on("click", toggleIndexes);
41795 DOM.addressToggle.on("click", toggleAddresses);
41796 DOM.publicKeyToggle.on("click", togglePublicKeys);
41797 DOM.privateKeyToggle.on("click", togglePrivateKeys);
41798 DOM.languages.on("click", languageChanged);
41799 setQrEvents(DOM.showQrEls);
41802 hideValidationError();
41803 populateNetworkSelect();
41804 populateClientSelect();
41809 function networkChanged(e) {
41810 var networkIndex = e.target.value;
41811 networks[networkIndex].onSelect();
41812 if (seed != null) {
41820 function bip32ClientChanged(e) {
41821 var clientIndex = DOM.bip32Client.val();
41822 if (clientIndex == "custom") {
41823 DOM.bip32path.prop("readonly", false);
41826 DOM.bip32path.prop("readonly", true);
41827 clients[clientIndex].onSelect();
41828 if (seed != null) {
41837 function setEntropyVisibility() {
41838 if (isUsingOwnEntropy()) {
41839 DOM.entropyContainer.removeClass("hidden");
41840 DOM.generateContainer.addClass("hidden");
41841 DOM.phrase.prop("readonly", true);
41842 DOM.entropy.focus();
41846 DOM.entropyContainer.addClass("hidden");
41847 DOM.generateContainer.removeClass("hidden");
41848 DOM.phrase.prop("readonly", false);
41853 function delayedPhraseChanged() {
41854 hideValidationError();
41856 if (phraseChangeTimeoutEvent != null) {
41857 clearTimeout(phraseChangeTimeoutEvent);
41859 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
41862 function phraseChanged() {
41864 hideValidationError();
41865 setMnemonicLanguage();
41866 // Get the mnemonic phrase
41867 var phrase = DOM.phrase.val();
41868 var errorText = findPhraseErrors(phrase);
41870 showValidationError(errorText);
41873 // Calculate and display
41874 var passphrase = DOM.passphrase.val();
41875 calcBip32RootKeyFromSeed(phrase, passphrase);
41876 calcForDerivationPath();
41880 function delayedEntropyChanged() {
41881 hideValidationError();
41883 if (entropyChangeTimeoutEvent != null) {
41884 clearTimeout(entropyChangeTimeoutEvent);
41886 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
41889 function entropyChanged() {
41890 // If blank entropy, clear mnemonic, addresses, errors
41891 if (DOM.entropy.val().trim().length ==
0) {
41893 clearEntropyFeedback();
41894 DOM.phrase.val("");
41895 showValidationError("Blank entropy");
41898 // Get the current phrase to detect changes
41899 var phrase = DOM.phrase.val();
41900 // Set the phrase from the entropy
41901 setMnemonicFromEntropy();
41902 // Recalc addresses if the phrase has changed
41903 var newPhrase = DOM.phrase.val();
41904 if (newPhrase != phrase) {
41905 if (newPhrase.length ==
0) {
41917 function delayedRootKeyChanged() {
41918 // Warn if there is an existing mnemonic or passphrase.
41919 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
41920 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
41921 DOM.rootKey.val(bip32RootKey);
41925 hideValidationError();
41927 // Clear existing mnemonic and passphrase
41928 DOM.phrase.val(
"");
41929 DOM.passphrase.val(
"");
41931 if (rootKeyChangedTimeoutEvent != null) {
41932 clearTimeout(rootKeyChangedTimeoutEvent);
41934 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
41937 function rootKeyChanged() {
41939 hideValidationError();
41940 // Validate the root key TODO
41941 var rootKeyBase58 = DOM.rootKey.val();
41942 var errorText = validateRootKey(rootKeyBase58);
41944 showValidationError(errorText);
41947 // Calculate and display
41948 calcBip32RootKeyFromBase58(rootKeyBase58);
41949 calcForDerivationPath();
41952 function calcForDerivationPath() {
41954 clearAddressesList();
41955 hideValidationError();
41956 // Get the derivation path
41957 var derivationPath = getDerivationPath();
41958 var errorText = findDerivationPathErrors(derivationPath);
41960 showValidationError(errorText);
41963 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
41964 if (bip44TabSelected()) {
41965 displayBip44Info();
41967 displayBip32Info();
41971 function generateClicked() {
41972 if (isUsingOwnEntropy()) {
41977 setTimeout(function() {
41978 setMnemonicLanguage();
41979 var phrase = generateRandomPhrase();
41987 function languageChanged() {
41988 setTimeout(function() {
41989 setMnemonicLanguage();
41990 if (DOM.phrase.val().length
> 0) {
41991 var newPhrase = convertPhraseToNewLanguage();
41992 DOM.phrase.val(newPhrase);
41996 DOM.generate.trigger(
"click");
42001 function toggleIndexes() {
42002 showIndex = !showIndex;
42003 $(
"td.index span").toggleClass(
"invisible");
42006 function toggleAddresses() {
42007 showAddress = !showAddress;
42008 $(
"td.address span").toggleClass(
"invisible");
42011 function togglePublicKeys() {
42012 showPubKey = !showPubKey;
42013 $(
"td.pubkey span").toggleClass(
"invisible");
42016 function togglePrivateKeys() {
42017 showPrivKey = !showPrivKey;
42018 $(
"td.privkey span").toggleClass(
"invisible");
42023 function generateRandomPhrase() {
42024 if (!hasStrongRandom()) {
42025 var errorText =
"This browser does not support strong randomness";
42026 showValidationError(errorText);
42029 var numWords = parseInt(DOM.generatedStrength.val());
42030 var strength = numWords /
3 *
32;
42031 var words = mnemonic.generate(strength);
42032 DOM.phrase.val(words);
42036 function calcBip32RootKeyFromSeed(phrase, passphrase) {
42037 seed = mnemonic.toSeed(phrase, passphrase);
42038 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
42041 function calcBip32RootKeyFromBase58(rootKeyBase58) {
42042 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
42045 function calcBip32ExtendedKey(path) {
42046 // Check there's a root key to derive from
42047 if (!bip32RootKey) {
42048 return bip32RootKey;
42050 var extendedKey = bip32RootKey;
42051 // Derive the key from the path
42052 var pathBits = path.split(
"/");
42053 for (var i=
0; i
<pathBits.length; i++) {
42054 var bit = pathBits[i];
42055 var index = parseInt(bit);
42056 if (isNaN(index)) {
42059 var hardened = bit[bit.length-
1] ==
"'";
42060 var isPriv =
"privKey" in extendedKey;
42061 var invalidDerivationPath = hardened && !isPriv;
42062 if (invalidDerivationPath) {
42063 extendedKey = null;
42065 else if (hardened) {
42066 extendedKey = extendedKey.deriveHardened(index);
42069 extendedKey = extendedKey.derive(index);
42075 function showValidationError(errorText) {
42081 function hideValidationError() {
42087 function findPhraseErrors(phrase) {
42088 // Preprocess the words
42089 phrase = mnemonic.normalizeString(phrase);
42090 var words = phraseToWordArray(phrase);
42091 // Detect blank phrase
42092 if (words.length ==
0) {
42093 return
"Blank mnemonic";
42096 for (var i=
0; i
<words.length; i++) {
42097 var word = words[i];
42098 var language = getLanguage();
42099 if (WORDLISTS[language].indexOf(word) == -
1) {
42100 console.log(
"Finding closest match to " + word);
42101 var nearestWord = findNearestWord(word);
42102 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
42105 // Check the words are valid
42106 var properPhrase = wordArrayToPhrase(words);
42107 var isValid = mnemonic.check(properPhrase);
42109 return
"Invalid mnemonic";
42114 function validateRootKey(rootKeyBase58) {
42116 bitcoin.HDNode.fromBase58(rootKeyBase58);
42119 return
"Invalid root key";
42124 function getDerivationPath() {
42125 if (bip44TabSelected()) {
42126 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
42127 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
42128 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
42129 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
42131 path += purpose +
"'/";
42132 path += coin +
"'/";
42133 path += account +
"'/";
42135 DOM.bip44path.val(path);
42136 var derivationPath = DOM.bip44path.val();
42137 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
42138 return derivationPath;
42140 else if (bip32TabSelected()) {
42141 var derivationPath = DOM.bip32path.val();
42142 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
42143 return derivationPath;
42146 console.log(
"Unknown derivation path");
42150 function findDerivationPathErrors(path) {
42151 // TODO is not perfect but is better than nothing
42153 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
42155 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
42156 var maxDepth =
255; // TODO verify this!!
42157 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
42158 if (path[
0] !=
"m") {
42159 return
"First character must be 'm'";
42161 if (path.length
> 1) {
42162 if (path[
1] !=
"/") {
42163 return
"Separator must be '/'";
42165 var indexes = path.split(
"/");
42166 if (indexes.length
> maxDepth) {
42167 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
42169 for (var depth =
1; depth
<indexes.length; depth++) {
42170 var index = indexes[depth];
42171 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
42172 if (invalidChars.length
> 0) {
42173 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
42175 var indexValue = parseInt(index.replace(
"'",
""));
42176 if (isNaN(depth)) {
42177 return
"Invalid number at depth " + depth;
42179 if (indexValue
> maxIndexValue) {
42180 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
42184 // Check root key exists or else derivation path is useless!
42185 if (!bip32RootKey) {
42186 return "No root key";
42188 // Check no hardened derivation path when using xpub keys
42189 var hardened = path.indexOf("'")
> -
1;
42190 var isXpubkey = !("privKey" in bip32RootKey);
42191 if (hardened && isXpubkey) {
42192 return "Hardened derivation path is invalid with xpub key";
42197 function displayBip44Info() {
42198 // Get the derivation path for the account
42199 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
42200 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
42201 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
42203 path += purpose + "'/";
42204 path += coin + "'/";
42205 path += account + "'/";
42206 // Calculate the account extended keys
42207 var accountExtendedKey = calcBip32ExtendedKey(path);
42208 var accountXprv = accountExtendedKey.toBase58();
42209 var accountXpub = accountExtendedKey.toBase58(false);
42210 // Display the extended keys
42211 DOM.bip44accountXprv.val(accountXprv);
42212 DOM.bip44accountXpub.val(accountXpub);
42215 function displayBip32Info() {
42217 DOM.seed.val(seed);
42218 var rootKey = bip32RootKey.toBase58();
42219 DOM.rootKey.val(rootKey);
42220 var xprvkeyB58 = "NA";
42221 if (bip32ExtendedKey.privKey) {
42222 xprvkeyB58 = bip32ExtendedKey.toBase58();
42224 var extendedPrivKey = xprvkeyB58;
42225 DOM.extendedPrivKey.val(extendedPrivKey);
42226 var extendedPubKey = bip32ExtendedKey.toBase58(false);
42227 DOM.extendedPubKey.val(extendedPubKey);
42228 // Display the addresses and privkeys
42229 clearAddressesList();
42230 displayAddresses(
0,
20);
42233 function displayAddresses(start, total) {
42234 generationProcesses.push(new (function() {
42238 this.stop = function() {
42239 for (var i=
0; i
<rows.length; i++) {
42240 rows[i].shouldGenerate = false;
42244 for (var i=
0; i
<total; i++) {
42245 var index = i + start;
42246 rows.push(new TableRow(index));
42252 function TableRow(index) {
42255 this.shouldGenerate = true;
42256 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
42262 function calculateValues() {
42263 setTimeout(function() {
42264 if (!self.shouldGenerate) {
42268 if (useHardenedAddresses) {
42269 key = bip32ExtendedKey.deriveHardened(index);
42272 key = bip32ExtendedKey.derive(index);
42274 var address = key.getAddress().toString();
42275 var privkey =
"NA";
42277 privkey = key.privKey.toWIF(network);
42279 var pubkey = key.pubKey.toHex();
42280 var indexText = getDerivationPath() +
"/" + index;
42281 if (useHardenedAddresses) {
42282 indexText = indexText +
"'";
42284 // Ethereum values are different
42285 if (networks[DOM.network.val()].name ==
"Ethereum") {
42286 var privKeyBuffer = key.privKey.d.toBuffer();
42287 privkey = privKeyBuffer.toString('hex');
42288 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
42289 var hexAddress = addressBuffer.toString('hex');
42290 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
42291 address = ethUtil.addHexPrefix(checksumAddress);
42293 addAddressToList(indexText, address, pubkey, privkey);
42301 function showMore() {
42302 var start = DOM.addresses.children().length;
42303 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
42304 if (isNaN(rowsToAdd)) {
42306 DOM.rowsToAdd.val(
"20");
42308 if (rowsToAdd
> 200) {
42309 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
42310 msg +=
"Do you want to continue?";
42311 if (!confirm(msg)) {
42315 displayAddresses(start, rowsToAdd);
42318 function clearDisplay() {
42319 clearAddressesList();
42321 hideValidationError();
42324 function clearAddressesList() {
42325 DOM.addresses.empty();
42329 function stopGenerating() {
42330 while (generationProcesses.length
> 0) {
42331 var generation = generationProcesses.shift();
42336 function clearKey() {
42337 DOM.rootKey.val(
"");
42338 DOM.extendedPrivKey.val(
"");
42339 DOM.extendedPubKey.val(
"");
42342 function addAddressToList(indexText, address, pubkey, privkey) {
42343 var row = $(addressRowTemplate.html());
42345 var indexCell = row.find(
".index span");
42346 var addressCell = row.find(
".address span");
42347 var pubkeyCell = row.find(
".pubkey span");
42348 var privkeyCell = row.find(
".privkey span");
42350 indexCell.text(indexText);
42351 addressCell.text(address);
42352 pubkeyCell.text(pubkey);
42353 privkeyCell.text(privkey);
42356 indexCell.addClass(
"invisible");
42358 if (!showAddress) {
42359 addressCell.addClass(
"invisible");
42362 pubkeyCell.addClass(
"invisible");
42364 if (!showPrivKey) {
42365 privkeyCell.addClass(
"invisible");
42367 DOM.addresses.append(row);
42368 var rowShowQrEls = row.find(
"[data-show-qr]");
42369 setQrEvents(rowShowQrEls);
42372 function hasStrongRandom() {
42373 return 'crypto' in window && window['crypto'] !== null;
42376 function disableForms() {
42377 $(
"form").on(
"submit", function(e) {
42378 e.preventDefault();
42382 function parseIntNoNaN(val, defaultVal) {
42383 var v = parseInt(val);
42390 function showPending() {
42392 .text(
"Calculating...")
42396 function findNearestWord(word) {
42397 var language = getLanguage();
42398 var words = WORDLISTS[language];
42399 var minDistance =
99;
42400 var closestWord = words[
0];
42401 for (var i=
0; i
<words.length; i++) {
42402 var comparedTo = words[i];
42403 if (comparedTo.indexOf(word) ==
0) {
42406 var distance = Levenshtein.get(word, comparedTo);
42407 if (distance < minDistance) {
42408 closestWord = comparedTo;
42409 minDistance = distance;
42412 return closestWord;
42415 function hidePending() {
42421 function populateNetworkSelect() {
42422 for (var i=
0; i
<networks.length; i++) {
42423 var network = networks[i];
42424 var option = $(
"<option>");
42425 option.attr(
"value", i);
42426 option.text(network.name);
42427 DOM.phraseNetwork.append(option);
42431 function populateClientSelect() {
42432 for (var i=
0; i
<clients.length; i++) {
42433 var client = clients[i];
42434 var option = $(
"<option>");
42435 option.attr(
"value", i);
42436 option.text(client.name);
42437 DOM.bip32Client.append(option);
42441 function getLanguage() {
42442 var defaultLanguage =
"english";
42443 // Try to get from existing phrase
42444 var language = getLanguageFromPhrase();
42445 // Try to get from url if not from phrase
42446 if (language.length ==
0) {
42447 language = getLanguageFromUrl();
42449 // Default to English if no other option
42450 if (language.length ==
0) {
42451 language = defaultLanguage;
42456 function getLanguageFromPhrase(phrase) {
42457 // Check if how many words from existing phrase match a language.
42460 phrase = DOM.phrase.val();
42462 if (phrase.length
> 0) {
42463 var words = phraseToWordArray(phrase);
42464 var languageMatches = {};
42465 for (l in WORDLISTS) {
42466 // Track how many words match in this language
42467 languageMatches[l] =
0;
42468 for (var i=
0; i
<words.length; i++) {
42469 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
42470 if (wordInLanguage) {
42471 languageMatches[l]++;
42474 // Find languages with most word matches.
42475 // This is made difficult due to commonalities between Chinese
42476 // simplified vs traditional.
42477 var mostMatches =
0;
42478 var mostMatchedLanguages = [];
42479 for (var l in languageMatches) {
42480 var numMatches = languageMatches[l];
42481 if (numMatches
> mostMatches) {
42482 mostMatches = numMatches;
42483 mostMatchedLanguages = [l];
42485 else if (numMatches == mostMatches) {
42486 mostMatchedLanguages.push(l);
42490 if (mostMatchedLanguages.length
> 0) {
42491 // Use first language and warn if multiple detected
42492 language = mostMatchedLanguages[
0];
42493 if (mostMatchedLanguages.length
> 1) {
42494 console.warn(
"Multiple possible languages");
42495 console.warn(mostMatchedLanguages);
42502 function getLanguageFromUrl() {
42503 for (var language in WORDLISTS) {
42504 if (window.location.hash.indexOf(language)
> -
1) {
42511 function setMnemonicLanguage() {
42512 var language = getLanguage();
42513 // Load the bip39 mnemonic generator for this language if required
42514 if (!(language in mnemonics)) {
42515 mnemonics[language] = new Mnemonic(language);
42517 mnemonic = mnemonics[language];
42520 function convertPhraseToNewLanguage() {
42521 var oldLanguage = getLanguageFromPhrase();
42522 var newLanguage = getLanguageFromUrl();
42523 var oldPhrase = DOM.phrase.val();
42524 var oldWords = phraseToWordArray(oldPhrase);
42526 for (var i=
0; i
<oldWords.length; i++) {
42527 var oldWord = oldWords[i];
42528 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
42529 var newWord = WORDLISTS[newLanguage][index];
42530 newWords.push(newWord);
42532 newPhrase = wordArrayToPhrase(newWords);
42536 // TODO look at jsbip39 - mnemonic.splitWords
42537 function phraseToWordArray(phrase) {
42538 var words = phrase.split(/\s/g);
42540 for (var i=
0; i
<words.length; i++) {
42541 var word = words[i];
42542 if (word.length
> 0) {
42543 noBlanks.push(word);
42549 // TODO look at jsbip39 - mnemonic.joinWords
42550 function wordArrayToPhrase(words) {
42551 var phrase = words.join(
" ");
42552 var language = getLanguageFromPhrase(phrase);
42553 if (language ==
"japanese") {
42554 phrase = words.join(
"\u3000");
42559 function isUsingOwnEntropy() {
42560 return DOM.useEntropy.prop(
"checked");
42563 function setMnemonicFromEntropy() {
42564 clearEntropyFeedback();
42565 // Get entropy value
42566 var entropyStr = DOM.entropy.val();
42567 // Work out minimum base for entropy
42568 var entropy = Entropy.fromString(entropyStr);
42569 if (entropy.binaryStr.length ==
0) {
42572 // Show entropy details
42573 showEntropyFeedback(entropy);
42574 // Use entropy hash if not using raw entropy
42575 var bits = entropy.binaryStr;
42576 var mnemonicLength = DOM.entropyMnemonicLength.val();
42577 if (mnemonicLength !=
"raw") {
42578 // Get bits by hashing entropy with SHA256
42579 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
42580 var hex = sjcl.codec.hex.fromBits(hash);
42581 bits = BigInteger.parse(hex,
16).toString(
2);
42582 while (bits.length %
256 !=
0) {
42585 // Truncate hash to suit number of words
42586 mnemonicLength = parseInt(mnemonicLength);
42587 var numberOfBits =
32 * mnemonicLength /
3;
42588 bits = bits.substring(
0, numberOfBits);
42590 // Discard trailing entropy
42591 var bitsToUse = Math.floor(bits.length /
32) *
32;
42592 var start = bits.length - bitsToUse;
42593 var binaryStr = bits.substring(start);
42594 // Convert entropy string to numeric array
42595 var entropyArr = [];
42596 for (var i=
0; i
<binaryStr.length /
8; i++) {
42597 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
42598 var entropyByte = parseInt(byteAsBits,
2);
42599 entropyArr.push(entropyByte)
42601 // Convert entropy array to mnemonic
42602 var phrase = mnemonic.toMnemonic(entropyArr);
42603 // Set the mnemonic in the UI
42604 DOM.phrase.val(phrase);
42607 function clearEntropyFeedback() {
42608 DOM.entropyStrength.text(
"...");
42609 DOM.entropyType.text(
"");
42610 DOM.entropyWordCount.text(
"0");
42611 DOM.entropyEventCount.text(
"0");
42612 DOM.entropyBitsPerEvent.text(
"0");
42613 DOM.entropyBits.text(
"0");
42614 DOM.entropyFiltered.html(
" ");
42615 DOM.entropyBinary.html(
" ");
42618 function showEntropyFeedback(entropy) {
42619 var numberOfBits = entropy.binaryStr.length;
42620 var strength =
"extremely weak";
42621 if (numberOfBits
>=
64) {
42622 strength = "very weak";
42624 if (numberOfBits
>=
96) {
42627 if (numberOfBits
>=
128) {
42628 strength = "strong";
42630 if (numberOfBits
>=
160) {
42631 strength = "very strong";
42633 if (numberOfBits
>=
192) {
42634 strength = "extremely strong";
42636 // If time to crack is less than one day, and password is considered
42637 // strong or better based on the number of bits, rename strength to
42638 // 'easily cracked'.
42640 var z = zxcvbn(entropy.base.parts.join(""));
42641 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
42642 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
42643 strength = "easily cracked";
42644 if (z.feedback.warning != "") {
42645 strength = strength + " - " + z.feedback.warning;
42650 strength = "unknown";
42651 console.log("Error detecting entropy strength with zxcvbn:");
42654 var entropyTypeStr = getEntropyTypeStr(entropy);
42655 var wordCount = Math.floor(numberOfBits /
32) *
3;
42656 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
42657 DOM.entropyFiltered.html(entropy.cleanHtml);
42658 DOM.entropyType.text(entropyTypeStr);
42659 DOM.entropyStrength.text(strength);
42660 DOM.entropyEventCount.text(entropy.base.ints.length);
42661 DOM.entropyBits.text(numberOfBits);
42662 DOM.entropyWordCount.text(wordCount);
42663 DOM.entropyBinary.text(entropy.binaryStr);
42664 DOM.entropyBitsPerEvent.text(bitsPerEvent);
42667 function getEntropyTypeStr(entropy) {
42668 var typeStr = entropy.base.str;
42669 // Add some detail if these are cards
42670 if (entropy.base.asInt ==
52) {
42671 var cardDetail = []; // array of message strings
42672 // Detect duplicates
42674 var dupeTracker = {};
42675 for (var i=
0; i
<entropy.base.parts.length; i++) {
42676 var card = entropy.base.parts[i];
42677 var cardUpper = card.toUpperCase();
42678 if (cardUpper in dupeTracker) {
42681 dupeTracker[cardUpper] = true;
42683 if (dupes.length
> 0) {
42684 var dupeWord =
"duplicates";
42685 if (dupes.length ==
1) {
42686 dupeWord =
"duplicate";
42688 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
42689 if (dupes.length
> 3) {
42692 cardDetail.push(msg);
42694 // Detect full deck
42695 var uniqueCards = [];
42696 for (var uniqueCard in dupeTracker) {
42697 uniqueCards.push(uniqueCard);
42699 if (uniqueCards.length ==
52) {
42700 cardDetail.unshift(
"full deck");
42702 // Detect missing cards
42703 var values =
"A23456789TJQK";
42704 var suits =
"CDHS";
42705 var missingCards = [];
42706 for (var i=
0; i
<suits.length; i++) {
42707 for (var j=
0; j
<values.length; j++) {
42708 var card = values[j] + suits[i];
42709 if (!(card in dupeTracker)) {
42710 missingCards.push(card);
42714 // Display missing cards if six or less, ie clearly going for full deck
42715 if (missingCards.length
> 0 && missingCards.length <=
6) {
42716 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
42717 if (missingCards.length
> 3) {
42720 cardDetail.push(msg);
42722 // Add card details to typeStr
42723 if (cardDetail.length
> 0) {
42724 typeStr +=
" (" + cardDetail.join(
", ") +
")";
42730 function setQrEvents(els) {
42731 els.on(
"mouseenter", createQr);
42732 els.on(
"mouseleave", destroyQr);
42733 els.on(
"click", toggleQr);
42736 function createQr(e) {
42737 var content = e.target.textContent || e.target.value;
42740 DOM.qrImage.qrcode({width: size, height: size, text: content});
42742 DOM.qrHider.addClass(
"hidden");
42745 DOM.qrHider.removeClass(
"hidden");
42747 DOM.qrContainer.removeClass(
"hidden");
42751 function destroyQr() {
42752 DOM.qrImage.text(
"");
42753 DOM.qrContainer.addClass(
"hidden");
42756 function toggleQr() {
42758 DOM.qrHider.toggleClass(
"hidden");
42759 DOM.qrHint.toggleClass(
"hidden");
42762 function bip44TabSelected() {
42763 return DOM.bip44tab.hasClass(
"active");
42766 function bip32TabSelected() {
42767 return DOM.bip32tab.hasClass(
"active");
42773 onSelect: function() {
42774 network = bitcoin.networks.bitcoin;
42775 DOM.bip44coin.val(
0);
42779 name:
"Bitcoin Testnet",
42780 onSelect: function() {
42781 network = bitcoin.networks.testnet;
42782 DOM.bip44coin.val(
1);
42787 onSelect: function() {
42788 network = bitcoin.networks.clam;
42789 DOM.bip44coin.val(
23);
42794 onSelect: function() {
42795 network = bitcoin.networks.dogecoin;
42796 DOM.bip44coin.val(
3);
42801 onSelect: function() {
42802 network = bitcoin.networks.dash;
42803 DOM.bip44coin.val(
5);
42808 onSelect: function() {
42809 network = bitcoin.networks.bitcoin;
42810 DOM.bip44coin.val(
60);
42815 onSelect: function() {
42816 network = bitcoin.networks.game;
42817 DOM.bip44coin.val(
101);
42822 onSelect: function() {
42823 network = bitcoin.networks.jumbucks;
42824 DOM.bip44coin.val(
26);
42829 onSelect: function() {
42830 network = bitcoin.networks.litecoin;
42831 DOM.bip44coin.val(
2);
42836 onSelect: function() {
42837 network = bitcoin.networks.namecoin;
42838 DOM.bip44coin.val(
7);
42843 onSelect: function() {
42844 network = bitcoin.networks.peercoin;
42845 DOM.bip44coin.val(
6);
42849 name:
"ShadowCash",
42850 onSelect: function() {
42851 network = bitcoin.networks.shadow;
42852 DOM.bip44coin.val(
35);
42856 name:
"ShadowCash Testnet",
42857 onSelect: function() {
42858 network = bitcoin.networks.shadowtn;
42859 DOM.bip44coin.val(
1);
42864 onSelect: function() {
42865 network = bitcoin.networks.slimcoin;
42866 DOM.bip44coin.val(
63);
42870 name:
"Slimcoin Testnet",
42871 onSelect: function() {
42872 network = bitcoin.networks.slimcointn;
42873 DOM.bip44coin.val(
111);
42878 onSelect: function() {
42879 network = bitcoin.networks.viacoin;
42880 DOM.bip44coin.val(
14);
42884 name:
"Viacoin Testnet",
42885 onSelect: function() {
42886 network = bitcoin.networks.viacointestnet;
42887 DOM.bip44coin.val(
1);
42894 name:
"Bitcoin Core",
42895 onSelect: function() {
42896 DOM.bip32path.val(
"m/0'/0'");
42897 DOM.hardenedAddresses.prop('checked', true);
42901 name:
"blockchain.info",
42902 onSelect: function() {
42903 DOM.bip32path.val(
"m/44'/0'/0'");
42904 DOM.hardenedAddresses.prop('checked', false);
42908 name:
"MultiBit HD",
42909 onSelect: function() {
42910 DOM.bip32path.val(
"m/0'/0");
42911 DOM.hardenedAddresses.prop('checked', false);