diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index f28b1da..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: github pages - -permissions: write-all - -on: - push: - branches: - - main - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Setup mdBook - uses: peaceiris/actions-mdbook@v1 - with: - mdbook-version: 'latest' - - - run: cargo install mdbook-open-on-gh - - - run: mdbook build - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./book/html - cname: docs.atomicdata.dev diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 41d4f2a..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/book -.DS_Store diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..f173110 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ +This file makes sure that Github Pages doesn't process mdBook's output. diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index d57ebc6..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "type": "shell", - "label": "docs atomic data (mdbook serve)", - "command": "mdbook serve", - } - ] -} diff --git a/404.html b/404.html new file mode 100644 index 0000000..6bbb480 --- /dev/null +++ b/404.html @@ -0,0 +1,209 @@ + + + + + + Page not found - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Page is not found.

+

Try searching in the top bar, the document you're looking for may have been moved!

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..809e8fd --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +docs.atomicdata.dev diff --git a/FontAwesome/css/font-awesome.css b/FontAwesome/css/font-awesome.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/FontAwesome/css/font-awesome.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.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} diff --git a/FontAwesome/fonts/FontAwesome.ttf b/FontAwesome/fonts/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/FontAwesome/fonts/FontAwesome.ttf differ diff --git a/FontAwesome/fonts/fontawesome-webfont.eot b/FontAwesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.eot differ diff --git a/FontAwesome/fonts/fontawesome-webfont.svg b/FontAwesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/FontAwesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FontAwesome/fonts/fontawesome-webfont.ttf b/FontAwesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.ttf differ diff --git a/FontAwesome/fonts/fontawesome-webfont.woff b/FontAwesome/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.woff differ diff --git a/FontAwesome/fonts/fontawesome-webfont.woff2 b/FontAwesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/FontAwesome/fonts/fontawesome-webfont.woff2 differ diff --git a/LICENSE b/LICENSE deleted file mode 100644 index cf62a6d..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Joep Meindertsma - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -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. diff --git a/README.md b/README.md deleted file mode 100644 index 2117450..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# MOVED TO [ATOMIC-SERVER REPO](https://github.com/atomicdata-dev/atomic-server/tree/develop/docs) diff --git a/acknowledgements.html b/acknowledgements.html new file mode 100644 index 0000000..f12e69e --- /dev/null +++ b/acknowledgements.html @@ -0,0 +1,237 @@ + + + + + + Acknowledgements - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Acknowledgements

+

Authors:

+ +

Special thanks to:

+
    +
  • Thom van Kalkeren (my colleague, friend and programming mentor who came up with many great ideas on how to work with RDF, such as HexTuples and linked-delta)
  • +
  • Tim Berners-Lee (for everything he did for linked data and the web)
  • +
  • Ruben Verborgh (for doing great work with RDF, such as the TPF spec)
  • +
  • Pat McBennett (for lots of valuable feedback on initial Atomic Data docs)
  • +
  • Manu Sporny (for his work on JSON-LD, which was an important inspiration for JSON-AD)
  • +
  • Jonas Smedegaard (for the various interesting talks we had and the feedback he provided)
  • +
  • Arthur Dingemans (for sharing his thoughts, providing feedback and his valuable suggestions)
  • +
  • Anja Koopman (for all her support, even when this project ate away days and nights of our time together)
  • +
  • Alex Mikhalev (for sharing many inspiring project and ideas)
  • +
  • Daniel Lutrha (for inspiring me to be more ambitious and for providing lots of technical ideas)
  • +
  • All the other people who contributed to linked data related standards
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/agents.html b/agents.html new file mode 100644 index 0000000..f2110e5 --- /dev/null +++ b/agents.html @@ -0,0 +1,245 @@ + + + + + + Atomic Data Agents - Users and identities + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Agents

+

Atomic Agents are used for authentication: to set an identity and prove who an actor actually is. +Agents can represent both actual individuals, or machines that interact with data. +Agents are the entities that can get write / read rights. +Agents are used to sign Requests and Commits and to accept Invites.

+

Design goals

+
    +
  • Decentralized: Atomic Agents can be created by anyone, at any domain
  • +
  • Easy: It should be easy to work with, code with, and use
  • +
  • Privacy-friendly: Agents should allow for privacy friendly workflows
  • +
  • Verifiable: Others should be able to verify who did what
  • +
  • Secure: Resistant to attacks by malicious others
  • +
+

The Agent model

+

url: https://atomicdata.dev/classes/Agent

+

An Agent is a Resource with its own URL. +When it is created, the one creating the Agent will generate a cryptographic (Ed25519) keypair. +It is required to include the publicKey in the Agent resource. +The privateKey should be kept secret, and should be safely stored by the creator. +For convenience, a secret can be generated, which is a single long string of characters that encodes both the privateKey and the subject of the Agent. +This secret can be used to instantly, easily log in using a single string.

+

The publicKey is used to verify commit signatures by that Agent, to check if that Agent actually did create and sign that Commit.

+

Creating an Agent

+

Since an Agent is used for verification of commits, the Agent's subject should resolve and be publicly available. +This means that the one creating the Agent has to deal with this. +One way of doing this, is by hosting an Atomic Server. +An easier way of doing this, is by accepting an Invite that exists on someone else's server.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/atomic_data_logo.svg b/assets/atomic_data_logo.svg similarity index 100% rename from src/assets/atomic_data_logo.svg rename to assets/atomic_data_logo.svg diff --git a/src/assets/atomic_data_logo_padded.svg b/assets/atomic_data_logo_padded.svg similarity index 100% rename from src/assets/atomic_data_logo_padded.svg rename to assets/atomic_data_logo_padded.svg diff --git a/src/assets/atomic_data_logo_stroke.svg b/assets/atomic_data_logo_stroke.svg similarity index 100% rename from src/assets/atomic_data_logo_stroke.svg rename to assets/atomic_data_logo_stroke.svg diff --git a/src/assets/venn.svg b/assets/venn.svg similarity index 100% rename from src/assets/venn.svg rename to assets/venn.svg diff --git a/src/assets/venn_old.svg b/assets/venn_old.svg similarity index 100% rename from src/assets/venn_old.svg rename to assets/venn_old.svg diff --git a/atomic-data-overview.html b/atomic-data-overview.html new file mode 100644 index 0000000..42770f3 --- /dev/null +++ b/atomic-data-overview.html @@ -0,0 +1,357 @@ + + + + + + Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

# Atomic Data Docs - Overview

+

Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety.

+

Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety

+

Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines.

+

Atomic Data has been designed with the following goals in mind:

+
    +
  • Give people more control over their data
  • +
  • Make linked data easier to use
  • +
  • Make it easier for developers to build highly interoperable apps
  • +
  • Make standardization easier and cheaper
  • +
+

Atomic Data is Linked Data, as it is a strict subset of RDF. +It is type-safe (you know if something is a string, number, date, URL, etc.) and extensible through Atomic Schema, which means that you can re-use or define your own Classes, Properties and Datatypes.

+

The default serialization format for Atomic Data is JSON-AD, which is simply JSON where each key is a URL of an Atomic Property. +These Properties are responsible for setting the datatype (to ensure type-safety) and setting shortnames (which help to keep names short, for example in JSON serialization) and descriptions (which provide semantic explanations of what a property should be used for).

+

Read more about Atomic Data Core

+

Atomic Data Extended

+

Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization.

+
    +
  • Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions.
  • +
  • Agents are Users that enable authentication. They are Resources with their own Public and Private keys, which they use to identify themselves.
  • +
  • Collections: querying, filtering, sorting and pagination.
  • +
  • Paths: traverse graphs.
  • +
  • Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems.
  • +
  • Invites: create new users and provide them with rights.
  • +
  • WebSockets: real-time updates.
  • +
  • Endpoints: provide machine-readable descriptions of web services.
  • +
  • Files: upload, download and metadata for files.
  • +
+

Atomizing: how to create, convert and host Atomic Data

+

Atomic Data has been designed to be very easy to create and host. +In the Atomizing section, we'll show you how you can create Atomic Data in three ways:

+ +

Tools & libraries

+ +

Get involved

+

Make sure to join our Discord if you'd like to discuss Atomic Data with others.

+

Status

+

Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen.

+

Reading these docs

+

This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. +That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. +If you encounter any issues while reading, please leave an issue on Github. +Use the arrows on the side / bottom to go to the next page.

+

Table of contents

+ +

Specification (core)

+ +

Specification (extended)

+ +

Create Atomic Data

+ +

Use Atomic Data

+ +
+

Acknowledgements | +Newsletter | +Get involved

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/atomic-server.html b/atomic-server.html new file mode 100644 index 0000000..fb23600 --- /dev/null +++ b/atomic-server.html @@ -0,0 +1,317 @@ + + + + + + Using Atomic-Server - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Creating Atomic Data using Atomic-Server

+

Here is everything you need to get started:

+ +

Atomic-Server and its features

+

Atomic-Server is the reference implementation of the Atomic Data Core + Extended specification. +It was developed parallel to this specification, and it served as a testing ground for various ideas (some of which didn't work, and some of which ended up in the spec).

+

Atomic-Server is a graph database server for storing and sharing typed linked data. +It's free, open source (MIT license), and has a ton of features:

+
    +
  • ⚛️ Dynamic schema validation / type checking using Atomic Schema. Combines safety of structured data with the
  • +
  • 🚀 Fast (1ms responses on my laptop)
  • +
  • 🪶 Lightweight (15MB binary, no runtime dependencies)
  • +
  • 💻 Runs everywhere (linux, windows, mac, arm)
  • +
  • 🌐 Embedded server with support for HTTP / HTTPS / HTTP2.0 and Built-in LetsEncrypt handshake.
  • +
  • 🎛️ Browser GUI included powered by atomic-data-browser. Features dynamic forms, tables, authentication, theming and more.
  • +
  • 💾 Event-sourced versioning / history powered by Atomic Commits
  • +
  • 🔄 Synchronization using websockets: communicates state changes with a client. Send a wss request to /ws to open a webscocket.
  • +
  • 🧰 Many serialization options: to JSON, JSON-AD, and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD).
  • +
  • 🔎 Full-text search with fuzzy search and various operators, often <3ms responses.
  • +
  • 📖 Pagination, sorting and filtering using Atomic Collections
  • +
  • 🔐 Authorization (read / write permissions) and Hierarchical structures powered by Atomic Hierarchy
  • +
  • 📲 Invite and sharing system with Atomic Invites
  • +
  • 📂 File management: Upload, download and preview attachments.
  • +
  • 🖥️ Desktop app: Easy desktop installation, with status bar icon, powered by tauri.
  • +
+

Running Atomic-Server locally (optional)

+

In this guide, we'll can simply use atomicdata.dev in our browser without installing anything. +So you can skip this step and go to Creating your first Atomic Data. +But if you want to, you can run Atomic-Server on your machine in a couple of ways:

+
    +
  • Using a desktop installer: download a desktop release from the releases page and install it using your desktop GUI.
  • +
  • Using a binary: download a binary release from the releases page and open it using a terminal.
  • +
  • Using Docker is probably the quickest: docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server.
  • +
  • Using Cargo: cargo install atomic-server and then run atomic-server to start.
  • +
+

Atomic-Server's README contains more (and up-to-date) information about how to use it!

+

Open your server in your browser. +By default, that's http://localhost:9883. +Fun fact: &#9883; is HTML entity code for the Atom icon: ⚛.

+

The first screen should show you your Drive. +You can think of this as your root folder. +It is the resource hosted at the root URL, effectively being the home page of your server.

+

There's an instruction on the screen about the /setup page. +Click this, and you'll get a screen showing an Invite. +Normally, you could Accept as new user, but since you're running on localhost, you won't be able to use the newly created Agent on non-local Atomic-Servers. +Therefore, it may be best to create an Agent on some other running server, such as the demo Invite on AtomicData.dev. +And after that, copy the Secret from the User settings panel from AtomicData.dev, go back to your localhost version, and press sign in. +Paste the Secret, and voila! You're signed in.

+

Now, again go to /setup. This time, you can Accept as {user}. +After clicking, your Agent has gotten write rights for the Drive! +You can verify this by hovering over the description field, clicking the edit icon, and making a few changes. +You can also press the menu button (three dots, top left) and press Data view to see your agent after the write field. +Note that you can now edit every field. +You can also fetch your data now as various formats.

+

Try checking out the other features in the menu bar, and check out the collections.

+

Again, check out the README for more information and guides!

+

Now, let's create some data.

+

Creating an Agent

+

Before you can create new things on AtomicData.dev, you'll need an Agent. +This is your virtual User, which can create, sign and own things.

+

Simply open the demo invite and press accept. +And you're done!

+

Creating your first Atomic Data

+

Now let's create a Class. +A Class represents an abstract concept, such as a BlogPost (which we'll do here). +We can do this in a couple of ways:

+
    +
  • Press the + icon button on the left menu (only visible when logged in), and selecting Class
  • +
  • Opening Class and pressing new class
  • +
  • Going to the Classes Collection and pressing the plus icon
  • +
+

The result is the same: we end up with a form in which we can fill in some details.

+

Let's add a shortname (singular), and then a description.

+

After that, we'll add the required properties. +This form you're looking at is constructed by using the required and recommended Properties defined in Class. +We can use these same fields to generate our BlogPost resource! +Which fields would be required in a BlogPost? +A name, and a description, probably.

+

So click on the + icon under requires and search for these Properties to add them.

+

Now, we can skip the recommended properties, and get right to saving our newly created BlogPost class. +So, press save, and now look at what you created.

+

Notice a couple of things:

+
    +
  • Your Class has its own URL.
  • +
  • It has a parent, shown in the top of the screen. This has impact on the visibility and rights of your Resource. We'll get to that later in the documentation.
  • +
+

Now, go to the navigation bar, which is by default at the bottom of the window. Use its context menu to open the Data View. +This view gives you some more insight into your newly created data, and various ways in which you can serialize it.

+

There's more!

+

This was just a very brief introduction to Atomic Server, and its features. +There's quite a bit that we didn't dive in to, such as versioning, file uploads, the collaborative document editor and more... +But by clicking around you're likely to discover these features for yourself.

+

In the next page, we'll dive into how you can create an publish JSON-AD files.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/atomizing.html b/atomizing.html new file mode 100644 index 0000000..d2da9fb --- /dev/null +++ b/atomizing.html @@ -0,0 +1,238 @@ + + + + + + Atomizing - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomizing: How to create and publish Atomic Data

+

Now that we're familiar with the basics of Atomic Data Core and its Schema, it's time to create some Atomic Data! +We call the process of turning data into Atomic Data Atomizing. +During this process, we upgrade the data quality. +Our information becomes more valuable. +Let's summarize what the advantages are:

+
    +
  • Your data becomes available on the web (publicly, if you want it to)
  • +
  • It can now link to other data, an become part of a bigger web of data
  • +
  • It becomes strictly typed, so developers can easily and safely re-use it in their software
  • +
  • It becomes easier to understand, because people can look at the Properties and see what they mean
  • +
  • It can be easily converted into many formats (JSON, Turtle, CSV, XML, more...)
  • +
+

Three ways to Atomize data

+

In general, there are three ways to create Atomic Data:

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/authentication.html b/authentication.html new file mode 100644 index 0000000..3086e56 --- /dev/null +++ b/authentication.html @@ -0,0 +1,340 @@ + + + + + + Authentication - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Authentication in Atomic Data

+

Authentication means knowing who is doing something, either getting access or creating some new data. +When an Agent wants to edit a resource, they have to send a signed Commit, and the signatures are checked in order to authorize a Commit.

+

But how do we deal with reading data, how do we know who is trying to get access? +There are two ways users can authenticate themselves:

+
    +
  • Signing an Authentication Resource and using that as a cookie
  • +
  • Opening a WebSocket, and passing an Authentication Resource.
  • +
  • Signing every single HTTP request (more secure, less flexible)
  • +
+

Design goals

+
    +
  • Secure: Because, what's the point of authentication if it's not?
  • +
  • Easy to use: Setting up an identity should not require any effort, and proving identity should be minimal effort.
  • +
  • Anonimity allowed: Users should be able to have multiple identities, some of which are fully anonymous.
  • +
  • Self-sovereign: No dependency on servers that user's don't control. Or at least, minimise this.
  • +
  • Dummy-proof: We need a mechanism for dealing with forgetting passwords / client devices losing data.
  • +
  • Compatible with Commits: Atomic Commits require clients to sign things. Ideally, this functionality / strategy would also fit with the new model.
  • +
  • Fast: Of course, authentication will always slow things down. But let's keep that to a minimum.
  • +
+

Authentication Resources

+

An Authentication Resource is a JSON-AD object containing all the information a Server needs to make sure a valid Agent requests a session at some point in time. +These are used both in Cookie-based auth, as well as in WebSockets

+

We use the following fields (be sure to use the full URLs in the resource, see the example below):

+
    +
  • requestedSubject: The URL of the requested resource. +
      +
    • If we're authenticating a WebSocket, we use the wss address as the requestedSubject. (e.g. wss://example.com/ws)
    • +
    • If we're authenticating a Cookie of Bearer token, we use the origin of the server (e.g. https://example.com)
    • +
    • If we're authentication a single HTTP request, use the same URL as the GET address (e.g. https://example.com/myResource)
    • +
    +
  • +
  • agent: The URL of the Agent requesting the subject and signing this Authentication Resource.
  • +
  • publicKey: base64 serialized ED25519 public key of the agent.
  • +
  • signature: base64 serialized ED25519 signature of the following string: {requestedSubject} {timestamp} (without the brackets), signed by the private key of the Agent.
  • +
  • timestamp: Unix timestamp of when the Authentication was signed
  • +
  • validUntil (optional): Unix timestamp of when the Authentication should be no longer valid. If not provided, the server will default to 30 seconds from the timestamp.
  • +
+

Here's what a JSON-AD Authentication Resource looks like for a WebSocket:

+
{
+  "https://atomicdata.dev/properties/auth/agent": "http://example.com/agents/N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=",
+  "https://atomicdata.dev/properties/auth/requestedSubject": "wss://example.com/ws",
+  "https://atomicdata.dev/properties/auth/publicKey": "N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=",
+  "https://atomicdata.dev/properties/auth/timestamp": 1661757470002,
+  "https://atomicdata.dev/properties/auth/signature": "19Ce38zFu0E37kXWn8xGEAaeRyeP6EK0S2bt03s36gRrWxLiBbuyxX3LU9qg68pvZTzY3/P3Pgxr6VrOEvYAAQ=="
+}
+
+

Atomic Cookies Authentication

+

In this approach, the client creates and signs a Resource that proves that an Agent wants to access a certain server for some amount of time. +This Authentication Resource is stored as a cookie, and passed along in every HTTP request to the server.

+ +
    +
  1. Create a signed Authentication object, as described above.
  2. +
  3. Serialize it as JSON-AD, then as a base64 string.
  4. +
  5. Store it in a Cookie: +
      +
    1. Name the cookie atomic_session
    2. +
    3. The expiration date of the cookie should be set, and should match the expiration date of the Authentication Resource.
    4. +
    5. Set the Secure attribute to prevent Man-in-the-middle attacks over HTTP
    6. +
    +
  6. +
+

Bearer Token Authentication

+

Similar to creating the Cookie, except that we pass the base64 serialized Authentication Resource as a Bearer token in the Authorization header.

+
GET /myResource HTTP/1.1
+Authorization: Bearer {base64 serialized Authentication Resource}
+
+

In Data Browser, you can find the token tab in /app/token to create a token.

+

Authenticating Websockets

+

After opening a WebSocket connection, create an Authentication Resource. +Send a message like so: AUTHENTICATE {authenticationResource}. +The server will only respond if there is something wrong.

+

Per-Request Signing

+

Atomic Data allows signing every HTTP request. +This method is most secure, since a MITM attack would only give access to the specific resource requested, and only for a short amount of time. +Note that signing every single request takes a bit of time. +We picked a fast algorithm (Ed25519) to minimize this cost.

+

HTTP Headers

+

All of the following headers are required, if you need authentication.

+
    +
  • x-atomic-public-key: The base64 public key (Ed25519) of the Agent sending the request
  • +
  • x-atomic-signature: A base64 signature of the following string: {subject} {timestamp}
  • +
  • x-atomic-timestamp: The current time (when sending the request) as milliseconds since unix epoch
  • +
  • x-atomic-agent: The subject URL of the Agent sending the request.
  • +
+

Sending a request

+

Here's an example (js) client side implementation with comments:

+
// The Private Key of the agent is used for signing
+// https://atomicdata.dev/properties/privateKey
+const privateKey = "someBase64Key";
+const timestamp = Math.round(new Date().getTime());;
+// This is what you will need to sign.
+// The timestmap is to limit the harm of a man-in-the-middle attack.
+// The `subject` is the full HTTP url that is to be fetched.
+const message = `${subject} ${timestamp}`;
+// Sign using Ed25519, see example implementation here: https://github.com/atomicdata-dev/atomic-data-browser/blob/30b2f8af59d25084de966301cb6bd1ed90c0eb78/lib/src/commit.ts#L176
+const signed = await signToBase64(message, privateKey);
+// Set all of these headers
+const headers = new Headers;
+headers.set('x-atomic-public-key', await agent.getPublicKey());
+headers.set('x-atomic-signature', signed);
+headers.set('x-atomic-timestamp', timestamp.toString());
+headers.set('x-atomic-agent', agent?.subject);
+const response = await fetch(subject, {headers});
+
+

Verifying an Authentication

+
    +
  • If none of the x-atomic HTTP headers are present, the server assigns the PublicAgent to the request. This Agent represents any guest who is not signed in.
  • +
  • If some (but not all) of the x-atomic headers are present, the server will return with a 500.
  • +
  • The server must check if the validUntil has not yet passed.
  • +
  • The server must check whether the public key matches the one from the Agent.
  • +
  • The server must check if the signature is valid.
  • +
  • The server should check if the request resource can be accessed by the Agent using hierarchy (e.g. check read right in the resource or its parents).
  • +
+

Hierarchies for authorization

+

Atomic Data uses Hierarchies to describe who gets to access some resource, and who can edit it.

+

Limitations / considerations

+
    +
  • Since we need the Private Key to sign Commits and requests, the client should have this available. This means the client software as well as the user should deal with key management, and that can be a security risk in some contexts (such as a web browser). See issue #49.
  • +
  • When using the Agent's subject to authenticate somewehere, the authorizer must be able to check what the public key of the agent is. This means the agent must be publicly resolvable. This is one of the reasons we should work towards a server-independent identifier, probably as base64 string that contains the public key (and, optionally, also the https identifier). See issue #59 on DIDs.
  • +
  • We'll probably also introduce some form of token-based-authentication created server side in the future. See #87
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ayu-highlight.css b/ayu-highlight.css new file mode 100644 index 0000000..32c9432 --- /dev/null +++ b/ayu-highlight.css @@ -0,0 +1,78 @@ +/* +Based off of the Ayu theme +Original by Dempfi (https://github.com/dempfi/ayu) +*/ + +.hljs { + display: block; + overflow-x: auto; + background: #191f26; + color: #e6e1cf; +} + +.hljs-comment, +.hljs-quote { + color: #5c6773; + font-style: italic; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-attr, +.hljs-regexp, +.hljs-link, +.hljs-selector-id, +.hljs-selector-class { + color: #ff7733; +} + +.hljs-number, +.hljs-meta, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #ffee99; +} + +.hljs-string, +.hljs-bullet { + color: #b8cc52; +} + +.hljs-title, +.hljs-built_in, +.hljs-section { + color: #ffb454; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-symbol { + color: #ff7733; +} + +.hljs-name { + color: #36a3d9; +} + +.hljs-tag { + color: #00568d; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-addition { + color: #91b362; +} + +.hljs-deletion { + color: #d96c75; +} diff --git a/book.js b/book.js new file mode 100644 index 0000000..aa12e7e --- /dev/null +++ b/book.js @@ -0,0 +1,697 @@ +"use strict"; + +// Fix back button cache problem +window.onunload = function () { }; + +// Global variable, shared between modules +function playground_text(playground, hidden = true) { + let code_block = playground.querySelector("code"); + + if (window.ace && code_block.classList.contains("editable")) { + let editor = window.ace.edit(code_block); + return editor.getValue(); + } else if (hidden) { + return code_block.textContent; + } else { + return code_block.innerText; + } +} + +(function codeSnippets() { + function fetch_with_timeout(url, options, timeout = 6000) { + return Promise.race([ + fetch(url, options), + new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout)) + ]); + } + + var playgrounds = Array.from(document.querySelectorAll(".playground")); + if (playgrounds.length > 0) { + fetch_with_timeout("https://play.rust-lang.org/meta/crates", { + headers: { + 'Content-Type': "application/json", + }, + method: 'POST', + mode: 'cors', + }) + .then(response => response.json()) + .then(response => { + // get list of crates available in the rust playground + let playground_crates = response.crates.map(item => item["id"]); + playgrounds.forEach(block => handle_crate_list_update(block, playground_crates)); + }); + } + + function handle_crate_list_update(playground_block, playground_crates) { + // update the play buttons after receiving the response + update_play_button(playground_block, playground_crates); + + // and install on change listener to dynamically update ACE editors + if (window.ace) { + let code_block = playground_block.querySelector("code"); + if (code_block.classList.contains("editable")) { + let editor = window.ace.edit(code_block); + editor.addEventListener("change", function (e) { + update_play_button(playground_block, playground_crates); + }); + // add Ctrl-Enter command to execute rust code + editor.commands.addCommand({ + name: "run", + bindKey: { + win: "Ctrl-Enter", + mac: "Ctrl-Enter" + }, + exec: _editor => run_rust_code(playground_block) + }); + } + } + } + + // updates the visibility of play button based on `no_run` class and + // used crates vs ones available on https://play.rust-lang.org + function update_play_button(pre_block, playground_crates) { + var play_button = pre_block.querySelector(".play-button"); + + // skip if code is `no_run` + if (pre_block.querySelector('code').classList.contains("no_run")) { + play_button.classList.add("hidden"); + return; + } + + // get list of `extern crate`'s from snippet + var txt = playground_text(pre_block); + var re = /extern\s+crate\s+([a-zA-Z_0-9]+)\s*;/g; + var snippet_crates = []; + var item; + while (item = re.exec(txt)) { + snippet_crates.push(item[1]); + } + + // check if all used crates are available on play.rust-lang.org + var all_available = snippet_crates.every(function (elem) { + return playground_crates.indexOf(elem) > -1; + }); + + if (all_available) { + play_button.classList.remove("hidden"); + } else { + play_button.classList.add("hidden"); + } + } + + function run_rust_code(code_block) { + var result_block = code_block.querySelector(".result"); + if (!result_block) { + result_block = document.createElement('code'); + result_block.className = 'result hljs language-bash'; + + code_block.append(result_block); + } + + let text = playground_text(code_block); + let classes = code_block.querySelector('code').classList; + let edition = "2015"; + if(classes.contains("edition2018")) { + edition = "2018"; + } else if(classes.contains("edition2021")) { + edition = "2021"; + } + var params = { + version: "stable", + optimize: "0", + code: text, + edition: edition + }; + + if (text.indexOf("#![feature") !== -1) { + params.version = "nightly"; + } + + result_block.innerText = "Running..."; + + fetch_with_timeout("https://play.rust-lang.org/evaluate.json", { + headers: { + 'Content-Type': "application/json", + }, + method: 'POST', + mode: 'cors', + body: JSON.stringify(params) + }) + .then(response => response.json()) + .then(response => { + if (response.result.trim() === '') { + result_block.innerText = "No output"; + result_block.classList.add("result-no-output"); + } else { + result_block.innerText = response.result; + result_block.classList.remove("result-no-output"); + } + }) + .catch(error => result_block.innerText = "Playground Communication: " + error.message); + } + + // Syntax highlighting Configuration + hljs.configure({ + tabReplace: ' ', // 4 spaces + languages: [], // Languages used for auto-detection + }); + + let code_nodes = Array + .from(document.querySelectorAll('code')) + // Don't highlight `inline code` blocks in headers. + .filter(function (node) {return !node.parentElement.classList.contains("header"); }); + + if (window.ace) { + // language-rust class needs to be removed for editable + // blocks or highlightjs will capture events + code_nodes + .filter(function (node) {return node.classList.contains("editable"); }) + .forEach(function (block) { block.classList.remove('language-rust'); }); + + code_nodes + .filter(function (node) {return !node.classList.contains("editable"); }) + .forEach(function (block) { hljs.highlightBlock(block); }); + } else { + code_nodes.forEach(function (block) { hljs.highlightBlock(block); }); + } + + // Adding the hljs class gives code blocks the color css + // even if highlighting doesn't apply + code_nodes.forEach(function (block) { block.classList.add('hljs'); }); + + Array.from(document.querySelectorAll("code.hljs")).forEach(function (block) { + + var lines = Array.from(block.querySelectorAll('.boring')); + // If no lines were hidden, return + if (!lines.length) { return; } + block.classList.add("hide-boring"); + + var buttons = document.createElement('div'); + buttons.className = 'buttons'; + buttons.innerHTML = ""; + + // add expand button + var pre_block = block.parentNode; + pre_block.insertBefore(buttons, pre_block.firstChild); + + pre_block.querySelector('.buttons').addEventListener('click', function (e) { + if (e.target.classList.contains('fa-eye')) { + e.target.classList.remove('fa-eye'); + e.target.classList.add('fa-eye-slash'); + e.target.title = 'Hide lines'; + e.target.setAttribute('aria-label', e.target.title); + + block.classList.remove('hide-boring'); + } else if (e.target.classList.contains('fa-eye-slash')) { + e.target.classList.remove('fa-eye-slash'); + e.target.classList.add('fa-eye'); + e.target.title = 'Show hidden lines'; + e.target.setAttribute('aria-label', e.target.title); + + block.classList.add('hide-boring'); + } + }); + }); + + if (window.playground_copyable) { + Array.from(document.querySelectorAll('pre code')).forEach(function (block) { + var pre_block = block.parentNode; + if (!pre_block.classList.contains('playground')) { + var buttons = pre_block.querySelector(".buttons"); + if (!buttons) { + buttons = document.createElement('div'); + buttons.className = 'buttons'; + pre_block.insertBefore(buttons, pre_block.firstChild); + } + + var clipButton = document.createElement('button'); + clipButton.className = 'fa fa-copy clip-button'; + clipButton.title = 'Copy to clipboard'; + clipButton.setAttribute('aria-label', clipButton.title); + clipButton.innerHTML = ''; + + buttons.insertBefore(clipButton, buttons.firstChild); + } + }); + } + + // Process playground code blocks + Array.from(document.querySelectorAll(".playground")).forEach(function (pre_block) { + // Add play button + var buttons = pre_block.querySelector(".buttons"); + if (!buttons) { + buttons = document.createElement('div'); + buttons.className = 'buttons'; + pre_block.insertBefore(buttons, pre_block.firstChild); + } + + var runCodeButton = document.createElement('button'); + runCodeButton.className = 'fa fa-play play-button'; + runCodeButton.hidden = true; + runCodeButton.title = 'Run this code'; + runCodeButton.setAttribute('aria-label', runCodeButton.title); + + buttons.insertBefore(runCodeButton, buttons.firstChild); + runCodeButton.addEventListener('click', function (e) { + run_rust_code(pre_block); + }); + + if (window.playground_copyable) { + var copyCodeClipboardButton = document.createElement('button'); + copyCodeClipboardButton.className = 'fa fa-copy clip-button'; + copyCodeClipboardButton.innerHTML = ''; + copyCodeClipboardButton.title = 'Copy to clipboard'; + copyCodeClipboardButton.setAttribute('aria-label', copyCodeClipboardButton.title); + + buttons.insertBefore(copyCodeClipboardButton, buttons.firstChild); + } + + let code_block = pre_block.querySelector("code"); + if (window.ace && code_block.classList.contains("editable")) { + var undoChangesButton = document.createElement('button'); + undoChangesButton.className = 'fa fa-history reset-button'; + undoChangesButton.title = 'Undo changes'; + undoChangesButton.setAttribute('aria-label', undoChangesButton.title); + + buttons.insertBefore(undoChangesButton, buttons.firstChild); + + undoChangesButton.addEventListener('click', function () { + let editor = window.ace.edit(code_block); + editor.setValue(editor.originalCode); + editor.clearSelection(); + }); + } + }); +})(); + +(function themes() { + var html = document.querySelector('html'); + var themeToggleButton = document.getElementById('theme-toggle'); + var themePopup = document.getElementById('theme-list'); + var themeColorMetaTag = document.querySelector('meta[name="theme-color"]'); + var stylesheets = { + ayuHighlight: document.querySelector("[href$='ayu-highlight.css']"), + tomorrowNight: document.querySelector("[href$='tomorrow-night.css']"), + highlight: document.querySelector("[href$='highlight.css']"), + }; + + function showThemes() { + themePopup.style.display = 'block'; + themeToggleButton.setAttribute('aria-expanded', true); + themePopup.querySelector("button#" + get_theme()).focus(); + } + + function updateThemeSelected() { + themePopup.querySelectorAll('.theme-selected').forEach(function (el) { + el.classList.remove('theme-selected'); + }); + themePopup.querySelector("button#" + get_theme()).classList.add('theme-selected'); + } + + function hideThemes() { + themePopup.style.display = 'none'; + themeToggleButton.setAttribute('aria-expanded', false); + themeToggleButton.focus(); + } + + function get_theme() { + var theme; + try { theme = localStorage.getItem('mdbook-theme'); } catch (e) { } + if (theme === null || theme === undefined) { + return default_theme; + } else { + return theme; + } + } + + function set_theme(theme, store = true) { + let ace_theme; + + if (theme == 'coal' || theme == 'navy') { + stylesheets.ayuHighlight.disabled = true; + stylesheets.tomorrowNight.disabled = false; + stylesheets.highlight.disabled = true; + + ace_theme = "ace/theme/tomorrow_night"; + } else if (theme == 'ayu') { + stylesheets.ayuHighlight.disabled = false; + stylesheets.tomorrowNight.disabled = true; + stylesheets.highlight.disabled = true; + ace_theme = "ace/theme/tomorrow_night"; + } else { + stylesheets.ayuHighlight.disabled = true; + stylesheets.tomorrowNight.disabled = true; + stylesheets.highlight.disabled = false; + ace_theme = "ace/theme/dawn"; + } + + setTimeout(function () { + themeColorMetaTag.content = getComputedStyle(document.documentElement).backgroundColor; + }, 1); + + if (window.ace && window.editors) { + window.editors.forEach(function (editor) { + editor.setTheme(ace_theme); + }); + } + + var previousTheme = get_theme(); + + if (store) { + try { localStorage.setItem('mdbook-theme', theme); } catch (e) { } + } + + html.classList.remove(previousTheme); + html.classList.add(theme); + updateThemeSelected(); + } + + // Set theme + var theme = get_theme(); + + set_theme(theme, false); + + themeToggleButton.addEventListener('click', function () { + if (themePopup.style.display === 'block') { + hideThemes(); + } else { + showThemes(); + } + }); + + themePopup.addEventListener('click', function (e) { + var theme; + if (e.target.className === "theme") { + theme = e.target.id; + } else if (e.target.parentElement.className === "theme") { + theme = e.target.parentElement.id; + } else { + return; + } + set_theme(theme); + }); + + themePopup.addEventListener('focusout', function(e) { + // e.relatedTarget is null in Safari and Firefox on macOS (see workaround below) + if (!!e.relatedTarget && !themeToggleButton.contains(e.relatedTarget) && !themePopup.contains(e.relatedTarget)) { + hideThemes(); + } + }); + + // Should not be needed, but it works around an issue on macOS & iOS: https://github.com/rust-lang/mdBook/issues/628 + document.addEventListener('click', function(e) { + if (themePopup.style.display === 'block' && !themeToggleButton.contains(e.target) && !themePopup.contains(e.target)) { + hideThemes(); + } + }); + + document.addEventListener('keydown', function (e) { + if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; } + if (!themePopup.contains(e.target)) { return; } + + switch (e.key) { + case 'Escape': + e.preventDefault(); + hideThemes(); + break; + case 'ArrowUp': + e.preventDefault(); + var li = document.activeElement.parentElement; + if (li && li.previousElementSibling) { + li.previousElementSibling.querySelector('button').focus(); + } + break; + case 'ArrowDown': + e.preventDefault(); + var li = document.activeElement.parentElement; + if (li && li.nextElementSibling) { + li.nextElementSibling.querySelector('button').focus(); + } + break; + case 'Home': + e.preventDefault(); + themePopup.querySelector('li:first-child button').focus(); + break; + case 'End': + e.preventDefault(); + themePopup.querySelector('li:last-child button').focus(); + break; + } + }); +})(); + +(function sidebar() { + var body = document.querySelector("body"); + var sidebar = document.getElementById("sidebar"); + var sidebarLinks = document.querySelectorAll('#sidebar a'); + var sidebarToggleButton = document.getElementById("sidebar-toggle"); + var sidebarResizeHandle = document.getElementById("sidebar-resize-handle"); + var firstContact = null; + + function showSidebar() { + body.classList.remove('sidebar-hidden') + body.classList.add('sidebar-visible'); + Array.from(sidebarLinks).forEach(function (link) { + link.setAttribute('tabIndex', 0); + }); + sidebarToggleButton.setAttribute('aria-expanded', true); + sidebar.setAttribute('aria-hidden', false); + try { localStorage.setItem('mdbook-sidebar', 'visible'); } catch (e) { } + } + + + var sidebarAnchorToggles = document.querySelectorAll('#sidebar a.toggle'); + + function toggleSection(ev) { + ev.currentTarget.parentElement.classList.toggle('expanded'); + } + + Array.from(sidebarAnchorToggles).forEach(function (el) { + el.addEventListener('click', toggleSection); + }); + + function hideSidebar() { + body.classList.remove('sidebar-visible') + body.classList.add('sidebar-hidden'); + Array.from(sidebarLinks).forEach(function (link) { + link.setAttribute('tabIndex', -1); + }); + sidebarToggleButton.setAttribute('aria-expanded', false); + sidebar.setAttribute('aria-hidden', true); + try { localStorage.setItem('mdbook-sidebar', 'hidden'); } catch (e) { } + } + + // Toggle sidebar + sidebarToggleButton.addEventListener('click', function sidebarToggle() { + if (body.classList.contains("sidebar-hidden")) { + var current_width = parseInt( + document.documentElement.style.getPropertyValue('--sidebar-width'), 10); + if (current_width < 150) { + document.documentElement.style.setProperty('--sidebar-width', '150px'); + } + showSidebar(); + } else if (body.classList.contains("sidebar-visible")) { + hideSidebar(); + } else { + if (getComputedStyle(sidebar)['transform'] === 'none') { + hideSidebar(); + } else { + showSidebar(); + } + } + }); + + sidebarResizeHandle.addEventListener('mousedown', initResize, false); + + function initResize(e) { + window.addEventListener('mousemove', resize, false); + window.addEventListener('mouseup', stopResize, false); + body.classList.add('sidebar-resizing'); + } + function resize(e) { + var pos = (e.clientX - sidebar.offsetLeft); + if (pos < 20) { + hideSidebar(); + } else { + if (body.classList.contains("sidebar-hidden")) { + showSidebar(); + } + pos = Math.min(pos, window.innerWidth - 100); + document.documentElement.style.setProperty('--sidebar-width', pos + 'px'); + } + } + //on mouseup remove windows functions mousemove & mouseup + function stopResize(e) { + body.classList.remove('sidebar-resizing'); + window.removeEventListener('mousemove', resize, false); + window.removeEventListener('mouseup', stopResize, false); + } + + document.addEventListener('touchstart', function (e) { + firstContact = { + x: e.touches[0].clientX, + time: Date.now() + }; + }, { passive: true }); + + document.addEventListener('touchmove', function (e) { + if (!firstContact) + return; + + var curX = e.touches[0].clientX; + var xDiff = curX - firstContact.x, + tDiff = Date.now() - firstContact.time; + + if (tDiff < 250 && Math.abs(xDiff) >= 150) { + if (xDiff >= 0 && firstContact.x < Math.min(document.body.clientWidth * 0.25, 300)) + showSidebar(); + else if (xDiff < 0 && curX < 300) + hideSidebar(); + + firstContact = null; + } + }, { passive: true }); +})(); + +(function chapterNavigation() { + document.addEventListener('keydown', function (e) { + if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; } + if (window.search && window.search.hasFocus()) { return; } + var html = document.querySelector('html'); + + function next() { + var nextButton = document.querySelector('.nav-chapters.next'); + if (nextButton) { + window.location.href = nextButton.href; + } + } + function prev() { + var previousButton = document.querySelector('.nav-chapters.previous'); + if (previousButton) { + window.location.href = previousButton.href; + } + } + switch (e.key) { + case 'ArrowRight': + e.preventDefault(); + if (html.dir == 'rtl') { + prev(); + } else { + next(); + } + break; + case 'ArrowLeft': + e.preventDefault(); + if (html.dir == 'rtl') { + next(); + } else { + prev(); + } + break; + } + }); +})(); + +(function clipboard() { + var clipButtons = document.querySelectorAll('.clip-button'); + + function hideTooltip(elem) { + elem.firstChild.innerText = ""; + elem.className = 'fa fa-copy clip-button'; + } + + function showTooltip(elem, msg) { + elem.firstChild.innerText = msg; + elem.className = 'fa fa-copy tooltipped'; + } + + var clipboardSnippets = new ClipboardJS('.clip-button', { + text: function (trigger) { + hideTooltip(trigger); + let playground = trigger.closest("pre"); + return playground_text(playground, false); + } + }); + + Array.from(clipButtons).forEach(function (clipButton) { + clipButton.addEventListener('mouseout', function (e) { + hideTooltip(e.currentTarget); + }); + }); + + clipboardSnippets.on('success', function (e) { + e.clearSelection(); + showTooltip(e.trigger, "Copied!"); + }); + + clipboardSnippets.on('error', function (e) { + showTooltip(e.trigger, "Clipboard error!"); + }); +})(); + +(function scrollToTop () { + var menuTitle = document.querySelector('.menu-title'); + + menuTitle.addEventListener('click', function () { + document.scrollingElement.scrollTo({ top: 0, behavior: 'smooth' }); + }); +})(); + +(function controllMenu() { + var menu = document.getElementById('menu-bar'); + + (function controllPosition() { + var scrollTop = document.scrollingElement.scrollTop; + var prevScrollTop = scrollTop; + var minMenuY = -menu.clientHeight - 50; + // When the script loads, the page can be at any scroll (e.g. if you reforesh it). + menu.style.top = scrollTop + 'px'; + // Same as parseInt(menu.style.top.slice(0, -2), but faster + var topCache = menu.style.top.slice(0, -2); + menu.classList.remove('sticky'); + var stickyCache = false; // Same as menu.classList.contains('sticky'), but faster + document.addEventListener('scroll', function () { + scrollTop = Math.max(document.scrollingElement.scrollTop, 0); + // `null` means that it doesn't need to be updated + var nextSticky = null; + var nextTop = null; + var scrollDown = scrollTop > prevScrollTop; + var menuPosAbsoluteY = topCache - scrollTop; + if (scrollDown) { + nextSticky = false; + if (menuPosAbsoluteY > 0) { + nextTop = prevScrollTop; + } + } else { + if (menuPosAbsoluteY > 0) { + nextSticky = true; + } else if (menuPosAbsoluteY < minMenuY) { + nextTop = prevScrollTop + minMenuY; + } + } + if (nextSticky === true && stickyCache === false) { + menu.classList.add('sticky'); + stickyCache = true; + } else if (nextSticky === false && stickyCache === true) { + menu.classList.remove('sticky'); + stickyCache = false; + } + if (nextTop !== null) { + menu.style.top = nextTop + 'px'; + topCache = nextTop; + } + prevScrollTop = scrollTop; + }, { passive: true }); + })(); + (function controllBorder() { + function updateBorder() { + if (menu.offsetTop === 0) { + menu.classList.remove('bordered'); + } else { + menu.classList.add('bordered'); + } + } + updateBorder(); + document.addEventListener('scroll', updateBorder, { passive: true }); + })(); +})(); diff --git a/book.toml b/book.toml deleted file mode 100644 index 3848b54..0000000 --- a/book.toml +++ /dev/null @@ -1,19 +0,0 @@ -[book] -title = "Atomic Data Docs" -authors = ["Joep Meindertsma"] -description = "Documentation for the Atomic Data standard." -language = "en" - -[output.html] -git-repository-icon = "fa-github" -git-repository-url = "https://github.com/atomicdata-dev/atomic-data-docs" -additional-css = ["open-in.css"] - -[output.linkcheck] -optional = true - -[preprocessor.open-on-gh] -command = "mdbook-open-on-gh" -renderer = ["html"] -text = "mdbook-open-on-gh" -open-on-text = "[Suggest edits for this page on GitHub.]" diff --git a/clipboard.min.js b/clipboard.min.js new file mode 100644 index 0000000..02c549e --- /dev/null +++ b/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n + + + + + Atomic Commits compared to other (RDF) delta models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Commits compared to other (RDF) delta models

+

Let's compare the Atomic Commit approach with some existing protocols for communicating state changes / patches / mutations / deltas in linked data, JSON and text files. +First, I'll briefly discuss the existing examples (open a PR / issue if we're missing something!). +After that, we'll discuss how Atomic Data differs from the existing ones.

+

Git

+

This might be an odd one in this list, but it is an interesting one nonetheless. +Git is an incredibly popular version control system that is used by most software developers to manage their code. +It's a decentralized concept which allows multiple computers to share a log of commits, which together represent a folder with its files and its history. +It uses hashing to represent (parts of) data (which keeps the .git folder compact through deduplication), and uses cryptographic keys to sign commits and verify authorship. +It is designed to work in the paradigm of text files, newlines and folders. +Since most data can be represented as text files in a folder, Git is very flexible. +This is partly because people are familiar with Git, but also because it has a great ecosystem - platforms such as Github provide a clean UI, cloud storage, issue tracking, authorization, authentication and more for free, as long as you use Git to manage your versions.

+

However, Git doesn't work great for structured data - especially when it changes a lot. +Git, on its own, does not perform any validations on integrity of data. +Git also does not adhere to some standardized serialization format for storing commits, which makes sense, because it was designed as a tool to solve a problem, and not as some standard that is to be used in various other systems. +Also, git is kind of a heavyweight abstraction for many applications. +It is designed for collaborating on open source projects, which means dealing with decentralized data storage and merge conflicts - things that might not be required in other kinds of scenarios.

+

RDF mutation systems

+

Let's move on to specifications that mutate RDF specifically:

+

.n3 Patch

+

N3 Patch is part of the Solid spec, since december 2021.

+

It uses the N3 serialization format to describe changes to RDF documents.

+
@prefix solid: <http://www.w3.org/ns/solid/terms#>
+
+<> solid:patches <https://tim.localhost:7777/read-write.ttl>;
+   solid:where   { ?a <y> <z>. };
+   solid:inserts { ?a <y> <z>. };
+   solid:deletes { ?a <b> <c>. }.
+
+

RDF-Delta

+

https://afs.github.io/rdf-delta/

+

Describes changes (RDF Patches) in a specialized turtle-like serialization format.

+
TX .
+PA "rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#" .
+PA "owl" "http://www.w3.org/2002/07/owl#" .
+PA "rdfs" "http://www.w3.org/2000/01/rdf-schema#" .
+A <http://example/SubClass> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+A <http://example/SubClass> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://example/SUPER_CLASS> .
+A <http://example/SubClass> <http://www.w3.org/2000/01/rdf-schema#label> "SubClass" .
+TC .
+
+

Similar to Atomic Commits, these Delta's should have identifiers (URLs), which are denoted in a header.

+

Delta-LD

+

http://www.tara.tcd.ie/handle/2262/91407

+

Spec for classifying and representing state changes between two RDF resources. +I wasn't able to find a serialization or an implementation for this.

+

PatchR

+

https://www.igi-global.com/article/patchr/135561

+

An ontology for RDF change requests. +Looks very interesting, but I'm not able to find any implementations.

+
prefix :      <http://example.org/> .
+@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix pat:  <http://purl.org/hpi/patchr#> .
+@prefix guo:  <http://webr3.org/owl/guo#> .
+@prefix prov: <http://purl.org/net/provenance/ns#> .
+@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
+@prefix dbp:  <http://dbpedia.org/resource/> .
+@prefix dbo:  <http://dbpedia.org/ontology/> .
+
+:Patch_15 a pat:Patch ;
+  pat:appliesTo <http://dbpedia.org/void.ttl#DBpedia_3.5> ;
+  pat:status pat:Open ;
+  pat:update [
+    a guo:UpdateInstruction ;
+    guo:target_graph <http://dbpedia.org/> ;
+    guo:target_subject dbp:Oregon ;
+    guo:delete [dbo:language dbp:De_jure ] ;
+    guo:insert [dbo:language dbp:English_language ]
+  ] ;
+  prov:wasGeneratedBy [a prov:Activity ;
+  pat:confidence "0.5"^^xsd:decimal ;
+  prov:wasAssociatedWith :WhoKnows ;
+  prov:actedOnBehalfOf :WhoKnows#Player_25 ;
+  prov:performedAt "..."^^xsd:dateTime ] .
+
+

LD-Patch

+

https://www.w3.org/TR/ldpatch/

+

This offers quite a few features besides adding and deleting triples, such as updating lists. +It's a unique serialization format, inspired by turtle. +Some implementations exists, such as one in ruby which is

+
PATCH /timbl HTTP/1.1
+Host: example.org
+Content-Length: 478
+Content-Type: text/ldpatch
+If-Match: "abc123"
+
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix schema: <http://schema.org/> .
+@prefix profile: <http://ogp.me/ns/profile#> .
+@prefix ex: <http://example.org/vocab#> .
+
+Delete { <#> profile:first_name "Tim" } .
+Add {
+  <#> profile:first_name "Timothy" ;
+    profile:image <https://example.org/timbl.jpg> .
+} .
+
+Bind ?workLocation <#> / schema:workLocation .
+Cut ?workLocation .
+
+UpdateList <#> ex:preferredLanguages 1..2 ( "fr-CH" ) .
+
+Bind ?event <#> / schema:performerIn [ / schema:url = <https://www.w3.org/2012/ldp/wiki/F2F5> ]  .
+Add { ?event rdf:type schema:Event } .
+
+Bind ?ted <http://conferences.ted.com/TED2009/> / ^schema:url ! .
+Delete { ?ted schema:startDate "2009-02-04" } .
+Add {
+  ?ted schema:location [
+    schema:name "Long Beach, California" ;
+    schema:geo [
+      schema:latitude "33.7817" ;
+      schema:longitude "-118.2054"
+    ]
+  ]
+} .
+
+

Linked-Delta

+

https://github.com/ontola/linked-delta

+

An N-Quads serialized delta format. +Methods are URLs, which means they are extensible. +Does not specify how to bundle lines. +Used in production of a web app that we're working on (Argu.co). +Designed with simplicity (no new serialization format, simple to parse) and performance in mind by my colleague Thom van Kalkeren.

+
Initial state:
+
+<http://example.org/resource> <http://example.org/predicate> "Old value 🙈" .
+
+Linked-Delta:
+
+<http://example.org/resource> <http://example.org/predicate> "New value 🐵" <http://purl.org/linked-delta/replace> .
+
+New state:
+
+<http://example.org/resource> <http://example.org/predicate> "New value 🐵" .
+
+

JSON-LD-PATCH

+

https://github.com/digibib/ls.ext/wiki/JSON-LD-PATCH

+

A JSON denoted patch notation for RDF. +Seems similar to the RDF/JSON serialization format. +Uses string literals as operators / methods. +Conceptually perhaps most similar to linked-delta.

+

Has a JS implementation.

+
[
+  {
+    "op": "add",
+    "s": "http://example.org/my/resource",
+    "p": "http://example.org/ontology#title",
+    "o": {
+      "value": "New Title",
+      "type": "http://www.w3.org/2001/XMLSchema#string"
+    }
+  }
+]
+
+

SPARQL UPDATE

+

https://www.w3.org/TR/sparql11-update/

+

SPARQL queries that change data.

+
PREFIX dc: <http://purl.org/dc/elements/1.1/>
+INSERT DATA
+{
+  <http://example/book1> dc:title "A new book" ;
+                         dc:creator "A.N.Other" .
+}
+
+

Allows for very powerful queries, combined with updates. +E.g. rename all persons named Bill to William:

+
PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
+
+WITH <http://example/addresses>
+DELETE { ?person foaf:givenName 'Bill' }
+INSERT { ?person foaf:givenName 'William' }
+WHERE
+  { ?person foaf:givenName 'Bill'
+  }
+
+

SPARQL Update is the most powerful of the formats, but also perhaps the most difficult to implement and understand.

+

JSON-PATCH

+

http://jsonpatch.com/

+

A simple way to edit JSON objects:

+
The original document
+
+{
+  "baz": "qux",
+  "foo": "bar"
+}
+
+The patch
+
+[
+  { "op": "replace", "path": "/baz", "value": "boo" },
+  { "op": "add", "path": "/hello", "value": ["world"] },
+  { "op": "remove", "path": "/foo" }
+]
+
+The result
+
+{
+  "baz": "boo",
+  "hello": ["world"]
+}
+
+

It uses the JSON-Pointer spec for denoting paths. +It has quite a bunch of implementations, in various languages.

+ +

Atomic Commits - how it's different and why it exists

+

Let's talk about the differences between the concepts above and Atomic Commits.

+

For starters, Atomic Commits can only work with a specific subset of RDF, namely Atomic Data. +RDF allows for blank nodes, does not have subject-predicate uniqueness and offers named graphs - which all make it hard to unambiguously select a single value. +Most of the alternative patch / delta models described above had to support these concepts. +Atomic Data is more strict and constrained than RDF. +It does not support named graphs and blank nodes. +This enables a simpler approach to describing state changes, but it also means that Atomic Commits will not work with most existing RDF data.

+

Secondly, individual Atomic Commits are tightly coupled to specific Resources. +A single Commit cannot change multiple resources - and most of the models discussed above to enable this. +This is a big constraint, and it does not allow for things like compact migrations in a database. +However, this resource-bound constraint opens up some interesting possibilities:

+
    +
  • it becomes easier to combine it with authorization (i.e. check if the person has the correct rights to edit some resource): simply check if the Author has the rights to edit the Subject.
  • +
  • it makes it easier to find all Commits for a Resource, which is useful when constructing a history / audit log / previous version.
  • +
+

Thirdly, Atomic Commits don't introduce a new serialization format. +It's just JSON. +This means that it will feel familiar for most developers, and will be supported by many existing environments.

+

Finally, Atomic Commits use cryptography (hashing) to determine authenticity of commits. +This concept is borrowed from git commits, which also uses signatures to prove authorship. +As is the case with git, this also allows for verifiable P2P sharing of changes.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/commits/concepts.html b/commits/concepts.html new file mode 100644 index 0000000..f564c6a --- /dev/null +++ b/commits/concepts.html @@ -0,0 +1,315 @@ + + + + + + Atomic Commits: Concepts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Commits: Concepts

+

Commit

+

url: https://atomicdata.dev/classes/Commit

+

A Commit is a Resource that describes how a Resource must be updated. +It can be used for auditing, versioning and feeds. +It is cryptographically signed by an Agent.

+

The required fields are:

+
    +
  • subject - The thing being changed. A Resource Subject URL (HTTP identifier) that the Commit is changing about. A Commit Subject must not contain query parameters, as these are reserved for dynamic resources.
  • +
  • signer - Who's making the change. The Atomic URL of the Author's profile - which in turn must contain a publicKey.
  • +
  • signature - Cryptographic proof of the change. A hash of the JSON-AD serialized Commit (without the signature field), signed by the Agent's private-key. This proves that the author is indeed the one who created this exact commit. The signature of the Commit is also used as the identifier of the commit.
  • +
  • created-at - When the change was made. A UNIX timestamp number of when the commit was created.
  • +
+

The optional method fields describe how the data must be changed:

+
    +
  • destroy - If true, the existing Resource will be removed.
  • +
  • remove - an array of Properties that need to be removed (including their values).
  • +
  • set - a Nested Resource which contains all the new or edited fields.
  • +
  • push - a Nested Resource which contains all the fields that are appended to. This means adding items to a new or existing ResourceArray.
  • +
+

These commands are executed in the order above. +This means that you can set destroy to true and include set, which empties the existing resource and sets new values.

+

Posting commits using HTTP

+

Since Commits contains cryptographic proof of authorship, they can be accepted at a public endpoint. +There is no need for authentication.

+

A commit should be sent (using an HTTPS POST request) to a /commmit endpoint of an Atomic Server. +The server then checks the signature and the author rights, and responds with a 2xx status code if it succeeded, or an 5xx error if something went wrong. +The error will be a JSON object.

+

Serialization with JSON-AD

+

Let's look at an example Commit:

+
{
+  "@id": "https://atomicdata.dev/commits/3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==",
+  "https://atomicdata.dev/properties/createdAt": 1611489929370,
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Commit"
+  ],
+  "https://atomicdata.dev/properties/set": {
+    "https://atomicdata.dev/properties/shortname": "1611489928"
+  },
+  "https://atomicdata.dev/properties/signature": "3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==",
+  "https://atomicdata.dev/properties/signer": "https://surfy.ddns.net/agents/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=",
+  "https://atomicdata.dev/properties/previousCommit": "https://surfy.ddns.net/commits/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=",
+  "https://atomicdata.dev/properties/subject": "https://atomicdata.dev/test"
+}
+
+

This Commit can be sent to any Atomic Server. +This server, in turn, should verify the signature and the author's rights before the server applies the Commit.

+

Calculating the signature

+

The signature is a base64 encoded Ed25519 signature of the deterministically serialized Commit. +Calculating the signature is a delicate process that should be followed to the letter - even a single character in the wrong place will result in an incorrect signature, which makes the Commit invalid.

+

The first step is serializing the commit deterministically. +This means that the process will always end in the exact same string.

+
    +
  • Serialize the Commit as JSON-AD.
  • +
  • Do not serialize the signature field.
  • +
  • Do not include empty objects or arrays.
  • +
  • If destroy is false, do not include it.
  • +
  • All keys are sorted alphabetically - both in the root object, as in any nested objects.
  • +
  • The JSON-AD is minified: no newlines, no spaces.
  • +
+

This will result in a string. +The next step is to sign this string using the Ed25519 private key from the Author. +This signature is a byte array, which should be encoded in base64 for serialization. +Make sure that the Author's URL resolves to a Resource that contains the linked public key.

+

Congratulations, you've just created a valid Commit!

+

Here are currently working implementations of this process, including serialization and signing (links are permalinks).

+ +

If you want validate your implementation, check out the tests for these two projects.

+

Applying the Commit

+

If you're on the receiving end of a Commit (e.g. if you're writing a server or a client who has to parse Commits), you will apply the Commit to your Store. +If you have to persist the Commit, you must perform all of the checks. +If you're writing a client, and you trust the source of the Commit, you can probably skip the validation steps.

+

Here's how you apply a Commit:

+
    +
  1. Check if the Subject URL is valid
  2. +
  3. Validate the signature. This means serialize the Commit deterministically (see above), check the Agent's publickey (you might need to fetch this one), verify if the signature matches.
  4. +
  5. Check if the timestamp matches is OK. I think an acceptable window is 10 seconds.
  6. +
  7. If the Commit is for an existing resource, get it.
  8. +
  9. Validate the Rights of the one making the Commit.
  10. +
  11. Check if the previousCommit of the Commit matches with the previousCommit of the Resource.
  12. +
  13. Iterate over the set fields. Overwrite existing, or add the new Values. Make sure the Datatypes match with the respective Properties.
  14. +
  15. Iterate over the remove fields. Remove existing properties.
  16. +
  17. If the Resource has one or more classes, check if the required Properties are there.
  18. +
  19. You might want to perform some custom validations now (e.g. if you accept an Invite, you should make sure that the one creating the Invite has the correct rights to actually make it!)
  20. +
  21. Store the created Commit as a Resource, and store the modified Resource!
  22. +
+

Limitations

+
    +
  • Commits adjust only one Resource at a time, which means that you cannot change multiple in one commit. (issue)
  • +
  • The one creating the Commit will need to sign it, which may make clients that write data more complicated than you'd like. You can also let Servers write Commits, but this makes them less verifiable / decentralized.
  • +
  • Commits require signatures, which means key management. Doing this securely is no trivial matter.
  • +
  • The signatures require JSON-AD serialization
  • +
  • If your implementation persists all Commits, you might need to store a lot of data.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/commits/intro.html b/commits/intro.html new file mode 100644 index 0000000..1d4ebc8 --- /dev/null +++ b/commits/intro.html @@ -0,0 +1,259 @@ + + + + + + Atomic Commits - Event standard for Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Commits

+

Disclaimer: Work in progress, prone to change.

+

Atomic Commits is a specification for communicating state changes (events / transactions / patches / deltas / mutations) of Atomic Data. +It is the part of Atomic Data that is concerned with writing, editing, removing and updating information.

+

Design goals

+
    +
  • Event sourced: Store and standardize changes, as well as the current state. This enables versioning, history playback, undo, audit logs, and more.
  • +
  • Traceable origin: Every change should be traceable to an actor and a point in time.
  • +
  • Verifiable: Have cryptographic proof for every change. Know when, and what was changed by whom.
  • +
  • Identifiable: A single commit has an identifier - it is a resource.
  • +
  • Decentralized: Commits can be shared in P2P networks from device to device, whilst maintaining verifiability.
  • +
  • Extensible: The methods inside a commit are not fixed. Use-case specific methods can be added by anyone.
  • +
  • Streamable: The commits could be used in streaming context.
  • +
  • Familiar: Introduces as little new stuff as possible (no new formats or language to learn)
  • +
  • Pub/Sub: Subscribe to changes and get notified on changes.
  • +
  • ACID-compliant: An Atomic commit will only occur if it results in a valid state.
  • +
  • Atomic: All the Atomic Data design goals also apply here.
  • +
+

Motivation

+

Although it's a good idea to keep data at the source as much as possible, we'll often need to synchronize two systems. +For example when data has to be queried or indexed differently than its source can support. +Doing this synchronization can be very difficult, since most of our software is designed to only maintain and share the current state of a system.

+

I noticed this mainly when working on OpenBesluitvorming.nl - an open data project where we aimed to fetch and standardize meeting data (votes, meeting minutes, documents) from 150+ local governments in the Netherlands. +We wrote software that fetched data from various systems (who all had different models, serialization formats and APIs), transformed this data to a single standard and share it through an API and a fulltext search endpoint. +One of the hard parts was keeping our data in sync with the sources. +How could we now if something was changed upstream? +We queried all these systems every night for all meetings from the next and previous month, and made deep comparisons to our own data.

+

This approach has a couple of issues:

+
    +
  • It costs a lot of resources, both for us and for the data suppliers.
  • +
  • It's not real-time - we can only run this once every 24 ours (because of how costly it is).
  • +
  • It's very prone to errors. We've had issues during all phases of Extraction, Transformation and Loading (ETL) processing.
  • +
  • It causes privacy issues. When some data at the source is removed (because it contained faulty or privacy sensitive data), how do we learn about that?
  • +
+

Persisting and sharing state changes could solve these issues. +In order for this to work, we need to standardize this for all data suppliers. +We need a specification that is easy to understand for most developers.

+

Keeping track of where data comes from is essential to knowing whether you can trust it - whether you consider it to be true. +When you want to persist data, that quickly becomes bothersome. +Atomic Data and Atomic Commits aim to make this easier by using cryptography for ensuring data comes from some particular source, and is therefore trustworthy.

+

If you want to know how Atomic Commits differ from other specs, see the compare section

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/concepts.html b/core/concepts.html new file mode 100644 index 0000000..78e4fdd --- /dev/null +++ b/core/concepts.html @@ -0,0 +1,339 @@ + + + + + + What is Atomic Data? - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

What is Atomic Data?

+

Atomic Data Core

+

Atomic Data is a modular specification for sharing information on the web. +Since Atomic Data is a modular specification, you can mostly take what you want to use, and ignore the rest. +The Core part, however, is the only required part of the specification, as all others depend on it.

+

Atomic Data Core can be used to express any type of information, including personal data, vocabularies, metadata, documents, files and more. +It's designed to be easily serializable to both JSON and linked data formats. +It is a typed data model, which means that every value must be validated by their datatype.

+

Design goals

+
    +
  • Browsable: Data should explicitly link to other pieces of data, and these links should be followable.
  • +
  • Semantic: Every data Atom and relation has a clear semantic meaning.
  • +
  • Interoperable: Plays nice with other data formats (e.g. JSON, XML, and all RDF formats).
  • +
  • Open: Free to use, open source, no strings attached.
  • +
  • Clear Ownership: The data shows who (or which domain) is in control of the data, so new versions of the data can easily be retrieved.
  • +
  • Mergeable: Any two sets of Atoms can be merged into a single graph without any merge conflicts / name collisions.
  • +
  • Extensible: Anyone can define their own data types and create Atoms with it.
  • +
  • ORM-friendly: Navigate a decentralized graph by using dot.syntax, similar to how you navigate a JSON object in javascript.
  • +
  • Type-safe: All valid Atomic data has an unambiguous, static datatype.
  • +
+

Concepts

+

Resource

+

A Resource is a bunch of information about a thing, referenced by a single link (the Subject). +Formally, it is a set of Atoms (i.e. a Graph) that share a Subject URL. +You can think of a Resource as a single row in a spreadsheet or database. +In practice, Resources can be anything - a Person, a Blogpost, a Todo item. +A Resource consists of at least one Atom, so it always has some Property and some Value. +A Property can only occur once in every Resource.

+

Atom (or Atomic Triple)

+

Every Resource is composed of Atoms. +The Atom is the smallest possible piece of meaningful data / information (hence the name). +You can think of an Atom as a single cell in a spreadsheet or database. +An Atom consists of three fields:

+
    +
  • Subject: the thing that the atom is providing information about. This is typically also the URL where we can find more information about it.
  • +
  • Property: the property of the thing that the atom is about (will always be a URL to a Property).
  • +
  • Value: the new piece of information about the Atom.
  • +
+

If you're familiar with RDF, you'll notice similarities. +An Atom is comparable with an RDF Triple / Statement (although there are important differences).

+

Let's turn this sentence into Atoms:

+

Arnold Peters, who's born on the 20th of Januari 1991, has a best friend named Britta Smalls.

+
+ + + + +
SubjectPropertyValue
Arnoldlast namePeters
Arnoldbirthdate1991-01-20
Arnoldbest friendBritta
Brittalast nameSmalls
+
+

The table above shows human readable strings, but in Atomic Data, we use links (URLs) wherever we can. +That's because links are awesome. +Links remove ambiguity (we know exactly which person or property we mean), they are resolvable (we can click on them), and they are machine readable (machines can fetch links to do useful things with them). +So the table from above, will more closely resemble this one:

+
+ + + + +
SubjectPropertyValue
https://example.com/arnoldhttps://example.com/properties/lastnamePeters
https://example.com/arnoldhttps://example.com/properties/birthDate1991-01-20
https://example.com/arnoldhttps://example.com/properties/bestFriendhttps://example.com/britta
https://example.com/brittahttps://example.com/properties/lastnameSmalls
+
+

The standard serialization format for Atomic Data is JSON-AD, which looks like this:

+
[{
+  "@id": "https://example.com/arnold",
+  "https://example.com/properties/lastname": "Peters",
+  "https://example.com/properties/birthDate": "1991-01-20",
+  "https://example.com/properties/bestFriend": "https://example.com/britta",
+},{
+  "@id": "https://example.com/britta",
+  "https://example.com/properties/lastname": "Smalls",
+}]
+
+

The @id field denotes the Subject of each Resource, which is also the URL that should point to where the resource can be found.

+

In the JSON-AD example above, we have:

+
    +
  • two Resources, describing two different Subjects: https://example.com/arnold and https://example.com/britta.
  • +
  • three different Properties (https://example.com/properties/lastname, https://example.com/properties/birthDate, and https://example.com/properties/bestFriend)
  • +
  • four Values (Peters, 1991-01-20, https://example.com/britta and Smalls)
  • +
  • four Atoms - every row is one Atom.
  • +
+

All Subjects and Properties are Atomic URLs: they are links that point to more Atomic Data. +One of the Values is a URL, too, but we also have values like Arnold and 1991-01-20. +Values can have different Datatypes +In most other data formats, the datatypes are limited and are visually distinct. +JSON, for example, has array, object, string, number and boolean. +In Atomic Data, however, datatypes are defined somewhere else, and are extendible. +To find the Datatype of an Atom, you fetch the Property, and that Property will have a Datatype. +For example, the https://example.com/properties/bornAt Property requires an ISO Date string, and the https://example.com/properties/firstName Property requires a regular string. +This might seem a little tedious and weird at first, but is has some nice advantages! +Their Datatypes are defined in the Properties.

+

Subject field

+

The Subject field is the first part of an Atom. +It is the identifier that the rest of the Atom is providing information about. +The Subject field is a URL that points to the Resource. +The creator of the Subject MUST make sure that it resolves. +In other words: following / downloading the Subject link will provide you with all the Atoms about the Subject (see Querying Atomic Data. +This also means that the creator of a Resource must make sure that it is available at its URL - probably by hosting the data, or by using some service that hosts it. +In JSON-AD, the Subject is denoted by @id.

+

Property field

+

The Property field is the second part of an Atom. +It is a URL that points to an Atomic Property. +Examples can be found at https://atomicdata.dev/properties.

+ +

The Property field MUST be a URL, and that URL MUST resolve (it must be publicly available) to an Atomic Property. +The Property is perhaps the most important concept in Atomic Data, as it is what enables the type safety (thanks to datatype) and the JSON compatibility (thanks to shortname). +We also use Properties for rendering fields in a form, because the Datatype, shortname and description helps us to create an intuitive, easy to understand input for users.

+

Value field

+

The Value field is the third part of an Atom. +In RDF, this is called an object. +Contrary to the Subject and Property values, the Value can be of any datatype. +This includes URLs, strings, integers, dates and more.

+

Graph

+

A Graph is a collection of Atoms. +A Graph can describe various subjects, which may or may not be related. +Graphs can have several characteristics (Schema Complete, Valid, Closed)

+

In mathematial graph terminology, a graph consists of nodes and edges. +The Atomic Data model is a so called directed graph, which means that relationships are by default one-way. +In Atomic Data, every node is a Resource, and every edge is a Property.

+

Nested Resource

+

A Nested Resource only exists inside of another resource. +It does not have its own subject.

+

In the next chapter, we'll explore how Atomic Data is serialized.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/json-ad.html b/core/json-ad.html new file mode 100644 index 0000000..3f631a2 --- /dev/null +++ b/core/json-ad.html @@ -0,0 +1,284 @@ + + + + + + JSON-AD: The Atomic Data serialization format + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

JSON-AD: The Atomic Data serialization format

+

Although you can use various serialization formats for Atomic Data, JSON-AD is the default and only required serialization format. +It is what the current Rust and Typescript / React implementations use to communicate. +It is designed to feel familiar to developers and to be easy and performant to parse and serialize. +It is inspired by JSON-LD.

+

It uses JSON, but has some additional constraints:

+
    +
  • Every single Object is a Resource.
  • +
  • Every Key is a Property URL. Other keys are invalid. Each Property URL must resolve to an online Atomic Data Property.
  • +
  • The @id field is special: it defines the Subject of the Resource. If you send an HTTP GET request there with an content-type: application/ad+json header, you should get the full JSON-AD resource.
  • +
  • JSON arrays are mapped to Resource Arrays
  • +
  • Numbers can be Integers, Timestamps or Floats.
  • +
  • JSON booleans map to Booleans.
  • +
  • JSON strings can be many datatypes, including String, Markdown, Date or other.
  • +
  • Nested JSON Objects are Nested Resources. A Nested Resource can either be Anonymous (without an @id subject) or a Named Nested Resource (with an @id subject). Everywhere a Subject URL can be used as a value (i.e. all properties with the datatype atomicURL), a Nested Resource can be used instead. This also means that an item in an ResourceArray can be a Nested Resource.
  • +
  • The root data structure must either be a Named Resource (with an @id), or an Array containing Named Resources. When you want to describe multiple Resources in one JSON-AD document, use an array as the root item.
  • +
+

Let's look at an example JSON-AD Resource:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

The mime type (for HTTP content negotiation) is application/ad+json (registration ongoing).

+

Nested, Anonymous and Named resources

+

In JSON-AD, a Resource can be respresented in multiple ways:

+
    +
  • Subject: A URL string, such as https://atomicdata.dev/classes/Class.
  • +
  • Named Resource: A JSON Object with an @id field containing the Subject.
  • +
  • Anonymous Nested Resource A JSON Object without an @id field. This is only possible if it is a Nested Resource, which means that it has a parent Resource.
  • +
+

Note that this is also valid for ResourceArrays, which usually only contain Subjects, but are allowed to contain Nested Resources.

+

In the following JSON-AD example, the address is a nested resource:

+
{
+  "@id": "https://example.com/arnold",
+  "https://example.com/properties/address": {
+    "https://example.com/properties/firstLine": "Longstreet 22",
+    "https://example.com/properties/city": "Watertown",
+    "https://example.com/properties/country": "the Netherlands",
+  }
+}
+
+

Nested Resources can be named or anonymous. An Anonymous Nested Resource does not have it's own @id field. +It does have its own unique path, which can be used as its identifier. +The path of the anonymous resource in the example above is https://example.com/arnold https://example.com/properties/address.

+

JSON-AD Parsers, serializers and other libraries

+
    +
  • Typescript / Javacript: @tomic/lib JSON-AD parser + in-memory store. Works with @tomic/react for rendering Atomic Data in React.
  • +
  • Rust: atomic_lib has a JSON-AD parser / serializer (and does a lot more).
  • +
+

Canonicalized JSON-AD

+

When you need deterministic serialization of Atomic Data (e.g. when calculating a cryptographic hash or signature, used in Atomic Commits), you can use the following procedure:

+
    +
  1. Serialize your Resource to JSON-AD
  2. +
  3. Do not include empty objects, empty arrays or null values.
  4. +
  5. All keys are sorted alphabetically (lexicographically) - both in the root object, as in any nested objects.
  6. +
  7. The JSON-AD is minified: no newlines, no spaces.
  8. +
+

The last two steps of this process is more formally defined by the JSON Canonicalization Scheme (JCS, rfc8785).

+

Interoperability with JSON and JSON-LD

+

Read more about this subject.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/paths.html b/core/paths.html new file mode 100644 index 0000000..ded4767 --- /dev/null +++ b/core/paths.html @@ -0,0 +1,294 @@ + + + + + + Atomic Data Paths + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Paths

+

An Atomic Path is a string that consists of at least one URL, followed by one or more URLs or Shortnames. +Every single value in an Atomic Resource can be targeted through such a Path. +They can be used as identifiers for specific Values.

+

The simplest path, is the URL of a resource, which represents the entire Resource with all its properties. +If you want to target a specific atom, you can use an Atomic Path with a second URL. +This second URL can be replaced by a Shortname, if the Resource is an instance of a class which has properties with that Shortname (sounds more complicated than it is).

+

Example

+

Let's start with this simple Resource:

+
{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+}
+
+

Then the following Path targets the McLovin value:

+

https://example.com/john https://example.com/lastName => McLovin

+

Instead of using the full URL of the lastName Property, we can use its shortname:

+

https://example.com/john lastname => McLovin

+

We can also traverse relationships between resources:

+
[{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+  "https://example.com/employer": "https://example.com/XCorp",
+},{
+  "@id": "https://example.com/XCorp",
+  "https://example.com/description": "The greatest company!",
+}]
+
+

https://example.com/john employer description => The greatest company!

+

In the example above, the XCorp subject exists and is the source of the The greatest company! value. +We can use this path as a unique identifier for the description of John's current employer. +Note that the data for the description of that employer does not have to be in John's control for this path to work - it can live on a totally different server. +However, in Atomic Data it's also possible to include this description in the resource of John as a Nested Resource.

+

Nested Resources

+

All Atomic Data Resources that we've discussed so far have an explicit URL as a subject. +Unfortunately, creating unique and resolvable URLs can be a bother, and sometimes not necessary. +If you've worked with RDF, this is what Blank Nodes are used for. +In Atomic Data, we have something similar: Nested Resources.

+

Let's use a Nested Resource in the example from the previous section:

+
{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+  "https://example.com/employer": {
+    "https://example.com/description": "The greatest company!",
+  }
+}
+
+

Now the employer is simply a nested Object. +Note that it no longer has its own @id. +However, we can still identify this Nested Resource using its Path.

+

The Subject of the nested resource is its path: https://example.com/john https://example.com/employer, including the spacebar.

+

Note that the path from before still resolves:

+

https://example.com/john employer description => The greatest company!

+

Traversing Arrays

+

We can also navigate Arrays using paths.

+

For example:

+
{
+  "@id": "https://example.com/john",
+  "hasShoes": [
+    {
+      "https://example.com/name": "Mr. Boot",
+    },
+    {
+      "https://example.com/name": "Sunny Sandals",
+    }
+  ]
+}
+
+

The Path of Mr. Boot is:

+
https://example.com/john hasShoes 0 name
+
+

You can target an item in an array by using a number to indicate its position, starting with 0.

+

Notice how the Resource with the name: Mr. Boot does not have an explicit @id, but it does have a Path. +This means that we still have a unique, globally resolvable identifier - yay!

+

Try for yourself

+

Install the atomic-cli software and run atomic-cli get https://atomicdata.dev/classes/Class description.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/querying.html b/core/querying.html new file mode 100644 index 0000000..2809d8f --- /dev/null +++ b/core/querying.html @@ -0,0 +1,261 @@ + + + + + + Querying Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Querying Atomic Data

+

There are multiple ways of getting Atomic Data into some system:

+
    +
  • Subject Fetching requests a single subject right from its source
  • +
  • Atomic Collections can filter, sort and paginate resources
  • +
  • Atomic Paths is a simple way to traverse Atomic Graphs and target specific values
  • +
  • Triple Pattern Fragments allows querying for specific (combinations of) Subject, Property and Value.
  • +
  • SPARQL is a powerful Query language for traversing linked data graphs
  • +
+

Subject fetching (HTTP)

+

The simplest way of getting Atomic Data when the Subject is an HTTP URL, is by sending a GET request to the subject URL. +Set the Content-Type header to an Atomic Data compatible mime type, such as application/ad+json.

+
GET https://atomicdata.dev/test HTTP/1.1
+Content-Type: application/ad+json
+
+

The server SHOULD respond with all the Atoms of which the requested URL is the subject:

+
HTTP/1.1 200 OK
+Content-Type: application/ad+json
+Connection: Closed
+
+{
+  "@id": "https://atomicdata.dev/test",
+  "https://atomicdata.dev/properties/shortname": "1611489928"
+}
+
+

The server MAY also include other resources, if they are deemed relevant.

+

Atomic Collections

+

Collections are Resources that provide simple query options, such as filtering by Property or Value, and sorting. +They also paginate resources. +Under the hood, Collections are powered by Triple Pattern Fragments. +Use query parameters to traverse pages, filter, or sort.

+

Read more about Collections

+

Atomic Paths

+

An Atomic Path is a string that consist of one or more URLs, which when traversed point to an item.

+

Read more about Atomic Paths

+

SPARQL

+

SPARQL is a powerful RDF query language. +Since all Atomic Data is also valid RDF, it should be possible to query Atomic Data using SPARQL. +None of the exsisting implementations support a SPARQL endpoint, though.

+
    +
  • Convert / serialize Atomic Data to RDF (for example by using an accept header: curl -i -H "Accept: text/turtle" "https://atomicdata.dev")
  • +
  • Load it into a SPARQL engine of your choice
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/serialization.html b/core/serialization.html new file mode 100644 index 0000000..864669b --- /dev/null +++ b/core/serialization.html @@ -0,0 +1,290 @@ + + + + + + Serialization of Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Serialization of Atomic Data

+

Atomic Data is not necessarily bound to a single serialization format. +It's fundamentally a data model, and that's an important distinction to make. +It can be serialized in different ways, but there is only one required: JSON-AD.

+

JSON-AD

+

JSON-AD (more about that on the next page) is specifically designed to be a simple, complete and performant format for Atomic Data.

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/parent": "https://atomicdata.dev/properties",
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

Read more about JSON-AD

+

JSON (simple)

+

Atomic Data is designed to be serializable to clean, simple JSON, for usage in (client) apps that don't need to know the full URLs of properties.

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "parent": "https://atomicdata.dev/properties",
+  "shortname": "description"
+}
+
+

Read more about JSON and Atomic Data

+

RDF serialization formats

+

Since Atomic Data is a strict subset of RDF, RDF serialization formats can be used to communicate and store Atomic Data, such as N-Triples, Turtle, HexTuples, JSON-LD and other RDF serialization formats. +However, not all valid RDF is valid Atomic Data. +Atomic Data is more strict. +Read more about serializing Atomic Data to RDF in the RDF interoperability section.

+

JSON-LD:

+
{
+  "@context": {
+    "datatype": {
+      "@id": "https://atomicdata.dev/properties/datatype",
+      "@type": "@id"
+    },
+    "description": "https://atomicdata.dev/properties/description",
+    "is-a": {
+      "@container": "@list",
+      "@id": "https://atomicdata.dev/properties/isA"
+    },
+    "parent": {
+      "@id": "https://atomicdata.dev/properties/parent",
+      "@type": "@id"
+    },
+    "shortname": "https://atomicdata.dev/properties/shortname"
+  },
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "parent": "https://atomicdata.dev/properties",
+  "shortname": "description"
+}
+
+

Turtle / N-Triples:

+
<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/datatype> <https://atomicdata.dev/datatypes/markdown> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/parent> <https://atomicdata.dev/properties> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/shortname> "description"^^<https://atomicdata.dev/datatypes/slug> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/isA> "https://atomicdata.dev/classes/Property"^^<https://atomicdata.dev/datatypes/resourceArray> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/description> "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more."^^<https://atomicdata.dev/datatypes/markdown> .
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/create-json-ad.html b/create-json-ad.html new file mode 100644 index 0000000..2df49bc --- /dev/null +++ b/create-json-ad.html @@ -0,0 +1,320 @@ + + + + + + Creating a JSON-AD file - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

How to create and publish a JSON-AD file

+

JSON-AD is the default serialization format of Atomic Data. +It's just JSON, but with some extra requirements.

+

Most notably, all keys are links to Atomic Properties. +These Properties must be actually hosted somewhere on the web, so other people can visit them to read more about them.

+

Ideally, in JSON-AD, each Resource has its own @id. +This is the URL of the resource. +This means that if someone visits that @id, they should get the resource they are requesting. +That's great for people re-using your data, but as a data provider, implementing this can be a bit of a hassle. +That's why there is a different way that allows you to create Atomic Data without manually hosting every resource.

+

Creating JSON-AD without hosting individual resources yourself

+

In this section, we'll create a single JSON-AD file containing various resources. +This file can then be published, shared and stored like any other.

+

The goal of this preparation, is to ultimately import it somewhere else. +We'll be importing it to Atomic-Server. +Atomic-Server will create URLs for every single resource upon importing it. +This way, we only deal with the JSON-AD and the data structure, and we let Atomic-Server take care of hosting the data.

+

Let's create a BlogPost. +We know the fields that we need: a name and some body. +But we can't use these keys in Atomic Data, we should use URLs that point to Properties. +We can either create new Properties (see the Atomic-Server tutorial), or we can use existing ones, for example by searching on AtomicData.dev/properties.

+

Setting the first values

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+}
+
+

Adding a Class

+

Classes help others understanding what a Resource's type is, such as BlogPost or Person. +In Atomic Data, Resources can have multiple classes, so we should use an Array, like so:

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+}
+
+

Adding a Class helps people to understand the data, and it can provide guarantees to the data users about the shape of the data: they now know which fields are required or recommended. +We can also use Classes to render Forms, which can be useful when the data should be edited later. +For example, the BlogPost item

+

Using exsisting Ontologies, Classes and Ontologies

+

Ontologies are groups of concepts that describe some domain. +For example, we could have an Ontology for Blogs that links to a bunch of related Classes, such as BlogPost and Person. +Or we could have a Recipy Ontology that describes Ingredients, Steps and more.

+

At this moment, there are relatively few Classes created in Atomic Data. +You can find most on atomicdata.dev/classes.

+

So possibly the best way forward for you, is to define a Class using the Atomic Data Browser's tools for making resources.

+

Multiple items

+

If we want to have multiple items, we can simply use a JSON Array at the root, like so:

+
[{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+},{
+  "https://atomicdata.dev/properties/name": "Another blogpost",
+  "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+}]
+
+

Preventing duplication with localId

+

When we want to publish Atomic Data, we also want someone else to be able to import it. +An important thing to prevent, is data duplication. +If you're importing a list of Blog posts, for example, you'd want to only import every article once.

+

The way to preventing duplication, is by adding a localId. +This localId is used by the importer to find out if it has already imported it before. +So we, as data producers, need to make sure that our localId is unique and does not change! +We can use any type of string that we like, as long as it conforms to these requirements. +Let's use a unique slug, a short name that is often used in URLs.

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "my-first-blogpost",
+}
+
+

Describing relationships between resources using localId

+

Let's say we also want to describe the author of the BlogPost, and give them an e-mail, a profile picture and some biography. +This means we need to create a new Resource for each Author, and again have to think about the properties relevant for Author. +We'll also need to create a link from BlogPost to Author, and perhaps the other way around, too.

+

Normally, when we link things in Atomic Data, we can only use full URLs. +But, since we don't have URLs yet for our Resources, we'll need a different solution. +Again, this is where we can use localId! +We can simply refer to the localId, instead of some URL that does not exist yet.

+
[{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/author": "jon",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "my-first-blogpost",
+},{
+  "https://atomicdata.dev/properties/name": "Another blogpost",
+  "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.",
+  "https://atomicdata.dev/properties/author": "jon",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "another-blogpost",
+},{
+  "https://atomicdata.dev/properties/name": "Jon Author",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Person"],
+  "https://atomicdata.dev/properties/localId": "jon",
+}]
+
+

Importing data using Atomic Sever

+

currently under development

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/chrome.css b/css/chrome.css new file mode 100644 index 0000000..8b78255 --- /dev/null +++ b/css/chrome.css @@ -0,0 +1,606 @@ +/* CSS for UI elements (a.k.a. chrome) */ + +@import 'variables.css'; + +html { + scrollbar-color: var(--scrollbar) var(--bg); +} +#searchresults a, +.content a:link, +a:visited, +a > .hljs { + color: var(--links); +} + +/* + body-container is necessary because mobile browsers don't seem to like + overflow-x on the body tag when there is a tag. +*/ +#body-container { + /* + This is used when the sidebar pushes the body content off the side of + the screen on small screens. Without it, dragging on mobile Safari + will want to reposition the viewport in a weird way. + */ + overflow-x: clip; +} + +/* Menu Bar */ + +#menu-bar, +#menu-bar-hover-placeholder { + z-index: 101; + margin: auto calc(0px - var(--page-padding)); +} +#menu-bar { + position: relative; + display: flex; + flex-wrap: wrap; + background-color: var(--bg); + border-block-end-color: var(--bg); + border-block-end-width: 1px; + border-block-end-style: solid; +} +#menu-bar.sticky, +.js #menu-bar-hover-placeholder:hover + #menu-bar, +.js #menu-bar:hover, +.js.sidebar-visible #menu-bar { + position: -webkit-sticky; + position: sticky; + top: 0 !important; +} +#menu-bar-hover-placeholder { + position: sticky; + position: -webkit-sticky; + top: 0; + height: var(--menu-bar-height); +} +#menu-bar.bordered { + border-block-end-color: var(--table-border-color); +} +#menu-bar i, #menu-bar .icon-button { + position: relative; + padding: 0 8px; + z-index: 10; + line-height: var(--menu-bar-height); + cursor: pointer; + transition: color 0.5s; +} +@media only screen and (max-width: 420px) { + #menu-bar i, #menu-bar .icon-button { + padding: 0 5px; + } +} + +.icon-button { + border: none; + background: none; + padding: 0; + color: inherit; +} +.icon-button i { + margin: 0; +} + +.right-buttons { + margin: 0 15px; +} +.right-buttons a { + text-decoration: none; +} + +.left-buttons { + display: flex; + margin: 0 5px; +} +.no-js .left-buttons button { + display: none; +} + +.menu-title { + display: inline-block; + font-weight: 200; + font-size: 2.4rem; + line-height: var(--menu-bar-height); + text-align: center; + margin: 0; + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.js .menu-title { + cursor: pointer; +} + +.menu-bar, +.menu-bar:visited, +.nav-chapters, +.nav-chapters:visited, +.mobile-nav-chapters, +.mobile-nav-chapters:visited, +.menu-bar .icon-button, +.menu-bar a i { + color: var(--icons); +} + +.menu-bar i:hover, +.menu-bar .icon-button:hover, +.nav-chapters:hover, +.mobile-nav-chapters i:hover { + color: var(--icons-hover); +} + +/* Nav Icons */ + +.nav-chapters { + font-size: 2.5em; + text-align: center; + text-decoration: none; + + position: fixed; + top: 0; + bottom: 0; + margin: 0; + max-width: 150px; + min-width: 90px; + + display: flex; + justify-content: center; + align-content: center; + flex-direction: column; + + transition: color 0.5s, background-color 0.5s; +} + +.nav-chapters:hover { + text-decoration: none; + background-color: var(--theme-hover); + transition: background-color 0.15s, color 0.15s; +} + +.nav-wrapper { + margin-block-start: 50px; + display: none; +} + +.mobile-nav-chapters { + font-size: 2.5em; + text-align: center; + text-decoration: none; + width: 90px; + border-radius: 5px; + background-color: var(--sidebar-bg); +} + +/* Only Firefox supports flow-relative values */ +.previous { float: left; } +[dir=rtl] .previous { float: right; } + +/* Only Firefox supports flow-relative values */ +.next { + float: right; + right: var(--page-padding); +} +[dir=rtl] .next { + float: left; + right: unset; + left: var(--page-padding); +} + +/* Use the correct buttons for RTL layouts*/ +[dir=rtl] .previous i.fa-angle-left:before {content:"\f105";} +[dir=rtl] .next i.fa-angle-right:before { content:"\f104"; } + +@media only screen and (max-width: 1080px) { + .nav-wide-wrapper { display: none; } + .nav-wrapper { display: block; } +} + +/* sidebar-visible */ +@media only screen and (max-width: 1380px) { + #sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wide-wrapper { display: none; } + #sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wrapper { display: block; } +} + +/* Inline code */ + +:not(pre) > .hljs { + display: inline; + padding: 0.1em 0.3em; + border-radius: 3px; +} + +:not(pre):not(a) > .hljs { + color: var(--inline-code-color); + overflow-x: initial; +} + +a:hover > .hljs { + text-decoration: underline; +} + +pre { + position: relative; +} +pre > .buttons { + position: absolute; + z-index: 100; + right: 0px; + top: 2px; + margin: 0px; + padding: 2px 0px; + + color: var(--sidebar-fg); + cursor: pointer; + visibility: hidden; + opacity: 0; + transition: visibility 0.1s linear, opacity 0.1s linear; +} +pre:hover > .buttons { + visibility: visible; + opacity: 1 +} +pre > .buttons :hover { + color: var(--sidebar-active); + border-color: var(--icons-hover); + background-color: var(--theme-hover); +} +pre > .buttons i { + margin-inline-start: 8px; +} +pre > .buttons button { + cursor: inherit; + margin: 0px 5px; + padding: 3px 5px; + font-size: 14px; + + border-style: solid; + border-width: 1px; + border-radius: 4px; + border-color: var(--icons); + background-color: var(--theme-popup-bg); + transition: 100ms; + transition-property: color,border-color,background-color; + color: var(--icons); +} +@media (pointer: coarse) { + pre > .buttons button { + /* On mobile, make it easier to tap buttons. */ + padding: 0.3rem 1rem; + } + + .sidebar-resize-indicator { + /* Hide resize indicator on devices with limited accuracy */ + display: none; + } +} +pre > code { + display: block; + padding: 1rem; +} + +/* FIXME: ACE editors overlap their buttons because ACE does absolute + positioning within the code block which breaks padding. The only solution I + can think of is to move the padding to the outer pre tag (or insert a div + wrapper), but that would require fixing a whole bunch of CSS rules. +*/ +.hljs.ace_editor { + padding: 0rem 0rem; +} + +pre > .result { + margin-block-start: 10px; +} + +/* Search */ + +#searchresults a { + text-decoration: none; +} + +mark { + border-radius: 2px; + padding-block-start: 0; + padding-block-end: 1px; + padding-inline-start: 3px; + padding-inline-end: 3px; + margin-block-start: 0; + margin-block-end: -1px; + margin-inline-start: -3px; + margin-inline-end: -3px; + background-color: var(--search-mark-bg); + transition: background-color 300ms linear; + cursor: pointer; +} + +mark.fade-out { + background-color: rgba(0,0,0,0) !important; + cursor: auto; +} + +.searchbar-outer { + margin-inline-start: auto; + margin-inline-end: auto; + max-width: var(--content-max-width); +} + +#searchbar { + width: 100%; + margin-block-start: 5px; + margin-block-end: 0; + margin-inline-start: auto; + margin-inline-end: auto; + padding: 10px 16px; + transition: box-shadow 300ms ease-in-out; + border: 1px solid var(--searchbar-border-color); + border-radius: 3px; + background-color: var(--searchbar-bg); + color: var(--searchbar-fg); +} +#searchbar:focus, +#searchbar.active { + box-shadow: 0 0 3px var(--searchbar-shadow-color); +} + +.searchresults-header { + font-weight: bold; + font-size: 1em; + padding-block-start: 18px; + padding-block-end: 0; + padding-inline-start: 5px; + padding-inline-end: 0; + color: var(--searchresults-header-fg); +} + +.searchresults-outer { + margin-inline-start: auto; + margin-inline-end: auto; + max-width: var(--content-max-width); + border-block-end: 1px dashed var(--searchresults-border-color); +} + +ul#searchresults { + list-style: none; + padding-inline-start: 20px; +} +ul#searchresults li { + margin: 10px 0px; + padding: 2px; + border-radius: 2px; +} +ul#searchresults li.focus { + background-color: var(--searchresults-li-bg); +} +ul#searchresults span.teaser { + display: block; + clear: both; + margin-block-start: 5px; + margin-block-end: 0; + margin-inline-start: 20px; + margin-inline-end: 0; + font-size: 0.8em; +} +ul#searchresults span.teaser em { + font-weight: bold; + font-style: normal; +} + +/* Sidebar */ + +.sidebar { + position: fixed; + left: 0; + top: 0; + bottom: 0; + width: var(--sidebar-width); + font-size: 0.875em; + box-sizing: border-box; + -webkit-overflow-scrolling: touch; + overscroll-behavior-y: contain; + background-color: var(--sidebar-bg); + color: var(--sidebar-fg); +} +[dir=rtl] .sidebar { left: unset; right: 0; } +.sidebar-resizing { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.no-js .sidebar, +.js:not(.sidebar-resizing) .sidebar { + transition: transform 0.3s; /* Animation: slide away */ +} +.sidebar code { + line-height: 2em; +} +.sidebar .sidebar-scrollbox { + overflow-y: auto; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + padding: 10px 10px; +} +.sidebar .sidebar-resize-handle { + position: absolute; + cursor: col-resize; + width: 0; + right: calc(var(--sidebar-resize-indicator-width) * -1); + top: 0; + bottom: 0; + display: flex; + align-items: center; +} + +.sidebar-resize-handle .sidebar-resize-indicator { + width: 100%; + height: 12px; + background-color: var(--icons); + margin-inline-start: var(--sidebar-resize-indicator-space); +} + +[dir=rtl] .sidebar .sidebar-resize-handle { + left: calc(var(--sidebar-resize-indicator-width) * -1); + right: unset; +} +.js .sidebar .sidebar-resize-handle { + cursor: col-resize; + width: calc(var(--sidebar-resize-indicator-width) - var(--sidebar-resize-indicator-space)); +} +/* sidebar-hidden */ +#sidebar-toggle-anchor:not(:checked) ~ .sidebar { + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); + z-index: -1; +} +[dir=rtl] #sidebar-toggle-anchor:not(:checked) ~ .sidebar { + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); +} +.sidebar::-webkit-scrollbar { + background: var(--sidebar-bg); +} +.sidebar::-webkit-scrollbar-thumb { + background: var(--scrollbar); +} + +/* sidebar-visible */ +#sidebar-toggle-anchor:checked ~ .page-wrapper { + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); +} +[dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); +} +@media only screen and (min-width: 620px) { + #sidebar-toggle-anchor:checked ~ .page-wrapper { + transform: none; + margin-inline-start: calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width)); + } + [dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { + transform: none; + } +} + +.chapter { + list-style: none outside none; + padding-inline-start: 0; + line-height: 2.2em; +} + +.chapter ol { + width: 100%; +} + +.chapter li { + display: flex; + color: var(--sidebar-non-existant); +} +.chapter li a { + display: block; + padding: 0; + text-decoration: none; + color: var(--sidebar-fg); +} + +.chapter li a:hover { + color: var(--sidebar-active); +} + +.chapter li a.active { + color: var(--sidebar-active); +} + +.chapter li > a.toggle { + cursor: pointer; + display: block; + margin-inline-start: auto; + padding: 0 10px; + user-select: none; + opacity: 0.68; +} + +.chapter li > a.toggle div { + transition: transform 0.5s; +} + +/* collapse the section */ +.chapter li:not(.expanded) + li > ol { + display: none; +} + +.chapter li.chapter-item { + line-height: 1.5em; + margin-block-start: 0.6em; +} + +.chapter li.expanded > a.toggle div { + transform: rotate(90deg); +} + +.spacer { + width: 100%; + height: 3px; + margin: 5px 0px; +} +.chapter .spacer { + background-color: var(--sidebar-spacer); +} + +@media (-moz-touch-enabled: 1), (pointer: coarse) { + .chapter li a { padding: 5px 0; } + .spacer { margin: 10px 0; } +} + +.section { + list-style: none outside none; + padding-inline-start: 20px; + line-height: 1.9em; +} + +/* Theme Menu Popup */ + +.theme-popup { + position: absolute; + left: 10px; + top: var(--menu-bar-height); + z-index: 1000; + border-radius: 4px; + font-size: 0.7em; + color: var(--fg); + background: var(--theme-popup-bg); + border: 1px solid var(--theme-popup-border); + margin: 0; + padding: 0; + list-style: none; + display: none; + /* Don't let the children's background extend past the rounded corners. */ + overflow: hidden; +} +[dir=rtl] .theme-popup { left: unset; right: 10px; } +.theme-popup .default { + color: var(--icons); +} +.theme-popup .theme { + width: 100%; + border: 0; + margin: 0; + padding: 2px 20px; + line-height: 25px; + white-space: nowrap; + text-align: start; + cursor: pointer; + color: inherit; + background: inherit; + font-size: inherit; +} +.theme-popup .theme:hover { + background-color: var(--theme-hover); +} + +.theme-selected::before { + display: inline-block; + content: "✓"; + margin-inline-start: -14px; + width: 14px; +} diff --git a/css/general.css b/css/general.css new file mode 100644 index 0000000..e7d20da --- /dev/null +++ b/css/general.css @@ -0,0 +1,234 @@ +/* Base styles and content styles */ + +@import 'variables.css'; + +:root { + /* Browser default font-size is 16px, this way 1 rem = 10px */ + font-size: 62.5%; + color-scheme: var(--color-scheme); +} + +html { + font-family: "Open Sans", sans-serif; + color: var(--fg); + background-color: var(--bg); + text-size-adjust: none; + -webkit-text-size-adjust: none; +} + +body { + margin: 0; + font-size: 1.6rem; + overflow-x: hidden; +} + +code { + font-family: var(--mono-font) !important; + font-size: var(--code-font-size); + direction: ltr !important; +} + +/* make long words/inline code not x overflow */ +main { + overflow-wrap: break-word; +} + +/* make wide tables scroll if they overflow */ +.table-wrapper { + overflow-x: auto; +} + +/* Don't change font size in headers. */ +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + font-size: unset; +} + +.left { float: left; } +.right { float: right; } +.boring { opacity: 0.6; } +.hide-boring .boring { display: none; } +.hidden { display: none !important; } + +h2, h3 { margin-block-start: 2.5em; } +h4, h5 { margin-block-start: 2em; } + +.header + .header h3, +.header + .header h4, +.header + .header h5 { + margin-block-start: 1em; +} + +h1:target::before, +h2:target::before, +h3:target::before, +h4:target::before, +h5:target::before, +h6:target::before { + display: inline-block; + content: "»"; + margin-inline-start: -30px; + width: 30px; +} + +/* This is broken on Safari as of version 14, but is fixed + in Safari Technology Preview 117 which I think will be Safari 14.2. + https://bugs.webkit.org/show_bug.cgi?id=218076 +*/ +:target { + /* Safari does not support logical properties */ + scroll-margin-top: calc(var(--menu-bar-height) + 0.5em); +} + +.page { + outline: 0; + padding: 0 var(--page-padding); + margin-block-start: calc(0px - var(--menu-bar-height)); /* Compensate for the #menu-bar-hover-placeholder */ +} +.page-wrapper { + box-sizing: border-box; + background-color: var(--bg); +} +.no-js .page-wrapper, +.js:not(.sidebar-resizing) .page-wrapper { + transition: margin-left 0.3s ease, transform 0.3s ease; /* Animation: slide away */ +} +[dir=rtl] .js:not(.sidebar-resizing) .page-wrapper { + transition: margin-right 0.3s ease, transform 0.3s ease; /* Animation: slide away */ +} + +.content { + overflow-y: auto; + padding: 0 5px 50px 5px; +} +.content main { + margin-inline-start: auto; + margin-inline-end: auto; + max-width: var(--content-max-width); +} +.content p { line-height: 1.45em; } +.content ol { line-height: 1.45em; } +.content ul { line-height: 1.45em; } +.content a { text-decoration: none; } +.content a:hover { text-decoration: underline; } +.content img, .content video { max-width: 100%; } +.content .header:link, +.content .header:visited { + color: var(--fg); +} +.content .header:link, +.content .header:visited:hover { + text-decoration: none; +} + +table { + margin: 0 auto; + border-collapse: collapse; +} +table td { + padding: 3px 20px; + border: 1px var(--table-border-color) solid; +} +table thead { + background: var(--table-header-bg); +} +table thead td { + font-weight: 700; + border: none; +} +table thead th { + padding: 3px 20px; +} +table thead tr { + border: 1px var(--table-header-bg) solid; +} +/* Alternate background colors for rows */ +table tbody tr:nth-child(2n) { + background: var(--table-alternate-bg); +} + + +blockquote { + margin: 20px 0; + padding: 0 20px; + color: var(--fg); + background-color: var(--quote-bg); + border-block-start: .1em solid var(--quote-border); + border-block-end: .1em solid var(--quote-border); +} + +.warning { + margin: 20px; + padding: 0 20px; + border-inline-start: 2px solid var(--warning-border); +} + +.warning:before { + position: absolute; + width: 3rem; + height: 3rem; + margin-inline-start: calc(-1.5rem - 21px); + content: "ⓘ"; + text-align: center; + background-color: var(--bg); + color: var(--warning-border); + font-weight: bold; + font-size: 2rem; +} + +blockquote .warning:before { + background-color: var(--quote-bg); +} + +kbd { + background-color: var(--table-border-color); + border-radius: 4px; + border: solid 1px var(--theme-popup-border); + box-shadow: inset 0 -1px 0 var(--theme-hover); + display: inline-block; + font-size: var(--code-font-size); + font-family: var(--mono-font); + line-height: 10px; + padding: 4px 5px; + vertical-align: middle; +} + +:not(.footnote-definition) + .footnote-definition, +.footnote-definition + :not(.footnote-definition) { + margin-block-start: 2em; +} +.footnote-definition { + font-size: 0.9em; + margin: 0.5em 0; +} +.footnote-definition p { + display: inline; +} + +.tooltiptext { + position: absolute; + visibility: hidden; + color: #fff; + background-color: #333; + transform: translateX(-50%); /* Center by moving tooltip 50% of its width left */ + left: -8px; /* Half of the width of the icon */ + top: -35px; + font-size: 0.8em; + text-align: center; + border-radius: 6px; + padding: 5px 8px; + margin: 5px; + z-index: 1000; +} +.tooltipped .tooltiptext { + visibility: visible; +} + +.chapter li.part-title { + color: var(--sidebar-fg); + margin: 5px 0px; + font-weight: bold; +} + +.result-no-output { + font-style: italic; +} diff --git a/css/print.css b/css/print.css new file mode 100644 index 0000000..80ec3a5 --- /dev/null +++ b/css/print.css @@ -0,0 +1,50 @@ + +#sidebar, +#menu-bar, +.nav-chapters, +.mobile-nav-chapters { + display: none; +} + +#page-wrapper.page-wrapper { + transform: none !important; + margin-inline-start: 0px; + overflow-y: initial; +} + +#content { + max-width: none; + margin: 0; + padding: 0; +} + +.page { + overflow-y: initial; +} + +code { + direction: ltr !important; +} + +pre > .buttons { + z-index: 2; +} + +a, a:visited, a:active, a:hover { + color: #4183c4; + text-decoration: none; +} + +h1, h2, h3, h4, h5, h6 { + page-break-inside: avoid; + page-break-after: avoid; +} + +pre, code { + page-break-inside: avoid; + white-space: pre-wrap; +} + +.fa { + display: none !important; +} diff --git a/css/variables.css b/css/variables.css new file mode 100644 index 0000000..0da55e8 --- /dev/null +++ b/css/variables.css @@ -0,0 +1,279 @@ + +/* Globals */ + +:root { + --sidebar-width: 300px; + --sidebar-resize-indicator-width: 8px; + --sidebar-resize-indicator-space: 2px; + --page-padding: 15px; + --content-max-width: 750px; + --menu-bar-height: 50px; + --mono-font: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace, monospace; + --code-font-size: 0.875em /* please adjust the ace font size accordingly in editor.js */ +} + +/* Themes */ + +.ayu { + --bg: hsl(210, 25%, 8%); + --fg: #c5c5c5; + + --sidebar-bg: #14191f; + --sidebar-fg: #c8c9db; + --sidebar-non-existant: #5c6773; + --sidebar-active: #ffb454; + --sidebar-spacer: #2d334f; + + --scrollbar: var(--sidebar-fg); + + --icons: #737480; + --icons-hover: #b7b9cc; + + --links: #0096cf; + + --inline-code-color: #ffb454; + + --theme-popup-bg: #14191f; + --theme-popup-border: #5c6773; + --theme-hover: #191f26; + + --quote-bg: hsl(226, 15%, 17%); + --quote-border: hsl(226, 15%, 22%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(210, 25%, 13%); + --table-header-bg: hsl(210, 25%, 28%); + --table-alternate-bg: hsl(210, 25%, 11%); + + --searchbar-border-color: #848484; + --searchbar-bg: #424242; + --searchbar-fg: #fff; + --searchbar-shadow-color: #d4c89f; + --searchresults-header-fg: #666; + --searchresults-border-color: #888; + --searchresults-li-bg: #252932; + --search-mark-bg: #e3b171; + + --color-scheme: dark; +} + +.coal { + --bg: hsl(200, 7%, 8%); + --fg: #98a3ad; + + --sidebar-bg: #292c2f; + --sidebar-fg: #a1adb8; + --sidebar-non-existant: #505254; + --sidebar-active: #3473ad; + --sidebar-spacer: #393939; + + --scrollbar: var(--sidebar-fg); + + --icons: #43484d; + --icons-hover: #b3c0cc; + + --links: #2b79a2; + + --inline-code-color: #c5c8c6; + + --theme-popup-bg: #141617; + --theme-popup-border: #43484d; + --theme-hover: #1f2124; + + --quote-bg: hsl(234, 21%, 18%); + --quote-border: hsl(234, 21%, 23%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(200, 7%, 13%); + --table-header-bg: hsl(200, 7%, 28%); + --table-alternate-bg: hsl(200, 7%, 11%); + + --searchbar-border-color: #aaa; + --searchbar-bg: #b7b7b7; + --searchbar-fg: #000; + --searchbar-shadow-color: #aaa; + --searchresults-header-fg: #666; + --searchresults-border-color: #98a3ad; + --searchresults-li-bg: #2b2b2f; + --search-mark-bg: #355c7d; + + --color-scheme: dark; +} + +.light { + --bg: hsl(0, 0%, 100%); + --fg: hsl(0, 0%, 0%); + + --sidebar-bg: #fafafa; + --sidebar-fg: hsl(0, 0%, 0%); + --sidebar-non-existant: #aaaaaa; + --sidebar-active: #1f1fff; + --sidebar-spacer: #f4f4f4; + + --scrollbar: #8F8F8F; + + --icons: #747474; + --icons-hover: #000000; + + --links: #20609f; + + --inline-code-color: #301900; + + --theme-popup-bg: #fafafa; + --theme-popup-border: #cccccc; + --theme-hover: #e6e6e6; + + --quote-bg: hsl(197, 37%, 96%); + --quote-border: hsl(197, 37%, 91%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(0, 0%, 95%); + --table-header-bg: hsl(0, 0%, 80%); + --table-alternate-bg: hsl(0, 0%, 97%); + + --searchbar-border-color: #aaa; + --searchbar-bg: #fafafa; + --searchbar-fg: #000; + --searchbar-shadow-color: #aaa; + --searchresults-header-fg: #666; + --searchresults-border-color: #888; + --searchresults-li-bg: #e4f2fe; + --search-mark-bg: #a2cff5; + + --color-scheme: light; +} + +.navy { + --bg: hsl(226, 23%, 11%); + --fg: #bcbdd0; + + --sidebar-bg: #282d3f; + --sidebar-fg: #c8c9db; + --sidebar-non-existant: #505274; + --sidebar-active: #2b79a2; + --sidebar-spacer: #2d334f; + + --scrollbar: var(--sidebar-fg); + + --icons: #737480; + --icons-hover: #b7b9cc; + + --links: #2b79a2; + + --inline-code-color: #c5c8c6; + + --theme-popup-bg: #161923; + --theme-popup-border: #737480; + --theme-hover: #282e40; + + --quote-bg: hsl(226, 15%, 17%); + --quote-border: hsl(226, 15%, 22%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(226, 23%, 16%); + --table-header-bg: hsl(226, 23%, 31%); + --table-alternate-bg: hsl(226, 23%, 14%); + + --searchbar-border-color: #aaa; + --searchbar-bg: #aeaec6; + --searchbar-fg: #000; + --searchbar-shadow-color: #aaa; + --searchresults-header-fg: #5f5f71; + --searchresults-border-color: #5c5c68; + --searchresults-li-bg: #242430; + --search-mark-bg: #a2cff5; + + --color-scheme: dark; +} + +.rust { + --bg: hsl(60, 9%, 87%); + --fg: #262625; + + --sidebar-bg: #3b2e2a; + --sidebar-fg: #c8c9db; + --sidebar-non-existant: #505254; + --sidebar-active: #e69f67; + --sidebar-spacer: #45373a; + + --scrollbar: var(--sidebar-fg); + + --icons: #737480; + --icons-hover: #262625; + + --links: #2b79a2; + + --inline-code-color: #6e6b5e; + + --theme-popup-bg: #e1e1db; + --theme-popup-border: #b38f6b; + --theme-hover: #99908a; + + --quote-bg: hsl(60, 5%, 75%); + --quote-border: hsl(60, 5%, 70%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(60, 9%, 82%); + --table-header-bg: #b3a497; + --table-alternate-bg: hsl(60, 9%, 84%); + + --searchbar-border-color: #aaa; + --searchbar-bg: #fafafa; + --searchbar-fg: #000; + --searchbar-shadow-color: #aaa; + --searchresults-header-fg: #666; + --searchresults-border-color: #888; + --searchresults-li-bg: #dec2a2; + --search-mark-bg: #e69f67; + + --color-scheme: light; +} + +@media (prefers-color-scheme: dark) { + .light.no-js { + --bg: hsl(200, 7%, 8%); + --fg: #98a3ad; + + --sidebar-bg: #292c2f; + --sidebar-fg: #a1adb8; + --sidebar-non-existant: #505254; + --sidebar-active: #3473ad; + --sidebar-spacer: #393939; + + --scrollbar: var(--sidebar-fg); + + --icons: #43484d; + --icons-hover: #b3c0cc; + + --links: #2b79a2; + + --inline-code-color: #c5c8c6; + + --theme-popup-bg: #141617; + --theme-popup-border: #43484d; + --theme-hover: #1f2124; + + --quote-bg: hsl(234, 21%, 18%); + --quote-border: hsl(234, 21%, 23%); + + --warning-border: #ff8e00; + + --table-border-color: hsl(200, 7%, 13%); + --table-header-bg: hsl(200, 7%, 28%); + --table-alternate-bg: hsl(200, 7%, 11%); + + --searchbar-border-color: #aaa; + --searchbar-bg: #b7b7b7; + --searchbar-fg: #000; + --searchbar-shadow-color: #aaa; + --searchresults-header-fg: #666; + --searchresults-border-color: #98a3ad; + --searchresults-li-bg: #2b2b2f; + --search-mark-bg: #355c7d; + } +} diff --git a/elasticlunr.min.js b/elasticlunr.min.js new file mode 100644 index 0000000..94b20dd --- /dev/null +++ b/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.5 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o + + + + + Atomic Data Endpoints - describe how RESTful HTTP APIs behave + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Endpoints

+

URL: https://atomicdata.dev/classes/Endpoint

+

An Endpoint is a resource that accepts parameters in order to generate a response. +You can think of it like a function in a programming language, or a API endpoint in an OpenAPI spec. +It can be used to perform calculations on the server side, such as filtering data, sorting data, selecting a page in a collection, or performing some calculation. +Because Endpoints are resources, they can be defined and read programmatically. +This means that it's possible to render Endpoints as forms.

+

The most important property in an Endpoint is parameters, which is the list of Properties that can be filled in.

+

You can find a list of Endpoints supported by Atomic-Server on atomicdata.dev/endpoints.

+

Endpoint Resources are dynamic, because their properties could be calculated server-side. +When a Property tends to be calculated server-side, they will have a isDynamic property set to true, which tells the client that it's probably useless to try to overwrite it.

+

Incomplete resources

+

A Server can also send one or more partial Resources for an Endpoint to the client, which means that some properties may be missing. +When this is the case, the Resource will have an incomplete property set to true. +This tells the client that it has to individually fetch the resource from the server to get the full body.

+

One scenario where this happens, is when fetching Collections that have other Collections as members. +If we would not have incomplete resources, the server would have to perform expensive computations even if the data is not needed by the client.

+

Design Goals

+
    +
  • Familiar API: should look like something that most developers already know
  • +
  • Auto-generate forms: a front-end app should present Endpoints as forms that non-developers can interact with
  • +
+

(Discussion)

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/atomic-fs/people/john.afd b/examples/atomic-fs/people/john.afd deleted file mode 100644 index 7a072df..0000000 --- a/examples/atomic-fs/people/john.afd +++ /dev/null @@ -1,14 +0,0 @@ -# This format should allow for comments like these, since it's meant to be a human to machine language. -# Should values require quotes? Or only if its multi-line? -firstName: John -lastName: McLovin -# If a Property is not available in the Class, you can the URL of the property -https://schema.org/birthDate: 1991-01-20 -# Perhaps support relative paths -bestFriend: ./mary -# This is a TranslationBox -# It actually represents a new Resource with a unique URL -# Its URL can be generated deterministically by using the Shortname of the Property -lifeStory: - en: "John was born some day, and he will die some day!" - nl: "John was ooit geboren, en hij zal ooit sterven!" diff --git a/examples/atomic-fs/people/mary.afd b/examples/atomic-fs/people/mary.afd deleted file mode 100644 index ea5a044..0000000 --- a/examples/atomic-fs/people/mary.afd +++ /dev/null @@ -1,3 +0,0 @@ -firstName: Mary -lastName: Amberson -birthDate: 1993-10-13 diff --git a/extended.html b/extended.html new file mode 100644 index 0000000..6cd1c73 --- /dev/null +++ b/extended.html @@ -0,0 +1,234 @@ + + + + + + Atomic Data Extended specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data Extended

+

Atomic Data is a modular specification, which means that you can choose to implement parts of it. +All parts of Extended are optional to implement. +The Core of the specification (described in the previous chapter) is required for all of the Extended spec to work, but not the other way around.

+

However, many of the parts of Extended do depend on eachother.

+
    +
  • Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions.
  • +
  • Agents are Users that enable authentication. They are Resources with their own Public and Private keys, which they use to identify themselves.
  • +
  • Collections: querying, filtering, sorting and pagination.
  • +
  • Paths: traverse graphs.
  • +
  • Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems.
  • +
  • Invites: create new users and provide them with rights.
  • +
  • WebSockets: real-time updates.
  • +
  • Endpoints: provide machine-readable descriptions of web services.
  • +
  • Files: upload, download and metadata for files.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/favicon.png b/favicon.png similarity index 100% rename from theme/favicon.png rename to favicon.png diff --git a/theme/favicon.svg b/favicon.svg similarity index 100% rename from theme/favicon.svg rename to favicon.svg diff --git a/files.html b/files.html new file mode 100644 index 0000000..bed2ee6 --- /dev/null +++ b/files.html @@ -0,0 +1,244 @@ + + + + + + Uploading, downloading and describing files with Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Uploading, downloading and describing files with Atomic Data

+

The Atomic Data model (Atomic Schema) is great for describing structured data, but for many types of existing data, we already have a different way to represent them: files. +In Atomic Data, files have two URLs. +One describes the file and its metadata, and the other is a URL that downloads the file. +This allows us to present a better view when a user wants to take a look at some file, and learn about its context before downloading it.

+

The File class

+

url: https://atomicdata.dev/classes/File

+

Files always have a downloadURL. +They often also have a filename, a filesize, a checksum, a mimetype, and an internal ID (more on that later). +They also often have a parent, which can be used to set permissions / rights.

+

Uploading a file

+

In atomic-server, a /upload endpoint exists for uploading a file.

+
    +
  • Decide where you want to add the file in the hierarchy of your server. You can add a file to any resource - your file will refer to this resource as its parent. Make sure you have write rights on this parent.
  • +
  • Use that parent to add a query parameter to the server's /upload endpoint, e.g. /upload?parent=https%3A%2F%2Fatomicdata.dev%2Ffiles.
  • +
  • Send an HTTP POST request to the server's /upload endpoint containing multi-part-form-data. You can upload multiple files in one request. Add authentication headers, and sign the HTTP request with the
  • +
  • The server will check your authentication headers, your permissions, and will persist your uploaded file(s). It will now create File resources.
  • +
  • The server will reply with an array of created Atomic Data Files
  • +
+

Downloading a file

+

Simply send an HTTP GET request to the File's download-url (make sure to authenticate this request).

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/OPEN-SANS-LICENSE.txt b/fonts/OPEN-SANS-LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/fonts/OPEN-SANS-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/fonts/SOURCE-CODE-PRO-LICENSE.txt b/fonts/SOURCE-CODE-PRO-LICENSE.txt new file mode 100644 index 0000000..366206f --- /dev/null +++ b/fonts/SOURCE-CODE-PRO-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/fonts.css b/fonts/fonts.css new file mode 100644 index 0000000..858efa5 --- /dev/null +++ b/fonts/fonts.css @@ -0,0 +1,100 @@ +/* Open Sans is licensed under the Apache License, Version 2.0. See http://www.apache.org/licenses/LICENSE-2.0 */ +/* Source Code Pro is under the Open Font License. See https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL */ + +/* open-sans-300 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), + url('open-sans-v17-all-charsets-300.woff2') format('woff2'); +} + +/* open-sans-300italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: local('Open Sans Light Italic'), local('OpenSans-LightItalic'), + url('open-sans-v17-all-charsets-300italic.woff2') format('woff2'); +} + +/* open-sans-regular - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), + url('open-sans-v17-all-charsets-regular.woff2') format('woff2'); +} + +/* open-sans-italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans Italic'), local('OpenSans-Italic'), + url('open-sans-v17-all-charsets-italic.woff2') format('woff2'); +} + +/* open-sans-600 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'), + url('open-sans-v17-all-charsets-600.woff2') format('woff2'); +} + +/* open-sans-600italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: local('Open Sans SemiBold Italic'), local('OpenSans-SemiBoldItalic'), + url('open-sans-v17-all-charsets-600italic.woff2') format('woff2'); +} + +/* open-sans-700 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), + url('open-sans-v17-all-charsets-700.woff2') format('woff2'); +} + +/* open-sans-700italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), + url('open-sans-v17-all-charsets-700italic.woff2') format('woff2'); +} + +/* open-sans-800 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'), + url('open-sans-v17-all-charsets-800.woff2') format('woff2'); +} + +/* open-sans-800italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + src: local('Open Sans ExtraBold Italic'), local('OpenSans-ExtraBoldItalic'), + url('open-sans-v17-all-charsets-800italic.woff2') format('woff2'); +} + +/* source-code-pro-500 - latin_vietnamese_latin-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-family: 'Source Code Pro'; + font-style: normal; + font-weight: 500; + src: url('source-code-pro-v11-all-charsets-500.woff2') format('woff2'); +} diff --git a/fonts/open-sans-v17-all-charsets-300.woff2 b/fonts/open-sans-v17-all-charsets-300.woff2 new file mode 100644 index 0000000..9f51be3 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-300.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-300italic.woff2 b/fonts/open-sans-v17-all-charsets-300italic.woff2 new file mode 100644 index 0000000..2f54544 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-300italic.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-600.woff2 b/fonts/open-sans-v17-all-charsets-600.woff2 new file mode 100644 index 0000000..f503d55 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-600.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-600italic.woff2 b/fonts/open-sans-v17-all-charsets-600italic.woff2 new file mode 100644 index 0000000..c99aabe Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-600italic.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-700.woff2 b/fonts/open-sans-v17-all-charsets-700.woff2 new file mode 100644 index 0000000..421a1ab Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-700.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-700italic.woff2 b/fonts/open-sans-v17-all-charsets-700italic.woff2 new file mode 100644 index 0000000..12ce3d2 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-700italic.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-800.woff2 b/fonts/open-sans-v17-all-charsets-800.woff2 new file mode 100644 index 0000000..c94a223 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-800.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-800italic.woff2 b/fonts/open-sans-v17-all-charsets-800italic.woff2 new file mode 100644 index 0000000..eed7d3c Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-800italic.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-italic.woff2 b/fonts/open-sans-v17-all-charsets-italic.woff2 new file mode 100644 index 0000000..398b68a Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-italic.woff2 differ diff --git a/fonts/open-sans-v17-all-charsets-regular.woff2 b/fonts/open-sans-v17-all-charsets-regular.woff2 new file mode 100644 index 0000000..8383e94 Binary files /dev/null and b/fonts/open-sans-v17-all-charsets-regular.woff2 differ diff --git a/fonts/source-code-pro-v11-all-charsets-500.woff2 b/fonts/source-code-pro-v11-all-charsets-500.woff2 new file mode 100644 index 0000000..7222456 Binary files /dev/null and b/fonts/source-code-pro-v11-all-charsets-500.woff2 differ diff --git a/get-involved.html b/get-involved.html new file mode 100644 index 0000000..d11a7b5 --- /dev/null +++ b/get-involved.html @@ -0,0 +1,229 @@ + + + + + + Atomic Data - Get Involved + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Get involved

+

Atomic Data is an open specification, and that means that you're very welcome to share your thoughts and help make this standard as good as possible.

+

Things you can do:

+ +

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..1531473 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,262 @@ + + + + + + Atomic Data Hierarchy, rights and authorization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Hierarchy, rights and authorization

+

Hierarchies help make information easier to find and understand. +For example, most websites use breadcrumbs to show you where you are. +Your computer probably has a bunch of drives and deeply nested folders that contain files. +We generally use these hierarchical elements to keep data organized, and to keep a tighter grip on rights management. +For example, sharing a specific folder with a team, but a different folder could be private.

+

Although you are free to use Atomic Data with your own custom authorization system, we have a standardized model that is currently being used by Atomic-Server.

+

Design goals

+
    +
  • Fast. Authorization can sometimes be costly, but in this model we'll be considering performance.
  • +
  • Simple. Easy to understand, easy to implement.
  • +
  • Handles most basic use-cases. Should deal with basic read / write access control, calculating the size of a folder, rendering things in a tree.
  • +
+

Atomic Hierarchy Model

+
    +
  • Every Resource SHOULD have a parent. There are some exceptions to this, which are discussed below.
  • +
  • Any Resource can be a parent of some other Resource, as long as both Resources exists on the same Atomic Server.
  • +
  • Grants / rights given in a parent also apply to all children, and their children.
  • +
  • There are few Classes that do not require parents:
  • +
+

Authorization

+
    +
  • Any Resource might have read and write Atoms. These both contain a list of Agents. These Agents will be granted the rights to edit (using Commits) or read / use the Resources.
  • +
  • Rights are additive, which means that the rights add up. If a Resource itself has no write Atom containing your Agent, but it's parent does have one, you will still get the write right.
  • +
  • Rights cannot be removed by children or parents - they can only be added.
  • +
  • Commits can not be edited. They can be read if the Agent has rights to read the subject of the Commit.
  • +
+

Top-level resources

+

Some resources are special, as they do not require a parent:

+
    +
  • Drives are top-level items in the hierarchy: they do not have a parent.
  • +
  • Agents are top-level items because they are not owned by anything. They can always read and write themselves.
  • +
  • Commits are immutable, so they should never be edited by anyone. That's why they don't have a place in the hierarchy. Their read rights are determined by their subject.
  • +
+

Authentication

+

Authentication is about proving who you are, which is often the first step for authorization. See authentication.

+

Current limitations of the Authorization model

+

The specification is growing (and please contribute in the docs repo), but the current specification lacks some features:

+
    +
  • Rights can only be added, but not removed in the hierarchy. This means that you cannot have a secret folder inside a public folder.
  • +
  • No model for representing groups of Agents, or other runtime checks for authorization. (issue)
  • +
  • No way to limit delete access or invite rights separately from write rights (issue)
  • +
  • No way to request a set of rights for a Resource
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/highlight.css b/highlight.css new file mode 100644 index 0000000..ba57b82 --- /dev/null +++ b/highlight.css @@ -0,0 +1,82 @@ +/* + * An increased contrast highlighting scheme loosely based on the + * "Base16 Atelier Dune Light" theme by Bram de Haan + * (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) + * Original Base16 color scheme by Chris Kempson + * (https://github.com/chriskempson/base16) + */ + +/* Comment */ +.hljs-comment, +.hljs-quote { + color: #575757; +} + +/* Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #d70025; +} + +/* Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #b21e00; +} + +/* Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #008200; +} + +/* Blue */ +.hljs-title, +.hljs-section { + color: #0030f2; +} + +/* Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #9d00ec; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f6f7f6; + color: #000; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-addition { + color: #22863a; + background-color: #f0fff4; +} + +.hljs-deletion { + color: #b31d28; + background-color: #ffeef0; +} diff --git a/highlight.js b/highlight.js new file mode 100644 index 0000000..3256c00 --- /dev/null +++ b/highlight.js @@ -0,0 +1,53 @@ +/* + Highlight.js 10.1.1 (93fd0d73) + License: BSD-3-Clause + Copyright (c) 2006-2020, Ivan Sagalaev +*/ +var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); +hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}()); +hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}()); +hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}()); +hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}()); +hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}()); +hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}()); +hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}()); +hljs.registerLanguage("css",function(){"use strict";return function(e){var n={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{name:"CSS",case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",illegal:/:/,returnBegin:!0,contains:[{className:"keyword",begin:/@\-?\w[\w]*(\-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:"and or not only",contains:[{begin:/[a-z-]+:/,className:"attribute"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("diff",function(){"use strict";return function(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}}()); +hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:"e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}()); +hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}()); +hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}()); +hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}()); +hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}()); +hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}()); +hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); +hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}()); +hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}()); +hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}()); +hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}()); +hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}()); +hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}()); +hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}()); +hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}()); +hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}()); +hljs.registerLanguage("python",function(){"use strict";return function(e){var n={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}()); +hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}()); +hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}()); +hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}()); +hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}()); +hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}()); +hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}()); +hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}()); +hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}()); +hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}()); +hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}()); +hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}()); +hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}()); +hljs.registerLanguage("nim",function(){"use strict";return function(e){return{name:"Nim",aliases:["nim"],keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}()); +hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}()); +hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}()); \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..42770f3 --- /dev/null +++ b/index.html @@ -0,0 +1,357 @@ + + + + + + Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

# Atomic Data Docs - Overview

+

Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety.

+

Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety

+

Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines.

+

Atomic Data has been designed with the following goals in mind:

+
    +
  • Give people more control over their data
  • +
  • Make linked data easier to use
  • +
  • Make it easier for developers to build highly interoperable apps
  • +
  • Make standardization easier and cheaper
  • +
+

Atomic Data is Linked Data, as it is a strict subset of RDF. +It is type-safe (you know if something is a string, number, date, URL, etc.) and extensible through Atomic Schema, which means that you can re-use or define your own Classes, Properties and Datatypes.

+

The default serialization format for Atomic Data is JSON-AD, which is simply JSON where each key is a URL of an Atomic Property. +These Properties are responsible for setting the datatype (to ensure type-safety) and setting shortnames (which help to keep names short, for example in JSON serialization) and descriptions (which provide semantic explanations of what a property should be used for).

+

Read more about Atomic Data Core

+

Atomic Data Extended

+

Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization.

+
    +
  • Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions.
  • +
  • Agents are Users that enable authentication. They are Resources with their own Public and Private keys, which they use to identify themselves.
  • +
  • Collections: querying, filtering, sorting and pagination.
  • +
  • Paths: traverse graphs.
  • +
  • Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems.
  • +
  • Invites: create new users and provide them with rights.
  • +
  • WebSockets: real-time updates.
  • +
  • Endpoints: provide machine-readable descriptions of web services.
  • +
  • Files: upload, download and metadata for files.
  • +
+

Atomizing: how to create, convert and host Atomic Data

+

Atomic Data has been designed to be very easy to create and host. +In the Atomizing section, we'll show you how you can create Atomic Data in three ways:

+ +

Tools & libraries

+ +

Get involved

+

Make sure to join our Discord if you'd like to discuss Atomic Data with others.

+

Status

+

Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen.

+

Reading these docs

+

This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. +That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. +If you encounter any issues while reading, please leave an issue on Github. +Use the arrows on the side / bottom to go to the next page.

+

Table of contents

+ +

Specification (core)

+ +

Specification (extended)

+ +

Create Atomic Data

+ +

Use Atomic Data

+ +
+

Acknowledgements | +Newsletter | +Get involved

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/graph-database.html b/interoperability/graph-database.html new file mode 100644 index 0000000..1a6bed0 --- /dev/null +++ b/interoperability/graph-database.html @@ -0,0 +1,271 @@ + + + + + + How does Atomic Data relate to Graph Databases? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data and Graph Databases

+

Atomic Data is fundamentally a graph data model. +We can think of Atomic Resources as nodes, and links to other resources through properties as edges.

+

In the first section, we'll take a look at Atomic-Server as a Graph Database. +After that, we'll explore how Atomic Data relates to some graph technologies.

+

Atomic-Server as a database

+
    +
  • Built-in REST. Everything is done over HTTP, there's no new query language or serialization to learn. It's all JSON.
  • +
  • All resources have HTTP URLs. This means that every single thing is identified by where it can be be found. Makes it easy to share data, if you want to!
  • +
  • Sharable and re-usable data models. Atomic Schema helps you share and re-use data models by simply pointing to URLs.
  • +
  • Authorization built-in. Managing rights in a hierarchy (similar to how tools like Google Drive or filesystems work) enable you to have a high degree of control over read / write rights.
  • +
  • Built-in easy to use GUI. Managing content on Atomic-Server can be done by anyone, as its GUI is extremely easy to use and has a ton of features.
  • +
  • Dynamic indexing. Indexes are created by performing Queries, resulting in great performance - without needing to manually configure indexing.
  • +
  • Synchronization over WebSockets. All changes (called Commits) can be synchronized over WebSockets, allowing you to build realtime collaborative tools.
  • +
  • Event-sourced. All changes are stored and reversible, giving you a full versioned history.
  • +
  • Open source. All code is MIT-licensed.
  • +
+

Comparing Atomic Data to Neo4j

+

Neo4j is a popular graph database that supports multiple query languages. +The first difference is that Atomic Data is not a single piece of software but a specification. +However, we can compare Neo4j as a product with the open source Atomic-Server. +Atomic-Server is fully open source and free (MIT licensed), whereas Neo4j is partially open source and GPL licensed.

+

Labeled Property Graph

+

The data model of Neo4j features a labeled property graph, which means that edges (relationships between nodes) can have their own properties. +This can be useful when adding data to relationship between nodes. +For example: in the john - (knows) -> mary relationship, you might want to specify for how long they have known each other. +In Neo4j, we can add this data to the labeled property graph.

+

In Atomic Data, we'd have to make a new resource to describe the relation between the two, if we wanted to add information about the relationship itself. +This is called reification. +This process can be time consuming, especially in Atomic Data, as this means that you'll have to specify the Class of this relationship and its properties. +However, one benefit of this approach, is that the relationship itself becomes clearly defined and re-usable. +Another benefit is that the simpler model of Atomic Data maps perfectly to datamodels like JSON, which makes things very convenient and familiar for developers.

+

Query language vs REST

+

Neo4j supports multiple query languages, but its mainly known for Cypher. +It is used for doing practically everything: reading, writing, modelling, and more.

+

Atomic Data on the other hand does not have a query language. +It uses a RESTful HTTP + JSON-AD approach for everything. +Atomic Data uses Endpoints for specific goals that you'd do in a query language:

+
    +
  • Collections (which can filter by Property or Value, and sort by any Property) to generate lists of resources
  • +
  • Paths for traversing graphs by property
  • +
+

And finally, data is written using Commits. +Commits are very strict, as each one describes modifications to individual resources, and every Commits has to be signed. +This means that with Atomic Data, we get versioning + audit trails for all data, but at the cost of more storage requirements and a bit more expensive write process.

+

Schema language and type safety

+

In Neo4j, constraints can be added to the database by +Atomic Data uses Atomic Schema for validating datatypes and required properties in Classes.

+

Other differences

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/intro.html b/interoperability/intro.html new file mode 100644 index 0000000..387343a --- /dev/null +++ b/interoperability/intro.html @@ -0,0 +1,240 @@ + + + + + + Atomic Data Interoperability - Relationship and comparison to other technology + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Interoperability: Relation to other technology

+

Atomic data is designed to be easy to use in existing projects, and be interoperable with existing formats. +This section will discuss how Atomic Data differs from or is similar to various data formats and paradigms, and how it can interoperate.

+

Upgrade guide

+
    +
  • Upgrade: How to make your existing (server-side) application serve Atomic Data. From easy, to hard.
  • +
+

Data formats

+
    +
  • JSON: Atomic Data is designed to be easily serializable to clean, idiomatic JSON. However, if you want to turn JSON into Atomic Data, you'll have to make sure that all keys in the JSON object are URLs that link to Atomic Properties, and the data itself also has to be available at its Subject URL.
  • +
  • RDF: Atomic Data is a strict subset of RDF, and can therefore be trivially serialized to all RDF formats (Turtle, N-triples, RDF/XML, JSON-LD, and others). The other way around is more difficult. Turning RDF into Atomic Data requires that all predicates are Atomic Properties, the values must match its properties datatype, the atoms must be available at the subject URL, and the subject-predicate combinations must be unique.
  • +
+

Protocols

+
    +
  • Solid: A set of specifications that has many similarities with Atomic Data
  • +
  • IPFS: Content-based addressing to prevent 404s and centralization
  • +
+

Database paradigms

+
    +
  • SQL: How Atomic Data differs from and could interact with SQL databases
  • +
  • Graph: How it differs from some labeled property graphs, such as Neo4j
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/ipfs.html b/interoperability/ipfs.html new file mode 100644 index 0000000..c11c2ac --- /dev/null +++ b/interoperability/ipfs.html @@ -0,0 +1,248 @@ + + + + + + How does Atomic Data relate to IPFS? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data and IPFS

+

What is IPFS

+

IPFS (the InterPlanetary File System) is a standard that enables decentralized file storage and retrieval using content-based identifiers. +Instead of using an HTTP URL like http://example.com/helloworld, it uses the IPFS scheme, such as ipfs:QmX6j9DHcPhgBcBtZsuRkfmk2v7G5mzb11vU9ve9i8vDsL. +IPFS identifies things based on their unique content hash (the long, seemingly random string) using a thing called a Merkle DAG (this great article explains it nicely). +This is called a CID, or Content ID. +This simple idea (plus some not so simple network protocols) allows for decentralized, temper-proof storage of data. +This fixes some issues with HTTP that are related to its centralized philosophy: no more 404s!

+

Why is IPFS interesting for Atomic Data

+

Atomic Data is highly dependent on the availability of Resources, especially Properties and Datatypes. +These resources are meant to be re-used a lot, and when these go offline or change (for whatever reason), it could cause issues and confusion. +IPFS guarantees that these resources are entirely static, which means that they cannot change. +This is useful when dealing with Properties, as a change in datatype could break things. +IPFS also allows for location-independent fetching, which means that resources can be retrieved from any location, as long as it's online. +This Peer-to-peer functionality is a very fundamental advantage of IPFS over HTTP, especially when the resources are very likely to be re-use, which is especially the case for Atomic Data Properties.

+

Considerations using IPFS URLs

+

IPFS URLs are static, which means that their contents can never change. +This is great for some types of data, but not so much for others. +If you're describing a time-dependent thing (such as a person's job), you'll probably want to know what the current value is, and that is not possible when you only have an IPFS identifier. +This can be fixed by including an HTTP URL in IPFS bodies.

+

IPFS data is also hard to remove, as it tends to be replicated across machines. +If you're describing personal, private information, it can therefore be a bad idea to use IPFS.

+

And finally, its performance is typically not as good as HTTP. +If you know the IPFS gateway that hosts the IPFS resource that you're looking for, things improve drastically. +Luckily for Atomic Data, this is often the case, as we know the HTTP url of the server and could try whether that server has an IPFS gateway.

+

Atomic Data and IPLD

+

IPLD (not IPFS) stands for InterPlanetary Linked Data, but is not related to RDF. +The scope seems fundamentally different from RDF, too, but I have to read more about this.

+

Share your thoughts

+

Discuss on this issue.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/json.html b/interoperability/json.html new file mode 100644 index 0000000..4351b29 --- /dev/null +++ b/interoperability/json.html @@ -0,0 +1,313 @@ + + + + + + How does Atomic Data relate to JSON? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

How does Atomic Data relate to JSON?

+

Because JSON is so popular, Atomic Data is designed with JSON in mind.

+

Atomic Data is often (by default) serialized to JSON-AD, which itself uses JSON. +JSON-AD uses URLs as keys, which is what gives Atomic Data many of its perks, but using these long strings as keys is not very easy to use in many contexts. +That's why you can serialize Atomic Data to simple, clean JSON.

+

From Atomic Data to plain JSON

+

The JSON keys are then derived from the shortnames of properties. +For example, we could convert this JSON-AD:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

... into this plain JSON:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "shortname": "description"
+}
+
+

Note that when you serialize Atomic Data to plain JSON, some information is lost: the URLs are no longer there. +This means that it is no longer possible to find out what the datatype of a single value is - we now only know if it's a string, but not if it actually represents a markdown string or something else. +Most Atomic Data systems will therefore not use this plain JSON serialization, but for some clients (e.g. a front-end app), it might be easier to use the plain JSON, as the keys are easier to write than the long URLs that JSON-AD uses.

+

From JSON to JSON-AD

+

Atomic Data requires a bit more information about pieces of data than JSON tends to contain. Let's take a look at a regular JSON example:

+
{
+  "name": "John",
+  "birthDate": "1991-01-20"
+}
+
+

We need more information to convert this JSON into Atomic Data. +The following things are missing:

+
    +
  • What is the Subject URL of the resource being described?
  • +
  • What is the Property URL of the keys being used? (name and birthDate), and consequentially, how should the values be parsed? What are their DataTypes?
  • +
+

In order to make this conversion work, we need to link to three URLs that resolve to atomic data resources. +The @id subject should resolve to the Resource itself, returning the JSON-AD from below. +The Property keys (e.g. "https://example.com/properties/name") need to resolve to Atomic Properties.

+
{
+  "@id": "https://example.com/people/john",
+  "https://example.com/properties/name": "John",
+  "https://example.com/properties/birthDate": "1991-01-20"
+}
+
+

In practice, the easiest approach to make this conversion, is to create the data and host it using software like Atomic Server.

+

From Atomic Data to JSON-LD

+

Atomic Data is a strict subset of RDF, and the most popular serialization of RDF for JSON data is JSON-LD.

+

Since Atomic Schema requires the presence of a key slug in Properties, converting Atomic Data to JSON results in dev-friendly objects with nice shorthands.

+
{
+  "@id": "https://example.com/people/John",
+  "https://example.com/properties/lastname": "John",
+  "https://example.com/properties/bestFriend": "https://example.com/sarah",
+}
+
+

Can be automatically converted to:

+
{
+  "@context": {
+    "@id": "https://example.com/people/John",
+    "name": "https://example.com/properties/lastname",
+    "bestFriend": "https://example.com/properties/bestFriend",
+  },
+  "name": "John",
+  "bestFriend": {
+    "@id": "https://example.com/sarah"
+  },
+}
+
+

The @context object provides a mapping to the original URLs.

+

JSON-AD and JSON-LD are very similar by design, but there are some important differences:

+
    +
  • JSON-AD is designed just for atomic data, and is therefore easier and more performant to parse / serialize.
  • +
  • JSON-LD uses @context to map keys to URLs. Any type of mapping is valid. JSON-AD, on the other hand, doesn't map anything - all keys are URLs.
  • +
  • JSON-LD uses nested objects for links and sequences, such as @list. JSON-AD does not.
  • +
  • Arrays in JSON-LD do not indicate ordered data - they indicate that for some subject-predicate combination, multiple values exist. This is a result of how RDF works.
  • +
+

JSON-LD Requirements for valid Atomic Data

+
    +
  • Make sure the URLs used in the @context resolve to Atomic Properties.
  • +
+ +
    +
  • Convert JSON-LD arrays into ResourceArrays
  • +
  • Creating nested JSON objects is possible (by resolving the identifiers from @id relations), but it is up to the serializer to decide how deep this object nesting should happen.
  • +
+

Note that as of now, there are no JSON-LD parsers for Atomic Data.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/rdf.html b/interoperability/rdf.html new file mode 100644 index 0000000..af52821 --- /dev/null +++ b/interoperability/rdf.html @@ -0,0 +1,440 @@ + + + + + + How does Atomic Data relate to RDF? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

How does Atomic Data relate to RDF?

+

RDF (the Resource Description Framework) is a W3C specification from 1999 that describes the original data model for linked data. +It is the forerunner of Atomic Data, and is therefore highly similar in its model. +Both heavily rely on using URLs, and both have a fundamentally simple and uniform model for data statements. +Both view the web as a single, connected graph database. +Because of that, Atomic Data is also highly compatible with RDF - all Atomic Data is also valid RDF. +Atomic Data can be thought of as a more constrained, type safe version of RDF. +However, it does differ in some fundamental ways.

+
    +
  • Atomic calls the three parts of a Triple subject, property and value, instead of subject, predicate, object.
  • +
  • Atomic does not support having multiple statements with the same <subject> <predicate>, every combination must be unique.
  • +
  • Atomic does not have literals, named nodes and blank nodes - these are all values, but with different datatypes.
  • +
  • Atomic uses nested Resources and paths instead of blank nodes
  • +
  • Atomic requires URL (not URI) values in its subjects and properties (predicates), which means that they should be resolvable. Properties must resolve to an Atomic Property, which describes its datatype.
  • +
  • Atomic only allows those who control a resource's subject URL endpoint to edit the data. This means that you can't add triples about something that you don't control.
  • +
  • Atomic has no separate datatype field, but it requires that Properties (the resources that are shown when you follow a predicate value) specify a datatype. However, it is allowed to serialize the datatype explicitly, of course.
  • +
  • Atomic has no separate language field.
  • +
  • Atomic has a native Event (state changes) model (Atomic Commits), which enables communication of state changes
  • +
  • Atomic has a native Schema model (Atomic Schema), which helps developers to know what data types they can expect (string, integer, link, array)
  • +
  • Atomic does not support Named Graphs. These should not be needed, because all statements should be retrievable by fetching the Subject of a resource. However, it is allowed to include other resources in a response.
  • +
+

Why these changes?

+

I have been working with RDF for quite some time now, and absolutely believe in some of the core premises of RDF. +I started a company that specializes in Linked Data (Ontola), and we use it extensively in our products and services. +Using URIs (and more-so URLs, which are URIs that can be fetched) for everything is a great idea, since it helps with interoperability and enables truly decentralized knowledge graphs. +However, some of the characteristics of RDF make it hard to use, and have probably contributed to its relative lack of adoption.

+

It's too hard to select a specific value (object) in RDF

+

For example, let's say I want to render someone's birthday:

+
<example:joep> <schema:birthDate> "1991-01-20"^^xsd:date
+
+

Rendering this item might be as simple as fetching the subject URL, filtering by predicate URL, and parsing the object as a date.

+

However, this is also valid RDF:

+
<example:joep> <schema:birthDate> "1991-01-20"^^xsd:date <example:someNamedGraph>
+<example:joep> <schema:birthDate> <example:birthDateObject> <example:someOtherNamedGraph>
+<example:joep> <schema:birthDate> "20th of januari 1991"@en <example:someNamedGraph>
+<example:joep> <schema:birthDate> "20 januari 1991"@nl <example:someNamedGraph>
+<example:joep> <schema:birthDate> "2000-02-30"^^xsd:date <example:someNamedGraph>
+
+

Now things get more complicated if you just want to select the original birthdate value:

+
    +
  1. Select the named graph. The triple containing that birthday may exist in some named graph different from the subject URL, which means that I first need to identify and fetch that graph.
  2. +
  3. Select the subject.
  4. +
  5. Select the predicate.
  6. +
  7. Select the datatype. You probably need a specific datatype (in this case, a Date), so you need to filter the triples to match that specific datatype.
  8. +
  9. Select the language. Same could be true for language, too, but that is not necessary in this birthdate example.
  10. +
  11. Select the specific triple. Even after all our previous selectors, we still might have multiple values. How do I know which is the triple I'm supposed to use?
  12. +
+

To be fair, with a lot of RDF data, only steps 2 and 3 are needed, since there are often no subject-predicate collisions. +And if you control the data of the source, you can set any constraints that you like, inlcluding subject-predicate uniqueness. +But if you're building a system that uses arbitrary RDF, that system also needs to deal with steps 1,4,5 and 6. +That often means writing a lot of conditionals and other client-side logic to get the value that you need. +It also means that serializing to a format like JSON becomes complicated - you can't just map predicates to keys - you might get collisions. +And you can't use key-value stores for storing RDF, at least not in a trivial way. +Every single selected value should be treated as an array of unknown datatypes, and that makes it really difficult to build software. +All this complexity is the direct result of the lack of subject-predicate uniqueness.

+

As a developer who uses RDF data, I want to be able to do something like this:

+
// Fetches the resource
+const joep = get("https://example.com/person/joep")
+// Returns the value of the birthDate atom
+console.log(joep.birthDate()) // => Date(1991-01-20)
+// Fetches the employer relation at possibly some other domain, checks that resource for a property with the 'name' shortkey
+console.log(joep.employer().name()) // => "Ontola.io"
+
+

Basically, I'd like to use all knowledge of the world as if it were a big JSON object. +Being able to do that, requires using some things that are present in JSON, and using some things that are present in RDF.

+
    +
  • Traverse data on various domains (which is already possible with RDF)
  • +
  • Have unique subject-predicate combinations (which is default in JSON)
  • +
  • Map properties URLs to keys (which often requires local mapping with RDF, e.g. in JSON-LD)
  • +
  • Link properties to datatypes (which is possible with ontologies like SHACL / SHEX)
  • +
+

Less focus on semantics, more on usability

+

One of the core ideas of the semantic web, is that anyone should be able to say anything about anything, using semantic triples. +This is one of the reasons why it can be so hard to select a specific value in RDF. +When you want to make all graphs mergeable (which is a great idea), but also want to allow anyone to create any triples about any subject, you get subject-predicate non-uniqueness. +For the Semantic Web, having semantic triples is great. +For linked data, and connecting datasets, having atomic triples (with unique subject-predicate combinations) seems preferable. +Atomic Data chooses a more constrained approach, which makes it easier to use the data, but at the cost of some expressiveness.

+

Changing the names

+

RDF's subject, predicate and object terminology can be confusing to newcomers, so Atomic Data uses subject, property, value. +This more closely resembles common CS terminology. (discussion)

+

Subject + Predicate uniqueness

+

As discussed above, in RDF, it's very much possible for a graph to contain multiple statements that share both a subject and a predicate. +This is probably because of two reasons:

+
    +
  1. RDF graphs must always be mergeable (just like Atomic Data).
  2. +
  3. Anyone can make any statement about any subject (unlike Atomic Data, see next section).
  4. +
+

However, this introduces a lot extra complexity for data users (see above), which makes it not very attractive to use RDF in any client. +Whereas most languages and datatypes have key-value uniqueness that allow for unambiguous value selection, RDF clients have to deal with the possibility that multiple triples with the same subject-predicate combination might exist. +It also introduces a different problem: How should you interpret a set of subject-predicate combinations? +Does this represent a non-ordered collection, or did something go wrong while setting values?
+In the RDF world, I've seen many occurences of both.

+

Atomic Data requires subject-property uniqueness, which means that these issues are no more. +However, in order to guarantee this, and still retain graph merge-ability, we also need to limit who creates statements about a subject:

+

Limiting subject usage

+

RDF allows that anne.com creates and hosts statements about the subject john.com. +In other words, domain A creates statements about domain B. +It allows anyone to say anything about any subject, thus allowing for extending data that is not under your control.

+

For example, developers at both Ontola and Inrupt (two companies that work a lot with RDF) use this feature to extend the Schema.org ontology with translations. +This means they can still use standards from Schema.org, and have their own translations of these concepts.

+

However, I think this is a flawed approach. +In the example above, two companies are adding statements about a subject. +In this case, both are adding translations. +They're doing the same work twice. +And as more and more people will use that same resource, they will be forced to add the same translations, again and again.

+

I think one of the core perks of linked data, is being able to make your information highly re-usable. +When you've created statements about an external thing, these statements are hard to re-use.

+

This means that someone using RDF data about domain B cannot know that domain B is actually the source of the data. +Knowing where data comes from is one of the great things about URIs, but RDF does not require that you can think of subjects as the source of data. +Many subjects in RDF don't actually resolve to all the known triples of the statement. +It would make the conceptual model way simpler if statements about a subject could only be made from the source of the domain owner of the subject. +When triples are created about a resource, in a place other than where the subject is hosted, these triples are hard to share.

+

The way RDF projects deal with this, is by using named graphs. +As a consequence, all systems that use these triples should keep track of another field for every atom. +To make things worse, it makes subject-predicate uniqueness impossible to guarantee. +That's a high price to pay.

+

I've asked two RDF developers (who did not know each other) working on RDF about limiting subject usage, and both were critical. +Interestingly, they provided the same usecase for using named graphs that would conflict with the limiting subject usage constraint. +They both wanted to extend the schema.org ontology by adding properties to these items in a local graph. +I don't think even this usecase is appropriate for named graphs. They were actually using an external resource that did not provide them with the things they needed. The things that they would add (the translations) are not re-usable, so in the end they will just keep spreading a URL that doesn't provide people with the things that they will come to expect. The schema.org URL still won't provide the translations that they wrote! +I believe a better solution is to copy the resource (in this case a part of the schema.org ontology), and extend it, and host it somewhere else, and use that URL. +Or even better: have a system for sharing your change suggestions with the source of the data, and allow for easy collaboration on ontologies.

+

No more literals / named nodes

+

In RDF, an object can either be a named node, blank node or literal. A literal has a value, a datatype and an optional language (if the literal is a string). +Although RDF statements are often called triples, a single statement can consist of five fields: subject, predicate, object, language, datatype. +Having five fields is way more than most information systems. Usually we have just key and value. +This difference leads to compatibility issues when using RDF in applications. +In practice, clients have to run a lot of checks before they can use the data - which makes RDF in most contexts harder to use than something like JSON.

+

Atomic Data drops the named node / literal distinction. +We just have values, and they are interpreted by looking at the datatype, which is defined in the property. +When a value is a URL, we don't call it a named node, but we simply use a URL datatype.

+

Requiring URLs

+

A URL (Uniform Resource Locator) is a specific and cooler version of a URI (Uniform Resource Identifier), because a URL tells you where you can find more information about this thing (hence Locator).

+

RDF allows any type of URIs for subject and predicate value, which means they can be URLs, but don't have to be. +This means they don't always resolve, or even function as locators. +The links don't work, and that restricts how useful the links are. +Atomic Data takes a different approach: these links MUST Resolve. Requiring Properties to resolve is part of what enables the type system of Atomic Schema - they provide the shortname and datatype.

+

Requiring URLs makes things easier for data users, but makes things a bit more difficult for the data producer. +With Atomic Data, the data producer MUST offer the data at the URL of the subject. +This is a challenge that requires tooling, which is why I've built Atomic-Server: an easy to use, performant, open source data management sytem.

+

Making sure that links actually work offer tremendous benefits for data consumers, and that advantage is often worth the extra trouble.

+

Replace blank nodes with paths

+

Blank (or anonymous) nodes are RDF resources with identifiers that exist only locally. +In other words, their identifiers are not URLs. +They are sometimes also called anonymous nodes. +They make life easier for data producers, who can easily create (nested) resources without having to mint all the URLs. +In most non-RDF data models, blank nodes are the default. +For example, we nest JSON object without thinking twice.

+

Unfortunately, blank nodes tend to make things harder for clients. +These clients will now need to keep track of where these blank nodes came from, and they need to create internal identifiers that will not collide. +Cache invalidation with blank nodes also becomes a challenge. +To make this a bit easier, Atomic Data introduces a new way of dealing with names of things that you have not given a URL yet: Atomic Paths.

+

Since Atomic Data has subject-predicate uniqueness (like JSON does, too), we can use the path of triples as a unique identifier:

+
https://example.com/john https://schema.org/employer
+
+

This prevents collisions and still makes it easy to point to a specific value.

+

Serialization formats are free to use nesting to denote paths - which means that it is not necessary to include these path strings explicitly in most serialization formats, such as in JSON-AD.

+

Combining datatype and predicate

+

Having both a datatype and a predicate value can lead to confusing situations. +For example, the schema:dateCreated Property requires an ISO DateTime string (according to the schema.org definition), but using a value true with an xsd:boolean datatype results in perfectly valid RDF. +This means that client software using triples with a schema:dateCreated predicate cannot safely assume that its value will be a DateTime. +So if the client wants to use schema:dateCreated values, the client must also specify which type of data it expects, check the datatype field of every Atom and provide logic for when these don't match. +Also important combining datatype and predicate fits the model of most programmers and languages better - just look at how every single struct / model / class / shape is defined in programming languages: key: datatype. +This is why Atomic Data requires that a predicate links to a Property which must have a Datatype.

+

Adding shortnames (slugs / keys) in Properties

+

Using full URI strings as keys (in RDF predicates) results in a relatively clunky Developer Experience. +Consider the short strings that developers are used to in pretty much all languages and data formats (object.attribute). +Adding a required / tightly integrated key mapping (from long URLs to short, simple strings) in Atomic Properties solves this issue, and provides developers a way to write code like this: someAtomicPerson.bestFriend.name => "Britta". +Although the RDF ecosystem does have some solutions for this (@context objects in JSON-LD, @prefix mappings, the @ontologies library), these prefixes are not defined in Properties themselves and therefore are often defined locally or separate from the ontology, which means that developers have to manually map them most of the time. +This is why Atomic Data introduces a shortname field in Properties, which forces modelers to choose a 'key' that can be used in ORM contexts.

+

Adding native arrays

+

RDF lacks a clear solution for dealing with ordered data, resulting in confusion when developers have to create lists of content. +Adding an Array data type as a base data type helps solve this. (discussion)

+

Adding a native state changes standard

+

There is no integrated standard for communicating state changes. +Although linked-delta and rdf-delta do exist, they aren't referred to by the RDF spec. +I think developers need guidance when learning a new system such as RDF, and that's why Atomic Commits is included in this book.

+

Adding a schema language and type safety

+

A schema language is necessary to constrain and validate instances of data. +This is very useful when creating domain-specific standards, which can in turn be used to generate forms or language-specific types / interfaces. +Shape validations are already possible in RDF using both SHACL and SHEX, and these are both very powerful and well designed.

+

However, with Atomic Data, I'm going for simplicity. +This also means providing an all-inclusive documentation. +I want people who read this book to have a decent grasp of creating, modeling, sharing, versioning and querying data. +It should provide all information that most developers (new to linked data) will need to get started quickly. +Simply linking to SHACL / SHEX documentation could be intimidating for new developers, who simply want to define a simple shape with a few keys and datatypes.

+

Also, SHACL requires named graphs (which are not specified in Atomic Data) and SHEX requires a new serialization format, which might limit adoption. +Atomic Data has some unique constrains (such as subject-predicate uniqueness) which also might make things more complicated when using SHEX / SHACL.

+

However, it is not the intention of Atomic Data to create a modeling abstraction that is just as powerful as the ones mentioned above, so perhaps it is better to include a SHACL / SHEX tutorial and come up with a nice integration of both worlds.

+

A new name, with new docs

+

Besides the technical reasons described above, I think that there are social reasons to start with a new concept and give it a new name:

+
    +
  • The RDF vocabulary is intimidating. When trying to understand RDF, you're likely to traverse many pages with new concepts: literal, named node, graph, predicate, named graph, blank node... The core specification provides a formal description of these concepts, but fails to do this in a way that results in quick understanding and workable intuitions. Even experienced RDF developers tend to be confused about the nuances of the core model.
  • +
  • There is a lack of learning resources that provide a clear, complete answer to the lifecycle of RDF data: modeling data, making data, hosting it, fetching it, updating it. Atomic Data aims to provide an opinionated answer to all of these steps. It feels more like a one-stop-shop for questions that developers are likely to encounter, whilst keeping the extendability.
  • +
  • All Core / Schema URLs should resolve to simple, clear explanations with both examples and machine readable definitions. Especially the Property and Class concepts.
  • +
  • The Semantic Web community has had a lot of academic attention from formal logic departments, resulting in a highly developed standard for knowledge modeling: the Web Ontology Language (OWL). While this is mostly great, its open-world philosophy and focus on reasoning abilities can confuse developers who are simply looking for a simple way to share models in RDF.
  • +
+

Convert RDF to Atomic Data

+
    +
  • All the subject URLs MUST actually resolve, and return all triples about that subject. All blank nodes should be converted into URLs. Atomic Data tools might help to achieve this, for example by hosting the data.
  • +
  • All predicates SHOULD resolve to Atomic Properties, and these SHOULD have a datatype. You will probably need to change predicate URLs to Atomic Property URLs, or update the things that the predicate points to to include the required Atomic Property items (e.g. having a Datatype and a Shortname). This also means that the datatype in the original RDF statement can be dropped.
  • +
  • Literals with a language tag are converted to TranslationBox resources, which also means their identifiers must be created. Keep in mind that Atomic Data does not allow for blank nodes, so the TranslationBox identifiers must be URLs.
  • +
+

Step by step, it entails:

+
    +
  1. Set up some server to make sure the URLs will resolve.
  2. +
  3. Create (or find and refer to) Atomic Properties for all the predicates. Make sure they have a DataType and a Shortname.
  4. +
  5. If you have triples about a subject that you don't control, change the URL to some that you can control, and refer to that external resource.
  6. +
+

Atomic Data will need tooling to facilitate in this process. +This tooling should help to create URLs, Properties, and host everything on an easy to use server.

+

Convert Atomic data to RDF

+

Since all Atomic Data is also valid RDF, it's trivial to convert / serialize Atoms to RDF. +This is why atomic can serialize Atomic Data to RDF. (For example, try atomic-cli get https://atomicdata.dev/properties/description --as n3)

+

However, contrary to Atomic Data, RDF has optional Language and Datatype elements in every statement. +It is good practice to use these RDF concepts when serializing Atomic Data into Turtle / RDF/XML, or other RDF serialization formats.

+
    +
  • Convert Atoms with linked TranslationBox Resources to Literals with an xsd:string datatype and the corresponding language in the tag.
  • +
  • Convert Atoms with ResourceArrays to Collections that are native to that serialization format.
  • +
  • Dereference the Property and Datatype from Atomic Properties, and add the URLs in datatypes in RDF statements.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/solid.html b/interoperability/solid.html new file mode 100644 index 0000000..82103b7 --- /dev/null +++ b/interoperability/solid.html @@ -0,0 +1,338 @@ + + + + + + How does Atomic Data relate to Solid? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data and Solid

+

The Solid project is an initiative by the inventor of linked data and the world wide web: sir Tim Berners-Lee. +In many ways, it has similar goals to Atomic Data:

+
    +
  • Decentralize the web
  • +
  • Make things more interoperable
  • +
  • Give people more control over their data
  • +
+

Technically, both are also similar:

+
    +
  • Usage of personal servers, or PODs (Personal Online Datastores). Both Atomic Data and Solid aim to provide users with a highly personal server where all sorts of data can be stored.
  • +
  • Usage of linked data. All Atomic Data is valid RDF, which means that all Atomic Data is compatible with Solid. However, the other way around is more difficult. In other words, if you choose to use Atomic Data, you can always put it in your Solid Pod.
  • +
+

But there are some important differences, too, which will be explained in more detail below.

+
    +
  • Atomic Data uses a strict built-in schema to ensure type safety
  • +
  • Atomic Data standardizes state changes (which also provides version control / history, audit trails)
  • +
  • Atomic Data is more easily serializable to other formats (like JSON)
  • +
  • Atomic Data has different models for authentication, authorization and hierarchies
  • +
  • Atomic Data does not depend on existing semantic web specifications
  • +
  • Atomic Data is a smaller and younger project, and as of now a one-man show
  • +
+

Disclaimer: I've been quite involved in the development of Solid, and have a lot of respect for all the people who are working on it. +Solid and RDF have been important inspirations for the design of Atomic Data. +The following is not meant as a critique on Solid, let alone the individuals working on it.

+

Atomic Data is type-safe, because of its built-in schema

+

Atomic Data is more strict than Solid - which means that it only accepts data that conforms to a specific shape. +In a Solid Pod, you're free to add any shape of data that you like - it is not validated by some schema. +Yes, there are some efforts of using SHACL or SHEX to constrain data before putting it in, but as of now it is not part of the spec or any implementation that I know of. +A lack of schema strictness can be helpful during prototyping and rapid development, especially if you write data by hand, but it also limits how easy it is to build reliable apps with that data. +Atomic Data aims to be very friendly for developers that re-use data, and that's why we take a different approach: all data must be validated by Atomic Schema before it's stored on a server. +This means that all Atomic Properties will have to exist on a publicly accessible URL, before the property can be used somewhere.

+

You can think of Atomic Data more like a (dynamic) SQL database that offers guarantees about its content type, and a Solid Pod more like a document store that takes in all kinds of content. +Most of the differences have to do with how Atomic Schema aims to make linked data easier to work with, but that is covered in the previous RDF chapter.

+

Atomic Data standardizes state changes (event sourcing)

+

With Solid, you change a Resource by sending a POST request to the URL that you want to change. +With Atomic, you change a Resource by sending a signed Commit that contains the requested changes to a Server.

+

Event sourcing means that all changes are stored (persisted) and used to calculate the current state of things. +In practice, this means that users get a couple of nice features for free:

+
    +
  • Versioning for all items by default. Storing events means that these events can be replayed, which means you get to traverse time / undo / redo.
  • +
  • Edit / audit log for everything. Events contain information about who made which change at which point in time. Can be useful for finding out why things are the way they are.
  • +
  • Easier to add query options / indexes. Any system can play-back the events, which means that the events can be used as an API to add new query options / fill new indexes. This is especially useful if you want to add things like full-text search, or some geolocation index.
  • +
+

It also means that, compared to Solid, there is a relatively simple and strict API for changing data. +Atomic Data has a uniform write API. +All changes to data are done by posting Commits to the /commits endpoint of a Server. +This removes the need to think about differences between all sorts of HTTP methods like POST / PUT / PATCH, and how servers should reply to that.

+

EDIT: as of december 2021, Solid has introduced .n3 patch for standardizing state changes. Although this adds a uniform way of describing changes, it still lacks the power of Atomic Commits. It does not specify signatures, mention versioning, or deals with persisting changesets. On top of that, it is quite difficult to read or parse, being .n3.

+

Atomic Data is more easily serializable to other formats (like JSON)

+

Atomic Data is designed with the modern (web)developer in mind. +One of the things that developers expect, is to be able to traverse (JSON) objects easily. +Doing this with RDF is not easily possible, because doing this requires subject-predicate uniqueness. +Atomic Data does not have this problem (properties must be unique), which means that traversing objects becomes easy.

+

Another problem that Atomic Data solves, is dealing with long URLs as property keys. +Atomic Data uses shortnames to map properties to short, human-readable strings.

+

For more information about these differences, see the previous RDF chapter.

+

Authentication

+

Both Solid an Atomic Data use URLs to refer to individuals / users / Agents.

+

Solid's identity system is called WebID. +There are multiple supported authentication protocols, the most common being WebID-OIDC.

+

Atomic Data's authentication model is more similar to how SSH works. +Atomic Data identities (Agents) are a combination of HTTP based, and cryptography (public / private key) based. +In Atomic, all actions (from GET requests to Commits) are signed using the private key of the Agent. +This makes Atomic Data a bit more unconventional, but also makes its auth mechanism very decentralized and lightweight.

+

Hierarchy and authorization

+

Atomic Data uses parent-child hierarchies to model data structures and perform authorization checks. +This closely resembles how filesystems work (including things like Google Drive). +Per resource, write and read rights can be defined, which both contain lists of Agents.

+

Solid is working on the Shape Trees spec, which also describes hierarchies. +It uses SHEX to perform shape validation, similar to how Atomic Schema does.

+

No dependency on existing semantic web specifications

+

The Solid specification (although still in draft) builds on a 20+ year legacy of committee meetings on semantic web standards such as RDF, SPARQL, OWL and XML. +I think the process of designing specifications in various (fragmented) committees has led to a set of specifications that lack simplicity and consistency. +Many of these specifications have been written long before there were actual implementations. +Much of the effort was spent on creating highly formal and abstract descriptions of common concepts, but too little was spent on making specs that are easy to use and solve actual problems for developers.

+

Aaron Scharz (co-founder or reddit, inventor of RSS and Markdown) wrote this in his unfinished book 'A Programmable Web':

+
+

Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense +contractors. +They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device.

+
+

(The book is a great read on this topic, by the way!)

+

So, in a nutshell, I think this legacy makes Solid unnecessarily hard to use for developers, for the following reasons:

+
    +
  • RDF Quirks: Solid has to deal with all the complexities of the RDF data model, such as blank nodes, named graphs, subject-predicate duplication.
  • +
  • Multiple (uncommon) serialization formats need to be understood, such as n3, shex and potentially all the various RDF serialization formats. These will feel foreign to most (even very experienced) developers and can have a high degree of complexity.
  • +
  • A heritage of broken URLs. Although a lot if RDF data exists, only a small part of it is actually resolvable as machine-readable RDF. The large majority won't give you the data when sending a HTTP GET request with the correct Accept headers to the subject's URL. Much of it is stored in documents on a different URL (named graphs), or behind some SPARQL endpoint that you will first need to find. Solid builds on a lot of standards that have these problems.
  • +
  • Confusing specifications. Reading up on RDF, Solid, and the Semantic Web can be a daunting (yet adventurous) task. I've seen many people traverse a similar path as I did: read the RDF specs, dive into OWL, install protege, create ontologies, try doing things that OWL doesn't do (validate data), read more complicated specs that don't help to clear things, become frustrated... It's a bit of a rabbit hole, and I'd like to prevent people from falling into it. There's a lot of interesting ideas there, but it is not a pragmatic framework to develop interoperable apps with.
  • +
+

Atomic Data and Solid server implementations

+

Both Atomic Data and Solid are specifications that have different implementations. +Some open source Solid implementations are the Node Solid Server, the Community Solid Server (also nodejs based) and the DexPod (Ruby on Rails based).

+

Atomic-Server is a database + server written in the Rust programming language, that can be considered an alternative to Solid Pod implementations. +It was definitely built to be one, at least. +It implements every part of the Atomic Data specification. +I believe that as of today (february 2022), Atomic-Server has quite a few advantages over existing Solid implementations:

+ +
    +
  • Dynamic schema validation / type checking using Atomic Schema, combining the best of RDF, JSON and type safety.
  • +
  • Fast (1ms responses on my laptop)
  • +
  • Lightweight (8MB download, no runtime dependencies)
  • +
  • HTTPS + HTTP2 support with Built-in LetsEncrypt handshake.
  • +
  • Browser GUI included powered by atomic-data-browser. Features dynamic forms, tables, authentication, theming and more. Easy to use!
  • +
  • Event-sourced versioning / history powered by Atomic Commits
  • +
  • Many serialization options: to JSON, JSON-AD, and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD).
  • +
  • Full-text search with fuzzy search and various operators, often <3ms responses.
  • +
  • Pagination, sorting and filtering using Atomic Collections
  • +
  • Invite and sharing system with Atomic Invites
  • +
  • Desktop app Easy desktop installation, with status bar icon, powered by tauri.
  • +
  • MIT licensed So fully open-source and free forever!
  • +
+

Things that Atomic Data misses, but Solid has

+

Atomic Data is not even two years old, and although progress has been fast, it does lack some specifications. +Here's a list of things missing in Atomic Data, with links to their open issues and links to their existing Solid counterpart.

+
    +
  • No inbox or notifications yet (issue)
  • +
  • No OIDC support yet. (issue)
  • +
  • No support from a big community, a well-funded business or the inventor of the world wide web.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/sql.html b/interoperability/sql.html new file mode 100644 index 0000000..7c9adea --- /dev/null +++ b/interoperability/sql.html @@ -0,0 +1,282 @@ + + + + + + How does Atomic Data relate to SQL? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data and SQL

+

Atomic Data has some characteristics that make it similar and different from SQL.

+
    +
  • Atomic Data has a dynamic schema. Any Resource could have different properties, so you can add new properties to your data without performing any migrations. However, the properties themselves are still validated (contrary to most NoSQL solutions)
  • +
  • Atomic Data uses HTTP URLs in its data, which means it's easy to share and reuse.
  • +
  • Atomic Data separates reading and writing, whereas SQL has one language for both.
  • +
  • Atomic Data has a standardized way of storing changes (Commits)
  • +
+

Tables and Rows vs. Classes and Properties

+

At its core, SQL is a query language based around tables and rows. +The tables in SQL are similar to Classes in Atomic Data: they both define a set of properties which an item could have. +Every single item in a table is called a row in SQL, and a Resource in Atomic Data. +One difference is that in Atomic Data, you can add new properties to resources, without making changes to any tables (migrations).

+

Dynamic vs static schema

+

In SQL, the schema of the database defines which shape the data can have, which properties are required, what datatypes they have. +In Atomic Data, the schema exists as a Resource on the web, which means that they can be retrieved using HTTP. +An Atomic Database (such as Atomic-Server) uses a dynamic schema, +which means that any Resource can have different properties, and the properties themselves can be validated, even when the server is not aware of these properties beforehand. +In SQL, you'd have to manually adjust the schema of your database to add a new property. +Atomic Data is a decentralized, open system, which can read new schema data from other sources. +SQL is a centralized, closed system, which relies on the DB manager to define the schema.

+

Identifiers: numbers vs. URLs

+

In SQL, rows have numbers as identifiers, whereas in Atomic Data, every resource has a resolvable HTTP URL as an identifier. +URLs are great identifiers, because you can open them and get more information about something. +This means that with Atomic Data, other systems can re-use your data by referencing to it, and you can re-use data from other systems, too. +With Atomic Data, you're making your data part of a bigger web of data, which opens up a lot of possibilities.

+

Atomic Server combines server and database

+

If you're building an App with SQL, you will always need some server that connects to your database. +If you're building an App with Atomic Server, the database can function as your server, too. It deals with authentication, authorization, and more.

+

Querying

+

The SQL query language is for both reading and writing data. +In Atomic Data a distinction is made between Query and Command - getting and setting (Command Query Responsibility Segregation, CQRS). +The Query side is handled using Subject Fetching (sending a GET request to a URL, to get a single resource) and Collections (filtering and sorting data). +The Command side is typically done using Atomic Commits, although you're free not to use it.

+

SQL is way more powerful, as a query language. +In SQL, the one creating the query basically defines the shape of a table that is requested, and the database returns that shape. +Atomic Data does not offer such functionality. +So if you need to create custom tables at runtime, you might be better off using SQL, or move your Atomic Data to a query system.

+

Convert an SQL database to Atomic Data

+

If you want to make your existing SQL project serve Atomic Data, you can keep your existing SQL database, see the upgrade guide. +It basically boils down to mapping the rows (properties) in your SQL tables to Atomic Data Properties.

+

When you want to import arbitrary Atomic Data, though, it might be easier to use atomic-server. +If you want to store arbitrary Atomic Data in a SQL database, you might be best off by creating a Resources table with a subject and a propertyValues column, or create both a properties table and a resources one.

+

Limitations of Atomic Data

+
    +
  • SQL is far more common, many people will know how to use it.
  • +
  • SQL databases are battle-tested and has been powering countless of products for tens of years, whereas Atomic Server is at this moment in beta.
  • +
  • SQL databases have a more powerful and expressive query language, where you can define tables in your query and combine resources.
  • +
  • Atomic Data doesn't have a mutli-node / distributed option
  • +
+

FAQ

+

Is Atomic Data NOSQL or SQL?

+

Generally, Atomic Data apps do not use SQL - so they are NOSQL. +Atomic-server, for example, internally uses a key-value store (sled) for persistence.

+

Like most NOSQL systems, Atomic Data does not limit data entries to a specific table shape, so you can add any property that you like to a resource. +However, unlike most NOSQL systems, Atomic Data does perform validations on each value. +So in a way, Atomic Data tries to combine best of both worlds: the extendibility and flexibility of NOSQL, with the type safety of SQL.

+

Is Atomic Data transactional / ACID?

+

Yes, if you use Atomic-Server, then you can only write to the server by using Atomic Commits, which are in fact transactions. +This means that if part of the transaction fails, it is reverted - transactions are only applied when they are 100% OK. +This prevents inconsistent DB states.

+

How does Atomic Server build indexes for its resources if the schema is not known in advance

+

It creates indexed collections when users perform queries. +This means that the first time your perform some type of query (that sorts and filters by some properties), it will be slow, but the next time you perform a similar query, it will be fast.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/interoperability/upgrade.html b/interoperability/upgrade.html new file mode 100644 index 0000000..f8ccece --- /dev/null +++ b/interoperability/upgrade.html @@ -0,0 +1,253 @@ + + + + + + Upgrade your existing application to serve Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Upgrade your existing application to serve Atomic Data

+

You don't have to use Atomic-Server and ditch your existing projects or apps, if you want to adhere to Atomic Data specs.

+

As the Atomic Data spec is modular, you can start out simply and conform to more specs as needed:

+
    +
  1. Map your JSON keys to new or existing Atomic Data properties
  2. +
  3. Add @id fields to your resources, make sure these URLs resolve using HTTP
  4. +
  5. Implement parts of the Extended spec
  6. +
+

There's a couple of levels you can go to, when adhering to the Atomic Data spec.

+

Easy: map your JSON keys to Atomic Data Properties

+

If you want to make your existing project compatible with Atomic Data, you probably don't have to get rid of your existing storage / DB implementation. +The only thing that matters, is how you make the data accessible to others: the serialization. +You can keep your existing software and logic, but simply change the last little part of your API.

+

In short, this is what you'll have to do:

+

Map all properties of resources to Atomic Properties. +Either use existing ones, or create new ones. +This means: take your JSON objects, and change things like name to https://atomicdata.dev/properties/name.

+

That's it, you've done the most important step!

+

Now your data is already more interoperable:

+
    +
  • Every field has a clear semantic meaning and datatype
  • +
  • Your data can now be easily imported by Atomic Data systems
  • +
+

Medium: add @id URLs that properly resolve

+

Make sure that when the user requests some URL, that you return that resource as a JSON-AD object (at the very least if the user requests it using an HTTP Accept: application/ad+json header).

+
    +
  • Your data can now be linked to by external data sources, it can become part of a web of data!
  • +
+

Hard: implement Atomic Data Extended protocols

+

You can go all out, and implement Commits, Hierarchies, Authentication, Collections and more. +I'd suggest starting with Commits, as these allow users to modify data whilst maintaining versioning and auditability. +Check out the Atomic-Server source code to get inspired on how to do this.

+

Reach out for help

+

If you need any help, join our Discord.

+

Also, share your thoughts on creating Atomic Data in this issue on github.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/invitations.html b/invitations.html new file mode 100644 index 0000000..c84caed --- /dev/null +++ b/invitations.html @@ -0,0 +1,242 @@ + + + + + + Atomic Data Invitations - Sharing using Tokens + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Invitations & Tokens

+

(Discussion)

+

At some point on working on something in a web application, you're pretty likely to share that, often not with the entire world. +In order to make this process of inviting others as simple as possible, we've come up with an Invitation standard.

+

Design goals

+
    +
  • Edit without registration. Be able to edit or view things without being required to complete a registration process.
  • +
  • Share with a single URL. A single URL should contain all the information needed.
  • +
  • (Un)limited URL usage. A URL might be re-usable, or maybe not.
  • +
+

Flow

+
    +
  1. The Owner or a resource creates an Invite. This Invite points to a target Resource, provides read rights by default but can additionally add write rights, contains a bunch of usagesLeft.
  2. +
  3. The Guest opens the Invite URL. This returns the Invite resource, which provides the client with the information needed to do the next request which adds the actual rights.
  4. +
  5. The browser client app might generate a set of keys, or use an existing one. It sends the Agent URL to the Invite in a query param.
  6. +
  7. The server will respond with a Redirect resource, which links to the newly granted target resource.
  8. +
  9. The Guest will now be able to access the Resource.
  10. +
+

Try it on https://atomicdata.dev/invites/1

+

Limitations and gotcha's

+
    +
  • The one creating the Invite has to take security in consideration. Some URLs can be easily guessed! When implementing Invitations, make sure to use a good amount of randomness when creating the Subject.
  • +
  • Make sure that the invite is not publicly discoverable (e.g. through a Collection), this can happen if you set the parent of the invite to a public resource.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mark.min.js b/mark.min.js new file mode 100644 index 0000000..1636231 --- /dev/null +++ b/mark.min.js @@ -0,0 +1,7 @@ +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error("iframe inaccessible")}catch(e){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),o=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:"forEachNode",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),o=function(){function e(n){t(this,e),this.opt=r({},{diacritics:!0,synonyms:{},accuracy:"partially",caseSensitive:!1,ignoreJoiners:!1,ignorePunctuation:[],wildcards:"disabled"},n)}return n(e,[{key:"create",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),new RegExp(e,"gm"+(this.opt.caseSensitive?"":"i"))}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==a&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(a)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynonyms(a)+"|"+this.processSynonyms(s)+")"+r))}return e}},{key:"processSynonyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":""})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":""})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,i="";switch(("string"==typeof n?[]:n.limiters).forEach(function(e){i+="|"+t.escapeStr(e)}),r){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(i=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapGroups",value:function(e,t,n,r){return r((e=this.wrapRangeInTextNode(e,t,t+n)).previousSibling),e}},{key:"separateGroups",value:function(e,t,n,r,i){for(var o=t.length,a=1;a-1&&r(t[a],e)&&(e=this.wrapGroups(e,s,t[a].length,i))}return e}},{key:"wrapMatches",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&""!==i[a];){if(o.opt.separateGroups)t=o.separateGroups(t,i,a,n,r);else{if(!n(i[a],t))continue;var s=i.index;if(0!==a)for(var c=1;c + + + + + Motivation for creating Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Motivation: Why Atomic Data?

+ +

Give people more control over their data

+

The world wide web was designed by Tim Berners-Lee to be a decentralized network of servers that help people share information. +As I'm writing this, it is exactly 30 years ago that the first website has launched. +Unfortunately, the web today is not the decentralized network it was supposed to be. +A handful of large tech companies are in control of how the internet is evolving, and where and how our data is being stored. +The various services that companies like Google and Microsoft offer (often for free) integrate really well with their other services, but are mostly designed to lock you in. +Vendor lock-in means that it is often difficult to take your information from one app to another. +This limits innovation, and limits users to decide how they want to interact with their data. +Companies often have incentives that are not fully aligned with what users want. +For example, Facebook sorts your newsfeed not to make you satisfied, but to make you spend as much time looking at ads. +They don't want you to be able to control your own newsfeed. +Even companies like Apple, that don't have an ad-revenue model, still have a reason to (and very much do) lock you in. +To make things even worse, even open-source projects made by volunteers often don't work well together. +That's not because of bad intentions, that's because it is hard to make things interoperable.

+

If we want to change this, we need open tech that works really well together. +And if we want that, we need to standardize. +The existing standards are well-suited for documents and webpages, but not for structured personal data. +If we want to have that, we need to standardize the read-write web, which includes standardizing how items are changed, how their types are checked, how we query lists, and more. +I want all people to have a (virtual) private server that contains their own data, that they control. +This Personal Data Store could very well be an old smartphone with a broken screen that is always on, running next to your router.

+

Atomic Data is designed to be a standard that achieves this. +But we need more than a standard to get adoption - we need implementations. +That's why I've been working on a server, various libraries, a GUI and more - all MIT licensed. +If Atomic Data will be successful, there will likely be other, better implementations.

+

Linked data is awesome, but it is too difficult for developers in its current form

+

Linked data (RDF / the semantic web) enables us to use the web as a large, decentralized graph database. +Using links everywhere in data has amazing merits: links remove ambiguity, they enable exploration, they enable connected datasets. +But the existing specs are too difficult to use, and that is harming adoption.

+

At my company Ontola, we've been working with linked data quite intensely for the last couple of years. +We went all-in on RDF, and challenged ourselves to create software that communicates exclusively using it. +That has been an inspiring, but at times also a frustrating journey. +While building our e-democracy platform Argu.co, we had to solve many RDF related problems. +How to properly model data in RDF? How to deal with sequences? How to communicate state changes? Which serialization format to use? How to convert RDF to HTML, and build a front-end? +We tackled some of these problems by having a tight grip on the data that we create (e.g. we know the type of data, because we control the resources), and another part is creating new protocols, formats, tools, and libraries. +But it took a long time, and it was hard. +It's been almost 15 years since the introduction of linked data, and its adoption has been slow. +We know that some of its merits are undeniable, and we truly want the semantic web to succeed. +I believe the lack of growth partially has to do with a lack of tooling, but also with some problems that lie in the RDF data model.

+

Atomic Data aims to take the best parts from RDF, and learn from the past to make a more developer-friendly, performant and reliable data model to achieve a truly linked web. +Read more about how Atomic Data relates to RDF, and why these changes have been made.

+

Make standardization easier and cheaper

+

Standards for data sharing are great, but creating one can be very costly endeavor. +Committees with stakeholders write endless documents describing the intricacies of domain models, which fields are allowed and which are required, and how data is serialized. +In virtually all cases, these documents are only written for humans - and not for computers. +Machine readable ways to describe data models like UML diagrams and OpenAPI specifications (also known as Swagger) help to have machine-readable descriptions, but these are still not really used by machines - they are mostly only used to generate visualizations for humans. +This ultimately means that implementations of a standard have to be manually checked for compliance, which often results in small (yet important) differences that severely limit interoperability. +These implementations will also often want to extend the original definitions, but they are almost always unable to describe what they have extended.

+

Standardizing with Atomic Data solves these issues. +Atomic Data takes the semantic value of ontologies, and merges it with a machine-readable schemas. +This makes standards created using Atomic Data easy to read for humans, and easy to validate for computers (which guarantees interoperability). +Atomic Data has a highly standardized protocol for fetching data, which means that Atomic Schemas can link to each other, and re-use existing Properties. +For developers (the people who need to actually implement and use the data that has been standardized), this means their job becomes easier. +Because Properties have URLs, it becomes trivial to add new Properties that were initially not in the main specification, without sacrificing type safety and validation abilities.

+

Make it easier for developers to build feature-rich, interoperable apps

+

Every time a developer builds an application, they have to figure a lot of things out. +How to design the API, how to implement forms, how to deal with authentication, authorization, versioning, search... +A lot of time is essentially wasted on solving these issues time and time again.

+

By having a more complete, strict standard, Atomic Data aims to decrease this burden. +Atomic Schema enables developers to easily share their datamodels, and re-use those from others. +Atomic Commits helps developers to deal with versioning, history, undo and audit logs. +Atomic Hierarchies provides an intuitive model for authorization and access control. +And finally, the existing open source Atomic Data software (such as a server + database, a browser GUI, various libraries and React templates) help developers to have these features without having to do the heavy lifting themselves.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/newsletter.html b/newsletter.html new file mode 100644 index 0000000..c8af722 --- /dev/null +++ b/newsletter.html @@ -0,0 +1,228 @@ + + + + + + Official Atomic Data newsletter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Subscribe to the Atomic Data newsletter

+

We'll send you an update (max once per month) when there's something relevant to share, such as

+
    +
  • Major changes to the specification
  • +
  • Major new releases (with new features)
  • +
  • Use-cases, implementations
  • +
  • Tutorials, blog posts
  • +
  • Organizational / funding news
  • +
+

Click here to sign up to the Atomic Data Newsletter

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/print.html b/print.html new file mode 100644 index 0000000..039e2dd --- /dev/null +++ b/print.html @@ -0,0 +1,3229 @@ + + + + + + Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

# Atomic Data Docs - Overview

+

Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety.

+

Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety

+

Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines.

+

Atomic Data has been designed with the following goals in mind:

+
    +
  • Give people more control over their data
  • +
  • Make linked data easier to use
  • +
  • Make it easier for developers to build highly interoperable apps
  • +
  • Make standardization easier and cheaper
  • +
+

Atomic Data is Linked Data, as it is a strict subset of RDF. +It is type-safe (you know if something is a string, number, date, URL, etc.) and extensible through Atomic Schema, which means that you can re-use or define your own Classes, Properties and Datatypes.

+

The default serialization format for Atomic Data is JSON-AD, which is simply JSON where each key is a URL of an Atomic Property. +These Properties are responsible for setting the datatype (to ensure type-safety) and setting shortnames (which help to keep names short, for example in JSON serialization) and descriptions (which provide semantic explanations of what a property should be used for).

+

Read more about Atomic Data Core

+

Atomic Data Extended

+

Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization.

+
    +
  • Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions.
  • +
  • Agents are Users that enable authentication. They are Resources with their own Public and Private keys, which they use to identify themselves.
  • +
  • Collections: querying, filtering, sorting and pagination.
  • +
  • Paths: traverse graphs.
  • +
  • Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems.
  • +
  • Invites: create new users and provide them with rights.
  • +
  • WebSockets: real-time updates.
  • +
  • Endpoints: provide machine-readable descriptions of web services.
  • +
  • Files: upload, download and metadata for files.
  • +
+

Atomizing: how to create, convert and host Atomic Data

+

Atomic Data has been designed to be very easy to create and host. +In the Atomizing section, we'll show you how you can create Atomic Data in three ways:

+ +

Tools & libraries

+ +

Get involved

+

Make sure to join our Discord if you'd like to discuss Atomic Data with others.

+

Status

+

Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen.

+

Reading these docs

+

This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. +That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. +If you encounter any issues while reading, please leave an issue on Github. +Use the arrows on the side / bottom to go to the next page.

+

Table of contents

+ +

Specification (core)

+ +

Specification (extended)

+ +

Create Atomic Data

+ +

Use Atomic Data

+ +
+

Acknowledgements | +Newsletter | +Get involved

+

Motivation: Why Atomic Data?

+ +

Give people more control over their data

+

The world wide web was designed by Tim Berners-Lee to be a decentralized network of servers that help people share information. +As I'm writing this, it is exactly 30 years ago that the first website has launched. +Unfortunately, the web today is not the decentralized network it was supposed to be. +A handful of large tech companies are in control of how the internet is evolving, and where and how our data is being stored. +The various services that companies like Google and Microsoft offer (often for free) integrate really well with their other services, but are mostly designed to lock you in. +Vendor lock-in means that it is often difficult to take your information from one app to another. +This limits innovation, and limits users to decide how they want to interact with their data. +Companies often have incentives that are not fully aligned with what users want. +For example, Facebook sorts your newsfeed not to make you satisfied, but to make you spend as much time looking at ads. +They don't want you to be able to control your own newsfeed. +Even companies like Apple, that don't have an ad-revenue model, still have a reason to (and very much do) lock you in. +To make things even worse, even open-source projects made by volunteers often don't work well together. +That's not because of bad intentions, that's because it is hard to make things interoperable.

+

If we want to change this, we need open tech that works really well together. +And if we want that, we need to standardize. +The existing standards are well-suited for documents and webpages, but not for structured personal data. +If we want to have that, we need to standardize the read-write web, which includes standardizing how items are changed, how their types are checked, how we query lists, and more. +I want all people to have a (virtual) private server that contains their own data, that they control. +This Personal Data Store could very well be an old smartphone with a broken screen that is always on, running next to your router.

+

Atomic Data is designed to be a standard that achieves this. +But we need more than a standard to get adoption - we need implementations. +That's why I've been working on a server, various libraries, a GUI and more - all MIT licensed. +If Atomic Data will be successful, there will likely be other, better implementations.

+

Linked data is awesome, but it is too difficult for developers in its current form

+

Linked data (RDF / the semantic web) enables us to use the web as a large, decentralized graph database. +Using links everywhere in data has amazing merits: links remove ambiguity, they enable exploration, they enable connected datasets. +But the existing specs are too difficult to use, and that is harming adoption.

+

At my company Ontola, we've been working with linked data quite intensely for the last couple of years. +We went all-in on RDF, and challenged ourselves to create software that communicates exclusively using it. +That has been an inspiring, but at times also a frustrating journey. +While building our e-democracy platform Argu.co, we had to solve many RDF related problems. +How to properly model data in RDF? How to deal with sequences? How to communicate state changes? Which serialization format to use? How to convert RDF to HTML, and build a front-end? +We tackled some of these problems by having a tight grip on the data that we create (e.g. we know the type of data, because we control the resources), and another part is creating new protocols, formats, tools, and libraries. +But it took a long time, and it was hard. +It's been almost 15 years since the introduction of linked data, and its adoption has been slow. +We know that some of its merits are undeniable, and we truly want the semantic web to succeed. +I believe the lack of growth partially has to do with a lack of tooling, but also with some problems that lie in the RDF data model.

+

Atomic Data aims to take the best parts from RDF, and learn from the past to make a more developer-friendly, performant and reliable data model to achieve a truly linked web. +Read more about how Atomic Data relates to RDF, and why these changes have been made.

+

Make standardization easier and cheaper

+

Standards for data sharing are great, but creating one can be very costly endeavor. +Committees with stakeholders write endless documents describing the intricacies of domain models, which fields are allowed and which are required, and how data is serialized. +In virtually all cases, these documents are only written for humans - and not for computers. +Machine readable ways to describe data models like UML diagrams and OpenAPI specifications (also known as Swagger) help to have machine-readable descriptions, but these are still not really used by machines - they are mostly only used to generate visualizations for humans. +This ultimately means that implementations of a standard have to be manually checked for compliance, which often results in small (yet important) differences that severely limit interoperability. +These implementations will also often want to extend the original definitions, but they are almost always unable to describe what they have extended.

+

Standardizing with Atomic Data solves these issues. +Atomic Data takes the semantic value of ontologies, and merges it with a machine-readable schemas. +This makes standards created using Atomic Data easy to read for humans, and easy to validate for computers (which guarantees interoperability). +Atomic Data has a highly standardized protocol for fetching data, which means that Atomic Schemas can link to each other, and re-use existing Properties. +For developers (the people who need to actually implement and use the data that has been standardized), this means their job becomes easier. +Because Properties have URLs, it becomes trivial to add new Properties that were initially not in the main specification, without sacrificing type safety and validation abilities.

+

Make it easier for developers to build feature-rich, interoperable apps

+

Every time a developer builds an application, they have to figure a lot of things out. +How to design the API, how to implement forms, how to deal with authentication, authorization, versioning, search... +A lot of time is essentially wasted on solving these issues time and time again.

+

By having a more complete, strict standard, Atomic Data aims to decrease this burden. +Atomic Schema enables developers to easily share their datamodels, and re-use those from others. +Atomic Commits helps developers to deal with versioning, history, undo and audit logs. +Atomic Hierarchies provides an intuitive model for authorization and access control. +And finally, the existing open source Atomic Data software (such as a server + database, a browser GUI, various libraries and React templates) help developers to have these features without having to do the heavy lifting themselves.

+

Strategy, history and roadmap for Atomic Data

+

We have the ambition to make the internet more interoperable. +We want Atomic Data to be a commonly used specification, enabling a vast amount of applications to work together and share information. +This means we need a lot of people to understand and contribute to Atomic Data. +In this document, discuss the strategic principles we use, the steps we took, and the path forward. +This should help you understand how and where you may be able to contribute.

+

Strategy for adoption

+
    +
  • Work on both specification and implementations (both client and server side) simultaneously to make sure all ideas are both easily explainable and properly implementable. Don't design a spec with a large committee over many months, only to learn that it has implementation issues later on.
  • +
  • Create libraries whenever possible. Enable other developers to re-use the technology in their own stacks. Keep the code as modular as possible.
  • +
  • Document everything. Not just your APIs - also your ideas, considerations and decisions.
  • +
  • Do everything public. All code is open source, all issues are publicly visible. Allow outsiders to learn everything and start contributing.
  • +
  • Make an all-in-one workspace app that stand on its own. Atomic Data may be an abstract, technical story, but we still need end-user friendly applications that solve actual problems if we want to get as much adoption as possible.
  • +
  • Let realistic use cases guide API design. Don't fall victim to spending too much time for extremely rare edge-cases, while ignoring more common issues and wishes.
  • +
  • Familiarity first. Make tools and specs that feel familiar, build libraries for popular frameworks, and stick to conventions whenever possible.
  • +
+

History

+
    +
  • First draft of specification (2020-06). Atomic Data started as an unnamed bundle of ideas and best practices to improve how we work with linked data, but quickly turned into a single (draft) specification. The idea was to start with a cohesive and easy to understand documentation, and use that as a stepping stone for writing the first code. After this, the code and specification should both be worked on simultaneously to make sure ideas are both easily explainable and properly implementable. Many of the earliest ideas were changed to make implementation easier.
  • +
  • atomic-cli + atomic-lib (2020-07). The CLI functioned as the first platform to explore some of the most core ideas of Atomic Data, such as Properties and fetching. atomic_lib is the place where most logic resides. Written in Rust.
  • +
  • AtomicServer (2020-08). The server (using the same atomic_lib as the CLI) should be a fast, lightweight server that must be easy to set-up. Functions as a graph database with no dependencies.
  • +
  • Collections (2020-10). Allows users to perform basic queries, filtering, sorting and pagination.
  • +
  • Commits (2020-11). Allow keeping track of an event-sourced log of all activities that mutate resources, which in turn allows for versioning and adding new types of indexes later on.
  • +
  • JSON-AD (2021-02). Instead of the earlier proposed serialization format .ad3, we moved to the more familiar json-ad.
  • +
  • Atomic-Data-Browser (2021-02). We wanted typescript and react libraries, as well as a nice interactive GUI that works in the browser. It should implement all relevant parts of the specification.
  • +
  • Endpoints (2021-03). Machine readable API endpoints (think Swagger / OpenAPI spec) for things like versioning, path traversal and more.
  • +
  • Classes and Properties editable from the browser (2021-04). The data-browser is now powerful enough to use for managing the core ontological data of the project.
  • +
  • Hierarchies & Invitations (2021-06). Users can set rights, structure Resources and invite new people to collaborate.
  • +
  • Websockets (2021-08). Live synchronization between client and server.
  • +
  • Use case: Document Editor (2021-09). Notion-like editor with real-time synchronization.
  • +
  • Full-text search (2021-11). Powered by Tantivy.
  • +
  • Authentication for read access (2021-11). Allows for private data.
  • +
  • Desktop support (2021-12). Run Atomic-Server on the desktop, powered by Tauri. Easier install UX, system tray icon.
  • +
  • File management (2021-12). Upload, download and view Files.
  • +
  • Indexed queries (2022-01). Huge performance increase for queries. Allows for far bigger datasets.
  • +
  • Use case: ChatRoom (2022-04). Group chat application. To make this possible, we had to extend the Commit model with a push action, and allow Plugins to create new Commits.
  • +
  • JSON-AD Publishing and Importing (2022-08). Creating and consuming Atomic Data becomes a whole lot easier.
  • +
  • @tomic/svelte (2022-12). Library for integrating Atomic Data with Svelte(Kit).
  • +
+

Where we're at

+

Most of the specification seems to become pretty stable. +The implementations are working better every day, although 1.0 releases are still quite a bit far away. +At this point, the most important thing is to get developers to try out Atomic Data and provide feedback. +That means not only make it easy to install the tools, but also allow people to make Atomic Data without using any of our own tools. +That's why we're now working on the JSON-AD and Atomizer projects (see below).

+

Roadmap

+
    +
  • Video(s) about Atomic Data (2023 Q1). Explain what Atomic Data is, why we're doing this, and how to get started.
  • +
  • Atomic Tables (2023 Q2). A powerful table editor with keyboard / copy / paste / sort support that makes it easier to model and edit data.
  • +
  • E-mail registration (2023 Q1). This makes it easier for users to get started, and de-emphasizes the importance of private key management, as user can register new Private Keys using their e-mail address.
  • +
  • Headless CMS tooling (2023). Use Atomic-Server to host and edit data that is being read by a front-end JAMSTACK type of tool, such as NextJS or SvelteKit.
  • +
  • Atomizer (2023). Import files and automatically turn these into Atomic Data.
  • +
  • Model Marketplace (2023 Q4). A place where user can easily find, compare and use Classes, Properties and Ontologies.
  • +
  • Atomic-server plugins (2024). Let developers design new features without having to make PRs in Atomic-Server, and let users install apps without re-compiling (or even restarting) anything.
  • +
  • Atomic-browser plugins (2024). Create new views for Classes.
  • +
  • 1.0 release (2024). Mark the specification, the server (tracking issue) and the browser as stable. It is possible that the Spec will become 1.0 before any implementation is stable. Read the STATUS.md document for an up-to-date list of features that are already stable.
  • +
+

When (not) to use Atomic Data

+

When should you use Atomic Data

+
    +
  • Flexible schemas. When dealing with structured wikis or semantic data, various instances of things will have different attributes. Atomic Data allows any kind of property on any resource.
  • +
  • Open data. Atomic Data is a bit harder to create than plain JSON, for example, but it is easier to re-use and understand. It's use of URLs for properties makes data self-documenting.
  • +
  • High interoperability requirements. When multiple groups of people have to use the same schema, Atomic Data provides easy ways to constrain and validate the data and ensure type safety.
  • +
  • Connected / decentralized data. With Atomic Data, you use URLs to point to things on other computers. This makes it possible to connect datasets very explicitly, without creating copies. Very useful for decentralized social networks, for example.
  • +
  • Auditability & Versioning. Using Atomic Commits, we can store all changes to data as transactions that can be replayed. This creates a complete audit log and history.
  • +
  • JSON or RDF as Output. Atomic Data serializes to idiomatic, clean JSON as well as various RDF formats (Turtle / JSON-LD / n-triples / RDF/XML).
  • +
+

When not to use Atomic Data

+
    +
  • Internal use only. If you're not sharing structured data, Atomic Data will probably only make things harder for you.
  • +
  • Big Data. If you're dealing with TeraBytes of data, you probably don't want to use Atomic Data. The added cost of schema validation and the lack of distributed / large scale persistence tooling makes it not the right choice.
  • +
  • Video / Audio / 3D. These should have unique, optimized binary representations and have very strict, static schemas. The advantages of atomic / linked data do little to improve this, unless it's just for metadata.
  • +
+

What is Atomic Data?

+

Atomic Data Core

+

Atomic Data is a modular specification for sharing information on the web. +Since Atomic Data is a modular specification, you can mostly take what you want to use, and ignore the rest. +The Core part, however, is the only required part of the specification, as all others depend on it.

+

Atomic Data Core can be used to express any type of information, including personal data, vocabularies, metadata, documents, files and more. +It's designed to be easily serializable to both JSON and linked data formats. +It is a typed data model, which means that every value must be validated by their datatype.

+

Design goals

+
    +
  • Browsable: Data should explicitly link to other pieces of data, and these links should be followable.
  • +
  • Semantic: Every data Atom and relation has a clear semantic meaning.
  • +
  • Interoperable: Plays nice with other data formats (e.g. JSON, XML, and all RDF formats).
  • +
  • Open: Free to use, open source, no strings attached.
  • +
  • Clear Ownership: The data shows who (or which domain) is in control of the data, so new versions of the data can easily be retrieved.
  • +
  • Mergeable: Any two sets of Atoms can be merged into a single graph without any merge conflicts / name collisions.
  • +
  • Extensible: Anyone can define their own data types and create Atoms with it.
  • +
  • ORM-friendly: Navigate a decentralized graph by using dot.syntax, similar to how you navigate a JSON object in javascript.
  • +
  • Type-safe: All valid Atomic data has an unambiguous, static datatype.
  • +
+

Concepts

+

Resource

+

A Resource is a bunch of information about a thing, referenced by a single link (the Subject). +Formally, it is a set of Atoms (i.e. a Graph) that share a Subject URL. +You can think of a Resource as a single row in a spreadsheet or database. +In practice, Resources can be anything - a Person, a Blogpost, a Todo item. +A Resource consists of at least one Atom, so it always has some Property and some Value. +A Property can only occur once in every Resource.

+

Atom (or Atomic Triple)

+

Every Resource is composed of Atoms. +The Atom is the smallest possible piece of meaningful data / information (hence the name). +You can think of an Atom as a single cell in a spreadsheet or database. +An Atom consists of three fields:

+
    +
  • Subject: the thing that the atom is providing information about. This is typically also the URL where we can find more information about it.
  • +
  • Property: the property of the thing that the atom is about (will always be a URL to a Property).
  • +
  • Value: the new piece of information about the Atom.
  • +
+

If you're familiar with RDF, you'll notice similarities. +An Atom is comparable with an RDF Triple / Statement (although there are important differences).

+

Let's turn this sentence into Atoms:

+

Arnold Peters, who's born on the 20th of Januari 1991, has a best friend named Britta Smalls.

+
+ + + + +
SubjectPropertyValue
Arnoldlast namePeters
Arnoldbirthdate1991-01-20
Arnoldbest friendBritta
Brittalast nameSmalls
+
+

The table above shows human readable strings, but in Atomic Data, we use links (URLs) wherever we can. +That's because links are awesome. +Links remove ambiguity (we know exactly which person or property we mean), they are resolvable (we can click on them), and they are machine readable (machines can fetch links to do useful things with them). +So the table from above, will more closely resemble this one:

+
+ + + + +
SubjectPropertyValue
https://example.com/arnoldhttps://example.com/properties/lastnamePeters
https://example.com/arnoldhttps://example.com/properties/birthDate1991-01-20
https://example.com/arnoldhttps://example.com/properties/bestFriendhttps://example.com/britta
https://example.com/brittahttps://example.com/properties/lastnameSmalls
+
+

The standard serialization format for Atomic Data is JSON-AD, which looks like this:

+
[{
+  "@id": "https://example.com/arnold",
+  "https://example.com/properties/lastname": "Peters",
+  "https://example.com/properties/birthDate": "1991-01-20",
+  "https://example.com/properties/bestFriend": "https://example.com/britta",
+},{
+  "@id": "https://example.com/britta",
+  "https://example.com/properties/lastname": "Smalls",
+}]
+
+

The @id field denotes the Subject of each Resource, which is also the URL that should point to where the resource can be found.

+

In the JSON-AD example above, we have:

+
    +
  • two Resources, describing two different Subjects: https://example.com/arnold and https://example.com/britta.
  • +
  • three different Properties (https://example.com/properties/lastname, https://example.com/properties/birthDate, and https://example.com/properties/bestFriend)
  • +
  • four Values (Peters, 1991-01-20, https://example.com/britta and Smalls)
  • +
  • four Atoms - every row is one Atom.
  • +
+

All Subjects and Properties are Atomic URLs: they are links that point to more Atomic Data. +One of the Values is a URL, too, but we also have values like Arnold and 1991-01-20. +Values can have different Datatypes +In most other data formats, the datatypes are limited and are visually distinct. +JSON, for example, has array, object, string, number and boolean. +In Atomic Data, however, datatypes are defined somewhere else, and are extendible. +To find the Datatype of an Atom, you fetch the Property, and that Property will have a Datatype. +For example, the https://example.com/properties/bornAt Property requires an ISO Date string, and the https://example.com/properties/firstName Property requires a regular string. +This might seem a little tedious and weird at first, but is has some nice advantages! +Their Datatypes are defined in the Properties.

+

Subject field

+

The Subject field is the first part of an Atom. +It is the identifier that the rest of the Atom is providing information about. +The Subject field is a URL that points to the Resource. +The creator of the Subject MUST make sure that it resolves. +In other words: following / downloading the Subject link will provide you with all the Atoms about the Subject (see Querying Atomic Data. +This also means that the creator of a Resource must make sure that it is available at its URL - probably by hosting the data, or by using some service that hosts it. +In JSON-AD, the Subject is denoted by @id.

+

Property field

+

The Property field is the second part of an Atom. +It is a URL that points to an Atomic Property. +Examples can be found at https://atomicdata.dev/properties.

+ +

The Property field MUST be a URL, and that URL MUST resolve (it must be publicly available) to an Atomic Property. +The Property is perhaps the most important concept in Atomic Data, as it is what enables the type safety (thanks to datatype) and the JSON compatibility (thanks to shortname). +We also use Properties for rendering fields in a form, because the Datatype, shortname and description helps us to create an intuitive, easy to understand input for users.

+

Value field

+

The Value field is the third part of an Atom. +In RDF, this is called an object. +Contrary to the Subject and Property values, the Value can be of any datatype. +This includes URLs, strings, integers, dates and more.

+

Graph

+

A Graph is a collection of Atoms. +A Graph can describe various subjects, which may or may not be related. +Graphs can have several characteristics (Schema Complete, Valid, Closed)

+

In mathematial graph terminology, a graph consists of nodes and edges. +The Atomic Data model is a so called directed graph, which means that relationships are by default one-way. +In Atomic Data, every node is a Resource, and every edge is a Property.

+

Nested Resource

+

A Nested Resource only exists inside of another resource. +It does not have its own subject.

+

In the next chapter, we'll explore how Atomic Data is serialized.

+

Serialization of Atomic Data

+

Atomic Data is not necessarily bound to a single serialization format. +It's fundamentally a data model, and that's an important distinction to make. +It can be serialized in different ways, but there is only one required: JSON-AD.

+

JSON-AD

+

JSON-AD (more about that on the next page) is specifically designed to be a simple, complete and performant format for Atomic Data.

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/parent": "https://atomicdata.dev/properties",
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

Read more about JSON-AD

+

JSON (simple)

+

Atomic Data is designed to be serializable to clean, simple JSON, for usage in (client) apps that don't need to know the full URLs of properties.

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "parent": "https://atomicdata.dev/properties",
+  "shortname": "description"
+}
+
+

Read more about JSON and Atomic Data

+

RDF serialization formats

+

Since Atomic Data is a strict subset of RDF, RDF serialization formats can be used to communicate and store Atomic Data, such as N-Triples, Turtle, HexTuples, JSON-LD and other RDF serialization formats. +However, not all valid RDF is valid Atomic Data. +Atomic Data is more strict. +Read more about serializing Atomic Data to RDF in the RDF interoperability section.

+

JSON-LD:

+
{
+  "@context": {
+    "datatype": {
+      "@id": "https://atomicdata.dev/properties/datatype",
+      "@type": "@id"
+    },
+    "description": "https://atomicdata.dev/properties/description",
+    "is-a": {
+      "@container": "@list",
+      "@id": "https://atomicdata.dev/properties/isA"
+    },
+    "parent": {
+      "@id": "https://atomicdata.dev/properties/parent",
+      "@type": "@id"
+    },
+    "shortname": "https://atomicdata.dev/properties/shortname"
+  },
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "parent": "https://atomicdata.dev/properties",
+  "shortname": "description"
+}
+
+

Turtle / N-Triples:

+
<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/datatype> <https://atomicdata.dev/datatypes/markdown> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/parent> <https://atomicdata.dev/properties> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/shortname> "description"^^<https://atomicdata.dev/datatypes/slug> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/isA> "https://atomicdata.dev/classes/Property"^^<https://atomicdata.dev/datatypes/resourceArray> .
+<https://atomicdata.dev/properties/description> <https://atomicdata.dev/properties/description> "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more."^^<https://atomicdata.dev/datatypes/markdown> .
+
+

JSON-AD: The Atomic Data serialization format

+

Although you can use various serialization formats for Atomic Data, JSON-AD is the default and only required serialization format. +It is what the current Rust and Typescript / React implementations use to communicate. +It is designed to feel familiar to developers and to be easy and performant to parse and serialize. +It is inspired by JSON-LD.

+

It uses JSON, but has some additional constraints:

+
    +
  • Every single Object is a Resource.
  • +
  • Every Key is a Property URL. Other keys are invalid. Each Property URL must resolve to an online Atomic Data Property.
  • +
  • The @id field is special: it defines the Subject of the Resource. If you send an HTTP GET request there with an content-type: application/ad+json header, you should get the full JSON-AD resource.
  • +
  • JSON arrays are mapped to Resource Arrays
  • +
  • Numbers can be Integers, Timestamps or Floats.
  • +
  • JSON booleans map to Booleans.
  • +
  • JSON strings can be many datatypes, including String, Markdown, Date or other.
  • +
  • Nested JSON Objects are Nested Resources. A Nested Resource can either be Anonymous (without an @id subject) or a Named Nested Resource (with an @id subject). Everywhere a Subject URL can be used as a value (i.e. all properties with the datatype atomicURL), a Nested Resource can be used instead. This also means that an item in an ResourceArray can be a Nested Resource.
  • +
  • The root data structure must either be a Named Resource (with an @id), or an Array containing Named Resources. When you want to describe multiple Resources in one JSON-AD document, use an array as the root item.
  • +
+

Let's look at an example JSON-AD Resource:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

The mime type (for HTTP content negotiation) is application/ad+json (registration ongoing).

+

Nested, Anonymous and Named resources

+

In JSON-AD, a Resource can be respresented in multiple ways:

+
    +
  • Subject: A URL string, such as https://atomicdata.dev/classes/Class.
  • +
  • Named Resource: A JSON Object with an @id field containing the Subject.
  • +
  • Anonymous Nested Resource A JSON Object without an @id field. This is only possible if it is a Nested Resource, which means that it has a parent Resource.
  • +
+

Note that this is also valid for ResourceArrays, which usually only contain Subjects, but are allowed to contain Nested Resources.

+

In the following JSON-AD example, the address is a nested resource:

+
{
+  "@id": "https://example.com/arnold",
+  "https://example.com/properties/address": {
+    "https://example.com/properties/firstLine": "Longstreet 22",
+    "https://example.com/properties/city": "Watertown",
+    "https://example.com/properties/country": "the Netherlands",
+  }
+}
+
+

Nested Resources can be named or anonymous. An Anonymous Nested Resource does not have it's own @id field. +It does have its own unique path, which can be used as its identifier. +The path of the anonymous resource in the example above is https://example.com/arnold https://example.com/properties/address.

+

JSON-AD Parsers, serializers and other libraries

+
    +
  • Typescript / Javacript: @tomic/lib JSON-AD parser + in-memory store. Works with @tomic/react for rendering Atomic Data in React.
  • +
  • Rust: atomic_lib has a JSON-AD parser / serializer (and does a lot more).
  • +
+

Canonicalized JSON-AD

+

When you need deterministic serialization of Atomic Data (e.g. when calculating a cryptographic hash or signature, used in Atomic Commits), you can use the following procedure:

+
    +
  1. Serialize your Resource to JSON-AD
  2. +
  3. Do not include empty objects, empty arrays or null values.
  4. +
  5. All keys are sorted alphabetically (lexicographically) - both in the root object, as in any nested objects.
  6. +
  7. The JSON-AD is minified: no newlines, no spaces.
  8. +
+

The last two steps of this process is more formally defined by the JSON Canonicalization Scheme (JCS, rfc8785).

+

Interoperability with JSON and JSON-LD

+

Read more about this subject.

+

Querying Atomic Data

+

There are multiple ways of getting Atomic Data into some system:

+
    +
  • Subject Fetching requests a single subject right from its source
  • +
  • Atomic Collections can filter, sort and paginate resources
  • +
  • Atomic Paths is a simple way to traverse Atomic Graphs and target specific values
  • +
  • Triple Pattern Fragments allows querying for specific (combinations of) Subject, Property and Value.
  • +
  • SPARQL is a powerful Query language for traversing linked data graphs
  • +
+

Subject fetching (HTTP)

+

The simplest way of getting Atomic Data when the Subject is an HTTP URL, is by sending a GET request to the subject URL. +Set the Content-Type header to an Atomic Data compatible mime type, such as application/ad+json.

+
GET https://atomicdata.dev/test HTTP/1.1
+Content-Type: application/ad+json
+
+

The server SHOULD respond with all the Atoms of which the requested URL is the subject:

+
HTTP/1.1 200 OK
+Content-Type: application/ad+json
+Connection: Closed
+
+{
+  "@id": "https://atomicdata.dev/test",
+  "https://atomicdata.dev/properties/shortname": "1611489928"
+}
+
+

The server MAY also include other resources, if they are deemed relevant.

+

Atomic Collections

+

Collections are Resources that provide simple query options, such as filtering by Property or Value, and sorting. +They also paginate resources. +Under the hood, Collections are powered by Triple Pattern Fragments. +Use query parameters to traverse pages, filter, or sort.

+

Read more about Collections

+

Atomic Paths

+

An Atomic Path is a string that consist of one or more URLs, which when traversed point to an item.

+

Read more about Atomic Paths

+

SPARQL

+

SPARQL is a powerful RDF query language. +Since all Atomic Data is also valid RDF, it should be possible to query Atomic Data using SPARQL. +None of the exsisting implementations support a SPARQL endpoint, though.

+
    +
  • Convert / serialize Atomic Data to RDF (for example by using an accept header: curl -i -H "Accept: text/turtle" "https://atomicdata.dev")
  • +
  • Load it into a SPARQL engine of your choice
  • +
+

Atomic Paths

+

An Atomic Path is a string that consists of at least one URL, followed by one or more URLs or Shortnames. +Every single value in an Atomic Resource can be targeted through such a Path. +They can be used as identifiers for specific Values.

+

The simplest path, is the URL of a resource, which represents the entire Resource with all its properties. +If you want to target a specific atom, you can use an Atomic Path with a second URL. +This second URL can be replaced by a Shortname, if the Resource is an instance of a class which has properties with that Shortname (sounds more complicated than it is).

+

Example

+

Let's start with this simple Resource:

+
{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+}
+
+

Then the following Path targets the McLovin value:

+

https://example.com/john https://example.com/lastName => McLovin

+

Instead of using the full URL of the lastName Property, we can use its shortname:

+

https://example.com/john lastname => McLovin

+

We can also traverse relationships between resources:

+
[{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+  "https://example.com/employer": "https://example.com/XCorp",
+},{
+  "@id": "https://example.com/XCorp",
+  "https://example.com/description": "The greatest company!",
+}]
+
+

https://example.com/john employer description => The greatest company!

+

In the example above, the XCorp subject exists and is the source of the The greatest company! value. +We can use this path as a unique identifier for the description of John's current employer. +Note that the data for the description of that employer does not have to be in John's control for this path to work - it can live on a totally different server. +However, in Atomic Data it's also possible to include this description in the resource of John as a Nested Resource.

+

Nested Resources

+

All Atomic Data Resources that we've discussed so far have an explicit URL as a subject. +Unfortunately, creating unique and resolvable URLs can be a bother, and sometimes not necessary. +If you've worked with RDF, this is what Blank Nodes are used for. +In Atomic Data, we have something similar: Nested Resources.

+

Let's use a Nested Resource in the example from the previous section:

+
{
+  "@id": "https://example.com/john",
+  "https://example.com/lastName": "McLovin",
+  "https://example.com/employer": {
+    "https://example.com/description": "The greatest company!",
+  }
+}
+
+

Now the employer is simply a nested Object. +Note that it no longer has its own @id. +However, we can still identify this Nested Resource using its Path.

+

The Subject of the nested resource is its path: https://example.com/john https://example.com/employer, including the spacebar.

+

Note that the path from before still resolves:

+

https://example.com/john employer description => The greatest company!

+

Traversing Arrays

+

We can also navigate Arrays using paths.

+

For example:

+
{
+  "@id": "https://example.com/john",
+  "hasShoes": [
+    {
+      "https://example.com/name": "Mr. Boot",
+    },
+    {
+      "https://example.com/name": "Sunny Sandals",
+    }
+  ]
+}
+
+

The Path of Mr. Boot is:

+
https://example.com/john hasShoes 0 name
+
+

You can target an item in an array by using a number to indicate its position, starting with 0.

+

Notice how the Resource with the name: Mr. Boot does not have an explicit @id, but it does have a Path. +This means that we still have a unique, globally resolvable identifier - yay!

+

Try for yourself

+

Install the atomic-cli software and run atomic-cli get https://atomicdata.dev/classes/Class description.

+

Atomic Schema

+

Atomic Schema is the proposed standard for specifying classes, properties and datatypes in Atomic Data. +You can compare it to UML diagrams, or what XSD is for XML. +Atomic Schema deals with validating and constraining the shape of data. +It is designed for checking if all the required properties are present, and whether the values conform to the datatype requirements (e.g. datetime, or URL).

+

This section will define various Classes, Properties and Datatypes (discussed in Atomic Core: Concepts).

+

Design Goals

+
    +
  • Decentralized: Classes and Properties can be defined in external systems, and are resolved using web protocols such as HTTP.
  • +
  • Typed: Every Atom of data has a clear datatype. Validated data should be highly predictable.
  • +
  • IDE-friendly: Although Atomic Schema uses many URLs, users / developers should not have to type full URLs. The schema uses shortnames as aliases.
  • +
  • Self-documenting: When seeing a piece of data, simply following links will explain you how the data model is to be understood. This removes the need for (most of) existing API documentation.
  • +
  • Extensible: Anybody can create their own Datatypes, Properties and Classes.
  • +
  • Accessible: Support for languages, easily translatable. Useful for humans and machines.
  • +
  • Atomic: All the design goals of Atomic Data itself also apply here. Atomic Schema is defined using Atomic Data.
  • +
+

In short

+

In short, Atomic Schema works like this:

+

The Property field in an Atom, or the key in a JSON-AD object, links to a Property Resource. +It is important that the URL to the Property Resource resolves, as others can re-use it and check its datatype. +This Property does three things:

+
    +
  1. it links to a Datatype which indicates which Value is acceptable.
  2. +
  3. it has a description which tells you what the property means, what the relationship between the Subject and the Value means.
  4. +
  5. it provides a Shortname, which is sometimes used as an alternative to the full URL of the Property.
  6. +
+

DataTypes define the shape of the Value, e.g. a Number (124) or Boolean (true).

+

Classes are a special kind of Resource that describe an abstract class of things (such as "Person" or "Blog"). +Classes can recommend or require a set of Properties. +They behave as Models, similar to struts in C or interfaces in Typescript. +A Resource could have one or more classes, which could provide information about which Properties are expected or required.

+

example:

+
{
+  "@id": "https://atomicdata.dev/classes/Agent",
+  "https://atomicdata.dev/properties/description": "An Agent is a user that can create or modify data. It has two keys: a private and a public one. The private key should be kept secret. The public key is used to verify signatures (on [Commits](https://atomicdata.dev/classes/Commit)) set by the of the Agent.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Class"
+  ],
+  "https://atomicdata.dev/properties/recommends": [
+    "https://atomicdata.dev/properties/name",
+    "https://atomicdata.dev/properties/description"
+  ],
+  "https://atomicdata.dev/properties/requires": [
+    "https://atomicdata.dev/properties/publicKey"
+  ],
+  "https://atomicdata.dev/properties/shortname": "agent"
+}
+
+

Atomic Schema: Classes

+

The following Classes are some of the most fundamental concepts in Atomic Data, as they make data validation possible.

+

Click the URLs of the classes to read the most actual data, and discover their properties!

+

Property

+

URL: https://atomicdata.dev/classes/Property

+

The Property class. +The thing that the Property field should link to. +A Property is an abstract type of Resource that describes the relation between a Subject and a Value. +A Property provides some semantic information about the relationship (in its description), it provides a shorthand (the shortname) and it links to a Datatype.

+

Properties of a Property instance:

+
    +
  • shortname - (required, Slug) the shortname for the property, used in ORM-style dot syntax (thing.property.anotherproperty).
  • +
  • description - (optional, AtomicURL, TranslationBox) the semantic meaning of the.
  • +
  • datatype - (required, AtomicURL, Datatype) a URL to an Atomic Datatype, which defines what the datatype should be of the Value in an Atom where the Property is the
  • +
  • classtype - (optional, AtomicURL, Class) if the datatype is an Atomic URL, the classtype defines which class(es?) is (are?) acceptable.
  • +
+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

Visit https://atomicdata.dev/properties for a list of example Properties.

+

Datatype

+

URL: https://atomicdata.dev/classes/Datatype

+

A Datatype specifies how a Value value should be interpreted. +Datatypes are concepts such as boolean, string, integer. +Since DataTypes can be linked to, you dan define your own. +However, using non-standard datatypes limits how many applications will know what to do with the data.

+

Properties:

+
    +
  • description - (required, AtomicURL, TranslationBox) how the datatype functions.
  • +
  • stringSerialization - (required, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as an UTF-8 string
  • +
  • stringExample - (required, string) an example stringSerialization that should be parsed correctly
  • +
  • binarySerialization - (optional, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as a byte array.
  • +
  • binaryExample - (optional, string) an example binarySerialization that should be parsed correctly. Should have the same contents as the stringExample. Required if binarySerialization is present on the DataType.
  • +
+

Visit https://atomicdata.dev/datatypes for a list of example Datatypes.

+

Class

+

URL: https://atomicdata.dev/classes/Class

+

A Class is an abstract type of Resource, such as Person. +It is convention to use an Uppercase in its URI. +Note that in Atomic Data, a Resource can have several Classes - not just a single one. +If you need to set more complex constraints to your Classes (e.g. maximum string length, Properties that depend on each other), check out SHACL.

+

Properties:

+
    +
  • shortname - (required, Slug) a short string shorthand.
  • +
  • description - (required, AtomicURL, TranslationBox) human readable explanation of what the Class represents.
  • +
  • requires - (optional, ResourceArray, Property) a list of Properties that are required. If absent, none are required. These SHOULD have unique shortnames.
  • +
  • recommends - (optional, ResourceArray, Property) a list of Properties that are recommended. These SHOULD have unique shortnames.
  • +
+ + + + + +

A resource indicates it is an instance of that class by adding a https://atomicdata.dev/properties/isA Atom.

+

Example:

+
{
+  "@id": "https://atomicdata.dev/classes/Class",
+  "https://atomicdata.dev/properties/description": "A Class describes an abstract concept, such as 'Person' or 'Blogpost'. It describes the data shape of data and explains what the thing represents. It is convention to use Uppercase in its URL. Note that in Atomic Data, a Resource can have several Classes - not just a single one.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Class"
+  ],
+  "https://atomicdata.dev/properties/recommends": [
+    "https://atomicdata.dev/properties/recommends",
+    "https://atomicdata.dev/properties/requires"
+  ],
+  "https://atomicdata.dev/properties/requires": [
+    "https://atomicdata.dev/properties/shortname",
+    "https://atomicdata.dev/properties/description"
+  ],
+  "https://atomicdata.dev/properties/shortname": "class"
+}
+
+

Check out a list of example Classes.

+

Atomic Schema: Datatypes

+

The Atomic Datatypes consist of some of the most commonly used Datatypes.

+

Note: Please visit https://atomicdata.dev/datatypes for the latest list of official Datatypes.

+

Slug

+

URL: https://atomicdata.dev/datatypes/slug

+

A string with a limited set of allowed characters, used in IDE / Text editor context. +Only letters, numbers and dashes are allowed.

+

Regex: ^[a-z0-9]+(?:-[a-z0-9]+)*$

+

Atomic URL

+

URL: https://atomicdata.dev/datatypes/atomicURL

+

A URL that should resolve to an Atomic Resource.

+

URI

+

URL: https://atomicdata.dev/datatypes/URI

+

A Uniform Resource Identifier, preferably a URL (i.e. an URI that can be fetched). +Could be HTTP, HTTPS, or any other type of schema.

+

String

+

URL: https://atomicdata.dev/datatypes/string

+

UTF-8 String, no max character count. +Newlines use backslash escaped \n characters.

+

e.g. String time! \n Second line!

+

Markdown

+

URL: https://https://atomicdata.dev/datatypes/markdown

+

A markdown string, using the CommonMark syntax. +UTF-8 formatted, no max character count, newlines are \n.

+

e.g.

+
# Heading
+
+Paragraph with [link](https://example.com).
+
+

Integer

+

URL: https://atomicdata.dev/datatypes/integer

+

Signed Integer, max 64 bit. +Max value: 9223372036854775807

+

e.g. -420

+

Float

+

URL: https://atomicdata.dev/datatypes/float

+

Number with a comma. +Max value: 9223372036854775807

+

e.g. -420

+

Boolean

+

URL: https://atomicdata.dev/datatypes/boolean

+

True or false, one or zero.

+

String serialization

+

true or false.

+

Binary serialization

+

Use a single bit one boolean.

+

1 for true, or 0 for false.

+

Date

+

ISO date without time. +YYYY-MM-DD.

+

e.g. 1991-01-20

+

Timestamp

+

URL: https://atomicdata.dev/datatypes/timestamp

+

Similar to Unix Timestamp. +Milliseconds since midnight UTC 1970 Jan 01 (aka the Unix Epoch). +Use this for most DateTime fields. +Signed 64 bit integer (instead of 32 bit in Unix systems).

+

e.g. 1596798919 (= 07 Aug 2020 11:15:19)

+

ResourceArray

+

URL: https://atomicdata.dev/datatypes/resourceArray

+

Sequential, ordered list of Atomic URIs. +Serialized as a JSON array with strings. +Note that other types of arrays are not included in this spec, but can be perfectly valid.

+

(Discussion)

+
    +
  • e.g. ["https://example.com/1", "https://example.com/1"]
  • +
+

Atomic Schema FAQ

+

How do I create a Property that supports multiple Datatypes?

+

A property only has one single Datatype. +However, feel free to create a new kind of Datatype that, in turn, refers to other Datatypes. +Perhaps Generics, or Option like types should be part of the Atomic Base Datatypes.

+

Do you have an enum datatype?

+

In Atomic Data, enum is not a datatype, but it's a constraint that can be added to properties that have. +You can set allows-only on a Property, and use that to limit which values are allowed.

+

How should a client deal with Shortname collisions?

+

Atomic Data guarantees Subject-Property uniqueness, which means that Valid Resources are guaranteed to have only one of each Property. +Properties offer Shortnames, which are short strings. +These strings should be unique inside Classes, but these are not guaranteed to be unique inside all Resources. +Note that Resources can have multiple Classes, and through that, they can have colliding Shortnames. +Resources are also free to include Properties from other Classes, and their Shortnames, too, might collide.

+

For example:

+
{
+  "@id": "https://example.com/people/123",
+  "https://example.com/name": "John",
+  "https://another.example.com/someOtherName": "Martin"
+}
+
+

Let's assume that https://example.com/name and https://another.example.com/someOtherName are Properties that have the Shortname: name.

+

What if a client tries something such as people123.name? +To consistently return a single value, we need some type of precedence:

+
    +
  1. The earlier Class mentioned in the isA Property of the resource. Resources can have multiple classes, but they appear in an ordered ResourceArray. Classes, internally should have no key collisions in required and recommended properties, which means that they might have. If these exist internally, sort the properties by how they are ordered in the isA array - first item is preferred.
  2. +
  3. When the Properties are not part of any of the mentioned Classes, use Alphabetical sorting of the Property URL.
  4. +
+

When shortname collisions are possible, it's recommended to not use the shortname, but use the URL of the Property:

+
people123."https://example.com/name"
+
+

It is likely that using the URL for keys is also the most performant, since it probably more closely mimics the internal data model.

+ +

Many features in Atomic Data apps depend on the availability of Resources on their subject URL. +If that server is offline, or the URL has changed, the existing links will break. +This is a fundamental problem to HTTP, and not unique to Atomic Data. +Like with websites, hosts should make sure that their server stays available, and that URLs remain static.

+

One possible solution to this problem, is using Content Addressing, such as the IPFS protocol enables, which is why we're planning for using that in the near future.

+

Another approach, is using foreign keys (see issue).

+

How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?

+

Atomic Schema is the schema language for Atomic Data, whereas RDF has a couple of competing ones, which all vary greatly. +In short, OWL is not designed for schema validation, but SHACL and SheX can maybe be compared to Atomic Schema. +An important difference is that SHACL and SheX have to deal with all the complexities of RDF, whereas Atomic Data is more constrained.

+

For more information, see RDF interoperability.

+

What are the risks of using Schema data hosted somewhere else?

+

Every time you use an external URL in your data, you kind of create a dependency. +This is fundamental to linked data. +In Atomic Data, not having access to the Property in some JSON-AD resource will lead to now knowing how to interpret the data itself. +You will no longer know what the Datatype was (other than the native JSON datatype, of course), or what the semantic meaning was of the relationship.

+

There are multiple ways we can deal with this:

+
    +
  • Cache dependencies: Atomic Server already stores a copy of every class and property that it uses by default. The /path endpoint then allows clients to fetch these from servers that have cached it. If the source goes offline, the validations can still be performed by the server. However, it might be a good idea to migrate the data to a hosted ontology, e.g. by cloning the cached ontology.
  • +
  • Content-addressing: using non-HTTP identifiers, such as with IPFS.
  • +
+

(Discussion)

+

How do I deal with subclasses / inheritance?

+

Atomic Data does not have a concept of inheritance. +However, you can use the isA property to link to multiple Classes from a single resource. +This effectively

+

Atomic Data Extended

+

Atomic Data is a modular specification, which means that you can choose to implement parts of it. +All parts of Extended are optional to implement. +The Core of the specification (described in the previous chapter) is required for all of the Extended spec to work, but not the other way around.

+

However, many of the parts of Extended do depend on eachother.

+
    +
  • Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions.
  • +
  • Agents are Users that enable authentication. They are Resources with their own Public and Private keys, which they use to identify themselves.
  • +
  • Collections: querying, filtering, sorting and pagination.
  • +
  • Paths: traverse graphs.
  • +
  • Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems.
  • +
  • Invites: create new users and provide them with rights.
  • +
  • WebSockets: real-time updates.
  • +
  • Endpoints: provide machine-readable descriptions of web services.
  • +
  • Files: upload, download and metadata for files.
  • +
+

Atomic Agents

+

Atomic Agents are used for authentication: to set an identity and prove who an actor actually is. +Agents can represent both actual individuals, or machines that interact with data. +Agents are the entities that can get write / read rights. +Agents are used to sign Requests and Commits and to accept Invites.

+

Design goals

+
    +
  • Decentralized: Atomic Agents can be created by anyone, at any domain
  • +
  • Easy: It should be easy to work with, code with, and use
  • +
  • Privacy-friendly: Agents should allow for privacy friendly workflows
  • +
  • Verifiable: Others should be able to verify who did what
  • +
  • Secure: Resistant to attacks by malicious others
  • +
+

The Agent model

+

url: https://atomicdata.dev/classes/Agent

+

An Agent is a Resource with its own URL. +When it is created, the one creating the Agent will generate a cryptographic (Ed25519) keypair. +It is required to include the publicKey in the Agent resource. +The privateKey should be kept secret, and should be safely stored by the creator. +For convenience, a secret can be generated, which is a single long string of characters that encodes both the privateKey and the subject of the Agent. +This secret can be used to instantly, easily log in using a single string.

+

The publicKey is used to verify commit signatures by that Agent, to check if that Agent actually did create and sign that Commit.

+

Creating an Agent

+

Since an Agent is used for verification of commits, the Agent's subject should resolve and be publicly available. +This means that the one creating the Agent has to deal with this. +One way of doing this, is by hosting an Atomic Server. +An easier way of doing this, is by accepting an Invite that exists on someone else's server.

+

Hierarchy, rights and authorization

+

Hierarchies help make information easier to find and understand. +For example, most websites use breadcrumbs to show you where you are. +Your computer probably has a bunch of drives and deeply nested folders that contain files. +We generally use these hierarchical elements to keep data organized, and to keep a tighter grip on rights management. +For example, sharing a specific folder with a team, but a different folder could be private.

+

Although you are free to use Atomic Data with your own custom authorization system, we have a standardized model that is currently being used by Atomic-Server.

+

Design goals

+
    +
  • Fast. Authorization can sometimes be costly, but in this model we'll be considering performance.
  • +
  • Simple. Easy to understand, easy to implement.
  • +
  • Handles most basic use-cases. Should deal with basic read / write access control, calculating the size of a folder, rendering things in a tree.
  • +
+

Atomic Hierarchy Model

+
    +
  • Every Resource SHOULD have a parent. There are some exceptions to this, which are discussed below.
  • +
  • Any Resource can be a parent of some other Resource, as long as both Resources exists on the same Atomic Server.
  • +
  • Grants / rights given in a parent also apply to all children, and their children.
  • +
  • There are few Classes that do not require parents:
  • +
+

Authorization

+
    +
  • Any Resource might have read and write Atoms. These both contain a list of Agents. These Agents will be granted the rights to edit (using Commits) or read / use the Resources.
  • +
  • Rights are additive, which means that the rights add up. If a Resource itself has no write Atom containing your Agent, but it's parent does have one, you will still get the write right.
  • +
  • Rights cannot be removed by children or parents - they can only be added.
  • +
  • Commits can not be edited. They can be read if the Agent has rights to read the subject of the Commit.
  • +
+

Top-level resources

+

Some resources are special, as they do not require a parent:

+
    +
  • Drives are top-level items in the hierarchy: they do not have a parent.
  • +
  • Agents are top-level items because they are not owned by anything. They can always read and write themselves.
  • +
  • Commits are immutable, so they should never be edited by anyone. That's why they don't have a place in the hierarchy. Their read rights are determined by their subject.
  • +
+

Authentication

+

Authentication is about proving who you are, which is often the first step for authorization. See authentication.

+

Current limitations of the Authorization model

+

The specification is growing (and please contribute in the docs repo), but the current specification lacks some features:

+
    +
  • Rights can only be added, but not removed in the hierarchy. This means that you cannot have a secret folder inside a public folder.
  • +
  • No model for representing groups of Agents, or other runtime checks for authorization. (issue)
  • +
  • No way to limit delete access or invite rights separately from write rights (issue)
  • +
  • No way to request a set of rights for a Resource
  • +
+

Authentication in Atomic Data

+

Authentication means knowing who is doing something, either getting access or creating some new data. +When an Agent wants to edit a resource, they have to send a signed Commit, and the signatures are checked in order to authorize a Commit.

+

But how do we deal with reading data, how do we know who is trying to get access? +There are two ways users can authenticate themselves:

+
    +
  • Signing an Authentication Resource and using that as a cookie
  • +
  • Opening a WebSocket, and passing an Authentication Resource.
  • +
  • Signing every single HTTP request (more secure, less flexible)
  • +
+

Design goals

+
    +
  • Secure: Because, what's the point of authentication if it's not?
  • +
  • Easy to use: Setting up an identity should not require any effort, and proving identity should be minimal effort.
  • +
  • Anonimity allowed: Users should be able to have multiple identities, some of which are fully anonymous.
  • +
  • Self-sovereign: No dependency on servers that user's don't control. Or at least, minimise this.
  • +
  • Dummy-proof: We need a mechanism for dealing with forgetting passwords / client devices losing data.
  • +
  • Compatible with Commits: Atomic Commits require clients to sign things. Ideally, this functionality / strategy would also fit with the new model.
  • +
  • Fast: Of course, authentication will always slow things down. But let's keep that to a minimum.
  • +
+

Authentication Resources

+

An Authentication Resource is a JSON-AD object containing all the information a Server needs to make sure a valid Agent requests a session at some point in time. +These are used both in Cookie-based auth, as well as in WebSockets

+

We use the following fields (be sure to use the full URLs in the resource, see the example below):

+
    +
  • requestedSubject: The URL of the requested resource. +
      +
    • If we're authenticating a WebSocket, we use the wss address as the requestedSubject. (e.g. wss://example.com/ws)
    • +
    • If we're authenticating a Cookie of Bearer token, we use the origin of the server (e.g. https://example.com)
    • +
    • If we're authentication a single HTTP request, use the same URL as the GET address (e.g. https://example.com/myResource)
    • +
    +
  • +
  • agent: The URL of the Agent requesting the subject and signing this Authentication Resource.
  • +
  • publicKey: base64 serialized ED25519 public key of the agent.
  • +
  • signature: base64 serialized ED25519 signature of the following string: {requestedSubject} {timestamp} (without the brackets), signed by the private key of the Agent.
  • +
  • timestamp: Unix timestamp of when the Authentication was signed
  • +
  • validUntil (optional): Unix timestamp of when the Authentication should be no longer valid. If not provided, the server will default to 30 seconds from the timestamp.
  • +
+

Here's what a JSON-AD Authentication Resource looks like for a WebSocket:

+
{
+  "https://atomicdata.dev/properties/auth/agent": "http://example.com/agents/N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=",
+  "https://atomicdata.dev/properties/auth/requestedSubject": "wss://example.com/ws",
+  "https://atomicdata.dev/properties/auth/publicKey": "N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=",
+  "https://atomicdata.dev/properties/auth/timestamp": 1661757470002,
+  "https://atomicdata.dev/properties/auth/signature": "19Ce38zFu0E37kXWn8xGEAaeRyeP6EK0S2bt03s36gRrWxLiBbuyxX3LU9qg68pvZTzY3/P3Pgxr6VrOEvYAAQ=="
+}
+
+

Atomic Cookies Authentication

+

In this approach, the client creates and signs a Resource that proves that an Agent wants to access a certain server for some amount of time. +This Authentication Resource is stored as a cookie, and passed along in every HTTP request to the server.

+ +
    +
  1. Create a signed Authentication object, as described above.
  2. +
  3. Serialize it as JSON-AD, then as a base64 string.
  4. +
  5. Store it in a Cookie: +
      +
    1. Name the cookie atomic_session
    2. +
    3. The expiration date of the cookie should be set, and should match the expiration date of the Authentication Resource.
    4. +
    5. Set the Secure attribute to prevent Man-in-the-middle attacks over HTTP
    6. +
    +
  6. +
+

Bearer Token Authentication

+

Similar to creating the Cookie, except that we pass the base64 serialized Authentication Resource as a Bearer token in the Authorization header.

+
GET /myResource HTTP/1.1
+Authorization: Bearer {base64 serialized Authentication Resource}
+
+

In Data Browser, you can find the token tab in /app/token to create a token.

+

Authenticating Websockets

+

After opening a WebSocket connection, create an Authentication Resource. +Send a message like so: AUTHENTICATE {authenticationResource}. +The server will only respond if there is something wrong.

+

Per-Request Signing

+

Atomic Data allows signing every HTTP request. +This method is most secure, since a MITM attack would only give access to the specific resource requested, and only for a short amount of time. +Note that signing every single request takes a bit of time. +We picked a fast algorithm (Ed25519) to minimize this cost.

+

HTTP Headers

+

All of the following headers are required, if you need authentication.

+
    +
  • x-atomic-public-key: The base64 public key (Ed25519) of the Agent sending the request
  • +
  • x-atomic-signature: A base64 signature of the following string: {subject} {timestamp}
  • +
  • x-atomic-timestamp: The current time (when sending the request) as milliseconds since unix epoch
  • +
  • x-atomic-agent: The subject URL of the Agent sending the request.
  • +
+

Sending a request

+

Here's an example (js) client side implementation with comments:

+
// The Private Key of the agent is used for signing
+// https://atomicdata.dev/properties/privateKey
+const privateKey = "someBase64Key";
+const timestamp = Math.round(new Date().getTime());;
+// This is what you will need to sign.
+// The timestmap is to limit the harm of a man-in-the-middle attack.
+// The `subject` is the full HTTP url that is to be fetched.
+const message = `${subject} ${timestamp}`;
+// Sign using Ed25519, see example implementation here: https://github.com/atomicdata-dev/atomic-data-browser/blob/30b2f8af59d25084de966301cb6bd1ed90c0eb78/lib/src/commit.ts#L176
+const signed = await signToBase64(message, privateKey);
+// Set all of these headers
+const headers = new Headers;
+headers.set('x-atomic-public-key', await agent.getPublicKey());
+headers.set('x-atomic-signature', signed);
+headers.set('x-atomic-timestamp', timestamp.toString());
+headers.set('x-atomic-agent', agent?.subject);
+const response = await fetch(subject, {headers});
+
+

Verifying an Authentication

+
    +
  • If none of the x-atomic HTTP headers are present, the server assigns the PublicAgent to the request. This Agent represents any guest who is not signed in.
  • +
  • If some (but not all) of the x-atomic headers are present, the server will return with a 500.
  • +
  • The server must check if the validUntil has not yet passed.
  • +
  • The server must check whether the public key matches the one from the Agent.
  • +
  • The server must check if the signature is valid.
  • +
  • The server should check if the request resource can be accessed by the Agent using hierarchy (e.g. check read right in the resource or its parents).
  • +
+

Hierarchies for authorization

+

Atomic Data uses Hierarchies to describe who gets to access some resource, and who can edit it.

+

Limitations / considerations

+
    +
  • Since we need the Private Key to sign Commits and requests, the client should have this available. This means the client software as well as the user should deal with key management, and that can be a security risk in some contexts (such as a web browser). See issue #49.
  • +
  • When using the Agent's subject to authenticate somewehere, the authorizer must be able to check what the public key of the agent is. This means the agent must be publicly resolvable. This is one of the reasons we should work towards a server-independent identifier, probably as base64 string that contains the public key (and, optionally, also the https identifier). See issue #59 on DIDs.
  • +
  • We'll probably also introduce some form of token-based-authentication created server side in the future. See #87
  • +
+

Invitations & Tokens

+

(Discussion)

+

At some point on working on something in a web application, you're pretty likely to share that, often not with the entire world. +In order to make this process of inviting others as simple as possible, we've come up with an Invitation standard.

+

Design goals

+
    +
  • Edit without registration. Be able to edit or view things without being required to complete a registration process.
  • +
  • Share with a single URL. A single URL should contain all the information needed.
  • +
  • (Un)limited URL usage. A URL might be re-usable, or maybe not.
  • +
+

Flow

+
    +
  1. The Owner or a resource creates an Invite. This Invite points to a target Resource, provides read rights by default but can additionally add write rights, contains a bunch of usagesLeft.
  2. +
  3. The Guest opens the Invite URL. This returns the Invite resource, which provides the client with the information needed to do the next request which adds the actual rights.
  4. +
  5. The browser client app might generate a set of keys, or use an existing one. It sends the Agent URL to the Invite in a query param.
  6. +
  7. The server will respond with a Redirect resource, which links to the newly granted target resource.
  8. +
  9. The Guest will now be able to access the Resource.
  10. +
+

Try it on https://atomicdata.dev/invites/1

+

Limitations and gotcha's

+
    +
  • The one creating the Invite has to take security in consideration. Some URLs can be easily guessed! When implementing Invitations, make sure to use a good amount of randomness when creating the Subject.
  • +
  • Make sure that the invite is not publicly discoverable (e.g. through a Collection), this can happen if you set the parent of the invite to a public resource.
  • +
+

Atomic Commits

+

Disclaimer: Work in progress, prone to change.

+

Atomic Commits is a specification for communicating state changes (events / transactions / patches / deltas / mutations) of Atomic Data. +It is the part of Atomic Data that is concerned with writing, editing, removing and updating information.

+

Design goals

+
    +
  • Event sourced: Store and standardize changes, as well as the current state. This enables versioning, history playback, undo, audit logs, and more.
  • +
  • Traceable origin: Every change should be traceable to an actor and a point in time.
  • +
  • Verifiable: Have cryptographic proof for every change. Know when, and what was changed by whom.
  • +
  • Identifiable: A single commit has an identifier - it is a resource.
  • +
  • Decentralized: Commits can be shared in P2P networks from device to device, whilst maintaining verifiability.
  • +
  • Extensible: The methods inside a commit are not fixed. Use-case specific methods can be added by anyone.
  • +
  • Streamable: The commits could be used in streaming context.
  • +
  • Familiar: Introduces as little new stuff as possible (no new formats or language to learn)
  • +
  • Pub/Sub: Subscribe to changes and get notified on changes.
  • +
  • ACID-compliant: An Atomic commit will only occur if it results in a valid state.
  • +
  • Atomic: All the Atomic Data design goals also apply here.
  • +
+

Motivation

+

Although it's a good idea to keep data at the source as much as possible, we'll often need to synchronize two systems. +For example when data has to be queried or indexed differently than its source can support. +Doing this synchronization can be very difficult, since most of our software is designed to only maintain and share the current state of a system.

+

I noticed this mainly when working on OpenBesluitvorming.nl - an open data project where we aimed to fetch and standardize meeting data (votes, meeting minutes, documents) from 150+ local governments in the Netherlands. +We wrote software that fetched data from various systems (who all had different models, serialization formats and APIs), transformed this data to a single standard and share it through an API and a fulltext search endpoint. +One of the hard parts was keeping our data in sync with the sources. +How could we now if something was changed upstream? +We queried all these systems every night for all meetings from the next and previous month, and made deep comparisons to our own data.

+

This approach has a couple of issues:

+
    +
  • It costs a lot of resources, both for us and for the data suppliers.
  • +
  • It's not real-time - we can only run this once every 24 ours (because of how costly it is).
  • +
  • It's very prone to errors. We've had issues during all phases of Extraction, Transformation and Loading (ETL) processing.
  • +
  • It causes privacy issues. When some data at the source is removed (because it contained faulty or privacy sensitive data), how do we learn about that?
  • +
+

Persisting and sharing state changes could solve these issues. +In order for this to work, we need to standardize this for all data suppliers. +We need a specification that is easy to understand for most developers.

+

Keeping track of where data comes from is essential to knowing whether you can trust it - whether you consider it to be true. +When you want to persist data, that quickly becomes bothersome. +Atomic Data and Atomic Commits aim to make this easier by using cryptography for ensuring data comes from some particular source, and is therefore trustworthy.

+

If you want to know how Atomic Commits differ from other specs, see the compare section

+

Atomic Commits: Concepts

+

Commit

+

url: https://atomicdata.dev/classes/Commit

+

A Commit is a Resource that describes how a Resource must be updated. +It can be used for auditing, versioning and feeds. +It is cryptographically signed by an Agent.

+

The required fields are:

+
    +
  • subject - The thing being changed. A Resource Subject URL (HTTP identifier) that the Commit is changing about. A Commit Subject must not contain query parameters, as these are reserved for dynamic resources.
  • +
  • signer - Who's making the change. The Atomic URL of the Author's profile - which in turn must contain a publicKey.
  • +
  • signature - Cryptographic proof of the change. A hash of the JSON-AD serialized Commit (without the signature field), signed by the Agent's private-key. This proves that the author is indeed the one who created this exact commit. The signature of the Commit is also used as the identifier of the commit.
  • +
  • created-at - When the change was made. A UNIX timestamp number of when the commit was created.
  • +
+

The optional method fields describe how the data must be changed:

+
    +
  • destroy - If true, the existing Resource will be removed.
  • +
  • remove - an array of Properties that need to be removed (including their values).
  • +
  • set - a Nested Resource which contains all the new or edited fields.
  • +
  • push - a Nested Resource which contains all the fields that are appended to. This means adding items to a new or existing ResourceArray.
  • +
+

These commands are executed in the order above. +This means that you can set destroy to true and include set, which empties the existing resource and sets new values.

+

Posting commits using HTTP

+

Since Commits contains cryptographic proof of authorship, they can be accepted at a public endpoint. +There is no need for authentication.

+

A commit should be sent (using an HTTPS POST request) to a /commmit endpoint of an Atomic Server. +The server then checks the signature and the author rights, and responds with a 2xx status code if it succeeded, or an 5xx error if something went wrong. +The error will be a JSON object.

+

Serialization with JSON-AD

+

Let's look at an example Commit:

+
{
+  "@id": "https://atomicdata.dev/commits/3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==",
+  "https://atomicdata.dev/properties/createdAt": 1611489929370,
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Commit"
+  ],
+  "https://atomicdata.dev/properties/set": {
+    "https://atomicdata.dev/properties/shortname": "1611489928"
+  },
+  "https://atomicdata.dev/properties/signature": "3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==",
+  "https://atomicdata.dev/properties/signer": "https://surfy.ddns.net/agents/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=",
+  "https://atomicdata.dev/properties/previousCommit": "https://surfy.ddns.net/commits/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=",
+  "https://atomicdata.dev/properties/subject": "https://atomicdata.dev/test"
+}
+
+

This Commit can be sent to any Atomic Server. +This server, in turn, should verify the signature and the author's rights before the server applies the Commit.

+

Calculating the signature

+

The signature is a base64 encoded Ed25519 signature of the deterministically serialized Commit. +Calculating the signature is a delicate process that should be followed to the letter - even a single character in the wrong place will result in an incorrect signature, which makes the Commit invalid.

+

The first step is serializing the commit deterministically. +This means that the process will always end in the exact same string.

+
    +
  • Serialize the Commit as JSON-AD.
  • +
  • Do not serialize the signature field.
  • +
  • Do not include empty objects or arrays.
  • +
  • If destroy is false, do not include it.
  • +
  • All keys are sorted alphabetically - both in the root object, as in any nested objects.
  • +
  • The JSON-AD is minified: no newlines, no spaces.
  • +
+

This will result in a string. +The next step is to sign this string using the Ed25519 private key from the Author. +This signature is a byte array, which should be encoded in base64 for serialization. +Make sure that the Author's URL resolves to a Resource that contains the linked public key.

+

Congratulations, you've just created a valid Commit!

+

Here are currently working implementations of this process, including serialization and signing (links are permalinks).

+ +

If you want validate your implementation, check out the tests for these two projects.

+

Applying the Commit

+

If you're on the receiving end of a Commit (e.g. if you're writing a server or a client who has to parse Commits), you will apply the Commit to your Store. +If you have to persist the Commit, you must perform all of the checks. +If you're writing a client, and you trust the source of the Commit, you can probably skip the validation steps.

+

Here's how you apply a Commit:

+
    +
  1. Check if the Subject URL is valid
  2. +
  3. Validate the signature. This means serialize the Commit deterministically (see above), check the Agent's publickey (you might need to fetch this one), verify if the signature matches.
  4. +
  5. Check if the timestamp matches is OK. I think an acceptable window is 10 seconds.
  6. +
  7. If the Commit is for an existing resource, get it.
  8. +
  9. Validate the Rights of the one making the Commit.
  10. +
  11. Check if the previousCommit of the Commit matches with the previousCommit of the Resource.
  12. +
  13. Iterate over the set fields. Overwrite existing, or add the new Values. Make sure the Datatypes match with the respective Properties.
  14. +
  15. Iterate over the remove fields. Remove existing properties.
  16. +
  17. If the Resource has one or more classes, check if the required Properties are there.
  18. +
  19. You might want to perform some custom validations now (e.g. if you accept an Invite, you should make sure that the one creating the Invite has the correct rights to actually make it!)
  20. +
  21. Store the created Commit as a Resource, and store the modified Resource!
  22. +
+

Limitations

+
    +
  • Commits adjust only one Resource at a time, which means that you cannot change multiple in one commit. (issue)
  • +
  • The one creating the Commit will need to sign it, which may make clients that write data more complicated than you'd like. You can also let Servers write Commits, but this makes them less verifiable / decentralized.
  • +
  • Commits require signatures, which means key management. Doing this securely is no trivial matter.
  • +
  • The signatures require JSON-AD serialization
  • +
  • If your implementation persists all Commits, you might need to store a lot of data.
  • +
+

Atomic Commits compared to other (RDF) delta models

+

Let's compare the Atomic Commit approach with some existing protocols for communicating state changes / patches / mutations / deltas in linked data, JSON and text files. +First, I'll briefly discuss the existing examples (open a PR / issue if we're missing something!). +After that, we'll discuss how Atomic Data differs from the existing ones.

+

Git

+

This might be an odd one in this list, but it is an interesting one nonetheless. +Git is an incredibly popular version control system that is used by most software developers to manage their code. +It's a decentralized concept which allows multiple computers to share a log of commits, which together represent a folder with its files and its history. +It uses hashing to represent (parts of) data (which keeps the .git folder compact through deduplication), and uses cryptographic keys to sign commits and verify authorship. +It is designed to work in the paradigm of text files, newlines and folders. +Since most data can be represented as text files in a folder, Git is very flexible. +This is partly because people are familiar with Git, but also because it has a great ecosystem - platforms such as Github provide a clean UI, cloud storage, issue tracking, authorization, authentication and more for free, as long as you use Git to manage your versions.

+

However, Git doesn't work great for structured data - especially when it changes a lot. +Git, on its own, does not perform any validations on integrity of data. +Git also does not adhere to some standardized serialization format for storing commits, which makes sense, because it was designed as a tool to solve a problem, and not as some standard that is to be used in various other systems. +Also, git is kind of a heavyweight abstraction for many applications. +It is designed for collaborating on open source projects, which means dealing with decentralized data storage and merge conflicts - things that might not be required in other kinds of scenarios.

+

RDF mutation systems

+

Let's move on to specifications that mutate RDF specifically:

+

.n3 Patch

+

N3 Patch is part of the Solid spec, since december 2021.

+

It uses the N3 serialization format to describe changes to RDF documents.

+
@prefix solid: <http://www.w3.org/ns/solid/terms#>
+
+<> solid:patches <https://tim.localhost:7777/read-write.ttl>;
+   solid:where   { ?a <y> <z>. };
+   solid:inserts { ?a <y> <z>. };
+   solid:deletes { ?a <b> <c>. }.
+
+

RDF-Delta

+

https://afs.github.io/rdf-delta/

+

Describes changes (RDF Patches) in a specialized turtle-like serialization format.

+
TX .
+PA "rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#" .
+PA "owl" "http://www.w3.org/2002/07/owl#" .
+PA "rdfs" "http://www.w3.org/2000/01/rdf-schema#" .
+A <http://example/SubClass> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
+A <http://example/SubClass> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://example/SUPER_CLASS> .
+A <http://example/SubClass> <http://www.w3.org/2000/01/rdf-schema#label> "SubClass" .
+TC .
+
+

Similar to Atomic Commits, these Delta's should have identifiers (URLs), which are denoted in a header.

+

Delta-LD

+

http://www.tara.tcd.ie/handle/2262/91407

+

Spec for classifying and representing state changes between two RDF resources. +I wasn't able to find a serialization or an implementation for this.

+

PatchR

+

https://www.igi-global.com/article/patchr/135561

+

An ontology for RDF change requests. +Looks very interesting, but I'm not able to find any implementations.

+
prefix :      <http://example.org/> .
+@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix pat:  <http://purl.org/hpi/patchr#> .
+@prefix guo:  <http://webr3.org/owl/guo#> .
+@prefix prov: <http://purl.org/net/provenance/ns#> .
+@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
+@prefix dbp:  <http://dbpedia.org/resource/> .
+@prefix dbo:  <http://dbpedia.org/ontology/> .
+
+:Patch_15 a pat:Patch ;
+  pat:appliesTo <http://dbpedia.org/void.ttl#DBpedia_3.5> ;
+  pat:status pat:Open ;
+  pat:update [
+    a guo:UpdateInstruction ;
+    guo:target_graph <http://dbpedia.org/> ;
+    guo:target_subject dbp:Oregon ;
+    guo:delete [dbo:language dbp:De_jure ] ;
+    guo:insert [dbo:language dbp:English_language ]
+  ] ;
+  prov:wasGeneratedBy [a prov:Activity ;
+  pat:confidence "0.5"^^xsd:decimal ;
+  prov:wasAssociatedWith :WhoKnows ;
+  prov:actedOnBehalfOf :WhoKnows#Player_25 ;
+  prov:performedAt "..."^^xsd:dateTime ] .
+
+

LD-Patch

+

https://www.w3.org/TR/ldpatch/

+

This offers quite a few features besides adding and deleting triples, such as updating lists. +It's a unique serialization format, inspired by turtle. +Some implementations exists, such as one in ruby which is

+
PATCH /timbl HTTP/1.1
+Host: example.org
+Content-Length: 478
+Content-Type: text/ldpatch
+If-Match: "abc123"
+
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix schema: <http://schema.org/> .
+@prefix profile: <http://ogp.me/ns/profile#> .
+@prefix ex: <http://example.org/vocab#> .
+
+Delete { <#> profile:first_name "Tim" } .
+Add {
+  <#> profile:first_name "Timothy" ;
+    profile:image <https://example.org/timbl.jpg> .
+} .
+
+Bind ?workLocation <#> / schema:workLocation .
+Cut ?workLocation .
+
+UpdateList <#> ex:preferredLanguages 1..2 ( "fr-CH" ) .
+
+Bind ?event <#> / schema:performerIn [ / schema:url = <https://www.w3.org/2012/ldp/wiki/F2F5> ]  .
+Add { ?event rdf:type schema:Event } .
+
+Bind ?ted <http://conferences.ted.com/TED2009/> / ^schema:url ! .
+Delete { ?ted schema:startDate "2009-02-04" } .
+Add {
+  ?ted schema:location [
+    schema:name "Long Beach, California" ;
+    schema:geo [
+      schema:latitude "33.7817" ;
+      schema:longitude "-118.2054"
+    ]
+  ]
+} .
+
+

Linked-Delta

+

https://github.com/ontola/linked-delta

+

An N-Quads serialized delta format. +Methods are URLs, which means they are extensible. +Does not specify how to bundle lines. +Used in production of a web app that we're working on (Argu.co). +Designed with simplicity (no new serialization format, simple to parse) and performance in mind by my colleague Thom van Kalkeren.

+
Initial state:
+
+<http://example.org/resource> <http://example.org/predicate> "Old value 🙈" .
+
+Linked-Delta:
+
+<http://example.org/resource> <http://example.org/predicate> "New value 🐵" <http://purl.org/linked-delta/replace> .
+
+New state:
+
+<http://example.org/resource> <http://example.org/predicate> "New value 🐵" .
+
+

JSON-LD-PATCH

+

https://github.com/digibib/ls.ext/wiki/JSON-LD-PATCH

+

A JSON denoted patch notation for RDF. +Seems similar to the RDF/JSON serialization format. +Uses string literals as operators / methods. +Conceptually perhaps most similar to linked-delta.

+

Has a JS implementation.

+
[
+  {
+    "op": "add",
+    "s": "http://example.org/my/resource",
+    "p": "http://example.org/ontology#title",
+    "o": {
+      "value": "New Title",
+      "type": "http://www.w3.org/2001/XMLSchema#string"
+    }
+  }
+]
+
+

SPARQL UPDATE

+

https://www.w3.org/TR/sparql11-update/

+

SPARQL queries that change data.

+
PREFIX dc: <http://purl.org/dc/elements/1.1/>
+INSERT DATA
+{
+  <http://example/book1> dc:title "A new book" ;
+                         dc:creator "A.N.Other" .
+}
+
+

Allows for very powerful queries, combined with updates. +E.g. rename all persons named Bill to William:

+
PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
+
+WITH <http://example/addresses>
+DELETE { ?person foaf:givenName 'Bill' }
+INSERT { ?person foaf:givenName 'William' }
+WHERE
+  { ?person foaf:givenName 'Bill'
+  }
+
+

SPARQL Update is the most powerful of the formats, but also perhaps the most difficult to implement and understand.

+

JSON-PATCH

+

http://jsonpatch.com/

+

A simple way to edit JSON objects:

+
The original document
+
+{
+  "baz": "qux",
+  "foo": "bar"
+}
+
+The patch
+
+[
+  { "op": "replace", "path": "/baz", "value": "boo" },
+  { "op": "add", "path": "/hello", "value": ["world"] },
+  { "op": "remove", "path": "/foo" }
+]
+
+The result
+
+{
+  "baz": "boo",
+  "hello": ["world"]
+}
+
+

It uses the JSON-Pointer spec for denoting paths. +It has quite a bunch of implementations, in various languages.

+ +

Atomic Commits - how it's different and why it exists

+

Let's talk about the differences between the concepts above and Atomic Commits.

+

For starters, Atomic Commits can only work with a specific subset of RDF, namely Atomic Data. +RDF allows for blank nodes, does not have subject-predicate uniqueness and offers named graphs - which all make it hard to unambiguously select a single value. +Most of the alternative patch / delta models described above had to support these concepts. +Atomic Data is more strict and constrained than RDF. +It does not support named graphs and blank nodes. +This enables a simpler approach to describing state changes, but it also means that Atomic Commits will not work with most existing RDF data.

+

Secondly, individual Atomic Commits are tightly coupled to specific Resources. +A single Commit cannot change multiple resources - and most of the models discussed above to enable this. +This is a big constraint, and it does not allow for things like compact migrations in a database. +However, this resource-bound constraint opens up some interesting possibilities:

+
    +
  • it becomes easier to combine it with authorization (i.e. check if the person has the correct rights to edit some resource): simply check if the Author has the rights to edit the Subject.
  • +
  • it makes it easier to find all Commits for a Resource, which is useful when constructing a history / audit log / previous version.
  • +
+

Thirdly, Atomic Commits don't introduce a new serialization format. +It's just JSON. +This means that it will feel familiar for most developers, and will be supported by many existing environments.

+

Finally, Atomic Commits use cryptography (hashing) to determine authenticity of commits. +This concept is borrowed from git commits, which also uses signatures to prove authorship. +As is the case with git, this also allows for verifiable P2P sharing of changes.

+

WebSockets in Atomic Data

+

WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion. +They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games. +These have been implemented in atomic-server and atomic-data-browser (powered by @tomic/lib).

+

Initializing a WebSocket connection

+

Send an HTTP GET request to the /ws endpoint of an atomic-server. The Server should update that request to a secure WebSocket (wss) connection. +Use x-atomic authentication headers (read more here) and use ws as a subject when signing. +The WebSocket-Protocol is AtomicData.

+

Client to server messages

+
    +
  • SUBSCRIBE ${subject} tells the Server that you'd like to receive Commits about this Subject.
  • +
  • UNSUBSCRIBE ${subject} tells the Server that you'd like to stop receiving Commits about this Subject.
  • +
  • GET ${subject} fetch an individual resource.
  • +
  • AUTHENTICATE ${authenticationResource} to set a user session for this websocket and allow authorized messages. The authenticationResource is a JSON-AD resource containing the signature and more, see Authentication.
  • +
+

Server to client messages

+
    +
  • COMMIT ${CommitBody} an entire Commit for a resource that you're subscribed to.
  • +
  • RESOURCE ${Resource} a JSON-AD Resource as a response to a GET message. If there is something wrong with this request (e.g. 404), return a Error Resource with the requested subject, similar to how the HTTP protocol server does this.`
  • +
  • ERROR ${ErrorBody} an Error resource is sent whenever something goes wrong. The ErrorBody is a plaintext, typically English description of what went wrong.
  • +
+

Considerations

+
    +
  • For many messages, there is no response to give if things are processed correctly. If a message is unknown or there is a different problem, return an ERROR.
  • +
+

Example implementations

+ +

Atomic Endpoints

+

URL: https://atomicdata.dev/classes/Endpoint

+

An Endpoint is a resource that accepts parameters in order to generate a response. +You can think of it like a function in a programming language, or a API endpoint in an OpenAPI spec. +It can be used to perform calculations on the server side, such as filtering data, sorting data, selecting a page in a collection, or performing some calculation. +Because Endpoints are resources, they can be defined and read programmatically. +This means that it's possible to render Endpoints as forms.

+

The most important property in an Endpoint is parameters, which is the list of Properties that can be filled in.

+

You can find a list of Endpoints supported by Atomic-Server on atomicdata.dev/endpoints.

+

Endpoint Resources are dynamic, because their properties could be calculated server-side. +When a Property tends to be calculated server-side, they will have a isDynamic property set to true, which tells the client that it's probably useless to try to overwrite it.

+

Incomplete resources

+

A Server can also send one or more partial Resources for an Endpoint to the client, which means that some properties may be missing. +When this is the case, the Resource will have an incomplete property set to true. +This tells the client that it has to individually fetch the resource from the server to get the full body.

+

One scenario where this happens, is when fetching Collections that have other Collections as members. +If we would not have incomplete resources, the server would have to perform expensive computations even if the data is not needed by the client.

+

Design Goals

+
    +
  • Familiar API: should look like something that most developers already know
  • +
  • Auto-generate forms: a front-end app should present Endpoints as forms that non-developers can interact with
  • +
+

(Discussion)

+

Atomic Collections

+

URL: https://atomicdata.dev/classes/Collection

+

Sooner or later, developers will have to deal with (long) lists of items. +For example, a set of blog posts, activities or users. +These lists often need to be paginated, sorted, and filtered. +For dealing with these problems, we have Atomic Collections.

+

An Atomic Collection is a Resource that links to a set of resources. +Note that Collections are designed to be dynamic resources, often (partially) generated at runtime. +Collections are Endpoints, which means that part of their properties are calculated server-side. +Collections have various filters (subject, property, value) that can help to build a useful query.

+
    +
  • members: How many items (members) are visible per page.
  • +
  • property: Filter results by a property URL.
  • +
  • value: Filter results by a Value. Combined with property, you can create powerful queries.
  • +
  • sort_by: A property URL by which to sort. Defaults to the subject.
  • +
  • sort_desc: Sort descending, instead of ascending. Defaults to false.
  • +
  • current_page: The number of the current page.
  • +
  • page_size: How many items (members) are visible per page.
  • +
  • total_pages: How many pages there are for the current collection.
  • +
  • total_members: How many items (members) are visible per page.
  • +
+ +

Persisting Properties vs Query Parameters

+

Since Atomic Collections are dynamic resources, you can pass query parameters to it. +The keys of the query params match the shortnames of the properties of the Collection.

+

For example, let's take the Properties Collection on atomicdata.dev. +We could limit the page size to 2 by adding the page_size=2 query parameter: https://atomicdata.dev/collections/property?page_size=2. +Or we could sort the list by the description property: https://atomicdata.dev/collections/property?sort_by=https%3A%2F%2Fatomicdata.dev%2Fproperties%2Fdescription. +Note that URLs need to be URL encoded.

+

These properties of Collections can either be set by passing query parameters, or they can be persisted by the Collection creator / editor.

+

Uploading, downloading and describing files with Atomic Data

+

The Atomic Data model (Atomic Schema) is great for describing structured data, but for many types of existing data, we already have a different way to represent them: files. +In Atomic Data, files have two URLs. +One describes the file and its metadata, and the other is a URL that downloads the file. +This allows us to present a better view when a user wants to take a look at some file, and learn about its context before downloading it.

+

The File class

+

url: https://atomicdata.dev/classes/File

+

Files always have a downloadURL. +They often also have a filename, a filesize, a checksum, a mimetype, and an internal ID (more on that later). +They also often have a parent, which can be used to set permissions / rights.

+

Uploading a file

+

In atomic-server, a /upload endpoint exists for uploading a file.

+
    +
  • Decide where you want to add the file in the hierarchy of your server. You can add a file to any resource - your file will refer to this resource as its parent. Make sure you have write rights on this parent.
  • +
  • Use that parent to add a query parameter to the server's /upload endpoint, e.g. /upload?parent=https%3A%2F%2Fatomicdata.dev%2Ffiles.
  • +
  • Send an HTTP POST request to the server's /upload endpoint containing multi-part-form-data. You can upload multiple files in one request. Add authentication headers, and sign the HTTP request with the
  • +
  • The server will check your authentication headers, your permissions, and will persist your uploaded file(s). It will now create File resources.
  • +
  • The server will reply with an array of created Atomic Data Files
  • +
+

Downloading a file

+

Simply send an HTTP GET request to the File's download-url (make sure to authenticate this request).

+ +

Atomizing: How to create and publish Atomic Data

+

Now that we're familiar with the basics of Atomic Data Core and its Schema, it's time to create some Atomic Data! +We call the process of turning data into Atomic Data Atomizing. +During this process, we upgrade the data quality. +Our information becomes more valuable. +Let's summarize what the advantages are:

+
    +
  • Your data becomes available on the web (publicly, if you want it to)
  • +
  • It can now link to other data, an become part of a bigger web of data
  • +
  • It becomes strictly typed, so developers can easily and safely re-use it in their software
  • +
  • It becomes easier to understand, because people can look at the Properties and see what they mean
  • +
  • It can be easily converted into many formats (JSON, Turtle, CSV, XML, more...)
  • +
+

Three ways to Atomize data

+

In general, there are three ways to create Atomic Data:

+ +

Creating Atomic Data using Atomic-Server

+

Here is everything you need to get started:

+ +

Atomic-Server and its features

+

Atomic-Server is the reference implementation of the Atomic Data Core + Extended specification. +It was developed parallel to this specification, and it served as a testing ground for various ideas (some of which didn't work, and some of which ended up in the spec).

+

Atomic-Server is a graph database server for storing and sharing typed linked data. +It's free, open source (MIT license), and has a ton of features:

+
    +
  • ⚛️ Dynamic schema validation / type checking using Atomic Schema. Combines safety of structured data with the
  • +
  • 🚀 Fast (1ms responses on my laptop)
  • +
  • 🪶 Lightweight (15MB binary, no runtime dependencies)
  • +
  • 💻 Runs everywhere (linux, windows, mac, arm)
  • +
  • 🌐 Embedded server with support for HTTP / HTTPS / HTTP2.0 and Built-in LetsEncrypt handshake.
  • +
  • 🎛️ Browser GUI included powered by atomic-data-browser. Features dynamic forms, tables, authentication, theming and more.
  • +
  • 💾 Event-sourced versioning / history powered by Atomic Commits
  • +
  • 🔄 Synchronization using websockets: communicates state changes with a client. Send a wss request to /ws to open a webscocket.
  • +
  • 🧰 Many serialization options: to JSON, JSON-AD, and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD).
  • +
  • 🔎 Full-text search with fuzzy search and various operators, often <3ms responses.
  • +
  • 📖 Pagination, sorting and filtering using Atomic Collections
  • +
  • 🔐 Authorization (read / write permissions) and Hierarchical structures powered by Atomic Hierarchy
  • +
  • 📲 Invite and sharing system with Atomic Invites
  • +
  • 📂 File management: Upload, download and preview attachments.
  • +
  • 🖥️ Desktop app: Easy desktop installation, with status bar icon, powered by tauri.
  • +
+

Running Atomic-Server locally (optional)

+

In this guide, we'll can simply use atomicdata.dev in our browser without installing anything. +So you can skip this step and go to Creating your first Atomic Data. +But if you want to, you can run Atomic-Server on your machine in a couple of ways:

+
    +
  • Using a desktop installer: download a desktop release from the releases page and install it using your desktop GUI.
  • +
  • Using a binary: download a binary release from the releases page and open it using a terminal.
  • +
  • Using Docker is probably the quickest: docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server.
  • +
  • Using Cargo: cargo install atomic-server and then run atomic-server to start.
  • +
+

Atomic-Server's README contains more (and up-to-date) information about how to use it!

+

Open your server in your browser. +By default, that's http://localhost:9883. +Fun fact: &#9883; is HTML entity code for the Atom icon: ⚛.

+

The first screen should show you your Drive. +You can think of this as your root folder. +It is the resource hosted at the root URL, effectively being the home page of your server.

+

There's an instruction on the screen about the /setup page. +Click this, and you'll get a screen showing an Invite. +Normally, you could Accept as new user, but since you're running on localhost, you won't be able to use the newly created Agent on non-local Atomic-Servers. +Therefore, it may be best to create an Agent on some other running server, such as the demo Invite on AtomicData.dev. +And after that, copy the Secret from the User settings panel from AtomicData.dev, go back to your localhost version, and press sign in. +Paste the Secret, and voila! You're signed in.

+

Now, again go to /setup. This time, you can Accept as {user}. +After clicking, your Agent has gotten write rights for the Drive! +You can verify this by hovering over the description field, clicking the edit icon, and making a few changes. +You can also press the menu button (three dots, top left) and press Data view to see your agent after the write field. +Note that you can now edit every field. +You can also fetch your data now as various formats.

+

Try checking out the other features in the menu bar, and check out the collections.

+

Again, check out the README for more information and guides!

+

Now, let's create some data.

+

Creating an Agent

+

Before you can create new things on AtomicData.dev, you'll need an Agent. +This is your virtual User, which can create, sign and own things.

+

Simply open the demo invite and press accept. +And you're done!

+

Creating your first Atomic Data

+

Now let's create a Class. +A Class represents an abstract concept, such as a BlogPost (which we'll do here). +We can do this in a couple of ways:

+
    +
  • Press the + icon button on the left menu (only visible when logged in), and selecting Class
  • +
  • Opening Class and pressing new class
  • +
  • Going to the Classes Collection and pressing the plus icon
  • +
+

The result is the same: we end up with a form in which we can fill in some details.

+

Let's add a shortname (singular), and then a description.

+

After that, we'll add the required properties. +This form you're looking at is constructed by using the required and recommended Properties defined in Class. +We can use these same fields to generate our BlogPost resource! +Which fields would be required in a BlogPost? +A name, and a description, probably.

+

So click on the + icon under requires and search for these Properties to add them.

+

Now, we can skip the recommended properties, and get right to saving our newly created BlogPost class. +So, press save, and now look at what you created.

+

Notice a couple of things:

+
    +
  • Your Class has its own URL.
  • +
  • It has a parent, shown in the top of the screen. This has impact on the visibility and rights of your Resource. We'll get to that later in the documentation.
  • +
+

Now, go to the navigation bar, which is by default at the bottom of the window. Use its context menu to open the Data View. +This view gives you some more insight into your newly created data, and various ways in which you can serialize it.

+

There's more!

+

This was just a very brief introduction to Atomic Server, and its features. +There's quite a bit that we didn't dive in to, such as versioning, file uploads, the collaborative document editor and more... +But by clicking around you're likely to discover these features for yourself.

+

In the next page, we'll dive into how you can create an publish JSON-AD files.

+

How to create and publish a JSON-AD file

+

JSON-AD is the default serialization format of Atomic Data. +It's just JSON, but with some extra requirements.

+

Most notably, all keys are links to Atomic Properties. +These Properties must be actually hosted somewhere on the web, so other people can visit them to read more about them.

+

Ideally, in JSON-AD, each Resource has its own @id. +This is the URL of the resource. +This means that if someone visits that @id, they should get the resource they are requesting. +That's great for people re-using your data, but as a data provider, implementing this can be a bit of a hassle. +That's why there is a different way that allows you to create Atomic Data without manually hosting every resource.

+

Creating JSON-AD without hosting individual resources yourself

+

In this section, we'll create a single JSON-AD file containing various resources. +This file can then be published, shared and stored like any other.

+

The goal of this preparation, is to ultimately import it somewhere else. +We'll be importing it to Atomic-Server. +Atomic-Server will create URLs for every single resource upon importing it. +This way, we only deal with the JSON-AD and the data structure, and we let Atomic-Server take care of hosting the data.

+

Let's create a BlogPost. +We know the fields that we need: a name and some body. +But we can't use these keys in Atomic Data, we should use URLs that point to Properties. +We can either create new Properties (see the Atomic-Server tutorial), or we can use existing ones, for example by searching on AtomicData.dev/properties.

+

Setting the first values

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+}
+
+

Adding a Class

+

Classes help others understanding what a Resource's type is, such as BlogPost or Person. +In Atomic Data, Resources can have multiple classes, so we should use an Array, like so:

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+}
+
+

Adding a Class helps people to understand the data, and it can provide guarantees to the data users about the shape of the data: they now know which fields are required or recommended. +We can also use Classes to render Forms, which can be useful when the data should be edited later. +For example, the BlogPost item

+

Using exsisting Ontologies, Classes and Ontologies

+

Ontologies are groups of concepts that describe some domain. +For example, we could have an Ontology for Blogs that links to a bunch of related Classes, such as BlogPost and Person. +Or we could have a Recipy Ontology that describes Ingredients, Steps and more.

+

At this moment, there are relatively few Classes created in Atomic Data. +You can find most on atomicdata.dev/classes.

+

So possibly the best way forward for you, is to define a Class using the Atomic Data Browser's tools for making resources.

+

Multiple items

+

If we want to have multiple items, we can simply use a JSON Array at the root, like so:

+
[{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+},{
+  "https://atomicdata.dev/properties/name": "Another blogpost",
+  "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+}]
+
+

Preventing duplication with localId

+

When we want to publish Atomic Data, we also want someone else to be able to import it. +An important thing to prevent, is data duplication. +If you're importing a list of Blog posts, for example, you'd want to only import every article once.

+

The way to preventing duplication, is by adding a localId. +This localId is used by the importer to find out if it has already imported it before. +So we, as data producers, need to make sure that our localId is unique and does not change! +We can use any type of string that we like, as long as it conforms to these requirements. +Let's use a unique slug, a short name that is often used in URLs.

+
{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "my-first-blogpost",
+}
+
+

Describing relationships between resources using localId

+

Let's say we also want to describe the author of the BlogPost, and give them an e-mail, a profile picture and some biography. +This means we need to create a new Resource for each Author, and again have to think about the properties relevant for Author. +We'll also need to create a link from BlogPost to Author, and perhaps the other way around, too.

+

Normally, when we link things in Atomic Data, we can only use full URLs. +But, since we don't have URLs yet for our Resources, we'll need a different solution. +Again, this is where we can use localId! +We can simply refer to the localId, instead of some URL that does not exist yet.

+
[{
+  "https://atomicdata.dev/properties/name": "Writing my first blogpost",
+  "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!",
+  "https://atomicdata.dev/properties/author": "jon",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "my-first-blogpost",
+},{
+  "https://atomicdata.dev/properties/name": "Another blogpost",
+  "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.",
+  "https://atomicdata.dev/properties/author": "jon",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"],
+  "https://atomicdata.dev/properties/localId": "another-blogpost",
+},{
+  "https://atomicdata.dev/properties/name": "Jon Author",
+  "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Person"],
+  "https://atomicdata.dev/properties/localId": "jon",
+}]
+
+

Importing data using Atomic Sever

+

currently under development

+

Upgrade your existing application to serve Atomic Data

+

You don't have to use Atomic-Server and ditch your existing projects or apps, if you want to adhere to Atomic Data specs.

+

As the Atomic Data spec is modular, you can start out simply and conform to more specs as needed:

+
    +
  1. Map your JSON keys to new or existing Atomic Data properties
  2. +
  3. Add @id fields to your resources, make sure these URLs resolve using HTTP
  4. +
  5. Implement parts of the Extended spec
  6. +
+

There's a couple of levels you can go to, when adhering to the Atomic Data spec.

+

Easy: map your JSON keys to Atomic Data Properties

+

If you want to make your existing project compatible with Atomic Data, you probably don't have to get rid of your existing storage / DB implementation. +The only thing that matters, is how you make the data accessible to others: the serialization. +You can keep your existing software and logic, but simply change the last little part of your API.

+

In short, this is what you'll have to do:

+

Map all properties of resources to Atomic Properties. +Either use existing ones, or create new ones. +This means: take your JSON objects, and change things like name to https://atomicdata.dev/properties/name.

+

That's it, you've done the most important step!

+

Now your data is already more interoperable:

+
    +
  • Every field has a clear semantic meaning and datatype
  • +
  • Your data can now be easily imported by Atomic Data systems
  • +
+

Medium: add @id URLs that properly resolve

+

Make sure that when the user requests some URL, that you return that resource as a JSON-AD object (at the very least if the user requests it using an HTTP Accept: application/ad+json header).

+
    +
  • Your data can now be linked to by external data sources, it can become part of a web of data!
  • +
+

Hard: implement Atomic Data Extended protocols

+

You can go all out, and implement Commits, Hierarchies, Authentication, Collections and more. +I'd suggest starting with Commits, as these allow users to modify data whilst maintaining versioning and auditability. +Check out the Atomic-Server source code to get inspired on how to do this.

+

Reach out for help

+

If you need any help, join our Discord.

+

Also, share your thoughts on creating Atomic Data in this issue on github.

+

Interoperability: Relation to other technology

+

Atomic data is designed to be easy to use in existing projects, and be interoperable with existing formats. +This section will discuss how Atomic Data differs from or is similar to various data formats and paradigms, and how it can interoperate.

+

Upgrade guide

+
    +
  • Upgrade: How to make your existing (server-side) application serve Atomic Data. From easy, to hard.
  • +
+

Data formats

+
    +
  • JSON: Atomic Data is designed to be easily serializable to clean, idiomatic JSON. However, if you want to turn JSON into Atomic Data, you'll have to make sure that all keys in the JSON object are URLs that link to Atomic Properties, and the data itself also has to be available at its Subject URL.
  • +
  • RDF: Atomic Data is a strict subset of RDF, and can therefore be trivially serialized to all RDF formats (Turtle, N-triples, RDF/XML, JSON-LD, and others). The other way around is more difficult. Turning RDF into Atomic Data requires that all predicates are Atomic Properties, the values must match its properties datatype, the atoms must be available at the subject URL, and the subject-predicate combinations must be unique.
  • +
+

Protocols

+
    +
  • Solid: A set of specifications that has many similarities with Atomic Data
  • +
  • IPFS: Content-based addressing to prevent 404s and centralization
  • +
+

Database paradigms

+
    +
  • SQL: How Atomic Data differs from and could interact with SQL databases
  • +
  • Graph: How it differs from some labeled property graphs, such as Neo4j
  • +
+

How does Atomic Data relate to RDF?

+

RDF (the Resource Description Framework) is a W3C specification from 1999 that describes the original data model for linked data. +It is the forerunner of Atomic Data, and is therefore highly similar in its model. +Both heavily rely on using URLs, and both have a fundamentally simple and uniform model for data statements. +Both view the web as a single, connected graph database. +Because of that, Atomic Data is also highly compatible with RDF - all Atomic Data is also valid RDF. +Atomic Data can be thought of as a more constrained, type safe version of RDF. +However, it does differ in some fundamental ways.

+
    +
  • Atomic calls the three parts of a Triple subject, property and value, instead of subject, predicate, object.
  • +
  • Atomic does not support having multiple statements with the same <subject> <predicate>, every combination must be unique.
  • +
  • Atomic does not have literals, named nodes and blank nodes - these are all values, but with different datatypes.
  • +
  • Atomic uses nested Resources and paths instead of blank nodes
  • +
  • Atomic requires URL (not URI) values in its subjects and properties (predicates), which means that they should be resolvable. Properties must resolve to an Atomic Property, which describes its datatype.
  • +
  • Atomic only allows those who control a resource's subject URL endpoint to edit the data. This means that you can't add triples about something that you don't control.
  • +
  • Atomic has no separate datatype field, but it requires that Properties (the resources that are shown when you follow a predicate value) specify a datatype. However, it is allowed to serialize the datatype explicitly, of course.
  • +
  • Atomic has no separate language field.
  • +
  • Atomic has a native Event (state changes) model (Atomic Commits), which enables communication of state changes
  • +
  • Atomic has a native Schema model (Atomic Schema), which helps developers to know what data types they can expect (string, integer, link, array)
  • +
  • Atomic does not support Named Graphs. These should not be needed, because all statements should be retrievable by fetching the Subject of a resource. However, it is allowed to include other resources in a response.
  • +
+

Why these changes?

+

I have been working with RDF for quite some time now, and absolutely believe in some of the core premises of RDF. +I started a company that specializes in Linked Data (Ontola), and we use it extensively in our products and services. +Using URIs (and more-so URLs, which are URIs that can be fetched) for everything is a great idea, since it helps with interoperability and enables truly decentralized knowledge graphs. +However, some of the characteristics of RDF make it hard to use, and have probably contributed to its relative lack of adoption.

+

It's too hard to select a specific value (object) in RDF

+

For example, let's say I want to render someone's birthday:

+
<example:joep> <schema:birthDate> "1991-01-20"^^xsd:date
+
+

Rendering this item might be as simple as fetching the subject URL, filtering by predicate URL, and parsing the object as a date.

+

However, this is also valid RDF:

+
<example:joep> <schema:birthDate> "1991-01-20"^^xsd:date <example:someNamedGraph>
+<example:joep> <schema:birthDate> <example:birthDateObject> <example:someOtherNamedGraph>
+<example:joep> <schema:birthDate> "20th of januari 1991"@en <example:someNamedGraph>
+<example:joep> <schema:birthDate> "20 januari 1991"@nl <example:someNamedGraph>
+<example:joep> <schema:birthDate> "2000-02-30"^^xsd:date <example:someNamedGraph>
+
+

Now things get more complicated if you just want to select the original birthdate value:

+
    +
  1. Select the named graph. The triple containing that birthday may exist in some named graph different from the subject URL, which means that I first need to identify and fetch that graph.
  2. +
  3. Select the subject.
  4. +
  5. Select the predicate.
  6. +
  7. Select the datatype. You probably need a specific datatype (in this case, a Date), so you need to filter the triples to match that specific datatype.
  8. +
  9. Select the language. Same could be true for language, too, but that is not necessary in this birthdate example.
  10. +
  11. Select the specific triple. Even after all our previous selectors, we still might have multiple values. How do I know which is the triple I'm supposed to use?
  12. +
+

To be fair, with a lot of RDF data, only steps 2 and 3 are needed, since there are often no subject-predicate collisions. +And if you control the data of the source, you can set any constraints that you like, inlcluding subject-predicate uniqueness. +But if you're building a system that uses arbitrary RDF, that system also needs to deal with steps 1,4,5 and 6. +That often means writing a lot of conditionals and other client-side logic to get the value that you need. +It also means that serializing to a format like JSON becomes complicated - you can't just map predicates to keys - you might get collisions. +And you can't use key-value stores for storing RDF, at least not in a trivial way. +Every single selected value should be treated as an array of unknown datatypes, and that makes it really difficult to build software. +All this complexity is the direct result of the lack of subject-predicate uniqueness.

+

As a developer who uses RDF data, I want to be able to do something like this:

+
// Fetches the resource
+const joep = get("https://example.com/person/joep")
+// Returns the value of the birthDate atom
+console.log(joep.birthDate()) // => Date(1991-01-20)
+// Fetches the employer relation at possibly some other domain, checks that resource for a property with the 'name' shortkey
+console.log(joep.employer().name()) // => "Ontola.io"
+
+

Basically, I'd like to use all knowledge of the world as if it were a big JSON object. +Being able to do that, requires using some things that are present in JSON, and using some things that are present in RDF.

+
    +
  • Traverse data on various domains (which is already possible with RDF)
  • +
  • Have unique subject-predicate combinations (which is default in JSON)
  • +
  • Map properties URLs to keys (which often requires local mapping with RDF, e.g. in JSON-LD)
  • +
  • Link properties to datatypes (which is possible with ontologies like SHACL / SHEX)
  • +
+

Less focus on semantics, more on usability

+

One of the core ideas of the semantic web, is that anyone should be able to say anything about anything, using semantic triples. +This is one of the reasons why it can be so hard to select a specific value in RDF. +When you want to make all graphs mergeable (which is a great idea), but also want to allow anyone to create any triples about any subject, you get subject-predicate non-uniqueness. +For the Semantic Web, having semantic triples is great. +For linked data, and connecting datasets, having atomic triples (with unique subject-predicate combinations) seems preferable. +Atomic Data chooses a more constrained approach, which makes it easier to use the data, but at the cost of some expressiveness.

+

Changing the names

+

RDF's subject, predicate and object terminology can be confusing to newcomers, so Atomic Data uses subject, property, value. +This more closely resembles common CS terminology. (discussion)

+

Subject + Predicate uniqueness

+

As discussed above, in RDF, it's very much possible for a graph to contain multiple statements that share both a subject and a predicate. +This is probably because of two reasons:

+
    +
  1. RDF graphs must always be mergeable (just like Atomic Data).
  2. +
  3. Anyone can make any statement about any subject (unlike Atomic Data, see next section).
  4. +
+

However, this introduces a lot extra complexity for data users (see above), which makes it not very attractive to use RDF in any client. +Whereas most languages and datatypes have key-value uniqueness that allow for unambiguous value selection, RDF clients have to deal with the possibility that multiple triples with the same subject-predicate combination might exist. +It also introduces a different problem: How should you interpret a set of subject-predicate combinations? +Does this represent a non-ordered collection, or did something go wrong while setting values?
+In the RDF world, I've seen many occurences of both.

+

Atomic Data requires subject-property uniqueness, which means that these issues are no more. +However, in order to guarantee this, and still retain graph merge-ability, we also need to limit who creates statements about a subject:

+

Limiting subject usage

+

RDF allows that anne.com creates and hosts statements about the subject john.com. +In other words, domain A creates statements about domain B. +It allows anyone to say anything about any subject, thus allowing for extending data that is not under your control.

+

For example, developers at both Ontola and Inrupt (two companies that work a lot with RDF) use this feature to extend the Schema.org ontology with translations. +This means they can still use standards from Schema.org, and have their own translations of these concepts.

+

However, I think this is a flawed approach. +In the example above, two companies are adding statements about a subject. +In this case, both are adding translations. +They're doing the same work twice. +And as more and more people will use that same resource, they will be forced to add the same translations, again and again.

+

I think one of the core perks of linked data, is being able to make your information highly re-usable. +When you've created statements about an external thing, these statements are hard to re-use.

+

This means that someone using RDF data about domain B cannot know that domain B is actually the source of the data. +Knowing where data comes from is one of the great things about URIs, but RDF does not require that you can think of subjects as the source of data. +Many subjects in RDF don't actually resolve to all the known triples of the statement. +It would make the conceptual model way simpler if statements about a subject could only be made from the source of the domain owner of the subject. +When triples are created about a resource, in a place other than where the subject is hosted, these triples are hard to share.

+

The way RDF projects deal with this, is by using named graphs. +As a consequence, all systems that use these triples should keep track of another field for every atom. +To make things worse, it makes subject-predicate uniqueness impossible to guarantee. +That's a high price to pay.

+

I've asked two RDF developers (who did not know each other) working on RDF about limiting subject usage, and both were critical. +Interestingly, they provided the same usecase for using named graphs that would conflict with the limiting subject usage constraint. +They both wanted to extend the schema.org ontology by adding properties to these items in a local graph. +I don't think even this usecase is appropriate for named graphs. They were actually using an external resource that did not provide them with the things they needed. The things that they would add (the translations) are not re-usable, so in the end they will just keep spreading a URL that doesn't provide people with the things that they will come to expect. The schema.org URL still won't provide the translations that they wrote! +I believe a better solution is to copy the resource (in this case a part of the schema.org ontology), and extend it, and host it somewhere else, and use that URL. +Or even better: have a system for sharing your change suggestions with the source of the data, and allow for easy collaboration on ontologies.

+

No more literals / named nodes

+

In RDF, an object can either be a named node, blank node or literal. A literal has a value, a datatype and an optional language (if the literal is a string). +Although RDF statements are often called triples, a single statement can consist of five fields: subject, predicate, object, language, datatype. +Having five fields is way more than most information systems. Usually we have just key and value. +This difference leads to compatibility issues when using RDF in applications. +In practice, clients have to run a lot of checks before they can use the data - which makes RDF in most contexts harder to use than something like JSON.

+

Atomic Data drops the named node / literal distinction. +We just have values, and they are interpreted by looking at the datatype, which is defined in the property. +When a value is a URL, we don't call it a named node, but we simply use a URL datatype.

+

Requiring URLs

+

A URL (Uniform Resource Locator) is a specific and cooler version of a URI (Uniform Resource Identifier), because a URL tells you where you can find more information about this thing (hence Locator).

+

RDF allows any type of URIs for subject and predicate value, which means they can be URLs, but don't have to be. +This means they don't always resolve, or even function as locators. +The links don't work, and that restricts how useful the links are. +Atomic Data takes a different approach: these links MUST Resolve. Requiring Properties to resolve is part of what enables the type system of Atomic Schema - they provide the shortname and datatype.

+

Requiring URLs makes things easier for data users, but makes things a bit more difficult for the data producer. +With Atomic Data, the data producer MUST offer the data at the URL of the subject. +This is a challenge that requires tooling, which is why I've built Atomic-Server: an easy to use, performant, open source data management sytem.

+

Making sure that links actually work offer tremendous benefits for data consumers, and that advantage is often worth the extra trouble.

+

Replace blank nodes with paths

+

Blank (or anonymous) nodes are RDF resources with identifiers that exist only locally. +In other words, their identifiers are not URLs. +They are sometimes also called anonymous nodes. +They make life easier for data producers, who can easily create (nested) resources without having to mint all the URLs. +In most non-RDF data models, blank nodes are the default. +For example, we nest JSON object without thinking twice.

+

Unfortunately, blank nodes tend to make things harder for clients. +These clients will now need to keep track of where these blank nodes came from, and they need to create internal identifiers that will not collide. +Cache invalidation with blank nodes also becomes a challenge. +To make this a bit easier, Atomic Data introduces a new way of dealing with names of things that you have not given a URL yet: Atomic Paths.

+

Since Atomic Data has subject-predicate uniqueness (like JSON does, too), we can use the path of triples as a unique identifier:

+
https://example.com/john https://schema.org/employer
+
+

This prevents collisions and still makes it easy to point to a specific value.

+

Serialization formats are free to use nesting to denote paths - which means that it is not necessary to include these path strings explicitly in most serialization formats, such as in JSON-AD.

+

Combining datatype and predicate

+

Having both a datatype and a predicate value can lead to confusing situations. +For example, the schema:dateCreated Property requires an ISO DateTime string (according to the schema.org definition), but using a value true with an xsd:boolean datatype results in perfectly valid RDF. +This means that client software using triples with a schema:dateCreated predicate cannot safely assume that its value will be a DateTime. +So if the client wants to use schema:dateCreated values, the client must also specify which type of data it expects, check the datatype field of every Atom and provide logic for when these don't match. +Also important combining datatype and predicate fits the model of most programmers and languages better - just look at how every single struct / model / class / shape is defined in programming languages: key: datatype. +This is why Atomic Data requires that a predicate links to a Property which must have a Datatype.

+

Adding shortnames (slugs / keys) in Properties

+

Using full URI strings as keys (in RDF predicates) results in a relatively clunky Developer Experience. +Consider the short strings that developers are used to in pretty much all languages and data formats (object.attribute). +Adding a required / tightly integrated key mapping (from long URLs to short, simple strings) in Atomic Properties solves this issue, and provides developers a way to write code like this: someAtomicPerson.bestFriend.name => "Britta". +Although the RDF ecosystem does have some solutions for this (@context objects in JSON-LD, @prefix mappings, the @ontologies library), these prefixes are not defined in Properties themselves and therefore are often defined locally or separate from the ontology, which means that developers have to manually map them most of the time. +This is why Atomic Data introduces a shortname field in Properties, which forces modelers to choose a 'key' that can be used in ORM contexts.

+

Adding native arrays

+

RDF lacks a clear solution for dealing with ordered data, resulting in confusion when developers have to create lists of content. +Adding an Array data type as a base data type helps solve this. (discussion)

+

Adding a native state changes standard

+

There is no integrated standard for communicating state changes. +Although linked-delta and rdf-delta do exist, they aren't referred to by the RDF spec. +I think developers need guidance when learning a new system such as RDF, and that's why Atomic Commits is included in this book.

+

Adding a schema language and type safety

+

A schema language is necessary to constrain and validate instances of data. +This is very useful when creating domain-specific standards, which can in turn be used to generate forms or language-specific types / interfaces. +Shape validations are already possible in RDF using both SHACL and SHEX, and these are both very powerful and well designed.

+

However, with Atomic Data, I'm going for simplicity. +This also means providing an all-inclusive documentation. +I want people who read this book to have a decent grasp of creating, modeling, sharing, versioning and querying data. +It should provide all information that most developers (new to linked data) will need to get started quickly. +Simply linking to SHACL / SHEX documentation could be intimidating for new developers, who simply want to define a simple shape with a few keys and datatypes.

+

Also, SHACL requires named graphs (which are not specified in Atomic Data) and SHEX requires a new serialization format, which might limit adoption. +Atomic Data has some unique constrains (such as subject-predicate uniqueness) which also might make things more complicated when using SHEX / SHACL.

+

However, it is not the intention of Atomic Data to create a modeling abstraction that is just as powerful as the ones mentioned above, so perhaps it is better to include a SHACL / SHEX tutorial and come up with a nice integration of both worlds.

+

A new name, with new docs

+

Besides the technical reasons described above, I think that there are social reasons to start with a new concept and give it a new name:

+
    +
  • The RDF vocabulary is intimidating. When trying to understand RDF, you're likely to traverse many pages with new concepts: literal, named node, graph, predicate, named graph, blank node... The core specification provides a formal description of these concepts, but fails to do this in a way that results in quick understanding and workable intuitions. Even experienced RDF developers tend to be confused about the nuances of the core model.
  • +
  • There is a lack of learning resources that provide a clear, complete answer to the lifecycle of RDF data: modeling data, making data, hosting it, fetching it, updating it. Atomic Data aims to provide an opinionated answer to all of these steps. It feels more like a one-stop-shop for questions that developers are likely to encounter, whilst keeping the extendability.
  • +
  • All Core / Schema URLs should resolve to simple, clear explanations with both examples and machine readable definitions. Especially the Property and Class concepts.
  • +
  • The Semantic Web community has had a lot of academic attention from formal logic departments, resulting in a highly developed standard for knowledge modeling: the Web Ontology Language (OWL). While this is mostly great, its open-world philosophy and focus on reasoning abilities can confuse developers who are simply looking for a simple way to share models in RDF.
  • +
+

Convert RDF to Atomic Data

+
    +
  • All the subject URLs MUST actually resolve, and return all triples about that subject. All blank nodes should be converted into URLs. Atomic Data tools might help to achieve this, for example by hosting the data.
  • +
  • All predicates SHOULD resolve to Atomic Properties, and these SHOULD have a datatype. You will probably need to change predicate URLs to Atomic Property URLs, or update the things that the predicate points to to include the required Atomic Property items (e.g. having a Datatype and a Shortname). This also means that the datatype in the original RDF statement can be dropped.
  • +
  • Literals with a language tag are converted to TranslationBox resources, which also means their identifiers must be created. Keep in mind that Atomic Data does not allow for blank nodes, so the TranslationBox identifiers must be URLs.
  • +
+

Step by step, it entails:

+
    +
  1. Set up some server to make sure the URLs will resolve.
  2. +
  3. Create (or find and refer to) Atomic Properties for all the predicates. Make sure they have a DataType and a Shortname.
  4. +
  5. If you have triples about a subject that you don't control, change the URL to some that you can control, and refer to that external resource.
  6. +
+

Atomic Data will need tooling to facilitate in this process. +This tooling should help to create URLs, Properties, and host everything on an easy to use server.

+

Convert Atomic data to RDF

+

Since all Atomic Data is also valid RDF, it's trivial to convert / serialize Atoms to RDF. +This is why atomic can serialize Atomic Data to RDF. (For example, try atomic-cli get https://atomicdata.dev/properties/description --as n3)

+

However, contrary to Atomic Data, RDF has optional Language and Datatype elements in every statement. +It is good practice to use these RDF concepts when serializing Atomic Data into Turtle / RDF/XML, or other RDF serialization formats.

+
    +
  • Convert Atoms with linked TranslationBox Resources to Literals with an xsd:string datatype and the corresponding language in the tag.
  • +
  • Convert Atoms with ResourceArrays to Collections that are native to that serialization format.
  • +
  • Dereference the Property and Datatype from Atomic Properties, and add the URLs in datatypes in RDF statements.
  • +
+

Atomic Data and Solid

+

The Solid project is an initiative by the inventor of linked data and the world wide web: sir Tim Berners-Lee. +In many ways, it has similar goals to Atomic Data:

+
    +
  • Decentralize the web
  • +
  • Make things more interoperable
  • +
  • Give people more control over their data
  • +
+

Technically, both are also similar:

+
    +
  • Usage of personal servers, or PODs (Personal Online Datastores). Both Atomic Data and Solid aim to provide users with a highly personal server where all sorts of data can be stored.
  • +
  • Usage of linked data. All Atomic Data is valid RDF, which means that all Atomic Data is compatible with Solid. However, the other way around is more difficult. In other words, if you choose to use Atomic Data, you can always put it in your Solid Pod.
  • +
+

But there are some important differences, too, which will be explained in more detail below.

+
    +
  • Atomic Data uses a strict built-in schema to ensure type safety
  • +
  • Atomic Data standardizes state changes (which also provides version control / history, audit trails)
  • +
  • Atomic Data is more easily serializable to other formats (like JSON)
  • +
  • Atomic Data has different models for authentication, authorization and hierarchies
  • +
  • Atomic Data does not depend on existing semantic web specifications
  • +
  • Atomic Data is a smaller and younger project, and as of now a one-man show
  • +
+

Disclaimer: I've been quite involved in the development of Solid, and have a lot of respect for all the people who are working on it. +Solid and RDF have been important inspirations for the design of Atomic Data. +The following is not meant as a critique on Solid, let alone the individuals working on it.

+

Atomic Data is type-safe, because of its built-in schema

+

Atomic Data is more strict than Solid - which means that it only accepts data that conforms to a specific shape. +In a Solid Pod, you're free to add any shape of data that you like - it is not validated by some schema. +Yes, there are some efforts of using SHACL or SHEX to constrain data before putting it in, but as of now it is not part of the spec or any implementation that I know of. +A lack of schema strictness can be helpful during prototyping and rapid development, especially if you write data by hand, but it also limits how easy it is to build reliable apps with that data. +Atomic Data aims to be very friendly for developers that re-use data, and that's why we take a different approach: all data must be validated by Atomic Schema before it's stored on a server. +This means that all Atomic Properties will have to exist on a publicly accessible URL, before the property can be used somewhere.

+

You can think of Atomic Data more like a (dynamic) SQL database that offers guarantees about its content type, and a Solid Pod more like a document store that takes in all kinds of content. +Most of the differences have to do with how Atomic Schema aims to make linked data easier to work with, but that is covered in the previous RDF chapter.

+

Atomic Data standardizes state changes (event sourcing)

+

With Solid, you change a Resource by sending a POST request to the URL that you want to change. +With Atomic, you change a Resource by sending a signed Commit that contains the requested changes to a Server.

+

Event sourcing means that all changes are stored (persisted) and used to calculate the current state of things. +In practice, this means that users get a couple of nice features for free:

+
    +
  • Versioning for all items by default. Storing events means that these events can be replayed, which means you get to traverse time / undo / redo.
  • +
  • Edit / audit log for everything. Events contain information about who made which change at which point in time. Can be useful for finding out why things are the way they are.
  • +
  • Easier to add query options / indexes. Any system can play-back the events, which means that the events can be used as an API to add new query options / fill new indexes. This is especially useful if you want to add things like full-text search, or some geolocation index.
  • +
+

It also means that, compared to Solid, there is a relatively simple and strict API for changing data. +Atomic Data has a uniform write API. +All changes to data are done by posting Commits to the /commits endpoint of a Server. +This removes the need to think about differences between all sorts of HTTP methods like POST / PUT / PATCH, and how servers should reply to that.

+

EDIT: as of december 2021, Solid has introduced .n3 patch for standardizing state changes. Although this adds a uniform way of describing changes, it still lacks the power of Atomic Commits. It does not specify signatures, mention versioning, or deals with persisting changesets. On top of that, it is quite difficult to read or parse, being .n3.

+

Atomic Data is more easily serializable to other formats (like JSON)

+

Atomic Data is designed with the modern (web)developer in mind. +One of the things that developers expect, is to be able to traverse (JSON) objects easily. +Doing this with RDF is not easily possible, because doing this requires subject-predicate uniqueness. +Atomic Data does not have this problem (properties must be unique), which means that traversing objects becomes easy.

+

Another problem that Atomic Data solves, is dealing with long URLs as property keys. +Atomic Data uses shortnames to map properties to short, human-readable strings.

+

For more information about these differences, see the previous RDF chapter.

+

Authentication

+

Both Solid an Atomic Data use URLs to refer to individuals / users / Agents.

+

Solid's identity system is called WebID. +There are multiple supported authentication protocols, the most common being WebID-OIDC.

+

Atomic Data's authentication model is more similar to how SSH works. +Atomic Data identities (Agents) are a combination of HTTP based, and cryptography (public / private key) based. +In Atomic, all actions (from GET requests to Commits) are signed using the private key of the Agent. +This makes Atomic Data a bit more unconventional, but also makes its auth mechanism very decentralized and lightweight.

+

Hierarchy and authorization

+

Atomic Data uses parent-child hierarchies to model data structures and perform authorization checks. +This closely resembles how filesystems work (including things like Google Drive). +Per resource, write and read rights can be defined, which both contain lists of Agents.

+

Solid is working on the Shape Trees spec, which also describes hierarchies. +It uses SHEX to perform shape validation, similar to how Atomic Schema does.

+

No dependency on existing semantic web specifications

+

The Solid specification (although still in draft) builds on a 20+ year legacy of committee meetings on semantic web standards such as RDF, SPARQL, OWL and XML. +I think the process of designing specifications in various (fragmented) committees has led to a set of specifications that lack simplicity and consistency. +Many of these specifications have been written long before there were actual implementations. +Much of the effort was spent on creating highly formal and abstract descriptions of common concepts, but too little was spent on making specs that are easy to use and solve actual problems for developers.

+

Aaron Scharz (co-founder or reddit, inventor of RSS and Markdown) wrote this in his unfinished book 'A Programmable Web':

+
+

Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense +contractors. +They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device.

+
+

(The book is a great read on this topic, by the way!)

+

So, in a nutshell, I think this legacy makes Solid unnecessarily hard to use for developers, for the following reasons:

+
    +
  • RDF Quirks: Solid has to deal with all the complexities of the RDF data model, such as blank nodes, named graphs, subject-predicate duplication.
  • +
  • Multiple (uncommon) serialization formats need to be understood, such as n3, shex and potentially all the various RDF serialization formats. These will feel foreign to most (even very experienced) developers and can have a high degree of complexity.
  • +
  • A heritage of broken URLs. Although a lot if RDF data exists, only a small part of it is actually resolvable as machine-readable RDF. The large majority won't give you the data when sending a HTTP GET request with the correct Accept headers to the subject's URL. Much of it is stored in documents on a different URL (named graphs), or behind some SPARQL endpoint that you will first need to find. Solid builds on a lot of standards that have these problems.
  • +
  • Confusing specifications. Reading up on RDF, Solid, and the Semantic Web can be a daunting (yet adventurous) task. I've seen many people traverse a similar path as I did: read the RDF specs, dive into OWL, install protege, create ontologies, try doing things that OWL doesn't do (validate data), read more complicated specs that don't help to clear things, become frustrated... It's a bit of a rabbit hole, and I'd like to prevent people from falling into it. There's a lot of interesting ideas there, but it is not a pragmatic framework to develop interoperable apps with.
  • +
+

Atomic Data and Solid server implementations

+

Both Atomic Data and Solid are specifications that have different implementations. +Some open source Solid implementations are the Node Solid Server, the Community Solid Server (also nodejs based) and the DexPod (Ruby on Rails based).

+

Atomic-Server is a database + server written in the Rust programming language, that can be considered an alternative to Solid Pod implementations. +It was definitely built to be one, at least. +It implements every part of the Atomic Data specification. +I believe that as of today (february 2022), Atomic-Server has quite a few advantages over existing Solid implementations:

+ +
    +
  • Dynamic schema validation / type checking using Atomic Schema, combining the best of RDF, JSON and type safety.
  • +
  • Fast (1ms responses on my laptop)
  • +
  • Lightweight (8MB download, no runtime dependencies)
  • +
  • HTTPS + HTTP2 support with Built-in LetsEncrypt handshake.
  • +
  • Browser GUI included powered by atomic-data-browser. Features dynamic forms, tables, authentication, theming and more. Easy to use!
  • +
  • Event-sourced versioning / history powered by Atomic Commits
  • +
  • Many serialization options: to JSON, JSON-AD, and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD).
  • +
  • Full-text search with fuzzy search and various operators, often <3ms responses.
  • +
  • Pagination, sorting and filtering using Atomic Collections
  • +
  • Invite and sharing system with Atomic Invites
  • +
  • Desktop app Easy desktop installation, with status bar icon, powered by tauri.
  • +
  • MIT licensed So fully open-source and free forever!
  • +
+

Things that Atomic Data misses, but Solid has

+

Atomic Data is not even two years old, and although progress has been fast, it does lack some specifications. +Here's a list of things missing in Atomic Data, with links to their open issues and links to their existing Solid counterpart.

+
    +
  • No inbox or notifications yet (issue)
  • +
  • No OIDC support yet. (issue)
  • +
  • No support from a big community, a well-funded business or the inventor of the world wide web.
  • +
+

How does Atomic Data relate to JSON?

+

Because JSON is so popular, Atomic Data is designed with JSON in mind.

+

Atomic Data is often (by default) serialized to JSON-AD, which itself uses JSON. +JSON-AD uses URLs as keys, which is what gives Atomic Data many of its perks, but using these long strings as keys is not very easy to use in many contexts. +That's why you can serialize Atomic Data to simple, clean JSON.

+

From Atomic Data to plain JSON

+

The JSON keys are then derived from the shortnames of properties. +For example, we could convert this JSON-AD:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

... into this plain JSON:

+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "datatype": "https://atomicdata.dev/datatypes/markdown",
+  "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "is-a": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "shortname": "description"
+}
+
+

Note that when you serialize Atomic Data to plain JSON, some information is lost: the URLs are no longer there. +This means that it is no longer possible to find out what the datatype of a single value is - we now only know if it's a string, but not if it actually represents a markdown string or something else. +Most Atomic Data systems will therefore not use this plain JSON serialization, but for some clients (e.g. a front-end app), it might be easier to use the plain JSON, as the keys are easier to write than the long URLs that JSON-AD uses.

+

From JSON to JSON-AD

+

Atomic Data requires a bit more information about pieces of data than JSON tends to contain. Let's take a look at a regular JSON example:

+
{
+  "name": "John",
+  "birthDate": "1991-01-20"
+}
+
+

We need more information to convert this JSON into Atomic Data. +The following things are missing:

+
    +
  • What is the Subject URL of the resource being described?
  • +
  • What is the Property URL of the keys being used? (name and birthDate), and consequentially, how should the values be parsed? What are their DataTypes?
  • +
+

In order to make this conversion work, we need to link to three URLs that resolve to atomic data resources. +The @id subject should resolve to the Resource itself, returning the JSON-AD from below. +The Property keys (e.g. "https://example.com/properties/name") need to resolve to Atomic Properties.

+
{
+  "@id": "https://example.com/people/john",
+  "https://example.com/properties/name": "John",
+  "https://example.com/properties/birthDate": "1991-01-20"
+}
+
+

In practice, the easiest approach to make this conversion, is to create the data and host it using software like Atomic Server.

+

From Atomic Data to JSON-LD

+

Atomic Data is a strict subset of RDF, and the most popular serialization of RDF for JSON data is JSON-LD.

+

Since Atomic Schema requires the presence of a key slug in Properties, converting Atomic Data to JSON results in dev-friendly objects with nice shorthands.

+
{
+  "@id": "https://example.com/people/John",
+  "https://example.com/properties/lastname": "John",
+  "https://example.com/properties/bestFriend": "https://example.com/sarah",
+}
+
+

Can be automatically converted to:

+
{
+  "@context": {
+    "@id": "https://example.com/people/John",
+    "name": "https://example.com/properties/lastname",
+    "bestFriend": "https://example.com/properties/bestFriend",
+  },
+  "name": "John",
+  "bestFriend": {
+    "@id": "https://example.com/sarah"
+  },
+}
+
+

The @context object provides a mapping to the original URLs.

+

JSON-AD and JSON-LD are very similar by design, but there are some important differences:

+
    +
  • JSON-AD is designed just for atomic data, and is therefore easier and more performant to parse / serialize.
  • +
  • JSON-LD uses @context to map keys to URLs. Any type of mapping is valid. JSON-AD, on the other hand, doesn't map anything - all keys are URLs.
  • +
  • JSON-LD uses nested objects for links and sequences, such as @list. JSON-AD does not.
  • +
  • Arrays in JSON-LD do not indicate ordered data - they indicate that for some subject-predicate combination, multiple values exist. This is a result of how RDF works.
  • +
+

JSON-LD Requirements for valid Atomic Data

+
    +
  • Make sure the URLs used in the @context resolve to Atomic Properties.
  • +
+ +
    +
  • Convert JSON-LD arrays into ResourceArrays
  • +
  • Creating nested JSON objects is possible (by resolving the identifiers from @id relations), but it is up to the serializer to decide how deep this object nesting should happen.
  • +
+

Note that as of now, there are no JSON-LD parsers for Atomic Data.

+

Atomic Data and IPFS

+

What is IPFS

+

IPFS (the InterPlanetary File System) is a standard that enables decentralized file storage and retrieval using content-based identifiers. +Instead of using an HTTP URL like http://example.com/helloworld, it uses the IPFS scheme, such as ipfs:QmX6j9DHcPhgBcBtZsuRkfmk2v7G5mzb11vU9ve9i8vDsL. +IPFS identifies things based on their unique content hash (the long, seemingly random string) using a thing called a Merkle DAG (this great article explains it nicely). +This is called a CID, or Content ID. +This simple idea (plus some not so simple network protocols) allows for decentralized, temper-proof storage of data. +This fixes some issues with HTTP that are related to its centralized philosophy: no more 404s!

+

Why is IPFS interesting for Atomic Data

+

Atomic Data is highly dependent on the availability of Resources, especially Properties and Datatypes. +These resources are meant to be re-used a lot, and when these go offline or change (for whatever reason), it could cause issues and confusion. +IPFS guarantees that these resources are entirely static, which means that they cannot change. +This is useful when dealing with Properties, as a change in datatype could break things. +IPFS also allows for location-independent fetching, which means that resources can be retrieved from any location, as long as it's online. +This Peer-to-peer functionality is a very fundamental advantage of IPFS over HTTP, especially when the resources are very likely to be re-use, which is especially the case for Atomic Data Properties.

+

Considerations using IPFS URLs

+

IPFS URLs are static, which means that their contents can never change. +This is great for some types of data, but not so much for others. +If you're describing a time-dependent thing (such as a person's job), you'll probably want to know what the current value is, and that is not possible when you only have an IPFS identifier. +This can be fixed by including an HTTP URL in IPFS bodies.

+

IPFS data is also hard to remove, as it tends to be replicated across machines. +If you're describing personal, private information, it can therefore be a bad idea to use IPFS.

+

And finally, its performance is typically not as good as HTTP. +If you know the IPFS gateway that hosts the IPFS resource that you're looking for, things improve drastically. +Luckily for Atomic Data, this is often the case, as we know the HTTP url of the server and could try whether that server has an IPFS gateway.

+

Atomic Data and IPLD

+

IPLD (not IPFS) stands for InterPlanetary Linked Data, but is not related to RDF. +The scope seems fundamentally different from RDF, too, but I have to read more about this.

+

Share your thoughts

+

Discuss on this issue.

+

Atomic Data and SQL

+

Atomic Data has some characteristics that make it similar and different from SQL.

+
    +
  • Atomic Data has a dynamic schema. Any Resource could have different properties, so you can add new properties to your data without performing any migrations. However, the properties themselves are still validated (contrary to most NoSQL solutions)
  • +
  • Atomic Data uses HTTP URLs in its data, which means it's easy to share and reuse.
  • +
  • Atomic Data separates reading and writing, whereas SQL has one language for both.
  • +
  • Atomic Data has a standardized way of storing changes (Commits)
  • +
+

Tables and Rows vs. Classes and Properties

+

At its core, SQL is a query language based around tables and rows. +The tables in SQL are similar to Classes in Atomic Data: they both define a set of properties which an item could have. +Every single item in a table is called a row in SQL, and a Resource in Atomic Data. +One difference is that in Atomic Data, you can add new properties to resources, without making changes to any tables (migrations).

+

Dynamic vs static schema

+

In SQL, the schema of the database defines which shape the data can have, which properties are required, what datatypes they have. +In Atomic Data, the schema exists as a Resource on the web, which means that they can be retrieved using HTTP. +An Atomic Database (such as Atomic-Server) uses a dynamic schema, +which means that any Resource can have different properties, and the properties themselves can be validated, even when the server is not aware of these properties beforehand. +In SQL, you'd have to manually adjust the schema of your database to add a new property. +Atomic Data is a decentralized, open system, which can read new schema data from other sources. +SQL is a centralized, closed system, which relies on the DB manager to define the schema.

+

Identifiers: numbers vs. URLs

+

In SQL, rows have numbers as identifiers, whereas in Atomic Data, every resource has a resolvable HTTP URL as an identifier. +URLs are great identifiers, because you can open them and get more information about something. +This means that with Atomic Data, other systems can re-use your data by referencing to it, and you can re-use data from other systems, too. +With Atomic Data, you're making your data part of a bigger web of data, which opens up a lot of possibilities.

+

Atomic Server combines server and database

+

If you're building an App with SQL, you will always need some server that connects to your database. +If you're building an App with Atomic Server, the database can function as your server, too. It deals with authentication, authorization, and more.

+

Querying

+

The SQL query language is for both reading and writing data. +In Atomic Data a distinction is made between Query and Command - getting and setting (Command Query Responsibility Segregation, CQRS). +The Query side is handled using Subject Fetching (sending a GET request to a URL, to get a single resource) and Collections (filtering and sorting data). +The Command side is typically done using Atomic Commits, although you're free not to use it.

+

SQL is way more powerful, as a query language. +In SQL, the one creating the query basically defines the shape of a table that is requested, and the database returns that shape. +Atomic Data does not offer such functionality. +So if you need to create custom tables at runtime, you might be better off using SQL, or move your Atomic Data to a query system.

+

Convert an SQL database to Atomic Data

+

If you want to make your existing SQL project serve Atomic Data, you can keep your existing SQL database, see the upgrade guide. +It basically boils down to mapping the rows (properties) in your SQL tables to Atomic Data Properties.

+

When you want to import arbitrary Atomic Data, though, it might be easier to use atomic-server. +If you want to store arbitrary Atomic Data in a SQL database, you might be best off by creating a Resources table with a subject and a propertyValues column, or create both a properties table and a resources one.

+

Limitations of Atomic Data

+
    +
  • SQL is far more common, many people will know how to use it.
  • +
  • SQL databases are battle-tested and has been powering countless of products for tens of years, whereas Atomic Server is at this moment in beta.
  • +
  • SQL databases have a more powerful and expressive query language, where you can define tables in your query and combine resources.
  • +
  • Atomic Data doesn't have a mutli-node / distributed option
  • +
+

FAQ

+

Is Atomic Data NOSQL or SQL?

+

Generally, Atomic Data apps do not use SQL - so they are NOSQL. +Atomic-server, for example, internally uses a key-value store (sled) for persistence.

+

Like most NOSQL systems, Atomic Data does not limit data entries to a specific table shape, so you can add any property that you like to a resource. +However, unlike most NOSQL systems, Atomic Data does perform validations on each value. +So in a way, Atomic Data tries to combine best of both worlds: the extendibility and flexibility of NOSQL, with the type safety of SQL.

+

Is Atomic Data transactional / ACID?

+

Yes, if you use Atomic-Server, then you can only write to the server by using Atomic Commits, which are in fact transactions. +This means that if part of the transaction fails, it is reverted - transactions are only applied when they are 100% OK. +This prevents inconsistent DB states.

+

How does Atomic Server build indexes for its resources if the schema is not known in advance

+

It creates indexed collections when users perform queries. +This means that the first time your perform some type of query (that sorts and filters by some properties), it will be slow, but the next time you perform a similar query, it will be fast.

+

Atomic Data and Graph Databases

+

Atomic Data is fundamentally a graph data model. +We can think of Atomic Resources as nodes, and links to other resources through properties as edges.

+

In the first section, we'll take a look at Atomic-Server as a Graph Database. +After that, we'll explore how Atomic Data relates to some graph technologies.

+

Atomic-Server as a database

+
    +
  • Built-in REST. Everything is done over HTTP, there's no new query language or serialization to learn. It's all JSON.
  • +
  • All resources have HTTP URLs. This means that every single thing is identified by where it can be be found. Makes it easy to share data, if you want to!
  • +
  • Sharable and re-usable data models. Atomic Schema helps you share and re-use data models by simply pointing to URLs.
  • +
  • Authorization built-in. Managing rights in a hierarchy (similar to how tools like Google Drive or filesystems work) enable you to have a high degree of control over read / write rights.
  • +
  • Built-in easy to use GUI. Managing content on Atomic-Server can be done by anyone, as its GUI is extremely easy to use and has a ton of features.
  • +
  • Dynamic indexing. Indexes are created by performing Queries, resulting in great performance - without needing to manually configure indexing.
  • +
  • Synchronization over WebSockets. All changes (called Commits) can be synchronized over WebSockets, allowing you to build realtime collaborative tools.
  • +
  • Event-sourced. All changes are stored and reversible, giving you a full versioned history.
  • +
  • Open source. All code is MIT-licensed.
  • +
+

Comparing Atomic Data to Neo4j

+

Neo4j is a popular graph database that supports multiple query languages. +The first difference is that Atomic Data is not a single piece of software but a specification. +However, we can compare Neo4j as a product with the open source Atomic-Server. +Atomic-Server is fully open source and free (MIT licensed), whereas Neo4j is partially open source and GPL licensed.

+

Labeled Property Graph

+

The data model of Neo4j features a labeled property graph, which means that edges (relationships between nodes) can have their own properties. +This can be useful when adding data to relationship between nodes. +For example: in the john - (knows) -> mary relationship, you might want to specify for how long they have known each other. +In Neo4j, we can add this data to the labeled property graph.

+

In Atomic Data, we'd have to make a new resource to describe the relation between the two, if we wanted to add information about the relationship itself. +This is called reification. +This process can be time consuming, especially in Atomic Data, as this means that you'll have to specify the Class of this relationship and its properties. +However, one benefit of this approach, is that the relationship itself becomes clearly defined and re-usable. +Another benefit is that the simpler model of Atomic Data maps perfectly to datamodels like JSON, which makes things very convenient and familiar for developers.

+

Query language vs REST

+

Neo4j supports multiple query languages, but its mainly known for Cypher. +It is used for doing practically everything: reading, writing, modelling, and more.

+

Atomic Data on the other hand does not have a query language. +It uses a RESTful HTTP + JSON-AD approach for everything. +Atomic Data uses Endpoints for specific goals that you'd do in a query language:

+
    +
  • Collections (which can filter by Property or Value, and sort by any Property) to generate lists of resources
  • +
  • Paths for traversing graphs by property
  • +
+

And finally, data is written using Commits. +Commits are very strict, as each one describes modifications to individual resources, and every Commits has to be signed. +This means that with Atomic Data, we get versioning + audit trails for all data, but at the cost of more storage requirements and a bit more expensive write process.

+

Schema language and type safety

+

In Neo4j, constraints can be added to the database by +Atomic Data uses Atomic Schema for validating datatypes and required properties in Classes.

+

Other differences

+ +

Various Use Cases for Atomic Data

+

Most of this book is either abstract or technical, but this section aims to be different. +In this section, we'll present concrete examples of things that can be built with Atomic Data. +Although you could use Atomic Data for pretty much any type of application, it is especially valuable where data re-use, standardization, and data ownership are important.

+ + +

Using Atomic-Server as an open source headless CMS

+

Why people are switching to Headless CMS

+

Traditionally, content management systems were responsible for both managing the content as well as producing the actual HTML views that the user saw. +This approach has some issues regarding performance and flexibility that headless CMS tools solve.

+
    +
  • Great performance. We want pages to load in milliseconds, not seconds. Headless CMS tools + JAMSTACK style architectures are designed to give both performant initial page loads, as well as consecutive / dynamic loads.
  • +
  • High flexibility. Designs change, and front-end developers want to use the tools that they know and love to create these designs effectively. With a headless CMS, you can build the front-end with the tools that you want, and make it look exactly like you want.
  • +
  • Easier content management. Not every CMS is as fun and easy to use, as an admin, as others. Headless CMS tools focus on the admin side of things, so the front-end devs don't have to work on the back-end as well.
  • +
+

Atomic Server

+

The Atomic-Server project may be the right choice for you if you're looking for a Headless CMS:

+ +
    +
  • Free and open source. MIT licensed, no strings attached.
  • +
  • Easy to use API. Atomic-Server is built using the Atomic Data specification. It is well-documented, and uses conventions that most web developers are already familiar with.
  • +
  • Typescript & React libraries. Use the existing react hooks to make your own fully editable, live-reloaded web application.
  • +
  • Fast. 1ms responses on my laptop. It's written in Rust, so it squeezes out every cycle of your server.
  • +
  • Lightweight. It's a single 8MB binary, no external dependencies needed.
  • +
  • Easy to setup. Just run the binary and open the address. Even HTTPS support is built-in.
  • +
  • Clean, powerful admin GUI. The Atomic-Data-Browser front-end gives you a very easy interface to manage your content.
  • +
  • Share your data models. Atomic Data is designed to achieve a more decentralized web. You can easily re-use existing data models, or share the ones you built.
  • +
  • Files / Attachments. Upload and preview files.
  • +
  • Pagination / sorting / filtering. Query your data.
  • +
  • Versioning. Built-in history, where each transaction is saved.
  • +
  • Websockets. If you need live updates and highly interactive apps (collaborative documents and chatrooms), we've got your back.
  • +
  • Full-text search. No need for a big elasticsearch server - atomic-server has one built-in.
  • +
+

Limitations

+ +

Setting up the server

+
    +
  • One-liners: cargo install atomic-server or docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server
  • +
  • Check out the readme!
  • +
+

Using the data in your (React / NextJS) app

+

The @tomic/lib and @tomic/react typescript NPM libraries can be used in any JS project.

+

In the next section, we'll discuss how to use Atomic-Server in your React project.

+

Compared to alternative open source headless CMS software

+
    +
  • Strapi: Atomic-Server doesn't need an external database, is easier to setup, has live synchronization support and is way faster. However, Strapi has a plugin system, is more polished, and has GraphQL support.
  • +
  • **
  • +
+

Using Atomic Data in a JS / TS React project

+

Atomic Data has been designed with front-end development in mind. +The open source Atomic-Data-Browser, which is feature-packed with chatrooms, a real-time collaborative rich text editor, tables and more, is powered by two libraries:

+
    +
  • @tomic/lib (docs) is the core library, containing logic for fetching and storing data, keeping things in sync using websockets, and signing commits.
  • +
  • @tomic/react (docs) is the react library, featuring various useful hooks that mimic useState, giving you real-time updates through your app.
  • +
+

Check out the template on CodeSandbox:

+ +

Feeling stuck? Post an issue or join the discord.

+

Atomic Data for personal data stores

+

A Personal Data Store (or personal data service) is a place where you store all sorts of personal information. +For example a list of contacts, todo items, pictures, or your profile data. +Not that long ago, the default for this was the my Documents folder on your hard drive. +But as web applications became better, we started moving our data to the cloud. +More and more of our personal information is stored by large corporations who use the information to build profiles to show us ads. +And as cloud consumers, we often don't have the luxury of moving our personal data to a place to where we want it to be. +Many services don't even provide export functionality, and even if they do, the exports often lack information or are not interoperable with other apps.

+

Atomic Data could help to re-introduce data ownership. +Because the specification helps to standardize information, it becomes easier to make data interoperable. +And even more important: Apps don't need their own back-end - they can use the same personal data store: an Atomic Server (such as this one).

+

Realizing this goal requires quite a bit of work, though. +This specification needs to mature, and we need reliable implementations. +We also need proper tutorials, libraries and tools that convince developers to use atomic data to power their applications.

+

Atomic Data & Artificial Intelligence

+

Recent developments in machine learning (and specifically deep neural networks) have shown how powerful and versatile AI can be. +Both Atomic Data and AI can be used to store and query knowledge, but we think of these technologies as complementary due to their unique characteristics:

+
    +
  • Artificial Intelligence can make sense of (unstructured) data, so you can feed it any type of data. However, AIs often produce unpredictable and sometimes incorrect results.
  • +
  • Atomic Data helps to make data interoperable, reliable and predictable. However, it requires very strict inputs.
  • +
+

There are two ways in which Atomic Data and AI can help each other:

+
    +
  • AI can help to make creating Atomic Data easier.
  • +
  • Atomic Data can help train AIs.
  • +
  • Atomic Data can provide AIs with reliable, machine readable data for answering questions.
  • +
+

Make it easier to create Atomic Data using AI

+

While writing text, an AI might help make suggestions to disambiguate whatever it is you're writing about. +For example, you may mention John and your knowledge graph editor (like atomic-server) could suggest John Wayne or John Cena. +When making your selection, a link will be created which helps to make your knowledge graph more easily browsable. +AI could help make these suggestions through context-aware entity recognition.

+

Train AIs with Atomic Data

+

During training, you could feed Atomic Data to your AI to help it construct a reliable, consistent model of the knowledge relevant to your organization or domain. +You could use atomic-server as the knowledge store, and iterate over your resources and let your AI parse them.

+

Provide AI with query access to answer questions

+

Instead of training your AI, you might provide your AI with an interface to perform queries. +Note that at this moment, I'm not aware of any AIs that can actually construct and execute queries, but because of recent advancements (e.g. ChatGPT), we know that there now exist AIs that can create SQL queries based on human text. +In the future, you might let your AI query your atomic-server to find reliable and up-to-date answers to your questions.

+

Atomic Data for e-commerce & marketplaces

+

Buying good and services on the internet is currently responsible for about 15% of all commerce, and is steadily climbing. +The internet makes it easier to find products, compare prices, get information and reviews, and finally order something. +But the current e-commerce situation is far from perfect, as large corporations tend to monopolize, which means that we have less competition which ultimately harms prices and quality for consumers. +Atomic Data can help empower smaller businesses, make searching for specific things way easier and ultimately make things cheaper for everyone.

+

Decentralize platform / sharing economy service marketplaces

+

Platforms like Uber, AirBNB and SnapCar are virtual marketplaces that help people share and find services. +These platforms are responsible for:

+
    +
  1. providing an interface for managing offers (e.g. describe your car, add specifications and pricing)
  2. +
  3. hosting the data of the offers themselves (make the data available on the internet)
  4. +
  5. providing a search interface (which means indexing the data from all the existing offers)
  6. +
  7. facilitating the transaction / payments
  8. +
  9. provide trust through reviews and warranties (e.g. refunds if the seller fails to deliver)
  10. +
+

The fact that these responsibilities are almost always combined in a single platforms leads to vendor lock-in and an uncompetitive landscape, which ultimately harms consumers. +Currently, if you want to manage your listing / offer on various platforms, you need to manually adjust it on all these various platforms. +Some companies even prohibit offering on multiple platforms (which is a legal problem, not a technical one). +This means that the biggest (most known) platforms have the most listings, so if you're looking for a house / car / rental / meal, you're likely to go for the biggest business - because that's the one that has the biggest assortment.

+

Compare this to how the web works: every browser should support every type of webpage, and it does not matter where the webpage is hosted. +I can browse a webpage written on a mac on my windows machine, and I can read a webpage hosted by amazon on an google device. +It does not matter, because the web is standardized and open, instead of being centralized and managed by one single company as proprietary data. +This openness of the web means that we get search engines like Google and Bing that scrape the web and add it to their index. +This results in a dynamic where those who want to sell their stuff will need to share their stuff using an open standard (for webpages things like HTML and sometimes a bit of metadata), so crawlers can properly index the webpages. +We could do the same thing for structured data instead of pages, and that's what Atomic Data is all about.

+

Let's discuss a more practical example of what this could mean. +Consider a restaurant owner who currently uses UberEats as their delivery platform. +Using Atomic Data, they could define their menu on their own website. +The Atomic Schema specification makes it easy to standardize how the data of a menu item looks like (e.g. price, image, title, allergens, vegan...). +Several platforms (potentially modern variants of platforms like JustEat / UberEats) could then crawl this standardized Atomic Data, index it, and make it easily searchable. +The customer would use one (or multiple) of these platforms, that would probably have the exact same offers. +Where these platforms might differ, is in their own service offering, such as delivery speed or price. +This would result in a more competitive and free market, where customers would be able to pick a platform based on their service price and quality, instead of their list of offerings. +It would empower the small business owner to be far more flexible in which service they will do business with.

+ +

Searching for products on the internet is mostly limited to text search. +If we want to buy a jacket, we see tonnes of jackets that are not even available in our own size. +Every single website has their own way of searching and filtering.

+

Imagine making a search query in one application, and sending that to multiple suppliers, after you'll receive a fully personalized and optimized list of products. +Browsing in an application that you like to use, not bound to any one specific store, that doesn't track you, and doesn't show advertisements. +It is a tool that helps you to find what you need, and it is the job of producers to accurately describe their products in a format that your product browser can understand.

+

How do we get there?

+

Well, for starters, producers and suppliers will need to reach a consensus on how to describe their articles. +This is not new; for many products, we already have a common language. +Shoes have a shoe size, televisions have a screen size in diagonal inches, brightness is measured in nits, etc. +Describing this in a machine-readable and predictable format as data is the next logical step. +This is, of course, where Atomic Schema could help. +Atomic-server could be the connected, open source database that suppliers use to describe their products as data.

+

Then we'll also need to build a search interface that performs federated queries, and product-dependent filter options.

+

Product lifecycle & supply chain insights

+

Imagine buying a product, and being able to see where each part came from. +The car that you buy might contain a list of all the maintenance moments, and every replaced part. +The raw materials used could be traced back to their origins.

+

This requires a high degree of coordination from each step in the supply chain. +This is exactly where Atomic Data shines, though, as it provides a highly standardized way of structuring, querying, authenticating an authorizing data.

+

Before we get to this point, we'll need to:

+
    +
  • Describe domain-specific product Classes using Atomic Schema, and their Properties.
  • +
+

Product specific updates after purchase

+

Imagine buying an external battery pack with a production error. +All units with a serial number between 1561168 and 1561468 have a serious error, where overcharging could lead to spontaneous combustion. +This is something that you'd like to know. +But how would the manufacturer of that resource know where to find you? +Well, if your Atomic Server would have a list of all the things that you've bought, it could automatically subscribe to safety updates from all manufacturers. +When any of these manufacturers would publish a safety warning about a product that you possess, you'll get an alert.

+

Before we have this, well need to:

+
    +
  • Build notifications support (see issue)
  • +
+

Atomic Data for Surveys

+

Surveys and Questionnaires haven't been evolving that much over the past few years. +However, Atomic Data has a couple of unique characteristics that would make it especially suitable for surveys. +It could help make surveys easier to fill in, easier to analyze, easier to create, and more privacy friendly.

+
    +
  • Re-useable survey responses which enable pre-filled form fields which can save the respondent a lot of time. They also make it possible for users to use their own responses to gather insights, for example into their own health.
  • +
  • Question standardization which helps researchers to re-use (validated) questions, which saves time for the researcher
  • +
  • Privacy friendly, yet highly personalized invites as a researcher, send profile descriptions to servers, and let the servers tell if the question is relevant.
  • +
+

Re-useable survey responses

+

Since many surveys describe personal information, it makes sense, as a respondent, to have a way of storing the information you filled in in a place that you control. +Making this possible enables a few nice use cases.

+
    +
  1. Auto-fill forms. Previously entered response data could be usable while filling in new surveys. This could result in a UX similar to auto-filling forms, but far more powerful and rich than browsers currently support.
  2. +
  3. Analyze your own personal data. Standardized survey responses could also be used to gather insights into your own personal information. For example, filling in a survey about how your shortness of breath linked to air pollution has been today could be used in a different app to make a graph that visualizes how your shortness of breath has progressed over the months for personal insight.
  4. +
+

Achieving something like this requires a high degree of standardization in both the surveys and the responses. The survey and its questions should provide information about:

+
    +
  • The question. This is required in all survey questions, of course.
  • +
  • The required datatype of the response, such as 'string', or 'datetime' or some 'enumeration'.
  • +
  • A (link to a) semantic definition of the property being described. This is a bit more obscure: all pieces of linked data use links, instead of keys, to describe the relation between some resource and its property. For example, a normal resource might have a 'birthdate', while in linked data, we'd use 'https://schema.org/birthDate'. This semantic definition makes things easier to share, because it prevents misinterpretation. Links remove ambiguity.
  • +
  • A query description. This is even more obscure, but perhaps the most interesting. A query description means describing how a piece of information can be retrieved. Perhaps a question in a survey will want to know what your payment pointer is. If a piece of software wants to auto-fill this field, it needs to know where it can find your payment pointer.
  • +
+

Question Standardization

+

We can think of Questions as Resources that have a URL, and can be shared. +Sharing questions like that can make it easier to use the same questions across surveys, which in turn can make it easier to interpret data. +Some fields (e.g. medical) have highly standardized questions, which have been validated by studies. +These Question resources should contain information about:

+
    +
  • The question itself and its translations
  • +
  • The datatype of the response (e.g. date, string, enum), denoted by the Property of the response.
  • +
  • The path of the data, relative to the user. For example, a user's birthdate can be found by going to / profile birthdate
  • +
+

Atomic Schema and Atomic Paths can be of value here.

+

Privacy friendly invites with client-side filtering

+

Currently, a researcher needs to either build their own panel, or use a service that has a lot of respondents. +Sometimes, researchers will need a very specific target audience, like a specific age group, nationality, gender, or owners of specific types of devices. +Targeting these individuals is generally done by having a large database of personal information from many individuals. +But there is another way of doing this: client-side filtering +Instead of asking for the users data, and storing it centralized, we could send queries to decentralized personal data stores. +There queries basically contain the targeting information and an invitation. +The query is executed on the personal data store, and if the user characteristics align with the desired participants profile, the user receives an invite. +The user only sees invitations that are highly relevant, without sharing any information with the researcher.

+

The Atomic Data specification solves at least part of this problem. +Paths are used to describe the queries that researchers make. +AtomicServer can be used as the personal online data store.

+

However, we still need to specify the process of sending a request to an individual (probably by introducing an inbox)

+

Atomic Data and Verifiable Credentials / SSI

+

What are Verifiable Credentials / Self-Sovereign Identity

+

Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. +For example, you could have a credential that proves your degree, signed by your education. +These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. +For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. +Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it.

+

What makes Atomic Data suitable for this

+

Firstly, Atomic Commit are already verifiable using signatures that contain all the needed information. +Secondly, Atomic Schema can be used for standardizing Credential Schemas.

+

Every Atomic Commit is a Verifiable Credential

+

Every time an Agent updates a Resource, an Atomic Commit is made. +This Commit is cryptographically signed by an Agent, just like how Verfifiable Credentials are signed. +In essence, this means that all atomic data created through commits is fully verifiable.

+

How could this verification work?

+
    +
  • Find the Commit that has created / edited the value that you want to verify. This can be made easier with a specialized Endpoint that takes a resource, property and signer and returns the associated Commit(s).
  • +
  • Check the signer of the Commit. Is that an Agent that you trust?
  • +
  • Verify the signature of the Commit using the public key of the Agent.
  • +
+

Sometimes, credentials need to be revoked. +How could revocation work?

+
    +
  • Find the Commit (see above)
  • +
  • Get the signer (see above)
  • +
  • Find the /isRevoked Endpoint of that signer, send a Request there to make sure the linked Commit is still valid and not revoked.
  • +
+

(Discussion)

+

Use Atomic Schema for standardizing Credentials

+

If you are a Verifier who wants to check someone's birthdate, you'll probably expect a certain datatype in return, such as a date that is formatted in some specific way. +Atomic Schema makes it possible to express which properties are required in a certain Class, and it also makes it possible to describe which datatype is linked to a specific Property. +Combined, they allow for fine-grained descriptions of models / classes / schemas.

+

Using Atomic-Server as a Data Catalog

+

A data catalog is a system that collects metadata - data about data. +They are inventories of datasets.

+

They are often used to:

+
    +
  • Increase data-reuse of (open) datasets. By making descriptions of datasets, you increase their discoverability.
  • +
  • Manage data quality. The more datasets you have, the more you'll want to make sure they are usable. This could mean settings serialization requirements or schema compliance.
  • +
  • Manage compliance with privacy laws. If you have datasets that contain GDPR-relevant data (personal data), you're legally required to maintain a list of where that data is stored, what you need it for and what you're doing with it.
  • +
+

Why Atomic Server could be great for Data Catalogs

+

Atomic-Server is a powerful Database that can be used as a modern, powerful data catalog. It has a few advantages over others:

+
    +
  • Free & open source. MIT licensed!
  • +
  • Many built-in features, like full-text search, history, live synchronization and rights management.
  • +
  • Great performance. Requests take nanoseconds to milliseconds.
  • +
  • Very easy to setup. One single binary, no weird runtime dependencies.
  • +
  • Everything is linked data. Not just datasets (which you might), but also everything around them (users, comments, implementations).
  • +
  • Powerful CMS capabilities. With built in support for Tables and Documents, you can easily create webpages with articles or other types of resources using Atomic Server.
  • +
  • Atomic Schema can be used to describe the shape of your datasets: the properties you use, which fields are required - things like that. Because Atomic Schema uses URLs, we can easily re-use properties and class definitions. This helps to make your datasets highly interoperable.
  • +
+

When Atomic-Server is used for hosting the data, too

+

Most datacatalogs only have metadata. However, if you convert your existing CSV / JSON / XML / ... datasets to Atomic Data, you can host them on Atomic-Server as well. This has a few advantages:

+
    +
  • Data previews in the browser, users can navigate through the data without leaving the catalog.
  • +
  • Data itself becomes browseable, too, which means you can traverse a graph by clicking on link values.
  • +
  • Standardized Querying means you can easily, from the data catalog, can filter and sort the data.
  • +
  • Cross-dataset search. Search queries can be performed over multiple Atomic Data servers at once, enabling searching over multiple datasets. This is also called federated search.
  • +
+

Atomic Server compared to CKAN

+
    +
  • Atomic-Server is MIT licensed - which is more permissive than CKAN's AGPL license.
  • +
  • Whereas CKAN needs an external database, a python runtime, solrd and a HTTPS server, Atomic-Server has all of these built-in!
  • +
  • CKAN uses plain RDF, which has some very important drawbacks.
  • +
  • But... Atomic-Server still misses a few essentials right now:
  • +
+

What we should add to Atomic-Server before it's a decent Data Catalog

+
    +
  • Add a model for datasets. This is absolutely essential. It could be based on (and link to) DCAT, but needs to be described using Atomic Schema. This step means we can generate forms for Datasets and we can validate their fields.
  • +
  • Add views for datasets. Atomic-Server already renders decent views for unknown resources, but a specific view should be created for Datasets. Add a PR if you have a React view!
  • +
+

Atomic Data for Education - standardized, modular e-learning

+

The Atomic Data specification can help make online educational content more modular. This has two direct benefits:

+
    +
  • Separate learning goals from how they are achieved. Some might prefer watching a video, others may want to read. Both can describe the same topic, and share the same test.
  • +
  • Improve discoverability. Create links between topics so students know which knowledge is needed to advance to the next topic.
  • +
+

Modular educational content - a model

+

We can think of Knowledge as being building blocks that we need to do certain things. +And we can think of Lessons as teaching certain pieces of knowledge, while at the same time requiring other pieces of knowledge. +For example, an algebra class might require that you already know how to multiply, add, etc. +We can think of Test as verifying if a piece of knowledge is properly understood.

+

Now there's also a relationship between the Student and all of these things. +A student is following a bunch Lessons in which they've made some progress, has done some Tests which resulted in Scores.

+

Describing our educational content in this fashion has a bunch of advantages. +For students, this means they can know in advance if they can get started with a course, or if they need to learn something else first. +Conversely, they can also discover new topics that depend on their previous piece of knowledge. +For teachers, this means they can re-use existing lessons for the courses.

+

What makes Atomic-Server a great tool for creating online courseware

+
    +
  • Powerful built-in document editor
  • +
  • Drag & drop file support
  • +
  • Versioning
  • +
  • Open source, so no vendor lock-in, and full customizability
  • +
  • Real-time updates, great for collaboration
  • +
  • Online by default, so no extra hassle with putting courses on the internet
  • +
+

However, there is still a lot to do!

+
    +
  • Turn the model described above into an actual Atomic Schema data model
  • +
  • Build the GUI for the application
  • +
  • Add plugins / extenders for things like doing tests (without giving the answer to students!)
  • +
  • Create educational content
  • +
+

Atomic Data for food label standardization

+

In most countries, food producers are required to provide nutritional information on the packages of products, which helps citizens to make informed decisions about what to eat. +But how about we upgrade these labels to machine-readable, atomic data? +We could describe products using Atomic Data, and put their identifiers (Subject URLs) as QR codes on packages. +Imagine these scenarios:

+

Scan labels to get detailed, reliable, interactive information

+

You want to know more about some new cereal you've just bought. +You scan the QR code on the package. +A web app opens that shows detailed, yet highly visual information about its nutritional value. +The screen is no longer limited to what realistically fits on a package. +The elements are interactive, and provide explanations. +Everything is translated to the user's language. +If the food is (soon to be) expired, the app will clearly and visually alert you. +Click on the question mark next to granulated sugars, and you get an explanation of what this means to your health. +E-numbers are clickable, too, and help you instantly understand far more about what they represent. +When AR glasses become technologically feasible, you could even help people make better decisions while doing grocery shopping.

+

Using links instead of names helps to guide consumers to trustworthy pages that communicate clearly. +The alternative is that they use search engines, and maybe end up reading misinformation.

+

Provide nutritional advice based on shopping behavior

+

You order a bunch of products on your favorite groceries delivery app. +When going to the payment screen, you are shown a nutritional overview of your order. +You see that with this diet, you might have a deficit of the Lysene amino acid. +The shopping cart suggest adding egg, dairy or soy to your diet. +This can be done, because the groceries app can easily check detailed information about the food in your shopping cart, and reason about your dietary intake.

+

How to achieve all this

+
    +
  1. The governing body (e.g. the European Commision) should set up an Atomic Server and host it on some recognizable domain.
  2. +
  3. Create the Class for a food product, containing the same (or more) information that is shown on food packages.
  4. +
  5. Create the Class for Ingredient.
  6. +
  7. Create instances for various Ingredients. Start with the E-numbers, work your way up to all kinds of used ingredients. Add Translations.
  8. +
  9. Give instructions to Producers on how to describe their Products. Give them to option to host their own Server and control their own data, and give them the option to use some EU server.
  10. +
+

Software and libraries for Atomic Data

+

Although Atomic Data is a specification, it also has reference implementations:

+

Open source (MIT licenced) software for Atomic Data:

+ +

Libraries (MIT licenced) to build apps with:

+ +

Applications

+

atomic-server

+

Server for hosting Atomic Data. Uses atomic-lib.

+
    +
  • Responds to requests for created Atomic Resources, makes atomic data available at their URL.
  • +
  • Embedded database
  • +
  • Authorization, authentication, versioning, collections, pagination
  • +
  • Browser-friendly HTML presentation, JSON serialization, RDF serialization.
  • +
+

One liner: $ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server

+

demo

+

repository + issue tracker.

+

atomic-data-browser

+

Data browser, powered by @tomic/lib and @tomic/react.

+
    +
  • View & edit atomic data, using dynamic forms
  • +
  • Collections with pagination and sorting
  • +
  • Client-side full-text search
  • +
+

demo (same as atomic-server)

+

repository + issue tracker.

+

atomic-cli

+

A tool for generating / querying Atomic Data from the command line. Install with cargo install atomic-cli.

+
atomic 0.20.0
+Joep Meindertsma <joep@ontola.io>
+Create, share, fetch and model linked atomic data!
+
+USAGE:
+    atomic-cli [SUBCOMMAND]
+
+FLAGS:
+    -h, --help       Prints help information
+    -V, --version    Prints version information
+
+SUBCOMMANDS:
+    destroy    Permanently removes a Resource. Uses Commits.
+    edit       Edit a single Atom from a Resource using your text editor. Uses Commits.
+    get        Traverses a Path and prints the resulting Resource or Value.
+    help       Prints this message or the help of the given subcommand(s)
+    list       List all bookmarks
+    new        Create a Resource
+    remove     Remove a single Atom from a Resource. Uses Commits.
+    set        Update an Atom's value. Uses Commits.
+    tpf        Finds Atoms using Triple Pattern Fragments.
+
+Visit https://github.com/atomicdata-dev/atomic-data-browser for more info
+
+

repository + issue tracker.

+

Raycast extension: Full-text search from your desktop

+

Install here.

+

Libraries

+

@tomic/lib and @tomic/react

+

Javascript / typescript libraries, especially useful for creating front-end apps.

+

Fork the atomic-data-react-template on codesandbox to get started directly!

+

atomic-lib (Rust)

+

Library that powers atomic-server and atomic-cli. Features:

+
    +
  • An in-memory store
  • +
  • Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples)
  • +
  • Commit validation and processing
  • +
  • Constructing Collections
  • +
  • Path traversal
  • +
  • Basic validation
  • +
+

repository + issue tracker.

+

Want to add to this list? Some ideas for tooling

+

This document contains a set of ideas that would help achieve that success. +Open a PR and edit this file to add your project!

+

Atomic Companion

+

A mobile app for granting permissions to your data and signing things. See github issue.

+
    +
  • Show a notification when you try to log in somewhere with your agent
  • +
  • Notifications for mentions and other social items
  • +
  • Check uptime of your server
  • +
+

Atomizer (data importer and conversion kit)

+
    +
  • Import data from some data source (CSV / SQL / JSON / RDF), fill in the gaps (mapping / IRI creation / datatypes) an create new Atoms
  • +
  • Perhaps a CLI, library, GUI or a combination of all of these
  • +
+

Atomic Preview

+
    +
  • A simple (JS) widget that can be embedded anywhere, which converts an Atomic Graph into an HTML view.
  • +
  • Would be useful for documentation, and as a default view for Atomic Data.
  • +
  • Use @tomic/react and @tomic/lib to get started
  • +
+

Atomic-Dart + Flutter

+

Library + front-end app for browsing / manipulating Atomic Data on mobile devices.

+

Acknowledgements

+

Authors:

+ +

Special thanks to:

+
    +
  • Thom van Kalkeren (my colleague, friend and programming mentor who came up with many great ideas on how to work with RDF, such as HexTuples and linked-delta)
  • +
  • Tim Berners-Lee (for everything he did for linked data and the web)
  • +
  • Ruben Verborgh (for doing great work with RDF, such as the TPF spec)
  • +
  • Pat McBennett (for lots of valuable feedback on initial Atomic Data docs)
  • +
  • Manu Sporny (for his work on JSON-LD, which was an important inspiration for JSON-AD)
  • +
  • Jonas Smedegaard (for the various interesting talks we had and the feedback he provided)
  • +
  • Arthur Dingemans (for sharing his thoughts, providing feedback and his valuable suggestions)
  • +
  • Anja Koopman (for all her support, even when this project ate away days and nights of our time together)
  • +
  • Alex Mikhalev (for sharing many inspiring project and ideas)
  • +
  • Daniel Lutrha (for inspiring me to be more ambitious and for providing lots of technical ideas)
  • +
  • All the other people who contributed to linked data related standards
  • +
+

Subscribe to the Atomic Data newsletter

+

We'll send you an update (max once per month) when there's something relevant to share, such as

+
    +
  • Major changes to the specification
  • +
  • Major new releases (with new features)
  • +
  • Use-cases, implementations
  • +
  • Tutorials, blog posts
  • +
  • Organizational / funding news
  • +
+

Click here to sign up to the Atomic Data Newsletter

+

Get involved

+

Atomic Data is an open specification, and that means that you're very welcome to share your thoughts and help make this standard as good as possible.

+

Things you can do:

+ +

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/roadmap.html b/roadmap.html new file mode 100644 index 0000000..4611ad4 --- /dev/null +++ b/roadmap.html @@ -0,0 +1,275 @@ + + + + + + Strategy, history and roadmap - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Strategy, history and roadmap for Atomic Data

+

We have the ambition to make the internet more interoperable. +We want Atomic Data to be a commonly used specification, enabling a vast amount of applications to work together and share information. +This means we need a lot of people to understand and contribute to Atomic Data. +In this document, discuss the strategic principles we use, the steps we took, and the path forward. +This should help you understand how and where you may be able to contribute.

+

Strategy for adoption

+
    +
  • Work on both specification and implementations (both client and server side) simultaneously to make sure all ideas are both easily explainable and properly implementable. Don't design a spec with a large committee over many months, only to learn that it has implementation issues later on.
  • +
  • Create libraries whenever possible. Enable other developers to re-use the technology in their own stacks. Keep the code as modular as possible.
  • +
  • Document everything. Not just your APIs - also your ideas, considerations and decisions.
  • +
  • Do everything public. All code is open source, all issues are publicly visible. Allow outsiders to learn everything and start contributing.
  • +
  • Make an all-in-one workspace app that stand on its own. Atomic Data may be an abstract, technical story, but we still need end-user friendly applications that solve actual problems if we want to get as much adoption as possible.
  • +
  • Let realistic use cases guide API design. Don't fall victim to spending too much time for extremely rare edge-cases, while ignoring more common issues and wishes.
  • +
  • Familiarity first. Make tools and specs that feel familiar, build libraries for popular frameworks, and stick to conventions whenever possible.
  • +
+

History

+
    +
  • First draft of specification (2020-06). Atomic Data started as an unnamed bundle of ideas and best practices to improve how we work with linked data, but quickly turned into a single (draft) specification. The idea was to start with a cohesive and easy to understand documentation, and use that as a stepping stone for writing the first code. After this, the code and specification should both be worked on simultaneously to make sure ideas are both easily explainable and properly implementable. Many of the earliest ideas were changed to make implementation easier.
  • +
  • atomic-cli + atomic-lib (2020-07). The CLI functioned as the first platform to explore some of the most core ideas of Atomic Data, such as Properties and fetching. atomic_lib is the place where most logic resides. Written in Rust.
  • +
  • AtomicServer (2020-08). The server (using the same atomic_lib as the CLI) should be a fast, lightweight server that must be easy to set-up. Functions as a graph database with no dependencies.
  • +
  • Collections (2020-10). Allows users to perform basic queries, filtering, sorting and pagination.
  • +
  • Commits (2020-11). Allow keeping track of an event-sourced log of all activities that mutate resources, which in turn allows for versioning and adding new types of indexes later on.
  • +
  • JSON-AD (2021-02). Instead of the earlier proposed serialization format .ad3, we moved to the more familiar json-ad.
  • +
  • Atomic-Data-Browser (2021-02). We wanted typescript and react libraries, as well as a nice interactive GUI that works in the browser. It should implement all relevant parts of the specification.
  • +
  • Endpoints (2021-03). Machine readable API endpoints (think Swagger / OpenAPI spec) for things like versioning, path traversal and more.
  • +
  • Classes and Properties editable from the browser (2021-04). The data-browser is now powerful enough to use for managing the core ontological data of the project.
  • +
  • Hierarchies & Invitations (2021-06). Users can set rights, structure Resources and invite new people to collaborate.
  • +
  • Websockets (2021-08). Live synchronization between client and server.
  • +
  • Use case: Document Editor (2021-09). Notion-like editor with real-time synchronization.
  • +
  • Full-text search (2021-11). Powered by Tantivy.
  • +
  • Authentication for read access (2021-11). Allows for private data.
  • +
  • Desktop support (2021-12). Run Atomic-Server on the desktop, powered by Tauri. Easier install UX, system tray icon.
  • +
  • File management (2021-12). Upload, download and view Files.
  • +
  • Indexed queries (2022-01). Huge performance increase for queries. Allows for far bigger datasets.
  • +
  • Use case: ChatRoom (2022-04). Group chat application. To make this possible, we had to extend the Commit model with a push action, and allow Plugins to create new Commits.
  • +
  • JSON-AD Publishing and Importing (2022-08). Creating and consuming Atomic Data becomes a whole lot easier.
  • +
  • @tomic/svelte (2022-12). Library for integrating Atomic Data with Svelte(Kit).
  • +
+

Where we're at

+

Most of the specification seems to become pretty stable. +The implementations are working better every day, although 1.0 releases are still quite a bit far away. +At this point, the most important thing is to get developers to try out Atomic Data and provide feedback. +That means not only make it easy to install the tools, but also allow people to make Atomic Data without using any of our own tools. +That's why we're now working on the JSON-AD and Atomizer projects (see below).

+

Roadmap

+
    +
  • Video(s) about Atomic Data (2023 Q1). Explain what Atomic Data is, why we're doing this, and how to get started.
  • +
  • Atomic Tables (2023 Q2). A powerful table editor with keyboard / copy / paste / sort support that makes it easier to model and edit data.
  • +
  • E-mail registration (2023 Q1). This makes it easier for users to get started, and de-emphasizes the importance of private key management, as user can register new Private Keys using their e-mail address.
  • +
  • Headless CMS tooling (2023). Use Atomic-Server to host and edit data that is being read by a front-end JAMSTACK type of tool, such as NextJS or SvelteKit.
  • +
  • Atomizer (2023). Import files and automatically turn these into Atomic Data.
  • +
  • Model Marketplace (2023 Q4). A place where user can easily find, compare and use Classes, Properties and Ontologies.
  • +
  • Atomic-server plugins (2024). Let developers design new features without having to make PRs in Atomic-Server, and let users install apps without re-compiling (or even restarting) anything.
  • +
  • Atomic-browser plugins (2024). Create new views for Classes.
  • +
  • 1.0 release (2024). Mark the specification, the server (tracking issue) and the browser as stable. It is possible that the Spec will become 1.0 before any implementation is stable. Read the STATUS.md document for an up-to-date list of features that are already stable.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/classes.html b/schema/classes.html new file mode 100644 index 0000000..6a20be6 --- /dev/null +++ b/schema/classes.html @@ -0,0 +1,298 @@ + + + + + + Atomic Data Classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Schema: Classes

+

The following Classes are some of the most fundamental concepts in Atomic Data, as they make data validation possible.

+

Click the URLs of the classes to read the most actual data, and discover their properties!

+

Property

+

URL: https://atomicdata.dev/classes/Property

+

The Property class. +The thing that the Property field should link to. +A Property is an abstract type of Resource that describes the relation between a Subject and a Value. +A Property provides some semantic information about the relationship (in its description), it provides a shorthand (the shortname) and it links to a Datatype.

+

Properties of a Property instance:

+
    +
  • shortname - (required, Slug) the shortname for the property, used in ORM-style dot syntax (thing.property.anotherproperty).
  • +
  • description - (optional, AtomicURL, TranslationBox) the semantic meaning of the.
  • +
  • datatype - (required, AtomicURL, Datatype) a URL to an Atomic Datatype, which defines what the datatype should be of the Value in an Atom where the Property is the
  • +
  • classtype - (optional, AtomicURL, Class) if the datatype is an Atomic URL, the classtype defines which class(es?) is (are?) acceptable.
  • +
+
{
+  "@id": "https://atomicdata.dev/properties/description",
+  "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown",
+  "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Property"
+  ],
+  "https://atomicdata.dev/properties/shortname": "description"
+}
+
+

Visit https://atomicdata.dev/properties for a list of example Properties.

+

Datatype

+

URL: https://atomicdata.dev/classes/Datatype

+

A Datatype specifies how a Value value should be interpreted. +Datatypes are concepts such as boolean, string, integer. +Since DataTypes can be linked to, you dan define your own. +However, using non-standard datatypes limits how many applications will know what to do with the data.

+

Properties:

+
    +
  • description - (required, AtomicURL, TranslationBox) how the datatype functions.
  • +
  • stringSerialization - (required, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as an UTF-8 string
  • +
  • stringExample - (required, string) an example stringSerialization that should be parsed correctly
  • +
  • binarySerialization - (optional, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as a byte array.
  • +
  • binaryExample - (optional, string) an example binarySerialization that should be parsed correctly. Should have the same contents as the stringExample. Required if binarySerialization is present on the DataType.
  • +
+

Visit https://atomicdata.dev/datatypes for a list of example Datatypes.

+

Class

+

URL: https://atomicdata.dev/classes/Class

+

A Class is an abstract type of Resource, such as Person. +It is convention to use an Uppercase in its URI. +Note that in Atomic Data, a Resource can have several Classes - not just a single one. +If you need to set more complex constraints to your Classes (e.g. maximum string length, Properties that depend on each other), check out SHACL.

+

Properties:

+
    +
  • shortname - (required, Slug) a short string shorthand.
  • +
  • description - (required, AtomicURL, TranslationBox) human readable explanation of what the Class represents.
  • +
  • requires - (optional, ResourceArray, Property) a list of Properties that are required. If absent, none are required. These SHOULD have unique shortnames.
  • +
  • recommends - (optional, ResourceArray, Property) a list of Properties that are recommended. These SHOULD have unique shortnames.
  • +
+ + + + + +

A resource indicates it is an instance of that class by adding a https://atomicdata.dev/properties/isA Atom.

+

Example:

+
{
+  "@id": "https://atomicdata.dev/classes/Class",
+  "https://atomicdata.dev/properties/description": "A Class describes an abstract concept, such as 'Person' or 'Blogpost'. It describes the data shape of data and explains what the thing represents. It is convention to use Uppercase in its URL. Note that in Atomic Data, a Resource can have several Classes - not just a single one.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Class"
+  ],
+  "https://atomicdata.dev/properties/recommends": [
+    "https://atomicdata.dev/properties/recommends",
+    "https://atomicdata.dev/properties/requires"
+  ],
+  "https://atomicdata.dev/properties/requires": [
+    "https://atomicdata.dev/properties/shortname",
+    "https://atomicdata.dev/properties/description"
+  ],
+  "https://atomicdata.dev/properties/shortname": "class"
+}
+
+

Check out a list of example Classes.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/collections.html b/schema/collections.html new file mode 100644 index 0000000..11ae94f --- /dev/null +++ b/schema/collections.html @@ -0,0 +1,248 @@ + + + + + + Atomic Data Collections - Filtering, Sorting & Querying + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Collections

+

URL: https://atomicdata.dev/classes/Collection

+

Sooner or later, developers will have to deal with (long) lists of items. +For example, a set of blog posts, activities or users. +These lists often need to be paginated, sorted, and filtered. +For dealing with these problems, we have Atomic Collections.

+

An Atomic Collection is a Resource that links to a set of resources. +Note that Collections are designed to be dynamic resources, often (partially) generated at runtime. +Collections are Endpoints, which means that part of their properties are calculated server-side. +Collections have various filters (subject, property, value) that can help to build a useful query.

+
    +
  • members: How many items (members) are visible per page.
  • +
  • property: Filter results by a property URL.
  • +
  • value: Filter results by a Value. Combined with property, you can create powerful queries.
  • +
  • sort_by: A property URL by which to sort. Defaults to the subject.
  • +
  • sort_desc: Sort descending, instead of ascending. Defaults to false.
  • +
  • current_page: The number of the current page.
  • +
  • page_size: How many items (members) are visible per page.
  • +
  • total_pages: How many pages there are for the current collection.
  • +
  • total_members: How many items (members) are visible per page.
  • +
+ +

Persisting Properties vs Query Parameters

+

Since Atomic Collections are dynamic resources, you can pass query parameters to it. +The keys of the query params match the shortnames of the properties of the Collection.

+

For example, let's take the Properties Collection on atomicdata.dev. +We could limit the page size to 2 by adding the page_size=2 query parameter: https://atomicdata.dev/collections/property?page_size=2. +Or we could sort the list by the description property: https://atomicdata.dev/collections/property?sort_by=https%3A%2F%2Fatomicdata.dev%2Fproperties%2Fdescription. +Note that URLs need to be URL encoded.

+

These properties of Collections can either be set by passing query parameters, or they can be persisted by the Collection creator / editor.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/datatypes.html b/schema/datatypes.html new file mode 100644 index 0000000..bfdc00f --- /dev/null +++ b/schema/datatypes.html @@ -0,0 +1,285 @@ + + + + + + Atomic Data: Datatypes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Schema: Datatypes

+

The Atomic Datatypes consist of some of the most commonly used Datatypes.

+

Note: Please visit https://atomicdata.dev/datatypes for the latest list of official Datatypes.

+

Slug

+

URL: https://atomicdata.dev/datatypes/slug

+

A string with a limited set of allowed characters, used in IDE / Text editor context. +Only letters, numbers and dashes are allowed.

+

Regex: ^[a-z0-9]+(?:-[a-z0-9]+)*$

+

Atomic URL

+

URL: https://atomicdata.dev/datatypes/atomicURL

+

A URL that should resolve to an Atomic Resource.

+

URI

+

URL: https://atomicdata.dev/datatypes/URI

+

A Uniform Resource Identifier, preferably a URL (i.e. an URI that can be fetched). +Could be HTTP, HTTPS, or any other type of schema.

+

String

+

URL: https://atomicdata.dev/datatypes/string

+

UTF-8 String, no max character count. +Newlines use backslash escaped \n characters.

+

e.g. String time! \n Second line!

+

Markdown

+

URL: https://https://atomicdata.dev/datatypes/markdown

+

A markdown string, using the CommonMark syntax. +UTF-8 formatted, no max character count, newlines are \n.

+

e.g.

+
# Heading
+
+Paragraph with [link](https://example.com).
+
+

Integer

+

URL: https://atomicdata.dev/datatypes/integer

+

Signed Integer, max 64 bit. +Max value: 9223372036854775807

+

e.g. -420

+

Float

+

URL: https://atomicdata.dev/datatypes/float

+

Number with a comma. +Max value: 9223372036854775807

+

e.g. -420

+

Boolean

+

URL: https://atomicdata.dev/datatypes/boolean

+

True or false, one or zero.

+

String serialization

+

true or false.

+

Binary serialization

+

Use a single bit one boolean.

+

1 for true, or 0 for false.

+

Date

+

ISO date without time. +YYYY-MM-DD.

+

e.g. 1991-01-20

+

Timestamp

+

URL: https://atomicdata.dev/datatypes/timestamp

+

Similar to Unix Timestamp. +Milliseconds since midnight UTC 1970 Jan 01 (aka the Unix Epoch). +Use this for most DateTime fields. +Signed 64 bit integer (instead of 32 bit in Unix systems).

+

e.g. 1596798919 (= 07 Aug 2020 11:15:19)

+

ResourceArray

+

URL: https://atomicdata.dev/datatypes/resourceArray

+

Sequential, ordered list of Atomic URIs. +Serialized as a JSON array with strings. +Note that other types of arrays are not included in this spec, but can be perfectly valid.

+

(Discussion)

+
    +
  • e.g. ["https://example.com/1", "https://example.com/1"]
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/faq.html b/schema/faq.html new file mode 100644 index 0000000..16bd424 --- /dev/null +++ b/schema/faq.html @@ -0,0 +1,277 @@ + + + + + + Atomic Schema FAQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Schema FAQ

+

How do I create a Property that supports multiple Datatypes?

+

A property only has one single Datatype. +However, feel free to create a new kind of Datatype that, in turn, refers to other Datatypes. +Perhaps Generics, or Option like types should be part of the Atomic Base Datatypes.

+

Do you have an enum datatype?

+

In Atomic Data, enum is not a datatype, but it's a constraint that can be added to properties that have. +You can set allows-only on a Property, and use that to limit which values are allowed.

+

How should a client deal with Shortname collisions?

+

Atomic Data guarantees Subject-Property uniqueness, which means that Valid Resources are guaranteed to have only one of each Property. +Properties offer Shortnames, which are short strings. +These strings should be unique inside Classes, but these are not guaranteed to be unique inside all Resources. +Note that Resources can have multiple Classes, and through that, they can have colliding Shortnames. +Resources are also free to include Properties from other Classes, and their Shortnames, too, might collide.

+

For example:

+
{
+  "@id": "https://example.com/people/123",
+  "https://example.com/name": "John",
+  "https://another.example.com/someOtherName": "Martin"
+}
+
+

Let's assume that https://example.com/name and https://another.example.com/someOtherName are Properties that have the Shortname: name.

+

What if a client tries something such as people123.name? +To consistently return a single value, we need some type of precedence:

+
    +
  1. The earlier Class mentioned in the isA Property of the resource. Resources can have multiple classes, but they appear in an ordered ResourceArray. Classes, internally should have no key collisions in required and recommended properties, which means that they might have. If these exist internally, sort the properties by how they are ordered in the isA array - first item is preferred.
  2. +
  3. When the Properties are not part of any of the mentioned Classes, use Alphabetical sorting of the Property URL.
  4. +
+

When shortname collisions are possible, it's recommended to not use the shortname, but use the URL of the Property:

+
people123."https://example.com/name"
+
+

It is likely that using the URL for keys is also the most performant, since it probably more closely mimics the internal data model.

+ +

Many features in Atomic Data apps depend on the availability of Resources on their subject URL. +If that server is offline, or the URL has changed, the existing links will break. +This is a fundamental problem to HTTP, and not unique to Atomic Data. +Like with websites, hosts should make sure that their server stays available, and that URLs remain static.

+

One possible solution to this problem, is using Content Addressing, such as the IPFS protocol enables, which is why we're planning for using that in the near future.

+

Another approach, is using foreign keys (see issue).

+

How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?

+

Atomic Schema is the schema language for Atomic Data, whereas RDF has a couple of competing ones, which all vary greatly. +In short, OWL is not designed for schema validation, but SHACL and SheX can maybe be compared to Atomic Schema. +An important difference is that SHACL and SheX have to deal with all the complexities of RDF, whereas Atomic Data is more constrained.

+

For more information, see RDF interoperability.

+

What are the risks of using Schema data hosted somewhere else?

+

Every time you use an external URL in your data, you kind of create a dependency. +This is fundamental to linked data. +In Atomic Data, not having access to the Property in some JSON-AD resource will lead to now knowing how to interpret the data itself. +You will no longer know what the Datatype was (other than the native JSON datatype, of course), or what the semantic meaning was of the relationship.

+

There are multiple ways we can deal with this:

+
    +
  • Cache dependencies: Atomic Server already stores a copy of every class and property that it uses by default. The /path endpoint then allows clients to fetch these from servers that have cached it. If the source goes offline, the validations can still be performed by the server. However, it might be a good idea to migrate the data to a hosted ontology, e.g. by cloning the cached ontology.
  • +
  • Content-addressing: using non-HTTP identifiers, such as with IPFS.
  • +
+

(Discussion)

+

How do I deal with subclasses / inheritance?

+

Atomic Data does not have a concept of inheritance. +However, you can use the isA property to link to multiple Classes from a single resource. +This effectively

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/intro.html b/schema/intro.html new file mode 100644 index 0000000..95bebab --- /dev/null +++ b/schema/intro.html @@ -0,0 +1,266 @@ + + + + + + Atomic Data Schema - modelling Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Schema

+

Atomic Schema is the proposed standard for specifying classes, properties and datatypes in Atomic Data. +You can compare it to UML diagrams, or what XSD is for XML. +Atomic Schema deals with validating and constraining the shape of data. +It is designed for checking if all the required properties are present, and whether the values conform to the datatype requirements (e.g. datetime, or URL).

+

This section will define various Classes, Properties and Datatypes (discussed in Atomic Core: Concepts).

+

Design Goals

+
    +
  • Decentralized: Classes and Properties can be defined in external systems, and are resolved using web protocols such as HTTP.
  • +
  • Typed: Every Atom of data has a clear datatype. Validated data should be highly predictable.
  • +
  • IDE-friendly: Although Atomic Schema uses many URLs, users / developers should not have to type full URLs. The schema uses shortnames as aliases.
  • +
  • Self-documenting: When seeing a piece of data, simply following links will explain you how the data model is to be understood. This removes the need for (most of) existing API documentation.
  • +
  • Extensible: Anybody can create their own Datatypes, Properties and Classes.
  • +
  • Accessible: Support for languages, easily translatable. Useful for humans and machines.
  • +
  • Atomic: All the design goals of Atomic Data itself also apply here. Atomic Schema is defined using Atomic Data.
  • +
+

In short

+

In short, Atomic Schema works like this:

+

The Property field in an Atom, or the key in a JSON-AD object, links to a Property Resource. +It is important that the URL to the Property Resource resolves, as others can re-use it and check its datatype. +This Property does three things:

+
    +
  1. it links to a Datatype which indicates which Value is acceptable.
  2. +
  3. it has a description which tells you what the property means, what the relationship between the Subject and the Value means.
  4. +
  5. it provides a Shortname, which is sometimes used as an alternative to the full URL of the Property.
  6. +
+

DataTypes define the shape of the Value, e.g. a Number (124) or Boolean (true).

+

Classes are a special kind of Resource that describe an abstract class of things (such as "Person" or "Blog"). +Classes can recommend or require a set of Properties. +They behave as Models, similar to struts in C or interfaces in Typescript. +A Resource could have one or more classes, which could provide information about which Properties are expected or required.

+

example:

+
{
+  "@id": "https://atomicdata.dev/classes/Agent",
+  "https://atomicdata.dev/properties/description": "An Agent is a user that can create or modify data. It has two keys: a private and a public one. The private key should be kept secret. The public key is used to verify signatures (on [Commits](https://atomicdata.dev/classes/Commit)) set by the of the Agent.",
+  "https://atomicdata.dev/properties/isA": [
+    "https://atomicdata.dev/classes/Class"
+  ],
+  "https://atomicdata.dev/properties/recommends": [
+    "https://atomicdata.dev/properties/name",
+    "https://atomicdata.dev/properties/description"
+  ],
+  "https://atomicdata.dev/properties/requires": [
+    "https://atomicdata.dev/properties/publicKey"
+  ],
+  "https://atomicdata.dev/properties/shortname": "agent"
+}
+
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/searcher.js b/searcher.js new file mode 100644 index 0000000..d2b0aee --- /dev/null +++ b/searcher.js @@ -0,0 +1,483 @@ +"use strict"; +window.search = window.search || {}; +(function search(search) { + // Search functionality + // + // You can use !hasFocus() to prevent keyhandling in your key + // event handlers while the user is typing their search. + + if (!Mark || !elasticlunr) { + return; + } + + //IE 11 Compatibility from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith + if (!String.prototype.startsWith) { + String.prototype.startsWith = function(search, pos) { + return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; + }; + } + + var search_wrap = document.getElementById('search-wrapper'), + searchbar = document.getElementById('searchbar'), + searchbar_outer = document.getElementById('searchbar-outer'), + searchresults = document.getElementById('searchresults'), + searchresults_outer = document.getElementById('searchresults-outer'), + searchresults_header = document.getElementById('searchresults-header'), + searchicon = document.getElementById('search-toggle'), + content = document.getElementById('content'), + + searchindex = null, + doc_urls = [], + results_options = { + teaser_word_count: 30, + limit_results: 30, + }, + search_options = { + bool: "AND", + expand: true, + fields: { + title: {boost: 1}, + body: {boost: 1}, + breadcrumbs: {boost: 0} + } + }, + mark_exclude = [], + marker = new Mark(content), + current_searchterm = "", + URL_SEARCH_PARAM = 'search', + URL_MARK_PARAM = 'highlight', + teaser_count = 0, + + SEARCH_HOTKEY_KEYCODE = 83, + ESCAPE_KEYCODE = 27, + DOWN_KEYCODE = 40, + UP_KEYCODE = 38, + SELECT_KEYCODE = 13; + + function hasFocus() { + return searchbar === document.activeElement; + } + + function removeChildren(elem) { + while (elem.firstChild) { + elem.removeChild(elem.firstChild); + } + } + + // Helper to parse a url into its building blocks. + function parseURL(url) { + var a = document.createElement('a'); + a.href = url; + return { + source: url, + protocol: a.protocol.replace(':',''), + host: a.hostname, + port: a.port, + params: (function(){ + var ret = {}; + var seg = a.search.replace(/^\?/,'').split('&'); + var len = seg.length, i = 0, s; + for (;i': '>', + '"': '"', + "'": ''' + }; + var repl = function(c) { return MAP[c]; }; + return function(s) { + return s.replace(/[&<>'"]/g, repl); + }; + })(); + + function formatSearchMetric(count, searchterm) { + if (count == 1) { + return count + " search result for '" + searchterm + "':"; + } else if (count == 0) { + return "No search results for '" + searchterm + "'."; + } else { + return count + " search results for '" + searchterm + "':"; + } + } + + function formatSearchResult(result, searchterms) { + var teaser = makeTeaser(escapeHTML(result.doc.body), searchterms); + teaser_count++; + + // The ?URL_MARK_PARAM= parameter belongs inbetween the page and the #heading-anchor + var url = doc_urls[result.ref].split("#"); + if (url.length == 1) { // no anchor found + url.push(""); + } + + // encodeURIComponent escapes all chars that could allow an XSS except + // for '. Due to that we also manually replace ' with its url-encoded + // representation (%27). + var searchterms = encodeURIComponent(searchterms.join(" ")).replace(/\'/g, "%27"); + + return '' + result.doc.breadcrumbs + '' + + '' + + teaser + ''; + } + + function makeTeaser(body, searchterms) { + // The strategy is as follows: + // First, assign a value to each word in the document: + // Words that correspond to search terms (stemmer aware): 40 + // Normal words: 2 + // First word in a sentence: 8 + // Then use a sliding window with a constant number of words and count the + // sum of the values of the words within the window. Then use the window that got the + // maximum sum. If there are multiple maximas, then get the last one. + // Enclose the terms in . + var stemmed_searchterms = searchterms.map(function(w) { + return elasticlunr.stemmer(w.toLowerCase()); + }); + var searchterm_weight = 40; + var weighted = []; // contains elements of ["word", weight, index_in_document] + // split in sentences, then words + var sentences = body.toLowerCase().split('. '); + var index = 0; + var value = 0; + var searchterm_found = false; + for (var sentenceindex in sentences) { + var words = sentences[sentenceindex].split(' '); + value = 8; + for (var wordindex in words) { + var word = words[wordindex]; + if (word.length > 0) { + for (var searchtermindex in stemmed_searchterms) { + if (elasticlunr.stemmer(word).startsWith(stemmed_searchterms[searchtermindex])) { + value = searchterm_weight; + searchterm_found = true; + } + }; + weighted.push([word, value, index]); + value = 2; + } + index += word.length; + index += 1; // ' ' or '.' if last word in sentence + }; + index += 1; // because we split at a two-char boundary '. ' + }; + + if (weighted.length == 0) { + return body; + } + + var window_weight = []; + var window_size = Math.min(weighted.length, results_options.teaser_word_count); + + var cur_sum = 0; + for (var wordindex = 0; wordindex < window_size; wordindex++) { + cur_sum += weighted[wordindex][1]; + }; + window_weight.push(cur_sum); + for (var wordindex = 0; wordindex < weighted.length - window_size; wordindex++) { + cur_sum -= weighted[wordindex][1]; + cur_sum += weighted[wordindex + window_size][1]; + window_weight.push(cur_sum); + }; + + if (searchterm_found) { + var max_sum = 0; + var max_sum_window_index = 0; + // backwards + for (var i = window_weight.length - 1; i >= 0; i--) { + if (window_weight[i] > max_sum) { + max_sum = window_weight[i]; + max_sum_window_index = i; + } + }; + } else { + max_sum_window_index = 0; + } + + // add around searchterms + var teaser_split = []; + var index = weighted[max_sum_window_index][2]; + for (var i = max_sum_window_index; i < max_sum_window_index+window_size; i++) { + var word = weighted[i]; + if (index < word[2]) { + // missing text from index to start of `word` + teaser_split.push(body.substring(index, word[2])); + index = word[2]; + } + if (word[1] == searchterm_weight) { + teaser_split.push("") + } + index = word[2] + word[0].length; + teaser_split.push(body.substring(word[2], index)); + if (word[1] == searchterm_weight) { + teaser_split.push("") + } + }; + + return teaser_split.join(''); + } + + function init(config) { + results_options = config.results_options; + search_options = config.search_options; + searchbar_outer = config.searchbar_outer; + doc_urls = config.doc_urls; + searchindex = elasticlunr.Index.load(config.index); + + // Set up events + searchicon.addEventListener('click', function(e) { searchIconClickHandler(); }, false); + searchbar.addEventListener('keyup', function(e) { searchbarKeyUpHandler(); }, false); + document.addEventListener('keydown', function(e) { globalKeyHandler(e); }, false); + // If the user uses the browser buttons, do the same as if a reload happened + window.onpopstate = function(e) { doSearchOrMarkFromUrl(); }; + // Suppress "submit" events so the page doesn't reload when the user presses Enter + document.addEventListener('submit', function(e) { e.preventDefault(); }, false); + + // If reloaded, do the search or mark again, depending on the current url parameters + doSearchOrMarkFromUrl(); + } + + function unfocusSearchbar() { + // hacky, but just focusing a div only works once + var tmp = document.createElement('input'); + tmp.setAttribute('style', 'position: absolute; opacity: 0;'); + searchicon.appendChild(tmp); + tmp.focus(); + tmp.remove(); + } + + // On reload or browser history backwards/forwards events, parse the url and do search or mark + function doSearchOrMarkFromUrl() { + // Check current URL for search request + var url = parseURL(window.location.href); + if (url.params.hasOwnProperty(URL_SEARCH_PARAM) + && url.params[URL_SEARCH_PARAM] != "") { + showSearch(true); + searchbar.value = decodeURIComponent( + (url.params[URL_SEARCH_PARAM]+'').replace(/\+/g, '%20')); + searchbarKeyUpHandler(); // -> doSearch() + } else { + showSearch(false); + } + + if (url.params.hasOwnProperty(URL_MARK_PARAM)) { + var words = decodeURIComponent(url.params[URL_MARK_PARAM]).split(' '); + marker.mark(words, { + exclude: mark_exclude + }); + + var markers = document.querySelectorAll("mark"); + function hide() { + for (var i = 0; i < markers.length; i++) { + markers[i].classList.add("fade-out"); + window.setTimeout(function(e) { marker.unmark(); }, 300); + } + } + for (var i = 0; i < markers.length; i++) { + markers[i].addEventListener('click', hide); + } + } + } + + // Eventhandler for keyevents on `document` + function globalKeyHandler(e) { + if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.target.type === 'textarea' || e.target.type === 'text') { return; } + + if (e.keyCode === ESCAPE_KEYCODE) { + e.preventDefault(); + searchbar.classList.remove("active"); + setSearchUrlParameters("", + (searchbar.value.trim() !== "") ? "push" : "replace"); + if (hasFocus()) { + unfocusSearchbar(); + } + showSearch(false); + marker.unmark(); + } else if (!hasFocus() && e.keyCode === SEARCH_HOTKEY_KEYCODE) { + e.preventDefault(); + showSearch(true); + window.scrollTo(0, 0); + searchbar.select(); + } else if (hasFocus() && e.keyCode === DOWN_KEYCODE) { + e.preventDefault(); + unfocusSearchbar(); + searchresults.firstElementChild.classList.add("focus"); + } else if (!hasFocus() && (e.keyCode === DOWN_KEYCODE + || e.keyCode === UP_KEYCODE + || e.keyCode === SELECT_KEYCODE)) { + // not `:focus` because browser does annoying scrolling + var focused = searchresults.querySelector("li.focus"); + if (!focused) return; + e.preventDefault(); + if (e.keyCode === DOWN_KEYCODE) { + var next = focused.nextElementSibling; + if (next) { + focused.classList.remove("focus"); + next.classList.add("focus"); + } + } else if (e.keyCode === UP_KEYCODE) { + focused.classList.remove("focus"); + var prev = focused.previousElementSibling; + if (prev) { + prev.classList.add("focus"); + } else { + searchbar.select(); + } + } else { // SELECT_KEYCODE + window.location.assign(focused.querySelector('a')); + } + } + } + + function showSearch(yes) { + if (yes) { + search_wrap.classList.remove('hidden'); + searchicon.setAttribute('aria-expanded', 'true'); + } else { + search_wrap.classList.add('hidden'); + searchicon.setAttribute('aria-expanded', 'false'); + var results = searchresults.children; + for (var i = 0; i < results.length; i++) { + results[i].classList.remove("focus"); + } + } + } + + function showResults(yes) { + if (yes) { + searchresults_outer.classList.remove('hidden'); + } else { + searchresults_outer.classList.add('hidden'); + } + } + + // Eventhandler for search icon + function searchIconClickHandler() { + if (search_wrap.classList.contains('hidden')) { + showSearch(true); + window.scrollTo(0, 0); + searchbar.select(); + } else { + showSearch(false); + } + } + + // Eventhandler for keyevents while the searchbar is focused + function searchbarKeyUpHandler() { + var searchterm = searchbar.value.trim(); + if (searchterm != "") { + searchbar.classList.add("active"); + doSearch(searchterm); + } else { + searchbar.classList.remove("active"); + showResults(false); + removeChildren(searchresults); + } + + setSearchUrlParameters(searchterm, "push_if_new_search_else_replace"); + + // Remove marks + marker.unmark(); + } + + // Update current url with ?URL_SEARCH_PARAM= parameter, remove ?URL_MARK_PARAM and #heading-anchor . + // `action` can be one of "push", "replace", "push_if_new_search_else_replace" + // and replaces or pushes a new browser history item. + // "push_if_new_search_else_replace" pushes if there is no `?URL_SEARCH_PARAM=abc` yet. + function setSearchUrlParameters(searchterm, action) { + var url = parseURL(window.location.href); + var first_search = ! url.params.hasOwnProperty(URL_SEARCH_PARAM); + if (searchterm != "" || action == "push_if_new_search_else_replace") { + url.params[URL_SEARCH_PARAM] = searchterm; + delete url.params[URL_MARK_PARAM]; + url.hash = ""; + } else { + delete url.params[URL_MARK_PARAM]; + delete url.params[URL_SEARCH_PARAM]; + } + // A new search will also add a new history item, so the user can go back + // to the page prior to searching. A updated search term will only replace + // the url. + if (action == "push" || (action == "push_if_new_search_else_replace" && first_search) ) { + history.pushState({}, document.title, renderURL(url)); + } else if (action == "replace" || (action == "push_if_new_search_else_replace" && !first_search) ) { + history.replaceState({}, document.title, renderURL(url)); + } + } + + function doSearch(searchterm) { + + // Don't search the same twice + if (current_searchterm == searchterm) { return; } + else { current_searchterm = searchterm; } + + if (searchindex == null) { return; } + + // Do the actual search + var results = searchindex.search(searchterm, search_options); + var resultcount = Math.min(results.length, results_options.limit_results); + + // Display search metrics + searchresults_header.innerText = formatSearchMetric(resultcount, searchterm); + + // Clear and insert results + var searchterms = searchterm.split(' '); + removeChildren(searchresults); + for(var i = 0; i < resultcount ; i++){ + var resultElem = document.createElement('li'); + resultElem.innerHTML = formatSearchResult(results[i], searchterms); + searchresults.appendChild(resultElem); + } + + // Display results + showResults(true); + } + + fetch(path_to_root + 'searchindex.json') + .then(response => response.json()) + .then(json => init(json)) + .catch(error => { // Try to load searchindex.js if fetch failed + var script = document.createElement('script'); + script.src = path_to_root + 'searchindex.js'; + script.onload = () => init(window.search); + document.head.appendChild(script); + }); + + // Exported functions + search.hasFocus = hasFocus; +})(window.search); diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 0000000..f2edcc1 --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Object.assign(window.search, {"doc_urls":["atomic-data-overview.html#atomic-data-extended","atomic-data-overview.html#atomizing-how-to-create-convert-and-host-atomic-data","atomic-data-overview.html#tools--libraries","atomic-data-overview.html#get-involved","atomic-data-overview.html#status","atomic-data-overview.html#reading-these-docs","atomic-data-overview.html#table-of-contents","atomic-data-overview.html#specification-core","atomic-data-overview.html#specification-extended","atomic-data-overview.html#create-atomic-data","atomic-data-overview.html#use-atomic-data","motivation.html#motivation-why-atomic-data","motivation.html#give-people-more-control-over-their-data","motivation.html#linked-data-is-awesome-but-it-is-too-difficult-for-developers-in-its-current-form","motivation.html#make-standardization-easier-and-cheaper","motivation.html#make-it-easier-for-developers-to-build-feature-rich-interoperable-apps","roadmap.html#strategy-history-and-roadmap-for-atomic-data","roadmap.html#strategy-for-adoption","roadmap.html#history","roadmap.html#where-were-at","roadmap.html#roadmap","when-to-use.html#when-not-to-use-atomic-data","when-to-use.html#when-should-you-use-atomic-data","when-to-use.html#when-not-to-use-atomic-data-1","core/concepts.html#what-is-atomic-data","core/concepts.html#atomic-data-core","core/concepts.html#design-goals","core/concepts.html#concepts","core/concepts.html#resource","core/concepts.html#atom-or-atomic-triple","core/concepts.html#subject-field","core/concepts.html#property-field","core/concepts.html#value-field","core/concepts.html#graph","core/concepts.html#nested-resource","core/serialization.html#serialization-of-atomic-data","core/serialization.html#json-ad","core/serialization.html#json-simple","core/serialization.html#rdf-serialization-formats","core/json-ad.html#json-ad-the-atomic-data-serialization-format","core/json-ad.html#nested-anonymous-and-named-resources","core/json-ad.html#json-ad-parsers-serializers-and-other-libraries","core/json-ad.html#canonicalized-json-ad","core/json-ad.html#interoperability-with-json-and-json-ld","core/querying.html#querying-atomic-data","core/querying.html#subject-fetching-http","core/querying.html#atomic-collections","core/querying.html#atomic-paths","core/querying.html#sparql","core/paths.html#atomic-paths","core/paths.html#example","core/paths.html#nested-resources","core/paths.html#traversing-arrays","core/paths.html#try-for-yourself","schema/intro.html#atomic-schema","schema/intro.html#design-goals","schema/intro.html#in-short","schema/classes.html#atomic-schema-classes","schema/classes.html#property","schema/classes.html#datatype","schema/classes.html#class","schema/datatypes.html#atomic-schema-datatypes","schema/datatypes.html#slug","schema/datatypes.html#atomic-url","schema/datatypes.html#uri","schema/datatypes.html#string","schema/datatypes.html#markdown","schema/datatypes.html#integer","schema/datatypes.html#float","schema/datatypes.html#boolean","schema/datatypes.html#date","schema/datatypes.html#timestamp","schema/datatypes.html#resourcearray","schema/faq.html#atomic-schema-faq","schema/faq.html#how-do-i-create-a-property-that-supports-multiple-datatypes","schema/faq.html#do-you-have-an-enum-datatype","schema/faq.html#how-should-a-client-deal-with-shortname-collisions","schema/faq.html#atomic-data-uses-a-lot-of-links-how-do-you-deal-with-links-that-dont-work","schema/faq.html#how-does-atomic-schema-relate-to-rdf--shacl--shex--owl--rdfs","schema/faq.html#what-are-the-risks-of-using-schema-data-hosted-somewhere-else","schema/faq.html#how-do-i-deal-with-subclasses--inheritance","extended.html#atomic-data-extended","agents.html#atomic-agents","agents.html#design-goals","agents.html#the-agent-model","agents.html#creating-an-agent","hierarchy.html#hierarchy-rights-and-authorization","hierarchy.html#design-goals","hierarchy.html#atomic-hierarchy-model","hierarchy.html#authorization","hierarchy.html#top-level-resources","hierarchy.html#authentication","hierarchy.html#current-limitations-of-the-authorization-model","authentication.html#authentication-in-atomic-data","authentication.html#design-goals","authentication.html#authentication-resources","authentication.html#atomic-cookies-authentication","authentication.html#setting-the-cookie","authentication.html#bearer-token-authentication","authentication.html#authenticating-websockets","authentication.html#per-request-signing","authentication.html#http-headers","authentication.html#sending-a-request","authentication.html#verifying-an-authentication","authentication.html#hierarchies-for-authorization","authentication.html#limitations--considerations","invitations.html#invitations--tokens","invitations.html#design-goals","invitations.html#flow","invitations.html#limitations-and-gotchas","commits/intro.html#atomic-commits","commits/intro.html#design-goals","commits/intro.html#motivation","commits/concepts.html#atomic-commits-concepts","commits/concepts.html#commit","commits/concepts.html#posting-commits-using-http","commits/concepts.html#serialization-with-json-ad","commits/concepts.html#calculating-the-signature","commits/concepts.html#applying-the-commit","commits/concepts.html#limitations","commits/compare.html#atomic-commits-compared-to-other-rdf-delta-models","commits/compare.html#git","commits/compare.html#rdf-mutation-systems","commits/compare.html#n3-patch","commits/compare.html#rdf-delta","commits/compare.html#delta-ld","commits/compare.html#patchr","commits/compare.html#ld-patch","commits/compare.html#linked-delta","commits/compare.html#json-ld-patch","commits/compare.html#sparql-update","commits/compare.html#json-patch","commits/compare.html#atomic-commits---how-its-different-and-why-it-exists","websockets.html#websockets-in-atomic-data","websockets.html#initializing-a-websocket-connection","websockets.html#client-to-server-messages","websockets.html#server-to-client-messages","websockets.html#considerations","websockets.html#example-implementations","endpoints.html#atomic-endpoints","endpoints.html#incomplete-resources","endpoints.html#design-goals","schema/collections.html#atomic-collections","schema/collections.html#persisting-properties-vs-query-parameters","files.html#uploading-downloading-and-describing-files-with-atomic-data","files.html#the-file-class","files.html#uploading-a-file","files.html#downloading-a-file","atomizing.html#atomizing-how-to-create-and-publish-atomic-data","atomizing.html#three-ways-to-atomize-data","atomic-server.html#creating-atomic-data-using-atomic-server","atomic-server.html#atomic-server-and-its-features","atomic-server.html#running-atomic-server-locally-optional","atomic-server.html#creating-an-agent","atomic-server.html#creating-your-first-atomic-data","atomic-server.html#theres-more","create-json-ad.html#how-to-create-and-publish-a-json-ad-file","create-json-ad.html#creating-json-ad-without-hosting-individual-resources-yourself","create-json-ad.html#setting-the-first-values","create-json-ad.html#adding-a-class","create-json-ad.html#using-exsisting-ontologies-classes-and-ontologies","create-json-ad.html#multiple-items","create-json-ad.html#preventing-duplication-with-localid","create-json-ad.html#describing-relationships-between-resources-using-localid","create-json-ad.html#importing-data-using-atomic-sever","interoperability/upgrade.html#upgrade-your-existing-application-to-serve-atomic-data","interoperability/upgrade.html#easy-map-your-json-keys-to-atomic-data-properties","interoperability/upgrade.html#medium-add-id-urls-that-properly-resolve","interoperability/upgrade.html#hard-implement-atomic-data-extended-protocols","interoperability/upgrade.html#reach-out-for-help","interoperability/intro.html#interoperability-relation-to-other-technology","interoperability/intro.html#upgrade-guide","interoperability/intro.html#data-formats","interoperability/intro.html#protocols","interoperability/intro.html#database-paradigms","interoperability/rdf.html#how-does-atomic-data-relate-to-rdf","interoperability/rdf.html#why-these-changes","interoperability/rdf.html#its-too-hard-to-select-a-specific-value-object-in-rdf","interoperability/rdf.html#less-focus-on-semantics-more-on-usability","interoperability/rdf.html#changing-the-names","interoperability/rdf.html#subject--predicate-uniqueness","interoperability/rdf.html#limiting-subject-usage","interoperability/rdf.html#no-more-literals--named-nodes","interoperability/rdf.html#requiring-urls","interoperability/rdf.html#replace-blank-nodes-with-paths","interoperability/rdf.html#combining-datatype-and-predicate","interoperability/rdf.html#adding-shortnames-slugs--keys-in-properties","interoperability/rdf.html#adding-native-arrays","interoperability/rdf.html#adding-a-native-state-changes-standard","interoperability/rdf.html#adding-a-schema-language-and-type-safety","interoperability/rdf.html#a-new-name-with-new-docs","interoperability/rdf.html#convert-rdf-to-atomic-data","interoperability/rdf.html#convert-atomic-data-to-rdf","interoperability/solid.html#atomic-data-and-solid","interoperability/solid.html#atomic-data-is-type-safe-because-of-its-built-in-schema","interoperability/solid.html#atomic-data-standardizes-state-changes-event-sourcing","interoperability/solid.html#atomic-data-is-more-easily-serializable-to-other-formats-like-json","interoperability/solid.html#authentication","interoperability/solid.html#hierarchy-and-authorization","interoperability/solid.html#no-dependency-on-existing-semantic-web-specifications","interoperability/solid.html#atomic-data-and-solid-server-implementations","interoperability/solid.html#things-that-atomic-data-misses-but-solid-has","interoperability/json.html#how-does-atomic-data-relate-to-json","interoperability/json.html#from-atomic-data-to-plain-json","interoperability/json.html#from-json-to-json-ad","interoperability/json.html#from-atomic-data-to-json-ld","interoperability/json.html#json-ld-requirements-for-valid-atomic-data","interoperability/ipfs.html#atomic-data-and-ipfs","interoperability/ipfs.html#what-is-ipfs","interoperability/ipfs.html#why-is-ipfs-interesting-for-atomic-data","interoperability/ipfs.html#considerations-using-ipfs-urls","interoperability/ipfs.html#atomic-data-and-ipld","interoperability/ipfs.html#share-your-thoughts","interoperability/sql.html#atomic-data-and-sql","interoperability/sql.html#tables-and-rows-vs-classes-and-properties","interoperability/sql.html#dynamic-vs-static-schema","interoperability/sql.html#identifiers-numbers-vs-urls","interoperability/sql.html#atomic-server-combines-server-and-database","interoperability/sql.html#querying","interoperability/sql.html#convert-an-sql-database-to-atomic-data","interoperability/sql.html#limitations-of-atomic-data","interoperability/sql.html#faq","interoperability/sql.html#is-atomic-data-nosql-or-sql","interoperability/sql.html#is-atomic-data-transactional--acid","interoperability/sql.html#how-does-atomic-server-build-indexes-for-its-resources-if-the-schema-is-not-known-in-advance","interoperability/graph-database.html#atomic-data-and-graph-databases","interoperability/graph-database.html#atomic-server-as-a-database","interoperability/graph-database.html#comparing-atomic-data-to-neo4j","interoperability/graph-database.html#labeled-property-graph","interoperability/graph-database.html#query-language-vs-rest","interoperability/graph-database.html#schema-language-and-type-safety","interoperability/graph-database.html#other-differences","usecases/intro.html#various-use-cases-for-atomic-data","usecases/headless-cms.html#using-atomic-server-as-an-open-source-headless-cms","usecases/headless-cms.html#why-people-are-switching-to-headless-cms","usecases/headless-cms.html#atomic-server","usecases/headless-cms.html#limitations","usecases/headless-cms.html#setting-up-the-server","usecases/headless-cms.html#using-the-data-in-your-react--nextjs-app","usecases/headless-cms.html#compared-to-alternative-open-source-headless-cms-software","usecases/react.html#using-atomic-data-in-a-js--ts-react-project","usecases/personal-data-store.html#atomic-data-for-personal-data-stores","usecases/ai.html#atomic-data--artificial-intelligence","usecases/ai.html#make-it-easier-to-create-atomic-data-using-ai","usecases/ai.html#train-ais-with-atomic-data","usecases/ai.html#provide-ai-with-query-access-to-answer-questions","usecases/e-commerce.html#atomic-data-for-e-commerce--marketplaces","usecases/e-commerce.html#decentralize-platform--sharing-economy-service-marketplaces","usecases/e-commerce.html#highly-personalized-and-customizable-search","usecases/e-commerce.html#product-lifecycle--supply-chain-insights","usecases/e-commerce.html#product-specific-updates-after-purchase","usecases/surveys.html#atomic-data-for-surveys","usecases/surveys.html#re-useable-survey-responses","usecases/surveys.html#question-standardization","usecases/surveys.html#privacy-friendly-invites-with-client-side-filtering","usecases/verifiable-credentials.html#atomic-data-and-verifiable-credentials--ssi","usecases/verifiable-credentials.html#what-are-verifiable-credentials--self-sovereign-identity","usecases/verifiable-credentials.html#what-makes-atomic-data-suitable-for-this","usecases/verifiable-credentials.html#every-atomic-commit-is-a-verifiable-credential","usecases/verifiable-credentials.html#use-atomic-schema-for-standardizing-credentials","usecases/data-catalog.html#using-atomic-server-as-a-data-catalog","usecases/data-catalog.html#why-atomic-server-could-be-great-for-data-catalogs","usecases/data-catalog.html#when-atomic-server-is-used-for-hosting-the-data-too","usecases/data-catalog.html#atomic-server-compared-to-ckan","usecases/data-catalog.html#what-we-should-add-to-atomic-server-before-its-a-decent-data-catalog","usecases/education.html#atomic-data-for-education---standardized-modular-e-learning","usecases/education.html#modular-educational-content---a-model","usecases/education.html#what-makes-atomic-server-a-great-tool-for-creating-online-courseware","usecases/food-labels.html#atomic-data-for-food-label-standardization","usecases/food-labels.html#scan-labels-to-get-detailed-reliable-interactive-information","usecases/food-labels.html#provide-nutritional-advice-based-on-shopping-behavior","usecases/food-labels.html#how-to-achieve-all-this","tooling.html#software-and-libraries-for-atomic-data","tooling.html#applications","tooling.html#atomic-server","tooling.html#atomic-data-browser","tooling.html#atomic-cli","tooling.html#raycast-extension-full-text-search-from-your-desktop","tooling.html#libraries","tooling.html#tomiclib-and-tomicreact","tooling.html#atomic-lib-rust","tooling.html#want-to-add-to-this-list-some-ideas-for-tooling","tooling.html#atomic-companion","tooling.html#atomizer-data-importer-and-conversion-kit","tooling.html#atomic-preview","tooling.html#atomic-dart--flutter","acknowledgements.html#acknowledgements","acknowledgements.html#authors","acknowledgements.html#special-thanks-to","newsletter.html#subscribe-to-the-atomic-data-newsletter","get-involved.html#get-involved"],"index":{"documentStore":{"docInfo":{"0":{"body":234,"breadcrumbs":6,"title":3},"1":{"body":28,"breadcrumbs":9,"title":6},"10":{"body":42,"breadcrumbs":6,"title":3},"100":{"body":31,"breadcrumbs":7,"title":3},"101":{"body":43,"breadcrumbs":6,"title":2},"102":{"body":82,"breadcrumbs":6,"title":2},"103":{"body":51,"breadcrumbs":6,"title":2},"104":{"body":9,"breadcrumbs":6,"title":2},"105":{"body":77,"breadcrumbs":6,"title":2},"106":{"body":23,"breadcrumbs":7,"title":2},"107":{"body":27,"breadcrumbs":7,"title":2},"108":{"body":65,"breadcrumbs":6,"title":1},"109":{"body":38,"breadcrumbs":7,"title":2},"11":{"body":0,"breadcrumbs":7,"title":3},"110":{"body":27,"breadcrumbs":8,"title":2},"111":{"body":90,"breadcrumbs":8,"title":2},"112":{"body":201,"breadcrumbs":7,"title":1},"113":{"body":0,"breadcrumbs":10,"title":3},"114":{"body":135,"breadcrumbs":8,"title":1},"115":{"body":38,"breadcrumbs":11,"title":4},"116":{"body":33,"breadcrumbs":10,"title":3},"117":{"body":122,"breadcrumbs":9,"title":2},"118":{"body":128,"breadcrumbs":9,"title":2},"119":{"body":57,"breadcrumbs":8,"title":1},"12":{"body":209,"breadcrumbs":10,"title":6},"120":{"body":37,"breadcrumbs":13,"title":6},"121":{"body":142,"breadcrumbs":8,"title":1},"122":{"body":6,"breadcrumbs":10,"title":3},"123":{"body":30,"breadcrumbs":9,"title":2},"124":{"body":47,"breadcrumbs":9,"title":2},"125":{"body":14,"breadcrumbs":9,"title":2},"126":{"body":70,"breadcrumbs":8,"title":1},"127":{"body":100,"breadcrumbs":9,"title":2},"128":{"body":54,"breadcrumbs":9,"title":2},"129":{"body":37,"breadcrumbs":10,"title":3},"13":{"body":165,"breadcrumbs":11,"title":7},"130":{"body":52,"breadcrumbs":9,"title":2},"131":{"body":45,"breadcrumbs":9,"title":2},"132":{"body":173,"breadcrumbs":12,"title":5},"133":{"body":33,"breadcrumbs":7,"title":3},"134":{"body":29,"breadcrumbs":7,"title":3},"135":{"body":39,"breadcrumbs":7,"title":3},"136":{"body":44,"breadcrumbs":7,"title":3},"137":{"body":13,"breadcrumbs":5,"title":1},"138":{"body":17,"breadcrumbs":6,"title":2},"139":{"body":80,"breadcrumbs":6,"title":2},"14":{"body":150,"breadcrumbs":8,"title":4},"140":{"body":42,"breadcrumbs":6,"title":2},"141":{"body":25,"breadcrumbs":6,"title":2},"142":{"body":113,"breadcrumbs":8,"title":2},"143":{"body":53,"breadcrumbs":11,"title":5},"144":{"body":42,"breadcrumbs":12,"title":6},"145":{"body":18,"breadcrumbs":8,"title":2},"146":{"body":77,"breadcrumbs":8,"title":2},"147":{"body":26,"breadcrumbs":8,"title":2},"148":{"body":72,"breadcrumbs":6,"title":5},"149":{"body":47,"breadcrumbs":5,"title":4},"15":{"body":94,"breadcrumbs":12,"title":8},"150":{"body":20,"breadcrumbs":10,"title":6},"151":{"body":172,"breadcrumbs":7,"title":3},"152":{"body":228,"breadcrumbs":9,"title":5},"153":{"body":21,"breadcrumbs":6,"title":2},"154":{"body":133,"breadcrumbs":8,"title":4},"155":{"body":39,"breadcrumbs":6,"title":2},"156":{"body":61,"breadcrumbs":10,"title":5},"157":{"body":73,"breadcrumbs":13,"title":8},"158":{"body":11,"breadcrumbs":8,"title":3},"159":{"body":57,"breadcrumbs":7,"title":2},"16":{"body":39,"breadcrumbs":11,"title":5},"160":{"body":43,"breadcrumbs":10,"title":5},"161":{"body":32,"breadcrumbs":7,"title":2},"162":{"body":74,"breadcrumbs":8,"title":3},"163":{"body":97,"breadcrumbs":11,"title":6},"164":{"body":8,"breadcrumbs":10,"title":5},"165":{"body":54,"breadcrumbs":10,"title":6},"166":{"body":74,"breadcrumbs":11,"title":7},"167":{"body":28,"breadcrumbs":10,"title":6},"168":{"body":27,"breadcrumbs":10,"title":6},"169":{"body":16,"breadcrumbs":7,"title":3},"17":{"body":122,"breadcrumbs":8,"title":2},"170":{"body":21,"breadcrumbs":5,"title":3},"171":{"body":11,"breadcrumbs":4,"title":2},"172":{"body":71,"breadcrumbs":4,"title":2},"173":{"body":14,"breadcrumbs":3,"title":1},"174":{"body":19,"breadcrumbs":4,"title":2},"175":{"body":196,"breadcrumbs":7,"title":4},"176":{"body":46,"breadcrumbs":4,"title":1},"177":{"body":280,"breadcrumbs":10,"title":7},"178":{"body":65,"breadcrumbs":8,"title":5},"179":{"body":20,"breadcrumbs":5,"title":2},"18":{"body":319,"breadcrumbs":7,"title":1},"180":{"body":114,"breadcrumbs":6,"title":3},"181":{"body":282,"breadcrumbs":6,"title":3},"182":{"body":84,"breadcrumbs":7,"title":4},"183":{"body":112,"breadcrumbs":5,"title":2},"184":{"body":123,"breadcrumbs":7,"title":4},"185":{"body":82,"breadcrumbs":6,"title":3},"186":{"body":84,"breadcrumbs":8,"title":5},"187":{"body":23,"breadcrumbs":6,"title":3},"188":{"body":29,"breadcrumbs":8,"title":5},"189":{"body":132,"breadcrumbs":8,"title":5},"19":{"body":50,"breadcrumbs":7,"title":1},"190":{"body":144,"breadcrumbs":7,"title":4},"191":{"body":116,"breadcrumbs":7,"title":4},"192":{"body":76,"breadcrumbs":7,"title":4},"193":{"body":159,"breadcrumbs":6,"title":3},"194":{"body":116,"breadcrumbs":9,"title":6},"195":{"body":166,"breadcrumbs":10,"title":7},"196":{"body":60,"breadcrumbs":10,"title":7},"197":{"body":64,"breadcrumbs":4,"title":1},"198":{"body":45,"breadcrumbs":5,"title":2},"199":{"body":287,"breadcrumbs":8,"title":5},"2":{"body":49,"breadcrumbs":5,"title":2},"20":{"body":155,"breadcrumbs":7,"title":1},"200":{"body":163,"breadcrumbs":8,"title":5},"201":{"body":45,"breadcrumbs":8,"title":5},"202":{"body":42,"breadcrumbs":7,"title":4},"203":{"body":126,"breadcrumbs":7,"title":4},"204":{"body":98,"breadcrumbs":6,"title":3},"205":{"body":120,"breadcrumbs":7,"title":4},"206":{"body":41,"breadcrumbs":9,"title":6},"207":{"body":0,"breadcrumbs":6,"title":3},"208":{"body":68,"breadcrumbs":4,"title":1},"209":{"body":67,"breadcrumbs":7,"title":4},"21":{"body":0,"breadcrumbs":7,"title":3},"210":{"body":81,"breadcrumbs":7,"title":4},"211":{"body":15,"breadcrumbs":6,"title":3},"212":{"body":7,"breadcrumbs":5,"title":2},"213":{"body":56,"breadcrumbs":6,"title":3},"214":{"body":41,"breadcrumbs":8,"title":5},"215":{"body":67,"breadcrumbs":7,"title":4},"216":{"body":44,"breadcrumbs":7,"title":4},"217":{"body":21,"breadcrumbs":8,"title":5},"218":{"body":83,"breadcrumbs":4,"title":1},"219":{"body":56,"breadcrumbs":8,"title":5},"22":{"body":119,"breadcrumbs":7,"title":3},"220":{"body":41,"breadcrumbs":6,"title":3},"221":{"body":0,"breadcrumbs":4,"title":1},"222":{"body":53,"breadcrumbs":7,"title":4},"223":{"body":24,"breadcrumbs":7,"title":4},"224":{"body":27,"breadcrumbs":11,"title":8},"225":{"body":31,"breadcrumbs":8,"title":4},"226":{"body":120,"breadcrumbs":7,"title":3},"227":{"body":38,"breadcrumbs":8,"title":4},"228":{"body":90,"breadcrumbs":7,"title":3},"229":{"body":82,"breadcrumbs":8,"title":4},"23":{"body":62,"breadcrumbs":7,"title":3},"230":{"body":14,"breadcrumbs":8,"title":4},"231":{"body":22,"breadcrumbs":5,"title":1},"232":{"body":57,"breadcrumbs":8,"title":5},"233":{"body":0,"breadcrumbs":12,"title":7},"234":{"body":98,"breadcrumbs":9,"title":4},"235":{"body":150,"breadcrumbs":7,"title":2},"236":{"body":8,"breadcrumbs":6,"title":1},"237":{"body":19,"breadcrumbs":8,"title":3},"238":{"body":17,"breadcrumbs":10,"title":5},"239":{"body":26,"breadcrumbs":12,"title":7},"24":{"body":0,"breadcrumbs":4,"title":2},"240":{"body":73,"breadcrumbs":12,"title":7},"241":{"body":132,"breadcrumbs":11,"title":5},"242":{"body":82,"breadcrumbs":9,"title":4},"243":{"body":43,"breadcrumbs":12,"title":7},"244":{"body":25,"breadcrumbs":9,"title":4},"245":{"body":47,"breadcrumbs":11,"title":6},"246":{"body":57,"breadcrumbs":11,"title":5},"247":{"body":277,"breadcrumbs":12,"title":6},"248":{"body":125,"breadcrumbs":10,"title":4},"249":{"body":57,"breadcrumbs":11,"title":5},"25":{"body":55,"breadcrumbs":5,"title":3},"250":{"body":59,"breadcrumbs":10,"title":4},"251":{"body":77,"breadcrumbs":7,"title":3},"252":{"body":175,"breadcrumbs":8,"title":4},"253":{"body":59,"breadcrumbs":6,"title":2},"254":{"body":116,"breadcrumbs":10,"title":6},"255":{"body":0,"breadcrumbs":10,"title":5},"256":{"body":58,"breadcrumbs":10,"title":5},"257":{"body":17,"breadcrumbs":9,"title":4},"258":{"body":82,"breadcrumbs":9,"title":4},"259":{"body":44,"breadcrumbs":10,"title":5},"26":{"body":83,"breadcrumbs":4,"title":2},"260":{"body":58,"breadcrumbs":10,"title":5},"261":{"body":95,"breadcrumbs":10,"title":5},"262":{"body":65,"breadcrumbs":10,"title":5},"263":{"body":37,"breadcrumbs":9,"title":4},"264":{"body":44,"breadcrumbs":13,"title":8},"265":{"body":43,"breadcrumbs":11,"title":7},"266":{"body":83,"breadcrumbs":8,"title":4},"267":{"body":59,"breadcrumbs":12,"title":8},"268":{"body":35,"breadcrumbs":10,"title":5},"269":{"body":94,"breadcrumbs":11,"title":6},"27":{"body":0,"breadcrumbs":3,"title":1},"270":{"body":41,"breadcrumbs":11,"title":6},"271":{"body":62,"breadcrumbs":6,"title":1},"272":{"body":43,"breadcrumbs":6,"title":4},"273":{"body":0,"breadcrumbs":3,"title":1},"274":{"body":48,"breadcrumbs":4,"title":2},"275":{"body":27,"breadcrumbs":5,"title":3},"276":{"body":104,"breadcrumbs":4,"title":2},"277":{"body":2,"breadcrumbs":8,"title":6},"278":{"body":0,"breadcrumbs":3,"title":1},"279":{"body":17,"breadcrumbs":4,"title":2},"28":{"body":40,"breadcrumbs":3,"title":1},"280":{"body":32,"breadcrumbs":5,"title":3},"281":{"body":13,"breadcrumbs":7,"title":5},"282":{"body":23,"breadcrumbs":4,"title":2},"283":{"body":22,"breadcrumbs":7,"title":5},"284":{"body":20,"breadcrumbs":4,"title":2},"285":{"body":15,"breadcrumbs":5,"title":3},"286":{"body":0,"breadcrumbs":2,"title":1},"287":{"body":4,"breadcrumbs":2,"title":1},"288":{"body":105,"breadcrumbs":3,"title":2},"289":{"body":41,"breadcrumbs":5,"title":4},"29":{"body":280,"breadcrumbs":5,"title":3},"290":{"body":45,"breadcrumbs":2,"title":1},"3":{"body":9,"breadcrumbs":4,"title":1},"30":{"body":50,"breadcrumbs":4,"title":2},"31":{"body":51,"breadcrumbs":4,"title":2},"32":{"body":20,"breadcrumbs":4,"title":2},"33":{"body":39,"breadcrumbs":3,"title":1},"34":{"body":19,"breadcrumbs":4,"title":2},"35":{"body":22,"breadcrumbs":6,"title":3},"36":{"body":51,"breadcrumbs":5,"title":2},"37":{"body":54,"breadcrumbs":5,"title":2},"38":{"body":139,"breadcrumbs":6,"title":3},"39":{"body":191,"breadcrumbs":10,"title":6},"4":{"body":12,"breadcrumbs":4,"title":1},"40":{"body":81,"breadcrumbs":8,"title":4},"41":{"body":22,"breadcrumbs":9,"title":5},"42":{"body":53,"breadcrumbs":7,"title":3},"43":{"body":8,"breadcrumbs":8,"title":4},"44":{"body":47,"breadcrumbs":6,"title":3},"45":{"body":51,"breadcrumbs":6,"title":3},"46":{"body":30,"breadcrumbs":5,"title":2},"47":{"body":14,"breadcrumbs":5,"title":2},"48":{"body":45,"breadcrumbs":4,"title":1},"49":{"body":52,"breadcrumbs":5,"title":2},"5":{"body":36,"breadcrumbs":5,"title":2},"50":{"body":86,"breadcrumbs":4,"title":1},"51":{"body":76,"breadcrumbs":5,"title":2},"52":{"body":45,"breadcrumbs":5,"title":2},"53":{"body":14,"breadcrumbs":5,"title":2},"54":{"body":45,"breadcrumbs":5,"title":2},"55":{"body":83,"breadcrumbs":5,"title":2},"56":{"body":130,"breadcrumbs":4,"title":1},"57":{"body":18,"breadcrumbs":7,"title":3},"58":{"body":108,"breadcrumbs":5,"title":1},"59":{"body":78,"breadcrumbs":5,"title":1},"6":{"body":8,"breadcrumbs":5,"title":2},"60":{"body":130,"breadcrumbs":5,"title":1},"61":{"body":14,"breadcrumbs":7,"title":3},"62":{"body":21,"breadcrumbs":5,"title":1},"63":{"body":6,"breadcrumbs":6,"title":2},"64":{"body":14,"breadcrumbs":5,"title":1},"65":{"body":20,"breadcrumbs":5,"title":1},"66":{"body":19,"breadcrumbs":5,"title":1},"67":{"body":12,"breadcrumbs":5,"title":1},"68":{"body":9,"breadcrumbs":5,"title":1},"69":{"body":21,"breadcrumbs":5,"title":1},"7":{"body":11,"breadcrumbs":5,"title":2},"70":{"body":11,"breadcrumbs":5,"title":1},"71":{"body":32,"breadcrumbs":5,"title":1},"72":{"body":27,"breadcrumbs":5,"title":1},"73":{"body":0,"breadcrumbs":7,"title":3},"74":{"body":21,"breadcrumbs":9,"title":5},"75":{"body":15,"breadcrumbs":6,"title":2},"76":{"body":127,"breadcrumbs":8,"title":4},"77":{"body":56,"breadcrumbs":13,"title":9},"78":{"body":41,"breadcrumbs":12,"title":8},"79":{"body":82,"breadcrumbs":10,"title":6},"8":{"body":22,"breadcrumbs":5,"title":2},"80":{"body":18,"breadcrumbs":7,"title":3},"81":{"body":102,"breadcrumbs":6,"title":3},"82":{"body":29,"breadcrumbs":6,"title":2},"83":{"body":26,"breadcrumbs":6,"title":2},"84":{"body":56,"breadcrumbs":6,"title":2},"85":{"body":34,"breadcrumbs":6,"title":2},"86":{"body":56,"breadcrumbs":8,"title":3},"87":{"body":29,"breadcrumbs":7,"title":2},"88":{"body":26,"breadcrumbs":8,"title":3},"89":{"body":48,"breadcrumbs":6,"title":1},"9":{"body":11,"breadcrumbs":6,"title":3},"90":{"body":36,"breadcrumbs":8,"title":3},"91":{"body":7,"breadcrumbs":6,"title":1},"92":{"body":48,"breadcrumbs":9,"title":4},"93":{"body":50,"breadcrumbs":7,"title":3},"94":{"body":66,"breadcrumbs":6,"title":2},"95":{"body":133,"breadcrumbs":6,"title":2},"96":{"body":21,"breadcrumbs":7,"title":3},"97":{"body":34,"breadcrumbs":6,"title":2},"98":{"body":29,"breadcrumbs":7,"title":3},"99":{"body":14,"breadcrumbs":6,"title":2}},"docs":{"0":{"body":"# Atomic Data Docs - Overview Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety. Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines. Atomic Data has been designed with the following goals in mind : Give people more control over their data Make linked data easier to use Make it easier for developers to build highly interoperable apps Make standardization easier and cheaper Atomic Data is Linked Data , as it is a strict subset of RDF . It is type-safe (you know if something is a string, number, date, URL, etc.) and extensible through Atomic Schema , which means that you can re-use or define your own Classes, Properties and Datatypes. The default serialization format for Atomic Data is JSON-AD , which is simply JSON where each key is a URL of an Atomic Property. These Properties are responsible for setting the datatype (to ensure type-safety) and setting shortnames (which help to keep names short, for example in JSON serialization) and descriptions (which provide semantic explanations of what a property should be used for). Read more about Atomic Data Core Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization. Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions. Agents are Users that enable authentication . They are Resources with their own Public and Private keys, which they use to identify themselves. Collections : querying, filtering, sorting and pagination. Paths : traverse graphs. Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems. Invites : create new users and provide them with rights. WebSockets : real-time updates. Endpoints : provide machine-readable descriptions of web services. Files : upload, download and metadata for files.","breadcrumbs":"Atomic Data Overview » Atomic Data Extended","id":"0","title":"Atomic Data Extended"},"1":{"body":"Atomic Data has been designed to be very easy to create and host. In the Atomizing section, we'll show you how you can create Atomic Data in three ways: Using Atomic Server, from your browser By creating JSON-AD (and optionally importing it) By upgrading your existing application","breadcrumbs":"Atomic Data Overview » Atomizing: how to create, convert and host Atomic Data","id":"1","title":"Atomizing: how to create, convert and host Atomic Data"},"10":{"body":"Interoperability and comparisons RDF Solid JSON IPFS SQL Graph Databases Potential use cases As a Headless CMS In a React project Personal Data Store Artificial Intelligence E-commerce & marketplaces Surveys Verifiable Credentials Data Catalog Education Food labels Software and libraries Acknowledgements | Newsletter | Get involved Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Use Atomic Data","id":"10","title":"Use Atomic Data"},"100":{"body":"Atomic Data allows signing every HTTP request . This method is most secure, since a MITM attack would only give access to the specific resource requested, and only for a short amount of time. Note that signing every single request takes a bit of time. We picked a fast algorithm (Ed25519) to minimize this cost.","breadcrumbs":"Atomic Data Extended » Authentication » Per-Request Signing","id":"100","title":"Per-Request Signing"},"101":{"body":"All of the following headers are required, if you need authentication. x-atomic-public-key: The base64 public key (Ed25519) of the Agent sending the request x-atomic-signature: A base64 signature of the following string: {subject} {timestamp} x-atomic-timestamp: The current time (when sending the request) as milliseconds since unix epoch x-atomic-agent: The subject URL of the Agent sending the request.","breadcrumbs":"Atomic Data Extended » Authentication » HTTP Headers","id":"101","title":"HTTP Headers"},"102":{"body":"Here's an example (js) client side implementation with comments: // The Private Key of the agent is used for signing\n// https://atomicdata.dev/properties/privateKey\nconst privateKey = \"someBase64Key\";\nconst timestamp = Math.round(new Date().getTime());;\n// This is what you will need to sign.\n// The timestmap is to limit the harm of a man-in-the-middle attack.\n// The `subject` is the full HTTP url that is to be fetched.\nconst message = `${subject} ${timestamp}`;\n// Sign using Ed25519, see example implementation here: https://github.com/atomicdata-dev/atomic-data-browser/blob/30b2f8af59d25084de966301cb6bd1ed90c0eb78/lib/src/commit.ts#L176\nconst signed = await signToBase64(message, privateKey);\n// Set all of these headers\nconst headers = new Headers;\nheaders.set('x-atomic-public-key', await agent.getPublicKey());\nheaders.set('x-atomic-signature', signed);\nheaders.set('x-atomic-timestamp', timestamp.toString());\nheaders.set('x-atomic-agent', agent?.subject);\nconst response = await fetch(subject, {headers});","breadcrumbs":"Atomic Data Extended » Authentication » Sending a request","id":"102","title":"Sending a request"},"103":{"body":"If none of the x-atomic HTTP headers are present, the server assigns the PublicAgent to the request. This Agent represents any guest who is not signed in. If some (but not all) of the x-atomic headers are present, the server will return with a 500. The server must check if the validUntil has not yet passed. The server must check whether the public key matches the one from the Agent. The server must check if the signature is valid. The server should check if the request resource can be accessed by the Agent using hierarchy (e.g. check read right in the resource or its parents).","breadcrumbs":"Atomic Data Extended » Authentication » Verifying an Authentication","id":"103","title":"Verifying an Authentication"},"104":{"body":"Atomic Data uses Hierarchies to describe who gets to access some resource, and who can edit it.","breadcrumbs":"Atomic Data Extended » Authentication » Hierarchies for authorization","id":"104","title":"Hierarchies for authorization"},"105":{"body":"Since we need the Private Key to sign Commits and requests, the client should have this available. This means the client software as well as the user should deal with key management, and that can be a security risk in some contexts (such as a web browser). See issue #49 . When using the Agent's subject to authenticate somewehere, the authorizer must be able to check what the public key of the agent is. This means the agent must be publicly resolvable. This is one of the reasons we should work towards a server-independent identifier, probably as base64 string that contains the public key (and, optionally, also the https identifier). See issue #59 on DIDs . We'll probably also introduce some form of token-based-authentication created server side in the future. See #87 Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Authentication » Limitations / considerations","id":"105","title":"Limitations / considerations"},"106":{"body":"( Discussion ) At some point on working on something in a web application, you're pretty likely to share that, often not with the entire world. In order to make this process of inviting others as simple as possible, we've come up with an Invitation standard.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Invitations & Tokens","id":"106","title":"Invitations & Tokens"},"107":{"body":"Edit without registration . Be able to edit or view things without being required to complete a registration process. Share with a single URL . A single URL should contain all the information needed. (Un)limited URL usage . A URL might be re-usable, or maybe not.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Design goals","id":"107","title":"Design goals"},"108":{"body":"The Owner or a resource creates an Invite . This Invite points to a target Resource, provides read rights by default but can additionally add write rights, contains a bunch of usagesLeft. The Guest opens the Invite URL. This returns the Invite resource, which provides the client with the information needed to do the next request which adds the actual rights. The browser client app might generate a set of keys, or use an existing one. It sends the Agent URL to the Invite in a query param. The server will respond with a Redirect resource, which links to the newly granted target resource. The Guest will now be able to access the Resource. Try it on https://atomicdata.dev/invites/1","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Flow","id":"108","title":"Flow"},"109":{"body":"The one creating the Invite has to take security in consideration. Some URLs can be easily guessed! When implementing Invitations, make sure to use a good amount of randomness when creating the Subject. Make sure that the invite is not publicly discoverable (e.g. through a Collection), this can happen if you set the parent of the invite to a public resource. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Limitations and gotcha's","id":"109","title":"Limitations and gotcha's"},"11":{"body":"","breadcrumbs":"Atomic Data Overview » Motivation » Motivation: Why Atomic Data?","id":"11","title":"Motivation: Why Atomic Data?"},"110":{"body":"Disclaimer: Work in progress, prone to change. Atomic Commits is a specification for communicating state changes (events / transactions / patches / deltas / mutations) of Atomic Data . It is the part of Atomic Data that is concerned with writing, editing, removing and updating information.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Atomic Commits","id":"110","title":"Atomic Commits"},"111":{"body":"Event sourced : Store and standardize changes , as well as the current state. This enables versioning, history playback, undo, audit logs, and more. Traceable origin : Every change should be traceable to an actor and a point in time. Verifiable : Have cryptographic proof for every change. Know when , and what was changed by whom . Identifiable : A single commit has an identifier - it is a resource. Decentralized : Commits can be shared in P2P networks from device to device, whilst maintaining verifiability. Extensible : The methods inside a commit are not fixed. Use-case specific methods can be added by anyone. Streamable : The commits could be used in streaming context. Familiar : Introduces as little new stuff as possible (no new formats or language to learn) Pub/Sub : Subscribe to changes and get notified on changes. ACID-compliant : An Atomic commit will only occur if it results in a valid state. Atomic : All the Atomic Data design goals also apply here.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Design goals","id":"111","title":"Design goals"},"112":{"body":"Although it's a good idea to keep data at the source as much as possible, we'll often need to synchronize two systems. For example when data has to be queried or indexed differently than its source can support. Doing this synchronization can be very difficult, since most of our software is designed to only maintain and share the current state of a system. I noticed this mainly when working on OpenBesluitvorming.nl - an open data project where we aimed to fetch and standardize meeting data (votes, meeting minutes, documents) from 150+ local governments in the Netherlands. We wrote software that fetched data from various systems (who all had different models, serialization formats and APIs), transformed this data to a single standard and share it through an API and a fulltext search endpoint. One of the hard parts was keeping our data in sync with the sources. How could we now if something was changed upstream? We queried all these systems every night for all meetings from the next and previous month , and made deep comparisons to our own data. This approach has a couple of issues: It costs a lot of resources, both for us and for the data suppliers. It's not real-time - we can only run this once every 24 ours (because of how costly it is). It's very prone to errors. We've had issues during all phases of Extraction, Transformation and Loading (ETL) processing. It causes privacy issues. When some data at the source is removed (because it contained faulty or privacy sensitive data), how do we learn about that? Persisting and sharing state changes could solve these issues. In order for this to work, we need to standardize this for all data suppliers. We need a specification that is easy to understand for most developers. Keeping track of where data comes from is essential to knowing whether you can trust it - whether you consider it to be true. When you want to persist data, that quickly becomes bothersome. Atomic Data and Atomic Commits aim to make this easier by using cryptography for ensuring data comes from some particular source, and is therefore trustworthy. If you want to know how Atomic Commits differ from other specs, see the compare section Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Motivation","id":"112","title":"Motivation"},"113":{"body":"","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Atomic Commits: Concepts","id":"113","title":"Atomic Commits: Concepts"},"114":{"body":"url: https://atomicdata.dev/classes/Commit A Commit is a Resource that describes how a Resource must be updated. It can be used for auditing, versioning and feeds. It is cryptographically signed by an Agent . The required fields are: subject - The thing being changed. A Resource Subject URL (HTTP identifier) that the Commit is changing about. A Commit Subject must not contain query parameters, as these are reserved for dynamic resources. signer - Who's making the change. The Atomic URL of the Author's profile - which in turn must contain a publicKey. signature - Cryptographic proof of the change. A hash of the JSON-AD serialized Commit (without the signature field), signed by the Agent's private-key. This proves that the author is indeed the one who created this exact commit. The signature of the Commit is also used as the identifier of the commit. created-at - When the change was made. A UNIX timestamp number of when the commit was created. The optional method fields describe how the data must be changed: destroy - If true, the existing Resource will be removed. remove - an array of Properties that need to be removed (including their values). set - a Nested Resource which contains all the new or edited fields. push - a Nested Resource which contains all the fields that are appended to. This means adding items to a new or existing ResourceArray. These commands are executed in the order above. This means that you can set destroy to true and include set, which empties the existing resource and sets new values.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Commit","id":"114","title":"Commit"},"115":{"body":"Since Commits contains cryptographic proof of authorship, they can be accepted at a public endpoint. There is no need for authentication. A commit should be sent (using an HTTPS POST request) to a /commmit endpoint of an Atomic Server. The server then checks the signature and the author rights, and responds with a 2xx status code if it succeeded, or an 5xx error if something went wrong. The error will be a JSON object.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Posting commits using HTTP","id":"115","title":"Posting commits using HTTP"},"116":{"body":"Let's look at an example Commit: { \"@id\": \"https://atomicdata.dev/commits/3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==\", \"https://atomicdata.dev/properties/createdAt\": 1611489929370, \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Commit\" ], \"https://atomicdata.dev/properties/set\": { \"https://atomicdata.dev/properties/shortname\": \"1611489928\" }, \"https://atomicdata.dev/properties/signature\": \"3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==\", \"https://atomicdata.dev/properties/signer\": \"https://surfy.ddns.net/agents/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=\", \"https://atomicdata.dev/properties/previousCommit\": \"https://surfy.ddns.net/commits/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=\", \"https://atomicdata.dev/properties/subject\": \"https://atomicdata.dev/test\"\n} This Commit can be sent to any Atomic Server. This server, in turn, should verify the signature and the author's rights before the server applies the Commit.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Serialization with JSON-AD","id":"116","title":"Serialization with JSON-AD"},"117":{"body":"The signature is a base64 encoded Ed25519 signature of the deterministically serialized Commit. Calculating the signature is a delicate process that should be followed to the letter - even a single character in the wrong place will result in an incorrect signature, which makes the Commit invalid. The first step is serializing the commit deterministically . This means that the process will always end in the exact same string. Serialize the Commit as JSON-AD. Do not serialize the signature field. Do not include empty objects or arrays. If destroy is false, do not include it. All keys are sorted alphabetically - both in the root object, as in any nested objects. The JSON-AD is minified: no newlines, no spaces. This will result in a string. The next step is to sign this string using the Ed25519 private key from the Author. This signature is a byte array, which should be encoded in base64 for serialization. Make sure that the Author's URL resolves to a Resource that contains the linked public key. Congratulations, you've just created a valid Commit! Here are currently working implementations of this process, including serialization and signing (links are permalinks). in Rust (atomic-lib) . in Typescript / Javascript (atomic-data-browser) . If you want validate your implementation, check out the tests for these two projects.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Calculating the signature","id":"117","title":"Calculating the signature"},"118":{"body":"If you're on the receiving end of a Commit (e.g. if you're writing a server or a client who has to parse Commits), you will apply the Commit to your Store. If you have to persist the Commit, you must perform all of the checks. If you're writing a client, and you trust the source of the Commit, you can probably skip the validation steps. Here's how you apply a Commit: Check if the Subject URL is valid Validate the signature. This means serialize the Commit deterministically (see above), check the Agent's publickey (you might need to fetch this one), verify if the signature matches. Check if the timestamp matches is OK. I think an acceptable window is 10 seconds. If the Commit is for an existing resource, get it. Validate the Rights of the one making the Commit. Check if the previousCommit of the Commit matches with the previousCommit of the Resource. Iterate over the set fields. Overwrite existing, or add the new Values. Make sure the Datatypes match with the respective Properties. Iterate over the remove fields. Remove existing properties. If the Resource has one or more classes, check if the required Properties are there. You might want to perform some custom validations now (e.g. if you accept an Invite, you should make sure that the one creating the Invite has the correct rights to actually make it!) Store the created Commit as a Resource, and store the modified Resource!","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Applying the Commit","id":"118","title":"Applying the Commit"},"119":{"body":"Commits adjust only one Resource at a time , which means that you cannot change multiple in one commit. ( issue ) The one creating the Commit will need to sign it , which may make clients that write data more complicated than you'd like. You can also let Servers write Commits, but this makes them less verifiable / decentralized. Commits require signatures, which means key management . Doing this securely is no trivial matter. The signatures require JSON-AD serialization If your implementation persists all Commits, you might need to store a lot of data . Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Limitations","id":"119","title":"Limitations"},"12":{"body":"The world wide web was designed by Tim Berners-Lee to be a decentralized network of servers that help people share information. As I'm writing this, it is exactly 30 years ago that the first website has launched. Unfortunately, the web today is not the decentralized network it was supposed to be. A handful of large tech companies are in control of how the internet is evolving, and where and how our data is being stored. The various services that companies like Google and Microsoft offer (often for free) integrate really well with their other services, but are mostly designed to lock you in . Vendor lock-in means that it is often difficult to take your information from one app to another. This limits innovation, and limits users to decide how they want to interact with their data. Companies often have incentives that are not fully aligned with what users want. For example, Facebook sorts your newsfeed not to make you satisfied, but to make you spend as much time looking at ads. They don't want you to be able to control your own newsfeed. Even companies like Apple, that don't have an ad-revenue model, still have a reason to (and very much do) lock you in. To make things even worse, even open-source projects made by volunteers often don't work well together. That's not because of bad intentions, that's because it is hard to make things interoperable. If we want to change this, we need open tech that works really well together. And if we want that, we need to standardize . The existing standards are well-suited for documents and webpages, but not for structured personal data. If we want to have that, we need to standardize the read-write web , which includes standardizing how items are changed, how their types are checked, how we query lists, and more. I want all people to have a (virtual) private server that contains their own data, that they control. This Personal Data Store could very well be an old smartphone with a broken screen that is always on, running next to your router. Atomic Data is designed to be a standard that achieves this. But we need more than a standard to get adoption - we need implementations. That's why I've been working on a server, various libraries, a GUI and more - all MIT licensed. If Atomic Data will be successful, there will likely be other, better implementations.","breadcrumbs":"Atomic Data Overview » Motivation » Give people more control over their data","id":"12","title":"Give people more control over their data"},"120":{"body":"Let's compare the Atomic Commit approach with some existing protocols for communicating state changes / patches / mutations / deltas in linked data, JSON and text files. First, I'll briefly discuss the existing examples ( open a PR / issue if we're missing something!). After that, we'll discuss how Atomic Data differs from the existing ones.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Atomic Commits compared to other (RDF) delta models","id":"120","title":"Atomic Commits compared to other (RDF) delta models"},"121":{"body":"This might be an odd one in this list, but it is an interesting one nonetheless. Git is an incredibly popular version control system that is used by most software developers to manage their code. It's a decentralized concept which allows multiple computers to share a log of commits , which together represent a folder with its files and its history. It uses hashing to represent (parts of) data (which keeps the .git folder compact through deduplication), and uses cryptographic keys to sign commits and verify authorship. It is designed to work in the paradigm of text files, newlines and folders. Since most data can be represented as text files in a folder, Git is very flexible. This is partly because people are familiar with Git, but also because it has a great ecosystem - platforms such as Github provide a clean UI, cloud storage, issue tracking, authorization, authentication and more for free , as long as you use Git to manage your versions. However, Git doesn't work great for structured data - especially when it changes a lot. Git, on its own, does not perform any validations on integrity of data. Git also does not adhere to some standardized serialization format for storing commits, which makes sense, because it was designed as a tool to solve a problem, and not as some standard that is to be used in various other systems. Also, git is kind of a heavyweight abstraction for many applications. It is designed for collaborating on open source projects, which means dealing with decentralized data storage and merge conflicts - things that might not be required in other kinds of scenarios.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Git","id":"121","title":"Git"},"122":{"body":"Let's move on to specifications that mutate RDF specifically:","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » RDF mutation systems","id":"122","title":"RDF mutation systems"},"123":{"body":"N3 Patch is part of the Solid spec , since december 2021. It uses the N3 serialization format to describe changes to RDF documents. @prefix solid: <> solid:patches ; solid:where { ?a . }; solid:inserts { ?a . }; solid:deletes { ?a . }.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » .n3 Patch","id":"123","title":".n3 Patch"},"124":{"body":"https://afs.github.io/rdf-delta/ Describes changes (RDF Patches) in a specialized turtle-like serialization format. TX .\nPA \"rdf\" \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" .\nPA \"owl\" \"http://www.w3.org/2002/07/owl#\" .\nPA \"rdfs\" \"http://www.w3.org/2000/01/rdf-schema#\" .\nA .\nA .\nA \"SubClass\" .\nTC . Similar to Atomic Commits, these Delta's should have identifiers (URLs), which are denoted in a header.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » RDF-Delta","id":"124","title":"RDF-Delta"},"125":{"body":"http://www.tara.tcd.ie/handle/2262/91407 Spec for classifying and representing state changes between two RDF resources. I wasn't able to find a serialization or an implementation for this.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Delta-LD","id":"125","title":"Delta-LD"},"126":{"body":"https://www.igi-global.com/article/patchr/135561 An ontology for RDF change requests . Looks very interesting, but I'm not able to find any implementations. prefix : .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix pat: .\n@prefix guo: .\n@prefix prov: .\n@prefix xsd: .\n@prefix dbp: .\n@prefix dbo: . :Patch_15 a pat:Patch ; pat:appliesTo ; pat:status pat:Open ; pat:update [ a guo:UpdateInstruction ; guo:target_graph ; guo:target_subject dbp:Oregon ; guo:delete [dbo:language dbp:De_jure ] ; guo:insert [dbo:language dbp:English_language ] ] ; prov:wasGeneratedBy [a prov:Activity ; pat:confidence \"0.5\"^^xsd:decimal ; prov:wasAssociatedWith :WhoKnows ; prov:actedOnBehalfOf :WhoKnows#Player_25 ; prov:performedAt \"...\"^^xsd:dateTime ] .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » PatchR","id":"126","title":"PatchR"},"127":{"body":"https://www.w3.org/TR/ldpatch/ This offers quite a few features besides adding and deleting triples, such as updating lists. It's a unique serialization format, inspired by turtle. Some implementations exists, such as one in ruby which is PATCH /timbl HTTP/1.1\nHost: example.org\nContent-Length: 478\nContent-Type: text/ldpatch\nIf-Match: \"abc123\" @prefix rdf: .\n@prefix schema: .\n@prefix profile: .\n@prefix ex: . Delete { <#> profile:first_name \"Tim\" } .\nAdd { <#> profile:first_name \"Timothy\" ; profile:image .\n} . Bind ?workLocation <#> / schema:workLocation .\nCut ?workLocation . UpdateList <#> ex:preferredLanguages 1..2 ( \"fr-CH\" ) . Bind ?event <#> / schema:performerIn [ / schema:url = ] .\nAdd { ?event rdf:type schema:Event } . Bind ?ted / ^schema:url ! .\nDelete { ?ted schema:startDate \"2009-02-04\" } .\nAdd { ?ted schema:location [ schema:name \"Long Beach, California\" ; schema:geo [ schema:latitude \"33.7817\" ; schema:longitude \"-118.2054\" ] ]\n} .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » LD-Patch","id":"127","title":"LD-Patch"},"128":{"body":"https://github.com/ontola/linked-delta An N-Quads serialized delta format. Methods are URLs, which means they are extensible. Does not specify how to bundle lines. Used in production of a web app that we're working on ( Argu.co ). Designed with simplicity (no new serialization format, simple to parse) and performance in mind by my colleague Thom van Kalkeren. Initial state: \"Old value 🙈\" . Linked-Delta: \"New value 🐵\" . New state: \"New value 🐵\" .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Linked-Delta","id":"128","title":"Linked-Delta"},"129":{"body":"https://github.com/digibib/ls.ext/wiki/JSON-LD-PATCH A JSON denoted patch notation for RDF. Seems similar to the RDF/JSON serialization format. Uses string literals as operators / methods. Conceptually perhaps most similar to linked-delta. Has a JS implementation . [ { \"op\": \"add\", \"s\": \"http://example.org/my/resource\", \"p\": \"http://example.org/ontology#title\", \"o\": { \"value\": \"New Title\", \"type\": \"http://www.w3.org/2001/XMLSchema#string\" } }\n]","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » JSON-LD-PATCH","id":"129","title":"JSON-LD-PATCH"},"13":{"body":"Linked data (RDF / the semantic web) enables us to use the web as a large, decentralized graph database. Using links everywhere in data has amazing merits: links remove ambiguity, they enable exploration, they enable connected datasets. But the existing specs are too difficult to use, and that is harming adoption. At my company Ontola , we've been working with linked data quite intensely for the last couple of years. We went all-in on RDF, and challenged ourselves to create software that communicates exclusively using it. That has been an inspiring, but at times also a frustrating journey. While building our e-democracy platform Argu.co , we had to solve many RDF related problems . How to properly model data in RDF? How to deal with sequences ? How to communicate state changes? Which serialization format to use? How to convert RDF to HTML, and build a front-end ? We tackled some of these problems by having a tight grip on the data that we create (e.g. we know the type of data, because we control the resources), and another part is creating new protocols, formats, tools, and libraries. But it took a long time, and it was hard. It's been almost 15 years since the introduction of linked data , and its adoption has been slow. We know that some of its merits are undeniable, and we truly want the semantic web to succeed. I believe the lack of growth partially has to do with a lack of tooling, but also with some problems that lie in the RDF data model. Atomic Data aims to take the best parts from RDF, and learn from the past to make a more developer-friendly, performant and reliable data model to achieve a truly linked web. Read more about how Atomic Data relates to RDF, and why these changes have been made .","breadcrumbs":"Atomic Data Overview » Motivation » Linked data is awesome, but it is too difficult for developers in its current form","id":"13","title":"Linked data is awesome, but it is too difficult for developers in its current form"},"130":{"body":"https://www.w3.org/TR/sparql11-update/ SPARQL queries that change data. PREFIX dc: \nINSERT DATA\n{ dc:title \"A new book\" ; dc:creator \"A.N.Other\" .\n} Allows for very powerful queries, combined with updates. E.g. rename all persons named Bill to William: PREFIX foaf: WITH \nDELETE { ?person foaf:givenName 'Bill' }\nINSERT { ?person foaf:givenName 'William' }\nWHERE { ?person foaf:givenName 'Bill' } SPARQL Update is the most powerful of the formats, but also perhaps the most difficult to implement and understand.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » SPARQL UPDATE","id":"130","title":"SPARQL UPDATE"},"131":{"body":"http://jsonpatch.com/ A simple way to edit JSON objects: The original document { \"baz\": \"qux\", \"foo\": \"bar\"\n} The patch [ { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" }, { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] }, { \"op\": \"remove\", \"path\": \"/foo\" }\n] The result { \"baz\": \"boo\", \"hello\": [\"world\"]\n} It uses the JSON-Pointer spec for denoting paths. It has quite a bunch of implementations, in various languages.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » JSON-PATCH","id":"131","title":"JSON-PATCH"},"132":{"body":"Let's talk about the differences between the concepts above and Atomic Commits. For starters, Atomic Commits can only work with a specific subset of RDF, namely Atomic Data. RDF allows for blank nodes, does not have subject-predicate uniqueness and offers named graphs - which all make it hard to unambiguously select a single value. Most of the alternative patch / delta models described above had to support these concepts. Atomic Data is more strict and constrained than RDF. It does not support named graphs and blank nodes. This enables a simpler approach to describing state changes, but it also means that Atomic Commits will not work with most existing RDF data. Secondly, individual Atomic Commits are tightly coupled to specific Resources. A single Commit cannot change multiple resources - and most of the models discussed above to enable this. This is a big constraint, and it does not allow for things like compact migrations in a database. However, this resource-bound constraint opens up some interesting possibilities: it becomes easier to combine it with authorization (i.e. check if the person has the correct rights to edit some resource): simply check if the Author has the rights to edit the Subject. it makes it easier to find all Commits for a Resource, which is useful when constructing a history / audit log / previous version. Thirdly, Atomic Commits don't introduce a new serialization format. It's just JSON. This means that it will feel familiar for most developers, and will be supported by many existing environments. Finally, Atomic Commits use cryptography (hashing) to determine authenticity of commits. This concept is borrowed from git commits, which also uses signatures to prove authorship. As is the case with git, this also allows for verifiable P2P sharing of changes. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Atomic Commits - how it's different and why it exists","id":"132","title":"Atomic Commits - how it's different and why it exists"},"133":{"body":"WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion. They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games. These have been implemented in atomic-server and atomic-data-browser (powered by @tomic/lib).","breadcrumbs":"Atomic Data Extended » WebSockets » WebSockets in Atomic Data","id":"133","title":"WebSockets in Atomic Data"},"134":{"body":"Send an HTTP GET request to the /ws endpoint of an atomic-server. The Server should update that request to a secure WebSocket (wss) connection. Use x-atomic authentication headers (read more here) and use ws as a subject when signing. The WebSocket-Protocol is AtomicData.","breadcrumbs":"Atomic Data Extended » WebSockets » Initializing a WebSocket connection","id":"134","title":"Initializing a WebSocket connection"},"135":{"body":"SUBSCRIBE ${subject} tells the Server that you'd like to receive Commits about this Subject. UNSUBSCRIBE ${subject} tells the Server that you'd like to stop receiving Commits about this Subject. GET ${subject} fetch an individual resource. AUTHENTICATE ${authenticationResource} to set a user session for this websocket and allow authorized messages. The authenticationResource is a JSON-AD resource containing the signature and more, see Authentication .","breadcrumbs":"Atomic Data Extended » WebSockets » Client to server messages","id":"135","title":"Client to server messages"},"136":{"body":"COMMIT ${CommitBody} an entire Commit for a resource that you're subscribed to. RESOURCE ${Resource} a JSON-AD Resource as a response to a GET message. If there is something wrong with this request (e.g. 404), return a Error Resource with the requested subject, similar to how the HTTP protocol server does this.` ERROR ${ErrorBody} an Error resource is sent whenever something goes wrong. The ErrorBody is a plaintext, typically English description of what went wrong.","breadcrumbs":"Atomic Data Extended » WebSockets » Server to client messages","id":"136","title":"Server to client messages"},"137":{"body":"For many messages, there is no response to give if things are processed correctly. If a message is unknown or there is a different problem, return an ERROR.","breadcrumbs":"Atomic Data Extended » WebSockets » Considerations","id":"137","title":"Considerations"},"138":{"body":"Example client implementation in Typescript (@tomic/lib). Example server implementation in Rust using Actix-Web Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » WebSockets » Example implementations","id":"138","title":"Example implementations"},"139":{"body":"URL: https://atomicdata.dev/classes/Endpoint An Endpoint is a resource that accepts parameters in order to generate a response. You can think of it like a function in a programming language, or a API endpoint in an OpenAPI spec. It can be used to perform calculations on the server side, such as filtering data, sorting data, selecting a page in a collection, or performing some calculation. Because Endpoints are resources, they can be defined and read programmatically. This means that it's possible to render Endpoints as forms. The most important property in an Endpoint is parameters , which is the list of Properties that can be filled in. You can find a list of Endpoints supported by Atomic-Server on atomicdata.dev/endpoints . Endpoint Resources are dynamic , because their properties could be calculated server-side. When a Property tends to be calculated server-side, they will have a isDynamic property set to true, which tells the client that it's probably useless to try to overwrite it.","breadcrumbs":"Atomic Data Extended » Endpoints » Atomic Endpoints","id":"139","title":"Atomic Endpoints"},"14":{"body":"Standards for data sharing are great, but creating one can be very costly endeavor. Committees with stakeholders write endless documents describing the intricacies of domain models, which fields are allowed and which are required, and how data is serialized. In virtually all cases, these documents are only written for humans - and not for computers. Machine readable ways to describe data models like UML diagrams and OpenAPI specifications (also known as Swagger) help to have machine-readable descriptions, but these are still not really used by machines - they are mostly only used to generate visualizations for humans . This ultimately means that implementations of a standard have to be manually checked for compliance, which often results in small (yet important) differences that severely limit interoperability. These implementations will also often want to extend the original definitions, but they are almost always unable to describe what they have extended. Standardizing with Atomic Data solves these issues. Atomic Data takes the semantic value of ontologies, and merges it with a machine-readable schemas . This makes standards created using Atomic Data easy to read for humans, and easy to validate for computers (which guarantees interoperability). Atomic Data has a highly standardized protocol for fetching data, which means that Atomic Schemas can link to each other, and re-use existing Properties . For developers (the people who need to actually implement and use the data that has been standardized), this means their job becomes easier. Because Properties have URLs, it becomes trivial to add new Properties that were initially not in the main specification, without sacrificing type safety and validation abilities.","breadcrumbs":"Atomic Data Overview » Motivation » Make standardization easier and cheaper","id":"14","title":"Make standardization easier and cheaper"},"140":{"body":"A Server can also send one or more partial Resources for an Endpoint to the client, which means that some properties may be missing. When this is the case, the Resource will have an incomplete property set to true. This tells the client that it has to individually fetch the resource from the server to get the full body. One scenario where this happens, is when fetching Collections that have other Collections as members. If we would not have incomplete resources, the server would have to perform expensive computations even if the data is not needed by the client.","breadcrumbs":"Atomic Data Extended » Endpoints » Incomplete resources","id":"140","title":"Incomplete resources"},"141":{"body":"Familiar API : should look like something that most developers already know Auto-generate forms : a front-end app should present Endpoints as forms that non-developers can interact with ( Discussion ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Endpoints » Design Goals","id":"141","title":"Design Goals"},"142":{"body":"URL: https://atomicdata.dev/classes/Collection Sooner or later, developers will have to deal with (long) lists of items. For example, a set of blog posts, activities or users. These lists often need to be paginated, sorted, and filtered. For dealing with these problems, we have Atomic Collections. An Atomic Collection is a Resource that links to a set of resources. Note that Collections are designed to be dynamic resources , often (partially) generated at runtime. Collections are Endpoints , which means that part of their properties are calculated server-side. Collections have various filters (subject, property, value) that can help to build a useful query. members : How many items (members) are visible per page. property : Filter results by a property URL. value : Filter results by a Value. Combined with property, you can create powerful queries. sort_by : A property URL by which to sort. Defaults to the subject. sort_desc : Sort descending, instead of ascending. Defaults to false. current_page : The number of the current page. page_size : How many items (members) are visible per page. total_pages : How many pages there are for the current collection. total_members : How many items (members) are visible per page.","breadcrumbs":"Atomic Data Extended » Collections, filtering, sorting » Atomic Collections","id":"142","title":"Atomic Collections"},"143":{"body":"Since Atomic Collections are dynamic resources, you can pass query parameters to it. The keys of the query params match the shortnames of the properties of the Collection. For example, let's take the Properties Collection on atomicdata.dev . We could limit the page size to 2 by adding the page_size=2 query parameter: https://atomicdata.dev/collections/property?page_size=2. Or we could sort the list by the description property: https://atomicdata.dev/collections/property?sort_by=https%3A%2F%2Fatomicdata.dev%2Fproperties%2Fdescription. Note that URLs need to be URL encoded. These properties of Collections can either be set by passing query parameters, or they can be persisted by the Collection creator / editor. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Collections, filtering, sorting » Persisting Properties vs Query Parameters","id":"143","title":"Persisting Properties vs Query Parameters"},"144":{"body":"The Atomic Data model (Atomic Schema) is great for describing structured data, but for many types of existing data, we already have a different way to represent them: files. In Atomic Data, files have two URLs. One describes the file and its metadata, and the other is a URL that downloads the file. This allows us to present a better view when a user wants to take a look at some file, and learn about its context before downloading it.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Uploading, downloading and describing files with Atomic Data","id":"144","title":"Uploading, downloading and describing files with Atomic Data"},"145":{"body":"url: https://atomicdata.dev/classes/File Files always have a downloadURL. They often also have a filename, a filesize, a checksum, a mimetype, and an internal ID (more on that later). They also often have a parent , which can be used to set permissions / rights.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » The File class","id":"145","title":"The File class"},"146":{"body":"In atomic-server, a /upload endpoint exists for uploading a file. Decide where you want to add the file in the hierarchy of your server. You can add a file to any resource - your file will refer to this resource as its parent . Make sure you have write rights on this parent. Use that parent to add a query parameter to the server's /upload endpoint, e.g. /upload?parent=https%3A%2F%2Fatomicdata.dev%2Ffiles. Send an HTTP POST request to the server's /upload endpoint containing multi-part-form-data . You can upload multiple files in one request. Add authentication headers, and sign the HTTP request with the The server will check your authentication headers, your permissions, and will persist your uploaded file(s). It will now create File resources. The server will reply with an array of created Atomic Data Files","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Uploading a file","id":"146","title":"Uploading a file"},"147":{"body":"Simply send an HTTP GET request to the File's download-url (make sure to authenticate this request). Discussion on specification Discussion on Rust server implementation Discussion on Typescript client implementation Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Downloading a file","id":"147","title":"Downloading a file"},"148":{"body":"Now that we're familiar with the basics of Atomic Data Core and its Schema, it's time to create some Atomic Data! We call the process of turning data into Atomic Data Atomizing . During this process, we upgrade the data quality . Our information becomes more valuable. Let's summarize what the advantages are: Your data becomes available on the web (publicly, if you want it to) It can now link to other data , an become part of a bigger web of data It becomes strictly typed , so developers can easily and safely re-use it in their software It becomes easier to understand , because people can look at the Properties and see what they mean It can be easily converted into many formats (JSON, Turtle, CSV, XML, more...)","breadcrumbs":"Atomizing » Atomizing: How to create and publish Atomic Data","id":"148","title":"Atomizing: How to create and publish Atomic Data"},"149":{"body":"In general, there are three ways to create Atomic Data: Using the Atomic-Server app + GUI (easy, only for direct user input) Create an importable JSON-AD file (medium, useful if you want to convert existing data) Make your existing service / app host and serialize Atomic Data (hard, if you want to make your entire app be part of the Atomic Web!) Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Three ways to Atomize data","id":"149","title":"Three ways to Atomize data"},"15":{"body":"Every time a developer builds an application, they have to figure a lot of things out. How to design the API, how to implement forms, how to deal with authentication, authorization, versioning, search... A lot of time is essentially wasted on solving these issues time and time again. By having a more complete, strict standard, Atomic Data aims to decrease this burden. Atomic Schema enables developers to easily share their datamodels, and re-use those from others. Atomic Commits helps developers to deal with versioning, history, undo and audit logs. Atomic Hierarchies provides an intuitive model for authorization and access control. And finally, the existing open source Atomic Data software (such as a server + database, a browser GUI, various libraries and React templates) help developers to have these features without having to do the heavy lifting themselves. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Motivation » Make it easier for developers to build feature-rich, interoperable apps","id":"15","title":"Make it easier for developers to build feature-rich, interoperable apps"},"150":{"body":"Here is everything you need to get started: Atomic-Server and its features Running Atomic-Server locally (optional) Creating an Agent Creating your first Atomic Data There's more!","breadcrumbs":"Atomizing » Using Atomic-Server » Creating Atomic Data using Atomic-Server","id":"150","title":"Creating Atomic Data using Atomic-Server"},"151":{"body":"Atomic-Server is the reference implementation of the Atomic Data Core + Extended specification. It was developed parallel to this specification, and it served as a testing ground for various ideas (some of which didn't work, and some of which ended up in the spec). Atomic-Server is a graph database server for storing and sharing typed linked data. It's free, open source (MIT license), and has a ton of features: ⚛️ Dynamic schema validation / type checking using Atomic Schema . Combines safety of structured data with the 🚀 Fast (1ms responses on my laptop) 🪶 Lightweight (15MB binary, no runtime dependencies) 💻 Runs everywhere (linux, windows, mac, arm) 🌐 Embedded server with support for HTTP / HTTPS / HTTP2.0 and Built-in LetsEncrypt handshake. 🎛️ Browser GUI included powered by atomic-data-browser . Features dynamic forms, tables, authentication, theming and more. 💾 Event-sourced versioning / history powered by Atomic Commits 🔄 Synchronization using websockets : communicates state changes with a client. Send a wss request to /ws to open a webscocket. 🧰 Many serialization options : to JSON, JSON-AD , and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). 🔎 Full-text search with fuzzy search and various operators, often <3ms responses. 📖 Pagination, sorting and filtering using Atomic Collections 🔐 Authorization (read / write permissions) and Hierarchical structures powered by Atomic Hierarchy 📲 Invite and sharing system with Atomic Invites 📂 File management : Upload, download and preview attachments. 🖥️ Desktop app : Easy desktop installation, with status bar icon, powered by tauri .","breadcrumbs":"Atomizing » Using Atomic-Server » Atomic-Server and its features","id":"151","title":"Atomic-Server and its features"},"152":{"body":"In this guide, we'll can simply use atomicdata.dev in our browser without installing anything. So you can skip this step and go to Creating your first Atomic Data . But if you want to, you can run Atomic-Server on your machine in a couple of ways: Using a desktop installer : download a desktop release from the releases page and install it using your desktop GUI. Using a binary : download a binary release from the releases page and open it using a terminal. Using Docker is probably the quickest: docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server. Using Cargo : cargo install atomic-server and then run atomic-server to start. Atomic-Server's README contains more (and up-to-date) information about how to use it! Open your server in your browser. By default, that's http://localhost:9883 . Fun fact: ⚛ is HTML entity code for the Atom icon: ⚛. The first screen should show you your Drive . You can think of this as your root folder. It is the resource hosted at the root URL, effectively being the home page of your server. There's an instruction on the screen about the /setup page. Click this, and you'll get a screen showing an Invite . Normally, you could Accept as new user, but since you're running on localhost, you won't be able to use the newly created Agent on non-local Atomic-Servers. Therefore, it may be best to create an Agent on some other running server, such as the demo Invite on AtomicData.dev . And after that, copy the Secret from the User settings panel from AtomicData.dev, go back to your localhost version, and press sign in. Paste the Secret, and voila! You're signed in. Now, again go to /setup. This time, you can Accept as {user}. After clicking, your Agent has gotten write rights for the Drive! You can verify this by hovering over the description field, clicking the edit icon, and making a few changes. You can also press the menu button (three dots, top left) and press Data view to see your agent after the write field. Note that you can now edit every field. You can also fetch your data now as various formats. Try checking out the other features in the menu bar, and check out the collections. Again, check out the README for more information and guides! Now, let's create some data.","breadcrumbs":"Atomizing » Using Atomic-Server » Running Atomic-Server locally (optional)","id":"152","title":"Running Atomic-Server locally (optional)"},"153":{"body":"Before you can create new things on AtomicData.dev, you'll need an Agent . This is your virtual User, which can create, sign and own things. Simply open the demo invite and press accept. And you're done!","breadcrumbs":"Atomizing » Using Atomic-Server » Creating an Agent","id":"153","title":"Creating an Agent"},"154":{"body":"Now let's create a Class . A Class represents an abstract concept, such as a BlogPost (which we'll do here). We can do this in a couple of ways: Press the + icon button on the left menu (only visible when logged in), and selecting Class Opening Class and pressing new class Going to the Classes Collection and pressing the plus icon The result is the same: we end up with a form in which we can fill in some details. Let's add a shortname (singular), and then a description. After that, we'll add the required properties. This form you're looking at is constructed by using the required and recommended Properties defined in Class. We can use these same fields to generate our BlogPost resource! Which fields would be required in a BlogPost? A name, and a description, probably. So click on the + icon under requires and search for these Properties to add them. Now, we can skip the recommended properties, and get right to saving our newly created BlogPost class. So, press save, and now look at what you created. Notice a couple of things: Your Class has its own URL. It has a parent, shown in the top of the screen. This has impact on the visibility and rights of your Resource. We'll get to that later in the documentation . Now, go to the navigation bar, which is by default at the bottom of the window. Use its context menu to open the Data View. This view gives you some more insight into your newly created data, and various ways in which you can serialize it.","breadcrumbs":"Atomizing » Using Atomic-Server » Creating your first Atomic Data","id":"154","title":"Creating your first Atomic Data"},"155":{"body":"This was just a very brief introduction to Atomic Server, and its features. There's quite a bit that we didn't dive in to, such as versioning, file uploads, the collaborative document editor and more... But by clicking around you're likely to discover these features for yourself. In the next page, we'll dive into how you can create an publish JSON-AD files. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Using Atomic-Server » There's more!","id":"155","title":"There's more!"},"156":{"body":"JSON-AD is the default serialization format of Atomic Data. It's just JSON, but with some extra requirements. Most notably, all keys are links to Atomic Properties . These Properties must be actually hosted somewhere on the web, so other people can visit them to read more about them. Ideally, in JSON-AD, each Resource has its own @id. This is the URL of the resource. This means that if someone visits that @id, they should get the resource they are requesting. That's great for people re-using your data, but as a data provider, implementing this can be a bit of a hassle. That's why there is a different way that allows you to create Atomic Data without manually hosting every resource .","breadcrumbs":"Atomizing » Creating a JSON-AD file » How to create and publish a JSON-AD file","id":"156","title":"How to create and publish a JSON-AD file"},"157":{"body":"In this section, we'll create a single JSON-AD file containing various resources. This file can then be published, shared and stored like any other. The goal of this preparation, is to ultimately import it somewhere else. We'll be importing it to Atomic-Server. Atomic-Server will create URLs for every single resource upon importing it. This way, we only deal with the JSON-AD and the data structure, and we let Atomic-Server take care of hosting the data. Let's create a BlogPost. We know the fields that we need: a name and some body. But we can't use these keys in Atomic Data, we should use URLs that point to Properties. We can either create new Properties (see the Atomic-Server tutorial), or we can use existing ones, for example by searching on AtomicData.dev/properties .","breadcrumbs":"Atomizing » Creating a JSON-AD file » Creating JSON-AD without hosting individual resources yourself","id":"157","title":"Creating JSON-AD without hosting individual resources yourself"},"158":{"body":"{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\",\n}","breadcrumbs":"Atomizing » Creating a JSON-AD file » Setting the first values","id":"158","title":"Setting the first values"},"159":{"body":"Classes help others understanding what a Resource's type is, such as BlogPost or Person. In Atomic Data, Resources can have multiple classes, so we should use an Array, like so: { \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n} Adding a Class helps people to understand the data, and it can provide guarantees to the data users about the shape of the data: they now know which fields are required or recommended . We can also use Classes to render Forms, which can be useful when the data should be edited later. For example, the BlogPost item","breadcrumbs":"Atomizing » Creating a JSON-AD file » Adding a Class","id":"159","title":"Adding a Class"},"16":{"body":"We have the ambition to make the internet more interoperable. We want Atomic Data to be a commonly used specification, enabling a vast amount of applications to work together and share information. This means we need a lot of people to understand and contribute to Atomic Data. In this document, discuss the strategic principles we use, the steps we took, and the path forward. This should help you understand how and where you may be able to contribute.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Strategy, history and roadmap for Atomic Data","id":"16","title":"Strategy, history and roadmap for Atomic Data"},"160":{"body":"Ontologies are groups of concepts that describe some domain. For example, we could have an Ontology for Blogs that links to a bunch of related Classes , such as BlogPost and Person. Or we could have a Recipy Ontology that describes Ingredients, Steps and more. At this moment, there are relatively few Classes created in Atomic Data. You can find most on atomicdata.dev/classes . So possibly the best way forward for you, is to define a Class using the Atomic Data Browser's tools for making resources.","breadcrumbs":"Atomizing » Creating a JSON-AD file » Using exsisting Ontologies, Classes and Ontologies","id":"160","title":"Using exsisting Ontologies, Classes and Ontologies"},"161":{"body":"If we want to have multiple items, we can simply use a JSON Array at the root, like so: [{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n},{ \"https://atomicdata.dev/properties/name\": \"Another blogpost\", \"https://atomicdata.dev/properties/description\": \"I'm writing so much my hands hurt.\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n}]","breadcrumbs":"Atomizing » Creating a JSON-AD file » Multiple items","id":"161","title":"Multiple items"},"162":{"body":"When we want to publish Atomic Data, we also want someone else to be able to import it. An important thing to prevent, is data duplication . If you're importing a list of Blog posts, for example, you'd want to only import every article once . The way to preventing duplication, is by adding a localId. This localId is used by the importer to find out if it has already imported it before. So we, as data producers, need to make sure that our localId is unique and does not change ! We can use any type of string that we like, as long as it conforms to these requirements. Let's use a unique slug , a short name that is often used in URLs. { \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"my-first-blogpost\",\n}","breadcrumbs":"Atomizing » Creating a JSON-AD file » Preventing duplication with localId","id":"162","title":"Preventing duplication with localId"},"163":{"body":"Let's say we also want to describe the author of the BlogPost, and give them an e-mail, a profile picture and some biography. This means we need to create a new Resource for each Author, and again have to think about the properties relevant for Author. We'll also need to create a link from BlogPost to Author, and perhaps the other way around, too. Normally, when we link things in Atomic Data, we can only use full URLs. But, since we don't have URLs yet for our Resources, we'll need a different solution. Again, this is where we can use localId! We can simply refer to the localId, instead of some URL that does not exist yet. [{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/author\": \"jon\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"my-first-blogpost\",\n},{ \"https://atomicdata.dev/properties/name\": \"Another blogpost\", \"https://atomicdata.dev/properties/description\": \"I'm writing so much my hands hurt.\", \"https://atomicdata.dev/properties/author\": \"jon\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"another-blogpost\",\n},{ \"https://atomicdata.dev/properties/name\": \"Jon Author\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Person\"], \"https://atomicdata.dev/properties/localId\": \"jon\",\n}]","breadcrumbs":"Atomizing » Creating a JSON-AD file » Describing relationships between resources using localId","id":"163","title":"Describing relationships between resources using localId"},"164":{"body":"currently under development Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Creating a JSON-AD file » Importing data using Atomic Sever","id":"164","title":"Importing data using Atomic Sever"},"165":{"body":"You don't have to use Atomic-Server and ditch your existing projects or apps, if you want to adhere to Atomic Data specs. As the Atomic Data spec is modular, you can start out simply and conform to more specs as needed: Map your JSON keys to new or existing Atomic Data properties Add @id fields to your resources, make sure these URLs resolve using HTTP Implement parts of the Extended spec There's a couple of levels you can go to, when adhering to the Atomic Data spec.","breadcrumbs":"Atomizing » Upgrade your existing project » Upgrade your existing application to serve Atomic Data","id":"165","title":"Upgrade your existing application to serve Atomic Data"},"166":{"body":"If you want to make your existing project compatible with Atomic Data, you probably don't have to get rid of your existing storage / DB implementation. The only thing that matters, is how you make the data accessible to others: the serialization . You can keep your existing software and logic, but simply change the last little part of your API. In short, this is what you'll have to do: Map all properties of resources to Atomic Properties. Either use existing ones , or create new ones . This means: take your JSON objects, and change things like name to https://atomicdata.dev/properties/name. That's it, you've done the most important step! Now your data is already more interoperable: Every field has a clear semantic meaning and datatype Your data can now be easily imported by Atomic Data systems","breadcrumbs":"Atomizing » Upgrade your existing project » Easy: map your JSON keys to Atomic Data Properties","id":"166","title":"Easy: map your JSON keys to Atomic Data Properties"},"167":{"body":"Make sure that when the user requests some URL, that you return that resource as a JSON-AD object (at the very least if the user requests it using an HTTP Accept: application/ad+json header). Your data can now be linked to by external data sources, it can become part of a web of data !","breadcrumbs":"Atomizing » Upgrade your existing project » Medium: add @id URLs that properly resolve","id":"167","title":"Medium: add @id URLs that properly resolve"},"168":{"body":"You can go all out, and implement Commits, Hierarchies, Authentication, Collections and more . I'd suggest starting with Commits , as these allow users to modify data whilst maintaining versioning and auditability. Check out the Atomic-Server source code to get inspired on how to do this.","breadcrumbs":"Atomizing » Upgrade your existing project » Hard: implement Atomic Data Extended protocols","id":"168","title":"Hard: implement Atomic Data Extended protocols"},"169":{"body":"If you need any help, join our Discord . Also, share your thoughts on creating Atomic Data in this issue on github . Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Upgrade your existing project » Reach out for help","id":"169","title":"Reach out for help"},"17":{"body":"Work on both specification and implementations (both client and server side) simultaneously to make sure all ideas are both easily explainable and properly implementable. Don't design a spec with a large committee over many months, only to learn that it has implementation issues later on. Create libraries whenever possible. Enable other developers to re-use the technology in their own stacks. Keep the code as modular as possible. Document everything . Not just your APIs - also your ideas, considerations and decisions. Do everything public . All code is open source, all issues are publicly visible. Allow outsiders to learn everything and start contributing. Make an all-in-one workspace app that stand on its own . Atomic Data may be an abstract, technical story, but we still need end-user friendly applications that solve actual problems if we want to get as much adoption as possible. Let realistic use cases guide API design . Don't fall victim to spending too much time for extremely rare edge-cases, while ignoring more common issues and wishes. Familiarity first . Make tools and specs that feel familiar, build libraries for popular frameworks, and stick to conventions whenever possible.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Strategy for adoption","id":"17","title":"Strategy for adoption"},"170":{"body":"Atomic data is designed to be easy to use in existing projects, and be interoperable with existing formats. This section will discuss how Atomic Data differs from or is similar to various data formats and paradigms, and how it can interoperate.","breadcrumbs":"Interoperability and comparisons » Interoperability: Relation to other technology","id":"170","title":"Interoperability: Relation to other technology"},"171":{"body":"Upgrade : How to make your existing (server-side) application serve Atomic Data. From easy, to hard.","breadcrumbs":"Interoperability and comparisons » Upgrade guide","id":"171","title":"Upgrade guide"},"172":{"body":"JSON : Atomic Data is designed to be easily serializable to clean, idiomatic JSON. However, if you want to turn JSON into Atomic Data, you'll have to make sure that all keys in the JSON object are URLs that link to Atomic Properties, and the data itself also has to be available at its Subject URL. RDF : Atomic Data is a strict subset of RDF, and can therefore be trivially serialized to all RDF formats (Turtle, N-triples, RDF/XML, JSON-LD, and others). The other way around is more difficult. Turning RDF into Atomic Data requires that all predicates are Atomic Properties, the values must match its properties datatype, the atoms must be available at the subject URL, and the subject-predicate combinations must be unique.","breadcrumbs":"Interoperability and comparisons » Data formats","id":"172","title":"Data formats"},"173":{"body":"Solid : A set of specifications that has many similarities with Atomic Data IPFS : Content-based addressing to prevent 404s and centralization","breadcrumbs":"Interoperability and comparisons » Protocols","id":"173","title":"Protocols"},"174":{"body":"SQL : How Atomic Data differs from and could interact with SQL databases Graph : How it differs from some labeled property graphs, such as Neo4j Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Database paradigms","id":"174","title":"Database paradigms"},"175":{"body":"RDF (the Resource Description Framework ) is a W3C specification from 1999 that describes the original data model for linked data. It is the forerunner of Atomic Data, and is therefore highly similar in its model. Both heavily rely on using URLs, and both have a fundamentally simple and uniform model for data statements. Both view the web as a single, connected graph database. Because of that, Atomic Data is also highly compatible with RDF - all Atomic Data is also valid RDF . Atomic Data can be thought of as a more constrained, type safe version of RDF . However, it does differ in some fundamental ways. Atomic calls the three parts of a Triple subject, property and value, instead of subject, predicate, object. Atomic does not support having multiple statements with the same , every combination must be unique. Atomic does not have literals, named nodes and blank nodes - these are all values, but with different datatypes. Atomic uses nested Resources and paths instead of blank nodes Atomic requires URL (not URI) values in its subjects and properties (predicates), which means that they should be resolvable. Properties must resolve to an Atomic Property, which describes its datatype. Atomic only allows those who control a resource's subject URL endpoint to edit the data. This means that you can't add triples about something that you don't control. Atomic has no separate datatype field, but it requires that Properties (the resources that are shown when you follow a predicate value) specify a datatype. However, it is allowed to serialize the datatype explicitly, of course. Atomic has no separate language field. Atomic has a native Event (state changes) model ( Atomic Commits ), which enables communication of state changes Atomic has a native Schema model ( Atomic Schema ), which helps developers to know what data types they can expect (string, integer, link, array) Atomic does not support Named Graphs. These should not be needed, because all statements should be retrievable by fetching the Subject of a resource. However, it is allowed to include other resources in a response.","breadcrumbs":"Interoperability and comparisons » RDF » How does Atomic Data relate to RDF?","id":"175","title":"How does Atomic Data relate to RDF?"},"176":{"body":"I have been working with RDF for quite some time now, and absolutely believe in some of the core premises of RDF. I started a company that specializes in Linked Data ( Ontola ), and we use it extensively in our products and services. Using URIs (and more-so URLs, which are URIs that can be fetched) for everything is a great idea, since it helps with interoperability and enables truly decentralized knowledge graphs. However, some of the characteristics of RDF make it hard to use, and have probably contributed to its relative lack of adoption.","breadcrumbs":"Interoperability and comparisons » RDF » Why these changes?","id":"176","title":"Why these changes?"},"177":{"body":"For example, let's say I want to render someone's birthday: \"1991-01-20\"^^xsd:date Rendering this item might be as simple as fetching the subject URL, filtering by predicate URL, and parsing the object as a date. However, this is also valid RDF: \"1991-01-20\"^^xsd:date \n \n \"20th of januari 1991\"@en \n \"20 januari 1991\"@nl \n \"2000-02-30\"^^xsd:date Now things get more complicated if you just want to select the original birthdate value: Select the named graph . The triple containing that birthday may exist in some named graph different from the subject URL, which means that I first need to identify and fetch that graph. Select the subject . Select the predicate . Select the datatype . You probably need a specific datatype (in this case, a Date), so you need to filter the triples to match that specific datatype. Select the language . Same could be true for language, too, but that is not necessary in this birthdate example. Select the specific triple . Even after all our previous selectors, we still might have multiple values. How do I know which is the triple I'm supposed to use? To be fair, with a lot of RDF data, only steps 2 and 3 are needed, since there are often no subject-predicate collisions. And if you control the data of the source, you can set any constraints that you like, inlcluding subject-predicate uniqueness. But if you're building a system that uses arbitrary RDF, that system also needs to deal with steps 1,4,5 and 6. That often means writing a lot of conditionals and other client-side logic to get the value that you need. It also means that serializing to a format like JSON becomes complicated - you can't just map predicates to keys - you might get collisions. And you can't use key-value stores for storing RDF, at least not in a trivial way. Every single selected value should be treated as an array of unknown datatypes, and that makes it really difficult to build software. All this complexity is the direct result of the lack of subject-predicate uniqueness. As a developer who uses RDF data, I want to be able to do something like this: // Fetches the resource\nconst joep = get(\"https://example.com/person/joep\")\n// Returns the value of the birthDate atom\nconsole.log(joep.birthDate()) // => Date(1991-01-20)\n// Fetches the employer relation at possibly some other domain, checks that resource for a property with the 'name' shortkey\nconsole.log(joep.employer().name()) // => \"Ontola.io\" Basically, I'd like to use all knowledge of the world as if it were a big JSON object. Being able to do that, requires using some things that are present in JSON, and using some things that are present in RDF. Traverse data on various domains (which is already possible with RDF) Have unique subject-predicate combinations (which is default in JSON) Map properties URLs to keys (which often requires local mapping with RDF, e.g. in JSON-LD) Link properties to datatypes (which is possible with ontologies like SHACL / SHEX)","breadcrumbs":"Interoperability and comparisons » RDF » It's too hard to select a specific value (object) in RDF","id":"177","title":"It's too hard to select a specific value (object) in RDF"},"178":{"body":"One of the core ideas of the semantic web, is that anyone should be able to say anything about anything, using semantic triples. This is one of the reasons why it can be so hard to select a specific value in RDF. When you want to make all graphs mergeable (which is a great idea), but also want to allow anyone to create any triples about any subject, you get subject-predicate non-uniqueness. For the Semantic Web, having semantic triples is great. For linked data, and connecting datasets, having atomic triples (with unique subject-predicate combinations) seems preferable. Atomic Data chooses a more constrained approach, which makes it easier to use the data, but at the cost of some expressiveness.","breadcrumbs":"Interoperability and comparisons » RDF » Less focus on semantics, more on usability","id":"178","title":"Less focus on semantics, more on usability"},"179":{"body":"RDF's subject, predicate and object terminology can be confusing to newcomers, so Atomic Data uses subject, property, value. This more closely resembles common CS terminology. ( discussion )","breadcrumbs":"Interoperability and comparisons » RDF » Changing the names","id":"179","title":"Changing the names"},"18":{"body":"First draft of specification (2020-06). Atomic Data started as an unnamed bundle of ideas and best practices to improve how we work with linked data, but quickly turned into a single (draft) specification. The idea was to start with a cohesive and easy to understand documentation, and use that as a stepping stone for writing the first code. After this, the code and specification should both be worked on simultaneously to make sure ideas are both easily explainable and properly implementable. Many of the earliest ideas were changed to make implementation easier. atomic-cli + atomic-lib (2020-07). The CLI functioned as the first platform to explore some of the most core ideas of Atomic Data, such as Properties and fetching. atomic_lib is the place where most logic resides. Written in Rust. AtomicServer (2020-08). The server (using the same atomic_lib as the CLI) should be a fast, lightweight server that must be easy to set-up. Functions as a graph database with no dependencies. Collections (2020-10). Allows users to perform basic queries, filtering, sorting and pagination. Commits (2020-11). Allow keeping track of an event-sourced log of all activities that mutate resources, which in turn allows for versioning and adding new types of indexes later on. JSON-AD (2021-02). Instead of the earlier proposed serialization format .ad3, we moved to the more familiar json-ad. Atomic-Data-Browser (2021-02). We wanted typescript and react libraries, as well as a nice interactive GUI that works in the browser. It should implement all relevant parts of the specification. Endpoints (2021-03). Machine readable API endpoints (think Swagger / OpenAPI spec) for things like versioning, path traversal and more. Classes and Properties editable from the browser (2021-04). The data-browser is now powerful enough to use for managing the core ontological data of the project. Hierarchies & Invitations (2021-06). Users can set rights, structure Resources and invite new people to collaborate. Websockets (2021-08). Live synchronization between client and server. Use case: Document Editor (2021-09). Notion-like editor with real-time synchronization. Full-text search (2021-11). Powered by Tantivy. Authentication for read access (2021-11). Allows for private data. Desktop support (2021-12). Run Atomic-Server on the desktop, powered by Tauri. Easier install UX, system tray icon. File management (2021-12). Upload, download and view Files. Indexed queries (2022-01). Huge performance increase for queries. Allows for far bigger datasets. Use case: ChatRoom (2022-04). Group chat application. To make this possible, we had to extend the Commit model with a push action, and allow Plugins to create new Commits. JSON-AD Publishing and Importing (2022-08). Creating and consuming Atomic Data becomes a whole lot easier. @tomic/svelte (2022-12). Library for integrating Atomic Data with Svelte(Kit).","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » History","id":"18","title":"History"},"180":{"body":"As discussed above, in RDF, it's very much possible for a graph to contain multiple statements that share both a subject and a predicate. This is probably because of two reasons: RDF graphs must always be mergeable (just like Atomic Data). Anyone can make any statement about any subject ( unlike Atomic Data, see next section). However, this introduces a lot extra complexity for data users (see above), which makes it not very attractive to use RDF in any client. Whereas most languages and datatypes have key-value uniqueness that allow for unambiguous value selection, RDF clients have to deal with the possibility that multiple triples with the same subject-predicate combination might exist. It also introduces a different problem: How should you interpret a set of subject-predicate combinations? Does this represent a non-ordered collection, or did something go wrong while setting values? In the RDF world, I've seen many occurences of both. Atomic Data requires subject-property uniqueness, which means that these issues are no more. However, in order to guarantee this, and still retain graph merge-ability , we also need to limit who creates statements about a subject:","breadcrumbs":"Interoperability and comparisons » RDF » Subject + Predicate uniqueness","id":"180","title":"Subject + Predicate uniqueness"},"181":{"body":"RDF allows that anne.com creates and hosts statements about the subject john.com. In other words, domain A creates statements about domain B. It allows anyone to say anything about any subject, thus allowing for extending data that is not under your control. For example, developers at both Ontola and Inrupt (two companies that work a lot with RDF) use this feature to extend the Schema.org ontology with translations. This means they can still use standards from Schema.org, and have their own translations of these concepts. However, I think this is a flawed approach. In the example above, two companies are adding statements about a subject. In this case, both are adding translations. They're doing the same work twice. And as more and more people will use that same resource, they will be forced to add the same translations, again and again. I think one of the core perks of linked data, is being able to make your information highly re-usable. When you've created statements about an external thing, these statements are hard to re-use. This means that someone using RDF data about domain B cannot know that domain B is actually the source of the data. Knowing where data comes from is one of the great things about URIs, but RDF does not require that you can think of subjects as the source of data. Many subjects in RDF don't actually resolve to all the known triples of the statement. It would make the conceptual model way simpler if statements about a subject could only be made from the source of the domain owner of the subject. When triples are created about a resource, in a place other than where the subject is hosted, these triples are hard to share. The way RDF projects deal with this, is by using named graphs . As a consequence, all systems that use these triples should keep track of another field for every atom. To make things worse, it makes subject-predicate uniqueness impossible to guarantee. That's a high price to pay. I've asked two RDF developers (who did not know each other) working on RDF about limiting subject usage, and both were critical. Interestingly, they provided the same usecase for using named graphs that would conflict with the limiting subject usage constraint. They both wanted to extend the schema.org ontology by adding properties to these items in a local graph. I don't think even this usecase is appropriate for named graphs. They were actually using an external resource that did not provide them with the things they needed. The things that they would add (the translations) are not re-usable, so in the end they will just keep spreading a URL that doesn't provide people with the things that they will come to expect. The schema.org URL still won't provide the translations that they wrote! I believe a better solution is to copy the resource (in this case a part of the schema.org ontology), and extend it, and host it somewhere else, and use that URL. Or even better: have a system for sharing your change suggestions with the source of the data, and allow for easy collaboration on ontologies.","breadcrumbs":"Interoperability and comparisons » RDF » Limiting subject usage","id":"181","title":"Limiting subject usage"},"182":{"body":"In RDF, an object can either be a named node, blank node or literal. A literal has a value, a datatype and an optional language (if the literal is a string). Although RDF statements are often called triples, a single statement can consist of five fields: subject, predicate, object, language, datatype. Having five fields is way more than most information systems. Usually we have just key and value. This difference leads to compatibility issues when using RDF in applications. In practice, clients have to run a lot of checks before they can use the data - which makes RDF in most contexts harder to use than something like JSON. Atomic Data drops the named node / literal distinction. We just have values, and they are interpreted by looking at the datatype, which is defined in the property. When a value is a URL, we don't call it a named node, but we simply use a URL datatype.","breadcrumbs":"Interoperability and comparisons » RDF » No more literals / named nodes","id":"182","title":"No more literals / named nodes"},"183":{"body":"A URL (Uniform Resource Locator ) is a specific and cooler version of a URI (Uniform Resource Identifier ), because a URL tells you where you can find more information about this thing (hence Locator ). RDF allows any type of URIs for subject and predicate value, which means they can be URLs, but don't have to be. This means they don't always resolve, or even function as locators. The links don't work, and that restricts how useful the links are. Atomic Data takes a different approach: these links MUST Resolve. Requiring Properties to resolve is part of what enables the type system of Atomic Schema - they provide the shortname and datatype. Requiring URLs makes things easier for data users, but makes things a bit more difficult for the data producer. With Atomic Data, the data producer MUST offer the data at the URL of the subject. This is a challenge that requires tooling, which is why I've built Atomic-Server : an easy to use, performant, open source data management sytem. Making sure that links actually work offer tremendous benefits for data consumers, and that advantage is often worth the extra trouble.","breadcrumbs":"Interoperability and comparisons » RDF » Requiring URLs","id":"183","title":"Requiring URLs"},"184":{"body":"Blank (or anonymous) nodes are RDF resources with identifiers that exist only locally. In other words, their identifiers are not URLs. They are sometimes also called anonymous nodes. They make life easier for data producers, who can easily create (nested) resources without having to mint all the URLs. In most non-RDF data models, blank nodes are the default. For example, we nest JSON object without thinking twice. Unfortunately, blank nodes tend to make things harder for clients. These clients will now need to keep track of where these blank nodes came from, and they need to create internal identifiers that will not collide. Cache invalidation with blank nodes also becomes a challenge. To make this a bit easier, Atomic Data introduces a new way of dealing with names of things that you have not given a URL yet: Atomic Paths . Since Atomic Data has subject-predicate uniqueness (like JSON does, too), we can use the path of triples as a unique identifier: https://example.com/john https://schema.org/employer This prevents collisions and still makes it easy to point to a specific value. Serialization formats are free to use nesting to denote paths - which means that it is not necessary to include these path strings explicitly in most serialization formats, such as in JSON-AD.","breadcrumbs":"Interoperability and comparisons » RDF » Replace blank nodes with paths","id":"184","title":"Replace blank nodes with paths"},"185":{"body":"Having both a datatype and a predicate value can lead to confusing situations. For example, the schema:dateCreated Property requires an ISO DateTime string (according to the schema.org definition), but using a value true with an xsd:boolean datatype results in perfectly valid RDF. This means that client software using triples with a schema:dateCreated predicate cannot safely assume that its value will be a DateTime. So if the client wants to use schema:dateCreated values, the client must also specify which type of data it expects, check the datatype field of every Atom and provide logic for when these don't match. Also important combining datatype and predicate fits the model of most programmers and languages better - just look at how every single struct / model / class / shape is defined in programming languages: key: datatype. This is why Atomic Data requires that a predicate links to a Property which must have a Datatype.","breadcrumbs":"Interoperability and comparisons » RDF » Combining datatype and predicate","id":"185","title":"Combining datatype and predicate"},"186":{"body":"Using full URI strings as keys (in RDF predicates) results in a relatively clunky Developer Experience. Consider the short strings that developers are used to in pretty much all languages and data formats (object.attribute). Adding a required / tightly integrated key mapping (from long URLs to short, simple strings) in Atomic Properties solves this issue, and provides developers a way to write code like this: someAtomicPerson.bestFriend.name => \"Britta\". Although the RDF ecosystem does have some solutions for this (@context objects in JSON-LD, @prefix mappings, the @ontologies library), these prefixes are not defined in Properties themselves and therefore are often defined locally or separate from the ontology, which means that developers have to manually map them most of the time. This is why Atomic Data introduces a shortname field in Properties, which forces modelers to choose a 'key' that can be used in ORM contexts.","breadcrumbs":"Interoperability and comparisons » RDF » Adding shortnames (slugs / keys) in Properties","id":"186","title":"Adding shortnames (slugs / keys) in Properties"},"187":{"body":"RDF lacks a clear solution for dealing with ordered data , resulting in confusion when developers have to create lists of content. Adding an Array data type as a base data type helps solve this. ( discussion )","breadcrumbs":"Interoperability and comparisons » RDF » Adding native arrays","id":"187","title":"Adding native arrays"},"188":{"body":"There is no integrated standard for communicating state changes. Although linked-delta and rdf-delta do exist, they aren't referred to by the RDF spec. I think developers need guidance when learning a new system such as RDF, and that's why Atomic Commits is included in this book.","breadcrumbs":"Interoperability and comparisons » RDF » Adding a native state changes standard","id":"188","title":"Adding a native state changes standard"},"189":{"body":"A schema language is necessary to constrain and validate instances of data. This is very useful when creating domain-specific standards, which can in turn be used to generate forms or language-specific types / interfaces. Shape validations are already possible in RDF using both SHACL and SHEX , and these are both very powerful and well designed. However, with Atomic Data, I'm going for simplicity. This also means providing an all-inclusive documentation. I want people who read this book to have a decent grasp of creating, modeling, sharing, versioning and querying data. It should provide all information that most developers (new to linked data) will need to get started quickly. Simply linking to SHACL / SHEX documentation could be intimidating for new developers, who simply want to define a simple shape with a few keys and datatypes. Also, SHACL requires named graphs (which are not specified in Atomic Data) and SHEX requires a new serialization format, which might limit adoption. Atomic Data has some unique constrains (such as subject-predicate uniqueness) which also might make things more complicated when using SHEX / SHACL. However , it is not the intention of Atomic Data to create a modeling abstraction that is just as powerful as the ones mentioned above, so perhaps it is better to include a SHACL / SHEX tutorial and come up with a nice integration of both worlds.","breadcrumbs":"Interoperability and comparisons » RDF » Adding a schema language and type safety","id":"189","title":"Adding a schema language and type safety"},"19":{"body":"Most of the specification seems to become pretty stable. The implementations are working better every day, although 1.0 releases are still quite a bit far away. At this point, the most important thing is to get developers to try out Atomic Data and provide feedback. That means not only make it easy to install the tools, but also allow people to make Atomic Data without using any of our own tools. That's why we're now working on the JSON-AD and Atomizer projects (see below).","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Where we're at","id":"19","title":"Where we're at"},"190":{"body":"Besides the technical reasons described above, I think that there are social reasons to start with a new concept and give it a new name: The RDF vocabulary is intimidating. When trying to understand RDF, you're likely to traverse many pages with new concepts: literal, named node, graph, predicate, named graph, blank node... The core specification provides a formal description of these concepts, but fails to do this in a way that results in quick understanding and workable intuitions. Even experienced RDF developers tend to be confused about the nuances of the core model. There is a lack of learning resources that provide a clear, complete answer to the lifecycle of RDF data: modeling data, making data, hosting it, fetching it, updating it. Atomic Data aims to provide an opinionated answer to all of these steps. It feels more like a one-stop-shop for questions that developers are likely to encounter, whilst keeping the extendability. All Core / Schema URLs should resolve to simple, clear explanations with both examples and machine readable definitions. Especially the Property and Class concepts. The Semantic Web community has had a lot of academic attention from formal logic departments, resulting in a highly developed standard for knowledge modeling: the Web Ontology Language (OWL). While this is mostly great, its open-world philosophy and focus on reasoning abilities can confuse developers who are simply looking for a simple way to share models in RDF.","breadcrumbs":"Interoperability and comparisons » RDF » A new name, with new docs","id":"190","title":"A new name, with new docs"},"191":{"body":"All the subject URLs MUST actually resolve, and return all triples about that subject . All blank nodes should be converted into URLs. Atomic Data tools might help to achieve this, for example by hosting the data. All predicates SHOULD resolve to Atomic Properties, and these SHOULD have a datatype . You will probably need to change predicate URLs to Atomic Property URLs, or update the things that the predicate points to to include the required Atomic Property items (e.g. having a Datatype and a Shortname). This also means that the datatype in the original RDF statement can be dropped. Literals with a language tag are converted to TranslationBox resources, which also means their identifiers must be created. Keep in mind that Atomic Data does not allow for blank nodes, so the TranslationBox identifiers must be URLs. Step by step, it entails: Set up some server to make sure the URLs will resolve. Create (or find and refer to) Atomic Properties for all the predicates. Make sure they have a DataType and a Shortname. If you have triples about a subject that you don't control, change the URL to some that you can control, and refer to that external resource. Atomic Data will need tooling to facilitate in this process. This tooling should help to create URLs, Properties, and host everything on an easy to use server.","breadcrumbs":"Interoperability and comparisons » RDF » Convert RDF to Atomic Data","id":"191","title":"Convert RDF to Atomic Data"},"192":{"body":"Since all Atomic Data is also valid RDF, it's trivial to convert / serialize Atoms to RDF. This is why atomic can serialize Atomic Data to RDF. (For example, try atomic-cli get https://atomicdata.dev/properties/description --as n3) However, contrary to Atomic Data, RDF has optional Language and Datatype elements in every statement. It is good practice to use these RDF concepts when serializing Atomic Data into Turtle / RDF/XML, or other RDF serialization formats . Convert Atoms with linked TranslationBox Resources to Literals with an xsd:string datatype and the corresponding language in the tag. Convert Atoms with ResourceArrays to Collections that are native to that serialization format. Dereference the Property and Datatype from Atomic Properties, and add the URLs in datatypes in RDF statements. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » RDF » Convert Atomic data to RDF","id":"192","title":"Convert Atomic data to RDF"},"193":{"body":"The Solid project is an initiative by the inventor of linked data and the world wide web: sir Tim Berners-Lee. In many ways, it has similar goals to Atomic Data: Decentralize the web Make things more interoperable Give people more control over their data Technically, both are also similar: Usage of personal servers , or PODs (Personal Online Datastores). Both Atomic Data and Solid aim to provide users with a highly personal server where all sorts of data can be stored. Usage of linked data . All Atomic Data is valid RDF, which means that all Atomic Data is compatible with Solid . However, the other way around is more difficult. In other words, if you choose to use Atomic Data, you can always put it in your Solid Pod. But there are some important differences , too, which will be explained in more detail below. Atomic Data uses a strict built-in schema to ensure type safety Atomic Data standardizes state changes (which also provides version control / history, audit trails) Atomic Data is more easily serializable to other formats (like JSON) Atomic Data has different models for authentication, authorization and hierarchies Atomic Data does not depend on existing semantic web specifications Atomic Data is a smaller and younger project, and as of now a one-man show Disclaimer: I've been quite involved in the development of Solid, and have a lot of respect for all the people who are working on it. Solid and RDF have been important inspirations for the design of Atomic Data. The following is not meant as a critique on Solid, let alone the individuals working on it.","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data and Solid","id":"193","title":"Atomic Data and Solid"},"194":{"body":"Atomic Data is more strict than Solid - which means that it only accepts data that conforms to a specific shape. In a Solid Pod, you're free to add any shape of data that you like - it is not validated by some schema. Yes, there are some efforts of using SHACL or SHEX to constrain data before putting it in, but as of now it is not part of the spec or any implementation that I know of. A lack of schema strictness can be helpful during prototyping and rapid development, especially if you write data by hand, but it also limits how easy it is to build reliable apps with that data. Atomic Data aims to be very friendly for developers that re-use data, and that's why we take a different approach: all data must be validated by Atomic Schema before it's stored on a server. This means that all Atomic Properties will have to exist on a publicly accessible URL, before the property can be used somewhere. You can think of Atomic Data more like a (dynamic) SQL database that offers guarantees about its content type, and a Solid Pod more like a document store that takes in all kinds of content. Most of the differences have to do with how Atomic Schema aims to make linked data easier to work with, but that is covered in the previous RDF chapter .","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data is type-safe, because of its built-in schema","id":"194","title":"Atomic Data is type-safe, because of its built-in schema"},"195":{"body":"With Solid, you change a Resource by sending a POST request to the URL that you want to change. With Atomic, you change a Resource by sending a signed Commit that contains the requested changes to a Server. Event sourcing means that all changes are stored (persisted) and used to calculate the current state of things. In practice, this means that users get a couple of nice features for free: Versioning for all items by default . Storing events means that these events can be replayed , which means you get to traverse time / undo / redo. Edit / audit log for everything . Events contain information about who made which change at which point in time. Can be useful for finding out why things are the way they are. Easier to add query options / indexes . Any system can play-back the events, which means that the events can be used as an API to add new query options / fill new indexes. This is especially useful if you want to add things like full-text search, or some geolocation index. It also means that, compared to Solid, there is a relatively simple and strict API for changing data. Atomic Data has a uniform write API . All changes to data are done by posting Commits to the /commits endpoint of a Server. This removes the need to think about differences between all sorts of HTTP methods like POST / PUT / PATCH, and how servers should reply to that. EDIT: as of december 2021, Solid has introduced .n3 patch for standardizing state changes. Although this adds a uniform way of describing changes, it still lacks the power of Atomic Commits. It does not specify signatures, mention versioning, or deals with persisting changesets. On top of that, it is quite difficult to read or parse, being .n3.","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data standardizes state changes (event sourcing)","id":"195","title":"Atomic Data standardizes state changes (event sourcing)"},"196":{"body":"Atomic Data is designed with the modern (web)developer in mind. One of the things that developers expect, is to be able to traverse (JSON) objects easily. Doing this with RDF is not easily possible, because doing this requires subject-predicate uniqueness . Atomic Data does not have this problem (properties must be unique), which means that traversing objects becomes easy. Another problem that Atomic Data solves, is dealing with long URLs as property keys. Atomic Data uses shortnames to map properties to short, human-readable strings. For more information about these differences, see the previous RDF chapter .","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data is more easily serializable to other formats (like JSON)","id":"196","title":"Atomic Data is more easily serializable to other formats (like JSON)"},"197":{"body":"Both Solid an Atomic Data use URLs to refer to individuals / users / Agents. Solid's identity system is called WebID. There are multiple supported authentication protocols, the most common being WebID-OIDC . Atomic Data's authentication model is more similar to how SSH works. Atomic Data identities (Agents) are a combination of HTTP based, and cryptography (public / private key) based. In Atomic, all actions (from GET requests to Commits) are signed using the private key of the Agent. This makes Atomic Data a bit more unconventional, but also makes its auth mechanism very decentralized and lightweight.","breadcrumbs":"Interoperability and comparisons » Solid » Authentication","id":"197","title":"Authentication"},"198":{"body":"Atomic Data uses parent-child hierarchies to model data structures and perform authorization checks. This closely resembles how filesystems work (including things like Google Drive). Per resource, write and read rights can be defined, which both contain lists of Agents. Solid is working on the Shape Trees spec, which also describes hierarchies. It uses SHEX to perform shape validation, similar to how Atomic Schema does.","breadcrumbs":"Interoperability and comparisons » Solid » Hierarchy and authorization","id":"198","title":"Hierarchy and authorization"},"199":{"body":"The Solid specification (although still in draft) builds on a 20+ year legacy of committee meetings on semantic web standards such as RDF, SPARQL, OWL and XML. I think the process of designing specifications in various (fragmented) committees has led to a set of specifications that lack simplicity and consistency. Many of these specifications have been written long before there were actual implementations. Much of the effort was spent on creating highly formal and abstract descriptions of common concepts, but too little was spent on making specs that are easy to use and solve actual problems for developers. Aaron Scharz (co-founder or reddit, inventor of RSS and Markdown) wrote this in his unfinished book 'A Programmable Web' : Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense contractors. They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device. (The book is a great read on this topic, by the way!) So, in a nutshell, I think this legacy makes Solid unnecessarily hard to use for developers, for the following reasons: RDF Quirks : Solid has to deal with all the complexities of the RDF data model , such as blank nodes, named graphs, subject-predicate duplication. Multiple (uncommon) serialization formats need to be understood, such as n3, shex and potentially all the various RDF serialization formats. These will feel foreign to most (even very experienced) developers and can have a high degree of complexity. A heritage of broken URLs . Although a lot if RDF data exists, only a small part of it is actually resolvable as machine-readable RDF. The large majority won't give you the data when sending a HTTP GET request with the correct Accept headers to the subject's URL. Much of it is stored in documents on a different URL (named graphs), or behind some SPARQL endpoint that you will first need to find. Solid builds on a lot of standards that have these problems. Confusing specifications . Reading up on RDF, Solid, and the Semantic Web can be a daunting (yet adventurous) task. I've seen many people traverse a similar path as I did: read the RDF specs, dive into OWL, install protege, create ontologies, try doing things that OWL doesn't do (validate data), read more complicated specs that don't help to clear things, become frustrated... It's a bit of a rabbit hole, and I'd like to prevent people from falling into it. There's a lot of interesting ideas there, but it is not a pragmatic framework to develop interoperable apps with.","breadcrumbs":"Interoperability and comparisons » Solid » No dependency on existing semantic web specifications","id":"199","title":"No dependency on existing semantic web specifications"},"2":{"body":"Browser app atomic-data-browser ( demo on atomicdata.dev ) Build a react app using typescript & react libraries . Start with the react template on codesandbox Host your own atomic-server (powers atomicdata.dev , run with docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server) Discover the command line tool: atomic-cli (cargo install atomic-cli) Use the Rust library: atomic-lib","breadcrumbs":"Atomic Data Overview » Tools & libraries","id":"2","title":"Tools & libraries"},"20":{"body":"Video(s) about Atomic Data (2023 Q1). Explain what Atomic Data is, why we're doing this, and how to get started. Atomic Tables (2023 Q2). A powerful table editor with keyboard / copy / paste / sort support that makes it easier to model and edit data. E-mail registration (2023 Q1). This makes it easier for users to get started, and de-emphasizes the importance of private key management, as user can register new Private Keys using their e-mail address. Headless CMS tooling (2023). Use Atomic-Server to host and edit data that is being read by a front-end JAMSTACK type of tool, such as NextJS or SvelteKit. Atomizer (2023). Import files and automatically turn these into Atomic Data. Model Marketplace (2023 Q4). A place where user can easily find, compare and use Classes, Properties and Ontologies. Atomic-server plugins (2024). Let developers design new features without having to make PRs in Atomic-Server, and let users install apps without re-compiling (or even restarting) anything. Atomic-browser plugins (2024). Create new views for Classes. 1.0 release (2024). Mark the specification, the server (tracking issue) and the browser as stable . It is possible that the Spec will become 1.0 before any implementation is stable. Read the STATUS.md document for an up-to-date list of features that are already stable. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Roadmap","id":"20","title":"Roadmap"},"200":{"body":"Both Atomic Data and Solid are specifications that have different implementations. Some open source Solid implementations are the Node Solid Server , the Community Solid Server (also nodejs based) and the DexPod (Ruby on Rails based). Atomic-Server is a database + server written in the Rust programming language, that can be considered an alternative to Solid Pod implementations. It was definitely built to be one, at least. It implements every part of the Atomic Data specification. I believe that as of today (february 2022), Atomic-Server has quite a few advantages over existing Solid implementations: Dynamic schema validation / type checking using Atomic Schema , combining the best of RDF, JSON and type safety. Fast (1ms responses on my laptop) Lightweight (8MB download, no runtime dependencies) HTTPS + HTTP2 support with Built-in LetsEncrypt handshake. Browser GUI included powered by atomic-data-browser . Features dynamic forms, tables, authentication, theming and more. Easy to use! Event-sourced versioning / history powered by Atomic Commits Many serialization options : to JSON, JSON-AD , and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). Full-text search with fuzzy search and various operators, often <3ms responses. Pagination, sorting and filtering using Atomic Collections Invite and sharing system with Atomic Invites Desktop app Easy desktop installation, with status bar icon, powered by tauri . MIT licensed So fully open-source and free forever!","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data and Solid server implementations","id":"200","title":"Atomic Data and Solid server implementations"},"201":{"body":"Atomic Data is not even two years old, and although progress has been fast, it does lack some specifications. Here's a list of things missing in Atomic Data, with links to their open issues and links to their existing Solid counterpart. No inbox or notifications yet ( issue ) No OIDC support yet. ( issue ) No support from a big community, a well-funded business or the inventor of the world wide web. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Solid » Things that Atomic Data misses, but Solid has","id":"201","title":"Things that Atomic Data misses, but Solid has"},"202":{"body":"Because JSON is so popular, Atomic Data is designed with JSON in mind. Atomic Data is often (by default) serialized to JSON-AD , which itself uses JSON. JSON-AD uses URLs as keys, which is what gives Atomic Data many of its perks, but using these long strings as keys is not very easy to use in many contexts. That's why you can serialize Atomic Data to simple, clean JSON.","breadcrumbs":"Interoperability and comparisons » JSON » How does Atomic Data relate to JSON?","id":"202","title":"How does Atomic Data relate to JSON?"},"203":{"body":"The JSON keys are then derived from the shortnames of properties. For example, we could convert this JSON-AD: { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} ... into this plain JSON: { \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"shortname\": \"description\"\n} Note that when you serialize Atomic Data to plain JSON, some information is lost: the URLs are no longer there. This means that it is no longer possible to find out what the datatype of a single value is - we now only know if it's a string, but not if it actually represents a markdown string or something else. Most Atomic Data systems will therefore not use this plain JSON serialization, but for some clients (e.g. a front-end app), it might be easier to use the plain JSON, as the keys are easier to write than the long URLs that JSON-AD uses.","breadcrumbs":"Interoperability and comparisons » JSON » From Atomic Data to plain JSON","id":"203","title":"From Atomic Data to plain JSON"},"204":{"body":"Atomic Data requires a bit more information about pieces of data than JSON tends to contain. Let's take a look at a regular JSON example: { \"name\": \"John\", \"birthDate\": \"1991-01-20\"\n} We need more information to convert this JSON into Atomic Data. The following things are missing: What is the Subject URL of the resource being described? What is the Property URL of the keys being used? (name and birthDate), and consequentially, how should the values be parsed? What are their DataTypes? In order to make this conversion work, we need to link to three URLs that resolve to atomic data resources . The @id subject should resolve to the Resource itself, returning the JSON-AD from below. The Property keys (e.g. \"https://example.com/properties/name\") need to resolve to Atomic Properties. { \"@id\": \"https://example.com/people/john\", \"https://example.com/properties/name\": \"John\", \"https://example.com/properties/birthDate\": \"1991-01-20\"\n} In practice, the easiest approach to make this conversion, is to create the data and host it using software like Atomic Server .","breadcrumbs":"Interoperability and comparisons » JSON » From JSON to JSON-AD","id":"204","title":"From JSON to JSON-AD"},"205":{"body":"Atomic Data is a strict subset of RDF, and the most popular serialization of RDF for JSON data is JSON-LD . Since Atomic Schema requires the presence of a key slug in Properties, converting Atomic Data to JSON results in dev-friendly objects with nice shorthands. { \"@id\": \"https://example.com/people/John\", \"https://example.com/properties/lastname\": \"John\", \"https://example.com/properties/bestFriend\": \"https://example.com/sarah\",\n} Can be automatically converted to: { \"@context\": { \"@id\": \"https://example.com/people/John\", \"name\": \"https://example.com/properties/lastname\", \"bestFriend\": \"https://example.com/properties/bestFriend\", }, \"name\": \"John\", \"bestFriend\": { \"@id\": \"https://example.com/sarah\" },\n} The @context object provides a mapping to the original URLs. JSON-AD and JSON-LD are very similar by design, but there are some important differences: JSON-AD is designed just for atomic data, and is therefore easier and more performant to parse / serialize. JSON-LD uses @context to map keys to URLs. Any type of mapping is valid. JSON-AD, on the other hand, doesn't map anything - all keys are URLs. JSON-LD uses nested objects for links and sequences, such as @list. JSON-AD does not. Arrays in JSON-LD do not indicate ordered data - they indicate that for some subject-predicate combination, multiple values exist. This is a result of how RDF works.","breadcrumbs":"Interoperability and comparisons » JSON » From Atomic Data to JSON-LD","id":"205","title":"From Atomic Data to JSON-LD"},"206":{"body":"Make sure the URLs used in the @context resolve to Atomic Properties. Convert JSON-LD arrays into ResourceArrays Creating nested JSON objects is possible (by resolving the identifiers from @id relations), but it is up to the serializer to decide how deep this object nesting should happen. Note that as of now, there are no JSON-LD parsers for Atomic Data. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » JSON » JSON-LD Requirements for valid Atomic Data","id":"206","title":"JSON-LD Requirements for valid Atomic Data"},"207":{"body":"","breadcrumbs":"Interoperability and comparisons » IPFS » Atomic Data and IPFS","id":"207","title":"Atomic Data and IPFS"},"208":{"body":"IPFS (the InterPlanetary File System) is a standard that enables decentralized file storage and retrieval using content-based identifiers. Instead of using an HTTP URL like http://example.com/helloworld, it uses the IPFS scheme, such as ipfs:QmX6j9DHcPhgBcBtZsuRkfmk2v7G5mzb11vU9ve9i8vDsL. IPFS identifies things based on their unique content hash (the long, seemingly random string) using a thing called a Merkle DAG ( this great article explains it nicely). This is called a CID , or Content ID. This simple idea (plus some not so simple network protocols) allows for decentralized, temper-proof storage of data. This fixes some issues with HTTP that are related to its centralized philosophy: no more 404s !","breadcrumbs":"Interoperability and comparisons » IPFS » What is IPFS","id":"208","title":"What is IPFS"},"209":{"body":"Atomic Data is highly dependent on the availability of Resources, especially Properties and Datatypes. These resources are meant to be re-used a lot, and when these go offline or change (for whatever reason), it could cause issues and confusion. IPFS guarantees that these resources are entirely static, which means that they cannot change. This is useful when dealing with Properties, as a change in datatype could break things. IPFS also allows for location-independent fetching, which means that resources can be retrieved from any location, as long as it's online. This Peer-to-peer functionality is a very fundamental advantage of IPFS over HTTP, especially when the resources are very likely to be re-use, which is especially the case for Atomic Data Properties.","breadcrumbs":"Interoperability and comparisons » IPFS » Why is IPFS interesting for Atomic Data","id":"209","title":"Why is IPFS interesting for Atomic Data"},"21":{"body":"","breadcrumbs":"Atomic Data Overview » When (not) to use it » When (not) to use Atomic Data","id":"21","title":"When (not) to use Atomic Data"},"210":{"body":"IPFS URLs are static , which means that their contents can never change. This is great for some types of data, but not so much for others. If you're describing a time-dependent thing (such as a person's job), you'll probably want to know what the current value is, and that is not possible when you only have an IPFS identifier. This can be fixed by including an HTTP URL in IPFS bodies. IPFS data is also hard to remove , as it tends to be replicated across machines. If you're describing personal, private information, it can therefore be a bad idea to use IPFS. And finally, its performance is typically not as good as HTTP. If you know the IPFS gateway that hosts the IPFS resource that you're looking for, things improve drastically. Luckily for Atomic Data, this is often the case, as we know the HTTP url of the server and could try whether that server has an IPFS gateway.","breadcrumbs":"Interoperability and comparisons » IPFS » Considerations using IPFS URLs","id":"210","title":"Considerations using IPFS URLs"},"211":{"body":"IPLD (not IPFS) stands for InterPlanetary Linked Data, but is not related to RDF. The scope seems fundamentally different from RDF, too, but I have to read more about this.","breadcrumbs":"Interoperability and comparisons » IPFS » Atomic Data and IPLD","id":"211","title":"Atomic Data and IPLD"},"212":{"body":"Discuss on this issue . Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » IPFS » Share your thoughts","id":"212","title":"Share your thoughts"},"213":{"body":"Atomic Data has some characteristics that make it similar and different from SQL. Atomic Data has a dynamic schema. Any Resource could have different properties, so you can add new properties to your data without performing any migrations. However, the properties themselves are still validated (contrary to most NoSQL solutions) Atomic Data uses HTTP URLs in its data, which means it's easy to share and reuse . Atomic Data separates reading and writing , whereas SQL has one language for both. Atomic Data has a standardized way of storing changes ( Commits )","breadcrumbs":"Interoperability and comparisons » SQL » Atomic Data and SQL","id":"213","title":"Atomic Data and SQL"},"214":{"body":"At its core, SQL is a query language based around tables and rows . The tables in SQL are similar to Classes in Atomic Data: they both define a set of properties which an item could have. Every single item in a table is called a row in SQL, and a Resource in Atomic Data. One difference is that in Atomic Data, you can add new properties to resources, without making changes to any tables (migrations).","breadcrumbs":"Interoperability and comparisons » SQL » Tables and Rows vs. Classes and Properties","id":"214","title":"Tables and Rows vs. Classes and Properties"},"215":{"body":"In SQL, the schema of the database defines which shape the data can have, which properties are required, what datatypes they have. In Atomic Data, the schema exists as a Resource on the web, which means that they can be retrieved using HTTP. An Atomic Database (such as Atomic-Server ) uses a dynamic schema , which means that any Resource can have different properties, and the properties themselves can be validated, even when the server is not aware of these properties beforehand. In SQL, you'd have to manually adjust the schema of your database to add a new property. Atomic Data is a decentralized, open system, which can read new schema data from other sources. SQL is a centralized, closed system, which relies on the DB manager to define the schema.","breadcrumbs":"Interoperability and comparisons » SQL » Dynamic vs static schema","id":"215","title":"Dynamic vs static schema"},"216":{"body":"In SQL, rows have numbers as identifiers, whereas in Atomic Data, every resource has a resolvable HTTP URL as an identifier. URLs are great identifiers, because you can open them and get more information about something. This means that with Atomic Data, other systems can re-use your data by referencing to it, and you can re-use data from other systems, too. With Atomic Data, you're making your data part of a bigger web of data , which opens up a lot of possibilities.","breadcrumbs":"Interoperability and comparisons » SQL » Identifiers: numbers vs. URLs","id":"216","title":"Identifiers: numbers vs. URLs"},"217":{"body":"If you're building an App with SQL, you will always need some server that connects to your database. If you're building an App with Atomic Server, the database can function as your server, too. It deals with authentication, authorization, and more.","breadcrumbs":"Interoperability and comparisons » SQL » Atomic Server combines server and database","id":"217","title":"Atomic Server combines server and database"},"218":{"body":"The SQL query language is for both reading and writing data. In Atomic Data a distinction is made between Query and Command - getting and setting (Command Query Responsibility Segregation, CQRS ). The Query side is handled using Subject Fetching (sending a GET request to a URL, to get a single resource) and Collections (filtering and sorting data). The Command side is typically done using Atomic Commits , although you're free not to use it. SQL is way more powerful, as a query language. In SQL, the one creating the query basically defines the shape of a table that is requested, and the database returns that shape. Atomic Data does not offer such functionality. So if you need to create custom tables at runtime, you might be better off using SQL, or move your Atomic Data to a query system.","breadcrumbs":"Interoperability and comparisons » SQL » Querying","id":"218","title":"Querying"},"219":{"body":"If you want to make your existing SQL project serve Atomic Data, you can keep your existing SQL database, see the upgrade guide . It basically boils down to mapping the rows (properties) in your SQL tables to Atomic Data Properties . When you want to import arbitrary Atomic Data , though, it might be easier to use atomic-server. If you want to store arbitrary Atomic Data in a SQL database, you might be best off by creating a Resources table with a subject and a propertyValues column, or create both a properties table and a resources one.","breadcrumbs":"Interoperability and comparisons » SQL » Convert an SQL database to Atomic Data","id":"219","title":"Convert an SQL database to Atomic Data"},"22":{"body":"Flexible schemas . When dealing with structured wikis or semantic data, various instances of things will have different attributes. Atomic Data allows any kind of property on any resource. Open data . Atomic Data is a bit harder to create than plain JSON, for example, but it is easier to re-use and understand. It's use of URLs for properties makes data self-documenting. High interoperability requirements . When multiple groups of people have to use the same schema, Atomic Data provides easy ways to constrain and validate the data and ensure type safety. Connected / decentralized data . With Atomic Data, you use URLs to point to things on other computers. This makes it possible to connect datasets very explicitly, without creating copies. Very useful for decentralized social networks, for example. Auditability & Versioning . Using Atomic Commits, we can store all changes to data as transactions that can be replayed. This creates a complete audit log and history. JSON or RDF as Output . Atomic Data serializes to idiomatic, clean JSON as well as various RDF formats (Turtle / JSON-LD / n-triples / RDF/XML).","breadcrumbs":"Atomic Data Overview » When (not) to use it » When should you use Atomic Data","id":"22","title":"When should you use Atomic Data"},"220":{"body":"SQL is far more common, many people will know how to use it. SQL databases are battle-tested and has been powering countless of products for tens of years, whereas Atomic Server is at this moment in beta. SQL databases have a more powerful and expressive query language, where you can define tables in your query and combine resources. Atomic Data doesn't have a mutli-node / distributed option","breadcrumbs":"Interoperability and comparisons » SQL » Limitations of Atomic Data","id":"220","title":"Limitations of Atomic Data"},"221":{"body":"","breadcrumbs":"Interoperability and comparisons » SQL » FAQ","id":"221","title":"FAQ"},"222":{"body":"Generally, Atomic Data apps do not use SQL - so they are NOSQL. Atomic-server, for example, internally uses a key-value store (sled) for persistence. Like most NOSQL systems, Atomic Data does not limit data entries to a specific table shape, so you can add any property that you like to a resource. However, unlike most NOSQL systems, Atomic Data does perform validations on each value. So in a way, Atomic Data tries to combine best of both worlds: the extendibility and flexibility of NOSQL, with the type safety of SQL.","breadcrumbs":"Interoperability and comparisons » SQL » Is Atomic Data NOSQL or SQL?","id":"222","title":"Is Atomic Data NOSQL or SQL?"},"223":{"body":"Yes, if you use Atomic-Server, then you can only write to the server by using Atomic Commits, which are in fact transactions. This means that if part of the transaction fails, it is reverted - transactions are only applied when they are 100% OK. This prevents inconsistent DB states.","breadcrumbs":"Interoperability and comparisons » SQL » Is Atomic Data transactional / ACID?","id":"223","title":"Is Atomic Data transactional / ACID?"},"224":{"body":"It creates indexed collections when users perform queries. This means that the first time your perform some type of query (that sorts and filters by some properties), it will be slow, but the next time you perform a similar query, it will be fast. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » SQL » How does Atomic Server build indexes for its resources if the schema is not known in advance","id":"224","title":"How does Atomic Server build indexes for its resources if the schema is not known in advance"},"225":{"body":"Atomic Data is fundamentally a graph data model . We can think of Atomic Resources as nodes , and links to other resources through properties as edges . In the first section, we'll take a look at Atomic-Server as a Graph Database. After that, we'll explore how Atomic Data relates to some graph technologies.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Atomic Data and Graph Databases","id":"225","title":"Atomic Data and Graph Databases"},"226":{"body":"Built-in REST . Everything is done over HTTP, there's no new query language or serialization to learn. It's all JSON. All resources have HTTP URLs . This means that every single thing is identified by where it can be be found. Makes it easy to share data, if you want to! Sharable and re-usable data models . Atomic Schema helps you share and re-use data models by simply pointing to URLs. Authorization built-in . Managing rights in a hierarchy (similar to how tools like Google Drive or filesystems work) enable you to have a high degree of control over read / write rights. Built-in easy to use GUI . Managing content on Atomic-Server can be done by anyone, as its GUI is extremely easy to use and has a ton of features. Dynamic indexing . Indexes are created by performing Queries, resulting in great performance - without needing to manually configure indexing. Synchronization over WebSockets . All changes (called Commits ) can be synchronized over WebSockets, allowing you to build realtime collaborative tools. Event-sourced . All changes are stored and reversible, giving you a full versioned history. Open source . All code is MIT-licensed.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Atomic-Server as a database","id":"226","title":"Atomic-Server as a database"},"227":{"body":"Neo4j is a popular graph database that supports multiple query languages. The first difference is that Atomic Data is not a single piece of software but a specification . However, we can compare Neo4j as a product with the open source Atomic-Server . Atomic-Server is fully open source and free (MIT licensed), whereas Neo4j is partially open source and GPL licensed.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Comparing Atomic Data to Neo4j","id":"227","title":"Comparing Atomic Data to Neo4j"},"228":{"body":"The data model of Neo4j features a labeled property graph , which means that edges (relationships between nodes) can have their own properties. This can be useful when adding data to relationship between nodes. For example: in the john - (knows) -> mary relationship, you might want to specify for how long they have known each other. In Neo4j, we can add this data to the labeled property graph. In Atomic Data, we'd have to make a new resource to describe the relation between the two, if we wanted to add information about the relationship itself. This is called reification . This process can be time consuming, especially in Atomic Data, as this means that you'll have to specify the Class of this relationship and its properties. However, one benefit of this approach, is that the relationship itself becomes clearly defined and re-usable. Another benefit is that the simpler model of Atomic Data maps perfectly to datamodels like JSON, which makes things very convenient and familiar for developers.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Labeled Property Graph","id":"228","title":"Labeled Property Graph"},"229":{"body":"Neo4j supports multiple query languages, but its mainly known for Cypher . It is used for doing practically everything: reading, writing, modelling, and more. Atomic Data on the other hand does not have a query language. It uses a RESTful HTTP + JSON-AD approach for everything. Atomic Data uses Endpoints for specific goals that you'd do in a query language: Collections (which can filter by Property or Value, and sort by any Property) to generate lists of resources Paths for traversing graphs by property And finally, data is written using Commits . Commits are very strict, as each one describes modifications to individual resources, and every Commits has to be signed. This means that with Atomic Data, we get versioning + audit trails for all data, but at the cost of more storage requirements and a bit more expensive write process.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Query language vs REST","id":"229","title":"Query language vs REST"},"23":{"body":"Internal use only . If you're not sharing structured data, Atomic Data will probably only make things harder for you. Big Data . If you're dealing with TeraBytes of data, you probably don't want to use Atomic Data. The added cost of schema validation and the lack of distributed / large scale persistence tooling makes it not the right choice. Video / Audio / 3D . These should have unique, optimized binary representations and have very strict, static schemas. The advantages of atomic / linked data do little to improve this, unless it's just for metadata. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » When (not) to use it » When not to use Atomic Data","id":"23","title":"When not to use Atomic Data"},"230":{"body":"In Neo4j, constraints can be added to the database by Atomic Data uses Atomic Schema for validating datatypes and required properties in Classes .","breadcrumbs":"Interoperability and comparisons » Graph Databases » Schema language and type safety","id":"230","title":"Schema language and type safety"},"231":{"body":"Atomic Data has an Authentication model and Hierarchy model for authorization. Neo4j uses roles . Neo4j is actually used in production by many big organizations Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Other differences","id":"231","title":"Other differences"},"232":{"body":"Most of this book is either abstract or technical, but this section aims to be different. In this section, we'll present concrete examples of things that can be built with Atomic Data. Although you could use Atomic Data for pretty much any type of application, it is especially valuable where data re-use , standardization , and data ownership are important. As a Headless CMS In a React project Personal Data Store Artificial Intelligence E-commerce & marketplaces Surveys Verifiable Credentials Data Catalog Education Food labels Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Various Use Cases for Atomic Data","id":"232","title":"Various Use Cases for Atomic Data"},"233":{"body":"","breadcrumbs":"Potential use cases » As a Headless CMS » Using Atomic-Server as an open source headless CMS","id":"233","title":"Using Atomic-Server as an open source headless CMS"},"234":{"body":"Traditionally, content management systems were responsible for both managing the content as well as producing the actual HTML views that the user saw. This approach has some issues regarding performance and flexibility that headless CMS tools solve. Great performance . We want pages to load in milliseconds, not seconds. Headless CMS tools + JAMSTACK style architectures are designed to give both performant initial page loads, as well as consecutive / dynamic loads. High flexibility . Designs change, and front-end developers want to use the tools that they know and love to create these designs effectively. With a headless CMS, you can build the front-end with the tools that you want, and make it look exactly like you want. Easier content management . Not every CMS is as fun and easy to use, as an admin, as others. Headless CMS tools focus on the admin side of things, so the front-end devs don't have to work on the back-end as well.","breadcrumbs":"Potential use cases » As a Headless CMS » Why people are switching to Headless CMS","id":"234","title":"Why people are switching to Headless CMS"},"235":{"body":"The Atomic-Server project may be the right choice for you if you're looking for a Headless CMS: Free and open source . MIT licensed, no strings attached. Easy to use API . Atomic-Server is built using the Atomic Data specification . It is well-documented, and uses conventions that most web developers are already familiar with. Typescript & React libraries . Use the existing react hooks to make your own fully editable, live-reloaded web application. Fast . 1ms responses on my laptop. It's written in Rust, so it squeezes out every cycle of your server. Lightweight . It's a single 8MB binary, no external dependencies needed. Easy to setup . Just run the binary and open the address. Even HTTPS support is built-in. Clean, powerful admin GUI . The Atomic-Data-Browser front-end gives you a very easy interface to manage your content. Share your data models . Atomic Data is designed to achieve a more decentralized web. You can easily re-use existing data models, or share the ones you built. Files / Attachments . Upload and preview files. Pagination / sorting / filtering . Query your data. Versioning . Built-in history, where each transaction is saved. Websockets . If you need live updates and highly interactive apps (collaborative documents and chatrooms), we've got your back. Full-text search . No need for a big elasticsearch server - atomic-server has one built-in.","breadcrumbs":"Potential use cases » As a Headless CMS » Atomic Server","id":"235","title":"Atomic Server"},"236":{"body":"No support for image resizing, as of now No GraphQL support (see issue)","breadcrumbs":"Potential use cases » As a Headless CMS » Limitations","id":"236","title":"Limitations"},"237":{"body":"One-liners: cargo install atomic-server or docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server Check out the readme!","breadcrumbs":"Potential use cases » As a Headless CMS » Setting up the server","id":"237","title":"Setting up the server"},"238":{"body":"The @tomic/lib and @tomic/react typescript NPM libraries can be used in any JS project. In the next section, we'll discuss how to use Atomic-Server in your React project.","breadcrumbs":"Potential use cases » As a Headless CMS » Using the data in your (React / NextJS) app","id":"238","title":"Using the data in your (React / NextJS) app"},"239":{"body":"Strapi : Atomic-Server doesn't need an external database, is easier to setup, has live synchronization support and is way faster. However, Strapi has a plugin system, is more polished, and has GraphQL support. ** Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » As a Headless CMS » Compared to alternative open source headless CMS software","id":"239","title":"Compared to alternative open source headless CMS software"},"24":{"body":"","breadcrumbs":"What is Atomic Data? » What is Atomic Data?","id":"24","title":"What is Atomic Data?"},"240":{"body":"Atomic Data has been designed with front-end development in mind. The open source Atomic-Data-Browser , which is feature-packed with chatrooms, a real-time collaborative rich text editor, tables and more, is powered by two libraries: @tomic/lib ( docs ) is the core library, containing logic for fetching and storing data, keeping things in sync using websockets, and signing commits . @tomic/react ( docs ) is the react library, featuring various useful hooks that mimic useState, giving you real-time updates through your app. Check out the template on CodeSandbox : Feeling stuck? Post an issue or join the discord . Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » In a React project » Using Atomic Data in a JS / TS React project","id":"240","title":"Using Atomic Data in a JS / TS React project"},"241":{"body":"A Personal Data Store (or personal data service) is a place where you store all sorts of personal information. For example a list of contacts, todo items, pictures, or your profile data. Not that long ago, the default for this was the my Documents folder on your hard drive. But as web applications became better, we started moving our data to the cloud. More and more of our personal information is stored by large corporations who use the information to build profiles to show us ads. And as cloud consumers, we often don't have the luxury of moving our personal data to a place to where we want it to be. Many services don't even provide export functionality, and even if they do, the exports often lack information or are not interoperable with other apps. Atomic Data could help to re-introduce data ownership. Because the specification helps to standardize information, it becomes easier to make data interoperable. And even more important: Apps don't need their own back-end - they can use the same personal data store: an Atomic Server (such as this one ). Realizing this goal requires quite a bit of work, though. This specification needs to mature, and we need reliable implementations. We also need proper tutorials, libraries and tools that convince developers to use atomic data to power their applications. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Personal Data Store » Atomic Data for personal data stores","id":"241","title":"Atomic Data for personal data stores"},"242":{"body":"Recent developments in machine learning (and specifically deep neural networks) have shown how powerful and versatile AI can be. Both Atomic Data and AI can be used to store and query knowledge, but we think of these technologies as complementary due to their unique characteristics: Artificial Intelligence can make sense of (unstructured) data, so you can feed it any type of data. However, AIs often produce unpredictable and sometimes incorrect results. Atomic Data helps to make data interoperable, reliable and predictable. However, it requires very strict inputs. There are two ways in which Atomic Data and AI can help each other: AI can help to make creating Atomic Data easier. Atomic Data can help train AIs. Atomic Data can provide AIs with reliable, machine readable data for answering questions.","breadcrumbs":"Potential use cases » Artificial Intelligence » Atomic Data & Artificial Intelligence","id":"242","title":"Atomic Data & Artificial Intelligence"},"243":{"body":"While writing text, an AI might help make suggestions to disambiguate whatever it is you're writing about. For example, you may mention John and your knowledge graph editor (like atomic-server) could suggest John Wayne or John Cena. When making your selection, a link will be created which helps to make your knowledge graph more easily browsable. AI could help make these suggestions through context-aware entity recognition .","breadcrumbs":"Potential use cases » Artificial Intelligence » Make it easier to create Atomic Data using AI","id":"243","title":"Make it easier to create Atomic Data using AI"},"244":{"body":"During training, you could feed Atomic Data to your AI to help it construct a reliable, consistent model of the knowledge relevant to your organization or domain. You could use atomic-server as the knowledge store, and iterate over your resources and let your AI parse them.","breadcrumbs":"Potential use cases » Artificial Intelligence » Train AIs with Atomic Data","id":"244","title":"Train AIs with Atomic Data"},"245":{"body":"Instead of training your AI, you might provide your AI with an interface to perform queries. Note that at this moment, I'm not aware of any AIs that can actually construct and execute queries, but because of recent advancements (e.g. ChatGPT), we know that there now exist AIs that can create SQL queries based on human text. In the future, you might let your AI query your atomic-server to find reliable and up-to-date answers to your questions. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Artificial Intelligence » Provide AI with query access to answer questions","id":"245","title":"Provide AI with query access to answer questions"},"246":{"body":"Buying good and services on the internet is currently responsible for about 15% of all commerce, and is steadily climbing. The internet makes it easier to find products, compare prices, get information and reviews, and finally order something. But the current e-commerce situation is far from perfect, as large corporations tend to monopolize, which means that we have less competition which ultimately harms prices and quality for consumers. Atomic Data can help empower smaller businesses, make searching for specific things way easier and ultimately make things cheaper for everyone.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Atomic Data for e-commerce & marketplaces","id":"246","title":"Atomic Data for e-commerce & marketplaces"},"247":{"body":"Platforms like Uber, AirBNB and SnapCar are virtual marketplaces that help people share and find services. These platforms are responsible for: providing an interface for managing offers (e.g. describe your car, add specifications and pricing) hosting the data of the offers themselves (make the data available on the internet) providing a search interface (which means indexing the data from all the existing offers) facilitating the transaction / payments provide trust through reviews and warranties (e.g. refunds if the seller fails to deliver) The fact that these responsibilities are almost always combined in a single platforms leads to vendor lock-in and an uncompetitive landscape, which ultimately harms consumers. Currently, if you want to manage your listing / offer on various platforms, you need to manually adjust it on all these various platforms. Some companies even prohibit offering on multiple platforms (which is a legal problem, not a technical one). This means that the biggest (most known) platforms have the most listings, so if you're looking for a house / car / rental / meal, you're likely to go for the biggest business - because that's the one that has the biggest assortment. Compare this to how the web works: every browser should support every type of webpage, and it does not matter where the webpage is hosted. I can browse a webpage written on a mac on my windows machine, and I can read a webpage hosted by amazon on an google device. It does not matter, because the web is standardized and open , instead of being centralized and managed by one single company as proprietary data. This openness of the web means that we get search engines like Google and Bing that scrape the web and add it to their index. This results in a dynamic where those who want to sell their stuff will need to share their stuff using an open standard (for webpages things like HTML and sometimes a bit of metadata), so crawlers can properly index the webpages. We could do the same thing for structured data instead of pages , and that's what Atomic Data is all about. Let's discuss a more practical example of what this could mean. Consider a restaurant owner who currently uses UberEats as their delivery platform. Using Atomic Data, they could define their menu on their own website. The Atomic Schema specification makes it easy to standardize how the data of a menu item looks like (e.g. price, image, title, allergens, vegan...). Several platforms (potentially modern variants of platforms like JustEat / UberEats) could then crawl this standardized Atomic Data, index it, and make it easily searchable. The customer would use one (or multiple) of these platforms, that would probably have the exact same offers. Where these platforms might differ, is in their own service offering, such as delivery speed or price. This would result in a more competitive and free market, where customers would be able to pick a platform based on their service price and quality, instead of their list of offerings. It would empower the small business owner to be far more flexible in which service they will do business with.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Decentralize platform / sharing economy service marketplaces","id":"247","title":"Decentralize platform / sharing economy service marketplaces"},"248":{"body":"Searching for products on the internet is mostly limited to text search. If we want to buy a jacket, we see tonnes of jackets that are not even available in our own size. Every single website has their own way of searching and filtering. Imagine making a search query in one application, and sending that to multiple suppliers , after you'll receive a fully personalized and optimized list of products. Browsing in an application that you like to use, not bound to any one specific store, that doesn't track you, and doesn't show advertisements. It is a tool that helps you to find what you need, and it is the job of producers to accurately describe their products in a format that your product browser can understand. How do we get there? Well, for starters, producers and suppliers will need to reach a consensus on how to describe their articles . This is not new; for many products, we already have a common language. Shoes have a shoe size, televisions have a screen size in diagonal inches, brightness is measured in nits, etc. Describing this in a machine-readable and predictable format as data is the next logical step. This is, of course, where Atomic Schema could help. Atomic-server could be the connected, open source database that suppliers use to describe their products as data. Then we'll also need to build a search interface that performs federated queries, and product-dependent filter options.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Highly personalized and customizable search","id":"248","title":"Highly personalized and customizable search"},"249":{"body":"Imagine buying a product, and being able to see where each part came from. The car that you buy might contain a list of all the maintenance moments, and every replaced part. The raw materials used could be traced back to their origins. This requires a high degree of coordination from each step in the supply chain. This is exactly where Atomic Data shines, though, as it provides a highly standardized way of structuring, querying, authenticating an authorizing data. Before we get to this point, we'll need to: Describe domain-specific product Classes using Atomic Schema, and their Properties.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Product lifecycle & supply chain insights","id":"249","title":"Product lifecycle & supply chain insights"},"25":{"body":"Atomic Data is a modular specification for sharing information on the web. Since Atomic Data is a modular specification, you can mostly take what you want to use, and ignore the rest. The Core part, however, is the only required part of the specification, as all others depend on it. Atomic Data Core can be used to express any type of information, including personal data, vocabularies, metadata, documents, files and more. It's designed to be easily serializable to both JSON and linked data formats. It is a typed data model, which means that every value must be validated by their datatype.","breadcrumbs":"What is Atomic Data? » Atomic Data Core","id":"25","title":"Atomic Data Core"},"250":{"body":"Imagine buying an external battery pack with a production error. All units with a serial number between 1561168 and 1561468 have a serious error, where overcharging could lead to spontaneous combustion. This is something that you'd like to know. But how would the manufacturer of that resource know where to find you? Well, if your Atomic Server would have a list of all the things that you've bought, it could automatically subscribe to safety updates from all manufacturers. When any of these manufacturers would publish a safety warning about a product that you possess, you'll get an alert. Before we have this, well need to: Build notifications support (see issue ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Product specific updates after purchase","id":"250","title":"Product specific updates after purchase"},"251":{"body":"Surveys and Questionnaires haven't been evolving that much over the past few years. However, Atomic Data has a couple of unique characteristics that would make it especially suitable for surveys. It could help make surveys easier to fill in , easier to analyze , easier to create , and more privacy friendly . Re-useable survey responses which enable pre-filled form fields which can save the respondent a lot of time. They also make it possible for users to use their own responses to gather insights , for example into their own health. Question standardization which helps researchers to re-use (validated) questions, which saves time for the researcher Privacy friendly, yet highly personalized invites as a researcher, send profile descriptions to servers, and let the servers tell if the question is relevant.","breadcrumbs":"Potential use cases » Surveys » Atomic Data for Surveys","id":"251","title":"Atomic Data for Surveys"},"252":{"body":"Since many surveys describe personal information, it makes sense, as a respondent, to have a way of storing the information you filled in in a place that you control. Making this possible enables a few nice use cases. Auto-fill forms . Previously entered response data could be usable while filling in new surveys. This could result in a UX similar to auto-filling forms, but far more powerful and rich than browsers currently support. Analyze your own personal data . Standardized survey responses could also be used to gather insights into your own personal information. For example, filling in a survey about how your shortness of breath linked to air pollution has been today could be used in a different app to make a graph that visualizes how your shortness of breath has progressed over the months for personal insight. Achieving something like this requires a high degree of standardization in both the surveys and the responses. The survey and its questions should provide information about: The question . This is required in all survey questions, of course. The required datatype of the response, such as 'string', or 'datetime' or some 'enumeration'. A (link to a) semantic definition of the property being described. This is a bit more obscure: all pieces of linked data use links, instead of keys, to describe the relation between some resource and its property. For example, a normal resource might have a 'birthdate', while in linked data, we'd use ' https://schema.org/birthDate '. This semantic definition makes things easier to share, because it prevents misinterpretation. Links remove ambiguity. A query description . This is even more obscure, but perhaps the most interesting. A query description means describing how a piece of information can be retrieved. Perhaps a question in a survey will want to know what your payment pointer is. If a piece of software wants to auto-fill this field, it needs to know where it can find your payment pointer.","breadcrumbs":"Potential use cases » Surveys » Re-useable survey responses","id":"252","title":"Re-useable survey responses"},"253":{"body":"We can think of Questions as Resources that have a URL, and can be shared. Sharing questions like that can make it easier to use the same questions across surveys, which in turn can make it easier to interpret data. Some fields (e.g. medical) have highly standardized questions, which have been validated by studies. These Question resources should contain information about: The question itself and its translations The datatype of the response (e.g. date, string, enum), denoted by the Property of the response. The path of the data , relative to the user. For example, a user's birthdate can be found by going to / profile birthdate Atomic Schema and Atomic Paths can be of value here.","breadcrumbs":"Potential use cases » Surveys » Question Standardization","id":"253","title":"Question Standardization"},"254":{"body":"Currently, a researcher needs to either build their own panel, or use a service that has a lot of respondents. Sometimes, researchers will need a very specific target audience, like a specific age group, nationality, gender, or owners of specific types of devices. Targeting these individuals is generally done by having a large database of personal information from many individuals. But there is another way of doing this: client-side filtering Instead of asking for the users data, and storing it centralized, we could send queries to decentralized personal data stores. There queries basically contain the targeting information and an invitation. The query is executed on the personal data store, and if the user characteristics align with the desired participants profile, the user receives an invite. The user only sees invitations that are highly relevant, without sharing any information with the researcher. The Atomic Data specification solves at least part of this problem. Paths are used to describe the queries that researchers make. AtomicServer can be used as the personal online data store. However, we still need to specify the process of sending a request to an individual (probably by introducing an inbox ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Surveys » Privacy friendly invites with client-side filtering","id":"254","title":"Privacy friendly invites with client-side filtering"},"255":{"body":"","breadcrumbs":"Potential use cases » Verifiable Credentials » Atomic Data and Verifiable Credentials / SSI","id":"255","title":"Atomic Data and Verifiable Credentials / SSI"},"256":{"body":"Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. For example, you could have a credential that proves your degree, signed by your education. These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it.","breadcrumbs":"Potential use cases » Verifiable Credentials » What are Verifiable Credentials / Self-Sovereign Identity","id":"256","title":"What are Verifiable Credentials / Self-Sovereign Identity"},"257":{"body":"Firstly, Atomic Commit are already verifiable using signatures that contain all the needed information. Secondly, Atomic Schema can be used for standardizing Credential Schemas.","breadcrumbs":"Potential use cases » Verifiable Credentials » What makes Atomic Data suitable for this","id":"257","title":"What makes Atomic Data suitable for this"},"258":{"body":"Every time an Agent updates a Resource, an Atomic Commit is made. This Commit is cryptographically signed by an Agent, just like how Verfifiable Credentials are signed. In essence, this means that all atomic data created through commits is fully verifiable . How could this verification work? Find the Commit that has created / edited the value that you want to verify. This can be made easier with a specialized Endpoint that takes a resource, property and signer and returns the associated Commit(s). Check the signer of the Commit . Is that an Agent that you trust? Verify the signature of the Commit using the public key of the Agent. Sometimes, credentials need to be revoked. How could revocation work? Find the Commit (see above) Get the signer (see above) Find the /isRevoked Endpoint of that signer , send a Request there to make sure the linked Commit is still valid and not revoked. ( Discussion )","breadcrumbs":"Potential use cases » Verifiable Credentials » Every Atomic Commit is a Verifiable Credential","id":"258","title":"Every Atomic Commit is a Verifiable Credential"},"259":{"body":"If you are a Verifier who wants to check someone's birthdate , you'll probably expect a certain datatype in return, such as a date that is formatted in some specific way. Atomic Schema makes it possible to express which properties are required in a certain Class , and it also makes it possible to describe which datatype is linked to a specific Property . Combined, they allow for fine-grained descriptions of models / classes / schemas. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Verifiable Credentials » Use Atomic Schema for standardizing Credentials","id":"259","title":"Use Atomic Schema for standardizing Credentials"},"26":{"body":"Browsable : Data should explicitly link to other pieces of data, and these links should be followable. Semantic : Every data Atom and relation has a clear semantic meaning. Interoperable : Plays nice with other data formats (e.g. JSON, XML, and all RDF formats). Open : Free to use, open source, no strings attached. Clear Ownership : The data shows who (or which domain) is in control of the data, so new versions of the data can easily be retrieved. Mergeable : Any two sets of Atoms can be merged into a single graph without any merge conflicts / name collisions. Extensible : Anyone can define their own data types and create Atoms with it. ORM-friendly : Navigate a decentralized graph by using dot.syntax, similar to how you navigate a JSON object in javascript. Type-safe : All valid Atomic data has an unambiguous, static datatype.","breadcrumbs":"What is Atomic Data? » Design goals","id":"26","title":"Design goals"},"260":{"body":"A data catalog is a system that collects metadata - data about data. They are inventories of datasets. They are often used to: Increase data-reuse of (open) datasets . By making descriptions of datasets, you increase their discoverability. Manage data quality . The more datasets you have, the more you'll want to make sure they are usable. This could mean settings serialization requirements or schema compliance. Manage compliance with privacy laws . If you have datasets that contain GDPR-relevant data (personal data), you're legally required to maintain a list of where that data is stored, what you need it for and what you're doing with it.","breadcrumbs":"Potential use cases » Data Catalog » Using Atomic-Server as a Data Catalog","id":"260","title":"Using Atomic-Server as a Data Catalog"},"261":{"body":"Atomic-Server is a powerful Database that can be used as a modern, powerful data catalog. It has a few advantages over others: Free & open source . MIT licensed! Many built-in features, like full-text search , history , live synchronization and rights management . Great performance . Requests take nanoseconds to milliseconds. Very easy to setup . One single binary, no weird runtime dependencies. Everything is linked data. Not just datasets (which you might), but also everything around them (users, comments, implementations). Powerful CMS capabilities . With built in support for Tables and Documents, you can easily create webpages with articles or other types of resources using Atomic Server. Atomic Schema can be used to describe the shape of your datasets : the properties you use, which fields are required - things like that. Because Atomic Schema uses URLs, we can easily re-use properties and class definitions. This helps to make your datasets highly interoperable.","breadcrumbs":"Potential use cases » Data Catalog » Why Atomic Server could be great for Data Catalogs","id":"261","title":"Why Atomic Server could be great for Data Catalogs"},"262":{"body":"Most datacatalogs only have metadata. However, if you convert your existing CSV / JSON / XML / ... datasets to Atomic Data , you can host them on Atomic-Server as well. This has a few advantages: Data previews in the browser, users can navigate through the data without leaving the catalog. Data itself becomes browseable , too, which means you can traverse a graph by clicking on link values. Standardized Querying means you can easily, from the data catalog, can filter and sort the data. Cross-dataset search . Search queries can be performed over multiple Atomic Data servers at once, enabling searching over multiple datasets. This is also called federated search .","breadcrumbs":"Potential use cases » Data Catalog » When Atomic-Server is used for hosting the data, too","id":"262","title":"When Atomic-Server is used for hosting the data, too"},"263":{"body":"Atomic-Server is MIT licensed - which is more permissive than CKAN's AGPL license. Whereas CKAN needs an external database, a python runtime, solrd and a HTTPS server, Atomic-Server has all of these built-in! CKAN uses plain RDF, which has some very important drawbacks . But... Atomic-Server still misses a few essentials right now:","breadcrumbs":"Potential use cases » Data Catalog » Atomic Server compared to CKAN","id":"263","title":"Atomic Server compared to CKAN"},"264":{"body":"Add a model for datasets. This is absolutely essential. It could be based on (and link to) DCAT, but needs to be described using Atomic Schema. This step means we can generate forms for Datasets and we can validate their fields. Add views for datasets. Atomic-Server already renders decent views for unknown resources, but a specific view should be created for Datasets. Add a PR if you have a React view! Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Data Catalog » What we should add to Atomic-Server before it's a decent Data Catalog","id":"264","title":"What we should add to Atomic-Server before it's a decent Data Catalog"},"265":{"body":"The Atomic Data specification can help make online educational content more modular . This has two direct benefits: Separate learning goals from how they are achieved . Some might prefer watching a video, others may want to read. Both can describe the same topic, and share the same test. Improve discoverability . Create links between topics so students know which knowledge is needed to advance to the next topic.","breadcrumbs":"Potential use cases » Education » Atomic Data for Education - standardized, modular e-learning","id":"265","title":"Atomic Data for Education - standardized, modular e-learning"},"266":{"body":"We can think of Knowledge as being building blocks that we need to do certain things. And we can think of Lessons as teaching certain pieces of knowledge, while at the same time requiring other pieces of knowledge. For example, an algebra class might require that you already know how to multiply, add, etc. We can think of Test as verifying if a piece of knowledge is properly understood. Now there's also a relationship between the Student and all of these things. A student is following a bunch Lessons in which they've made some progress, has done some Tests which resulted in Scores. Describing our educational content in this fashion has a bunch of advantages. For students, this means they can know in advance if they can get started with a course, or if they need to learn something else first. Conversely, they can also discover new topics that depend on their previous piece of knowledge. For teachers, this means they can re-use existing lessons for the courses.","breadcrumbs":"Potential use cases » Education » Modular educational content - a model","id":"266","title":"Modular educational content - a model"},"267":{"body":"Powerful built-in document editor Drag & drop file support Versioning Open source, so no vendor lock-in, and full customizability Real-time updates, great for collaboration Online by default, so no extra hassle with putting courses on the internet However, there is still a lot to do! Turn the model described above into an actual Atomic Schema data model Build the GUI for the application Add plugins / extenders for things like doing tests (without giving the answer to students!) Create educational content Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Education » What makes Atomic-Server a great tool for creating online courseware","id":"267","title":"What makes Atomic-Server a great tool for creating online courseware"},"268":{"body":"In most countries, food producers are required to provide nutritional information on the packages of products, which helps citizens to make informed decisions about what to eat. But how about we upgrade these labels to machine-readable, atomic data? We could describe products using Atomic Data, and put their identifiers (Subject URLs) as QR codes on packages. Imagine these scenarios:","breadcrumbs":"Potential use cases » Food labels » Atomic Data for food label standardization","id":"268","title":"Atomic Data for food label standardization"},"269":{"body":"You want to know more about some new cereal you've just bought. You scan the QR code on the package. A web app opens that shows detailed, yet highly visual information about its nutritional value. The screen is no longer limited to what realistically fits on a package. The elements are interactive, and provide explanations. Everything is translated to the user's language. If the food is (soon to be) expired, the app will clearly and visually alert you. Click on the question mark next to granulated sugars, and you get an explanation of what this means to your health. E-numbers are clickable, too, and help you instantly understand far more about what they represent. When AR glasses become technologically feasible, you could even help people make better decisions while doing grocery shopping. Using links instead of names helps to guide consumers to trustworthy pages that communicate clearly. The alternative is that they use search engines, and maybe end up reading misinformation.","breadcrumbs":"Potential use cases » Food labels » Scan labels to get detailed, reliable, interactive information","id":"269","title":"Scan labels to get detailed, reliable, interactive information"},"27":{"body":"","breadcrumbs":"What is Atomic Data? » Concepts","id":"27","title":"Concepts"},"270":{"body":"You order a bunch of products on your favorite groceries delivery app. When going to the payment screen, you are shown a nutritional overview of your order. You see that with this diet, you might have a deficit of the Lysene amino acid. The shopping cart suggest adding egg, dairy or soy to your diet. This can be done, because the groceries app can easily check detailed information about the food in your shopping cart, and reason about your dietary intake.","breadcrumbs":"Potential use cases » Food labels » Provide nutritional advice based on shopping behavior","id":"270","title":"Provide nutritional advice based on shopping behavior"},"271":{"body":"The governing body (e.g. the European Commision) should set up an Atomic Server and host it on some recognizable domain. Create the Class for a food product, containing the same (or more) information that is shown on food packages. Create the Class for Ingredient. Create instances for various Ingredients. Start with the E-numbers, work your way up to all kinds of used ingredients. Add Translations. Give instructions to Producers on how to describe their Products. Give them to option to host their own Server and control their own data, and give them the option to use some EU server. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Food labels » How to achieve all this","id":"271","title":"How to achieve all this"},"272":{"body":"Although Atomic Data is a specification, it also has reference implementations: Open source (MIT licenced) software for Atomic Data: Server + Database : atomic-server GUI : atomic-data-browser CLI : atomic-cli Libraries (MIT licenced) to build apps with: Typescript / javascript library: @tomic/lib (npm) React library: @tomic/react (npm) Rust library: atomic-lib (crates.io)","breadcrumbs":"Software and libraries » Software and libraries for Atomic Data","id":"272","title":"Software and libraries for Atomic Data"},"273":{"body":"","breadcrumbs":"Software and libraries » Applications","id":"273","title":"Applications"},"274":{"body":"Server for hosting Atomic Data. Uses atomic-lib. Responds to requests for created Atomic Resources, makes atomic data available at their URL. Embedded database Authorization, authentication, versioning, collections, pagination Browser-friendly HTML presentation, JSON serialization, RDF serialization. One liner: $ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server demo repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-server","id":"274","title":"atomic-server"},"275":{"body":"Data browser, powered by @tomic/lib and @tomic/react. View & edit atomic data, using dynamic forms Collections with pagination and sorting Client-side full-text search demo (same as atomic-server) repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-data-browser","id":"275","title":"atomic-data-browser"},"276":{"body":"A tool for generating / querying Atomic Data from the command line. Install with cargo install atomic-cli. atomic 0.20.0\nJoep Meindertsma \nCreate, share, fetch and model linked atomic data! USAGE: atomic-cli [SUBCOMMAND] FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: destroy Permanently removes a Resource. Uses Commits. edit Edit a single Atom from a Resource using your text editor. Uses Commits. get Traverses a Path and prints the resulting Resource or Value. help Prints this message or the help of the given subcommand(s) list List all bookmarks new Create a Resource remove Remove a single Atom from a Resource. Uses Commits. set Update an Atom's value. Uses Commits. tpf Finds Atoms using Triple Pattern Fragments. Visit https://github.com/atomicdata-dev/atomic-data-browser for more info repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-cli","id":"276","title":"atomic-cli"},"277":{"body":"Install here .","breadcrumbs":"Software and libraries » Raycast extension: Full-text search from your desktop","id":"277","title":"Raycast extension: Full-text search from your desktop"},"278":{"body":"","breadcrumbs":"Software and libraries » Libraries","id":"278","title":"Libraries"},"279":{"body":"Javascript / typescript libraries, especially useful for creating front-end apps. Fork the atomic-data-react-template on codesandbox to get started directly!","breadcrumbs":"Software and libraries » @tomic/lib and @tomic/react","id":"279","title":"@tomic/lib and @tomic/react"},"28":{"body":"A Resource is a bunch of information about a thing, referenced by a single link (the Subject ). Formally, it is a set of Atoms (i.e. a Graph) that share a Subject URL. You can think of a Resource as a single row in a spreadsheet or database. In practice, Resources can be anything - a Person, a Blogpost, a Todo item. A Resource consists of at least one Atom, so it always has some Property and some Value. A Property can only occur once in every Resource.","breadcrumbs":"What is Atomic Data? » Resource","id":"28","title":"Resource"},"280":{"body":"Library that powers atomic-server and atomic-cli. Features: An in-memory store Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples) Commit validation and processing Constructing Collections Path traversal Basic validation repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-lib (Rust)","id":"280","title":"atomic-lib (Rust)"},"281":{"body":"This document contains a set of ideas that would help achieve that success. Open a PR and edit this file to add your project!","breadcrumbs":"Software and libraries » Want to add to this list? Some ideas for tooling","id":"281","title":"Want to add to this list? Some ideas for tooling"},"282":{"body":"A mobile app for granting permissions to your data and signing things. See github issue . Show a notification when you try to log in somewhere with your agent Notifications for mentions and other social items Check uptime of your server","breadcrumbs":"Software and libraries » Atomic Companion","id":"282","title":"Atomic Companion"},"283":{"body":"Import data from some data source (CSV / SQL / JSON / RDF), fill in the gaps (mapping / IRI creation / datatypes) an create new Atoms Perhaps a CLI, library, GUI or a combination of all of these","breadcrumbs":"Software and libraries » Atomizer (data importer and conversion kit)","id":"283","title":"Atomizer (data importer and conversion kit)"},"284":{"body":"A simple (JS) widget that can be embedded anywhere, which converts an Atomic Graph into an HTML view. Would be useful for documentation, and as a default view for Atomic Data. Use @tomic/react and @tomic/lib to get started","breadcrumbs":"Software and libraries » Atomic Preview","id":"284","title":"Atomic Preview"},"285":{"body":"Library + front-end app for browsing / manipulating Atomic Data on mobile devices. Found a bug? Edit this page on GitHub.","breadcrumbs":"Software and libraries » Atomic-Dart + Flutter","id":"285","title":"Atomic-Dart + Flutter"},"286":{"body":"","breadcrumbs":"Acknowledgements » Acknowledgements","id":"286","title":"Acknowledgements"},"287":{"body":"Joep Meindertsma ( joepio from Ontola.io )","breadcrumbs":"Acknowledgements » Authors:","id":"287","title":"Authors:"},"288":{"body":"Thom van Kalkeren (my colleague, friend and programming mentor who came up with many great ideas on how to work with RDF, such as HexTuples and linked-delta ) Tim Berners-Lee (for everything he did for linked data and the web) Ruben Verborgh (for doing great work with RDF, such as the TPF spec) Pat McBennett (for lots of valuable feedback on initial Atomic Data docs) Manu Sporny (for his work on JSON-LD, which was an important inspiration for JSON-AD) Jonas Smedegaard (for the various interesting talks we had and the feedback he provided) Arthur Dingemans (for sharing his thoughts, providing feedback and his valuable suggestions) Anja Koopman (for all her support, even when this project ate away days and nights of our time together) Alex Mikhalev (for sharing many inspiring project and ideas) Daniel Lutrha (for inspiring me to be more ambitious and for providing lots of technical ideas) All the other people who contributed to linked data related standards Found a bug? Edit this page on GitHub.","breadcrumbs":"Acknowledgements » Special thanks to:","id":"288","title":"Special thanks to:"},"289":{"body":"We'll send you an update (max once per month) when there's something relevant to share, such as Major changes to the specification Major new releases (with new features) Use-cases, implementations Tutorials, blog posts Organizational / funding news Click here to sign up to the Atomic Data Newsletter Found a bug? Edit this page on GitHub.","breadcrumbs":"Newsletter » Subscribe to the Atomic Data newsletter","id":"289","title":"Subscribe to the Atomic Data newsletter"},"29":{"body":"Every Resource is composed of Atoms . The Atom is the smallest possible piece of meaningful data / information (hence the name). You can think of an Atom as a single cell in a spreadsheet or database. An Atom consists of three fields: Subject : the thing that the atom is providing information about. This is typically also the URL where we can find more information about it. Property : the property of the thing that the atom is about (will always be a URL to a Property ). Value : the new piece of information about the Atom. If you're familiar with RDF, you'll notice similarities. An Atom is comparable with an RDF Triple / Statement ( although there are important differences ). Let's turn this sentence into Atoms: Arnold Peters, who's born on the 20th of Januari 1991, has a best friend named Britta Smalls. Subject Property Value Arnold last name Peters Arnold birthdate 1991-01-20 Arnold best friend Britta Britta last name Smalls The table above shows human readable strings, but in Atomic Data, we use links (URLs) wherever we can. That's because links are awesome. Links remove ambiguity (we know exactly which person or property we mean), they are resolvable (we can click on them), and they are machine readable (machines can fetch links to do useful things with them). So the table from above, will more closely resemble this one: Subject Property Value https://example.com/arnold https://example.com/properties/lastname Peters https://example.com/arnold https://example.com/properties/birthDate 1991-01-20 https://example.com/arnold https://example.com/properties/bestFriend https://example.com/britta https://example.com/britta https://example.com/properties/lastname Smalls The standard serialization format for Atomic Data is JSON-AD, which looks like this: [{ \"@id\": \"https://example.com/arnold\", \"https://example.com/properties/lastname\": \"Peters\", \"https://example.com/properties/birthDate\": \"1991-01-20\", \"https://example.com/properties/bestFriend\": \"https://example.com/britta\",\n},{ \"@id\": \"https://example.com/britta\", \"https://example.com/properties/lastname\": \"Smalls\",\n}] The @id field denotes the Subject of each Resource, which is also the URL that should point to where the resource can be found. In the JSON-AD example above, we have: two Resources , describing two different Subjects : https://example.com/arnold and https://example.com/britta. three different Properties (https://example.com/properties/lastname, https://example.com/properties/birthDate, and https://example.com/properties/bestFriend) four Values (Peters, 1991-01-20, https://example.com/britta and Smalls) four Atoms - every row is one Atom. All Subjects and Properties are Atomic URLs: they are links that point to more Atomic Data. One of the Values is a URL, too, but we also have values like Arnold and 1991-01-20. Values can have different Datatypes In most other data formats, the datatypes are limited and are visually distinct. JSON, for example, has array, object, string, number and boolean. In Atomic Data, however, datatypes are defined somewhere else, and are extendible. To find the Datatype of an Atom, you fetch the Property, and that Property will have a Datatype. For example, the https://example.com/properties/bornAt Property requires an ISO Date string, and the https://example.com/properties/firstName Property requires a regular string. This might seem a little tedious and weird at first, but is has some nice advantages! Their Datatypes are defined in the Properties.","breadcrumbs":"What is Atomic Data? » Atom (or Atomic Triple)","id":"29","title":"Atom (or Atomic Triple)"},"290":{"body":"Atomic Data is an open specification, and that means that you're very welcome to share your thoughts and help make this standard as good as possible. Things you can do: Join the Discord server for voice / text chat Start playing with / contributing to the implementations Drop an issue on Github to share your suggestions or criticism of this book / spec Subscribe to the newsletter Join our W3C Community Group Found a bug? Edit this page on GitHub.","breadcrumbs":"Get involved » Get involved","id":"290","title":"Get involved"},"3":{"body":"Make sure to join our Discord if you'd like to discuss Atomic Data with others.","breadcrumbs":"Atomic Data Overview » Get involved","id":"3","title":"Get involved"},"30":{"body":"The Subject field is the first part of an Atom. It is the identifier that the rest of the Atom is providing information about. The Subject field is a URL that points to the Resource. The creator of the Subject MUST make sure that it resolves. In other words: following / downloading the Subject link will provide you with all the Atoms about the Subject (see Querying Atomic Data . This also means that the creator of a Resource must make sure that it is available at its URL - probably by hosting the data, or by using some service that hosts it. In JSON-AD, the Subject is denoted by @id.","breadcrumbs":"What is Atomic Data? » Subject field","id":"30","title":"Subject field"},"31":{"body":"The Property field is the second part of an Atom. It is a URL that points to an Atomic Property . Examples can be found at https://atomicdata.dev/properties. The Property field MUST be a URL, and that URL MUST resolve (it must be publicly available) to an Atomic Property. The Property is perhaps the most important concept in Atomic Data, as it is what enables the type safety (thanks to datatype ) and the JSON compatibility (thanks to shortname ). We also use Properties for rendering fields in a form, because the Datatype, shortname and description helps us to create an intuitive, easy to understand input for users.","breadcrumbs":"What is Atomic Data? » Property field","id":"31","title":"Property field"},"32":{"body":"The Value field is the third part of an Atom. In RDF, this is called an object. Contrary to the Subject and Property values, the Value can be of any datatype. This includes URLs, strings, integers, dates and more.","breadcrumbs":"What is Atomic Data? » Value field","id":"32","title":"Value field"},"33":{"body":"A Graph is a collection of Atoms. A Graph can describe various subjects, which may or may not be related. Graphs can have several characteristics (Schema Complete, Valid, Closed) In mathematial graph terminology, a graph consists of nodes and edges . The Atomic Data model is a so called directed graph , which means that relationships are by default one-way. In Atomic Data, every node is a Resource, and every edge is a Property.","breadcrumbs":"What is Atomic Data? » Graph","id":"33","title":"Graph"},"34":{"body":"A Nested Resource only exists inside of another resource. It does not have its own subject. In the next chapter, we'll explore how Atomic Data is serialized. Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Nested Resource","id":"34","title":"Nested Resource"},"35":{"body":"Atomic Data is not necessarily bound to a single serialization format. It's fundamentally a data model, and that's an important distinction to make. It can be serialized in different ways, but there is only one required: JSON-AD.","breadcrumbs":"What is Atomic Data? » Serialization » Serialization of Atomic Data","id":"35","title":"Serialization of Atomic Data"},"36":{"body":"JSON-AD (more about that on the next page) is specifically designed to be a simple, complete and performant format for Atomic Data. { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/parent\": \"https://atomicdata.dev/properties\", \"https://atomicdata.dev/properties/shortname\": \"description\"\n} Read more about JSON-AD","breadcrumbs":"What is Atomic Data? » Serialization » JSON-AD","id":"36","title":"JSON-AD"},"37":{"body":"Atomic Data is designed to be serializable to clean, simple JSON , for usage in (client) apps that don't need to know the full URLs of properties. { \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"parent\": \"https://atomicdata.dev/properties\", \"shortname\": \"description\"\n} Read more about JSON and Atomic Data","breadcrumbs":"What is Atomic Data? » Serialization » JSON (simple)","id":"37","title":"JSON (simple)"},"38":{"body":"Since Atomic Data is a strict subset of RDF, RDF serialization formats can be used to communicate and store Atomic Data, such as N-Triples, Turtle, HexTuples, JSON-LD and other RDF serialization formats . However, not all valid RDF is valid Atomic Data. Atomic Data is more strict. Read more about serializing Atomic Data to RDF in the RDF interoperability section . JSON-LD: { \"@context\": { \"datatype\": { \"@id\": \"https://atomicdata.dev/properties/datatype\", \"@type\": \"@id\" }, \"description\": \"https://atomicdata.dev/properties/description\", \"is-a\": { \"@container\": \"@list\", \"@id\": \"https://atomicdata.dev/properties/isA\" }, \"parent\": { \"@id\": \"https://atomicdata.dev/properties/parent\", \"@type\": \"@id\" }, \"shortname\": \"https://atomicdata.dev/properties/shortname\" }, \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"parent\": \"https://atomicdata.dev/properties\", \"shortname\": \"description\"\n} Turtle / N-Triples: .\n .\n \"description\"^^ .\n \"https://atomicdata.dev/classes/Property\"^^ .\n \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\"^^ . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Serialization » RDF serialization formats","id":"38","title":"RDF serialization formats"},"39":{"body":"Although you can use various serialization formats for Atomic Data, JSON-AD is the default and only required serialization format. It is what the current Rust and Typescript / React implementations use to communicate. It is designed to feel familiar to developers and to be easy and performant to parse and serialize. It is inspired by JSON-LD . It uses JSON , but has some additional constraints: Every single Object is a Resource. Every Key is a Property URL. Other keys are invalid. Each Property URL must resolve to an online Atomic Data Property. The @id field is special: it defines the Subject of the Resource. If you send an HTTP GET request there with an content-type: application/ad+json header, you should get the full JSON-AD resource. JSON arrays are mapped to Resource Arrays Numbers can be Integers , Timestamps or Floats . JSON booleans map to Booleans . JSON strings can be many datatypes, including String , Markdown , Date or other. Nested JSON Objects are Nested Resources. A Nested Resource can either be Anonymous (without an @id subject) or a Named Nested Resource (with an @id subject). Everywhere a Subject URL can be used as a value (i.e. all properties with the datatype atomicURL ), a Nested Resource can be used instead. This also means that an item in an ResourceArray can be a Nested Resource. The root data structure must either be a Named Resource (with an @id), or an Array containing Named Resources. When you want to describe multiple Resources in one JSON-AD document, use an array as the root item. Let's look at an example JSON-AD Resource: { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} The mime type (for HTTP content negotiation) is application/ad+json ( registration ongoing ).","breadcrumbs":"What is Atomic Data? » JSON-AD » JSON-AD: The Atomic Data serialization format","id":"39","title":"JSON-AD: The Atomic Data serialization format"},"4":{"body":"Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen.","breadcrumbs":"Atomic Data Overview » Status","id":"4","title":"Status"},"40":{"body":"In JSON-AD, a Resource can be respresented in multiple ways: Subject : A URL string, such as https://atomicdata.dev/classes/Class. Named Resource : A JSON Object with an @id field containing the Subject. Anonymous Nested Resource A JSON Object without an @id field. This is only possible if it is a Nested Resource, which means that it has a parent Resource. Note that this is also valid for ResourceArrays, which usually only contain Subjects, but are allowed to contain Nested Resources. In the following JSON-AD example, the address is a nested resource: { \"@id\": \"https://example.com/arnold\", \"https://example.com/properties/address\": { \"https://example.com/properties/firstLine\": \"Longstreet 22\", \"https://example.com/properties/city\": \"Watertown\", \"https://example.com/properties/country\": \"the Netherlands\", }\n} Nested Resources can be named or anonymous . An Anonymous Nested Resource does not have it's own @id field. It does have its own unique path , which can be used as its identifier. The path of the anonymous resource in the example above is https://example.com/arnold https://example.com/properties/address.","breadcrumbs":"What is Atomic Data? » JSON-AD » Nested, Anonymous and Named resources","id":"40","title":"Nested, Anonymous and Named resources"},"41":{"body":"Typescript / Javacript : @tomic/lib JSON-AD parser + in-memory store. Works with @tomic/react for rendering Atomic Data in React. Rust : atomic_lib has a JSON-AD parser / serializer (and does a lot more).","breadcrumbs":"What is Atomic Data? » JSON-AD » JSON-AD Parsers, serializers and other libraries","id":"41","title":"JSON-AD Parsers, serializers and other libraries"},"42":{"body":"When you need deterministic serialization of Atomic Data (e.g. when calculating a cryptographic hash or signature, used in Atomic Commits), you can use the following procedure: Serialize your Resource to JSON-AD Do not include empty objects, empty arrays or null values. All keys are sorted alphabetically (lexicographically) - both in the root object, as in any nested objects. The JSON-AD is minified: no newlines, no spaces. The last two steps of this process is more formally defined by the JSON Canonicalization Scheme (JCS, rfc8785 ).","breadcrumbs":"What is Atomic Data? » JSON-AD » Canonicalized JSON-AD","id":"42","title":"Canonicalized JSON-AD"},"43":{"body":"Read more about this subject . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » JSON-AD » Interoperability with JSON and JSON-LD","id":"43","title":"Interoperability with JSON and JSON-LD"},"44":{"body":"There are multiple ways of getting Atomic Data into some system: Subject Fetching requests a single subject right from its source Atomic Collections can filter, sort and paginate resources Atomic Paths is a simple way to traverse Atomic Graphs and target specific values Triple Pattern Fragments allows querying for specific (combinations of) Subject, Property and Value. SPARQL is a powerful Query language for traversing linked data graphs","breadcrumbs":"What is Atomic Data? » Querying » Querying Atomic Data","id":"44","title":"Querying Atomic Data"},"45":{"body":"The simplest way of getting Atomic Data when the Subject is an HTTP URL, is by sending a GET request to the subject URL. Set the Content-Type header to an Atomic Data compatible mime type, such as application/ad+json. GET https://atomicdata.dev/test HTTP/1.1\nContent-Type: application/ad+json The server SHOULD respond with all the Atoms of which the requested URL is the subject: HTTP/1.1 200 OK\nContent-Type: application/ad+json\nConnection: Closed { \"@id\": \"https://atomicdata.dev/test\", \"https://atomicdata.dev/properties/shortname\": \"1611489928\"\n} The server MAY also include other resources, if they are deemed relevant.","breadcrumbs":"What is Atomic Data? » Querying » Subject fetching (HTTP)","id":"45","title":"Subject fetching (HTTP)"},"46":{"body":"Collections are Resources that provide simple query options, such as filtering by Property or Value, and sorting. They also paginate resources. Under the hood, Collections are powered by Triple Pattern Fragments. Use query parameters to traverse pages, filter, or sort. Read more about Collections","breadcrumbs":"What is Atomic Data? » Querying » Atomic Collections","id":"46","title":"Atomic Collections"},"47":{"body":"An Atomic Path is a string that consist of one or more URLs, which when traversed point to an item. Read more about Atomic Paths","breadcrumbs":"What is Atomic Data? » Querying » Atomic Paths","id":"47","title":"Atomic Paths"},"48":{"body":"SPARQL is a powerful RDF query language. Since all Atomic Data is also valid RDF, it should be possible to query Atomic Data using SPARQL. None of the exsisting implementations support a SPARQL endpoint, though. Convert / serialize Atomic Data to RDF (for example by using an accept header: curl -i -H \"Accept: text/turtle\" \"https://atomicdata.dev\") Load it into a SPARQL engine of your choice Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Querying » SPARQL","id":"48","title":"SPARQL"},"49":{"body":"An Atomic Path is a string that consists of at least one URL, followed by one or more URLs or Shortnames. Every single value in an Atomic Resource can be targeted through such a Path. They can be used as identifiers for specific Values. The simplest path, is the URL of a resource, which represents the entire Resource with all its properties. If you want to target a specific atom, you can use an Atomic Path with a second URL. This second URL can be replaced by a Shortname, if the Resource is an instance of a class which has properties with that Shortname (sounds more complicated than it is).","breadcrumbs":"What is Atomic Data? » Paths » Atomic Paths","id":"49","title":"Atomic Paths"},"5":{"body":"This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. If you encounter any issues while reading, please leave an issue on Github . Use the arrows on the side / bottom to go to the next page.","breadcrumbs":"Atomic Data Overview » Reading these docs","id":"5","title":"Reading these docs"},"50":{"body":"Let's start with this simple Resource: { \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\",\n} Then the following Path targets the McLovin value: https://example.com/john https://example.com/lastName => McLovin Instead of using the full URL of the lastName Property, we can use its shortname : https://example.com/john lastname => McLovin We can also traverse relationships between resources: [{ \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\", \"https://example.com/employer\": \"https://example.com/XCorp\",\n},{ \"@id\": \"https://example.com/XCorp\", \"https://example.com/description\": \"The greatest company!\",\n}] https://example.com/john employer description => The greatest company! In the example above, the XCorp subject exists and is the source of the The greatest company! value. We can use this path as a unique identifier for the description of John's current employer. Note that the data for the description of that employer does not have to be in John's control for this path to work - it can live on a totally different server. However, in Atomic Data it's also possible to include this description in the resource of John as a Nested Resource .","breadcrumbs":"What is Atomic Data? » Paths » Example","id":"50","title":"Example"},"51":{"body":"All Atomic Data Resources that we've discussed so far have an explicit URL as a subject. Unfortunately, creating unique and resolvable URLs can be a bother, and sometimes not necessary. If you've worked with RDF, this is what Blank Nodes are used for. In Atomic Data, we have something similar: Nested Resources . Let's use a Nested Resource in the example from the previous section: { \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\", \"https://example.com/employer\": { \"https://example.com/description\": \"The greatest company!\", }\n} Now the employer is simply a nested Object. Note that it no longer has its own @id. However, we can still identify this Nested Resource using its Path. The Subject of the nested resource is its path: https://example.com/john https://example.com/employer, including the spacebar. Note that the path from before still resolves: https://example.com/john employer description => The greatest company!","breadcrumbs":"What is Atomic Data? » Paths » Nested Resources","id":"51","title":"Nested Resources"},"52":{"body":"We can also navigate Arrays using paths. For example: { \"@id\": \"https://example.com/john\", \"hasShoes\": [ { \"https://example.com/name\": \"Mr. Boot\", }, { \"https://example.com/name\": \"Sunny Sandals\", } ]\n} The Path of Mr. Boot is: https://example.com/john hasShoes 0 name You can target an item in an array by using a number to indicate its position, starting with 0. Notice how the Resource with the name: Mr. Boot does not have an explicit @id, but it does have a Path. This means that we still have a unique, globally resolvable identifier - yay!","breadcrumbs":"What is Atomic Data? » Paths » Traversing Arrays","id":"52","title":"Traversing Arrays"},"53":{"body":"Install the atomic-cli software and run atomic-cli get https://atomicdata.dev/classes/Class description. Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Paths » Try for yourself","id":"53","title":"Try for yourself"},"54":{"body":"Atomic Schema is the proposed standard for specifying classes, properties and datatypes in Atomic Data. You can compare it to UML diagrams, or what XSD is for XML. Atomic Schema deals with validating and constraining the shape of data. It is designed for checking if all the required properties are present, and whether the values conform to the datatype requirements (e.g. datetime, or URL). This section will define various Classes, Properties and Datatypes (discussed in Atomic Core: Concepts ).","breadcrumbs":"What is Atomic Data? » Schema » Atomic Schema","id":"54","title":"Atomic Schema"},"55":{"body":"Decentralized : Classes and Properties can be defined in external systems, and are resolved using web protocols such as HTTP. Typed : Every Atom of data has a clear datatype. Validated data should be highly predictable. IDE-friendly : Although Atomic Schema uses many URLs, users / developers should not have to type full URLs. The schema uses shortnames as aliases. Self-documenting : When seeing a piece of data, simply following links will explain you how the data model is to be understood. This removes the need for (most of) existing API documentation. Extensible : Anybody can create their own Datatypes, Properties and Classes. Accessible : Support for languages, easily translatable. Useful for humans and machines. Atomic : All the design goals of Atomic Data itself also apply here. Atomic Schema is defined using Atomic Data.","breadcrumbs":"What is Atomic Data? » Schema » Design Goals","id":"55","title":"Design Goals"},"56":{"body":"In short, Atomic Schema works like this: The Property field in an Atom, or the key in a JSON-AD object, links to a Property Resource . It is important that the URL to the Property Resource resolves, as others can re-use it and check its datatype. This Property does three things: it links to a Datatype which indicates which Value is acceptable. it has a description which tells you what the property means, what the relationship between the Subject and the Value means. it provides a Shortname , which is sometimes used as an alternative to the full URL of the Property. DataTypes define the shape of the Value, e.g. a Number (124) or Boolean (true). Classes are a special kind of Resource that describe an abstract class of things (such as \"Person\" or \"Blog\"). Classes can recommend or require a set of Properties. They behave as Models, similar to struts in C or interfaces in Typescript. A Resource could have one or more classes, which could provide information about which Properties are expected or required. example: { \"@id\": \"https://atomicdata.dev/classes/Agent\", \"https://atomicdata.dev/properties/description\": \"An Agent is a user that can create or modify data. It has two keys: a private and a public one. The private key should be kept secret. The public key is used to verify signatures (on [Commits](https://atomicdata.dev/classes/Commit)) set by the of the Agent.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Class\" ], \"https://atomicdata.dev/properties/recommends\": [ \"https://atomicdata.dev/properties/name\", \"https://atomicdata.dev/properties/description\" ], \"https://atomicdata.dev/properties/requires\": [ \"https://atomicdata.dev/properties/publicKey\" ], \"https://atomicdata.dev/properties/shortname\": \"agent\"\n} Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » In short","id":"56","title":"In short"},"57":{"body":"The following Classes are some of the most fundamental concepts in Atomic Data, as they make data validation possible. Click the URLs of the classes to read the most actual data, and discover their properties!","breadcrumbs":"What is Atomic Data? » Schema » Classes » Atomic Schema: Classes","id":"57","title":"Atomic Schema: Classes"},"58":{"body":"URL: https://atomicdata.dev/classes/Property The Property class. The thing that the Property field should link to. A Property is an abstract type of Resource that describes the relation between a Subject and a Value. A Property provides some semantic information about the relationship (in its description), it provides a shorthand (the shortname) and it links to a Datatype. Properties of a Property instance: shortname - (required, Slug) the shortname for the property, used in ORM-style dot syntax (thing.property.anotherproperty). description - (optional, AtomicURL, TranslationBox) the semantic meaning of the. datatype - (required, AtomicURL, Datatype) a URL to an Atomic Datatype, which defines what the datatype should be of the Value in an Atom where the Property is the classtype - (optional, AtomicURL, Class) if the datatype is an Atomic URL, the classtype defines which class(es?) is (are?) acceptable. { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} Visit https://atomicdata.dev/properties for a list of example Properties.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Property","id":"58","title":"Property"},"59":{"body":"URL: https://atomicdata.dev/classes/Datatype A Datatype specifies how a Value value should be interpreted. Datatypes are concepts such as boolean, string, integer. Since DataTypes can be linked to, you dan define your own. However, using non-standard datatypes limits how many applications will know what to do with the data. Properties: description - (required, AtomicURL, TranslationBox) how the datatype functions. stringSerialization - (required, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as an UTF-8 string stringExample - (required, string) an example stringSerialization that should be parsed correctly binarySerialization - (optional, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as a byte array. binaryExample - (optional, string) an example binarySerialization that should be parsed correctly. Should have the same contents as the stringExample. Required if binarySerialization is present on the DataType. Visit https://atomicdata.dev/datatypes for a list of example Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Datatype","id":"59","title":"Datatype"},"6":{"body":"Atomic Data Overview Motivation Strategy, history and roadmap When (not) to use it","breadcrumbs":"Atomic Data Overview » Table of contents","id":"6","title":"Table of contents"},"60":{"body":"URL: https://atomicdata.dev/classes/Class A Class is an abstract type of Resource, such as Person. It is convention to use an Uppercase in its URI. Note that in Atomic Data, a Resource can have several Classes - not just a single one. If you need to set more complex constraints to your Classes (e.g. maximum string length, Properties that depend on each other), check out SHACL . Properties: shortname - (required, Slug) a short string shorthand. description - (required, AtomicURL, TranslationBox) human readable explanation of what the Class represents. requires - (optional, ResourceArray, Property) a list of Properties that are required. If absent, none are required. These SHOULD have unique shortnames. recommends - (optional, ResourceArray, Property) a list of Properties that are recommended. These SHOULD have unique shortnames. A resource indicates it is an instance of that class by adding a https://atomicdata.dev/properties/isA Atom. Example: { \"@id\": \"https://atomicdata.dev/classes/Class\", \"https://atomicdata.dev/properties/description\": \"A Class describes an abstract concept, such as 'Person' or 'Blogpost'. It describes the data shape of data and explains what the thing represents. It is convention to use Uppercase in its URL. Note that in Atomic Data, a Resource can have several Classes - not just a single one.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Class\" ], \"https://atomicdata.dev/properties/recommends\": [ \"https://atomicdata.dev/properties/recommends\", \"https://atomicdata.dev/properties/requires\" ], \"https://atomicdata.dev/properties/requires\": [ \"https://atomicdata.dev/properties/shortname\", \"https://atomicdata.dev/properties/description\" ], \"https://atomicdata.dev/properties/shortname\": \"class\"\n} Check out a list of example Classes . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Class","id":"60","title":"Class"},"61":{"body":"The Atomic Datatypes consist of some of the most commonly used Datatypes . Note: Please visit https://atomicdata.dev/datatypes for the latest list of official Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Atomic Schema: Datatypes","id":"61","title":"Atomic Schema: Datatypes"},"62":{"body":"URL: https://atomicdata.dev/datatypes/slug A string with a limited set of allowed characters, used in IDE / Text editor context. Only letters, numbers and dashes are allowed. Regex: ^[a-z0-9]+(?:-[a-z0-9]+)*$","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Slug","id":"62","title":"Slug"},"63":{"body":"URL: https://atomicdata.dev/datatypes/atomicURL A URL that should resolve to an Atomic Resource .","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Atomic URL","id":"63","title":"Atomic URL"},"64":{"body":"URL: https://atomicdata.dev/datatypes/URI A Uniform Resource Identifier, preferably a URL (i.e. an URI that can be fetched). Could be HTTP, HTTPS, or any other type of schema.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » URI","id":"64","title":"URI"},"65":{"body":"URL: https://atomicdata.dev/datatypes/string UTF-8 String, no max character count. Newlines use backslash escaped \\n characters. e.g. String time! \\n Second line!","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » String","id":"65","title":"String"},"66":{"body":"URL: https://https://atomicdata.dev/datatypes/markdown A markdown string, using the CommonMark syntax . UTF-8 formatted, no max character count, newlines are \\n. e.g. # Heading Paragraph with [link](https://example.com).","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Markdown","id":"66","title":"Markdown"},"67":{"body":"URL: https://atomicdata.dev/datatypes/integer Signed Integer, max 64 bit. Max value: 9223372036854775807 e.g. -420","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Integer","id":"67","title":"Integer"},"68":{"body":"URL: https://atomicdata.dev/datatypes/float Number with a comma. Max value: 9223372036854775807 e.g. -420","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Float","id":"68","title":"Float"},"69":{"body":"URL: https://atomicdata.dev/datatypes/boolean True or false, one or zero. String serialization true or false. Binary serialization Use a single bit one boolean. 1 for true, or 0 for false.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Boolean","id":"69","title":"Boolean"},"7":{"body":"What is Atomic Data? Serialization JSON-AD Querying Paths Schema Classes Datatypes FAQ","breadcrumbs":"Atomic Data Overview » Specification (core)","id":"7","title":"Specification (core)"},"70":{"body":"ISO date without time . YYYY-MM-DD. e.g. 1991-01-20","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Date","id":"70","title":"Date"},"71":{"body":"URL: https://atomicdata.dev/datatypes/timestamp Similar to Unix Timestamp . Milliseconds since midnight UTC 1970 Jan 01 (aka the Unix Epoch ). Use this for most DateTime fields. Signed 64 bit integer (instead of 32 bit in Unix systems). e.g. 1596798919 (= 07 Aug 2020 11:15:19)","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Timestamp","id":"71","title":"Timestamp"},"72":{"body":"URL: https://atomicdata.dev/datatypes/resourceArray Sequential, ordered list of Atomic URIs. Serialized as a JSON array with strings. Note that other types of arrays are not included in this spec, but can be perfectly valid. ( Discussion ) e.g. [\"https://example.com/1\", \"https://example.com/1\"] Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » ResourceArray","id":"72","title":"ResourceArray"},"73":{"body":"","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Atomic Schema FAQ","id":"73","title":"Atomic Schema FAQ"},"74":{"body":"A property only has one single Datatype. However, feel free to create a new kind of Datatype that, in turn, refers to other Datatypes. Perhaps Generics, or Option like types should be part of the Atomic Base Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How do I create a Property that supports multiple Datatypes?","id":"74","title":"How do I create a Property that supports multiple Datatypes?"},"75":{"body":"In Atomic Data, enum is not a datatype, but it's a constraint that can be added to properties that have. You can set allows-only on a Property, and use that to limit which values are allowed.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Do you have an enum datatype?","id":"75","title":"Do you have an enum datatype?"},"76":{"body":"Atomic Data guarantees Subject-Property uniqueness, which means that Valid Resources are guaranteed to have only one of each Property. Properties offer Shortnames, which are short strings. These strings should be unique inside Classes, but these are not guaranteed to be unique inside all Resources. Note that Resources can have multiple Classes, and through that, they can have colliding Shortnames. Resources are also free to include Properties from other Classes, and their Shortnames, too, might collide. For example: { \"@id\": \"https://example.com/people/123\", \"https://example.com/name\": \"John\", \"https://another.example.com/someOtherName\": \"Martin\"\n} Let's assume that https://example.com/name and https://another.example.com/someOtherName are Properties that have the Shortname: name. What if a client tries something such as people123.name? To consistently return a single value, we need some type of precedence : The earlier Class mentioned in the isA Property of the resource. Resources can have multiple classes, but they appear in an ordered ResourceArray. Classes, internally should have no key collisions in required and recommended properties, which means that they might have. If these exist internally, sort the properties by how they are ordered in the isA array - first item is preferred. When the Properties are not part of any of the mentioned Classes, use Alphabetical sorting of the Property URL. When shortname collisions are possible, it's recommended to not use the shortname, but use the URL of the Property: people123.\"https://example.com/name\" It is likely that using the URL for keys is also the most performant , since it probably more closely mimics the internal data model.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How should a client deal with Shortname collisions?","id":"76","title":"How should a client deal with Shortname collisions?"},"77":{"body":"Many features in Atomic Data apps depend on the availability of Resources on their subject URL. If that server is offline, or the URL has changed, the existing links will break. This is a fundamental problem to HTTP, and not unique to Atomic Data. Like with websites, hosts should make sure that their server stays available, and that URLs remain static. One possible solution to this problem, is using Content Addressing, such as the IPFS protocol enables, which is why we're planning for using that in the near future. Another approach, is using foreign keys (see issue) .","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Atomic Data uses a lot of links. How do you deal with links that don't work?","id":"77","title":"Atomic Data uses a lot of links. How do you deal with links that don't work?"},"78":{"body":"Atomic Schema is the schema language for Atomic Data, whereas RDF has a couple of competing ones, which all vary greatly. In short, OWL is not designed for schema validation, but SHACL and SheX can maybe be compared to Atomic Schema. An important difference is that SHACL and SheX have to deal with all the complexities of RDF, whereas Atomic Data is more constrained. For more information, see RDF interoperability .","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?","id":"78","title":"How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?"},"79":{"body":"Every time you use an external URL in your data, you kind of create a dependency. This is fundamental to linked data. In Atomic Data, not having access to the Property in some JSON-AD resource will lead to now knowing how to interpret the data itself. You will no longer know what the Datatype was (other than the native JSON datatype, of course), or what the semantic meaning was of the relationship. There are multiple ways we can deal with this: Cache dependencies : Atomic Server already stores a copy of every class and property that it uses by default. The /path endpoint then allows clients to fetch these from servers that have cached it. If the source goes offline, the validations can still be performed by the server. However, it might be a good idea to migrate the data to a hosted ontology, e.g. by cloning the cached ontology. Content-addressing : using non-HTTP identifiers, such as with IPFS . ( Discussion )","breadcrumbs":"What is Atomic Data? » Schema » FAQ » What are the risks of using Schema data hosted somewhere else?","id":"79","title":"What are the risks of using Schema data hosted somewhere else?"},"8":{"body":"Atomic Data Extended Agents Hierarchy and authorization Authentication Invitations and sharing Commits (writing data) Concepts Compared to WebSockets Endpoints Collections, filtering, sorting Uploading and downloading files","breadcrumbs":"Atomic Data Overview » Specification (extended)","id":"8","title":"Specification (extended)"},"80":{"body":"Atomic Data does not have a concept of inheritance. However, you can use the isA property to link to multiple Classes from a single resource. This effectively Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How do I deal with subclasses / inheritance?","id":"80","title":"How do I deal with subclasses / inheritance?"},"81":{"body":"Atomic Data is a modular specification, which means that you can choose to implement parts of it. All parts of Extended are optional to implement. The Core of the specification (described in the previous chapter) is required for all of the Extended spec to work, but not the other way around. However, many of the parts of Extended do depend on eachother . Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions. Agents are Users that enable authentication . They are Resources with their own Public and Private keys, which they use to identify themselves. Collections : querying, filtering, sorting and pagination. Paths : traverse graphs. Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems. Invites : create new users and provide them with rights. WebSockets : real-time updates. Endpoints : provide machine-readable descriptions of web services. Files : upload, download and metadata for files. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Atomic Data Extended","id":"81","title":"Atomic Data Extended"},"82":{"body":"Atomic Agents are used for authentication : to set an identity and prove who an actor actually is. Agents can represent both actual individuals, or machines that interact with data. Agents are the entities that can get write / read rights. Agents are used to sign Requests and Commits and to accept Invites .","breadcrumbs":"Atomic Data Extended » Agents » Atomic Agents","id":"82","title":"Atomic Agents"},"83":{"body":"Decentralized : Atomic Agents can be created by anyone, at any domain Easy : It should be easy to work with, code with, and use Privacy-friendly : Agents should allow for privacy friendly workflows Verifiable : Others should be able to verify who did what Secure : Resistant to attacks by malicious others","breadcrumbs":"Atomic Data Extended » Agents » Design goals","id":"83","title":"Design goals"},"84":{"body":"url: https://atomicdata.dev/classes/Agent An Agent is a Resource with its own URL. When it is created, the one creating the Agent will generate a cryptographic (Ed25519) keypair. It is required to include the publicKey in the Agent resource. The privateKey should be kept secret, and should be safely stored by the creator. For convenience, a secret can be generated, which is a single long string of characters that encodes both the privateKey and the subject of the Agent. This secret can be used to instantly, easily log in using a single string. The publicKey is used to verify commit signatures by that Agent, to check if that Agent actually did create and sign that Commit.","breadcrumbs":"Atomic Data Extended » Agents » The Agent model","id":"84","title":"The Agent model"},"85":{"body":"Since an Agent is used for verification of commits, the Agent's subject should resolve and be publicly available. This means that the one creating the Agent has to deal with this. One way of doing this, is by hosting an Atomic Server . An easier way of doing this, is by accepting an Invite that exists on someone else's server. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Agents » Creating an Agent","id":"85","title":"Creating an Agent"},"86":{"body":"Hierarchies help make information easier to find and understand. For example, most websites use breadcrumbs to show you where you are. Your computer probably has a bunch of drives and deeply nested folders that contain files . We generally use these hierarchical elements to keep data organized, and to keep a tighter grip on rights management. For example, sharing a specific folder with a team, but a different folder could be private. Although you are free to use Atomic Data with your own custom authorization system, we have a standardized model that is currently being used by Atomic-Server.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Hierarchy, rights and authorization","id":"86","title":"Hierarchy, rights and authorization"},"87":{"body":"Fast . Authorization can sometimes be costly, but in this model we'll be considering performance. Simple . Easy to understand, easy to implement. Handles most basic use-cases . Should deal with basic read / write access control, calculating the size of a folder, rendering things in a tree.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Design goals","id":"87","title":"Design goals"},"88":{"body":"Every Resource SHOULD have a parent . There are some exceptions to this, which are discussed below. Any Resource can be a parent of some other Resource, as long as both Resources exists on the same Atomic Server. Grants / rights given in a parent also apply to all children, and their children. There are few Classes that do not require parents:","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Atomic Hierarchy Model","id":"88","title":"Atomic Hierarchy Model"},"89":{"body":"Any Resource might have read and write Atoms. These both contain a list of Agents. These Agents will be granted the rights to edit (using Commits) or read / use the Resources. Rights are additive , which means that the rights add up. If a Resource itself has no write Atom containing your Agent, but it's parent does have one, you will still get the write right. Rights cannot be removed by children or parents - they can only be added. Commits can not be edited. They can be read if the Agent has rights to read the subject of the Commit.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Authorization","id":"89","title":"Authorization"},"9":{"body":"Atomizing Using Atomic-Server Creating a JSON-AD file Upgrade your existing project","breadcrumbs":"Atomic Data Overview » Create Atomic Data","id":"9","title":"Create Atomic Data"},"90":{"body":"Some resources are special, as they do not require a parent: Drive s are top-level items in the hierarchy: they do not have a parent. Agent s are top-level items because they are not owned by anything. They can always read and write themselves. Commit s are immutable, so they should never be edited by anyone. That's why they don't have a place in the hierarchy. Their read rights are determined by their subject.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Top-level resources","id":"90","title":"Top-level resources"},"91":{"body":"Authentication is about proving who you are , which is often the first step for authorization. See authentication .","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Authentication","id":"91","title":"Authentication"},"92":{"body":"The specification is growing (and please contribute in the docs repo ), but the current specification lacks some features: Rights can only be added, but not removed in the hierarchy. This means that you cannot have a secret folder inside a public folder. No model for representing groups of Agents, or other runtime checks for authorization. ( issue ) No way to limit delete access or invite rights separately from write rights ( issue ) No way to request a set of rights for a Resource Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Current limitations of the Authorization model","id":"92","title":"Current limitations of the Authorization model"},"93":{"body":"Authentication means knowing who is doing something, either getting access or creating some new data. When an Agent wants to edit a resource, they have to send a signed Commit , and the signatures are checked in order to authorize a Commit. But how do we deal with reading data, how do we know who is trying to get access? There are two ways users can authenticate themselves: Signing an Authentication Resource and using that as a cookie Opening a WebSocket, and passing an Authentication Resource. Signing every single HTTP request (more secure, less flexible)","breadcrumbs":"Atomic Data Extended » Authentication » Authentication in Atomic Data","id":"93","title":"Authentication in Atomic Data"},"94":{"body":"Secure : Because, what's the point of authentication if it's not? Easy to use : Setting up an identity should not require any effort, and proving identity should be minimal effort. Anonimity allowed : Users should be able to have multiple identities, some of which are fully anonymous. Self-sovereign : No dependency on servers that user's don't control. Or at least, minimise this. Dummy-proof : We need a mechanism for dealing with forgetting passwords / client devices losing data. Compatible with Commits : Atomic Commits require clients to sign things. Ideally, this functionality / strategy would also fit with the new model. Fast : Of course, authentication will always slow things down. But let's keep that to a minimum.","breadcrumbs":"Atomic Data Extended » Authentication » Design goals","id":"94","title":"Design goals"},"95":{"body":"An Authentication Resource is a JSON-AD object containing all the information a Server needs to make sure a valid Agent requests a session at some point in time. These are used both in Cookie-based auth, as well as in WebSockets We use the following fields (be sure to use the full URLs in the resource, see the example below): requestedSubject: The URL of the requested resource. If we're authenticating a WebSocket , we use the wss address as the requestedSubject. (e.g. wss://example.com/ws) If we're authenticating a Cookie of Bearer token , we use the origin of the server (e.g. https://example.com) If we're authentication a single HTTP request , use the same URL as the GET address (e.g. https://example.com/myResource) agent: The URL of the Agent requesting the subject and signing this Authentication Resource. publicKey: base64 serialized ED25519 public key of the agent. signature: base64 serialized ED25519 signature of the following string: {requestedSubject} {timestamp} (without the brackets), signed by the private key of the Agent. timestamp: Unix timestamp of when the Authentication was signed validUntil (optional): Unix timestamp of when the Authentication should be no longer valid. If not provided, the server will default to 30 seconds from the timestamp. Here's what a JSON-AD Authentication Resource looks like for a WebSocket: { \"https://atomicdata.dev/properties/auth/agent\": \"http://example.com/agents/N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=\", \"https://atomicdata.dev/properties/auth/requestedSubject\": \"wss://example.com/ws\", \"https://atomicdata.dev/properties/auth/publicKey\": \"N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=\", \"https://atomicdata.dev/properties/auth/timestamp\": 1661757470002, \"https://atomicdata.dev/properties/auth/signature\": \"19Ce38zFu0E37kXWn8xGEAaeRyeP6EK0S2bt03s36gRrWxLiBbuyxX3LU9qg68pvZTzY3/P3Pgxr6VrOEvYAAQ==\"\n}","breadcrumbs":"Atomic Data Extended » Authentication » Authentication Resources","id":"95","title":"Authentication Resources"},"96":{"body":"In this approach, the client creates and signs a Resource that proves that an Agent wants to access a certain server for some amount of time. This Authentication Resource is stored as a cookie, and passed along in every HTTP request to the server.","breadcrumbs":"Atomic Data Extended » Authentication » Atomic Cookies Authentication","id":"96","title":"Atomic Cookies Authentication"},"97":{"body":"Create a signed Authentication object, as described above. Serialize it as JSON-AD, then as a base64 string. Store it in a Cookie: Name the cookie atomic_session The expiration date of the cookie should be set, and should match the expiration date of the Authentication Resource. Set the Secure attribute to prevent Man-in-the-middle attacks over HTTP","breadcrumbs":"Atomic Data Extended » Authentication » Setting the cookie","id":"97","title":"Setting the cookie"},"98":{"body":"Similar to creating the Cookie, except that we pass the base64 serialized Authentication Resource as a Bearer token in the Authorization header. GET /myResource HTTP/1.1\nAuthorization: Bearer {base64 serialized Authentication Resource} In Data Browser, you can find the token tab in /app/token to create a token.","breadcrumbs":"Atomic Data Extended » Authentication » Bearer Token Authentication","id":"98","title":"Bearer Token Authentication"},"99":{"body":"After opening a WebSocket connection , create an Authentication Resource. Send a message like so: AUTHENTICATE {authenticationResource}. The server will only respond if there is something wrong.","breadcrumbs":"Atomic Data Extended » Authentication » Authenticating Websockets","id":"99","title":"Authenticating Websockets"}},"length":291,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{".":{"2":{"0":{".":{"0":{"df":1,"docs":{"276":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"df":6,"docs":{"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0},"71":{"tf":1.0}}},"2":{"df":3,"docs":{"127":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"3":{"df":1,"docs":{"18":{"tf":1.0}}},"4":{"df":2,"docs":{"127":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"7":{"df":2,"docs":{"18":{"tf":1.0},"71":{"tf":1.0}}},"8":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"18":{"tf":1.0}}},"df":2,"docs":{"52":{"tf":1.4142135623730951},"69":{"tf":1.0}}},"1":{",":{"4":{",":{"5":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},".":{".":{"2":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"0":{"0":{"df":2,"docs":{"199":{"tf":1.0},"223":{"tf":1.0}}},"df":2,"docs":{"118":{"tf":1.0},"18":{"tf":1.0}}},"1":{"8":{".":{"2":{"0":{"5":{"4":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},":":{"1":{"5":{":":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"2":{"4":{"df":1,"docs":{"56":{"tf":1.0}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"5":{"0":{"df":1,"docs":{"112":{"tf":1.0}}},"6":{"1":{"1":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"9":{"6":{"7":{"9":{"8":{"9":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"13":{"tf":1.0},"246":{"tf":1.0}},"m":{"b":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}}},"6":{"1":{"1":{"4":{"8":{"9":{"9":{"2":{"8":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.0}}},"9":{"3":{"7":{"0":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"6":{"1":{"7":{"5":{"7":{"4":{"7":{"0":{"0":{"0":{"2":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"df":1,"docs":{"256":{"tf":1.0}}},"9":{"7":{"0":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"9":{"1":{"\"":{"@":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"177":{"tf":1.0}}}},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":4,"docs":{"177":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"70":{"tf":1.0}}},"9":{"df":1,"docs":{"175":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"69":{"tf":1.0}},"m":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}},"2":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"0":{"0":{"df":1,"docs":{"177":{"tf":1.0}}},"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":1,"docs":{"45":{"tf":1.0}}},"2":{"0":{"df":2,"docs":{"18":{"tf":2.23606797749979},"71":{"tf":1.0}}},"1":{"df":3,"docs":{"123":{"tf":1.0},"18":{"tf":3.3166247903554},"195":{"tf":1.0}}},"2":{"df":2,"docs":{"18":{"tf":2.0},"200":{"tf":1.0}}},"3":{"df":1,"docs":{"20":{"tf":2.449489742783178}}},"4":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":5,"docs":{"177":{"tf":1.4142135623730951},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"177":{"tf":1.0},"29":{"tf":1.0}}}}},"2":{"df":1,"docs":{"40":{"tf":1.0}}},"4":{"df":1,"docs":{"112":{"tf":1.0}}},"df":2,"docs":{"143":{"tf":1.0},"177":{"tf":1.0}},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"3":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"12":{"tf":1.0},"95":{"tf":1.0}}},"2":{"df":1,"docs":{"71":{"tf":1.0}}},"3":{".":{"7":{"8":{"1":{"7":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}},"m":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"4":{"0":{"4":{"df":3,"docs":{"136":{"tf":1.0},"173":{"tf":1.0},"208":{"tf":1.0}}},"df":0,"docs":{}},"2":{"0":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"7":{"8":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}},"5":{"0":{"0":{"df":1,"docs":{"103":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"6":{"4":{"df":2,"docs":{"67":{"tf":1.0},"71":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}}},"8":{"0":{":":{"8":{"0":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"7":{"df":1,"docs":{"105":{"tf":1.0}}},"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}},"m":{"b":{"df":2,"docs":{"200":{"tf":1.0},"235":{"tf":1.0}}},"df":0,"docs":{}}},"9":{"2":{"2":{"3":{"3":{"7":{"2":{"0":{"3":{"6":{"8":{"5":{"4":{"7":{"7":{"5":{"8":{"0":{"7":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"a":{".":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"b":{"c":{"1":{"2":{"3":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"14":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.0}}}},"o":{"df":0,"docs":{},"v":{"df":13,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"132":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"258":{"tf":1.4142135623730951},"267":{"tf":1.0},"29":{"tf":1.7320508075688772},"40":{"tf":1.0},"50":{"tf":1.0},"97":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"60":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"176":{"tf":1.0},"264":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":9,"docs":{"121":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":13,"docs":{"115":{"tf":1.0},"118":{"tf":1.4142135623730951},"139":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"167":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"48":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":15,"docs":{"100":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"108":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"245":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"185":{"tf":1.0}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"111":{"tf":1.0},"223":{"tf":1.0},"270":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":2,"docs":{"10":{"tf":1.0},"286":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"18":{"tf":1.0},"197":{"tf":1.0}}}},"v":{"df":2,"docs":{"142":{"tf":1.0},"18":{"tf":1.0}}},"x":{"df":1,"docs":{"138":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"111":{"tf":1.0},"82":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":18,"docs":{"108":{"tf":1.0},"118":{"tf":1.0},"14":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"183":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.7320508075688772},"203":{"tf":1.0},"231":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.4142135623730951},"267":{"tf":1.0},"57":{"tf":1.0},"82":{"tf":1.4142135623730951},"84":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"3":{"df":1,"docs":{"18":{"tf":1.0}}},"d":{"df":27,"docs":{"108":{"tf":1.4142135623730951},"118":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":2.0},"154":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":2.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"264":{"tf":2.0},"266":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.4142135623730951},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"108":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"173":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"40":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}}},"df":59,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"127":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"143":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.7320508075688772},"157":{"tf":1.7320508075688772},"159":{"tf":1.4142135623730951},"162":{"tf":1.0},"167":{"tf":1.0},"18":{"tf":2.0},"181":{"tf":1.7320508075688772},"184":{"tf":1.0},"186":{"tf":1.4142135623730951},"187":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":2.0},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"270":{"tf":1.0},"280":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.7320508075688772},"39":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951},"41":{"tf":1.7320508075688772},"42":{"tf":1.7320508075688772},"56":{"tf":1.0},"60":{"tf":1.0},"7":{"tf":1.0},"75":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"121":{"tf":1.0},"165":{"tf":1.4142135623730951}}}}},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"119":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"234":{"tf":1.4142135623730951},"235":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"189":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":4,"docs":{"224":{"tf":1.0},"245":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":9,"docs":{"148":{"tf":1.0},"183":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"23":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"270":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951}}}}},"df":1,"docs":{"254":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"'":{"df":4,"docs":{"105":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"85":{"tf":1.0}}},".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"?":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.7320508075688772},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":2.0},"153":{"tf":1.4142135623730951},"197":{"tf":1.7320508075688772},"198":{"tf":1.0},"258":{"tf":2.0},"282":{"tf":1.0},"56":{"tf":1.7320508075688772},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":2.23606797749979},"83":{"tf":1.4142135623730951},"84":{"tf":2.6457513110645907},"85":{"tf":1.7320508075688772},"89":{"tf":2.0},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.23606797749979},"96":{"tf":1.0}}}}},"o":{"df":2,"docs":{"12":{"tf":1.0},"241":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"263":{"tf":1.0}}}}},"i":{"df":4,"docs":{"242":{"tf":2.6457513110645907},"243":{"tf":1.7320508075688772},"244":{"tf":1.7320508075688772},"245":{"tf":2.449489742783178}},"m":{"df":7,"docs":{"112":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"232":{"tf":1.0}}},"r":{"b":{"df":0,"docs":{},"n":{"b":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"252":{"tf":1.0}}}},"k":{"a":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}},"x":{"df":1,"docs":{"288":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"a":{"df":1,"docs":{"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}}}}}},"i":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"254":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"w":{"df":31,"docs":{"100":{"tf":1.0},"121":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"259":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"62":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"79":{"tf":1.0},"83":{"tf":1.0},"94":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"193":{"tf":1.0}},"g":{"df":1,"docs":{"96":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.0},"42":{"tf":1.0},"76":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":13,"docs":{"141":{"tf":1.0},"144":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"189":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"257":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":5,"docs":{"132":{"tf":1.0},"200":{"tf":1.0},"239":{"tf":1.0},"269":{"tf":1.0},"56":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":15,"docs":{"112":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"201":{"tf":1.0},"218":{"tf":1.0},"232":{"tf":1.0},"272":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0},"86":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":13,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"145":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"217":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"z":{"df":1,"docs":{"13":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"13":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":1.0}}}},"t":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":1,"docs":{"270":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"16":{"tf":1.0},"96":{"tf":1.0}}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"z":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}},"df":0,"docs":{},"j":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}},"y":{"df":0,"docs":{},"m":{"df":4,"docs":{"184":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":2.23606797749979},"94":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.4142135623730951},"181":{"tf":1.0},"196":{"tf":1.0},"228":{"tf":1.0},"254":{"tf":1.0},"34":{"tf":1.0},"77":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"267":{"tf":1.0}}}}}},"y":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"111":{"tf":1.0},"178":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"26":{"tf":1.0},"83":{"tf":1.0},"90":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":7,"docs":{"152":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"20":{"tf":1.0},"205":{"tf":1.0},"28":{"tf":1.0},"90":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"284":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"i":{"df":10,"docs":{"112":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.7320508075688772},"235":{"tf":1.0},"55":{"tf":1.0}}},"p":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"98":{"tf":1.0}}}}}}}},"df":31,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"128":{"tf":1.0},"141":{"tf":1.0},"149":{"tf":1.7320508075688772},"15":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"217":{"tf":1.4142135623730951},"222":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"272":{"tf":1.0},"279":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"37":{"tf":1.0},"77":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"114":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"12":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"a":{"d":{"+":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"167":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":18,"docs":{"1":{"tf":1.0},"106":{"tf":1.0},"121":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"248":{"tf":1.4142135623730951},"267":{"tf":1.0},"273":{"tf":1.0},"59":{"tf":1.0}}},"df":6,"docs":{"111":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.7320508075688772},"223":{"tf":1.0},"55":{"tf":1.0},"88":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"a":{"c":{"df":0,"docs":{},"h":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"234":{"tf":1.0},"77":{"tf":1.0},"96":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.0},"219":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"234":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"188":{"tf":1.0}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{".":{"c":{"df":0,"docs":{},"o":{"df":2,"docs":{"128":{"tf":1.0},"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"df":1,"docs":{"151":{"tf":1.0}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"29":{"tf":2.23606797749979}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"155":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"214":{"tf":1.0},"261":{"tf":1.0},"5":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":17,"docs":{"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.4142135623730951},"205":{"tf":1.0},"206":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":2.0},"42":{"tf":1.0},"52":{"tf":1.7320508075688772},"59":{"tf":1.0},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"162":{"tf":1.0},"208":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"k":{"df":2,"docs":{"181":{"tf":1.0},"254":{"tf":1.0}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"103":{"tf":1.0}}}}},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"185":{"tf":1.0},"76":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"133":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"288":{"tf":1.0}},"o":{"df":0,"docs":{},"m":{"'":{"df":1,"docs":{"276":{"tf":1.0}}},"df":219,"docs":{"0":{"tf":3.605551275463989},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"100":{"tf":1.0},"101":{"tf":2.0},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":2.0},"111":{"tf":1.7320508075688772},"112":{"tf":1.7320508075688772},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"120":{"tf":1.7320508075688772},"124":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":3.0},"133":{"tf":2.0},"134":{"tf":1.4142135623730951},"139":{"tf":1.4142135623730951},"14":{"tf":2.23606797749979},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"144":{"tf":2.0},"146":{"tf":1.4142135623730951},"148":{"tf":2.449489742783178},"149":{"tf":2.23606797749979},"15":{"tf":2.23606797749979},"150":{"tf":2.23606797749979},"151":{"tf":3.1622776601683795},"152":{"tf":3.0},"154":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.7320508075688772},"157":{"tf":2.23606797749979},"159":{"tf":1.0},"16":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":2.449489742783178},"166":{"tf":2.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"17":{"tf":1.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":4.358898943540674},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.8284271247461903},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":2.0},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":2.0},"19":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":3.3166247903554},"193":{"tf":3.605551275463989},"194":{"tf":2.6457513110645907},"195":{"tf":2.0},"196":{"tf":2.23606797749979},"197":{"tf":2.23606797749979},"198":{"tf":1.4142135623730951},"2":{"tf":2.449489742783178},"20":{"tf":3.0},"200":{"tf":3.1622776601683795},"201":{"tf":1.7320508075688772},"202":{"tf":2.23606797749979},"203":{"tf":1.7320508075688772},"204":{"tf":2.23606797749979},"205":{"tf":2.23606797749979},"206":{"tf":1.7320508075688772},"207":{"tf":1.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":2.449489742783178},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":1.7320508075688772},"217":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":2.449489742783178},"22":{"tf":2.6457513110645907},"220":{"tf":1.7320508075688772},"222":{"tf":2.449489742783178},"223":{"tf":1.7320508075688772},"224":{"tf":1.0},"225":{"tf":2.23606797749979},"226":{"tf":1.7320508075688772},"227":{"tf":2.0},"228":{"tf":1.7320508075688772},"229":{"tf":1.7320508075688772},"23":{"tf":2.0},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":2.6457513110645907},"237":{"tf":1.4142135623730951},"238":{"tf":1.0},"239":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":2.0},"242":{"tf":2.6457513110645907},"243":{"tf":1.4142135623730951},"244":{"tf":1.7320508075688772},"245":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.7320508075688772},"258":{"tf":1.7320508075688772},"259":{"tf":1.4142135623730951},"26":{"tf":2.0},"260":{"tf":1.0},"261":{"tf":2.23606797749979},"262":{"tf":2.0},"263":{"tf":2.0},"264":{"tf":1.7320508075688772},"265":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"268":{"tf":1.7320508075688772},"271":{"tf":1.0},"272":{"tf":2.6457513110645907},"274":{"tf":2.449489742783178},"275":{"tf":1.7320508075688772},"276":{"tf":3.0},"279":{"tf":1.0},"28":{"tf":1.4142135623730951},"280":{"tf":1.7320508075688772},"282":{"tf":1.0},"283":{"tf":1.4142135623730951},"284":{"tf":1.7320508075688772},"285":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.4142135623730951},"29":{"tf":4.358898943540674},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":2.0},"31":{"tf":2.0},"32":{"tf":1.0},"33":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"38":{"tf":2.23606797749979},"39":{"tf":1.7320508075688772},"4":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.4142135623730951},"44":{"tf":2.23606797749979},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.7320508075688772},"48":{"tf":1.7320508075688772},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"53":{"tf":1.4142135623730951},"54":{"tf":2.23606797749979},"55":{"tf":2.449489742783178},"56":{"tf":1.4142135623730951},"57":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"6":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.4142135623730951},"63":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.7320508075688772},"78":{"tf":2.23606797749979},"79":{"tf":1.4142135623730951},"8":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.4142135623730951},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.4142135623730951},"89":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772},"93":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}},"i":{"c":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"41":{"tf":1.0}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"97":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"160":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}}}}},"df":4,"docs":{"143":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":1,"docs":{"134":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":2,"docs":{"18":{"tf":1.0},"254":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":4,"docs":{"39":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"151":{"tf":1.0},"235":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"k":{"df":4,"docs":{"100":{"tf":1.0},"102":{"tf":1.0},"83":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"180":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"254":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":1,"docs":{"23":{"tf":1.0}}},"t":{"df":11,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.4142135623730951},"229":{"tf":1.0},"81":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"71":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"197":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":33,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.4142135623730951},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.7320508075688772},"200":{"tf":1.0},"217":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"91":{"tf":1.7320508075688772},"93":{"tf":2.23606797749979},"94":{"tf":1.4142135623730951},"95":{"tf":3.0},"96":{"tf":1.4142135623730951},"97":{"tf":1.4142135623730951},"98":{"tf":1.7320508075688772},"99":{"tf":1.7320508075688772}},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":2,"docs":{"135":{"tf":1.4142135623730951},"99":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"'":{"df":3,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0}}},"df":29,"docs":{"0":{"tf":1.4142135623730951},"104":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.4142135623730951},"135":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"163":{"tf":2.23606797749979},"193":{"tf":1.0},"198":{"tf":1.4142135623730951},"217":{"tf":1.0},"226":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"287":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"87":{"tf":1.0},"89":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.4142135623730951},"93":{"tf":1.0},"98":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0}}}}}}}}},"o":{"df":2,"docs":{"141":{"tf":1.0},"252":{"tf":1.7320508075688772}},"m":{"a":{"df":0,"docs":{},"t":{"df":3,"docs":{"20":{"tf":1.0},"205":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":11,"docs":{"105":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"209":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"274":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.4142135623730951},"85":{"tf":1.0}}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.7320508075688772}}}},"r":{"df":3,"docs":{"215":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":6,"docs":{"152":{"tf":1.0},"195":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0}},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"65":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"d":{"df":2,"docs":{"12":{"tf":1.0},"210":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":5,"docs":{"131":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":6,"docs":{"101":{"tf":1.4142135623730951},"105":{"tf":1.0},"117":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":13,"docs":{"105":{"tf":1.0},"173":{"tf":1.0},"187":{"tf":1.0},"197":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"264":{"tf":1.0},"270":{"tf":1.0},"74":{"tf":1.0},"95":{"tf":1.0}}},"i":{"c":{"df":8,"docs":{"148":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"87":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"250":{"tf":1.0}}}}},"l":{"df":1,"docs":{"220":{"tf":1.0}}}}},"z":{"df":1,"docs":{"131":{"tf":1.7320508075688772}}}},"df":2,"docs":{"123":{"tf":1.0},"181":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"95":{"tf":1.0},"98":{"tf":1.7320508075688772}}}}}},"c":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":16,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.4142135623730951},"148":{"tf":2.23606797749979},"167":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0}}}}},"df":17,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.4142135623730951},"247":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"266":{"tf":1.0},"5":{"tf":1.0},"86":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":12,"docs":{"116":{"tf":1.0},"144":{"tf":1.0},"153":{"tf":1.0},"162":{"tf":1.0},"182":{"tf":1.0},"194":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"264":{"tf":1.0},"51":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":1,"docs":{"56":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":4,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0},"200":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"19":{"tf":1.0},"193":{"tf":1.0},"204":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"183":{"tf":1.0},"228":{"tf":1.4142135623730951},"265":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"127":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}},"t":{"df":9,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}}},"t":{"a":{"df":1,"docs":{"220":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"12":{"tf":1.0},"144":{"tf":1.0},"181":{"tf":1.4142135623730951},"185":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":14,"docs":{"125":{"tf":1.0},"132":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"228":{"tf":1.7320508075688772},"250":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"235":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"148":{"tf":1.0},"18":{"tf":1.0},"216":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.7320508075688772}}}}}}},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":6,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"261":{"tf":1.0},"69":{"tf":1.0}}},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.7320508075688772}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}}},"df":0,"docs":{},"g":{"df":1,"docs":{"247":{"tf":1.0}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"163":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":7,"docs":{"177":{"tf":1.7320508075688772},"204":{"tf":1.4142135623730951},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"256":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0}}},"y":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"df":17,"docs":{"100":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"67":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":8,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":2.449489742783178},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"142":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"289":{"tf":1.0},"56":{"tf":1.0}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"154":{"tf":2.0},"157":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.7320508075688772},"162":{"tf":1.7320508075688772},"163":{"tf":2.6457513110645907},"28":{"tf":1.0},"60":{"tf":1.0}}}}}}}}},"o":{"d":{"df":0,"docs":{},"i":{"df":4,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"210":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"219":{"tf":1.0}}}},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}},"k":{"df":7,"docs":{"130":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"232":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"29":{"tf":1.0},"39":{"tf":1.4142135623730951},"56":{"tf":1.0},"59":{"tf":1.0},"69":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"t":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"132":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":30,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"185":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"242":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"42":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"154":{"tf":1.0},"5":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}}},"n":{"d":{"df":3,"docs":{"132":{"tf":1.0},"248":{"tf":1.0},"35":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"d":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"86":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":3,"docs":{"209":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"155":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"120":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"186":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"199":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"243":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":3,"docs":{"247":{"tf":1.0},"248":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"262":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"'":{"df":1,"docs":{"160":{"tf":1.0}}},"/":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"b":{"/":{"3":{"0":{"b":{"2":{"df":0,"docs":{},"f":{"8":{"a":{"df":0,"docs":{},"f":{"5":{"9":{"d":{"2":{"5":{"0":{"8":{"4":{"d":{"df":0,"docs":{},"e":{"9":{"6":{"6":{"3":{"0":{"1":{"c":{"b":{"6":{"b":{"d":{"1":{"df":0,"docs":{},"e":{"d":{"9":{"0":{"c":{"0":{"df":0,"docs":{},"e":{"b":{"7":{"8":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"#":{"df":0,"docs":{},"l":{"1":{"7":{"6":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":23,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"117":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"18":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"262":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.4142135623730951},"276":{"tf":1.0},"98":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"g":{"df":51,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"df":20,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"2":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":11,"docs":{"151":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":2.23606797749979},"261":{"tf":1.4142135623730951},"263":{"tf":1.0},"267":{"tf":1.0}}}}},"n":{"c":{"df":0,"docs":{},"h":{"df":7,"docs":{"108":{"tf":1.0},"131":{"tf":1.0},"160":{"tf":1.0},"266":{"tf":1.4142135623730951},"270":{"tf":1.0},"28":{"tf":1.0},"86":{"tf":1.0}}}},"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"128":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"i":{"df":3,"docs":{"201":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}}}},"y":{"df":4,"docs":{"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.4142135623730951},"250":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"117":{"tf":1.0},"59":{"tf":1.0}}}}}},"c":{"a":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"184":{"tf":1.0},"79":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":6,"docs":{"117":{"tf":1.4142135623730951},"139":{"tf":2.0},"142":{"tf":1.0},"195":{"tf":1.0},"42":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"l":{"df":12,"docs":{"148":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"262":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"184":{"tf":1.0},"249":{"tf":1.0},"288":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"157":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"p":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"261":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"256":{"tf":1.0}}},"df":2,"docs":{"247":{"tf":1.4142135623730951},"249":{"tf":1.0}},"e":{"df":1,"docs":{"157":{"tf":1.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}},"g":{"df":0,"docs":{},"o":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.0}}}},"t":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":15,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.0},"17":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.0},"232":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0},"87":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"262":{"tf":1.4142135623730951},"264":{"tf":1.0}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"112":{"tf":1.0},"209":{"tf":1.0}}}}},"df":2,"docs":{"123":{"tf":1.0},"56":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"243":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"173":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"259":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"13":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"g":{"df":40,"docs":{"0":{"tf":1.7320508075688772},"110":{"tf":1.4142135623730951},"111":{"tf":2.449489742783178},"112":{"tf":1.4142135623730951},"114":{"tf":2.449489742783178},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"151":{"tf":1.0},"152":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"179":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":3.3166247903554},"209":{"tf":1.7320508075688772},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.0},"289":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"194":{"tf":1.0},"196":{"tf":1.0},"34":{"tf":1.0},"81":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.4142135623730951},"66":{"tf":1.0},"84":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"176":{"tf":1.0},"213":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"33":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":2,"docs":{"18":{"tf":1.0},"290":{"tf":1.0}},"g":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"245":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":3,"docs":{"18":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"246":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"k":{"df":29,"docs":{"103":{"tf":2.23606797749979},"105":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":2.449489742783178},"12":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.7320508075688772},"168":{"tf":1.0},"177":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"270":{"tf":1.0},"282":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"84":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"198":{"tf":1.0}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"88":{"tf":1.4142135623730951},"89":{"tf":1.0}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"23":{"tf":1.0},"235":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"186":{"tf":1.0},"193":{"tf":1.0},"81":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"268":{"tf":1.0}}}}}}}},"k":{"a":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"263":{"tf":1.0}}},"df":1,"docs":{"263":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"58":{"tf":1.0}}},"df":30,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":3.0},"159":{"tf":2.23606797749979},"160":{"tf":2.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"20":{"tf":1.4142135623730951},"214":{"tf":1.4142135623730951},"228":{"tf":1.0},"230":{"tf":1.0},"249":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.4142135623730951},"49":{"tf":1.0},"54":{"tf":1.4142135623730951},"55":{"tf":1.4142135623730951},"56":{"tf":2.0},"57":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"60":{"tf":3.1622776601683795},"7":{"tf":1.0},"76":{"tf":2.6457513110645907},"79":{"tf":1.0},"80":{"tf":1.0},"88":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"125":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"58":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":7,"docs":{"121":{"tf":1.0},"172":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.0},"37":{"tf":1.0}}},"r":{"df":6,"docs":{"166":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"26":{"tf":1.4142135623730951},"55":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"269":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":8,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"155":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"57":{"tf":1.0}}}},"df":8,"docs":{"18":{"tf":1.7320508075688772},"192":{"tf":1.0},"2":{"tf":1.4142135623730951},"272":{"tf":1.4142135623730951},"276":{"tf":1.7320508075688772},"280":{"tf":1.0},"283":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":28,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"108":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"133":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.7320508075688772},"147":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"203":{"tf":1.0},"254":{"tf":1.4142135623730951},"275":{"tf":1.0},"37":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"94":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"m":{"b":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"79":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":7,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"215":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"45":{"tf":1.0},"76":{"tf":1.0}}}},"u":{"d":{"df":2,"docs":{"121":{"tf":1.0},"241":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"186":{"tf":1.0}}}}}}},"m":{"df":8,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":2.449489742783178},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}},"o":{"d":{"df":0,"docs":{},"e":{"df":11,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"152":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"226":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"83":{"tf":1.0}},"s":{"a":{"df":0,"docs":{},"n":{"d":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":1,"docs":{"199":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"18":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"121":{"tf":1.0},"133":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.4142135623730951},"142":{"tf":2.6457513110645907},"143":{"tf":2.23606797749979},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"33":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":2.0},"8":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"d":{"df":2,"docs":{"184":{"tf":1.0},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":4,"docs":{"177":{"tf":1.4142135623730951},"184":{"tf":1.0},"26":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"n":{"df":1,"docs":{"219":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":21,"docs":{"0":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"197":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"217":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"247":{"tf":1.0},"259":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"250":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":4,"docs":{"106":{"tf":1.0},"112":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0}}},"m":{"a":{"df":1,"docs":{"68":{"tf":1.0}},"n":{"d":{"df":4,"docs":{"114":{"tf":1.0},"2":{"tf":1.0},"218":{"tf":1.7320508075688772},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"102":{"tf":1.0},"261":{"tf":1.0}}}},"r":{"c":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"271":{"tf":1.0}}},"t":{"(":{"df":1,"docs":{"258":{"tf":1.0}}},"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.0}}}},"df":0,"docs":{}}},"df":48,"docs":{"0":{"tf":1.7320508075688772},"105":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":2.23606797749979},"112":{"tf":1.4142135623730951},"113":{"tf":1.0},"114":{"tf":3.0},"115":{"tf":1.7320508075688772},"116":{"tf":1.7320508075688772},"117":{"tf":2.23606797749979},"118":{"tf":3.4641016151377544},"119":{"tf":2.449489742783178},"120":{"tf":1.4142135623730951},"121":{"tf":1.7320508075688772},"124":{"tf":1.0},"132":{"tf":3.3166247903554},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.7320508075688772},"188":{"tf":1.0},"195":{"tf":2.0},"197":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"240":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":3.0},"276":{"tf":2.0},"280":{"tf":1.0},"42":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"84":{"tf":1.4142135623730951},"85":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"93":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}},"s":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"14":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.7320508075688772}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"17":{"tf":1.0},"179":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"61":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"n":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"269":{"tf":1.0},"290":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":1.0},"132":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":7,"docs":{"12":{"tf":2.0},"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.4142135623730951},"195":{"tf":1.0},"20":{"tf":1.0},"227":{"tf":1.4142135623730951},"239":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"263":{"tf":1.0},"29":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0},"8":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"10":{"tf":1.0},"112":{"tf":1.0}}}}}}},"t":{"df":7,"docs":{"166":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"193":{"tf":1.0},"31":{"tf":1.0},"45":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"78":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"20":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"df":6,"docs":{"107":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"22":{"tf":1.0},"33":{"tf":1.0},"36":{"tf":1.0}}},"x":{"df":5,"docs":{"177":{"tf":1.0},"180":{"tf":1.0},"199":{"tf":1.4142135623730951},"60":{"tf":1.0},"78":{"tf":1.0}}}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"14":{"tf":1.0},"260":{"tf":1.4142135623730951}}},"df":0,"docs":{},"t":{"df":1,"docs":{"111":{"tf":1.0}}}}},"c":{"df":5,"docs":{"119":{"tf":1.0},"177":{"tf":1.4142135623730951},"189":{"tf":1.0},"199":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"29":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":5,"docs":{"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"22":{"tf":1.0},"86":{"tf":1.0}}}}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":18,"docs":{"113":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"160":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":2.0},"192":{"tf":1.0},"199":{"tf":1.0},"27":{"tf":1.0},"31":{"tf":1.0},"5":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"8":{"tf":1.0},"80":{"tf":1.0}},"u":{"df":2,"docs":{"129":{"tf":1.0},"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"110":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"232":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"162":{"tf":1.0},"165":{"tf":1.0},"194":{"tf":1.0},"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":6,"docs":{"179":{"tf":1.0},"185":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"209":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":10,"docs":{"0":{"tf":1.7320508075688772},"13":{"tf":1.0},"134":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.4142135623730951},"248":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"234":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":1,"docs":{"248":{"tf":1.0}}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"181":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"204":{"tf":1.0}}}}}}}}},"i":{"d":{"df":5,"docs":{"112":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"247":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"137":{"tf":1.0},"17":{"tf":1.0},"210":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"182":{"tf":1.0},"199":{"tf":1.0},"244":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"61":{"tf":1.0},"76":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{".":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"t":{"df":2,"docs":{"102":{"tf":2.449489742783178},"177":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":8,"docs":{"132":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0}},"t":{"df":7,"docs":{"132":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"230":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"154":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"280":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":7,"docs":{"18":{"tf":1.0},"183":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0}}}}},"t":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":31,"docs":{"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.0},"115":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"135":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.0},"240":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"86":{"tf":1.0},"89":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"127":{"tf":1.4142135623730951},"173":{"tf":1.0},"187":{"tf":1.0},"194":{"tf":1.4142135623730951},"208":{"tf":1.7320508075688772},"210":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"5":{"tf":1.0},"59":{"tf":1.0},"6":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"df":12,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.4142135623730951},"202":{"tf":1.0},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"243":{"tf":1.0},"38":{"tf":1.0},"62":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"192":{"tf":1.0},"213":{"tf":1.0},"32":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.4142135623730951},"17":{"tf":1.0},"176":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"84":{"tf":1.0}}},"t":{"df":3,"docs":{"17":{"tf":1.0},"235":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"s":{"df":3,"docs":{"204":{"tf":1.4142135623730951},"266":{"tf":1.0},"283":{"tf":1.0}}},"t":{"df":14,"docs":{"1":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"191":{"tf":1.7320508075688772},"192":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"219":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.0},"48":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"241":{"tf":1.0}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":5,"docs":{"93":{"tf":1.0},"95":{"tf":1.4142135623730951},"96":{"tf":1.4142135623730951},"97":{"tf":2.0},"98":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"183":{"tf":1.0}}}}},"r":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"i":{"df":5,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"79":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":14,"docs":{"0":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.7320508075688772},"214":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.7320508075688772},"54":{"tf":1.0},"7":{"tf":1.0},"81":{"tf":1.0}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"241":{"tf":1.0},"246":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"118":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"137":{"tf":1.0},"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"192":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":5,"docs":{"100":{"tf":1.0},"112":{"tf":1.0},"178":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"14":{"tf":1.0},"87":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"65":{"tf":1.0},"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"201":{"tf":1.0}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"268":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"df":9,"docs":{"112":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.0},"78":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":7,"docs":{"175":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"79":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"194":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"r":{"df":1,"docs":{"218":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"272":{"tf":1.0}}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":77,"docs":{"0":{"tf":1.0},"1":{"tf":2.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"13":{"tf":1.7320508075688772},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.4142135623730951},"148":{"tf":1.4142135623730951},"149":{"tf":1.4142135623730951},"150":{"tf":1.7320508075688772},"152":{"tf":2.0},"153":{"tf":1.7320508075688772},"154":{"tf":2.23606797749979},"155":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":2.23606797749979},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"166":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.4142135623730951},"187":{"tf":1.0},"189":{"tf":1.7320508075688772},"191":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"204":{"tf":1.0},"206":{"tf":1.0},"218":{"tf":1.4142135623730951},"219":{"tf":1.4142135623730951},"22":{"tf":1.7320508075688772},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"245":{"tf":1.0},"251":{"tf":1.0},"258":{"tf":1.4142135623730951},"26":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"279":{"tf":1.0},"283":{"tf":1.0},"31":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"283":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"143":{"tf":1.0},"30":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":2.6457513110645907},"257":{"tf":1.0},"258":{"tf":1.7320508075688772},"259":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"181":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"193":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"262":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":10,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0}},"i":{"df":3,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"197":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}}},"s":{"df":1,"docs":{"179":{"tf":1.0}},"v":{"df":3,"docs":{"148":{"tf":1.0},"262":{"tf":1.0},"283":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":17,"docs":{"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"164":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"254":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"118":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":1.4142135623730951},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"248":{"tf":1.0},"267":{"tf":1.0}}}}}}}},"t":{"df":1,"docs":{"127":{"tf":1.0}}}},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"229":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"208":{"tf":1.0}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"n":{"df":1,"docs":{"59":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"62":{"tf":1.0}}}},"t":{"a":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},"b":{"a":{"df":0,"docs":{},"s":{"df":28,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.0},"215":{"tf":1.7320508075688772},"217":{"tf":1.7320508075688772},"218":{"tf":1.0},"219":{"tf":1.7320508075688772},"220":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"227":{"tf":1.0},"230":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"262":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":193,"docs":{"0":{"tf":4.358898943540674},"1":{"tf":1.7320508075688772},"10":{"tf":1.7320508075688772},"100":{"tf":1.0},"102":{"tf":1.0},"104":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":4.0},"114":{"tf":1.0},"117":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.8284271247461903},"120":{"tf":1.4142135623730951},"121":{"tf":2.23606797749979},"13":{"tf":3.4641016151377544},"130":{"tf":1.4142135623730951},"132":{"tf":1.7320508075688772},"133":{"tf":1.7320508075688772},"139":{"tf":1.4142135623730951},"14":{"tf":3.0},"140":{"tf":1.0},"144":{"tf":2.23606797749979},"146":{"tf":1.4142135623730951},"148":{"tf":3.0},"149":{"tf":2.0},"15":{"tf":1.4142135623730951},"150":{"tf":1.4142135623730951},"151":{"tf":2.23606797749979},"152":{"tf":2.0},"154":{"tf":1.7320508075688772},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":2.23606797749979},"16":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":2.23606797749979},"166":{"tf":2.449489742783178},"167":{"tf":1.7320508075688772},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"17":{"tf":1.0},"170":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":2.449489742783178},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":3.1622776601683795},"176":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":3.0},"180":{"tf":2.0},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"183":{"tf":2.8284271247461903},"184":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"187":{"tf":1.7320508075688772},"189":{"tf":2.6457513110645907},"19":{"tf":1.4142135623730951},"190":{"tf":2.0},"191":{"tf":2.23606797749979},"192":{"tf":2.23606797749979},"193":{"tf":4.123105625617661},"194":{"tf":3.4641016151377544},"195":{"tf":2.0},"196":{"tf":2.23606797749979},"197":{"tf":1.7320508075688772},"198":{"tf":1.4142135623730951},"199":{"tf":2.0},"2":{"tf":1.0},"20":{"tf":2.23606797749979},"200":{"tf":2.23606797749979},"201":{"tf":1.7320508075688772},"202":{"tf":2.23606797749979},"203":{"tf":1.7320508075688772},"204":{"tf":2.23606797749979},"205":{"tf":2.449489742783178},"206":{"tf":1.4142135623730951},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"213":{"tf":2.8284271247461903},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":2.6457513110645907},"218":{"tf":2.23606797749979},"219":{"tf":2.23606797749979},"22":{"tf":3.4641016151377544},"220":{"tf":1.4142135623730951},"222":{"tf":2.449489742783178},"223":{"tf":1.0},"225":{"tf":2.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"228":{"tf":2.449489742783178},"229":{"tf":2.23606797749979},"23":{"tf":2.6457513110645907},"230":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":2.6457513110645907},"235":{"tf":2.449489742783178},"238":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":2.0},"241":{"tf":3.4641016151377544},"242":{"tf":3.3166247903554},"243":{"tf":1.0},"244":{"tf":1.4142135623730951},"246":{"tf":1.4142135623730951},"247":{"tf":3.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.6457513110645907},"251":{"tf":1.4142135623730951},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":2.23606797749979},"255":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":3.0},"260":{"tf":3.0},"261":{"tf":1.7320508075688772},"262":{"tf":2.8284271247461903},"264":{"tf":1.0},"265":{"tf":1.4142135623730951},"267":{"tf":1.0},"268":{"tf":1.7320508075688772},"271":{"tf":1.0},"272":{"tf":2.0},"274":{"tf":1.4142135623730951},"275":{"tf":1.7320508075688772},"276":{"tf":1.7320508075688772},"279":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.7320508075688772},"284":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.7320508075688772},"289":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"33":{"tf":1.4142135623730951},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"38":{"tf":2.23606797749979},"39":{"tf":2.0},"4":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":1.4142135623730951},"48":{"tf":1.7320508075688772},"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951},"54":{"tf":1.4142135623730951},"55":{"tf":2.449489742783178},"56":{"tf":1.0},"57":{"tf":1.7320508075688772},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":2.0},"7":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.7320508075688772},"78":{"tf":1.4142135623730951},"79":{"tf":2.449489742783178},"8":{"tf":1.4142135623730951},"80":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"86":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"98":{"tf":1.0}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"228":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"13":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"22":{"tf":1.0},"260":{"tf":2.23606797749979},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"264":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":40,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"180":{"tf":1.0},"182":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":2.6457513110645907},"189":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"209":{"tf":1.4142135623730951},"215":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.4142135623730951},"26":{"tf":1.0},"283":{"tf":1.0},"29":{"tf":2.449489742783178},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"58":{"tf":2.449489742783178},"59":{"tf":3.1622776601683795},"61":{"tf":2.0},"7":{"tf":1.0},"74":{"tf":2.23606797749979},"75":{"tf":1.4142135623730951},"79":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"(":{")":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"1":{"9":{"9":{"1":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":12,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.4142135623730951},"20":{"tf":1.0},"245":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"70":{"tf":1.4142135623730951},"97":{"tf":1.4142135623730951}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"185":{"tf":1.4142135623730951},"252":{"tf":1.0},"54":{"tf":1.0},"71":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"b":{"df":3,"docs":{"166":{"tf":1.0},"215":{"tf":1.0},"223":{"tf":1.0}},"o":{":":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}}},"p":{":":{"d":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"df":1,"docs":{"126":{"tf":1.0}}}},"c":{":":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}}}},"df":1,"docs":{"130":{"tf":1.0}}},"d":{"df":1,"docs":{"70":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":29,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"187":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"54":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"85":{"tf":1.0},"87":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}}}},"b":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":2,"docs":{"123":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"189":{"tf":1.0},"264":{"tf":1.4142135623730951}},"r":{"df":17,"docs":{"111":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.4142135623730951},"13":{"tf":1.0},"176":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.4142135623730951},"235":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"12":{"tf":1.0},"146":{"tf":1.0},"206":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"17":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"df":1,"docs":{"20":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"45":{"tf":1.0}}},"p":{"df":3,"docs":{"112":{"tf":1.0},"206":{"tf":1.0},"242":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"86":{"tf":1.0}}}}}},"f":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"142":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"184":{"tf":1.0},"195":{"tf":1.0},"202":{"tf":1.0},"241":{"tf":1.0},"267":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":24,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"160":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"189":{"tf":1.0},"198":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"218":{"tf":1.0},"220":{"tf":1.0},"228":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.4142135623730951},"39":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":6,"docs":{"14":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.4142135623730951},"261":{"tf":1.0}}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"199":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"127":{"tf":1.7320508075688772},"130":{"tf":1.0},"92":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"117":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"247":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}},"t":{"a":{"'":{"df":1,"docs":{"124":{"tf":1.0}}},"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.4142135623730951},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"132":{"tf":1.0},"188":{"tf":1.4142135623730951},"288":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"2":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":7,"docs":{"124":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"184":{"tf":1.0},"253":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":17,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"60":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"81":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"192":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"203":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":38,"docs":{"104":{"tf":1.0},"114":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"144":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"190":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":2.0},"249":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":1.0},"259":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951},"81":{"tf":1.0},"97":{"tf":1.0}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":27,"docs":{"0":{"tf":1.4142135623730951},"136":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":2.6457513110645907},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"259":{"tf":1.0},"260":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":2.0},"38":{"tf":2.6457513110645907},"39":{"tf":1.7320508075688772},"50":{"tf":2.0},"51":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":2.23606797749979},"59":{"tf":1.0},"60":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":35,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.7320508075688772},"128":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"172":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"78":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"r":{"df":1,"docs":{"254":{"tf":1.0}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":5,"docs":{"151":{"tf":1.4142135623730951},"152":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"277":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"276":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":4,"docs":{"154":{"tf":1.0},"193":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"132":{"tf":1.0},"90":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"42":{"tf":1.0}}}}}}}}}}},"v":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":2,"docs":{"205":{"tf":1.0},"234":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":35,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.23606797749979},"151":{"tf":1.0},"164":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"186":{"tf":2.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":2.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"196":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0}}}}}},"i":{"c":{"df":6,"docs":{"111":{"tf":1.4142135623730951},"199":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"285":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}},"x":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"200":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"m":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"105":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":37,"docs":{"112":{"tf":1.7320508075688772},"120":{"tf":1.0},"132":{"tf":1.4142135623730951},"137":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.4142135623730951},"214":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":2.0},"35":{"tf":1.0},"50":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":9,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"149":{"tf":1.0},"177":{"tf":1.0},"265":{"tf":1.0},"33":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"279":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":1,"docs":{"243":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"110":{"tf":1.0},"193":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":4,"docs":{"155":{"tf":1.0},"2":{"tf":1.0},"266":{"tf":1.0},"57":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"109":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":21,"docs":{"106":{"tf":1.0},"120":{"tf":1.4142135623730951},"132":{"tf":1.0},"141":{"tf":1.0},"147":{"tf":1.7320508075688772},"16":{"tf":1.0},"170":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"187":{"tf":1.0},"212":{"tf":1.0},"238":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"3":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"88":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"182":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"220":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"165":{"tf":1.0}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":2,"docs":{"155":{"tf":1.4142135623730951},"199":{"tf":1.0}}}}},"o":{"c":{"df":6,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.4142135623730951},"288":{"tf":1.0},"5":{"tf":1.0},"92":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"123":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.4142135623730951},"241":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"284":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.4142135623730951}}}}}}}},"df":14,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"20":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"85":{"tf":1.4142135623730951},"93":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"220":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":10,"docs":{"14":{"tf":1.0},"160":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":2.23606797749979},"189":{"tf":1.0},"244":{"tf":1.0},"249":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"83":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":20,"docs":{"12":{"tf":1.7320508075688772},"132":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"185":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.7320508075688772},"37":{"tf":1.0},"77":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":8,"docs":{"153":{"tf":1.0},"166":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.4142135623730951},"254":{"tf":1.0},"266":{"tf":1.0},"270":{"tf":1.0}}}},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":2,"docs":{"152":{"tf":1.0},"58":{"tf":1.0}}},"w":{"df":0,"docs":{},"n":{"df":2,"docs":{"219":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":10,"docs":{"0":{"tf":1.0},"144":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"30":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"r":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951}}}},"g":{"df":1,"docs":{"267":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":6,"docs":{"152":{"tf":1.4142135623730951},"198":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.0},"86":{"tf":1.0},"90":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":4,"docs":{"182":{"tf":1.0},"191":{"tf":1.0},"267":{"tf":1.0},"290":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"242":{"tf":1.0}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"94":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"162":{"tf":1.7320508075688772},"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":4,"docs":{"112":{"tf":1.0},"148":{"tf":1.0},"194":{"tf":1.0},"244":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":13,"docs":{"114":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"151":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"275":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"g":{"df":29,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"130":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"26":{"tf":1.0},"271":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.7320508075688772}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":15,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"181":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"81":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"18":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"s":{"df":1,"docs":{"0":{"tf":1.0}},"i":{"df":31,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"14":{"tf":1.4142135623730951},"149":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.4142135623730951},"202":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.7320508075688772},"234":{"tf":1.0},"235":{"tf":1.7320508075688772},"247":{"tf":1.0},"261":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":29,"docs":{"0":{"tf":2.0},"112":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"148":{"tf":1.0},"15":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.7320508075688772},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"246":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"258":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"204":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":21,"docs":{"109":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.7320508075688772},"20":{"tf":1.0},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.4142135623730951},"262":{"tf":1.0},"270":{"tf":1.0},"55":{"tf":1.0},"84":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"268":{"tf":1.0}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"121":{"tf":1.0},"186":{"tf":1.0}}}}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"df":6,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"117":{"tf":1.4142135623730951},"84":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"g":{"df":4,"docs":{"17":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.4142135623730951}}},"i":{"df":0,"docs":{},"t":{"df":69,"docs":{"10":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.4142135623730951},"109":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"119":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"155":{"tf":1.0},"159":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"143":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"62":{"tf":1.0}}}}}},"u":{"c":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"256":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}},"df":0,"docs":{}}},"df":9,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"163":{"tf":1.0},"20":{"tf":1.4142135623730951},"232":{"tf":1.0},"246":{"tf":1.4142135623730951},"265":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"234":{"tf":1.0},"80":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":3,"docs":{"194":{"tf":1.0},"199":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}}},"g":{"df":0,"docs":{},"g":{"df":1,"docs":{"270":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"192":{"tf":1.0},"269":{"tf":1.0},"86":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"85":{"tf":1.0}}},"df":0,"docs":{}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":3,"docs":{"151":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"177":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"42":{"tf":1.4142135623730951}}}}}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"183":{"tf":1.0},"208":{"tf":1.0},"226":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"143":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}}}}}},"d":{"df":17,"docs":{"117":{"tf":1.0},"118":{"tf":1.0},"13":{"tf":1.0},"141":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":2.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"139":{"tf":2.8284271247461903},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"146":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.0},"229":{"tf":1.0},"258":{"tf":1.4142135623730951},"48":{"tf":1.0},"79":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"247":{"tf":1.0},"269":{"tf":1.0},"48":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"136":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"193":{"tf":1.0},"22":{"tf":1.0},"81":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"191":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}},"i":{"df":0,"docs":{},"r":{"df":5,"docs":{"106":{"tf":1.0},"136":{"tf":1.0},"149":{"tf":1.0},"209":{"tf":1.0},"49":{"tf":1.0}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"152":{"tf":1.0},"243":{"tf":1.0},"82":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"222":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"253":{"tf":1.0},"75":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"132":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"101":{"tf":1.0},"71":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":5,"docs":{"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"136":{"tf":1.7320508075688772},"137":{"tf":1.0},"250":{"tf":1.4142135623730951}}}}}},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"65":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":9,"docs":{"121":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"209":{"tf":1.7320508075688772},"228":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0}}}}}}}},"t":{"c":{"df":3,"docs":{"0":{"tf":1.0},"248":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}},"u":{"df":1,"docs":{"271":{"tf":1.0}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"271":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":19,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"140":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"215":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"t":{"df":9,"docs":{"110":{"tf":1.0},"111":{"tf":1.0},"127":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":2.6457513110645907},"200":{"tf":1.0},"226":{"tf":1.0}}}},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"246":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"150":{"tf":1.0},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"269":{"tf":1.0},"288":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"13":{"tf":1.0},"151":{"tf":1.0},"39":{"tf":1.0}}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"12":{"tf":1.0},"251":{"tf":1.0}}}}}},"x":{":":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"a":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"247":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"12":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":52,"docs":{"0":{"tf":1.0},"102":{"tf":1.4142135623730951},"112":{"tf":1.0},"116":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"138":{"tf":1.7320508075688772},"142":{"tf":1.0},"143":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"204":{"tf":1.0},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"228":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"256":{"tf":1.4142135623730951},"266":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"48":{"tf":1.0},"50":{"tf":1.4142135623730951},"51":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.7320508075688772},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"86":{"tf":1.4142135623730951},"95":{"tf":1.0}},"e":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":2.449489742783178}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":2.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"88":{"tf":1.0},"98":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"245":{"tf":1.0},"254":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":47,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"108":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.7320508075688772},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.7320508075688772},"14":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.7320508075688772},"166":{"tf":2.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"215":{"tf":1.0},"219":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"245":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"34":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"85":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"175":{"tf":1.0},"181":{"tf":1.0},"185":{"tf":1.0},"196":{"tf":1.0},"259":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":2,"docs":{"140":{"tf":1.0},"229":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"186":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"269":{"tf":1.0},"97":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":7,"docs":{"17":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"n":{"df":4,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"269":{"tf":1.4142135623730951},"60":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"175":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":4,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"225":{"tf":1.0},"34":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"220":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"160":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"190":{"tf":1.0},"222":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"8":{"tf":1.4142135623730951},"81":{"tf":2.0}}},"df":0,"docs":{},"s":{"df":7,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"128":{"tf":1.0},"176":{"tf":1.0},"26":{"tf":1.0},"277":{"tf":1.0},"55":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":9,"docs":{"167":{"tf":1.0},"181":{"tf":1.4142135623730951},"191":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"250":{"tf":1.0},"263":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":5,"docs":{"0":{"tf":1.0},"156":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"267":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"226":{"tf":1.0}}}}}}}},"f":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"191":{"tf":1.0},"247":{"tf":1.0}}}}}},"t":{"df":3,"docs":{"152":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}},"r":{"df":1,"docs":{"177":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"17":{"tf":1.0},"199":{"tf":1.0}}},"s":{"df":3,"docs":{"117":{"tf":1.0},"142":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"141":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"228":{"tf":1.0},"235":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0}}}},"df":0,"docs":{}}}}},"q":{"df":3,"docs":{"221":{"tf":1.0},"7":{"tf":1.0},"73":{"tf":1.0}}},"r":{"df":8,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"220":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"133":{"tf":1.0},"266":{"tf":1.0}}}}}},"t":{"df":10,"docs":{"100":{"tf":1.0},"133":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"224":{"tf":1.0},"235":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"239":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"112":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":18,"docs":{"127":{"tf":1.0},"15":{"tf":1.4142135623730951},"150":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"181":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"261":{"tf":1.0},"280":{"tf":1.0},"289":{"tf":1.0},"77":{"tf":1.0},"92":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"248":{"tf":1.0},"262":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"114":{"tf":1.0},"242":{"tf":1.0},"244":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":8,"docs":{"132":{"tf":1.0},"17":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"240":{"tf":1.0},"39":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":21,"docs":{"102":{"tf":1.0},"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":2.0},"18":{"tf":1.0},"190":{"tf":1.0},"209":{"tf":1.0},"218":{"tf":1.0},"240":{"tf":1.0},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":17,"docs":{"127":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"189":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"88":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":30,"docs":{"114":{"tf":2.23606797749979},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"14":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"159":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.7320508075688772},"31":{"tf":2.0},"32":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"56":{"tf":1.0},"58":{"tf":1.0},"71":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"15":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"147":{"tf":1.0}}},"(":{"df":1,"docs":{"146":{"tf":1.0}}},"df":23,"docs":{"0":{"tf":1.7320508075688772},"120":{"tf":1.0},"121":{"tf":1.7320508075688772},"144":{"tf":2.449489742783178},"145":{"tf":1.4142135623730951},"146":{"tf":2.8284271247461903},"147":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"208":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"86":{"tf":1.0},"9":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":1,"docs":{"145":{"tf":1.0}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"198":{"tf":1.0},"226":{"tf":1.0}}}}}}}}},"l":{"df":6,"docs":{"139":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":18,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.0},"151":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"262":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"132":{"tf":1.0},"15":{"tf":1.0},"210":{"tf":1.0},"229":{"tf":1.0},"246":{"tf":1.0}}}},"d":{"df":23,"docs":{"125":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.7320508075688772},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"86":{"tf":1.0},"98":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":1,"docs":{"259":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.7320508075688772},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"91":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"257":{"tf":1.0}}}}}}},"t":{"df":3,"docs":{"185":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"182":{"tf":1.4142135623730951}}}},"x":{"df":3,"docs":{"111":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"276":{"tf":1.0}}},"w":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"121":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"93":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"68":{"tf":1.0}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.0}}}}}}}},"o":{"a":{"df":0,"docs":{},"f":{":":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}}}}}},"df":1,"docs":{"130":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":3,"docs":{"178":{"tf":1.0},"190":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"0":{"tf":1.0},"121":{"tf":2.0},"152":{"tf":1.0},"241":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":17,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"o":{"d":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}},"df":1,"docs":{"131":{"tf":1.4142135623730951}}},"r":{"c":{"df":2,"docs":{"181":{"tf":1.0},"186":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"199":{"tf":1.0},"77":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"175":{"tf":1.0}}}}}},"v":{"df":1,"docs":{"200":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"94":{"tf":1.0}}}}},"k":{"df":1,"docs":{"279":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"28":{"tf":1.0},"42":{"tf":1.0}}},"t":{"df":39,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"170":{"tf":1.4142135623730951},"172":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.0},"192":{"tf":1.4142135623730951},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":1.7320508075688772},"66":{"tf":1.0}}}},"df":17,"docs":{"105":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"264":{"tf":1.0},"275":{"tf":1.0},"31":{"tf":1.0}}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"16":{"tf":1.0},"160":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":55,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"r":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"199":{"tf":1.0},"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":3,"docs":{"17":{"tf":1.0},"175":{"tf":1.0},"199":{"tf":1.0}}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":23,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"151":{"tf":1.0},"184":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"218":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"288":{"tf":1.0},"29":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":11,"docs":{"13":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"251":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"26":{"tf":1.0},"274":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":9,"docs":{"13":{"tf":1.0},"141":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"102":{"tf":1.0},"140":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0}},"i":{"df":7,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"258":{"tf":1.0},"94":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":9,"docs":{"139":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"59":{"tf":1.0},"94":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"175":{"tf":1.4142135623730951},"209":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"35":{"tf":1.0},"57":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"df":2,"docs":{"201":{"tf":1.0},"289":{"tf":1.0}}},"df":2,"docs":{"152":{"tf":1.0},"234":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"245":{"tf":1.0},"77":{"tf":1.0}}}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"g":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"133":{"tf":1.0}}}},"p":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"210":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":1,"docs":{"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":16,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"149":{"tf":1.0},"154":{"tf":1.0},"189":{"tf":1.0},"222":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"264":{"tf":1.0},"276":{"tf":1.0},"74":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"195":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"(":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":5,"docs":{"104":{"tf":1.0},"218":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":3.1622776601683795},"132":{"tf":1.4142135623730951}},"h":{"df":0,"docs":{},"u":{"b":{"df":54,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.4142135623730951},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":23,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"12":{"tf":1.0},"137":{"tf":1.0},"154":{"tf":1.0},"163":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0}},"n":{"df":3,"docs":{"184":{"tf":1.0},"276":{"tf":1.0},"88":{"tf":1.0}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"/":{"1":{"3":{"5":{"5":{"6":{"1":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"193":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"55":{"tf":1.4142135623730951},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"df":11,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"168":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"209":{"tf":1.0},"247":{"tf":1.0},"253":{"tf":1.0},"270":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":2,"docs":{"136":{"tf":1.0},"79":{"tf":1.0}}},"o":{"d":{"df":7,"docs":{"109":{"tf":1.0},"112":{"tf":1.0},"192":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0},"290":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"112":{"tf":1.0},"256":{"tf":1.0},"271":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"227":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"259":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"108":{"tf":1.0},"282":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"df":29,"docs":{"0":{"tf":1.4142135623730951},"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.7320508075688772},"181":{"tf":2.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"225":{"tf":2.0},"227":{"tf":1.0},"228":{"tf":1.7320508075688772},"229":{"tf":1.0},"243":{"tf":1.4142135623730951},"252":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"28":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":2.6457513110645907},"44":{"tf":1.4142135623730951},"81":{"tf":1.0}},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"236":{"tf":1.0},"239":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"p":{"df":1,"docs":{"189":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"121":{"tf":1.4142135623730951},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"288":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"78":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":8,"docs":{"160":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}},"w":{"df":1,"docs":{"92":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":7,"docs":{"14":{"tf":1.0},"159":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"209":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"109":{"tf":1.0}}},"t":{"df":2,"docs":{"103":{"tf":1.0},"108":{"tf":1.4142135623730951}}}}},"i":{"d":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"188":{"tf":1.0}}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.0},"219":{"tf":1.0},"269":{"tf":1.0}}},"df":12,"docs":{"12":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0}}},"o":{":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"12":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0}},"l":{"df":2,"docs":{"218":{"tf":1.0},"87":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"k":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"109":{"tf":1.0},"140":{"tf":1.0},"206":{"tf":1.0},"4":{"tf":1.0}}}}}},"r":{"d":{"df":14,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"149":{"tf":1.0},"168":{"tf":1.0},"171":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"241":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"182":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":4,"docs":{"102":{"tf":1.0},"13":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":5,"docs":{"114":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"208":{"tf":1.0},"42":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":1,"docs":{"52":{"tf":1.4142135623730951}}}},"l":{"df":2,"docs":{"156":{"tf":1.0},"267":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":12,"docs":{"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.0},"20":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"79":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"251":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":2,"docs":{"276":{"tf":1.0},"48":{"tf":1.0}},"e":{"a":{"d":{"df":1,"docs":{"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"124":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.4142135623730951},"167":{"tf":1.0},"199":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"48":{"tf":1.0},"98":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"(":{"'":{"df":0,"docs":{},"x":{"df":1,"docs":{"102":{"tf":2.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":2.23606797749979},"235":{"tf":1.0},"239":{"tf":1.0}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.0},"269":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"15":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"175":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}}}},"p":{"df":32,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"16":{"tf":1.0},"169":{"tf":1.4142135623730951},"175":{"tf":1.0},"176":{"tf":1.0},"187":{"tf":1.0},"191":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":2.0},"243":{"tf":1.7320508075688772},"244":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.7320508075688772},"276":{"tf":2.0},"281":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0}}}},"n":{"c":{"df":2,"docs":{"183":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"'":{"df":4,"docs":{"102":{"tf":1.0},"118":{"tf":1.0},"201":{"tf":1.0},"95":{"tf":1.0}}},"df":10,"docs":{"102":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.0},"134":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"253":{"tf":1.0},"277":{"tf":1.0},"289":{"tf":1.0},"55":{"tf":1.0}}},"i":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"288":{"tf":1.0},"38":{"tf":1.0}}}}}}}},"i":{"df":5,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"151":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":18,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"198":{"tf":1.7320508075688772},"226":{"tf":1.0},"231":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.0},"90":{"tf":1.4142135623730951},"92":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":7,"docs":{"181":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"269":{"tf":1.0},"55":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":16,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"6":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"199":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"152":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":2,"docs":{"235":{"tf":1.0},"240":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":21,"docs":{"1":{"tf":1.4142135623730951},"127":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"181":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"247":{"tf":1.7320508075688772},"262":{"tf":1.4142135623730951},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"30":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}},"s":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":6,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}}},"t":{"df":0,"docs":{},"p":{"/":{"1":{".":{"1":{"df":3,"docs":{"127":{"tf":1.0},"45":{"tf":1.4142135623730951},"98":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{".":{"0":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"200":{"tf":1.0}}},":":{"/":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"2":{"0":{"0":{"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"#":{"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{"_":{"3":{".":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"m":{"df":0,"docs":{},"y":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"129":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"c":{"a":{"b":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"131":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"9":{"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"d":{"c":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"1":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"a":{".":{"df":0,"docs":{},"t":{"c":{"d":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"2":{"2":{"6":{"2":{"/":{"9":{"1":{"4":{"0":{"7":{"df":1,"docs":{"125":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"1":{"9":{"9":{"9":{"/":{"0":{"2":{"/":{"2":{"2":{"df":3,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"0":{"0":{"/":{"0":{"1":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":2,"docs":{"124":{"tf":1.7320508075688772},"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"/":{"df":0,"docs":{},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"2":{"/":{"0":{"7":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"#":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"124":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"f":{"/":{"0":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":38,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.4142135623730951},"229":{"tf":1.0},"235":{"tf":1.0},"263":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.4142135623730951},"55":{"tf":1.0},"64":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"40":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"114":{"tf":1.0},"116":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"58":{"tf":1.4142135623730951}}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":2,"docs":{"59":{"tf":1.0},"61":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"63":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}}}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"62":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"65":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"1":{"df":1,"docs":{"108":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":5,"docs":{"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"58":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"/":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"163":{"tf":1.4142135623730951}}}}}}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":14,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":2.8284271247461903},"39":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"a":{"df":12,"docs":{"116":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":7,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"166":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"36":{"tf":1.0},"38":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"56":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":9,"docs":{"116":{"tf":1.0},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"116":{"tf":1.0}}}}}},"df":1,"docs":{"116":{"tf":1.0}}}}},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.4142135623730951}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"1":{"df":1,"docs":{"72":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"29":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"29":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":4,"docs":{"184":{"tf":1.0},"50":{"tf":2.23606797749979},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"1":{"2":{"3":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":2,"docs":{"204":{"tf":1.0},"205":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}},"c":{"df":1,"docs":{"40":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"204":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"s":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"h":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"252":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"184":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"y":{".":{"d":{"d":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"7":{"7":{"7":{"7":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"123":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"2":{"0":{"1":{"2":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"f":{"2":{"df":0,"docs":{},"f":{"5":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"1":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":6,"docs":{"14":{"tf":1.7320508075688772},"196":{"tf":1.0},"245":{"tf":1.0},"29":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"161":{"tf":1.0},"163":{"tf":1.0}}}}}},"i":{"'":{"d":{"df":3,"docs":{"168":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"120":{"tf":1.0}}}},"m":{"df":10,"docs":{"12":{"tf":1.0},"126":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"161":{"tf":1.7320508075688772},"162":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"177":{"tf":1.0},"189":{"tf":1.0},"245":{"tf":1.0}}},"v":{"df":6,"docs":{"12":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0}}}},".":{"df":4,"docs":{"132":{"tf":1.0},"28":{"tf":1.0},"39":{"tf":1.0},"64":{"tf":1.0}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.7320508075688772},"18":{"tf":1.0},"200":{"tf":1.0}}}}},"d":{"df":28,"docs":{"116":{"tf":1.0},"145":{"tf":1.0},"156":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"40":{"tf":2.0},"45":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951},"52":{"tf":1.4142135623730951},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0},"76":{"tf":1.0}},"e":{"a":{"df":12,"docs":{"112":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":2.23606797749979},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"281":{"tf":1.4142135623730951},"288":{"tf":1.7320508075688772},"79":{"tf":1.0}},"l":{"df":2,"docs":{"156":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"197":{"tf":1.4142135623730951},"256":{"tf":1.0},"82":{"tf":1.0},"94":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":25,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"124":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":2.0},"191":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":2.0},"226":{"tf":1.0},"256":{"tf":1.0},"268":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"172":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"17":{"tf":1.0},"25":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"236":{"tf":1.0},"247":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"90":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":38,"docs":{"102":{"tf":1.4142135623730951},"109":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"138":{"tf":1.7320508075688772},"14":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.4142135623730951},"17":{"tf":1.7320508075688772},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":2.449489742783178},"241":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"39":{"tf":1.0},"48":{"tf":1.0},"81":{"tf":1.4142135623730951},"87":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":31,"docs":{"1":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"157":{"tf":1.7320508075688772},"162":{"tf":2.449489742783178},"164":{"tf":1.0},"166":{"tf":1.4142135623730951},"18":{"tf":1.0},"185":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"263":{"tf":1.0},"283":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":4,"docs":{"18":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.0},"265":{"tf":1.0}}}}}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":2,"docs":{"201":{"tf":1.0},"254":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}},"h":{"df":1,"docs":{"248":{"tf":1.0}}},"l":{"df":0,"docs":{},"u":{"d":{"df":22,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"12":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"210":{"tf":1.0},"25":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"42":{"tf":1.0},"45":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"189":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":1.7320508075688772}}}}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"117":{"tf":1.0},"242":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"260":{"tf":1.4142135623730951}}}},"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"114":{"tf":1.0}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"105":{"tf":1.0},"209":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":6,"docs":{"112":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.7320508075688772},"224":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"247":{"tf":2.0}}}},"i":{"c":{"df":4,"docs":{"205":{"tf":1.4142135623730951},"52":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":9,"docs":{"132":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"157":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}},"r":{"df":0,"docs":{},"m":{"df":39,"docs":{"107":{"tf":1.0},"108":{"tf":1.0},"110":{"tf":1.0},"12":{"tf":1.4142135623730951},"148":{"tf":1.0},"152":{"tf":1.4142135623730951},"16":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":2.23606797749979},"246":{"tf":1.0},"25":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.0},"30":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":2,"docs":{"160":{"tf":1.0},"271":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.4142135623730951}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"128":{"tf":1.0},"134":{"tf":1.0},"14":{"tf":1.0},"193":{"tf":1.0},"234":{"tf":1.0},"288":{"tf":1.0}}}}},"l":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":1,"docs":{"12":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"149":{"tf":1.0},"242":{"tf":1.0},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"181":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":4,"docs":{"111":{"tf":1.0},"34":{"tf":1.0},"76":{"tf":1.4142135623730951},"92":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":4,"docs":{"154":{"tf":1.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":6,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":12,"docs":{"151":{"tf":1.0},"152":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.4142135623730951},"277":{"tf":1.0},"53":{"tf":1.0}}},"n":{"c":{"df":6,"docs":{"189":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"49":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"84":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":14,"docs":{"142":{"tf":1.0},"163":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"252":{"tf":1.0},"254":{"tf":1.0},"269":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"270":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":6,"docs":{"175":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":1.0},"67":{"tf":1.4142135623730951},"71":{"tf":1.0}},"r":{"df":6,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.4142135623730951}}}}}},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}},"t":{"df":2,"docs":{"12":{"tf":1.0},"189":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"141":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"269":{"tf":1.4142135623730951},"82":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"252":{"tf":1.0},"288":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}}},"f":{"a":{"c":{"df":6,"docs":{"189":{"tf":1.0},"235":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"56":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"n":{"df":5,"docs":{"145":{"tf":1.0},"184":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"76":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"16":{"tf":1.0},"199":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.7320508075688772},"176":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"78":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"208":{"tf":1.0},"211":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"180":{"tf":1.0},"182":{"tf":1.0},"253":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"189":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"c":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":9,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"180":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"241":{"tf":1.0},"254":{"tf":1.0}},"t":{"df":2,"docs":{"13":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"190":{"tf":1.0},"31":{"tf":1.0}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"117":{"tf":1.0},"184":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"193":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0}},"i":{"df":1,"docs":{"260":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"106":{"tf":1.7320508075688772},"108":{"tf":2.23606797749979},"109":{"tf":2.0},"118":{"tf":1.4142135623730951},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"251":{"tf":1.0},"254":{"tf":2.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":4,"docs":{"10":{"tf":1.0},"193":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"f":{"df":9,"docs":{"10":{"tf":1.0},"173":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":2.0},"210":{"tf":3.0},"211":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"s":{":":{"df":0,"docs":{},"q":{"df":0,"docs":{},"m":{"df":0,"docs":{},"x":{"6":{"df":0,"docs":{},"j":{"9":{"d":{"df":0,"docs":{},"h":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"b":{"c":{"b":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"2":{"df":0,"docs":{},"v":{"7":{"df":0,"docs":{},"g":{"5":{"df":0,"docs":{},"m":{"df":0,"docs":{},"z":{"b":{"1":{"1":{"df":0,"docs":{},"v":{"df":0,"docs":{},"u":{"9":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"9":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"v":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"283":{"tf":1.0}}}},"s":{"a":{"df":2,"docs":{"76":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":3,"docs":{"185":{"tf":1.0},"29":{"tf":1.0},"70":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"u":{"df":31,"docs":{"105":{"tf":1.4142135623730951},"112":{"tf":2.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.7320508075688772},"208":{"tf":1.0},"209":{"tf":1.0},"212":{"tf":1.0},"234":{"tf":1.0},"236":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.0},"256":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.4142135623730951},"77":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"t":{"'":{"df":30,"docs":{"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"264":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":19,"docs":{"114":{"tf":1.0},"12":{"tf":1.0},"142":{"tf":2.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"214":{"tf":1.4142135623730951},"241":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"39":{"tf":1.4142135623730951},"47":{"tf":1.0},"52":{"tf":1.0},"76":{"tf":1.0},"90":{"tf":1.4142135623730951}}},"r":{"df":2,"docs":{"118":{"tf":1.4142135623730951},"244":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":9,"docs":{"172":{"tf":1.0},"202":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.4142135623730951},"253":{"tf":1.0},"262":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}}}}},"j":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"20":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"n":{"df":1,"docs":{"71":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"41":{"tf":1.0}}}}}}},"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":4,"docs":{"117":{"tf":1.0},"26":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{},"o":{"b":{"df":3,"docs":{"14":{"tf":1.0},"210":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"@":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":3,"docs":{"177":{"tf":1.0},"276":{"tf":1.0},"287":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"287":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"h":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}},".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":6,"docs":{"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"228":{"tf":1.0},"243":{"tf":1.7320508075688772},"50":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.4142135623730951},"3":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":1,"docs":{"163":{"tf":2.0}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"s":{"df":5,"docs":{"102":{"tf":1.0},"129":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"284":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":69,"docs":{"0":{"tf":2.23606797749979},"1":{"tf":1.0},"10":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"120":{"tf":1.0},"129":{"tf":1.4142135623730951},"131":{"tf":1.7320508075688772},"132":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.7320508075688772},"155":{"tf":1.0},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"161":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"18":{"tf":1.7320508075688772},"182":{"tf":1.0},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"200":{"tf":2.0},"202":{"tf":2.6457513110645907},"203":{"tf":2.8284271247461903},"204":{"tf":2.449489742783178},"205":{"tf":3.4641016151377544},"206":{"tf":2.0},"22":{"tf":2.0},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.7320508075688772},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.7320508075688772},"38":{"tf":1.4142135623730951},"39":{"tf":3.3166247903554},"40":{"tf":2.0},"41":{"tf":1.7320508075688772},"42":{"tf":2.0},"43":{"tf":1.4142135623730951},"56":{"tf":1.0},"7":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.4142135623730951},"9":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"5":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"k":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":16,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"219":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}}},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":39,"docs":{"0":{"tf":1.7320508075688772},"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"105":{"tf":2.0},"108":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.7320508075688772},"119":{"tf":1.0},"121":{"tf":1.0},"143":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":2.0},"189":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"222":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":2.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.0},"81":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951}},"p":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"84":{"tf":1.0}}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":7,"docs":{"121":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":1,"docs":{"283":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":27,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.4142135623730951},"13":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"203":{"tf":1.0},"210":{"tf":1.7320508075688772},"220":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"37":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.4142135623730951},"93":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":8,"docs":{"176":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"244":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":2.23606797749979}}}},"df":0,"docs":{}}},"n":{"df":6,"docs":{"14":{"tf":1.0},"181":{"tf":1.0},"224":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":6,"docs":{"10":{"tf":1.0},"174":{"tf":1.0},"228":{"tf":1.7320508075688772},"232":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"k":{"df":12,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":28,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.4142135623730951},"220":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":2.0},"230":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"44":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"78":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"g":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"254":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"13":{"tf":1.0},"166":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"142":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":1.0},"159":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"61":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":1,"docs":{"260":{"tf":1.0}}}},"d":{"df":16,"docs":{"125":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.4142135623730951},"151":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":2.449489742783178},"206":{"tf":1.7320508075688772},"22":{"tf":1.0},"280":{"tf":1.0},"288":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"43":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"d":{"df":5,"docs":{"182":{"tf":1.0},"185":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"144":{"tf":1.0},"17":{"tf":1.4142135623730951},"188":{"tf":1.0},"190":{"tf":1.0},"226":{"tf":1.0},"242":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"v":{"df":2,"docs":{"262":{"tf":1.0},"5":{"tf":1.0}}}},"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}},"g":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"l":{"df":2,"docs":{"247":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"127":{"tf":1.0},"60":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"119":{"tf":1.0},"178":{"tf":1.0},"246":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"266":{"tf":1.7320508075688772}}}}}},"t":{"'":{"df":20,"docs":{"116":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.0},"132":{"tf":1.0},"143":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"177":{"tf":1.0},"204":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"117":{"tf":1.0},"62":{"tf":1.0}}}}},"’":{"df":1,"docs":{"199":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"165":{"tf":1.0},"90":{"tf":1.7320508075688772}}}}},"x":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"i":{"b":{"df":6,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":19,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"2":{"tf":1.7320508075688772},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":1.0},"272":{"tf":2.23606797749979},"278":{"tf":1.0},"279":{"tf":1.0},"280":{"tf":1.0},"283":{"tf":1.0},"285":{"tf":1.0},"41":{"tf":1.0}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"272":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":8,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":2,"docs":{"190":{"tf":1.0},"249":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"184":{"tf":1.0}}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":5,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":21,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"143":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"189":{"tf":1.0},"194":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":1.0},"59":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"n":{"df":0,"docs":{},"e":{"df":4,"docs":{"128":{"tf":1.0},"2":{"tf":1.0},"276":{"tf":1.0},"65":{"tf":1.0}},"r":{"df":2,"docs":{"237":{"tf":1.0},"274":{"tf":1.0}}}},"k":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":66,"docs":{"0":{"tf":2.0},"108":{"tf":1.0},"117":{"tf":1.4142135623730951},"120":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.6457513110645907},"14":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"156":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"23":{"tf":1.0},"243":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":2.449489742783178},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":2.23606797749979},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"44":{"tf":1.0},"5":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"80":{"tf":1.0}}},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"151":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.0},"139":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"162":{"tf":1.0},"187":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"38":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.0},"72":{"tf":1.0},"89":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"129":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":2.23606797749979},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0}}}},"t":{"df":0,"docs":{},"l":{"df":5,"docs":{"111":{"tf":1.0},"166":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"29":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":5,"docs":{"18":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0},"50":{"tf":1.0}}}}},"o":{"a":{"d":{"df":3,"docs":{"112":{"tf":1.0},"234":{"tf":1.7320508075688772},"48":{"tf":1.0}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"112":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.4142135623730951}}}}}},"i":{"d":{"df":2,"docs":{"162":{"tf":2.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"t":{"df":2,"docs":{"183":{"tf":1.7320508075688772},"209":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"k":{"df":3,"docs":{"12":{"tf":1.7320508075688772},"247":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":10,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0},"84":{"tf":1.0}},"i":{"c":{"df":7,"docs":{"166":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"g":{"df":16,"docs":{"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.0},"162":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"203":{"tf":1.4142135623730951},"269":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}}},"o":{"df":0,"docs":{},"k":{"df":19,"docs":{"116":{"tf":1.0},"12":{"tf":1.0},"126":{"tf":1.0},"141":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"154":{"tf":1.4142135623730951},"182":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"225":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"94":{"tf":1.0}}},"t":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":21,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"209":{"tf":1.0},"216":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.4142135623730951},"41":{"tf":1.0},"77":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"234":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"210":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"h":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"241":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"m":{"a":{"c":{"df":2,"docs":{"151":{"tf":1.0},"247":{"tf":1.0}},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":20,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":2.0},"152":{"tf":1.0},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"242":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":10,"docs":{"112":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"163":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"14":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"229":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"168":{"tf":1.0},"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"199":{"tf":1.0},"289":{"tf":1.4142135623730951}}}}},"k":{"df":0,"docs":{},"e":{"df":92,"docs":{"0":{"tf":2.0},"106":{"tf":1.0},"109":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"17":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"184":{"tf":2.0},"189":{"tf":1.0},"19":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.0},"197":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"203":{"tf":2.0},"204":{"tf":1.4142135623730951},"206":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"216":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.4142135623730951},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.7320508075688772},"243":{"tf":2.23606797749979},"246":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"274":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.4142135623730951},"38":{"tf":2.0},"39":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.4142135623730951},"77":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"83":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"g":{"df":15,"docs":{"105":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"20":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"247":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"86":{"tf":1.0}}}},"df":3,"docs":{"102":{"tf":1.0},"193":{"tf":1.0},"97":{"tf":1.0}},"i":{"df":31,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"137":{"tf":1.0},"142":{"tf":2.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"220":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"55":{"tf":1.0},"59":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"285":{"tf":1.0}}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"14":{"tf":1.0},"156":{"tf":1.0},"186":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.0}}}},"df":1,"docs":{"288":{"tf":1.0}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"250":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"df":10,"docs":{"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"205":{"tf":2.0},"219":{"tf":1.0},"228":{"tf":1.0},"283":{"tf":1.0},"39":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"228":{"tf":1.0}}},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":8,"docs":{"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"58":{"tf":1.0},"66":{"tf":1.4142135623730951}}}}}},"df":2,"docs":{"20":{"tf":1.0},"269":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":5,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":8,"docs":{"103":{"tf":1.0},"118":{"tf":2.0},"127":{"tf":1.0},"143":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}}},"h":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"(":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"33":{"tf":1.0}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"119":{"tf":1.0},"166":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}}}}},"x":{"df":5,"docs":{"289":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.4142135623730951},"68":{"tf":1.0}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"60":{"tf":1.0}}}}}}},"y":{"b":{"df":3,"docs":{"107":{"tf":1.0},"269":{"tf":1.0},"78":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"50":{"tf":2.23606797749979},"51":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}},"n":{"df":73,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":1.0},"121":{"tf":1.0},"128":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.0},"14":{"tf":1.7320508075688772},"140":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.0},"16":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":2.449489742783178},"196":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.4142135623730951},"210":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.4142135623730951},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"40":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":2,"docs":{"193":{"tf":1.0},"209":{"tf":1.0}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"197":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"253":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"149":{"tf":1.0},"167":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.7320508075688772},"199":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"m":{"a":{"df":2,"docs":{"276":{"tf":1.0},"287":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"140":{"tf":1.0},"142":{"tf":2.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"280":{"tf":1.0},"41":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"189":{"tf":1.0},"195":{"tf":1.0},"243":{"tf":1.0},"282":{"tf":1.0},"76":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"u":{"df":3,"docs":{"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"g":{"df":4,"docs":{"121":{"tf":1.0},"14":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.4142135623730951}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"178":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"102":{"tf":1.0},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"137":{"tf":1.4142135623730951},"276":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":8,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"100":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"102":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"71":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"132":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}}},"k":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"101":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"39":{"tf":1.0},"45":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"i":{"c":{"df":2,"docs":{"240":{"tf":1.0},"76":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"d":{"df":7,"docs":{"0":{"tf":1.0},"128":{"tf":1.0},"191":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"m":{"df":2,"docs":{"100":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"184":{"tf":1.0}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}}}}}}},"s":{"df":5,"docs":{"120":{"tf":1.0},"140":{"tf":1.0},"201":{"tf":1.4142135623730951},"204":{"tf":1.0},"263":{"tf":1.0}}}},"t":{"df":9,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}},"m":{"df":1,"docs":{"70":{"tf":1.0}}},"o":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"282":{"tf":1.0},"285":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":46,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":2.23606797749979},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.0},"193":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"231":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"244":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.0},"92":{"tf":1.4142135623730951},"94":{"tf":1.0}}},"r":{"df":1,"docs":{"256":{"tf":1.0}},"n":{"df":3,"docs":{"196":{"tf":1.0},"247":{"tf":1.0},"261":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"229":{"tf":1.0}},"i":{"df":4,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"168":{"tf":1.0},"56":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":7,"docs":{"0":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"25":{"tf":1.4142135623730951},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"81":{"tf":1.0}}}},"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"160":{"tf":1.0},"220":{"tf":1.0},"245":{"tf":1.0},"249":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"112":{"tf":1.0},"17":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{".":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"38":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":89,"docs":{"0":{"tf":1.4142135623730951},"111":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"145":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":2.23606797749979},"194":{"tf":1.7320508075688772},"196":{"tf":1.4142135623730951},"197":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"229":{"tf":1.7320508075688772},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.7320508075688772},"243":{"tf":1.0},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"263":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.0},"276":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.7320508075688772},"32":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.4142135623730951},"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.4142135623730951},"93":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"190":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":3,"docs":{"11":{"tf":1.0},"112":{"tf":1.0},"6":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":4,"docs":{"122":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.4142135623730951}}}}},"r":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}},"u":{"c":{"df":0,"docs":{},"h":{"df":11,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"161":{"tf":1.0},"163":{"tf":1.0},"17":{"tf":1.4142135623730951},"180":{"tf":1.0},"186":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"146":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":26,"docs":{"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"262":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"80":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":1,"docs":{"266":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.4142135623730951},"18":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"98":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":4,"docs":{"123":{"tf":1.7320508075688772},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":26,"docs":{"0":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"181":{"tf":1.7320508075688772},"182":{"tf":2.0},"184":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":2.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":2.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"76":{"tf":1.0},"97":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"261":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"254":{"tf":1.0}}}},"v":{"df":5,"docs":{"175":{"tf":1.4142135623730951},"187":{"tf":1.0},"188":{"tf":1.0},"192":{"tf":1.0},"79":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":4,"docs":{"154":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"52":{"tf":1.0}}}}}},"df":9,"docs":{"128":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.4142135623730951},"65":{"tf":1.4142135623730951},"66":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"77":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"177":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.0},"51":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"35":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":62,"docs":{"101":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.23606797749979},"14":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"157":{"tf":1.0},"16":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"217":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.7320508075688772},"239":{"tf":1.0},"241":{"tf":2.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772},"249":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"39":{"tf":1.0}}}}}},"o":{"4":{"df":0,"docs":{},"j":{"df":6,"docs":{"174":{"tf":1.0},"227":{"tf":2.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":13,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"34":{"tf":1.4142135623730951},"39":{"tf":2.449489742783178},"40":{"tf":2.6457513110645907},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.449489742783178},"86":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"112":{"tf":1.0},"40":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":5,"docs":{"111":{"tf":1.0},"12":{"tf":1.4142135623730951},"208":{"tf":1.0},"22":{"tf":1.0},"242":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"210":{"tf":1.0},"90":{"tf":1.0}}}}},"w":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"179":{"tf":1.0}}}}},"df":43,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"13":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.7320508075688772},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":2.23606797749979},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":1.0},"74":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"108":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951}},"n":{"df":5,"docs":{"117":{"tf":1.0},"121":{"tf":1.0},"42":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":3,"docs":{"10":{"tf":1.0},"289":{"tf":1.4142135623730951},"290":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":14,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"155":{"tf":1.0},"180":{"tf":1.0},"224":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"5":{"tf":1.0}},"j":{"df":2,"docs":{"20":{"tf":1.0},"238":{"tf":1.0}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":8,"docs":{"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.0},"288":{"tf":1.0}}}}},"t":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":13,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.7320508075688772},"182":{"tf":2.23606797749979},"184":{"tf":2.6457513110645907},"190":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"220":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.4142135623730951},"33":{"tf":1.4142135623730951},"51":{"tf":1.0}},"j":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":7,"docs":{"141":{"tf":1.0},"152":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}},"e":{"df":4,"docs":{"103":{"tf":1.0},"4":{"tf":1.0},"48":{"tf":1.0},"60":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"152":{"tf":1.0},"163":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"213":{"tf":1.0},"222":{"tf":2.23606797749979}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"156":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"129":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":14,"docs":{"100":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"245":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0}}},"i":{"c":{"df":4,"docs":{"112":{"tf":1.0},"154":{"tf":1.0},"29":{"tf":1.0},"52":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"201":{"tf":1.0},"250":{"tf":1.0},"282":{"tf":1.4142135623730951}},"i":{"df":1,"docs":{"111":{"tf":1.0}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"w":{"df":25,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"118":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.4142135623730951},"152":{"tf":2.0},"154":{"tf":2.0},"159":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"236":{"tf":1.0},"245":{"tf":1.0},"263":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0}}}},"p":{"df":0,"docs":{},"m":{"df":2,"docs":{"238":{"tf":1.0},"272":{"tf":1.4142135623730951}}}},"s":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":3,"docs":{"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0}}},"u":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"190":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"0":{"tf":1.0},"114":{"tf":1.0},"142":{"tf":1.0},"216":{"tf":1.4142135623730951},"250":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"62":{"tf":1.0},"68":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{".":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"186":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":25,"docs":{"115":{"tf":1.0},"117":{"tf":1.7320508075688772},"131":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"26":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"51":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"111":{"tf":1.0},"180":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{}},"d":{"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"129":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"132":{"tf":1.0},"183":{"tf":1.4142135623730951},"194":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":2.8284271247461903},"76":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"61":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"209":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"i":{"d":{"c":{"df":2,"docs":{"197":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"k":{"df":3,"docs":{"118":{"tf":1.0},"223":{"tf":1.0},"45":{"tf":1.0}}},"l":{"d":{"df":3,"docs":{"12":{"tf":1.0},"128":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"n":{"c":{"df":5,"docs":{"112":{"tf":1.0},"162":{"tf":1.0},"262":{"tf":1.0},"28":{"tf":1.0},"289":{"tf":1.0}}},"df":56,"docs":{"103":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":2.0},"119":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"127":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"144":{"tf":1.0},"146":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.4142135623730951},"17":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.4142135623730951},"237":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"261":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.7320508075688772},"33":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"74":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"89":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"39":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":6,"docs":{"193":{"tf":1.0},"209":{"tf":1.0},"254":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"39":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":2,"docs":{"177":{"tf":1.0},"287":{"tf":1.0}}}}},"df":3,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":11,"docs":{"126":{"tf":1.0},"14":{"tf":1.0},"160":{"tf":2.23606797749979},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"186":{"tf":1.4142135623730951},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"p":{"df":2,"docs":{"129":{"tf":1.0},"131":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":3,"docs":{"139":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":1.0}}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}}}}}}},"df":37,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.4142135623730951},"17":{"tf":1.0},"183":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"272":{"tf":1.0},"281":{"tf":1.0},"290":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"r":{"df":3,"docs":{"129":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"190":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"23":{"tf":1.0},"248":{"tf":1.0}}},"o":{"df":0,"docs":{},"n":{"df":20,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0},"271":{"tf":1.4142135623730951},"46":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"74":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":14,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"139":{"tf":1.0},"180":{"tf":1.4142135623730951},"187":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"246":{"tf":1.0},"270":{"tf":1.4142135623730951},"5":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"93":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"0":{"tf":1.0},"231":{"tf":1.0},"244":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"289":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"205":{"tf":1.0},"249":{"tf":1.0},"95":{"tf":1.0}}}}}},"m":{"df":3,"docs":{"186":{"tf":1.0},"26":{"tf":1.0},"58":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"106":{"tf":1.0},"15":{"tf":1.0},"159":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"234":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"265":{"tf":1.0},"3":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"t":{"df":14,"docs":{"117":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.7320508075688772},"162":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"203":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"60":{"tf":1.4142135623730951}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"250":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":17,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"12":{"tf":1.0},"152":{"tf":1.0},"17":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"226":{"tf":2.0},"244":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.4142135623730951},"97":{"tf":1.0}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":3,"docs":{"0":{"tf":1.0},"270":{"tf":1.0},"6":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"139":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"l":{"df":4,"docs":{"124":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.7320508075688772},"78":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"90":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"108":{"tf":1.0},"181":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"232":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0}}}}}}}}}}},"p":{"2":{"df":0,"docs":{},"p":{"df":2,"docs":{"111":{"tf":1.0},"132":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"271":{"tf":1.0}}}},"df":2,"docs":{"240":{"tf":1.0},"250":{"tf":1.0}}}},"df":1,"docs":{"124":{"tf":1.7320508075688772}},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":1,"docs":{"142":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":62,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":2.0},"155":{"tf":1.4142135623730951},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"n":{"df":11,"docs":{"0":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"81":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"152":{"tf":1.0},"254":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":3,"docs":{"121":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"m":{"df":2,"docs":{"108":{"tf":1.0},"143":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"114":{"tf":1.0},"139":{"tf":1.4142135623730951},"143":{"tf":2.0},"146":{"tf":1.0},"46":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":12,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"154":{"tf":1.0},"198":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.4142135623730951}}}}},"s":{"df":10,"docs":{"118":{"tf":1.0},"128":{"tf":1.0},"177":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"244":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"206":{"tf":1.0},"41":{"tf":1.7320508075688772}}}}},"t":{"df":37,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"81":{"tf":1.7320508075688772}},"i":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"13":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"227":{"tf":1.0}}}},"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"254":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"256":{"tf":1.0}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"103":{"tf":1.0},"143":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{}}}}},"t":{"df":4,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"20":{"tf":1.0},"251":{"tf":1.0}}}},"t":{":":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"h":{"_":{"1":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"123":{"tf":1.4142135623730951},"124":{"tf":1.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.7320508075688772},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"195":{"tf":1.4142135623730951}},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":2,"docs":{"126":{"tf":1.0},"288":{"tf":1.0}},"h":{"df":22,"docs":{"0":{"tf":1.0},"131":{"tf":2.0},"16":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":2.23606797749979},"199":{"tf":1.0},"229":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"40":{"tf":1.4142135623730951},"44":{"tf":1.0},"47":{"tf":1.7320508075688772},"49":{"tf":2.23606797749979},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772},"7":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"y":{"df":1,"docs":{"181":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"247":{"tf":1.0},"252":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}}},"df":5,"docs":{"129":{"tf":1.0},"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"209":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"0":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.4142135623730951},"159":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"e":{"1":{"2":{"3":{".":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"r":{"df":4,"docs":{"100":{"tf":1.0},"142":{"tf":1.7320508075688772},"198":{"tf":1.0},"289":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"246":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"185":{"tf":1.0},"228":{"tf":1.0},"72":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":25,"docs":{"118":{"tf":1.4142135623730951},"121":{"tf":1.0},"128":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.4142135623730951},"140":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"198":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"213":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"76":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"p":{"df":8,"docs":{"129":{"tf":1.0},"130":{"tf":1.0},"163":{"tf":1.0},"189":{"tf":1.0},"252":{"tf":1.4142135623730951},"283":{"tf":1.0},"31":{"tf":1.0},"74":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":2,"docs":{"181":{"tf":1.0},"202":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"n":{"df":1,"docs":{"276":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"145":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"263":{"tf":1.0},"282":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":8,"docs":{"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"119":{"tf":1.0},"143":{"tf":1.4142135623730951},"146":{"tf":1.0},"195":{"tf":1.4142135623730951},"222":{"tf":1.0},"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"210":{"tf":1.0}}},"df":20,"docs":{"10":{"tf":1.0},"12":{"tf":1.4142135623730951},"130":{"tf":2.0},"132":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"193":{"tf":1.7320508075688772},"210":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":2.6457513110645907},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":2.0},"260":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":2.23606797749979}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"208":{"tf":1.0}}}}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"100":{"tf":1.0},"247":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"163":{"tf":1.0},"241":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":9,"docs":{"0":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"252":{"tf":1.7320508075688772},"256":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":2.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":7,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"203":{"tf":2.23606797749979},"22":{"tf":1.0},"263":{"tf":1.0}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"136":{"tf":1.0}}}}}}}},"n":{"df":1,"docs":{"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":3.7416573867739413}}}}}}},"y":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"195":{"tf":1.0},"26":{"tf":1.0},"290":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":3,"docs":{"5":{"tf":1.0},"61":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":2,"docs":{"154":{"tf":1.0},"208":{"tf":1.0}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.4142135623730951},"239":{"tf":1.0},"267":{"tf":1.0}}}}}}},"o":{"d":{"df":3,"docs":{"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"200":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":17,"docs":{"106":{"tf":1.0},"108":{"tf":1.0},"111":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"47":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"131":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"239":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":5,"docs":{"121":{"tf":1.0},"17":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"227":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":31,"docs":{"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"17":{"tf":2.0},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"22":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"40":{"tf":1.0},"48":{"tf":1.0},"50":{"tf":1.0},"57":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":7,"docs":{"115":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"162":{"tf":1.0},"195":{"tf":1.7320508075688772},"240":{"tf":1.0},"289":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"10":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":24,"docs":{"130":{"tf":1.4142135623730951},"133":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":2.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.4142135623730951},"195":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.7320508075688772},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":8,"docs":{"18":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":4,"docs":{"120":{"tf":1.0},"20":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":19,"docs":{"132":{"tf":1.0},"172":{"tf":1.4142135623730951},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.23606797749979},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.0},"196":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0}},"t":{"df":3,"docs":{"242":{"tf":1.0},"248":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"251":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"178":{"tf":1.0},"265":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"x":{"df":5,"docs":{"123":{"tf":1.0},"126":{"tf":3.0},"127":{"tf":2.0},"130":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"176":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.4142135623730951},"141":{"tf":1.0},"144":{"tf":1.0},"177":{"tf":1.4142135623730951},"232":{"tf":1.0},"274":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}},"s":{"df":3,"docs":{"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"154":{"tf":2.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"106":{"tf":1.0},"186":{"tf":1.0},"19":{"tf":1.0},"232":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"162":{"tf":1.7320508075688772},"173":{"tf":1.0},"184":{"tf":1.0},"199":{"tf":1.0},"223":{"tf":1.0},"252":{"tf":1.0},"97":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":4,"docs":{"151":{"tf":1.0},"235":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":8,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"177":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"81":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"118":{"tf":1.4142135623730951}}}}}}}},"df":1,"docs":{"252":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":3,"docs":{"181":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0}}}},"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"16":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"276":{"tf":2.0}}}},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"260":{"tf":1.0},"83":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"210":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"102":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"105":{"tf":1.4142135623730951},"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"166":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"191":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":11,"docs":{"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"137":{"tf":1.0},"142":{"tf":1.0},"17":{"tf":1.0},"180":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"77":{"tf":1.4142135623730951}}}}}},"c":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":13,"docs":{"106":{"tf":1.0},"107":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.7320508075688772},"137":{"tf":1.0},"148":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"42":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":8,"docs":{"162":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.4142135623730951},"268":{"tf":1.0},"271":{"tf":1.0}},"t":{"df":12,"docs":{"128":{"tf":1.0},"176":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":2.6457513110645907},"249":{"tf":1.7320508075688772},"250":{"tf":1.7320508075688772},"268":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"114":{"tf":1.0},"127":{"tf":1.0},"163":{"tf":1.0},"241":{"tf":1.4142135623730951},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0}},"e":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":4,"docs":{"139":{"tf":1.0},"185":{"tf":1.0},"200":{"tf":1.0},"288":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":2,"docs":{"185":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"110":{"tf":1.0},"201":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0}}}}}}},"h":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":22,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"219":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0},"288":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":2,"docs":{"110":{"tf":1.0},"112":{"tf":1.0}}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"111":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"13":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":1.0},"266":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":79,"docs":{"0":{"tf":2.0},"114":{"tf":1.0},"118":{"tf":1.7320508075688772},"139":{"tf":2.23606797749979},"14":{"tf":1.7320508075688772},"140":{"tf":1.4142135623730951},"142":{"tf":2.449489742783178},"143":{"tf":2.23606797749979},"148":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"172":{"tf":1.7320508075688772},"174":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":2.23606797749979},"192":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"196":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"209":{"tf":1.7320508075688772},"213":{"tf":1.7320508075688772},"214":{"tf":1.7320508075688772},"215":{"tf":2.23606797749979},"219":{"tf":1.7320508075688772},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":2.23606797749979},"229":{"tf":1.7320508075688772},"230":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":3.605551275463989},"31":{"tf":2.6457513110645907},"32":{"tf":1.0},"33":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":2.0},"44":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":2.8284271247461903},"57":{"tf":1.0},"58":{"tf":3.1622776601683795},"59":{"tf":1.0},"60":{"tf":2.449489742783178},"74":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"76":{"tf":3.3166247903554},"79":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"y":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"219":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"54":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":11,"docs":{"120":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"136":{"tf":1.0},"14":{"tf":1.0},"168":{"tf":1.0},"173":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"v":{":":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"w":{"a":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}},"e":{"df":7,"docs":{"114":{"tf":1.0},"132":{"tf":1.0},"256":{"tf":1.7320508075688772},"82":{"tf":1.0},"91":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}}},"i":{"d":{"df":33,"docs":{"0":{"tf":1.7320508075688772},"108":{"tf":1.4142135623730951},"121":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"159":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"205":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"247":{"tf":1.7320508075688772},"249":{"tf":1.0},"252":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"46":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"95":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"111":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"103":{"tf":1.0}}}},"df":15,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.0},"197":{"tf":1.0},"258":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":4,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"31":{"tf":1.0},"85":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":7,"docs":{"148":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"18":{"tf":1.0},"250":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"114":{"tf":1.0},"18":{"tf":1.0}}}},"t":{"df":5,"docs":{"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}}}}}},"q":{"1":{"df":1,"docs":{"20":{"tf":1.4142135623730951}}},"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":2,"docs":{"268":{"tf":1.0},"269":{"tf":1.0}}},"u":{"a":{"d":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"148":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"260":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":34,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.4142135623730951},"114":{"tf":1.0},"12":{"tf":1.0},"130":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":2.23606797749979},"146":{"tf":1.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.0},"195":{"tf":1.4142135623730951},"214":{"tf":1.0},"218":{"tf":2.8284271247461903},"220":{"tf":1.4142135623730951},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":2.0},"235":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":2.23606797749979},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"254":{"tf":2.0},"262":{"tf":1.4142135623730951},"276":{"tf":1.0},"30":{"tf":1.0},"44":{"tf":1.7320508075688772},"46":{"tf":1.4142135623730951},"48":{"tf":1.4142135623730951},"7":{"tf":1.0},"81":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":7,"docs":{"190":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":2.6457513110645907},"269":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"251":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"190":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"t":{"df":10,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"155":{"tf":1.0},"176":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"241":{"tf":1.0}}}},"x":{"df":1,"docs":{"131":{"tf":1.0}}}}},"r":{"a":{"b":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"200":{"tf":1.0}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"109":{"tf":1.0},"208":{"tf":1.0}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"194":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.0}}}},"w":{"df":1,"docs":{"249":{"tf":1.0}}},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"'":{"df":1,"docs":{"179":{"tf":1.0}}},"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0}}}}}},":":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"df":50,"docs":{"0":{"tf":1.7320508075688772},"10":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":2.449489742783178},"125":{"tf":1.0},"126":{"tf":2.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"132":{"tf":2.0},"151":{"tf":1.0},"172":{"tf":2.0},"175":{"tf":2.23606797749979},"176":{"tf":1.7320508075688772},"177":{"tf":3.0},"178":{"tf":1.0},"180":{"tf":2.23606797749979},"181":{"tf":2.8284271247461903},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"187":{"tf":1.0},"188":{"tf":1.7320508075688772},"189":{"tf":1.0},"190":{"tf":2.23606797749979},"191":{"tf":1.4142135623730951},"192":{"tf":2.8284271247461903},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":2.8284271247461903},"200":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"26":{"tf":1.0},"263":{"tf":1.0},"274":{"tf":1.0},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"32":{"tf":1.0},"38":{"tf":2.6457513110645907},"48":{"tf":1.7320508075688772},"51":{"tf":1.0},"78":{"tf":2.23606797749979}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"169":{"tf":1.0},"248":{"tf":1.0},"4":{"tf":1.0}}},"t":{"df":13,"docs":{"10":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":1.4142135623730951},"238":{"tf":1.4142135623730951},"240":{"tf":1.4142135623730951},"264":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}},"d":{"a":{"b":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"60":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"df":38,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.4142135623730951},"211":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.7320508075688772},"57":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":2.0},"90":{"tf":1.4142135623730951},"93":{"tf":1.0}},"m":{"df":2,"docs":{"152":{"tf":1.4142135623730951},"237":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":7,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"133":{"tf":1.0},"18":{"tf":1.0},"240":{"tf":1.4142135623730951},"267":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"269":{"tf":1.0}}}},"z":{"df":1,"docs":{"241":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"177":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"105":{"tf":1.0},"12":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.7320508075688772},"199":{"tf":1.0},"209":{"tf":1.0},"270":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":4,"docs":{"118":{"tf":1.0},"135":{"tf":1.4142135623730951},"248":{"tf":1.0},"254":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"242":{"tf":1.0},"245":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"160":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"243":{"tf":1.0}}},"z":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"d":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"195":{"tf":1.0}}}},"df":23,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"20":{"tf":1.0},"209":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"146":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"188":{"tf":1.0},"191":{"tf":1.4142135623730951},"197":{"tf":1.0},"272":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"216":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"g":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"234":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"62":{"tf":1.0}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}},"r":{"df":3,"docs":{"107":{"tf":1.4142135623730951},"20":{"tf":1.0},"39":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"228":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"170":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"202":{"tf":1.0},"206":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":8,"docs":{"163":{"tf":1.0},"228":{"tf":2.449489742783178},"266":{"tf":1.0},"33":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"79":{"tf":1.0}}}}}}}}}}},"df":5,"docs":{"160":{"tf":1.0},"176":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"s":{"df":4,"docs":{"152":{"tf":2.0},"19":{"tf":1.0},"20":{"tf":1.0},"289":{"tf":1.0}}}},"df":0,"docs":{},"v":{"df":8,"docs":{"163":{"tf":1.0},"18":{"tf":1.0},"244":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"289":{"tf":1.0},"45":{"tf":1.0}}}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":9,"docs":{"0":{"tf":1.0},"13":{"tf":1.0},"194":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.4142135623730951},"244":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.0},"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"175":{"tf":1.0},"215":{"tf":1.0}}},"o":{"a":{"d":{"df":1,"docs":{"235":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"77":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":14,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"131":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"252":{"tf":1.0},"276":{"tf":1.7320508075688772},"29":{"tf":1.0},"55":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"139":{"tf":1.0},"159":{"tf":1.0},"177":{"tf":1.4142135623730951},"264":{"tf":1.0},"31":{"tf":1.0},"41":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":4,"docs":{"131":{"tf":1.0},"184":{"tf":1.0},"249":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{},"y":{"df":2,"docs":{"195":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":2,"docs":{"146":{"tf":1.0},"195":{"tf":1.0}}}},"o":{"df":1,"docs":{"92":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":12,"docs":{"103":{"tf":1.0},"121":{"tf":1.7320508075688772},"125":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"180":{"tf":1.0},"203":{"tf":1.0},"269":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":31,"docs":{"100":{"tf":2.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.0},"103":{"tf":1.4142135623730951},"105":{"tf":1.0},"108":{"tf":1.0},"115":{"tf":1.0},"126":{"tf":1.0},"134":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"146":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.4142135623730951},"254":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0},"274":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.0},"96":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":53,"docs":{"101":{"tf":1.0},"107":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"121":{"tf":1.0},"14":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.0},"159":{"tf":1.0},"162":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"191":{"tf":1.0},"196":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.7320508075688772},"259":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"59":{"tf":2.0},"60":{"tf":2.23606797749979},"76":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.7320508075688772},"254":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"114":{"tf":1.0}}}}},"i":{"d":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"83":{"tf":1.0}}}},"z":{"df":1,"docs":{"236":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":23,"docs":{"105":{"tf":1.0},"117":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.7320508075688772},"199":{"tf":1.0},"204":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"216":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"63":{"tf":1.0},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":105,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.8284271247461903},"117":{"tf":1.0},"118":{"tf":2.23606797749979},"119":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":2.449489742783178},"139":{"tf":1.7320508075688772},"140":{"tf":2.23606797749979},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"146":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"181":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.7320508075688772},"209":{"tf":2.23606797749979},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.4142135623730951},"244":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"258":{"tf":1.4142135623730951},"261":{"tf":1.0},"264":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":2.23606797749979},"28":{"tf":2.449489742783178},"29":{"tf":2.0},"30":{"tf":1.4142135623730951},"33":{"tf":1.0},"34":{"tf":1.7320508075688772},"39":{"tf":3.605551275463989},"40":{"tf":3.3166247903554},"42":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":2.0},"51":{"tf":2.449489742783178},"52":{"tf":1.0},"56":{"tf":2.0},"58":{"tf":1.0},"60":{"tf":2.0},"63":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":2.449489742783178},"77":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.4142135623730951},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.4142135623730951},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"95":{"tf":2.449489742783178},"96":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"159":{"tf":1.0},"175":{"tf":1.0}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":8,"docs":{"114":{"tf":1.0},"192":{"tf":1.0},"206":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"60":{"tf":1.4142135623730951},"72":{"tf":1.0},"76":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"193":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"108":{"tf":1.0},"115":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"274":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":16,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.0},"200":{"tf":1.4142135623730951},"218":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":4,"docs":{"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"25":{"tf":1.0},"30":{"tf":1.0}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":18,"docs":{"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"131":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.4142135623730951},"154":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"226":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"266":{"tf":1.0},"276":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"180":{"tf":1.0}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":6,"docs":{"175":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"215":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":12,"docs":{"103":{"tf":1.0},"108":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"167":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"204":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"76":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"213":{"tf":1.0},"260":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"12":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"226":{"tf":1.0}}},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.4142135623730951}}}}}},"f":{"c":{"8":{"7":{"8":{"5":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"240":{"tf":1.0},"252":{"tf":1.0}}}},"d":{"df":1,"docs":{"166":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"145":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"18":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"44":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.0},"89":{"tf":2.449489742783178},"90":{"tf":1.0},"92":{"tf":2.0}}}}},"s":{"df":0,"docs":{},"k":{"df":2,"docs":{"105":{"tf":1.0},"79":{"tf":1.0}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":3,"docs":{"16":{"tf":1.0},"20":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"231":{"tf":1.0}}}},"o":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"152":{"tf":1.4142135623730951},"161":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"w":{"df":5,"docs":{"214":{"tf":1.7320508075688772},"216":{"tf":1.0},"219":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"i":{"df":2,"docs":{"127":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":12,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":2.449489742783178},"18":{"tf":1.0},"182":{"tf":1.0},"2":{"tf":1.4142135623730951},"235":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"53":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":7,"docs":{"142":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"92":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":11,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"272":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}}}},"s":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":7,"docs":{"0":{"tf":1.0},"148":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"194":{"tf":1.0},"26":{"tf":1.0},"84":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.7320508075688772},"14":{"tf":1.0},"151":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"230":{"tf":1.0},"250":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":18,"docs":{"117":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"22":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"253":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"59":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"d":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"154":{"tf":1.4142135623730951},"235":{"tf":1.0},"251":{"tf":1.4142135623730951}}}},"w":{"df":1,"docs":{"234":{"tf":1.0}}}},"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"n":{"df":1,"docs":{"269":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":3,"docs":{"121":{"tf":1.0},"140":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"z":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":2,"docs":{"181":{"tf":2.23606797749979},"185":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"185":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"127":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":1,"docs":{"127":{"tf":1.0}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":46,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":2.23606797749979},"198":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":2.6457513110645907},"22":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.4142135623730951},"230":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"257":{"tf":1.4142135623730951},"259":{"tf":1.7320508075688772},"260":{"tf":1.0},"261":{"tf":1.4142135623730951},"264":{"tf":1.0},"267":{"tf":1.0},"33":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.7320508075688772},"56":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"64":{"tf":1.0},"7":{"tf":1.0},"73":{"tf":1.0},"78":{"tf":2.23606797749979},"79":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":2,"docs":{"208":{"tf":1.0},"42":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"211":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"266":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"12":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0}}}}}}},"df":2,"docs":{"129":{"tf":1.0},"90":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":17,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"154":{"tf":1.0},"157":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":2.449489742783178},"261":{"tf":1.0},"262":{"tf":2.0},"269":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.0}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"118":{"tf":1.0},"234":{"tf":1.0},"31":{"tf":1.0},"49":{"tf":1.4142135623730951},"65":{"tf":1.0},"95":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"257":{"tf":1.0}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"56":{"tf":1.0},"84":{"tf":1.7320508075688772},"92":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":11,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"180":{"tf":1.0},"225":{"tf":1.0},"232":{"tf":1.4142135623730951},"238":{"tf":1.0},"38":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":9,"docs":{"100":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"134":{"tf":1.0},"83":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":26,"docs":{"102":{"tf":1.0},"105":{"tf":1.7320508075688772},"112":{"tf":1.0},"118":{"tf":1.0},"135":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"180":{"tf":1.4142135623730951},"19":{"tf":1.0},"196":{"tf":1.0},"219":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.4142135623730951},"270":{"tf":1.0},"282":{"tf":1.0},"30":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"91":{"tf":1.0},"95":{"tf":1.0}},"m":{"df":5,"docs":{"129":{"tf":1.0},"178":{"tf":1.0},"19":{"tf":1.0},"211":{"tf":1.0},"29":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"208":{"tf":1.0}}}}}}}},"n":{"df":2,"docs":{"180":{"tf":1.0},"199":{"tf":1.0}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"218":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"132":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"177":{"tf":3.0},"178":{"tf":1.0},"180":{"tf":1.0},"243":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"177":{"tf":1.0}}}}}},"df":0,"docs":{}},"f":{"df":4,"docs":{"22":{"tf":1.0},"256":{"tf":1.0},"55":{"tf":1.0},"94":{"tf":1.0}}},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":13,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"166":{"tf":1.0},"178":{"tf":2.23606797749979},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"22":{"tf":1.0},"252":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"79":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":20,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"134":{"tf":1.0},"140":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"218":{"tf":1.0},"248":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.4142135623730951},"258":{"tf":1.0},"289":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"121":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"t":{"df":3,"docs":{"115":{"tf":1.0},"116":{"tf":1.0},"136":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"0":{"tf":1.0},"175":{"tf":1.4142135623730951},"186":{"tf":1.0},"213":{"tf":1.0},"265":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"13":{"tf":1.0},"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"72":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":56,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.449489742783178},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"192":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.4142135623730951},"280":{"tf":1.0},"29":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"38":{"tf":2.0},"39":{"tf":2.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"59":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"z":{"df":5,"docs":{"172":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"25":{"tf":1.0},"37":{"tf":1.0}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"250":{"tf":1.0}}}}},"v":{"df":4,"docs":{"151":{"tf":1.0},"165":{"tf":1.0},"171":{"tf":1.0},"219":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"'":{"df":2,"docs":{"146":{"tf":1.4142135623730951},"152":{"tf":1.0}}},"df":88,"docs":{"1":{"tf":1.0},"103":{"tf":2.449489742783178},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"115":{"tf":1.4142135623730951},"116":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"133":{"tf":1.4142135623730951},"134":{"tf":1.4142135623730951},"135":{"tf":1.7320508075688772},"136":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":2.0},"140":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":2.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"150":{"tf":1.7320508075688772},"151":{"tf":2.23606797749979},"152":{"tf":3.0},"155":{"tf":1.0},"157":{"tf":2.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":2.0},"200":{"tf":2.449489742783178},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"217":{"tf":2.23606797749979},"219":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.4142135623730951},"233":{"tf":1.0},"235":{"tf":2.449489742783178},"237":{"tf":1.7320508075688772},"238":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"263":{"tf":2.23606797749979},"264":{"tf":1.4142135623730951},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"272":{"tf":1.4142135623730951},"274":{"tf":1.7320508075688772},"275":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"45":{"tf":1.4142135623730951},"50":{"tf":1.0},"77":{"tf":1.4142135623730951},"79":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"86":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.4142135623730951},"99":{"tf":1.0}}}},"i":{"c":{"df":10,"docs":{"0":{"tf":1.0},"12":{"tf":1.4142135623730951},"149":{"tf":1.0},"176":{"tf":1.0},"241":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":2.23606797749979},"254":{"tf":1.0},"30":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"135":{"tf":1.0},"95":{"tf":1.0}}}}}}},"t":{"df":38,"docs":{"0":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":2.0},"118":{"tf":1.0},"135":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"145":{"tf":1.0},"152":{"tf":1.0},"158":{"tf":1.0},"173":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"237":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"281":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"82":{"tf":1.0},"92":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.7320508075688772}},"u":{"df":0,"docs":{},"p":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"14":{"tf":1.0},"164":{"tf":1.0},"247":{"tf":1.0},"33":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":5,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"60":{"tf":1.0},"78":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":12,"docs":{"159":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"215":{"tf":1.0},"218":{"tf":1.4142135623730951},"222":{"tf":1.0},"261":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}}},"r":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":37,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"16":{"tf":1.0},"169":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"265":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"8":{"tf":1.0},"86":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":6,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"78":{"tf":1.7320508075688772}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"249":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"e":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}},"p":{"df":3,"docs":{"190":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.7320508075688772}}},"r":{"df":0,"docs":{},"t":{"df":11,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.4142135623730951},"196":{"tf":1.0},"252":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"177":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":18,"docs":{"0":{"tf":1.0},"143":{"tf":1.0},"154":{"tf":1.0},"183":{"tf":1.0},"186":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"196":{"tf":1.0},"203":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.7320508075688772},"60":{"tf":1.7320508075688772},"76":{"tf":2.6457513110645907}}}},"df":0,"docs":{}}}},"w":{"df":12,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"152":{"tf":1.4142135623730951},"193":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"86":{"tf":1.0}},"n":{"df":5,"docs":{"154":{"tf":1.0},"175":{"tf":1.0},"242":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":12,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"139":{"tf":1.7320508075688772},"142":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"177":{"tf":1.0},"218":{"tf":1.4142135623730951},"234":{"tf":1.0},"254":{"tf":1.4142135623730951},"275":{"tf":1.0},"5":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":19,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"114":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.6457513110645907},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"132":{"tf":1.0},"135":{"tf":1.0},"195":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"56":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"df":31,"docs":{"0":{"tf":1.0},"100":{"tf":1.7320508075688772},"102":{"tf":2.23606797749979},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"121":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"240":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.4142135623730951},"282":{"tf":1.0},"289":{"tf":1.0},"67":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"114":{"tf":1.0},"258":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"(":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":24,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"129":{"tf":1.4142135623730951},"136":{"tf":1.0},"170":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"98":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":18,"docs":{"106":{"tf":1.0},"128":{"tf":1.0},"131":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"195":{"tf":1.0},"202":{"tf":1.0},"208":{"tf":1.4142135623730951},"284":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"132":{"tf":1.0},"181":{"tf":1.0},"228":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"45":{"tf":1.0},"49":{"tf":1.0}}}}},"i":{"c":{"df":3,"docs":{"128":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0}}},"df":15,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"182":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"226":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":37,"docs":{"100":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"132":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"203":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"69":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"80":{"tf":1.0},"84":{"tf":1.4142135623730951},"93":{"tf":1.0},"95":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"193":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"185":{"tf":1.0},"246":{"tf":1.0}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"143":{"tf":1.0},"248":{"tf":1.7320508075688772},"87":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"118":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"222":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"w":{"df":3,"docs":{"13":{"tf":1.0},"224":{"tf":1.0},"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":6,"docs":{"162":{"tf":1.0},"186":{"tf":1.0},"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"193":{"tf":1.0},"246":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"a":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"p":{"c":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":16,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.4142135623730951},"121":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.0},"252":{"tf":1.0},"272":{"tf":1.4142135623730951},"53":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"123":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":11,"docs":{"10":{"tf":1.0},"123":{"tf":1.4142135623730951},"173":{"tf":1.0},"193":{"tf":2.8284271247461903},"194":{"tf":1.7320508075688772},"195":{"tf":1.7320508075688772},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.23606797749979},"200":{"tf":2.6457513110645907},"201":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"263":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"163":{"tf":1.0},"181":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"213":{"tf":1.0},"77":{"tf":1.0}}}},"v":{"df":12,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"234":{"tf":1.0},"254":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"186":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"156":{"tf":1.0},"162":{"tf":1.0},"181":{"tf":1.0},"85":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"177":{"tf":1.0},"259":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"h":{"df":28,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.0},"120":{"tf":1.0},"136":{"tf":1.4142135623730951},"141":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"216":{"tf":1.0},"246":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"51":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"i":{"df":0,"docs":{},"m":{"df":8,"docs":{"184":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"87":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"105":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"156":{"tf":1.0},"157":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"142":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"_":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"142":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":25,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"275":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}},"r":{"c":{"df":32,"docs":{"111":{"tf":1.0},"112":{"tf":2.23606797749979},"118":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.7320508075688772},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0},"50":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"256":{"tf":1.0},"94":{"tf":1.0}}}}}}}}},"y":{"df":1,"docs":{"270":{"tf":1.0}}}},"p":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":4,"docs":{"130":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"44":{"tf":1.0},"48":{"tf":2.23606797749979}}}}}},"df":0,"docs":{},"e":{"c":{"df":19,"docs":{"112":{"tf":1.0},"123":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":2.23606797749979},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"188":{"tf":1.0},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"20":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"72":{"tf":1.0},"81":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"124":{"tf":1.0},"176":{"tf":1.0},"258":{"tf":1.0},"288":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":55,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"122":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":2.449489742783178},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"222":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.7320508075688772},"250":{"tf":1.0},"254":{"tf":2.0},"259":{"tf":1.4142135623730951},"264":{"tf":1.0},"265":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"44":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.4142135623730951},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}},"i":{"df":9,"docs":{"128":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"228":{"tf":1.4142135623730951},"254":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}},"n":{"d":{"df":2,"docs":{"12":{"tf":1.0},"17":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"181":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"28":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"l":{"df":14,"docs":{"10":{"tf":1.0},"174":{"tf":1.4142135623730951},"194":{"tf":1.0},"213":{"tf":1.7320508075688772},"214":{"tf":1.7320508075688772},"215":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":2.0},"219":{"tf":2.23606797749979},"220":{"tf":1.7320508075688772},"222":{"tf":1.7320508075688772},"245":{"tf":1.0},"283":{"tf":1.0}}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"z":{"df":1,"docs":{"235":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"197":{"tf":1.0}}},"i":{"df":1,"docs":{"255":{"tf":1.0}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.7320508075688772}}}},"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":35,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":2.449489742783178},"121":{"tf":1.4142135623730951},"14":{"tf":2.6457513110645907},"15":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"208":{"tf":1.0},"213":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"257":{"tf":1.0},"259":{"tf":1.0},"262":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0},"86":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"17":{"tf":1.0},"211":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":19,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"241":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"290":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"248":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.4142135623730951},"120":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.4142135623730951},"13":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"188":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"223":{"tf":1.0},"81":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"175":{"tf":1.7320508075688772},"180":{"tf":1.7320508075688772},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}},"i":{"c":{"df":6,"docs":{"209":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"77":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":4,"docs":{"115":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"4":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"m":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"y":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":15,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"264":{"tf":1.0},"42":{"tf":1.0},"91":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"213":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"263":{"tf":1.0},"267":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"p":{"df":2,"docs":{"135":{"tf":1.0},"190":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"121":{"tf":1.4142135623730951},"152":{"tf":1.0},"166":{"tf":1.0},"2":{"tf":1.0},"208":{"tf":1.4142135623730951},"229":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{":":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":34,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"151":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"226":{"tf":1.0},"232":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":2.23606797749979},"242":{"tf":1.0},"244":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":2.0},"260":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.0},"41":{"tf":1.0},"79":{"tf":1.0},"84":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}}},"i":{"df":1,"docs":{"17":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"239":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":4,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"6":{"tf":1.0},"94":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"t":{"df":12,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"38":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"148":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":36,"docs":{"0":{"tf":1.0},"101":{"tf":1.0},"105":{"tf":1.0},"117":{"tf":1.7320508075688772},"129":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"208":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":2.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"59":{"tf":2.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"65":{"tf":1.7320508075688772},"66":{"tf":1.0},"69":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951},"95":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"185":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":15,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"144":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"18":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"249":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"240":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}},"i":{"df":1,"docs":{"253":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":2,"docs":{"111":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":2,"docs":{"234":{"tf":1.0},"58":{"tf":1.0}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"124":{"tf":1.0},"80":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{"(":{"df":1,"docs":{"276":{"tf":1.0}}},"df":1,"docs":{"276":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"199":{"tf":1.0}}},"df":52,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"105":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"132":{"tf":1.4142135623730951},"134":{"tf":1.0},"135":{"tf":2.23606797749979},"136":{"tf":1.0},"142":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":2.449489742783178},"177":{"tf":2.6457513110645907},"178":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"180":{"tf":2.6457513110645907},"181":{"tf":3.4641016151377544},"182":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.7320508075688772},"196":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"268":{"tf":1.0},"28":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"30":{"tf":2.6457513110645907},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"39":{"tf":2.0},"40":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":6,"docs":{"111":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"250":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"172":{"tf":1.0},"205":{"tf":1.0},"38":{"tf":1.0}}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"d":{"df":1,"docs":{"115":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"12":{"tf":1.0},"199":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":40,"docs":{"105":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.4142135623730951},"139":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"38":{"tf":1.0},"40":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"168":{"tf":1.0},"181":{"tf":1.0},"243":{"tf":1.7320508075688772},"270":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"257":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"12":{"tf":1.0}}}},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"148":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"112":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":30,"docs":{"112":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"247":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0}}}},"s":{"df":2,"docs":{"12":{"tf":1.0},"177":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":26,"docs":{"109":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"206":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":5,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":2.23606797749979},"252":{"tf":3.0},"253":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"w":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"14":{"tf":1.0},"18":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"112":{"tf":1.0},"240":{"tf":1.0}},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":5,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0},"58":{"tf":1.0},"66":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":29,"docs":{"0":{"tf":1.0},"112":{"tf":2.0},"121":{"tf":1.4142135623730951},"122":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":1.0},"222":{"tf":1.4142135623730951},"234":{"tf":1.0},"239":{"tf":1.0},"260":{"tf":1.0},"44":{"tf":1.0},"55":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"183":{"tf":1.0}}}}}}},"t":{"a":{"b":{"df":1,"docs":{"98":{"tf":1.0}},"l":{"df":13,"docs":{"151":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"214":{"tf":2.23606797749979},"218":{"tf":1.4142135623730951},"219":{"tf":1.7320508075688772},"220":{"tf":1.0},"222":{"tf":1.0},"240":{"tf":1.0},"261":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0},"6":{"tf":1.0}}}},"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":2,"docs":{"191":{"tf":1.0},"192":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":16,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.4142135623730951},"204":{"tf":1.0},"225":{"tf":1.0},"25":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":2,"docs":{"132":{"tf":1.0},"288":{"tf":1.0}}},"m":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"18":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"108":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"44":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"52":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0}}}}}},"c":{"df":1,"docs":{"124":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"266":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"266":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":1,"docs":{"86":{"tf":1.0}}}},"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.4142135623730951}},"n":{"df":0,"docs":{},"i":{"c":{"df":6,"docs":{"17":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"288":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":5,"docs":{"17":{"tf":1.0},"170":{"tf":1.0},"225":{"tf":1.0},"242":{"tf":1.0},"269":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"l":{"df":12,"docs":{"135":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"183":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"208":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"15":{"tf":1.0},"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"d":{"df":6,"docs":{"139":{"tf":1.0},"184":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0}}},"df":1,"docs":{"220":{"tf":1.0}}},"r":{"a":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":2,"docs":{"179":{"tf":1.4142135623730951},"33":{"tf":1.0}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"117":{"tf":1.0},"151":{"tf":1.0},"220":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}}}}}},"df":23,"docs":{"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"62":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}},"df":0,"docs":{}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":2,"docs":{"288":{"tf":1.0},"31":{"tf":1.4142135623730951}}}},"t":{"'":{"df":13,"docs":{"12":{"tf":1.7320508075688772},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"166":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"194":{"tf":1.0},"202":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"90":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":10,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"186":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"81":{"tf":1.0},"90":{"tf":1.0},"93":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":8,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"165":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"152":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"186":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0}}}}}}},"y":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"181":{"tf":1.0}}},"v":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{".":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"58":{"tf":1.0}}}}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":54,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"137":{"tf":1.0},"15":{"tf":1.0},"153":{"tf":1.4142135623730951},"154":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"181":{"tf":2.449489742783178},"183":{"tf":1.7320508075688772},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"196":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"201":{"tf":1.4142135623730951},"204":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.0},"240":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.7320508075688772},"290":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.4142135623730951}}},"k":{"df":18,"docs":{"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"253":{"tf":1.0},"266":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"d":{"df":2,"docs":{"256":{"tf":1.0},"32":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"132":{"tf":1.0}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"175":{"tf":1.0},"247":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":4,"docs":{"219":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0},"48":{"tf":1.0}},"t":{"df":5,"docs":{"169":{"tf":1.0},"175":{"tf":1.0},"212":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":7,"docs":{"1":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"204":{"tf":1.0},"29":{"tf":1.4142135623730951},"56":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":12,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"225":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"49":{"tf":1.0},"76":{"tf":1.0}}}}}}},"u":{"df":1,"docs":{"181":{"tf":1.0}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"86":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"186":{"tf":1.0}}}}}}},"m":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":4,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}},"e":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.0},"152":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"258":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"65":{"tf":1.0},"70":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":7,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.7320508075688772},"114":{"tf":1.0},"118":{"tf":1.0},"39":{"tf":1.0},"71":{"tf":1.4142135623730951},"95":{"tf":2.23606797749979}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"l":{"df":2,"docs":{"129":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"d":{"a":{"df":0,"docs":{},"y":{"df":3,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":2,"docs":{"241":{"tf":1.0},"28":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"16":{"tf":1.0},"288":{"tf":1.0}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"95":{"tf":1.0},"98":{"tf":2.0}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":9,"docs":{"133":{"tf":1.0},"138":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"41":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"41":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"df":2,"docs":{"151":{"tf":1.0},"226":{"tf":1.0}},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"13":{"tf":1.0},"16":{"tf":1.0}}},"l":{"df":17,"docs":{"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"17":{"tf":1.0},"183":{"tf":1.0},"19":{"tf":1.4142135623730951},"191":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.23606797749979},"241":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"281":{"tf":1.0}}}},"p":{"df":5,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"90":{"tf":1.7320508075688772}},"i":{"c":{"df":3,"docs":{"199":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"f":{"df":2,"docs":{"276":{"tf":1.0},"288":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"249":{"tf":1.0}}},"k":{"df":7,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"20":{"tf":1.0},"248":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"234":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"193":{"tf":1.0},"229":{"tf":1.0}}},"n":{"df":3,"docs":{"242":{"tf":1.0},"244":{"tf":1.4142135623730951},"245":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"110":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":2.0},"235":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":5,"docs":{"181":{"tf":2.449489742783178},"253":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":5,"docs":{"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":17,"docs":{"0":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"229":{"tf":1.0},"262":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"47":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0},"81":{"tf":1.0}}}}}},"y":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"198":{"tf":1.0},"87":{"tf":1.0}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"183":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":13,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"19":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.0},"282":{"tf":1.0},"53":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"127":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":2.0},"178":{"tf":2.0},"180":{"tf":1.0},"181":{"tf":2.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"29":{"tf":1.4142135623730951},"38":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0}}}},"v":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"119":{"tf":1.0},"14":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"192":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"e":{"df":8,"docs":{"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"56":{"tf":1.0},"69":{"tf":1.7320508075688772}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"112":{"tf":1.0},"118":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"269":{"tf":1.0}}}}}}}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"280":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"20":{"tf":1.0},"253":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"74":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":9,"docs":{"124":{"tf":1.0},"127":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"38":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"157":{"tf":1.0},"189":{"tf":1.0},"241":{"tf":1.0},"289":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"181":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":16,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"125":{"tf":1.0},"144":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"201":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.0},"242":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":1.0},"93":{"tf":1.0}}}},"x":{"df":1,"docs":{"124":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":45,"docs":{"0":{"tf":2.0},"12":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"159":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"183":{"tf":1.4142135623730951},"185":{"tf":1.0},"187":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"31":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"45":{"tf":2.0},"55":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":12,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"56":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"i":{"c":{"df":4,"docs":{"136":{"tf":1.0},"210":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"14":{"tf":1.0},"157":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"l":{"df":2,"docs":{"14":{"tf":1.0},"54":{"tf":1.0}}}},"n":{")":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"107":{"tf":1.0}}}}}}}},"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"132":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"197":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"r":{"df":4,"docs":{"154":{"tf":1.0},"164":{"tf":1.0},"181":{"tf":1.0},"46":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"112":{"tf":1.0},"130":{"tf":1.0},"148":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.4142135623730951},"22":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"199":{"tf":1.0},"266":{"tf":1.0},"55":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"o":{"df":3,"docs":{"111":{"tf":1.0},"15":{"tf":1.0},"195":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"184":{"tf":1.0},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"175":{"tf":1.0},"183":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"64":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":23,"docs":{"127":{"tf":1.0},"132":{"tf":1.0},"162":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"196":{"tf":1.4142135623730951},"208":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":1.0}}}},"t":{"df":1,"docs":{"250":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"x":{"df":4,"docs":{"101":{"tf":1.0},"114":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":3,"docs":{"137":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"23":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"k":{"df":2,"docs":{"180":{"tf":1.0},"222":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"135":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"114":{"tf":1.0},"127":{"tf":1.0},"130":{"tf":2.0},"133":{"tf":1.0},"134":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.4142135623730951},"258":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"289":{"tf":1.0},"81":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":20,"docs":{"106":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"206":{"tf":1.0},"216":{"tf":1.0},"237":{"tf":1.0},"245":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":7,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"165":{"tf":1.0},"171":{"tf":1.4142135623730951},"219":{"tf":1.0},"268":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"=":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"%":{"3":{"a":{"%":{"2":{"df":0,"docs":{},"f":{"%":{"2":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"%":{"2":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"146":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":9,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":2.6457513110645907},"151":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"157":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":8,"docs":{"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.4142135623730951},"186":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.4142135623730951},"72":{"tf":1.0}}},"l":{"df":94,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.0},"107":{"tf":2.0},"108":{"tf":1.4142135623730951},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.0},"124":{"tf":1.0},"128":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.4142135623730951},"144":{"tf":1.4142135623730951},"145":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"176":{"tf":1.0},"177":{"tf":2.0},"181":{"tf":1.7320508075688772},"182":{"tf":1.4142135623730951},"183":{"tf":2.449489742783178},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.7320508075688772},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":2.0},"213":{"tf":1.0},"216":{"tf":1.7320508075688772},"218":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"253":{"tf":1.0},"261":{"tf":1.0},"268":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":2.449489742783178},"30":{"tf":1.4142135623730951},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.0},"45":{"tf":1.7320508075688772},"47":{"tf":1.0},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"63":{"tf":1.7320508075688772},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.7320508075688772},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":2.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"107":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"107":{"tf":1.0},"181":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"276":{"tf":1.0},"37":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}}}}}}}},"df":184,"docs":{"0":{"tf":3.0},"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.4142135623730951},"117":{"tf":1.0},"121":{"tf":2.23606797749979},"123":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":2.23606797749979},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"134":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":2.23606797749979},"142":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":3.0},"154":{"tf":1.7320508075688772},"156":{"tf":1.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"160":{"tf":1.4142135623730951},"161":{"tf":1.0},"162":{"tf":2.0},"163":{"tf":1.7320508075688772},"164":{"tf":1.0},"165":{"tf":1.4142135623730951},"166":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.7320508075688772},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.23606797749979},"180":{"tf":1.0},"181":{"tf":3.1622776601683795},"182":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"189":{"tf":2.0},"19":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.7320508075688772},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"202":{"tf":2.0},"203":{"tf":2.23606797749979},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":1.0},"22":{"tf":2.6457513110645907},"220":{"tf":1.0},"222":{"tf":1.4142135623730951},"223":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"228":{"tf":1.0},"229":{"tf":2.0},"23":{"tf":1.7320508075688772},"230":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"234":{"tf":1.4142135623730951},"235":{"tf":2.23606797749979},"238":{"tf":1.7320508075688772},"240":{"tf":1.7320508075688772},"241":{"tf":1.7320508075688772},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":2.449489742783178},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":2.449489742783178},"279":{"tf":1.0},"284":{"tf":1.4142135623730951},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":2.6457513110645907},"40":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"55":{"tf":2.23606797749979},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":2.0},"77":{"tf":2.0},"79":{"tf":2.0},"80":{"tf":1.0},"81":{"tf":2.0},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"89":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":2.449489742783178}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"139":{"tf":1.0}}}}}},"r":{"'":{"df":3,"docs":{"253":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"df":33,"docs":{"0":{"tf":1.4142135623730951},"105":{"tf":1.0},"12":{"tf":1.4142135623730951},"135":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"159":{"tf":1.0},"167":{"tf":1.4142135623730951},"168":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":2.0},"224":{"tf":1.0},"234":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":2.0},"261":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"81":{"tf":1.4142135623730951},"93":{"tf":1.0},"94":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"182":{"tf":1.0},"40":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"c":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}},"x":{"df":2,"docs":{"18":{"tf":1.0},"252":{"tf":1.0}}}},"v":{"1":{"df":1,"docs":{"4":{"tf":1.0}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":44,"docs":{"103":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.23606797749979},"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"264":{"tf":1.0},"280":{"tf":1.4142135623730951},"33":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"48":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"103":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"u":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"148":{"tf":1.0},"232":{"tf":1.0},"288":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":48,"docs":{"114":{"tf":1.4142135623730951},"118":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"158":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.7320508075688772},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.4142135623730951},"229":{"tf":1.0},"25":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.6457513110645907},"32":{"tf":2.0},"39":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"54":{"tf":1.0},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"67":{"tf":1.0},"68":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0}}}},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":1,"docs":{"78":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"131":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"232":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"271":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":5,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.0}},"e":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"r":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"288":{"tf":1.0}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}}}},"i":{"df":28,"docs":{"1":{"tf":1.0},"112":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"126":{"tf":1.0},"130":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"155":{"tf":1.0},"167":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"209":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"290":{"tf":1.0}},"f":{"df":2,"docs":{"258":{"tf":1.0},"85":{"tf":1.0}},"i":{"df":19,"docs":{"10":{"tf":1.0},"103":{"tf":1.0},"111":{"tf":1.4142135623730951},"116":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.7320508075688772},"257":{"tf":1.0},"258":{"tf":2.0},"259":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":26,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"121":{"tf":1.4142135623730951},"132":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"26":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"17":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"(":{"df":1,"docs":{"20":{"tf":1.0}}},"df":2,"docs":{"23":{"tf":1.0},"265":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":11,"docs":{"107":{"tf":1.0},"144":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"20":{"tf":1.0},"234":{"tf":1.0},"264":{"tf":2.0},"275":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"153":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"142":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"17":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":5,"docs":{"156":{"tf":1.4142135623730951},"276":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"c":{"a":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"25":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"290":{"tf":1.0}}},"df":0,"docs":{},"l":{"a":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":5,"docs":{"143":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"229":{"tf":1.0}}}},"w":{"3":{"c":{"df":2,"docs":{"175":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":42,"docs":{"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"12":{"tf":2.6457513110645907},"13":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"189":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"219":{"tf":1.7320508075688772},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"281":{"tf":1.0},"39":{"tf":1.0},"49":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"125":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"265":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"y":{"df":47,"docs":{"1":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0},"190":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"239":{"tf":1.0},"242":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"271":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.4142135623730951},"45":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.4142135623730951},"92":{"tf":1.4142135623730951},"93":{"tf":1.0}},"n":{"df":1,"docs":{"243":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"'":{"d":{"df":2,"docs":{"228":{"tf":1.0},"252":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":17,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.0},"120":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.7320508075688772},"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"232":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"289":{"tf":1.0},"34":{"tf":1.0},"87":{"tf":1.0}}}},"r":{"df":7,"docs":{"120":{"tf":1.0},"128":{"tf":1.0},"148":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.7320508075688772}}},"v":{"df":5,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"235":{"tf":1.0},"51":{"tf":1.0}}}},"b":{")":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"196":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"12":{"tf":1.7320508075688772},"128":{"tf":1.0},"13":{"tf":2.0},"138":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"190":{"tf":1.4142135623730951},"193":{"tf":1.7320508075688772},"199":{"tf":2.23606797749979},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"235":{"tf":1.7320508075688772},"241":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"55":{"tf":1.0},"81":{"tf":1.0}},"i":{"d":{"df":1,"docs":{"197":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":2.449489742783178},"261":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"c":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"77":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"133":{"tf":1.4142135623730951},"134":{"tf":1.7320508075688772},"135":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.7320508075688772},"99":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"261":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"290":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":13,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"12":{"tf":2.23606797749979},"18":{"tf":1.0},"189":{"tf":1.0},"201":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.4142135623730951},"262":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"115":{"tf":1.0},"13":{"tf":1.0},"136":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"209":{"tf":1.0},"243":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"136":{"tf":1.0},"17":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":7,"docs":{"180":{"tf":1.0},"213":{"tf":1.0},"216":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"263":{"tf":1.0},"78":{"tf":1.4142135623730951}}},"df":0,"docs":{},"v":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"103":{"tf":1.0},"112":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"54":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"111":{"tf":1.0},"168":{"tf":1.0},"190":{"tf":1.0}}}}}},"o":{"'":{"df":2,"docs":{"114":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"126":{"tf":1.0}},"s":{"#":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"2":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":4,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"256":{"tf":1.0}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"284":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":4,"docs":{"118":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":23,"docs":{"107":{"tf":1.4142135623730951},"114":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.4142135623730951},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"262":{"tf":1.0},"267":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"70":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":11,"docs":{"181":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"190":{"tf":1.0}}}},"df":0,"docs":{}},"df":39,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.4142135623730951},"128":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.4142135623730951},"271":{"tf":1.0},"288":{"tf":1.7320508075688772},"41":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"83":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"a":{"c":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"d":{"df":10,"docs":{"106":{"tf":1.0},"12":{"tf":1.0},"131":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"222":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":2,"docs":{"12":{"tf":1.0},"181":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"183":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"123":{"tf":1.0}}}}}},"df":34,"docs":{"108":{"tf":1.0},"110":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"243":{"tf":1.4142135623730951},"8":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"92":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":8,"docs":{"14":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"5":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":5,"docs":{"115":{"tf":1.0},"117":{"tf":1.0},"136":{"tf":1.7320508075688772},"180":{"tf":1.0},"99":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"112":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}}}},"s":{"df":2,"docs":{"134":{"tf":1.4142135623730951},"151":{"tf":1.0}},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"w":{"df":1,"docs":{"95":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"134":{"tf":1.0},"151":{"tf":1.0},"95":{"tf":1.0}}}}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":3,"docs":{"101":{"tf":2.0},"103":{"tf":1.4142135623730951},"134":{"tf":1.0}},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"148":{"tf":1.0},"199":{"tf":1.0},"26":{"tf":1.0},"262":{"tf":1.0},"54":{"tf":1.0}}}},"s":{"d":{":":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"185":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"192":{"tf":1.0}}}}}}}}},"df":2,"docs":{"126":{"tf":1.0},"54":{"tf":1.0}}},"df":0,"docs":{}}},"y":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"199":{"tf":1.0},"201":{"tf":1.0},"220":{"tf":1.0},"251":{"tf":1.0}}}},"df":2,"docs":{"194":{"tf":1.0},"223":{"tf":1.0}}},"o":{"df":0,"docs":{},"u":{"'":{"d":{"df":7,"docs":{"119":{"tf":1.0},"135":{"tf":1.4142135623730951},"162":{"tf":1.0},"215":{"tf":1.0},"229":{"tf":1.0},"250":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":11,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"df":29,"docs":{"106":{"tf":1.0},"118":{"tf":1.7320508075688772},"136":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.4142135623730951},"210":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.4142135623730951},"218":{"tf":1.0},"23":{"tf":1.4142135623730951},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"v":{"df":6,"docs":{"117":{"tf":1.0},"166":{"tf":1.0},"181":{"tf":1.0},"250":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":3,"docs":{"155":{"tf":1.0},"157":{"tf":1.0},"53":{"tf":1.0}}}}}}}}},"y":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":1,"docs":{"70":{"tf":1.0}}}}}},"z":{"0":{"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"69":{"tf":1.0}}}}}}}},"breadcrumbs":{"root":{"0":{".":{"2":{"0":{".":{"0":{"df":1,"docs":{"276":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"df":6,"docs":{"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0},"71":{"tf":1.0}}},"2":{"df":3,"docs":{"127":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"3":{"df":1,"docs":{"18":{"tf":1.0}}},"4":{"df":2,"docs":{"127":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"7":{"df":2,"docs":{"18":{"tf":1.0},"71":{"tf":1.0}}},"8":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"18":{"tf":1.0}}},"df":2,"docs":{"52":{"tf":1.4142135623730951},"69":{"tf":1.0}}},"1":{",":{"4":{",":{"5":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},".":{".":{"2":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"0":{"0":{"df":2,"docs":{"199":{"tf":1.0},"223":{"tf":1.0}}},"df":2,"docs":{"118":{"tf":1.0},"18":{"tf":1.0}}},"1":{"8":{".":{"2":{"0":{"5":{"4":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},":":{"1":{"5":{":":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"2":{"4":{"df":1,"docs":{"56":{"tf":1.0}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"5":{"0":{"df":1,"docs":{"112":{"tf":1.0}}},"6":{"1":{"1":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"9":{"6":{"7":{"9":{"8":{"9":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"13":{"tf":1.0},"246":{"tf":1.0}},"m":{"b":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}}},"6":{"1":{"1":{"4":{"8":{"9":{"9":{"2":{"8":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.0}}},"9":{"3":{"7":{"0":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"6":{"1":{"7":{"5":{"7":{"4":{"7":{"0":{"0":{"0":{"2":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"df":1,"docs":{"256":{"tf":1.0}}},"9":{"7":{"0":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"9":{"1":{"\"":{"@":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"177":{"tf":1.0}}}},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":4,"docs":{"177":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"70":{"tf":1.0}}},"9":{"df":1,"docs":{"175":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"69":{"tf":1.0}},"m":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}},"2":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"0":{"0":{"df":1,"docs":{"177":{"tf":1.0}}},"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":1,"docs":{"45":{"tf":1.0}}},"2":{"0":{"df":2,"docs":{"18":{"tf":2.23606797749979},"71":{"tf":1.0}}},"1":{"df":3,"docs":{"123":{"tf":1.0},"18":{"tf":3.3166247903554},"195":{"tf":1.0}}},"2":{"df":2,"docs":{"18":{"tf":2.0},"200":{"tf":1.0}}},"3":{"df":1,"docs":{"20":{"tf":2.449489742783178}}},"4":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":5,"docs":{"177":{"tf":1.4142135623730951},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"177":{"tf":1.0},"29":{"tf":1.0}}}}},"2":{"df":1,"docs":{"40":{"tf":1.0}}},"4":{"df":1,"docs":{"112":{"tf":1.0}}},"df":2,"docs":{"143":{"tf":1.0},"177":{"tf":1.0}},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"3":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"12":{"tf":1.0},"95":{"tf":1.0}}},"2":{"df":1,"docs":{"71":{"tf":1.0}}},"3":{".":{"7":{"8":{"1":{"7":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}},"m":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"4":{"0":{"4":{"df":3,"docs":{"136":{"tf":1.0},"173":{"tf":1.0},"208":{"tf":1.0}}},"df":0,"docs":{}},"2":{"0":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"7":{"8":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}},"5":{"0":{"0":{"df":1,"docs":{"103":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"6":{"4":{"df":2,"docs":{"67":{"tf":1.0},"71":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}}},"8":{"0":{":":{"8":{"0":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"7":{"df":1,"docs":{"105":{"tf":1.0}}},"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}},"m":{"b":{"df":2,"docs":{"200":{"tf":1.0},"235":{"tf":1.0}}},"df":0,"docs":{}}},"9":{"2":{"2":{"3":{"3":{"7":{"2":{"0":{"3":{"6":{"8":{"5":{"4":{"7":{"7":{"5":{"8":{"0":{"7":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"a":{".":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"b":{"c":{"1":{"2":{"3":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"14":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.0}}}},"o":{"df":0,"docs":{},"v":{"df":13,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"132":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"258":{"tf":1.4142135623730951},"267":{"tf":1.0},"29":{"tf":1.7320508075688772},"40":{"tf":1.0},"50":{"tf":1.0},"97":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"60":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"176":{"tf":1.0},"264":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":9,"docs":{"121":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":13,"docs":{"115":{"tf":1.0},"118":{"tf":1.4142135623730951},"139":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"167":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"48":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":15,"docs":{"100":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"108":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"245":{"tf":1.4142135623730951},"55":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"185":{"tf":1.0}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"271":{"tf":1.4142135623730951},"281":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"111":{"tf":1.0},"223":{"tf":1.4142135623730951},"270":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":4,"docs":{"10":{"tf":1.0},"286":{"tf":1.7320508075688772},"287":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"18":{"tf":1.0},"197":{"tf":1.0}}}},"v":{"df":2,"docs":{"142":{"tf":1.0},"18":{"tf":1.0}}},"x":{"df":1,"docs":{"138":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"111":{"tf":1.0},"82":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":18,"docs":{"108":{"tf":1.0},"118":{"tf":1.0},"14":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"183":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.7320508075688772},"203":{"tf":1.0},"231":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.4142135623730951},"267":{"tf":1.0},"57":{"tf":1.0},"82":{"tf":1.4142135623730951},"84":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"3":{"df":1,"docs":{"18":{"tf":1.0}}},"d":{"df":27,"docs":{"108":{"tf":1.4142135623730951},"118":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":2.0},"154":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":2.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"264":{"tf":2.23606797749979},"266":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.7320508075688772},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"108":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"173":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"40":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}}},"df":65,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"127":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"143":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":2.23606797749979},"157":{"tf":2.23606797749979},"158":{"tf":1.0},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.0},"164":{"tf":1.0},"167":{"tf":1.0},"18":{"tf":2.0},"181":{"tf":1.7320508075688772},"184":{"tf":1.0},"186":{"tf":1.7320508075688772},"187":{"tf":1.7320508075688772},"188":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":2.0},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"270":{"tf":1.0},"280":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.0},"39":{"tf":2.6457513110645907},"40":{"tf":1.7320508075688772},"41":{"tf":2.23606797749979},"42":{"tf":2.23606797749979},"43":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"7":{"tf":1.0},"75":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"121":{"tf":1.0},"165":{"tf":1.4142135623730951}}}}},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"119":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"234":{"tf":1.4142135623730951},"235":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"189":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":4,"docs":{"224":{"tf":1.4142135623730951},"245":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":9,"docs":{"148":{"tf":1.0},"183":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"23":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951}}}}},"df":1,"docs":{"254":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"'":{"df":4,"docs":{"105":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"85":{"tf":1.0}}},".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"?":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.7320508075688772},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":2.0},"153":{"tf":1.7320508075688772},"197":{"tf":1.7320508075688772},"198":{"tf":1.0},"258":{"tf":2.0},"282":{"tf":1.0},"56":{"tf":1.7320508075688772},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":2.6457513110645907},"83":{"tf":1.7320508075688772},"84":{"tf":3.0},"85":{"tf":2.23606797749979},"89":{"tf":2.0},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.23606797749979},"96":{"tf":1.0}}}}},"o":{"df":2,"docs":{"12":{"tf":1.0},"241":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"263":{"tf":1.0}}}}},"i":{"df":4,"docs":{"242":{"tf":2.6457513110645907},"243":{"tf":2.0},"244":{"tf":2.0},"245":{"tf":2.6457513110645907}},"m":{"df":7,"docs":{"112":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"232":{"tf":1.0}}},"r":{"b":{"df":0,"docs":{},"n":{"b":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"252":{"tf":1.0}}}},"k":{"a":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}},"x":{"df":1,"docs":{"288":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"a":{"df":1,"docs":{"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}}}}}},"i":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"254":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"w":{"df":31,"docs":{"100":{"tf":1.0},"121":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"259":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"62":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"79":{"tf":1.0},"83":{"tf":1.0},"94":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"193":{"tf":1.0}},"g":{"df":1,"docs":{"96":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.0},"42":{"tf":1.0},"76":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":13,"docs":{"141":{"tf":1.0},"144":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"189":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"257":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":5,"docs":{"132":{"tf":1.0},"200":{"tf":1.0},"239":{"tf":1.4142135623730951},"269":{"tf":1.0},"56":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":15,"docs":{"112":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"201":{"tf":1.0},"218":{"tf":1.0},"232":{"tf":1.0},"272":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0},"86":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":13,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"145":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"217":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"z":{"df":1,"docs":{"13":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"13":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":1.0}}}},"t":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":1,"docs":{"270":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"16":{"tf":1.0},"96":{"tf":1.0}}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"z":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}},"df":0,"docs":{},"j":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}},"y":{"df":0,"docs":{},"m":{"df":4,"docs":{"184":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":2.449489742783178},"94":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.4142135623730951},"181":{"tf":1.0},"196":{"tf":1.0},"228":{"tf":1.0},"254":{"tf":1.0},"34":{"tf":1.0},"77":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}}},"y":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"111":{"tf":1.0},"178":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"26":{"tf":1.0},"83":{"tf":1.0},"90":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":7,"docs":{"152":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"20":{"tf":1.0},"205":{"tf":1.0},"28":{"tf":1.0},"90":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"284":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"i":{"df":10,"docs":{"112":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.7320508075688772},"235":{"tf":1.0},"55":{"tf":1.0}}},"p":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"98":{"tf":1.0}}}}}}}},"df":31,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"128":{"tf":1.0},"141":{"tf":1.0},"149":{"tf":1.7320508075688772},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"217":{"tf":1.4142135623730951},"222":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"272":{"tf":1.0},"279":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"37":{"tf":1.0},"77":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"114":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"12":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"a":{"d":{"+":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"167":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":18,"docs":{"1":{"tf":1.0},"106":{"tf":1.0},"121":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"165":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"248":{"tf":1.4142135623730951},"267":{"tf":1.0},"273":{"tf":1.4142135623730951},"59":{"tf":1.0}}},"df":6,"docs":{"111":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":2.0},"223":{"tf":1.0},"55":{"tf":1.0},"88":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"a":{"c":{"df":0,"docs":{},"h":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"234":{"tf":1.0},"77":{"tf":1.0},"96":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.0},"219":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"234":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"188":{"tf":1.0}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{".":{"c":{"df":0,"docs":{},"o":{"df":2,"docs":{"128":{"tf":1.0},"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"df":1,"docs":{"151":{"tf":1.0}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"29":{"tf":2.23606797749979}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"155":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"214":{"tf":1.0},"261":{"tf":1.0},"5":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":17,"docs":{"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":2.0},"42":{"tf":1.0},"52":{"tf":2.0},"59":{"tf":1.0},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"162":{"tf":1.0},"208":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":2.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"k":{"df":2,"docs":{"181":{"tf":1.0},"254":{"tf":1.0}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"103":{"tf":1.0}}}}},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"185":{"tf":1.0},"76":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"133":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"288":{"tf":1.0}},"o":{"df":0,"docs":{},"m":{"'":{"df":1,"docs":{"276":{"tf":1.0}}},"df":272,"docs":{"0":{"tf":3.872983346207417},"1":{"tf":3.0},"10":{"tf":1.7320508075688772},"100":{"tf":1.4142135623730951},"101":{"tf":2.23606797749979},"102":{"tf":2.23606797749979},"103":{"tf":1.7320508075688772},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"11":{"tf":1.7320508075688772},"110":{"tf":2.449489742783178},"111":{"tf":2.0},"112":{"tf":2.0},"113":{"tf":1.7320508075688772},"114":{"tf":1.4142135623730951},"115":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"120":{"tf":2.23606797749979},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.7320508075688772},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":3.3166247903554},"133":{"tf":2.449489742783178},"134":{"tf":1.7320508075688772},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":2.0},"14":{"tf":2.449489742783178},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"144":{"tf":2.449489742783178},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"147":{"tf":1.0},"148":{"tf":3.0},"149":{"tf":2.6457513110645907},"15":{"tf":2.449489742783178},"150":{"tf":3.0},"151":{"tf":3.605551275463989},"152":{"tf":3.4641016151377544},"153":{"tf":1.4142135623730951},"154":{"tf":2.0},"155":{"tf":1.7320508075688772},"156":{"tf":2.0},"157":{"tf":2.449489742783178},"158":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":2.23606797749979},"160":{"tf":1.7320508075688772},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"164":{"tf":1.7320508075688772},"165":{"tf":2.8284271247461903},"166":{"tf":2.449489742783178},"167":{"tf":1.0},"168":{"tf":2.0},"169":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":4.47213595499958},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":3.0},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":2.0},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":2.0},"19":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":3.0},"192":{"tf":3.4641016151377544},"193":{"tf":3.7416573867739413},"194":{"tf":2.8284271247461903},"195":{"tf":2.23606797749979},"196":{"tf":2.449489742783178},"197":{"tf":2.23606797749979},"198":{"tf":1.4142135623730951},"2":{"tf":2.6457513110645907},"20":{"tf":3.1622776601683795},"200":{"tf":3.3166247903554},"201":{"tf":2.0},"202":{"tf":2.449489742783178},"203":{"tf":2.0},"204":{"tf":2.23606797749979},"205":{"tf":2.449489742783178},"206":{"tf":2.0},"207":{"tf":1.4142135623730951},"209":{"tf":2.0},"21":{"tf":1.7320508075688772},"210":{"tf":1.0},"211":{"tf":1.4142135623730951},"213":{"tf":2.6457513110645907},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":1.7320508075688772},"217":{"tf":1.7320508075688772},"218":{"tf":2.0},"219":{"tf":2.6457513110645907},"22":{"tf":3.0},"220":{"tf":2.0},"222":{"tf":2.6457513110645907},"223":{"tf":2.0},"224":{"tf":1.4142135623730951},"225":{"tf":2.449489742783178},"226":{"tf":2.0},"227":{"tf":2.23606797749979},"228":{"tf":1.7320508075688772},"229":{"tf":1.7320508075688772},"23":{"tf":2.449489742783178},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"232":{"tf":2.0},"233":{"tf":1.4142135623730951},"235":{"tf":2.8284271247461903},"237":{"tf":1.4142135623730951},"238":{"tf":1.0},"239":{"tf":1.0},"24":{"tf":1.7320508075688772},"240":{"tf":2.0},"241":{"tf":2.23606797749979},"242":{"tf":2.8284271247461903},"243":{"tf":1.7320508075688772},"244":{"tf":2.0},"245":{"tf":1.0},"246":{"tf":1.7320508075688772},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"250":{"tf":1.0},"251":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"255":{"tf":1.4142135623730951},"257":{"tf":2.0},"258":{"tf":2.0},"259":{"tf":1.7320508075688772},"26":{"tf":2.23606797749979},"260":{"tf":1.4142135623730951},"261":{"tf":2.449489742783178},"262":{"tf":2.23606797749979},"263":{"tf":2.23606797749979},"264":{"tf":2.0},"265":{"tf":1.7320508075688772},"267":{"tf":1.7320508075688772},"268":{"tf":2.0},"27":{"tf":1.0},"271":{"tf":1.0},"272":{"tf":2.8284271247461903},"274":{"tf":2.6457513110645907},"275":{"tf":2.0},"276":{"tf":3.1622776601683795},"279":{"tf":1.0},"28":{"tf":1.7320508075688772},"280":{"tf":2.0},"282":{"tf":1.4142135623730951},"283":{"tf":1.7320508075688772},"284":{"tf":2.0},"285":{"tf":1.7320508075688772},"288":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":4.69041575982343},"290":{"tf":1.0},"3":{"tf":1.4142135623730951},"30":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.4142135623730951},"33":{"tf":2.0},"34":{"tf":1.4142135623730951},"35":{"tf":2.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.7320508075688772},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"4":{"tf":1.4142135623730951},"40":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":2.6457513110645907},"45":{"tf":2.0},"46":{"tf":1.7320508075688772},"47":{"tf":2.23606797749979},"48":{"tf":2.0},"49":{"tf":2.6457513110645907},"5":{"tf":1.0},"50":{"tf":1.4142135623730951},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"53":{"tf":1.7320508075688772},"54":{"tf":2.6457513110645907},"55":{"tf":2.6457513110645907},"56":{"tf":1.7320508075688772},"57":{"tf":2.0},"58":{"tf":2.0},"59":{"tf":1.0},"6":{"tf":1.4142135623730951},"60":{"tf":2.0},"61":{"tf":2.0},"62":{"tf":1.0},"63":{"tf":2.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.4142135623730951},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.4142135623730951},"73":{"tf":1.7320508075688772},"74":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"77":{"tf":2.23606797749979},"78":{"tf":2.6457513110645907},"79":{"tf":1.7320508075688772},"8":{"tf":1.4142135623730951},"80":{"tf":1.4142135623730951},"81":{"tf":2.0},"82":{"tf":2.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"9":{"tf":2.23606797749979},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.4142135623730951},"95":{"tf":1.0},"96":{"tf":1.7320508075688772},"97":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}},"i":{"c":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"41":{"tf":1.0}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"97":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"160":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}}}}},"df":4,"docs":{"143":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":1,"docs":{"134":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":2,"docs":{"18":{"tf":1.0},"254":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":4,"docs":{"39":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"151":{"tf":1.0},"235":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"k":{"df":4,"docs":{"100":{"tf":1.0},"102":{"tf":1.0},"83":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"180":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"254":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":1,"docs":{"23":{"tf":1.0}}},"t":{"df":11,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.4142135623730951},"229":{"tf":1.0},"81":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"71":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"197":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":36,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.7320508075688772},"104":{"tf":1.0},"105":{"tf":1.7320508075688772},"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.4142135623730951},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":2.0},"200":{"tf":1.0},"217":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"91":{"tf":2.0},"93":{"tf":2.6457513110645907},"94":{"tf":1.7320508075688772},"95":{"tf":3.3166247903554},"96":{"tf":2.0},"97":{"tf":1.7320508075688772},"98":{"tf":2.23606797749979},"99":{"tf":2.23606797749979}},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":2,"docs":{"135":{"tf":1.4142135623730951},"99":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"'":{"df":3,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0}}},"df":31,"docs":{"0":{"tf":1.4142135623730951},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.4142135623730951},"135":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"163":{"tf":2.23606797749979},"193":{"tf":1.0},"198":{"tf":1.7320508075688772},"217":{"tf":1.0},"226":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"287":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.4142135623730951},"88":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"91":{"tf":1.4142135623730951},"92":{"tf":2.0},"93":{"tf":1.0},"98":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0}}}}}}}}},"o":{"df":2,"docs":{"141":{"tf":1.0},"252":{"tf":1.7320508075688772}},"m":{"a":{"df":0,"docs":{},"t":{"df":3,"docs":{"20":{"tf":1.0},"205":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":11,"docs":{"105":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"209":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"274":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.4142135623730951},"85":{"tf":1.0}}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.7320508075688772}}}},"r":{"df":3,"docs":{"215":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":6,"docs":{"152":{"tf":1.0},"195":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0}},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"65":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"d":{"df":2,"docs":{"12":{"tf":1.0},"210":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":5,"docs":{"131":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":6,"docs":{"101":{"tf":1.4142135623730951},"105":{"tf":1.0},"117":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":13,"docs":{"105":{"tf":1.0},"173":{"tf":1.0},"187":{"tf":1.0},"197":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"264":{"tf":1.0},"270":{"tf":1.4142135623730951},"74":{"tf":1.0},"95":{"tf":1.0}}},"i":{"c":{"df":8,"docs":{"148":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"87":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"250":{"tf":1.0}}}}},"l":{"df":1,"docs":{"220":{"tf":1.0}}}}},"z":{"df":1,"docs":{"131":{"tf":1.7320508075688772}}}},"df":2,"docs":{"123":{"tf":1.0},"181":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"95":{"tf":1.0},"98":{"tf":2.0}}}}}},"c":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":16,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.4142135623730951},"148":{"tf":2.23606797749979},"167":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0}}}}},"df":17,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.4142135623730951},"247":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"266":{"tf":1.0},"5":{"tf":1.0},"86":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":12,"docs":{"116":{"tf":1.0},"144":{"tf":1.0},"153":{"tf":1.0},"162":{"tf":1.0},"182":{"tf":1.0},"194":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"264":{"tf":1.4142135623730951},"51":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":1,"docs":{"56":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":4,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0},"200":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"19":{"tf":1.0},"193":{"tf":1.0},"204":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"183":{"tf":1.0},"228":{"tf":1.4142135623730951},"265":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"127":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}},"t":{"df":9,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}}},"t":{"a":{"df":1,"docs":{"220":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"12":{"tf":1.0},"144":{"tf":1.0},"181":{"tf":1.4142135623730951},"185":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":14,"docs":{"125":{"tf":1.0},"132":{"tf":1.0},"163":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"228":{"tf":1.7320508075688772},"250":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"235":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"148":{"tf":1.0},"18":{"tf":1.0},"216":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.7320508075688772}}}}}}},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":6,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"261":{"tf":1.0},"69":{"tf":1.0}}},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.7320508075688772}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}}},"df":0,"docs":{},"g":{"df":1,"docs":{"247":{"tf":1.0}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"163":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":7,"docs":{"177":{"tf":1.7320508075688772},"204":{"tf":1.4142135623730951},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"256":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0}}},"y":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"df":17,"docs":{"100":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"67":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":8,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":2.6457513110645907},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"142":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"289":{"tf":1.0},"56":{"tf":1.0}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"154":{"tf":2.0},"157":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.7320508075688772},"162":{"tf":1.7320508075688772},"163":{"tf":2.6457513110645907},"28":{"tf":1.0},"60":{"tf":1.0}}}}}}}}},"o":{"d":{"df":0,"docs":{},"i":{"df":4,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"210":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"219":{"tf":1.0}}}},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}},"k":{"df":7,"docs":{"130":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"232":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"29":{"tf":1.0},"39":{"tf":1.4142135623730951},"56":{"tf":1.0},"59":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}},"t":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"132":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":30,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"185":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"242":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"42":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"154":{"tf":1.0},"5":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}}},"n":{"d":{"df":3,"docs":{"132":{"tf":1.0},"248":{"tf":1.0},"35":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"d":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"86":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":3,"docs":{"209":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"155":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"120":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"186":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"199":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"243":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":3,"docs":{"247":{"tf":1.0},"248":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"262":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"'":{"df":1,"docs":{"160":{"tf":1.0}}},"/":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"b":{"/":{"3":{"0":{"b":{"2":{"df":0,"docs":{},"f":{"8":{"a":{"df":0,"docs":{},"f":{"5":{"9":{"d":{"2":{"5":{"0":{"8":{"4":{"d":{"df":0,"docs":{},"e":{"9":{"6":{"6":{"3":{"0":{"1":{"c":{"b":{"6":{"b":{"d":{"1":{"df":0,"docs":{},"e":{"d":{"9":{"0":{"c":{"0":{"df":0,"docs":{},"e":{"b":{"7":{"8":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"#":{"df":0,"docs":{},"l":{"1":{"7":{"6":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":23,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"117":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"18":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"262":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.7320508075688772},"276":{"tf":1.0},"98":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"g":{"df":51,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"df":20,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.7320508075688772},"17":{"tf":1.0},"177":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"2":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":11,"docs":{"151":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":2.23606797749979},"261":{"tf":1.4142135623730951},"263":{"tf":1.0},"267":{"tf":1.0}}}}},"n":{"c":{"df":0,"docs":{},"h":{"df":7,"docs":{"108":{"tf":1.0},"131":{"tf":1.0},"160":{"tf":1.0},"266":{"tf":1.4142135623730951},"270":{"tf":1.0},"28":{"tf":1.0},"86":{"tf":1.0}}}},"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"128":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"i":{"df":3,"docs":{"201":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}}}},"y":{"df":4,"docs":{"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.4142135623730951},"250":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"117":{"tf":1.0},"59":{"tf":1.0}}}}}},"c":{"a":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"184":{"tf":1.0},"79":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":6,"docs":{"117":{"tf":1.7320508075688772},"139":{"tf":2.0},"142":{"tf":1.0},"195":{"tf":1.0},"42":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"l":{"df":12,"docs":{"148":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"262":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"184":{"tf":1.0},"249":{"tf":1.0},"288":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"157":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"p":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"261":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"256":{"tf":1.0}}},"df":2,"docs":{"247":{"tf":1.4142135623730951},"249":{"tf":1.0}},"e":{"df":1,"docs":{"157":{"tf":1.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}},"g":{"df":0,"docs":{},"o":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.0}}}},"t":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":53,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.0},"17":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.0},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"254":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0},"289":{"tf":1.0},"87":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"260":{"tf":2.0},"261":{"tf":2.0},"262":{"tf":1.7320508075688772},"263":{"tf":1.0},"264":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"112":{"tf":1.0},"209":{"tf":1.0}}}}},"df":2,"docs":{"123":{"tf":1.0},"56":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"243":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"173":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"259":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.7320508075688772}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"13":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"g":{"df":40,"docs":{"0":{"tf":1.7320508075688772},"110":{"tf":1.4142135623730951},"111":{"tf":2.449489742783178},"112":{"tf":1.4142135623730951},"114":{"tf":2.449489742783178},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"151":{"tf":1.0},"152":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.4142135623730951},"179":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.7320508075688772},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":3.4641016151377544},"209":{"tf":1.7320508075688772},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.0},"289":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"194":{"tf":1.0},"196":{"tf":1.0},"34":{"tf":1.0},"81":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.4142135623730951},"66":{"tf":1.0},"84":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"176":{"tf":1.0},"213":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"33":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":2,"docs":{"18":{"tf":1.0},"290":{"tf":1.0}},"g":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"245":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":3,"docs":{"18":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.4142135623730951},"246":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"k":{"df":29,"docs":{"103":{"tf":2.23606797749979},"105":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":2.449489742783178},"12":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.7320508075688772},"168":{"tf":1.0},"177":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"270":{"tf":1.0},"282":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"84":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"198":{"tf":1.0}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"88":{"tf":1.4142135623730951},"89":{"tf":1.0}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"23":{"tf":1.0},"235":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"186":{"tf":1.0},"193":{"tf":1.0},"81":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"268":{"tf":1.0}}}}}}}},"k":{"a":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"263":{"tf":1.0}}},"df":1,"docs":{"263":{"tf":2.0}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"58":{"tf":1.0}}},"df":31,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"145":{"tf":1.4142135623730951},"154":{"tf":3.0},"159":{"tf":2.449489742783178},"160":{"tf":2.23606797749979},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"20":{"tf":1.4142135623730951},"214":{"tf":1.7320508075688772},"228":{"tf":1.0},"230":{"tf":1.0},"249":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.4142135623730951},"49":{"tf":1.0},"54":{"tf":1.4142135623730951},"55":{"tf":1.4142135623730951},"56":{"tf":2.0},"57":{"tf":2.23606797749979},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":3.4641016151377544},"7":{"tf":1.0},"76":{"tf":2.6457513110645907},"79":{"tf":1.0},"80":{"tf":1.0},"88":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"125":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"58":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":7,"docs":{"121":{"tf":1.0},"172":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.0},"37":{"tf":1.0}}},"r":{"df":6,"docs":{"166":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"26":{"tf":1.4142135623730951},"55":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"269":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":8,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"155":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"57":{"tf":1.0}}}},"df":8,"docs":{"18":{"tf":1.7320508075688772},"192":{"tf":1.0},"2":{"tf":1.4142135623730951},"272":{"tf":1.4142135623730951},"276":{"tf":2.0},"280":{"tf":1.0},"283":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":28,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"108":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"133":{"tf":1.0},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.7320508075688772},"147":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"203":{"tf":1.0},"254":{"tf":1.7320508075688772},"275":{"tf":1.0},"37":{"tf":1.0},"76":{"tf":1.7320508075688772},"79":{"tf":1.0},"94":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"m":{"b":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"79":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":7,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"215":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"45":{"tf":1.0},"76":{"tf":1.0}}}},"u":{"d":{"df":2,"docs":{"121":{"tf":1.0},"241":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"186":{"tf":1.0}}}}}}},"m":{"df":11,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.7320508075688772},"234":{"tf":2.8284271247461903},"235":{"tf":1.4142135623730951},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.7320508075688772},"261":{"tf":1.0}}},"o":{"d":{"df":0,"docs":{},"e":{"df":11,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"152":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"226":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"83":{"tf":1.0}},"s":{"a":{"df":0,"docs":{},"n":{"d":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":1,"docs":{"199":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"18":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"121":{"tf":1.0},"133":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.4142135623730951},"142":{"tf":3.0},"143":{"tf":2.449489742783178},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"33":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":2.23606797749979},"8":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"d":{"df":2,"docs":{"184":{"tf":1.0},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":4,"docs":{"177":{"tf":1.4142135623730951},"184":{"tf":1.0},"26":{"tf":1.0},"76":{"tf":2.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"n":{"df":1,"docs":{"219":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":21,"docs":{"0":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"197":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"217":{"tf":1.4142135623730951},"220":{"tf":1.0},"222":{"tf":1.0},"247":{"tf":1.0},"259":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"250":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":4,"docs":{"106":{"tf":1.0},"112":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0}}},"m":{"a":{"df":1,"docs":{"68":{"tf":1.0}},"n":{"d":{"df":4,"docs":{"114":{"tf":1.0},"2":{"tf":1.0},"218":{"tf":1.7320508075688772},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"102":{"tf":1.0},"261":{"tf":1.0}}}},"r":{"c":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":2.23606797749979},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"271":{"tf":1.0}}},"t":{"(":{"df":1,"docs":{"258":{"tf":1.0}}},"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.0}}}},"df":0,"docs":{}}},"df":57,"docs":{"0":{"tf":1.7320508075688772},"105":{"tf":1.0},"110":{"tf":2.0},"111":{"tf":2.449489742783178},"112":{"tf":1.7320508075688772},"113":{"tf":1.7320508075688772},"114":{"tf":3.3166247903554},"115":{"tf":2.23606797749979},"116":{"tf":2.0},"117":{"tf":2.449489742783178},"118":{"tf":3.7416573867739413},"119":{"tf":2.6457513110645907},"120":{"tf":2.0},"121":{"tf":2.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":3.605551275463989},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.7320508075688772},"188":{"tf":1.0},"195":{"tf":2.0},"197":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"240":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":3.1622776601683795},"276":{"tf":2.0},"280":{"tf":1.0},"42":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"84":{"tf":1.4142135623730951},"85":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"93":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}},"s":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"14":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.7320508075688772}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"17":{"tf":1.0},"179":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"61":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"n":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"269":{"tf":1.0},"290":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":1.0},"132":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":7,"docs":{"12":{"tf":2.0},"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.4142135623730951}}}}}},"r":{"df":25,"docs":{"112":{"tf":1.0},"120":{"tf":2.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"227":{"tf":1.7320508075688772},"239":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":1.0},"263":{"tf":1.4142135623730951},"29":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0},"8":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":64,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"170":{"tf":1.0},"171":{"tf":1.0},"172":{"tf":1.0},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"220":{"tf":1.0},"221":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.0}}}}}}},"t":{"df":7,"docs":{"166":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"193":{"tf":1.0},"31":{"tf":1.0},"45":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"78":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"20":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"df":6,"docs":{"107":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"22":{"tf":1.0},"33":{"tf":1.0},"36":{"tf":1.0}}},"x":{"df":5,"docs":{"177":{"tf":1.0},"180":{"tf":1.0},"199":{"tf":1.4142135623730951},"60":{"tf":1.0},"78":{"tf":1.0}}}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"14":{"tf":1.0},"260":{"tf":1.4142135623730951}}},"df":0,"docs":{},"t":{"df":1,"docs":{"111":{"tf":1.0}}}}},"c":{"df":5,"docs":{"119":{"tf":1.0},"177":{"tf":1.4142135623730951},"189":{"tf":1.0},"199":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"29":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":5,"docs":{"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"22":{"tf":1.0},"86":{"tf":1.0}}}}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":24,"docs":{"113":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"160":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":2.0},"192":{"tf":1.0},"199":{"tf":1.0},"27":{"tf":1.4142135623730951},"31":{"tf":1.0},"5":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"8":{"tf":1.0},"80":{"tf":1.0}},"u":{"df":2,"docs":{"129":{"tf":1.0},"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"110":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"232":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"162":{"tf":1.0},"165":{"tf":1.0},"194":{"tf":1.0},"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":6,"docs":{"179":{"tf":1.0},"185":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"209":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":10,"docs":{"0":{"tf":1.7320508075688772},"13":{"tf":1.0},"134":{"tf":1.7320508075688772},"175":{"tf":1.0},"178":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.4142135623730951},"248":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"234":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":1,"docs":{"248":{"tf":1.0}}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"181":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"204":{"tf":1.0}}}}}}}}},"i":{"d":{"df":5,"docs":{"112":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"247":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"137":{"tf":1.4142135623730951},"17":{"tf":1.0},"210":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"182":{"tf":1.0},"199":{"tf":1.0},"244":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"61":{"tf":1.0},"76":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{".":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"t":{"df":2,"docs":{"102":{"tf":2.449489742783178},"177":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":8,"docs":{"132":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0}},"t":{"df":7,"docs":{"132":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"230":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"154":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"280":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":7,"docs":{"18":{"tf":1.0},"183":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0}}}}},"t":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":31,"docs":{"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.0},"115":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"135":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.0},"240":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"86":{"tf":1.0},"89":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"127":{"tf":1.4142135623730951},"173":{"tf":1.0},"187":{"tf":1.0},"194":{"tf":1.4142135623730951},"208":{"tf":1.7320508075688772},"210":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"5":{"tf":1.0},"59":{"tf":1.0},"6":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"df":12,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.4142135623730951},"202":{"tf":1.0},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"243":{"tf":1.0},"38":{"tf":1.0},"62":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"192":{"tf":1.0},"213":{"tf":1.0},"32":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.4142135623730951},"17":{"tf":1.0},"176":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"12":{"tf":2.23606797749979},"121":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"84":{"tf":1.0}}},"t":{"df":3,"docs":{"17":{"tf":1.0},"235":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"s":{"df":3,"docs":{"204":{"tf":1.4142135623730951},"266":{"tf":1.0},"283":{"tf":1.4142135623730951}}},"t":{"df":14,"docs":{"1":{"tf":1.4142135623730951},"13":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.23606797749979},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"219":{"tf":1.4142135623730951},"262":{"tf":1.0},"284":{"tf":1.0},"48":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"241":{"tf":1.0}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":5,"docs":{"93":{"tf":1.0},"95":{"tf":1.4142135623730951},"96":{"tf":1.7320508075688772},"97":{"tf":2.23606797749979},"98":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"183":{"tf":1.0}}}}},"r":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"i":{"df":5,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"79":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":14,"docs":{"0":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.7320508075688772},"214":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":2.0},"54":{"tf":1.0},"7":{"tf":1.4142135623730951},"81":{"tf":1.0}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"241":{"tf":1.0},"246":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"118":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"137":{"tf":1.0},"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"192":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":5,"docs":{"100":{"tf":1.0},"112":{"tf":1.0},"178":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"14":{"tf":1.0},"87":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"65":{"tf":1.0},"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"201":{"tf":1.0}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"268":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"df":9,"docs":{"112":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.0},"78":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":7,"docs":{"175":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"79":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"194":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"r":{"df":1,"docs":{"218":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"272":{"tf":1.0}}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":82,"docs":{"0":{"tf":1.0},"1":{"tf":2.23606797749979},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"13":{"tf":1.7320508075688772},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.4142135623730951},"148":{"tf":1.7320508075688772},"149":{"tf":1.4142135623730951},"150":{"tf":2.0},"152":{"tf":2.0},"153":{"tf":2.0},"154":{"tf":2.449489742783178},"155":{"tf":1.0},"156":{"tf":2.0},"157":{"tf":2.6457513110645907},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.4142135623730951},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"164":{"tf":1.0},"166":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.4142135623730951},"187":{"tf":1.0},"189":{"tf":1.7320508075688772},"191":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"204":{"tf":1.0},"206":{"tf":1.0},"218":{"tf":1.4142135623730951},"219":{"tf":1.4142135623730951},"22":{"tf":1.7320508075688772},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.7320508075688772},"245":{"tf":1.0},"251":{"tf":1.0},"258":{"tf":1.4142135623730951},"26":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.7320508075688772},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"279":{"tf":1.0},"283":{"tf":1.0},"31":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.7320508075688772},"79":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.7320508075688772},"9":{"tf":1.7320508075688772},"93":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"283":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"143":{"tf":1.0},"30":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.7320508075688772},"256":{"tf":3.0},"257":{"tf":1.4142135623730951},"258":{"tf":2.23606797749979},"259":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"181":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"193":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"262":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":10,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0}},"i":{"df":3,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"197":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}}},"s":{"df":1,"docs":{"179":{"tf":1.0}},"v":{"df":3,"docs":{"148":{"tf":1.0},"262":{"tf":1.0},"283":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":17,"docs":{"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"164":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"254":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"86":{"tf":1.0},"92":{"tf":1.7320508075688772}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"118":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":1.4142135623730951},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"248":{"tf":1.4142135623730951},"267":{"tf":1.0}}}}}}}},"t":{"df":1,"docs":{"127":{"tf":1.0}}}},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"229":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"208":{"tf":1.0}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"n":{"df":1,"docs":{"59":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"62":{"tf":1.0}}}},"t":{"a":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},"b":{"a":{"df":0,"docs":{},"s":{"df":31,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"174":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.0},"215":{"tf":1.7320508075688772},"217":{"tf":2.0},"218":{"tf":1.0},"219":{"tf":2.0},"220":{"tf":1.4142135623730951},"225":{"tf":2.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"262":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":263,"docs":{"0":{"tf":4.58257569495584},"1":{"tf":2.23606797749979},"10":{"tf":2.23606797749979},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"11":{"tf":1.7320508075688772},"110":{"tf":2.0},"111":{"tf":1.7320508075688772},"112":{"tf":4.242640687119285},"113":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"115":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"119":{"tf":2.0},"12":{"tf":3.1622776601683795},"120":{"tf":2.0},"121":{"tf":2.6457513110645907},"122":{"tf":1.4142135623730951},"123":{"tf":1.4142135623730951},"124":{"tf":1.4142135623730951},"125":{"tf":1.4142135623730951},"126":{"tf":1.4142135623730951},"127":{"tf":1.4142135623730951},"128":{"tf":1.4142135623730951},"129":{"tf":1.4142135623730951},"13":{"tf":3.7416573867739413},"130":{"tf":2.0},"131":{"tf":1.4142135623730951},"132":{"tf":2.23606797749979},"133":{"tf":2.23606797749979},"134":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.7320508075688772},"14":{"tf":3.1622776601683795},"140":{"tf":1.4142135623730951},"141":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":2.6457513110645907},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"147":{"tf":1.0},"148":{"tf":3.1622776601683795},"149":{"tf":2.23606797749979},"15":{"tf":1.7320508075688772},"150":{"tf":1.7320508075688772},"151":{"tf":2.23606797749979},"152":{"tf":2.0},"154":{"tf":2.0},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":2.23606797749979},"16":{"tf":2.23606797749979},"160":{"tf":1.4142135623730951},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"164":{"tf":1.4142135623730951},"165":{"tf":2.449489742783178},"166":{"tf":2.6457513110645907},"167":{"tf":1.7320508075688772},"168":{"tf":1.7320508075688772},"169":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":3.3166247903554},"176":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":3.1622776601683795},"180":{"tf":2.0},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"183":{"tf":2.8284271247461903},"184":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"187":{"tf":1.7320508075688772},"189":{"tf":2.6457513110645907},"19":{"tf":1.7320508075688772},"190":{"tf":2.0},"191":{"tf":2.449489742783178},"192":{"tf":2.449489742783178},"193":{"tf":4.242640687119285},"194":{"tf":3.605551275463989},"195":{"tf":2.23606797749979},"196":{"tf":2.449489742783178},"197":{"tf":1.7320508075688772},"198":{"tf":1.4142135623730951},"199":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":2.449489742783178},"200":{"tf":2.449489742783178},"201":{"tf":2.0},"202":{"tf":2.449489742783178},"203":{"tf":2.0},"204":{"tf":2.23606797749979},"205":{"tf":2.6457513110645907},"206":{"tf":1.7320508075688772},"207":{"tf":1.4142135623730951},"208":{"tf":1.0},"209":{"tf":2.0},"21":{"tf":1.7320508075688772},"210":{"tf":1.7320508075688772},"211":{"tf":1.7320508075688772},"213":{"tf":3.0},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":2.6457513110645907},"218":{"tf":2.23606797749979},"219":{"tf":2.449489742783178},"22":{"tf":3.7416573867739413},"220":{"tf":1.7320508075688772},"222":{"tf":2.6457513110645907},"223":{"tf":1.4142135623730951},"225":{"tf":2.23606797749979},"226":{"tf":1.7320508075688772},"227":{"tf":1.7320508075688772},"228":{"tf":2.449489742783178},"229":{"tf":2.23606797749979},"23":{"tf":3.0},"230":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":2.8284271247461903},"235":{"tf":2.449489742783178},"238":{"tf":1.4142135623730951},"24":{"tf":1.7320508075688772},"240":{"tf":2.23606797749979},"241":{"tf":3.872983346207417},"242":{"tf":3.4641016151377544},"243":{"tf":1.4142135623730951},"244":{"tf":1.7320508075688772},"246":{"tf":1.7320508075688772},"247":{"tf":3.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":3.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":2.23606797749979},"255":{"tf":1.4142135623730951},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"26":{"tf":3.1622776601683795},"260":{"tf":3.3166247903554},"261":{"tf":2.23606797749979},"262":{"tf":3.1622776601683795},"263":{"tf":1.0},"264":{"tf":1.7320508075688772},"265":{"tf":1.7320508075688772},"267":{"tf":1.0},"268":{"tf":2.0},"27":{"tf":1.0},"271":{"tf":1.0},"272":{"tf":2.23606797749979},"274":{"tf":1.4142135623730951},"275":{"tf":2.0},"276":{"tf":1.7320508075688772},"279":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":2.0},"284":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.7320508075688772},"289":{"tf":1.7320508075688772},"29":{"tf":2.6457513110645907},"290":{"tf":1.0},"3":{"tf":1.4142135623730951},"30":{"tf":1.7320508075688772},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"33":{"tf":1.7320508075688772},"34":{"tf":1.4142135623730951},"35":{"tf":2.23606797749979},"36":{"tf":1.4142135623730951},"37":{"tf":1.7320508075688772},"38":{"tf":2.449489742783178},"39":{"tf":2.449489742783178},"4":{"tf":1.4142135623730951},"40":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"43":{"tf":1.0},"44":{"tf":2.23606797749979},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":2.0},"49":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":2.6457513110645907},"56":{"tf":1.4142135623730951},"57":{"tf":2.0},"58":{"tf":1.0},"59":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951},"60":{"tf":2.23606797749979},"61":{"tf":1.0},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.4142135623730951},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":2.23606797749979},"78":{"tf":1.7320508075688772},"79":{"tf":2.8284271247461903},"8":{"tf":1.7320508075688772},"80":{"tf":1.4142135623730951},"81":{"tf":2.23606797749979},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.7320508075688772},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":2.23606797749979},"94":{"tf":1.4142135623730951},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"228":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"13":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"22":{"tf":1.0},"260":{"tf":2.23606797749979},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"264":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":51,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"180":{"tf":1.0},"182":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":2.8284271247461903},"189":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"209":{"tf":1.4142135623730951},"215":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.4142135623730951},"26":{"tf":1.0},"283":{"tf":1.0},"29":{"tf":2.449489742783178},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"58":{"tf":2.449489742783178},"59":{"tf":3.3166247903554},"61":{"tf":2.449489742783178},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":2.449489742783178},"75":{"tf":1.7320508075688772},"79":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"(":{")":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"1":{"9":{"9":{"1":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":12,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.4142135623730951},"20":{"tf":1.0},"245":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"70":{"tf":1.7320508075688772},"97":{"tf":1.4142135623730951}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"185":{"tf":1.4142135623730951},"252":{"tf":1.0},"54":{"tf":1.0},"71":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"b":{"df":3,"docs":{"166":{"tf":1.0},"215":{"tf":1.0},"223":{"tf":1.0}},"o":{":":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}}},"p":{":":{"d":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"df":1,"docs":{"126":{"tf":1.0}}}},"c":{":":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}}}},"df":1,"docs":{"130":{"tf":1.0}}},"d":{"df":1,"docs":{"70":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":29,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"187":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"54":{"tf":1.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.4142135623730951},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.4142135623730951},"85":{"tf":1.0},"87":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}}}},"b":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":2,"docs":{"123":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"189":{"tf":1.0},"264":{"tf":1.7320508075688772}},"r":{"df":17,"docs":{"111":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.4142135623730951},"13":{"tf":1.0},"176":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.4142135623730951},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"12":{"tf":1.0},"146":{"tf":1.0},"206":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"17":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"df":1,"docs":{"20":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"45":{"tf":1.0}}},"p":{"df":3,"docs":{"112":{"tf":1.0},"206":{"tf":1.0},"242":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"86":{"tf":1.0}}}}}},"f":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"142":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"184":{"tf":1.0},"195":{"tf":1.0},"202":{"tf":1.0},"241":{"tf":1.0},"267":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":24,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"160":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"189":{"tf":1.0},"198":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"218":{"tf":1.0},"220":{"tf":1.0},"228":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.4142135623730951},"39":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":6,"docs":{"14":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.4142135623730951},"261":{"tf":1.0}}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"199":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"127":{"tf":1.7320508075688772},"130":{"tf":1.0},"92":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"117":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"247":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}},"t":{"a":{"'":{"df":1,"docs":{"124":{"tf":1.0}}},"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.7320508075688772},"124":{"tf":1.7320508075688772},"125":{"tf":1.4142135623730951},"128":{"tf":2.23606797749979},"129":{"tf":1.0},"132":{"tf":1.0},"188":{"tf":1.4142135623730951},"288":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"2":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":7,"docs":{"124":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"184":{"tf":1.0},"253":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":17,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"60":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"81":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"192":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"203":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":38,"docs":{"104":{"tf":1.0},"114":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"144":{"tf":2.0},"160":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"175":{"tf":1.4142135623730951},"190":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":2.0},"249":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":1.0},"259":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951},"81":{"tf":1.0},"97":{"tf":1.0}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":27,"docs":{"0":{"tf":1.4142135623730951},"136":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":2.6457513110645907},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"259":{"tf":1.0},"260":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":2.0},"38":{"tf":2.6457513110645907},"39":{"tf":1.7320508075688772},"50":{"tf":2.0},"51":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":2.23606797749979},"59":{"tf":1.0},"60":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":35,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.7320508075688772},"112":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.7320508075688772},"128":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"172":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.7320508075688772},"78":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}}}},"r":{"df":1,"docs":{"254":{"tf":1.0}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":5,"docs":{"151":{"tf":1.4142135623730951},"152":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"277":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"276":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":4,"docs":{"154":{"tf":1.0},"193":{"tf":1.0},"269":{"tf":1.7320508075688772},"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"132":{"tf":1.0},"90":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"42":{"tf":1.0}}}}}}}}}}},"v":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":2,"docs":{"205":{"tf":1.0},"234":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":35,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.449489742783178},"151":{"tf":1.0},"164":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"186":{"tf":2.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":2.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"196":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0}}}}}},"i":{"c":{"df":6,"docs":{"111":{"tf":1.4142135623730951},"199":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"285":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}},"x":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"200":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"m":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"105":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":37,"docs":{"112":{"tf":1.7320508075688772},"120":{"tf":1.0},"132":{"tf":1.7320508075688772},"137":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.4142135623730951},"214":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":2.0},"35":{"tf":1.0},"50":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":9,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.7320508075688772},"130":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"149":{"tf":1.0},"177":{"tf":1.0},"265":{"tf":1.0},"33":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"279":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":1,"docs":{"243":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"110":{"tf":1.0},"193":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":4,"docs":{"155":{"tf":1.0},"2":{"tf":1.0},"266":{"tf":1.0},"57":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"109":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":21,"docs":{"106":{"tf":1.0},"120":{"tf":1.4142135623730951},"132":{"tf":1.0},"141":{"tf":1.0},"147":{"tf":1.7320508075688772},"16":{"tf":1.0},"170":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"187":{"tf":1.0},"212":{"tf":1.0},"238":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"3":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"88":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"182":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"220":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"165":{"tf":1.0}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":2,"docs":{"155":{"tf":1.4142135623730951},"199":{"tf":1.0}}}}},"o":{"c":{"df":6,"docs":{"0":{"tf":1.0},"190":{"tf":1.4142135623730951},"240":{"tf":1.4142135623730951},"288":{"tf":1.0},"5":{"tf":1.4142135623730951},"92":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"123":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.4142135623730951},"241":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"284":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.4142135623730951}}}}}}}},"df":14,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"20":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"85":{"tf":1.4142135623730951},"93":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"220":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":10,"docs":{"14":{"tf":1.0},"160":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":2.23606797749979},"189":{"tf":1.0},"244":{"tf":1.0},"249":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"83":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":20,"docs":{"12":{"tf":1.7320508075688772},"132":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"185":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.7320508075688772},"37":{"tf":1.0},"77":{"tf":1.4142135623730951},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":8,"docs":{"153":{"tf":1.0},"166":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.4142135623730951},"254":{"tf":1.0},"266":{"tf":1.0},"270":{"tf":1.0}}}},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":2,"docs":{"152":{"tf":1.0},"58":{"tf":1.0}}},"w":{"df":0,"docs":{},"n":{"df":2,"docs":{"219":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":12,"docs":{"0":{"tf":1.0},"144":{"tf":2.23606797749979},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":2.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"30":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"r":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951}}}},"g":{"df":1,"docs":{"267":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":6,"docs":{"152":{"tf":1.4142135623730951},"198":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.0},"86":{"tf":1.0},"90":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":4,"docs":{"182":{"tf":1.0},"191":{"tf":1.0},"267":{"tf":1.0},"290":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"242":{"tf":1.0}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"94":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"162":{"tf":2.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":4,"docs":{"112":{"tf":1.0},"148":{"tf":1.0},"194":{"tf":1.0},"244":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":13,"docs":{"114":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"151":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.7320508075688772},"226":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"275":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"g":{"df":29,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"130":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"26":{"tf":1.0},"271":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.7320508075688772}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":15,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"181":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"81":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"18":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"s":{"df":1,"docs":{"0":{"tf":1.0}},"i":{"df":31,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"14":{"tf":1.4142135623730951},"149":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.4142135623730951},"170":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.4142135623730951},"202":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.7320508075688772},"234":{"tf":1.0},"235":{"tf":1.7320508075688772},"247":{"tf":1.0},"261":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":29,"docs":{"0":{"tf":2.0},"112":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"148":{"tf":1.0},"15":{"tf":1.4142135623730951},"178":{"tf":1.0},"18":{"tf":1.7320508075688772},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"246":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"258":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"204":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":21,"docs":{"109":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":2.0},"20":{"tf":1.0},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.4142135623730951},"262":{"tf":1.0},"270":{"tf":1.0},"55":{"tf":1.0},"84":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"268":{"tf":1.0}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"121":{"tf":1.0},"186":{"tf":1.0}}}}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"df":6,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"117":{"tf":1.4142135623730951},"84":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"g":{"df":4,"docs":{"17":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.4142135623730951}}},"i":{"df":0,"docs":{},"t":{"df":69,"docs":{"10":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.4142135623730951},"109":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"119":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"155":{"tf":1.0},"159":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"143":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"62":{"tf":1.0}}}}}},"u":{"c":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"256":{"tf":1.0},"265":{"tf":2.0},"266":{"tf":2.0},"267":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":13,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"163":{"tf":1.0},"20":{"tf":1.4142135623730951},"232":{"tf":1.0},"246":{"tf":2.0},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"265":{"tf":1.4142135623730951},"269":{"tf":1.0},"271":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"234":{"tf":1.0},"80":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":3,"docs":{"194":{"tf":1.0},"199":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}}},"g":{"df":0,"docs":{},"g":{"df":1,"docs":{"270":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"192":{"tf":1.0},"269":{"tf":1.0},"86":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"85":{"tf":1.0}}},"df":0,"docs":{}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":3,"docs":{"151":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"177":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"42":{"tf":1.4142135623730951}}}}}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"183":{"tf":1.0},"208":{"tf":1.0},"226":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"143":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}}}}}},"d":{"df":17,"docs":{"117":{"tf":1.0},"118":{"tf":1.0},"13":{"tf":1.0},"141":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":2.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"139":{"tf":3.1622776601683795},"140":{"tf":1.4142135623730951},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.0},"229":{"tf":1.0},"258":{"tf":1.4142135623730951},"48":{"tf":1.0},"79":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"247":{"tf":1.0},"269":{"tf":1.0},"48":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"136":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"193":{"tf":1.0},"22":{"tf":1.0},"81":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"191":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}},"i":{"df":0,"docs":{},"r":{"df":5,"docs":{"106":{"tf":1.0},"136":{"tf":1.0},"149":{"tf":1.0},"209":{"tf":1.0},"49":{"tf":1.0}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"152":{"tf":1.0},"243":{"tf":1.0},"82":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"222":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"253":{"tf":1.0},"75":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"132":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"101":{"tf":1.0},"71":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":5,"docs":{"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"136":{"tf":1.7320508075688772},"137":{"tf":1.0},"250":{"tf":1.4142135623730951}}}}}},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"65":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":9,"docs":{"121":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"209":{"tf":1.7320508075688772},"228":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0}}}}}}}},"t":{"c":{"df":3,"docs":{"0":{"tf":1.0},"248":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}},"u":{"df":1,"docs":{"271":{"tf":1.0}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"271":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":19,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"140":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"215":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"t":{"df":9,"docs":{"110":{"tf":1.0},"111":{"tf":1.0},"127":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":2.8284271247461903},"200":{"tf":1.0},"226":{"tf":1.0}}}},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"246":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"150":{"tf":1.0},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"269":{"tf":1.0},"288":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"13":{"tf":1.0},"151":{"tf":1.0},"39":{"tf":1.0}}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"12":{"tf":1.0},"251":{"tf":1.0}}}}}},"x":{":":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"a":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"247":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"12":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":52,"docs":{"0":{"tf":1.0},"102":{"tf":1.4142135623730951},"112":{"tf":1.0},"116":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"138":{"tf":2.0},"142":{"tf":1.0},"143":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"204":{"tf":1.0},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"228":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"256":{"tf":1.4142135623730951},"266":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"48":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.7320508075688772},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"86":{"tf":1.4142135623730951},"95":{"tf":1.0}},"e":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":2.449489742783178}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":2.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"88":{"tf":1.0},"98":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"245":{"tf":1.0},"254":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":50,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"108":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.7320508075688772},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.0},"14":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":2.23606797749979},"166":{"tf":2.23606797749979},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"215":{"tf":1.0},"219":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"245":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"34":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"85":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"175":{"tf":1.0},"181":{"tf":1.0},"185":{"tf":1.0},"196":{"tf":1.0},"259":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":2,"docs":{"140":{"tf":1.0},"229":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"186":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"269":{"tf":1.0},"97":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":7,"docs":{"17":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"n":{"df":4,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"269":{"tf":1.4142135623730951},"60":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"175":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":4,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"225":{"tf":1.0},"34":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"220":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"160":{"tf":1.4142135623730951},"48":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":79,"docs":{"0":{"tf":1.7320508075688772},"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":2.0},"190":{"tf":1.0},"222":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"8":{"tf":1.7320508075688772},"81":{"tf":2.449489742783178},"82":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":7,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"128":{"tf":1.0},"176":{"tf":1.0},"26":{"tf":1.0},"277":{"tf":1.4142135623730951},"55":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":9,"docs":{"167":{"tf":1.0},"181":{"tf":1.4142135623730951},"191":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"250":{"tf":1.0},"263":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":5,"docs":{"0":{"tf":1.0},"156":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"267":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"226":{"tf":1.0}}}}}}}},"f":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"191":{"tf":1.0},"247":{"tf":1.0}}}}}},"t":{"df":3,"docs":{"152":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}},"r":{"df":1,"docs":{"177":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"17":{"tf":1.0},"199":{"tf":1.0}}},"s":{"df":3,"docs":{"117":{"tf":1.0},"142":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"141":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"228":{"tf":1.0},"235":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0}}}},"df":0,"docs":{}}}}},"q":{"df":10,"docs":{"221":{"tf":1.4142135623730951},"7":{"tf":1.0},"73":{"tf":1.7320508075688772},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0}}},"r":{"df":8,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"220":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"133":{"tf":1.0},"266":{"tf":1.0}}}}}},"t":{"df":10,"docs":{"100":{"tf":1.0},"133":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"224":{"tf":1.0},"235":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"239":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"112":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":18,"docs":{"127":{"tf":1.0},"15":{"tf":1.7320508075688772},"150":{"tf":1.0},"151":{"tf":2.0},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"181":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"261":{"tf":1.0},"280":{"tf":1.0},"289":{"tf":1.0},"77":{"tf":1.0},"92":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"248":{"tf":1.0},"262":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"114":{"tf":1.0},"242":{"tf":1.0},"244":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":8,"docs":{"132":{"tf":1.0},"17":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"240":{"tf":1.0},"39":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":21,"docs":{"102":{"tf":1.0},"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":2.0},"18":{"tf":1.0},"190":{"tf":1.0},"209":{"tf":1.0},"218":{"tf":1.0},"240":{"tf":1.0},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"64":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":17,"docs":{"127":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"189":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"88":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":30,"docs":{"114":{"tf":2.23606797749979},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"14":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"159":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":2.0},"31":{"tf":2.23606797749979},"32":{"tf":1.7320508075688772},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"56":{"tf":1.0},"58":{"tf":1.0},"71":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"15":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"147":{"tf":1.0}}},"(":{"df":1,"docs":{"146":{"tf":1.0}}},"df":30,"docs":{"0":{"tf":1.7320508075688772},"120":{"tf":1.0},"121":{"tf":1.7320508075688772},"144":{"tf":2.8284271247461903},"145":{"tf":2.0},"146":{"tf":3.1622776601683795},"147":{"tf":1.7320508075688772},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.7320508075688772},"157":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"208":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"86":{"tf":1.0},"9":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":1,"docs":{"145":{"tf":1.0}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"198":{"tf":1.0},"226":{"tf":1.0}}}}}}}}},"l":{"df":6,"docs":{"139":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.0},"151":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"262":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"132":{"tf":1.0},"15":{"tf":1.0},"210":{"tf":1.0},"229":{"tf":1.0},"246":{"tf":1.0}}}},"d":{"df":23,"docs":{"125":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.7320508075688772},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"86":{"tf":1.0},"98":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":1,"docs":{"259":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"158":{"tf":1.7320508075688772},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.7320508075688772},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"91":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"257":{"tf":1.0}}}}}}},"t":{"df":3,"docs":{"185":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"182":{"tf":1.4142135623730951}}}},"x":{"df":3,"docs":{"111":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"276":{"tf":1.0}}},"w":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"121":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"93":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"68":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.4142135623730951}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.4142135623730951}}}}}}}},"o":{"a":{"df":0,"docs":{},"f":{":":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}}}}}},"df":1,"docs":{"130":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":3,"docs":{"178":{"tf":1.4142135623730951},"190":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"0":{"tf":1.0},"121":{"tf":2.0},"152":{"tf":1.0},"241":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":17,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"o":{"d":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"268":{"tf":2.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772}}},"df":1,"docs":{"131":{"tf":1.4142135623730951}}},"r":{"c":{"df":2,"docs":{"181":{"tf":1.0},"186":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"199":{"tf":1.0},"77":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"175":{"tf":1.0}}}}}},"v":{"df":1,"docs":{"200":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"94":{"tf":1.0}}}}},"k":{"df":1,"docs":{"279":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"28":{"tf":1.0},"42":{"tf":1.0}}},"t":{"df":39,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"170":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.0},"192":{"tf":1.4142135623730951},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":2.0},"39":{"tf":2.0},"66":{"tf":1.0}}}},"df":17,"docs":{"105":{"tf":1.0},"13":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"264":{"tf":1.0},"275":{"tf":1.0},"31":{"tf":1.0}}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"16":{"tf":1.0},"160":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":55,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"r":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"199":{"tf":1.0},"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":3,"docs":{"17":{"tf":1.0},"175":{"tf":1.0},"199":{"tf":1.0}}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":23,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"151":{"tf":1.0},"184":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"218":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"288":{"tf":1.0},"29":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":11,"docs":{"13":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"251":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"256":{"tf":1.0},"26":{"tf":1.0},"274":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":9,"docs":{"13":{"tf":1.0},"141":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"102":{"tf":1.0},"140":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.4142135623730951},"37":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0}},"i":{"df":7,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"258":{"tf":1.0},"94":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":9,"docs":{"139":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"59":{"tf":1.0},"94":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"175":{"tf":1.4142135623730951},"209":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"35":{"tf":1.0},"57":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"df":2,"docs":{"201":{"tf":1.0},"289":{"tf":1.0}}},"df":2,"docs":{"152":{"tf":1.0},"234":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"245":{"tf":1.0},"77":{"tf":1.0}}}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"g":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"133":{"tf":1.0}}}},"p":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"210":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":1,"docs":{"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":16,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"149":{"tf":1.0},"154":{"tf":1.0},"189":{"tf":1.0},"222":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"264":{"tf":1.0},"276":{"tf":1.0},"74":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"195":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"(":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":5,"docs":{"104":{"tf":1.0},"218":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":3.3166247903554},"132":{"tf":1.4142135623730951}},"h":{"df":0,"docs":{},"u":{"b":{"df":54,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.4142135623730951},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":23,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"12":{"tf":1.4142135623730951},"137":{"tf":1.0},"154":{"tf":1.0},"163":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0}},"n":{"df":3,"docs":{"184":{"tf":1.0},"276":{"tf":1.0},"88":{"tf":1.0}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"/":{"1":{"3":{"5":{"5":{"6":{"1":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.7320508075688772},"141":{"tf":1.4142135623730951},"157":{"tf":1.0},"193":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.4142135623730951},"265":{"tf":1.0},"55":{"tf":1.7320508075688772},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}}}},"df":11,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"168":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"209":{"tf":1.0},"247":{"tf":1.0},"253":{"tf":1.0},"270":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":2,"docs":{"136":{"tf":1.0},"79":{"tf":1.0}}},"o":{"d":{"df":7,"docs":{"109":{"tf":1.0},"112":{"tf":1.0},"192":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0},"290":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"112":{"tf":1.0},"256":{"tf":1.0},"271":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"227":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"259":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"108":{"tf":1.0},"282":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.7320508075688772},"181":{"tf":2.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"225":{"tf":2.449489742783178},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"228":{"tf":2.23606797749979},"229":{"tf":1.4142135623730951},"230":{"tf":1.0},"231":{"tf":1.0},"243":{"tf":1.4142135623730951},"252":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"28":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":2.8284271247461903},"44":{"tf":1.4142135623730951},"81":{"tf":1.0}},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"236":{"tf":1.0},"239":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"p":{"df":1,"docs":{"189":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"121":{"tf":1.4142135623730951},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.7320508075688772},"288":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"78":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":8,"docs":{"160":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}},"w":{"df":1,"docs":{"92":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":7,"docs":{"14":{"tf":1.0},"159":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"209":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"109":{"tf":1.0}}},"t":{"df":2,"docs":{"103":{"tf":1.0},"108":{"tf":1.4142135623730951}}}}},"i":{"d":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"188":{"tf":1.0}}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.4142135623730951},"219":{"tf":1.0},"269":{"tf":1.0}}},"df":12,"docs":{"12":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0}}},"o":{":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"12":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0}},"l":{"df":2,"docs":{"218":{"tf":1.0},"87":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"k":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"109":{"tf":1.0},"140":{"tf":1.0},"206":{"tf":1.0},"4":{"tf":1.0}}}}}},"r":{"d":{"df":14,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"149":{"tf":1.0},"168":{"tf":1.4142135623730951},"171":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.4142135623730951},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"241":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"182":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":4,"docs":{"102":{"tf":1.0},"13":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":5,"docs":{"114":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"208":{"tf":1.0},"42":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":1,"docs":{"52":{"tf":1.4142135623730951}}}},"l":{"df":2,"docs":{"156":{"tf":1.0},"267":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":12,"docs":{"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.0},"20":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"79":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"251":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":2,"docs":{"276":{"tf":1.0},"48":{"tf":1.0}},"e":{"a":{"d":{"df":1,"docs":{"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"124":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.4142135623730951},"167":{"tf":1.0},"199":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"48":{"tf":1.0},"98":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"(":{"'":{"df":0,"docs":{},"x":{"df":1,"docs":{"102":{"tf":2.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":10,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.7320508075688772},"234":{"tf":2.6457513110645907},"235":{"tf":1.4142135623730951},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.0},"269":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"15":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"175":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}}}},"p":{"df":32,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"16":{"tf":1.0},"169":{"tf":1.7320508075688772},"175":{"tf":1.0},"176":{"tf":1.0},"187":{"tf":1.0},"191":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":2.0},"243":{"tf":1.7320508075688772},"244":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.7320508075688772},"276":{"tf":2.0},"281":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0}}}},"n":{"c":{"df":2,"docs":{"183":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"'":{"df":4,"docs":{"102":{"tf":1.0},"118":{"tf":1.0},"201":{"tf":1.0},"95":{"tf":1.0}}},"df":10,"docs":{"102":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.0},"134":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"253":{"tf":1.0},"277":{"tf":1.0},"289":{"tf":1.0},"55":{"tf":1.0}}},"i":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"288":{"tf":1.0},"38":{"tf":1.0}}}}}}}},"i":{"df":5,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"151":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":21,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.7320508075688772},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"198":{"tf":2.0},"226":{"tf":1.0},"231":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"88":{"tf":1.7320508075688772},"89":{"tf":1.0},"90":{"tf":1.7320508075688772},"91":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":7,"docs":{"181":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"269":{"tf":1.0},"55":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"16":{"tf":1.7320508075688772},"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"6":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"199":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"152":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":2,"docs":{"235":{"tf":1.0},"240":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":21,"docs":{"1":{"tf":1.7320508075688772},"127":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"247":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"30":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.7320508075688772},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}},"s":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":6,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}}},"t":{"df":0,"docs":{},"p":{"/":{"1":{".":{"1":{"df":3,"docs":{"127":{"tf":1.0},"45":{"tf":1.4142135623730951},"98":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{".":{"0":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"200":{"tf":1.0}}},":":{"/":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"2":{"0":{"0":{"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"#":{"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{"_":{"3":{".":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"m":{"df":0,"docs":{},"y":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"129":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"c":{"a":{"b":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"131":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"9":{"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"d":{"c":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"1":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"a":{".":{"df":0,"docs":{},"t":{"c":{"d":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"2":{"2":{"6":{"2":{"/":{"9":{"1":{"4":{"0":{"7":{"df":1,"docs":{"125":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"1":{"9":{"9":{"9":{"/":{"0":{"2":{"/":{"2":{"2":{"df":3,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"0":{"0":{"/":{"0":{"1":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":2,"docs":{"124":{"tf":1.7320508075688772},"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"/":{"df":0,"docs":{},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"2":{"/":{"0":{"7":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"#":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"124":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"f":{"/":{"0":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":38,"docs":{"100":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.7320508075688772},"134":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.4142135623730951},"229":{"tf":1.0},"235":{"tf":1.0},"263":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"55":{"tf":1.0},"64":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"40":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"114":{"tf":1.0},"116":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"58":{"tf":1.4142135623730951}}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":2,"docs":{"59":{"tf":1.0},"61":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"63":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}}}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"62":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"65":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"1":{"df":1,"docs":{"108":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":5,"docs":{"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"58":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"/":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"163":{"tf":1.4142135623730951}}}}}}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":14,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":2.8284271247461903},"39":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"a":{"df":12,"docs":{"116":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":7,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"166":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"36":{"tf":1.0},"38":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"56":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":9,"docs":{"116":{"tf":1.0},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"116":{"tf":1.0}}}}}},"df":1,"docs":{"116":{"tf":1.0}}}}},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.4142135623730951}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"1":{"df":1,"docs":{"72":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"29":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"29":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":4,"docs":{"184":{"tf":1.0},"50":{"tf":2.23606797749979},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"1":{"2":{"3":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":2,"docs":{"204":{"tf":1.0},"205":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}},"c":{"df":1,"docs":{"40":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"204":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"s":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"h":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"252":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"184":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"y":{".":{"d":{"d":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"7":{"7":{"7":{"7":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"123":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"2":{"0":{"1":{"2":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"f":{"2":{"df":0,"docs":{},"f":{"5":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"1":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":6,"docs":{"14":{"tf":1.7320508075688772},"196":{"tf":1.0},"245":{"tf":1.0},"29":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"161":{"tf":1.0},"163":{"tf":1.0}}}}}},"i":{"'":{"d":{"df":3,"docs":{"168":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"120":{"tf":1.0}}}},"m":{"df":10,"docs":{"12":{"tf":1.0},"126":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"161":{"tf":1.7320508075688772},"162":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"177":{"tf":1.0},"189":{"tf":1.0},"245":{"tf":1.0}}},"v":{"df":6,"docs":{"12":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0}}}},".":{"df":4,"docs":{"132":{"tf":1.0},"28":{"tf":1.0},"39":{"tf":1.0},"64":{"tf":1.0}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.7320508075688772},"18":{"tf":1.0},"200":{"tf":1.0}}}}},"d":{"df":28,"docs":{"116":{"tf":1.0},"145":{"tf":1.0},"156":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"40":{"tf":2.0},"45":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951},"52":{"tf":1.4142135623730951},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0},"76":{"tf":1.0}},"e":{"a":{"df":12,"docs":{"112":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":2.23606797749979},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"281":{"tf":1.7320508075688772},"288":{"tf":1.7320508075688772},"79":{"tf":1.0}},"l":{"df":2,"docs":{"156":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"197":{"tf":1.4142135623730951},"256":{"tf":1.4142135623730951},"82":{"tf":1.0},"94":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":25,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"124":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":2.0},"191":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":2.23606797749979},"226":{"tf":1.0},"256":{"tf":1.0},"268":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"172":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"17":{"tf":1.0},"25":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"236":{"tf":1.0},"247":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"90":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":38,"docs":{"102":{"tf":1.4142135623730951},"109":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"138":{"tf":2.0},"14":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.7320508075688772},"17":{"tf":1.7320508075688772},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":2.6457513110645907},"241":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"39":{"tf":1.0},"48":{"tf":1.0},"81":{"tf":1.4142135623730951},"87":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":31,"docs":{"1":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"157":{"tf":1.7320508075688772},"162":{"tf":2.449489742783178},"164":{"tf":1.4142135623730951},"166":{"tf":1.4142135623730951},"18":{"tf":1.0},"185":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"263":{"tf":1.0},"283":{"tf":1.7320508075688772},"288":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":4,"docs":{"18":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.0},"265":{"tf":1.0}}}}}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":2,"docs":{"201":{"tf":1.0},"254":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}},"h":{"df":1,"docs":{"248":{"tf":1.0}}},"l":{"df":0,"docs":{},"u":{"d":{"df":22,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"12":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"210":{"tf":1.0},"25":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"42":{"tf":1.0},"45":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"189":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":2.0}}}}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"117":{"tf":1.0},"242":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"260":{"tf":1.4142135623730951}}}},"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"114":{"tf":1.0}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"105":{"tf":1.0},"209":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":6,"docs":{"112":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.7320508075688772},"224":{"tf":1.7320508075688772},"226":{"tf":1.7320508075688772},"247":{"tf":2.0}}}},"i":{"c":{"df":4,"docs":{"205":{"tf":1.4142135623730951},"52":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":9,"docs":{"132":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"157":{"tf":1.4142135623730951},"193":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}},"r":{"df":0,"docs":{},"m":{"df":39,"docs":{"107":{"tf":1.0},"108":{"tf":1.0},"110":{"tf":1.0},"12":{"tf":1.4142135623730951},"148":{"tf":1.0},"152":{"tf":1.4142135623730951},"16":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":2.23606797749979},"246":{"tf":1.0},"25":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.0},"30":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":2,"docs":{"160":{"tf":1.0},"271":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.7320508075688772}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"128":{"tf":1.0},"134":{"tf":1.4142135623730951},"14":{"tf":1.0},"193":{"tf":1.0},"234":{"tf":1.0},"288":{"tf":1.0}}}}},"l":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":1,"docs":{"12":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"149":{"tf":1.0},"242":{"tf":1.0},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"181":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":4,"docs":{"111":{"tf":1.0},"34":{"tf":1.0},"76":{"tf":1.4142135623730951},"92":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":4,"docs":{"154":{"tf":1.0},"249":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":6,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":12,"docs":{"151":{"tf":1.0},"152":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.4142135623730951},"277":{"tf":1.0},"53":{"tf":1.0}}},"n":{"c":{"df":6,"docs":{"189":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"49":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"84":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":14,"docs":{"142":{"tf":1.0},"163":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"252":{"tf":1.0},"254":{"tf":1.0},"269":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"270":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":6,"docs":{"175":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":1.0},"67":{"tf":1.7320508075688772},"71":{"tf":1.0}},"r":{"df":6,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":2.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}},"t":{"df":2,"docs":{"12":{"tf":1.0},"189":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"141":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"269":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.4142135623730951},"252":{"tf":1.0},"288":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}}},"f":{"a":{"c":{"df":6,"docs":{"189":{"tf":1.0},"235":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"56":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"n":{"df":5,"docs":{"145":{"tf":1.0},"184":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"76":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"16":{"tf":1.0},"199":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":77,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":2.23606797749979},"171":{"tf":1.0},"172":{"tf":1.0},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"177":{"tf":1.0},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"221":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.4142135623730951},"78":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"208":{"tf":1.0},"211":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"180":{"tf":1.0},"182":{"tf":1.0},"253":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"189":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"c":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":9,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"180":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"241":{"tf":1.0},"254":{"tf":1.0}},"t":{"df":2,"docs":{"13":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"190":{"tf":1.0},"31":{"tf":1.0}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"117":{"tf":1.0},"184":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"193":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0}},"i":{"df":1,"docs":{"260":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":18,"docs":{"0":{"tf":1.0},"106":{"tf":2.23606797749979},"107":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":2.23606797749979},"118":{"tf":1.4142135623730951},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"251":{"tf":1.0},"254":{"tf":2.23606797749979},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":4,"docs":{"10":{"tf":1.0},"193":{"tf":1.0},"290":{"tf":1.7320508075688772},"3":{"tf":1.4142135623730951}}}}}}},"p":{"df":0,"docs":{},"f":{"df":10,"docs":{"10":{"tf":1.0},"173":{"tf":1.0},"207":{"tf":1.7320508075688772},"208":{"tf":2.449489742783178},"209":{"tf":2.449489742783178},"210":{"tf":3.3166247903554},"211":{"tf":1.4142135623730951},"212":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"s":{":":{"df":0,"docs":{},"q":{"df":0,"docs":{},"m":{"df":0,"docs":{},"x":{"6":{"df":0,"docs":{},"j":{"9":{"d":{"df":0,"docs":{},"h":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"b":{"c":{"b":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"2":{"df":0,"docs":{},"v":{"7":{"df":0,"docs":{},"g":{"5":{"df":0,"docs":{},"m":{"df":0,"docs":{},"z":{"b":{"1":{"1":{"df":0,"docs":{},"v":{"df":0,"docs":{},"u":{"9":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"9":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"v":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"283":{"tf":1.0}}}},"s":{"a":{"df":2,"docs":{"76":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":3,"docs":{"185":{"tf":1.0},"29":{"tf":1.0},"70":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"u":{"df":31,"docs":{"105":{"tf":1.4142135623730951},"112":{"tf":2.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.7320508075688772},"208":{"tf":1.0},"209":{"tf":1.0},"212":{"tf":1.0},"234":{"tf":1.0},"236":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.0},"256":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.4142135623730951},"77":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"t":{"'":{"df":30,"docs":{"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"192":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"264":{"tf":1.4142135623730951},"35":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":19,"docs":{"114":{"tf":1.0},"12":{"tf":1.0},"142":{"tf":2.0},"159":{"tf":1.0},"161":{"tf":1.7320508075688772},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"214":{"tf":1.4142135623730951},"241":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"39":{"tf":1.4142135623730951},"47":{"tf":1.0},"52":{"tf":1.0},"76":{"tf":1.0},"90":{"tf":1.4142135623730951}}},"r":{"df":2,"docs":{"118":{"tf":1.4142135623730951},"244":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":9,"docs":{"172":{"tf":1.0},"202":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.4142135623730951},"253":{"tf":1.0},"262":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}}}}},"j":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"20":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"n":{"df":1,"docs":{"71":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"41":{"tf":1.0}}}}}}},"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":4,"docs":{"117":{"tf":1.0},"26":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{},"o":{"b":{"df":3,"docs":{"14":{"tf":1.0},"210":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"@":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":3,"docs":{"177":{"tf":1.0},"276":{"tf":1.0},"287":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"287":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"h":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}},".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":6,"docs":{"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"228":{"tf":1.0},"243":{"tf":1.7320508075688772},"50":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.4142135623730951},"3":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":1,"docs":{"163":{"tf":2.0}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"s":{"df":5,"docs":{"102":{"tf":1.0},"129":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.4142135623730951},"284":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":75,"docs":{"0":{"tf":2.23606797749979},"1":{"tf":1.0},"10":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"120":{"tf":1.0},"129":{"tf":1.7320508075688772},"131":{"tf":2.0},"132":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.7320508075688772},"155":{"tf":1.0},"156":{"tf":2.449489742783178},"157":{"tf":2.23606797749979},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"167":{"tf":1.0},"172":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"18":{"tf":1.7320508075688772},"182":{"tf":1.0},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.7320508075688772},"200":{"tf":2.0},"202":{"tf":3.0},"203":{"tf":3.1622776601683795},"204":{"tf":3.0},"205":{"tf":3.7416573867739413},"206":{"tf":2.449489742783178},"22":{"tf":2.0},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.7320508075688772},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.0},"37":{"tf":2.0},"38":{"tf":1.4142135623730951},"39":{"tf":3.605551275463989},"40":{"tf":2.23606797749979},"41":{"tf":2.23606797749979},"42":{"tf":2.449489742783178},"43":{"tf":2.23606797749979},"56":{"tf":1.0},"7":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.4142135623730951},"9":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"5":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"k":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":16,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"219":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}}},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":39,"docs":{"0":{"tf":1.7320508075688772},"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"105":{"tf":2.0},"108":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.7320508075688772},"119":{"tf":1.0},"121":{"tf":1.0},"143":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":2.23606797749979},"189":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"222":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":2.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.0},"81":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951}},"p":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"84":{"tf":1.0}}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":7,"docs":{"121":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":1,"docs":{"283":{"tf":1.4142135623730951}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":27,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.4142135623730951},"13":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"203":{"tf":1.0},"210":{"tf":1.7320508075688772},"220":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"37":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.4142135623730951},"93":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":8,"docs":{"176":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"244":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":2.23606797749979}}}},"df":0,"docs":{}}},"n":{"df":6,"docs":{"14":{"tf":1.0},"181":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":8,"docs":{"10":{"tf":1.0},"174":{"tf":1.0},"228":{"tf":2.0},"232":{"tf":1.0},"268":{"tf":2.0},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"k":{"df":12,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":28,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.4142135623730951},"220":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":2.23606797749979},"230":{"tf":1.4142135623730951},"248":{"tf":1.0},"269":{"tf":1.0},"44":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"78":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"g":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"254":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"13":{"tf":1.0},"166":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"142":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":1.0},"159":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"61":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":1,"docs":{"260":{"tf":1.0}}}},"d":{"df":16,"docs":{"125":{"tf":1.4142135623730951},"127":{"tf":1.4142135623730951},"129":{"tf":1.7320508075688772},"151":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":2.6457513110645907},"206":{"tf":2.0},"22":{"tf":1.0},"280":{"tf":1.0},"288":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"43":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"a":{"d":{"df":5,"docs":{"182":{"tf":1.0},"185":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"144":{"tf":1.0},"17":{"tf":1.4142135623730951},"188":{"tf":1.0},"190":{"tf":1.0},"226":{"tf":1.0},"242":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}}},"v":{"df":2,"docs":{"262":{"tf":1.0},"5":{"tf":1.0}}}},"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}},"g":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"l":{"df":2,"docs":{"247":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"127":{"tf":1.0},"60":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"119":{"tf":1.0},"178":{"tf":1.4142135623730951},"246":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"266":{"tf":1.7320508075688772}}}}}},"t":{"'":{"df":20,"docs":{"116":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.0},"132":{"tf":1.0},"143":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"177":{"tf":1.0},"204":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"117":{"tf":1.0},"62":{"tf":1.0}}}}},"’":{"df":1,"docs":{"199":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"165":{"tf":1.0},"90":{"tf":2.0}}}}},"x":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"i":{"b":{"df":6,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.4142135623730951}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":27,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"2":{"tf":2.0},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":1.0},"272":{"tf":2.6457513110645907},"273":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"278":{"tf":1.7320508075688772},"279":{"tf":1.4142135623730951},"280":{"tf":1.4142135623730951},"281":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.4142135623730951},"284":{"tf":1.0},"285":{"tf":1.4142135623730951},"41":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"272":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":8,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":2,"docs":{"190":{"tf":1.0},"249":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":1,"docs":{"184":{"tf":1.0}}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":5,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":21,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"143":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"189":{"tf":1.0},"194":{"tf":1.0},"220":{"tf":1.4142135623730951},"222":{"tf":1.0},"236":{"tf":1.4142135623730951},"248":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":1.0},"59":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"92":{"tf":1.7320508075688772}}}}},"n":{"df":0,"docs":{},"e":{"df":4,"docs":{"128":{"tf":1.0},"2":{"tf":1.0},"276":{"tf":1.0},"65":{"tf":1.0}},"r":{"df":2,"docs":{"237":{"tf":1.0},"274":{"tf":1.0}}}},"k":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":66,"docs":{"0":{"tf":2.0},"108":{"tf":1.0},"117":{"tf":1.4142135623730951},"120":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"14":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"156":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"23":{"tf":1.0},"243":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":2.449489742783178},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":2.23606797749979},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"44":{"tf":1.0},"5":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"77":{"tf":2.23606797749979},"79":{"tf":1.0},"80":{"tf":1.0}}},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"151":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.0},"139":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"162":{"tf":1.0},"187":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.4142135623730951},"38":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.0},"72":{"tf":1.0},"89":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"129":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":2.449489742783178},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0}}}},"t":{"df":0,"docs":{},"l":{"df":5,"docs":{"111":{"tf":1.0},"166":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"29":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":5,"docs":{"18":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0},"50":{"tf":1.0}}}}},"o":{"a":{"d":{"df":3,"docs":{"112":{"tf":1.0},"234":{"tf":1.7320508075688772},"48":{"tf":1.0}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"112":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.7320508075688772},"177":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.4142135623730951}}}}}},"i":{"d":{"df":2,"docs":{"162":{"tf":2.23606797749979},"163":{"tf":2.0}}},"df":0,"docs":{}}},"t":{"df":2,"docs":{"183":{"tf":1.7320508075688772},"209":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"k":{"df":3,"docs":{"12":{"tf":1.7320508075688772},"247":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":10,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0},"84":{"tf":1.0}},"i":{"c":{"df":7,"docs":{"166":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"g":{"df":16,"docs":{"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.0},"162":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"203":{"tf":1.4142135623730951},"269":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}}},"o":{"df":0,"docs":{},"k":{"df":19,"docs":{"116":{"tf":1.0},"12":{"tf":1.0},"126":{"tf":1.0},"141":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"154":{"tf":1.4142135623730951},"182":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"225":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"94":{"tf":1.0}}},"t":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":21,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"209":{"tf":1.0},"216":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.4142135623730951},"41":{"tf":1.0},"77":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"234":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"210":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"h":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"241":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"m":{"a":{"c":{"df":2,"docs":{"151":{"tf":1.0},"247":{"tf":1.0}},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":20,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":2.0},"152":{"tf":1.0},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"242":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":10,"docs":{"112":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"163":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"14":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"229":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"168":{"tf":1.0},"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"199":{"tf":1.0},"289":{"tf":1.4142135623730951}}}}},"k":{"df":0,"docs":{},"e":{"df":92,"docs":{"0":{"tf":2.0},"106":{"tf":1.0},"109":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"133":{"tf":1.0},"14":{"tf":1.7320508075688772},"146":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"17":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"184":{"tf":2.0},"189":{"tf":1.0},"19":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.0},"197":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"203":{"tf":2.0},"204":{"tf":1.4142135623730951},"206":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"216":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.4142135623730951},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.7320508075688772},"243":{"tf":2.449489742783178},"246":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"268":{"tf":1.0},"269":{"tf":1.0},"274":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.4142135623730951},"38":{"tf":2.0},"39":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.4142135623730951},"77":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"83":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"g":{"df":15,"docs":{"105":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"20":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"247":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"86":{"tf":1.0}}}},"df":3,"docs":{"102":{"tf":1.0},"193":{"tf":1.0},"97":{"tf":1.0}},"i":{"df":31,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"137":{"tf":1.0},"142":{"tf":2.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"220":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"55":{"tf":1.0},"59":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"285":{"tf":1.0}}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"14":{"tf":1.0},"156":{"tf":1.0},"186":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.0}}}},"df":1,"docs":{"288":{"tf":1.0}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"250":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"df":10,"docs":{"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"177":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"205":{"tf":2.0},"219":{"tf":1.0},"228":{"tf":1.0},"283":{"tf":1.0},"39":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"228":{"tf":1.0}}},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":8,"docs":{"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"58":{"tf":1.0},"66":{"tf":1.7320508075688772}}}}}},"df":2,"docs":{"20":{"tf":1.0},"269":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":8,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.7320508075688772},"247":{"tf":2.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":8,"docs":{"103":{"tf":1.0},"118":{"tf":2.0},"127":{"tf":1.0},"143":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}}},"h":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"(":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"33":{"tf":1.0}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"119":{"tf":1.0},"166":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}}}}},"x":{"df":5,"docs":{"289":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.4142135623730951},"68":{"tf":1.0}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"60":{"tf":1.0}}}}}}},"y":{"b":{"df":3,"docs":{"107":{"tf":1.0},"269":{"tf":1.0},"78":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"50":{"tf":2.23606797749979},"51":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}},"n":{"df":73,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":1.0},"121":{"tf":1.0},"128":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.0},"14":{"tf":1.7320508075688772},"140":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.0},"16":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":2.449489742783178},"196":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.4142135623730951},"210":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.4142135623730951},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"40":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":2,"docs":{"193":{"tf":1.0},"209":{"tf":1.0}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"197":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"253":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"149":{"tf":1.0},"167":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.7320508075688772},"199":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"m":{"a":{"df":2,"docs":{"276":{"tf":1.0},"287":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"140":{"tf":1.0},"142":{"tf":2.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"280":{"tf":1.0},"41":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"189":{"tf":1.0},"195":{"tf":1.0},"243":{"tf":1.0},"282":{"tf":1.0},"76":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"u":{"df":3,"docs":{"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"g":{"df":4,"docs":{"121":{"tf":1.0},"14":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.4142135623730951}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"178":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"102":{"tf":1.0},"135":{"tf":1.7320508075688772},"136":{"tf":1.7320508075688772},"137":{"tf":1.4142135623730951},"276":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":8,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"100":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"102":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"71":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"132":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}}},"k":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"101":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"39":{"tf":1.0},"45":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"i":{"c":{"df":2,"docs":{"240":{"tf":1.0},"76":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"d":{"df":7,"docs":{"0":{"tf":1.0},"128":{"tf":1.0},"191":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"m":{"df":2,"docs":{"100":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"184":{"tf":1.0}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}}}}}}},"s":{"df":5,"docs":{"120":{"tf":1.0},"140":{"tf":1.0},"201":{"tf":1.7320508075688772},"204":{"tf":1.0},"263":{"tf":1.0}}}},"t":{"df":9,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}},"m":{"df":1,"docs":{"70":{"tf":1.0}}},"o":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"282":{"tf":1.0},"285":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":46,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.4142135623730951},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":2.23606797749979},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.0},"193":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"231":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"244":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.4142135623730951},"92":{"tf":1.7320508075688772},"94":{"tf":1.0}}},"r":{"df":1,"docs":{"256":{"tf":1.0}},"n":{"df":3,"docs":{"196":{"tf":1.0},"247":{"tf":1.0},"261":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"229":{"tf":1.0}},"i":{"df":4,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"168":{"tf":1.0},"56":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":7,"docs":{"0":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"25":{"tf":1.4142135623730951},"265":{"tf":1.7320508075688772},"266":{"tf":1.4142135623730951},"81":{"tf":1.0}}}},"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"160":{"tf":1.0},"220":{"tf":1.0},"245":{"tf":1.0},"249":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"112":{"tf":1.0},"17":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{".":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"38":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":89,"docs":{"0":{"tf":1.4142135623730951},"111":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":2.23606797749979},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"145":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.7320508075688772},"156":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":2.23606797749979},"194":{"tf":1.7320508075688772},"196":{"tf":1.7320508075688772},"197":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"229":{"tf":1.7320508075688772},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.7320508075688772},"243":{"tf":1.0},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"263":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.0},"276":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.7320508075688772},"32":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.4142135623730951},"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.4142135623730951},"93":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"190":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":7,"docs":{"11":{"tf":1.7320508075688772},"112":{"tf":1.4142135623730951},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"6":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":4,"docs":{"122":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.4142135623730951}}}}},"r":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}},"u":{"c":{"df":0,"docs":{},"h":{"df":11,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"161":{"tf":1.0},"163":{"tf":1.0},"17":{"tf":1.4142135623730951},"180":{"tf":1.0},"186":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"146":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":26,"docs":{"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.7320508075688772},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"262":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"74":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"80":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":1,"docs":{"266":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.7320508075688772},"18":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"98":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":4,"docs":{"123":{"tf":2.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":26,"docs":{"0":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"181":{"tf":1.7320508075688772},"182":{"tf":2.23606797749979},"184":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":2.0},"39":{"tf":1.7320508075688772},"40":{"tf":2.0},"52":{"tf":1.4142135623730951},"76":{"tf":1.0},"97":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"261":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"254":{"tf":1.0}}}},"v":{"df":5,"docs":{"175":{"tf":1.4142135623730951},"187":{"tf":1.4142135623730951},"188":{"tf":1.4142135623730951},"192":{"tf":1.0},"79":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":4,"docs":{"154":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"52":{"tf":1.0}}}}}},"df":9,"docs":{"128":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.4142135623730951},"65":{"tf":1.4142135623730951},"66":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"77":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"177":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.0},"51":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"35":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":62,"docs":{"101":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.23606797749979},"14":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"157":{"tf":1.0},"16":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"217":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.7320508075688772},"239":{"tf":1.0},"241":{"tf":2.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772},"249":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"39":{"tf":1.0}}}}}},"o":{"4":{"df":0,"docs":{},"j":{"df":6,"docs":{"174":{"tf":1.0},"227":{"tf":2.23606797749979},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":13,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"34":{"tf":1.7320508075688772},"39":{"tf":2.449489742783178},"40":{"tf":2.8284271247461903},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"86":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"112":{"tf":1.0},"40":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":5,"docs":{"111":{"tf":1.0},"12":{"tf":1.4142135623730951},"208":{"tf":1.0},"22":{"tf":1.0},"242":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"210":{"tf":1.0},"90":{"tf":1.0}}}}},"w":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"179":{"tf":1.0}}}}},"df":43,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"13":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.7320508075688772},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":2.6457513110645907},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":1.0},"74":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"108":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951}},"n":{"df":5,"docs":{"117":{"tf":1.0},"121":{"tf":1.0},"42":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":3,"docs":{"10":{"tf":1.0},"289":{"tf":2.0},"290":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":14,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"155":{"tf":1.0},"180":{"tf":1.0},"224":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"5":{"tf":1.0}},"j":{"df":2,"docs":{"20":{"tf":1.0},"238":{"tf":1.4142135623730951}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":8,"docs":{"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.0},"288":{"tf":1.0}}}}},"t":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":13,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.7320508075688772},"182":{"tf":2.449489742783178},"184":{"tf":2.8284271247461903},"190":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"220":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.4142135623730951},"33":{"tf":1.4142135623730951},"51":{"tf":1.0}},"j":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":7,"docs":{"141":{"tf":1.0},"152":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}},"e":{"df":4,"docs":{"103":{"tf":1.0},"4":{"tf":1.0},"48":{"tf":1.0},"60":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"152":{"tf":1.0},"163":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"213":{"tf":1.0},"222":{"tf":2.449489742783178}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"156":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"129":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":14,"docs":{"100":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"245":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0}}},"i":{"c":{"df":4,"docs":{"112":{"tf":1.0},"154":{"tf":1.0},"29":{"tf":1.0},"52":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"201":{"tf":1.0},"250":{"tf":1.0},"282":{"tf":1.4142135623730951}},"i":{"df":1,"docs":{"111":{"tf":1.0}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"w":{"df":25,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"118":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.4142135623730951},"152":{"tf":2.0},"154":{"tf":2.0},"159":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"236":{"tf":1.0},"245":{"tf":1.0},"263":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0}}}},"p":{"df":0,"docs":{},"m":{"df":2,"docs":{"238":{"tf":1.0},"272":{"tf":1.4142135623730951}}}},"s":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":3,"docs":{"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0}}},"u":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"190":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"0":{"tf":1.0},"114":{"tf":1.0},"142":{"tf":1.0},"216":{"tf":1.7320508075688772},"250":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"62":{"tf":1.0},"68":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.7320508075688772}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{".":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"186":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":25,"docs":{"115":{"tf":1.0},"117":{"tf":1.7320508075688772},"131":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.0},"179":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"26":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"51":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"111":{"tf":1.0},"180":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{}},"d":{"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"129":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"132":{"tf":1.0},"183":{"tf":1.4142135623730951},"194":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":2.8284271247461903},"76":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"61":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"209":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"i":{"d":{"c":{"df":2,"docs":{"197":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"k":{"df":3,"docs":{"118":{"tf":1.0},"223":{"tf":1.0},"45":{"tf":1.0}}},"l":{"d":{"df":3,"docs":{"12":{"tf":1.0},"128":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"n":{"c":{"df":5,"docs":{"112":{"tf":1.0},"162":{"tf":1.0},"262":{"tf":1.0},"28":{"tf":1.0},"289":{"tf":1.0}}},"df":56,"docs":{"103":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":2.0},"119":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"127":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"144":{"tf":1.0},"146":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.4142135623730951},"17":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.4142135623730951},"237":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"261":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.7320508075688772},"33":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"74":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"89":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"39":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":6,"docs":{"193":{"tf":1.0},"209":{"tf":1.0},"254":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":2,"docs":{"177":{"tf":1.0},"287":{"tf":1.0}}}}},"df":3,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":11,"docs":{"126":{"tf":1.0},"14":{"tf":1.0},"160":{"tf":2.6457513110645907},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"186":{"tf":1.4142135623730951},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"p":{"df":2,"docs":{"129":{"tf":1.0},"131":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":3,"docs":{"139":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":1.0}}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}}}}}}},"df":37,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.4142135623730951},"17":{"tf":1.0},"183":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.7320508075688772},"233":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"240":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"272":{"tf":1.0},"281":{"tf":1.0},"290":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"r":{"df":3,"docs":{"129":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"190":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"23":{"tf":1.0},"248":{"tf":1.0}}},"o":{"df":0,"docs":{},"n":{"df":20,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0},"271":{"tf":1.4142135623730951},"46":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"74":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":14,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"139":{"tf":1.0},"180":{"tf":1.4142135623730951},"187":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"246":{"tf":1.0},"270":{"tf":1.4142135623730951},"5":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"93":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"0":{"tf":1.0},"231":{"tf":1.0},"244":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"289":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"205":{"tf":1.0},"249":{"tf":1.0},"95":{"tf":1.0}}}}}},"m":{"df":3,"docs":{"186":{"tf":1.0},"26":{"tf":1.0},"58":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"106":{"tf":1.0},"15":{"tf":1.0},"159":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"234":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"265":{"tf":1.0},"3":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"t":{"df":14,"docs":{"117":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.7320508075688772},"162":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.4142135623730951},"19":{"tf":1.0},"195":{"tf":1.0},"203":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"60":{"tf":1.4142135623730951}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"250":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":17,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"152":{"tf":1.0},"17":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"226":{"tf":2.0},"244":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.4142135623730951},"97":{"tf":1.0}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":25,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"270":{"tf":1.0},"3":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"139":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"l":{"df":4,"docs":{"124":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.7320508075688772},"78":{"tf":1.7320508075688772}}},"n":{"df":1,"docs":{"90":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"108":{"tf":1.0},"181":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"232":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0}}}}}}}}}}},"p":{"2":{"df":0,"docs":{},"p":{"df":2,"docs":{"111":{"tf":1.0},"132":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"271":{"tf":1.0}}}},"df":2,"docs":{"240":{"tf":1.0},"250":{"tf":1.0}}}},"df":1,"docs":{"124":{"tf":1.7320508075688772}},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":1,"docs":{"142":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":62,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":2.0},"155":{"tf":1.4142135623730951},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"n":{"df":11,"docs":{"0":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"81":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"152":{"tf":1.0},"254":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":3,"docs":{"121":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"m":{"df":2,"docs":{"108":{"tf":1.0},"143":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"114":{"tf":1.0},"139":{"tf":1.4142135623730951},"143":{"tf":2.23606797749979},"146":{"tf":1.0},"46":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":12,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"154":{"tf":1.0},"198":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.4142135623730951}}}}},"s":{"df":10,"docs":{"118":{"tf":1.0},"128":{"tf":1.0},"177":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"244":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"206":{"tf":1.0},"41":{"tf":2.0}}}}},"t":{"df":37,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"81":{"tf":1.7320508075688772}},"i":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"13":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"227":{"tf":1.0}}}},"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"254":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"256":{"tf":1.0}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"103":{"tf":1.0},"143":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{}}}}},"t":{"df":4,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"20":{"tf":1.0},"251":{"tf":1.0}}}},"t":{":":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"h":{"_":{"1":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"123":{"tf":1.7320508075688772},"124":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":2.0},"131":{"tf":1.7320508075688772},"132":{"tf":1.0},"195":{"tf":1.4142135623730951}},"r":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}}},"df":2,"docs":{"126":{"tf":1.0},"288":{"tf":1.0}},"h":{"df":23,"docs":{"0":{"tf":1.0},"131":{"tf":2.0},"16":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":2.449489742783178},"199":{"tf":1.0},"229":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"40":{"tf":1.4142135623730951},"44":{"tf":1.0},"47":{"tf":2.0},"49":{"tf":2.6457513110645907},"50":{"tf":2.0},"51":{"tf":2.0},"52":{"tf":2.0},"53":{"tf":1.0},"7":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"y":{"df":1,"docs":{"181":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"247":{"tf":1.0},"252":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}}},"df":5,"docs":{"129":{"tf":1.0},"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"209":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"0":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.4142135623730951},"159":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"e":{"1":{"2":{"3":{".":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"r":{"df":4,"docs":{"100":{"tf":1.4142135623730951},"142":{"tf":1.7320508075688772},"198":{"tf":1.0},"289":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"246":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"185":{"tf":1.0},"228":{"tf":1.0},"72":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":25,"docs":{"118":{"tf":1.4142135623730951},"121":{"tf":1.0},"128":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.4142135623730951},"140":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"198":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"213":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"76":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"p":{"df":8,"docs":{"129":{"tf":1.0},"130":{"tf":1.0},"163":{"tf":1.0},"189":{"tf":1.0},"252":{"tf":1.4142135623730951},"283":{"tf":1.0},"31":{"tf":1.0},"74":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":2,"docs":{"181":{"tf":1.0},"202":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"n":{"df":1,"docs":{"276":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"145":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"263":{"tf":1.0},"282":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":8,"docs":{"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"119":{"tf":1.0},"143":{"tf":1.7320508075688772},"146":{"tf":1.0},"195":{"tf":1.4142135623730951},"222":{"tf":1.0},"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"210":{"tf":1.0}}},"df":20,"docs":{"10":{"tf":1.0},"12":{"tf":1.4142135623730951},"130":{"tf":2.0},"132":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"193":{"tf":1.7320508075688772},"210":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":3.0},"248":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":2.0},"260":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":2.23606797749979}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"208":{"tf":1.0}}}}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"100":{"tf":1.0},"247":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"163":{"tf":1.0},"241":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":9,"docs":{"0":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"252":{"tf":1.7320508075688772},"256":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":2.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":7,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"203":{"tf":2.449489742783178},"22":{"tf":1.0},"263":{"tf":1.0}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"136":{"tf":1.0}}}}}}}},"n":{"df":1,"docs":{"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":3.872983346207417}}}}}}},"y":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"195":{"tf":1.0},"26":{"tf":1.0},"290":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":3,"docs":{"5":{"tf":1.0},"61":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":2,"docs":{"154":{"tf":1.0},"208":{"tf":1.0}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.4142135623730951},"239":{"tf":1.0},"267":{"tf":1.0}}}}}}},"o":{"d":{"df":3,"docs":{"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"200":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":17,"docs":{"106":{"tf":1.0},"108":{"tf":1.0},"111":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"47":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"131":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"239":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":5,"docs":{"121":{"tf":1.0},"17":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"227":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":31,"docs":{"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"17":{"tf":2.0},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"22":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"40":{"tf":1.0},"48":{"tf":1.0},"50":{"tf":1.0},"57":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":7,"docs":{"115":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":1.0},"162":{"tf":1.0},"195":{"tf":1.7320508075688772},"240":{"tf":1.0},"289":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":42,"docs":{"10":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":24,"docs":{"130":{"tf":1.4142135623730951},"133":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":2.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.4142135623730951},"195":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.7320508075688772},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":8,"docs":{"18":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":4,"docs":{"120":{"tf":1.0},"20":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":19,"docs":{"132":{"tf":1.0},"172":{"tf":1.4142135623730951},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.23606797749979},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.449489742783178},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.0},"196":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0}},"t":{"df":3,"docs":{"242":{"tf":1.0},"248":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"251":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"178":{"tf":1.0},"265":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"x":{"df":5,"docs":{"123":{"tf":1.0},"126":{"tf":3.0},"127":{"tf":2.0},"130":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"176":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.4142135623730951},"141":{"tf":1.0},"144":{"tf":1.0},"177":{"tf":1.4142135623730951},"232":{"tf":1.0},"274":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}},"s":{"df":3,"docs":{"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"154":{"tf":2.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"106":{"tf":1.0},"186":{"tf":1.0},"19":{"tf":1.0},"232":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"162":{"tf":2.0},"173":{"tf":1.0},"184":{"tf":1.0},"199":{"tf":1.0},"223":{"tf":1.0},"252":{"tf":1.0},"97":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":4,"docs":{"151":{"tf":1.0},"235":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"u":{"df":8,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"177":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"81":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"118":{"tf":1.4142135623730951}}}}}}}},"df":1,"docs":{"252":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":3,"docs":{"181":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0}}}},"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"16":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"276":{"tf":2.0}}}},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.0},"83":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"210":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"102":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"105":{"tf":1.4142135623730951},"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"166":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"191":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":11,"docs":{"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"137":{"tf":1.0},"142":{"tf":1.0},"17":{"tf":1.0},"180":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"77":{"tf":1.4142135623730951}}}}}},"c":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":13,"docs":{"106":{"tf":1.0},"107":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.7320508075688772},"137":{"tf":1.0},"148":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"42":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":8,"docs":{"162":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.4142135623730951},"268":{"tf":1.0},"271":{"tf":1.0}},"t":{"df":12,"docs":{"128":{"tf":1.0},"176":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":2.6457513110645907},"249":{"tf":2.0},"250":{"tf":2.0},"268":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"114":{"tf":1.0},"127":{"tf":1.0},"163":{"tf":1.0},"241":{"tf":1.4142135623730951},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0}},"e":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":4,"docs":{"139":{"tf":1.0},"185":{"tf":1.0},"200":{"tf":1.0},"288":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":2,"docs":{"185":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"110":{"tf":1.0},"201":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0}}}}}}},"h":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":25,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"165":{"tf":1.4142135623730951},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"170":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"219":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.7320508075688772},"256":{"tf":1.0},"281":{"tf":1.0},"288":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":2,"docs":{"110":{"tf":1.0},"112":{"tf":1.0}}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"111":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"13":{"tf":1.0},"167":{"tf":1.4142135623730951},"17":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":1.0},"266":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":79,"docs":{"0":{"tf":2.0},"114":{"tf":1.0},"118":{"tf":1.7320508075688772},"139":{"tf":2.23606797749979},"14":{"tf":1.7320508075688772},"140":{"tf":1.4142135623730951},"142":{"tf":2.449489742783178},"143":{"tf":2.449489742783178},"148":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":2.0},"172":{"tf":1.7320508075688772},"174":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":2.23606797749979},"190":{"tf":1.0},"191":{"tf":2.23606797749979},"192":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"196":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"209":{"tf":1.7320508075688772},"213":{"tf":1.7320508075688772},"214":{"tf":2.0},"215":{"tf":2.23606797749979},"219":{"tf":1.7320508075688772},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":2.449489742783178},"229":{"tf":1.7320508075688772},"230":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":3.605551275463989},"31":{"tf":2.8284271247461903},"32":{"tf":1.0},"33":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":2.0},"44":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":2.8284271247461903},"57":{"tf":1.0},"58":{"tf":3.3166247903554},"59":{"tf":1.0},"60":{"tf":2.449489742783178},"74":{"tf":1.7320508075688772},"75":{"tf":1.4142135623730951},"76":{"tf":3.3166247903554},"79":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"y":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"219":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"54":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":11,"docs":{"120":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"136":{"tf":1.0},"14":{"tf":1.0},"168":{"tf":1.4142135623730951},"173":{"tf":1.4142135623730951},"197":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"v":{":":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"w":{"a":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}},"e":{"df":7,"docs":{"114":{"tf":1.0},"132":{"tf":1.0},"256":{"tf":1.7320508075688772},"82":{"tf":1.0},"91":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}}},"i":{"d":{"df":33,"docs":{"0":{"tf":1.7320508075688772},"108":{"tf":1.4142135623730951},"121":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"159":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"205":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"249":{"tf":1.0},"252":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.4142135623730951},"288":{"tf":1.7320508075688772},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"46":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"95":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"111":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"103":{"tf":1.0}}}},"df":15,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.0},"197":{"tf":1.0},"258":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":4,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"31":{"tf":1.0},"85":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":7,"docs":{"148":{"tf":1.4142135623730951},"155":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"18":{"tf":1.0},"250":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"114":{"tf":1.0},"18":{"tf":1.0}}}},"t":{"df":5,"docs":{"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}}}}}},"q":{"1":{"df":1,"docs":{"20":{"tf":1.4142135623730951}}},"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":2,"docs":{"268":{"tf":1.0},"269":{"tf":1.0}}},"u":{"a":{"d":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"148":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"260":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":36,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.4142135623730951},"114":{"tf":1.0},"12":{"tf":1.0},"130":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":2.449489742783178},"146":{"tf":1.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.0},"195":{"tf":1.4142135623730951},"214":{"tf":1.0},"218":{"tf":3.0},"220":{"tf":1.4142135623730951},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":2.23606797749979},"235":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":2.449489742783178},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"254":{"tf":2.0},"262":{"tf":1.4142135623730951},"276":{"tf":1.0},"30":{"tf":1.0},"44":{"tf":2.23606797749979},"45":{"tf":1.0},"46":{"tf":1.7320508075688772},"47":{"tf":1.0},"48":{"tf":1.7320508075688772},"7":{"tf":1.0},"81":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":7,"docs":{"190":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":2.8284271247461903},"269":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"251":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"190":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"t":{"df":10,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"155":{"tf":1.0},"176":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"241":{"tf":1.0}}}},"x":{"df":1,"docs":{"131":{"tf":1.0}}}}},"r":{"a":{"b":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"200":{"tf":1.0}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"109":{"tf":1.0},"208":{"tf":1.0}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"194":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.0}}}},"w":{"df":1,"docs":{"249":{"tf":1.0}}},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"'":{"df":1,"docs":{"179":{"tf":1.0}}},"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0}}}}}},":":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"df":51,"docs":{"0":{"tf":1.7320508075688772},"10":{"tf":1.0},"120":{"tf":1.4142135623730951},"122":{"tf":1.7320508075688772},"123":{"tf":1.0},"124":{"tf":2.6457513110645907},"125":{"tf":1.0},"126":{"tf":2.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"132":{"tf":2.0},"151":{"tf":1.0},"172":{"tf":2.0},"175":{"tf":2.6457513110645907},"176":{"tf":2.0},"177":{"tf":3.3166247903554},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.449489742783178},"181":{"tf":3.0},"182":{"tf":2.23606797749979},"183":{"tf":1.4142135623730951},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.7320508075688772},"187":{"tf":1.4142135623730951},"188":{"tf":2.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.449489742783178},"191":{"tf":2.0},"192":{"tf":3.1622776601683795},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":2.8284271247461903},"200":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"26":{"tf":1.0},"263":{"tf":1.0},"274":{"tf":1.0},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"32":{"tf":1.0},"38":{"tf":2.8284271247461903},"48":{"tf":1.7320508075688772},"51":{"tf":1.0},"78":{"tf":2.6457513110645907}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"169":{"tf":1.4142135623730951},"248":{"tf":1.0},"4":{"tf":1.0}}},"t":{"df":13,"docs":{"10":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":1.4142135623730951},"238":{"tf":1.7320508075688772},"240":{"tf":2.0},"264":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}},"d":{"a":{"b":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"60":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"df":38,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.4142135623730951},"211":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":2.0},"57":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":2.0},"90":{"tf":1.4142135623730951},"93":{"tf":1.0}},"m":{"df":2,"docs":{"152":{"tf":1.4142135623730951},"237":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":7,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"133":{"tf":1.0},"18":{"tf":1.0},"240":{"tf":1.4142135623730951},"267":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"269":{"tf":1.0}}}},"z":{"df":1,"docs":{"241":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"177":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"105":{"tf":1.0},"12":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.7320508075688772},"199":{"tf":1.0},"209":{"tf":1.0},"270":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":4,"docs":{"118":{"tf":1.0},"135":{"tf":1.4142135623730951},"248":{"tf":1.0},"254":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"242":{"tf":1.0},"245":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"160":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"243":{"tf":1.0}}},"z":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"d":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"195":{"tf":1.0}}}},"df":23,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"20":{"tf":1.0},"209":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"146":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"188":{"tf":1.0},"191":{"tf":1.4142135623730951},"197":{"tf":1.0},"272":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"216":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"g":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"234":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"62":{"tf":1.0}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}},"r":{"df":3,"docs":{"107":{"tf":1.4142135623730951},"20":{"tf":1.0},"39":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"228":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"170":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"202":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":8,"docs":{"163":{"tf":1.4142135623730951},"228":{"tf":2.449489742783178},"266":{"tf":1.0},"33":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"79":{"tf":1.0}}}}}}}}}}},"df":5,"docs":{"160":{"tf":1.0},"176":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"s":{"df":4,"docs":{"152":{"tf":2.0},"19":{"tf":1.0},"20":{"tf":1.0},"289":{"tf":1.0}}}},"df":0,"docs":{},"v":{"df":8,"docs":{"163":{"tf":1.0},"18":{"tf":1.0},"244":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"289":{"tf":1.0},"45":{"tf":1.0}}}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":9,"docs":{"0":{"tf":1.0},"13":{"tf":1.0},"194":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.4142135623730951},"244":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.0},"269":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":2,"docs":{"175":{"tf":1.0},"215":{"tf":1.0}}},"o":{"a":{"d":{"df":1,"docs":{"235":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"77":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":14,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"131":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"252":{"tf":1.0},"276":{"tf":1.7320508075688772},"29":{"tf":1.0},"55":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"139":{"tf":1.0},"159":{"tf":1.0},"177":{"tf":1.4142135623730951},"264":{"tf":1.0},"31":{"tf":1.0},"41":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":4,"docs":{"131":{"tf":1.0},"184":{"tf":1.4142135623730951},"249":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{},"y":{"df":2,"docs":{"195":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":2,"docs":{"146":{"tf":1.0},"195":{"tf":1.0}}}},"o":{"df":1,"docs":{"92":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":12,"docs":{"103":{"tf":1.0},"121":{"tf":1.7320508075688772},"125":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"180":{"tf":1.0},"203":{"tf":1.0},"269":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":31,"docs":{"100":{"tf":2.23606797749979},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.4142135623730951},"105":{"tf":1.0},"108":{"tf":1.0},"115":{"tf":1.0},"126":{"tf":1.0},"134":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"146":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.4142135623730951},"254":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0},"274":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.0},"96":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":53,"docs":{"101":{"tf":1.0},"107":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"121":{"tf":1.0},"14":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.0},"159":{"tf":1.0},"162":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.23606797749979},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"191":{"tf":1.0},"196":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.7320508075688772},"259":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"59":{"tf":2.0},"60":{"tf":2.23606797749979},"76":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.7320508075688772},"254":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"114":{"tf":1.0}}}}},"i":{"d":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"83":{"tf":1.0}}}},"z":{"df":1,"docs":{"236":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":23,"docs":{"105":{"tf":1.0},"117":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.7320508075688772},"199":{"tf":1.0},"204":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"216":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"63":{"tf":1.0},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":105,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.8284271247461903},"117":{"tf":1.0},"118":{"tf":2.23606797749979},"119":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":2.449489742783178},"139":{"tf":1.7320508075688772},"140":{"tf":2.449489742783178},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"146":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":2.0},"157":{"tf":2.0},"159":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":2.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"181":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.7320508075688772},"209":{"tf":2.23606797749979},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.4142135623730951},"244":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"258":{"tf":1.4142135623730951},"261":{"tf":1.0},"264":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":2.23606797749979},"28":{"tf":2.6457513110645907},"29":{"tf":2.0},"30":{"tf":1.4142135623730951},"33":{"tf":1.0},"34":{"tf":2.0},"39":{"tf":3.605551275463989},"40":{"tf":3.4641016151377544},"42":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":2.0},"51":{"tf":2.6457513110645907},"52":{"tf":1.0},"56":{"tf":2.0},"58":{"tf":1.0},"60":{"tf":2.0},"63":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":2.449489742783178},"77":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.4142135623730951},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.7320508075688772},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"95":{"tf":2.6457513110645907},"96":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"159":{"tf":1.0},"175":{"tf":1.0}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":8,"docs":{"114":{"tf":1.0},"192":{"tf":1.0},"206":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"60":{"tf":1.4142135623730951},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"193":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"108":{"tf":1.0},"115":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"274":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":16,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.0},"200":{"tf":1.4142135623730951},"218":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"253":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":4,"docs":{"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"25":{"tf":1.0},"30":{"tf":1.0}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":18,"docs":{"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"131":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.4142135623730951},"154":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"226":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"266":{"tf":1.0},"276":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"180":{"tf":1.0}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":6,"docs":{"175":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"215":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":12,"docs":{"103":{"tf":1.0},"108":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"167":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"204":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"76":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"213":{"tf":1.0},"260":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"12":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"226":{"tf":1.0}}},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.4142135623730951}}}}}},"f":{"c":{"8":{"7":{"8":{"5":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"240":{"tf":1.0},"252":{"tf":1.0}}}},"d":{"df":1,"docs":{"166":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"145":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"18":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"44":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"86":{"tf":1.7320508075688772},"88":{"tf":1.0},"89":{"tf":2.449489742783178},"90":{"tf":1.0},"92":{"tf":2.0}}}}},"s":{"df":0,"docs":{},"k":{"df":2,"docs":{"105":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":6,"docs":{"16":{"tf":1.7320508075688772},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.7320508075688772},"6":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"231":{"tf":1.0}}}},"o":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"152":{"tf":1.4142135623730951},"161":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"w":{"df":5,"docs":{"214":{"tf":2.0},"216":{"tf":1.0},"219":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"i":{"df":2,"docs":{"127":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":12,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":2.6457513110645907},"18":{"tf":1.0},"182":{"tf":1.0},"2":{"tf":1.4142135623730951},"235":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"53":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":7,"docs":{"142":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"92":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":11,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"272":{"tf":1.0},"280":{"tf":1.4142135623730951},"39":{"tf":1.0},"41":{"tf":1.0}}}}}},"s":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":7,"docs":{"0":{"tf":1.0},"148":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"194":{"tf":1.4142135623730951},"26":{"tf":1.0},"84":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.7320508075688772},"14":{"tf":1.0},"151":{"tf":1.0},"189":{"tf":1.4142135623730951},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"230":{"tf":1.4142135623730951},"250":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":18,"docs":{"117":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"22":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"253":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"59":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"d":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"154":{"tf":1.4142135623730951},"235":{"tf":1.0},"251":{"tf":1.4142135623730951}}}},"w":{"df":1,"docs":{"234":{"tf":1.0}}}},"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"n":{"df":1,"docs":{"269":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":3,"docs":{"121":{"tf":1.0},"140":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"z":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":2,"docs":{"181":{"tf":2.23606797749979},"185":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"185":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"127":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":1,"docs":{"127":{"tf":1.0}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":64,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":2.449489742783178},"198":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":2.8284271247461903},"22":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"226":{"tf":1.0},"23":{"tf":1.4142135623730951},"230":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"257":{"tf":1.4142135623730951},"259":{"tf":2.0},"260":{"tf":1.0},"261":{"tf":1.4142135623730951},"264":{"tf":1.0},"267":{"tf":1.0},"33":{"tf":1.0},"54":{"tf":2.23606797749979},"55":{"tf":2.0},"56":{"tf":1.4142135623730951},"57":{"tf":1.7320508075688772},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"61":{"tf":1.7320508075688772},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.7320508075688772},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":2.6457513110645907},"79":{"tf":1.7320508075688772},"80":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":2,"docs":{"208":{"tf":1.0},"42":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"211":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"266":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"12":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0}}}}}}},"df":2,"docs":{"129":{"tf":1.0},"90":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":17,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"154":{"tf":1.0},"157":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":2.6457513110645907},"261":{"tf":1.0},"262":{"tf":2.0},"269":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"118":{"tf":1.0},"234":{"tf":1.0},"31":{"tf":1.0},"49":{"tf":1.4142135623730951},"65":{"tf":1.0},"95":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"257":{"tf":1.0}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"56":{"tf":1.0},"84":{"tf":1.7320508075688772},"92":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":11,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"180":{"tf":1.0},"225":{"tf":1.0},"232":{"tf":1.4142135623730951},"238":{"tf":1.0},"38":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":9,"docs":{"100":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"134":{"tf":1.0},"83":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":26,"docs":{"102":{"tf":1.0},"105":{"tf":1.7320508075688772},"112":{"tf":1.0},"118":{"tf":1.0},"135":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"180":{"tf":1.4142135623730951},"19":{"tf":1.0},"196":{"tf":1.0},"219":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.4142135623730951},"270":{"tf":1.0},"282":{"tf":1.0},"30":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"91":{"tf":1.0},"95":{"tf":1.0}},"m":{"df":5,"docs":{"129":{"tf":1.0},"178":{"tf":1.0},"19":{"tf":1.0},"211":{"tf":1.0},"29":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"208":{"tf":1.0}}}}}}}},"n":{"df":2,"docs":{"180":{"tf":1.0},"199":{"tf":1.0}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"218":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"132":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"177":{"tf":3.1622776601683795},"178":{"tf":1.0},"180":{"tf":1.0},"243":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"177":{"tf":1.0}}}}}},"df":0,"docs":{}},"f":{"df":4,"docs":{"22":{"tf":1.0},"256":{"tf":1.4142135623730951},"55":{"tf":1.0},"94":{"tf":1.0}}},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":13,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"166":{"tf":1.0},"178":{"tf":2.449489742783178},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":2.0},"22":{"tf":1.0},"252":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"79":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":20,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"108":{"tf":1.0},"134":{"tf":1.0},"140":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"218":{"tf":1.0},"248":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.4142135623730951},"258":{"tf":1.0},"289":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"121":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"t":{"df":3,"docs":{"115":{"tf":1.0},"116":{"tf":1.0},"136":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"0":{"tf":1.0},"175":{"tf":1.4142135623730951},"186":{"tf":1.0},"213":{"tf":1.0},"265":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"13":{"tf":1.0},"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"72":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":58,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"116":{"tf":1.4142135623730951},"117":{"tf":2.449489742783178},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"192":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.4142135623730951},"280":{"tf":1.0},"29":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":2.23606797749979},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"41":{"tf":1.7320508075688772},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"59":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"z":{"df":5,"docs":{"172":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"25":{"tf":1.0},"37":{"tf":1.0}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"250":{"tf":1.0}}}}},"v":{"df":4,"docs":{"151":{"tf":1.0},"165":{"tf":1.4142135623730951},"171":{"tf":1.0},"219":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"'":{"df":2,"docs":{"146":{"tf":1.4142135623730951},"152":{"tf":1.0}}},"df":90,"docs":{"1":{"tf":1.0},"103":{"tf":2.449489742783178},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"115":{"tf":1.4142135623730951},"116":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"133":{"tf":1.4142135623730951},"134":{"tf":1.4142135623730951},"135":{"tf":2.0},"136":{"tf":1.7320508075688772},"138":{"tf":1.0},"139":{"tf":2.0},"140":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":2.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"150":{"tf":2.23606797749979},"151":{"tf":2.6457513110645907},"152":{"tf":3.3166247903554},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.4142135623730951},"157":{"tf":2.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":2.0},"200":{"tf":2.6457513110645907},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"217":{"tf":2.6457513110645907},"219":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"233":{"tf":1.4142135623730951},"235":{"tf":2.6457513110645907},"237":{"tf":2.0},"238":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":2.0},"262":{"tf":2.0},"263":{"tf":2.449489742783178},"264":{"tf":1.7320508075688772},"267":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772},"272":{"tf":1.4142135623730951},"274":{"tf":2.0},"275":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"45":{"tf":1.4142135623730951},"50":{"tf":1.0},"77":{"tf":1.4142135623730951},"79":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"86":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.4142135623730951},"99":{"tf":1.0}}}},"i":{"c":{"df":10,"docs":{"0":{"tf":1.0},"12":{"tf":1.4142135623730951},"149":{"tf":1.0},"176":{"tf":1.0},"241":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":2.449489742783178},"254":{"tf":1.0},"30":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"135":{"tf":1.0},"95":{"tf":1.0}}}}}}},"t":{"df":38,"docs":{"0":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":2.0},"118":{"tf":1.0},"135":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"145":{"tf":1.0},"152":{"tf":1.0},"158":{"tf":1.4142135623730951},"173":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"237":{"tf":1.4142135623730951},"26":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"281":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"82":{"tf":1.0},"92":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":2.0}},"u":{"df":0,"docs":{},"p":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"14":{"tf":1.0},"164":{"tf":1.4142135623730951},"247":{"tf":1.0},"33":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":5,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"60":{"tf":1.0},"78":{"tf":2.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":12,"docs":{"159":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"215":{"tf":1.0},"218":{"tf":1.4142135623730951},"222":{"tf":1.0},"261":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}}},"r":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":39,"docs":{"0":{"tf":1.0},"106":{"tf":1.4142135623730951},"107":{"tf":1.4142135623730951},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"16":{"tf":1.0},"169":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"212":{"tf":1.4142135623730951},"213":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"265":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"8":{"tf":1.0},"86":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":6,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"78":{"tf":2.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"249":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"e":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}},"p":{"df":3,"docs":{"190":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":2.0}}},"r":{"df":0,"docs":{},"t":{"df":11,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.4142135623730951},"196":{"tf":1.0},"252":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"177":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":18,"docs":{"0":{"tf":1.0},"143":{"tf":1.0},"154":{"tf":1.0},"183":{"tf":1.0},"186":{"tf":1.7320508075688772},"191":{"tf":1.4142135623730951},"196":{"tf":1.0},"203":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.7320508075688772},"60":{"tf":1.7320508075688772},"76":{"tf":2.8284271247461903}}}},"df":0,"docs":{}}}},"w":{"df":12,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"152":{"tf":1.4142135623730951},"193":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"86":{"tf":1.0}},"n":{"df":5,"docs":{"154":{"tf":1.0},"175":{"tf":1.0},"242":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":12,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"139":{"tf":1.7320508075688772},"142":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"177":{"tf":1.0},"218":{"tf":1.4142135623730951},"234":{"tf":1.0},"254":{"tf":1.7320508075688772},"275":{"tf":1.0},"5":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":19,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"114":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.8284271247461903},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"132":{"tf":1.0},"135":{"tf":1.0},"195":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"56":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"df":31,"docs":{"0":{"tf":1.0},"100":{"tf":2.0},"102":{"tf":2.23606797749979},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"121":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"240":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.4142135623730951},"282":{"tf":1.0},"289":{"tf":1.0},"67":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"114":{"tf":1.0},"258":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"(":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":24,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"129":{"tf":1.4142135623730951},"136":{"tf":1.0},"170":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"98":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":18,"docs":{"106":{"tf":1.0},"128":{"tf":1.0},"131":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"195":{"tf":1.0},"202":{"tf":1.0},"208":{"tf":1.4142135623730951},"284":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.7320508075688772},"44":{"tf":1.0},"46":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"132":{"tf":1.0},"181":{"tf":1.0},"228":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"45":{"tf":1.0},"49":{"tf":1.0}}}}},"i":{"c":{"df":3,"docs":{"128":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0}}},"df":15,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"182":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"226":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":37,"docs":{"100":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"132":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"203":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"69":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"80":{"tf":1.0},"84":{"tf":1.4142135623730951},"93":{"tf":1.0},"95":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"193":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"185":{"tf":1.0},"246":{"tf":1.0}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"143":{"tf":1.0},"248":{"tf":1.7320508075688772},"87":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"118":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"222":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"w":{"df":3,"docs":{"13":{"tf":1.0},"224":{"tf":1.0},"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":6,"docs":{"162":{"tf":1.0},"186":{"tf":1.4142135623730951},"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.4142135623730951}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"193":{"tf":1.0},"246":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"a":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"p":{"c":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":29,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.4142135623730951},"121":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.4142135623730951},"252":{"tf":1.0},"272":{"tf":2.0},"273":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"278":{"tf":1.0},"279":{"tf":1.0},"280":{"tf":1.0},"281":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.0},"284":{"tf":1.0},"285":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"123":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":12,"docs":{"10":{"tf":1.0},"123":{"tf":1.4142135623730951},"173":{"tf":1.0},"193":{"tf":3.1622776601683795},"194":{"tf":2.0},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":2.449489742783178},"200":{"tf":3.0},"201":{"tf":2.0}}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"263":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"163":{"tf":1.0},"181":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"213":{"tf":1.0},"77":{"tf":1.0}}}},"v":{"df":12,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"234":{"tf":1.0},"254":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"186":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"156":{"tf":1.0},"162":{"tf":1.0},"181":{"tf":1.0},"85":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"177":{"tf":1.0},"259":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"h":{"df":28,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.0},"120":{"tf":1.0},"136":{"tf":1.4142135623730951},"141":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"216":{"tf":1.0},"246":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"51":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"i":{"df":0,"docs":{},"m":{"df":8,"docs":{"184":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"87":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"105":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"156":{"tf":1.0},"157":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"142":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"_":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"142":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":25,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.0},"143":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"275":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}},"r":{"c":{"df":32,"docs":{"111":{"tf":1.0},"112":{"tf":2.23606797749979},"118":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"195":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.7320508075688772},"233":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.4142135623730951},"240":{"tf":1.0},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0},"50":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"256":{"tf":1.4142135623730951},"94":{"tf":1.0}}}}}}}}},"y":{"df":1,"docs":{"270":{"tf":1.0}}}},"p":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":4,"docs":{"130":{"tf":2.0},"199":{"tf":1.4142135623730951},"44":{"tf":1.0},"48":{"tf":2.449489742783178}}}}}},"df":0,"docs":{},"e":{"c":{"df":19,"docs":{"112":{"tf":1.0},"123":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":2.23606797749979},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"188":{"tf":1.0},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"20":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"72":{"tf":1.0},"81":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"124":{"tf":1.0},"176":{"tf":1.0},"258":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":55,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"122":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.23606797749979},"178":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":2.6457513110645907},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"222":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.7320508075688772},"250":{"tf":1.4142135623730951},"254":{"tf":2.0},"259":{"tf":1.4142135623730951},"264":{"tf":1.0},"265":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"44":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}},"i":{"df":9,"docs":{"128":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"228":{"tf":1.4142135623730951},"254":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}},"n":{"d":{"df":2,"docs":{"12":{"tf":1.0},"17":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"181":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"28":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"l":{"df":17,"docs":{"10":{"tf":1.0},"174":{"tf":1.4142135623730951},"194":{"tf":1.0},"213":{"tf":2.23606797749979},"214":{"tf":2.0},"215":{"tf":2.0},"216":{"tf":1.4142135623730951},"217":{"tf":1.4142135623730951},"218":{"tf":2.23606797749979},"219":{"tf":2.6457513110645907},"220":{"tf":2.0},"221":{"tf":1.0},"222":{"tf":2.23606797749979},"223":{"tf":1.0},"224":{"tf":1.0},"245":{"tf":1.0},"283":{"tf":1.0}}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"z":{"df":1,"docs":{"235":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"197":{"tf":1.0}}},"i":{"df":1,"docs":{"255":{"tf":1.4142135623730951}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.7320508075688772}}}},"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":35,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":2.449489742783178},"121":{"tf":1.4142135623730951},"14":{"tf":2.8284271247461903},"15":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.7320508075688772},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"208":{"tf":1.0},"213":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.7320508075688772},"257":{"tf":1.0},"259":{"tf":1.4142135623730951},"262":{"tf":1.0},"265":{"tf":1.4142135623730951},"268":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0},"86":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"17":{"tf":1.0},"211":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":19,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"241":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"290":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"248":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.4142135623730951},"120":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.4142135623730951},"13":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"188":{"tf":1.7320508075688772},"193":{"tf":1.0},"195":{"tf":2.0},"223":{"tf":1.0},"81":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"175":{"tf":1.7320508075688772},"180":{"tf":1.7320508075688772},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}},"i":{"c":{"df":6,"docs":{"209":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.4142135623730951},"23":{"tf":1.0},"26":{"tf":1.0},"77":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":4,"docs":{"115":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"4":{"tf":1.4142135623730951}},"s":{".":{"df":0,"docs":{},"m":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"y":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":15,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"264":{"tf":1.0},"42":{"tf":1.0},"91":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"213":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"263":{"tf":1.0},"267":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"p":{"df":2,"docs":{"135":{"tf":1.0},"190":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"121":{"tf":1.4142135623730951},"152":{"tf":1.0},"166":{"tf":1.0},"2":{"tf":1.0},"208":{"tf":1.4142135623730951},"229":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{":":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":34,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"151":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"226":{"tf":1.0},"232":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":2.6457513110645907},"242":{"tf":1.0},"244":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":2.0},"260":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.0},"41":{"tf":1.0},"79":{"tf":1.0},"84":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}}},"i":{"df":1,"docs":{"17":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"239":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":7,"docs":{"16":{"tf":1.7320508075688772},"17":{"tf":1.7320508075688772},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.0},"6":{"tf":1.0},"94":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"t":{"df":12,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"38":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"148":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":36,"docs":{"0":{"tf":1.0},"101":{"tf":1.0},"105":{"tf":1.0},"117":{"tf":1.7320508075688772},"129":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"208":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":2.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"59":{"tf":2.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"65":{"tf":2.0},"66":{"tf":1.0},"69":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951},"95":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"185":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":15,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"144":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"18":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"249":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"240":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}},"i":{"df":1,"docs":{"253":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":2,"docs":{"111":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":2,"docs":{"234":{"tf":1.0},"58":{"tf":1.0}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"124":{"tf":1.0},"80":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{"(":{"df":1,"docs":{"276":{"tf":1.0}}},"df":1,"docs":{"276":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"199":{"tf":1.0}}},"df":52,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"105":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"132":{"tf":1.4142135623730951},"134":{"tf":1.0},"135":{"tf":2.23606797749979},"136":{"tf":1.0},"142":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":2.449489742783178},"177":{"tf":2.6457513110645907},"178":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"180":{"tf":2.8284271247461903},"181":{"tf":3.605551275463989},"182":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.7320508075688772},"196":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"268":{"tf":1.0},"28":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"30":{"tf":2.8284271247461903},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"39":{"tf":2.0},"40":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":6,"docs":{"111":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"250":{"tf":1.0},"289":{"tf":1.4142135623730951},"290":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"172":{"tf":1.0},"205":{"tf":1.0},"38":{"tf":1.0}}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"d":{"df":1,"docs":{"115":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"12":{"tf":1.0},"199":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":40,"docs":{"105":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.4142135623730951},"139":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"38":{"tf":1.0},"40":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"168":{"tf":1.0},"181":{"tf":1.0},"243":{"tf":1.7320508075688772},"270":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"257":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"12":{"tf":1.0}}}},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"148":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"112":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":30,"docs":{"112":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"247":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.4142135623730951}}}},"s":{"df":2,"docs":{"12":{"tf":1.0},"177":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":26,"docs":{"109":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"206":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":2.6457513110645907},"252":{"tf":3.3166247903554},"253":{"tf":1.4142135623730951},"254":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"w":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"14":{"tf":1.0},"18":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"112":{"tf":1.0},"240":{"tf":1.0}},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":5,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0},"58":{"tf":1.0},"66":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":29,"docs":{"0":{"tf":1.0},"112":{"tf":2.0},"121":{"tf":1.4142135623730951},"122":{"tf":1.4142135623730951},"151":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":1.0},"222":{"tf":1.4142135623730951},"234":{"tf":1.0},"239":{"tf":1.0},"260":{"tf":1.0},"44":{"tf":1.0},"55":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"183":{"tf":1.0}}}}}}},"t":{"a":{"b":{"df":1,"docs":{"98":{"tf":1.0}},"l":{"df":13,"docs":{"151":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"214":{"tf":2.449489742783178},"218":{"tf":1.4142135623730951},"219":{"tf":1.7320508075688772},"220":{"tf":1.0},"222":{"tf":1.0},"240":{"tf":1.0},"261":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0},"6":{"tf":1.4142135623730951}}}},"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":2,"docs":{"191":{"tf":1.0},"192":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":16,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.4142135623730951},"204":{"tf":1.0},"225":{"tf":1.0},"25":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":2,"docs":{"132":{"tf":1.0},"288":{"tf":1.0}}},"m":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"18":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"108":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"44":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"52":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0}}}}}},"c":{"df":1,"docs":{"124":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"266":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"266":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":1,"docs":{"86":{"tf":1.0}}}},"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.4142135623730951}},"n":{"df":0,"docs":{},"i":{"c":{"df":6,"docs":{"17":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"288":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":5,"docs":{"17":{"tf":1.0},"170":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"269":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"l":{"df":12,"docs":{"135":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"183":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"208":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"15":{"tf":1.0},"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"d":{"df":6,"docs":{"139":{"tf":1.0},"184":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0}}},"df":1,"docs":{"220":{"tf":1.0}}},"r":{"a":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":2,"docs":{"179":{"tf":1.4142135623730951},"33":{"tf":1.0}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"117":{"tf":1.0},"151":{"tf":1.0},"220":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}}}}}},"df":23,"docs":{"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.4142135623730951},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"62":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}},"df":0,"docs":{}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":2,"docs":{"288":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951}}}},"t":{"'":{"df":13,"docs":{"12":{"tf":1.7320508075688772},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"166":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"194":{"tf":1.0},"202":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"90":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":10,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"186":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"81":{"tf":1.0},"90":{"tf":1.0},"93":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":8,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.7320508075688772},"165":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"152":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"186":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0}}}}}}},"y":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"181":{"tf":1.0}}},"v":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{".":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"58":{"tf":1.0}}}}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":54,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"137":{"tf":1.0},"15":{"tf":1.0},"153":{"tf":1.4142135623730951},"154":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"181":{"tf":2.449489742783178},"183":{"tf":1.7320508075688772},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"196":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"201":{"tf":1.7320508075688772},"204":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.0},"240":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.7320508075688772},"290":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.4142135623730951}}},"k":{"df":18,"docs":{"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"253":{"tf":1.0},"266":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"d":{"df":2,"docs":{"256":{"tf":1.0},"32":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"132":{"tf":1.0}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"175":{"tf":1.0},"247":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":4,"docs":{"219":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0},"48":{"tf":1.0}},"t":{"df":5,"docs":{"169":{"tf":1.0},"175":{"tf":1.0},"212":{"tf":1.4142135623730951},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":7,"docs":{"1":{"tf":1.0},"149":{"tf":1.7320508075688772},"152":{"tf":1.0},"175":{"tf":1.0},"204":{"tf":1.0},"29":{"tf":1.4142135623730951},"56":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":12,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"225":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"49":{"tf":1.0},"76":{"tf":1.0}}}}}}},"u":{"df":1,"docs":{"181":{"tf":1.0}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"86":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"186":{"tf":1.0}}}}}}},"m":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":4,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}},"e":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.0},"152":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"258":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"65":{"tf":1.0},"70":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":7,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.7320508075688772},"114":{"tf":1.0},"118":{"tf":1.0},"39":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":2.23606797749979}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"l":{"df":2,"docs":{"129":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"d":{"a":{"df":0,"docs":{},"y":{"df":3,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":2,"docs":{"241":{"tf":1.0},"28":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"16":{"tf":1.0},"288":{"tf":1.0}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"105":{"tf":1.0},"106":{"tf":1.4142135623730951},"95":{"tf":1.0},"98":{"tf":2.23606797749979}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":9,"docs":{"133":{"tf":1.0},"138":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.4142135623730951},"284":{"tf":1.0},"41":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.4142135623730951},"284":{"tf":1.0},"41":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"df":2,"docs":{"151":{"tf":1.0},"226":{"tf":1.0}},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"13":{"tf":1.0},"16":{"tf":1.0}}},"l":{"df":17,"docs":{"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"17":{"tf":1.0},"183":{"tf":1.0},"19":{"tf":1.4142135623730951},"191":{"tf":1.7320508075688772},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.23606797749979},"241":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"281":{"tf":1.4142135623730951}}}},"p":{"df":5,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"90":{"tf":2.0}},"i":{"c":{"df":3,"docs":{"199":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"f":{"df":2,"docs":{"276":{"tf":1.0},"288":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"249":{"tf":1.0}}},"k":{"df":7,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"20":{"tf":1.0},"248":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"234":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"193":{"tf":1.0},"229":{"tf":1.0}}},"n":{"df":3,"docs":{"242":{"tf":1.0},"244":{"tf":1.7320508075688772},"245":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"110":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":2.23606797749979},"235":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":5,"docs":{"181":{"tf":2.449489742783178},"253":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":5,"docs":{"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":17,"docs":{"0":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"229":{"tf":1.0},"262":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"47":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}},"y":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"198":{"tf":1.0},"87":{"tf":1.0}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"183":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":13,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"19":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.0},"282":{"tf":1.0},"53":{"tf":1.4142135623730951},"76":{"tf":1.0},"93":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"127":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":2.0},"178":{"tf":2.0},"180":{"tf":1.0},"181":{"tf":2.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"29":{"tf":1.7320508075688772},"38":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0}}}},"v":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"119":{"tf":1.0},"14":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"192":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"e":{"df":8,"docs":{"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"56":{"tf":1.0},"69":{"tf":1.7320508075688772}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"112":{"tf":1.0},"118":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"269":{"tf":1.0}}}}}}}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"280":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"20":{"tf":1.0},"253":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"74":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":9,"docs":{"124":{"tf":1.0},"127":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"38":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"157":{"tf":1.0},"189":{"tf":1.0},"241":{"tf":1.0},"289":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"181":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":16,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"125":{"tf":1.0},"144":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"201":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.0},"242":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":1.0},"93":{"tf":1.0}}}},"x":{"df":1,"docs":{"124":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":45,"docs":{"0":{"tf":2.0},"12":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"159":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"183":{"tf":1.4142135623730951},"185":{"tf":1.0},"187":{"tf":1.4142135623730951},"189":{"tf":1.7320508075688772},"193":{"tf":1.0},"194":{"tf":1.7320508075688772},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.4142135623730951},"232":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"31":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"45":{"tf":2.0},"55":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":12,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"56":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"i":{"c":{"df":4,"docs":{"136":{"tf":1.0},"210":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"14":{"tf":1.0},"157":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"l":{"df":2,"docs":{"14":{"tf":1.0},"54":{"tf":1.0}}}},"n":{")":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"107":{"tf":1.0}}}}}}}},"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"132":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"197":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"r":{"df":4,"docs":{"154":{"tf":1.0},"164":{"tf":1.0},"181":{"tf":1.0},"46":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"112":{"tf":1.0},"130":{"tf":1.0},"148":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.4142135623730951},"22":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"199":{"tf":1.0},"266":{"tf":1.0},"55":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"o":{"df":3,"docs":{"111":{"tf":1.0},"15":{"tf":1.0},"195":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"184":{"tf":1.0},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"175":{"tf":1.0},"183":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"64":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":23,"docs":{"127":{"tf":1.0},"132":{"tf":1.0},"162":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"180":{"tf":2.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"196":{"tf":1.4142135623730951},"208":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":1.0}}}},"t":{"df":1,"docs":{"250":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"x":{"df":4,"docs":{"101":{"tf":1.0},"114":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":3,"docs":{"137":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"23":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"k":{"df":2,"docs":{"180":{"tf":1.0},"222":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"135":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"114":{"tf":1.0},"127":{"tf":1.0},"130":{"tf":2.23606797749979},"133":{"tf":1.0},"134":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.7320508075688772},"258":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"289":{"tf":1.0},"81":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":20,"docs":{"106":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"206":{"tf":1.0},"216":{"tf":1.0},"237":{"tf":1.4142135623730951},"245":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":11,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"165":{"tf":1.7320508075688772},"166":{"tf":1.0},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"171":{"tf":1.7320508075688772},"219":{"tf":1.0},"268":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"=":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"%":{"3":{"a":{"%":{"2":{"df":0,"docs":{},"f":{"%":{"2":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"%":{"2":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"146":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":11,"docs":{"0":{"tf":1.0},"144":{"tf":1.7320508075688772},"145":{"tf":1.0},"146":{"tf":3.0},"147":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"157":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":8,"docs":{"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.4142135623730951},"186":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.7320508075688772},"72":{"tf":1.0}}},"l":{"df":94,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.0},"107":{"tf":2.0},"108":{"tf":1.4142135623730951},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.0},"124":{"tf":1.0},"128":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.4142135623730951},"144":{"tf":1.4142135623730951},"145":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.7320508075688772},"172":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"176":{"tf":1.0},"177":{"tf":2.0},"181":{"tf":1.7320508075688772},"182":{"tf":1.4142135623730951},"183":{"tf":2.6457513110645907},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.7320508075688772},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":2.23606797749979},"213":{"tf":1.0},"216":{"tf":2.0},"218":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"253":{"tf":1.0},"261":{"tf":1.0},"268":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":2.449489742783178},"30":{"tf":1.4142135623730951},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.0},"45":{"tf":1.7320508075688772},"47":{"tf":1.0},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"63":{"tf":2.0},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.7320508075688772},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":2.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"107":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"107":{"tf":1.0},"181":{"tf":2.0},"193":{"tf":1.4142135623730951},"276":{"tf":1.0},"37":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}}}}}}}},"df":196,"docs":{"0":{"tf":3.0},"1":{"tf":1.0},"10":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.7320508075688772},"117":{"tf":1.0},"121":{"tf":2.23606797749979},"123":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":2.23606797749979},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"134":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":2.23606797749979},"142":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.7320508075688772},"151":{"tf":2.0},"152":{"tf":3.1622776601683795},"153":{"tf":1.0},"154":{"tf":2.0},"155":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"160":{"tf":1.7320508075688772},"161":{"tf":1.0},"162":{"tf":2.0},"163":{"tf":2.0},"164":{"tf":1.4142135623730951},"165":{"tf":1.4142135623730951},"166":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.7320508075688772},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.23606797749979},"180":{"tf":1.0},"181":{"tf":3.1622776601683795},"182":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"189":{"tf":2.0},"19":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.7320508075688772},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"202":{"tf":2.0},"203":{"tf":2.23606797749979},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.7320508075688772},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":1.0},"22":{"tf":3.0},"220":{"tf":1.0},"222":{"tf":1.4142135623730951},"223":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"228":{"tf":1.0},"229":{"tf":2.0},"23":{"tf":2.23606797749979},"230":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":2.23606797749979},"233":{"tf":1.7320508075688772},"234":{"tf":1.7320508075688772},"235":{"tf":2.449489742783178},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":2.23606797749979},"239":{"tf":1.0},"240":{"tf":2.23606797749979},"241":{"tf":2.0},"242":{"tf":1.4142135623730951},"243":{"tf":1.7320508075688772},"244":{"tf":1.4142135623730951},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.23606797749979},"248":{"tf":1.7320508075688772},"249":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"250":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.449489742783178},"253":{"tf":1.4142135623730951},"254":{"tf":2.0},"255":{"tf":1.0},"256":{"tf":1.4142135623730951},"257":{"tf":1.7320508075688772},"258":{"tf":1.4142135623730951},"259":{"tf":1.7320508075688772},"26":{"tf":1.4142135623730951},"260":{"tf":2.0},"261":{"tf":2.6457513110645907},"262":{"tf":1.7320508075688772},"263":{"tf":1.4142135623730951},"264":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":2.449489742783178},"279":{"tf":1.0},"284":{"tf":1.4142135623730951},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":2.6457513110645907},"40":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"55":{"tf":2.23606797749979},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":2.0},"77":{"tf":2.23606797749979},"79":{"tf":2.23606797749979},"80":{"tf":1.0},"81":{"tf":2.0},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"89":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":2.449489742783178}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"139":{"tf":1.0}}}}}},"r":{"'":{"df":3,"docs":{"253":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"df":33,"docs":{"0":{"tf":1.4142135623730951},"105":{"tf":1.0},"12":{"tf":1.4142135623730951},"135":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"159":{"tf":1.0},"167":{"tf":1.4142135623730951},"168":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":2.0},"224":{"tf":1.0},"234":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":2.0},"261":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"81":{"tf":1.4142135623730951},"93":{"tf":1.0},"94":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"182":{"tf":1.0},"40":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"c":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}},"x":{"df":2,"docs":{"18":{"tf":1.0},"252":{"tf":1.0}}}},"v":{"1":{"df":1,"docs":{"4":{"tf":1.0}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":44,"docs":{"103":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.23606797749979},"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"264":{"tf":1.0},"280":{"tf":1.4142135623730951},"33":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"48":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"103":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"u":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"148":{"tf":1.0},"232":{"tf":1.0},"288":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":48,"docs":{"114":{"tf":1.4142135623730951},"118":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"158":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":2.0},"177":{"tf":2.8284271247461903},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.7320508075688772},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.4142135623730951},"229":{"tf":1.0},"25":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.6457513110645907},"32":{"tf":2.23606797749979},"39":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"54":{"tf":1.0},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"67":{"tf":1.0},"68":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0}}}},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":1,"docs":{"78":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"131":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"232":{"tf":1.4142135623730951},"240":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"271":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":5,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.0}},"e":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"r":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"288":{"tf":1.0}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}}}},"i":{"df":28,"docs":{"1":{"tf":1.0},"112":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"126":{"tf":1.0},"130":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"155":{"tf":1.0},"167":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"209":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"290":{"tf":1.0}},"f":{"df":2,"docs":{"258":{"tf":1.0},"85":{"tf":1.0}},"i":{"df":19,"docs":{"10":{"tf":1.0},"103":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"116":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.7320508075688772},"256":{"tf":2.23606797749979},"257":{"tf":1.4142135623730951},"258":{"tf":2.449489742783178},"259":{"tf":1.4142135623730951},"266":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":26,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"121":{"tf":1.4142135623730951},"132":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"26":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"17":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"(":{"df":1,"docs":{"20":{"tf":1.0}}},"df":2,"docs":{"23":{"tf":1.0},"265":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":11,"docs":{"107":{"tf":1.0},"144":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"20":{"tf":1.0},"234":{"tf":1.0},"264":{"tf":2.0},"275":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"153":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"142":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"17":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":5,"docs":{"156":{"tf":1.4142135623730951},"276":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"c":{"a":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"25":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"290":{"tf":1.0}}},"df":0,"docs":{},"l":{"a":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":5,"docs":{"143":{"tf":1.4142135623730951},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"229":{"tf":1.4142135623730951}}}},"w":{"3":{"c":{"df":2,"docs":{"175":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":42,"docs":{"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"12":{"tf":2.6457513110645907},"13":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"189":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"219":{"tf":1.7320508075688772},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"281":{"tf":1.4142135623730951},"39":{"tf":1.0},"49":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"125":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"265":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"y":{"df":47,"docs":{"1":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0},"190":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"239":{"tf":1.0},"242":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"271":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.4142135623730951},"45":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.4142135623730951},"92":{"tf":1.4142135623730951},"93":{"tf":1.0}},"n":{"df":1,"docs":{"243":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"'":{"d":{"df":2,"docs":{"228":{"tf":1.0},"252":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":17,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.0},"120":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.7320508075688772},"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"232":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"289":{"tf":1.0},"34":{"tf":1.0},"87":{"tf":1.0}}}},"r":{"df":7,"docs":{"120":{"tf":1.0},"128":{"tf":1.0},"148":{"tf":1.0},"19":{"tf":1.7320508075688772},"20":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.7320508075688772}}},"v":{"df":5,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"235":{"tf":1.0},"51":{"tf":1.0}}}},"b":{")":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"196":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"12":{"tf":1.7320508075688772},"128":{"tf":1.0},"13":{"tf":2.0},"138":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"190":{"tf":1.4142135623730951},"193":{"tf":1.7320508075688772},"199":{"tf":2.449489742783178},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"235":{"tf":1.7320508075688772},"241":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"55":{"tf":1.0},"81":{"tf":1.0}},"i":{"d":{"df":1,"docs":{"197":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":2.449489742783178},"261":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"c":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"77":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"133":{"tf":2.0},"134":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.7320508075688772},"99":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"261":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"290":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":13,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"12":{"tf":2.23606797749979},"18":{"tf":1.0},"189":{"tf":1.0},"201":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.4142135623730951},"262":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"115":{"tf":1.0},"13":{"tf":1.0},"136":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"209":{"tf":1.0},"243":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"136":{"tf":1.0},"17":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":7,"docs":{"180":{"tf":1.0},"213":{"tf":1.0},"216":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"263":{"tf":1.0},"78":{"tf":1.4142135623730951}}},"df":0,"docs":{},"v":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"103":{"tf":1.0},"112":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"54":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"111":{"tf":1.0},"168":{"tf":1.0},"190":{"tf":1.0}}}}}},"o":{"'":{"df":2,"docs":{"114":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"126":{"tf":1.0}},"s":{"#":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"2":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":4,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"256":{"tf":1.0}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"284":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":4,"docs":{"118":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":23,"docs":{"107":{"tf":1.4142135623730951},"114":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"262":{"tf":1.0},"267":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"70":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":11,"docs":{"181":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"190":{"tf":1.0}}}},"df":0,"docs":{}},"df":39,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.4142135623730951},"128":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.4142135623730951},"271":{"tf":1.0},"288":{"tf":1.7320508075688772},"41":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"77":{"tf":1.4142135623730951},"81":{"tf":1.0},"83":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"83":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"a":{"c":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"d":{"df":10,"docs":{"106":{"tf":1.0},"12":{"tf":1.0},"131":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"222":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":2,"docs":{"12":{"tf":1.0},"181":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"183":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"123":{"tf":1.0}}}}}},"df":54,"docs":{"108":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.7320508075688772},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"243":{"tf":1.4142135623730951},"8":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"92":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":8,"docs":{"14":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"5":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":5,"docs":{"115":{"tf":1.0},"117":{"tf":1.0},"136":{"tf":1.7320508075688772},"180":{"tf":1.0},"99":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"112":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}}}},"s":{"df":2,"docs":{"134":{"tf":1.4142135623730951},"151":{"tf":1.0}},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"w":{"df":1,"docs":{"95":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"134":{"tf":1.0},"151":{"tf":1.0},"95":{"tf":1.0}}}}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":3,"docs":{"101":{"tf":2.0},"103":{"tf":1.4142135623730951},"134":{"tf":1.0}},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"148":{"tf":1.0},"199":{"tf":1.0},"26":{"tf":1.0},"262":{"tf":1.0},"54":{"tf":1.0}}}},"s":{"d":{":":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"185":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"192":{"tf":1.0}}}}}}}}},"df":2,"docs":{"126":{"tf":1.0},"54":{"tf":1.0}}},"df":0,"docs":{}}},"y":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"199":{"tf":1.0},"201":{"tf":1.0},"220":{"tf":1.0},"251":{"tf":1.0}}}},"df":2,"docs":{"194":{"tf":1.0},"223":{"tf":1.0}}},"o":{"df":0,"docs":{},"u":{"'":{"d":{"df":7,"docs":{"119":{"tf":1.0},"135":{"tf":1.4142135623730951},"162":{"tf":1.0},"215":{"tf":1.0},"229":{"tf":1.0},"250":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":11,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"df":29,"docs":{"106":{"tf":1.0},"118":{"tf":1.7320508075688772},"136":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.4142135623730951},"210":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.4142135623730951},"218":{"tf":1.0},"23":{"tf":1.4142135623730951},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"v":{"df":6,"docs":{"117":{"tf":1.0},"166":{"tf":1.0},"181":{"tf":1.0},"250":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":3,"docs":{"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"53":{"tf":1.4142135623730951}}}}}}}}},"y":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":1,"docs":{"70":{"tf":1.0}}}}}},"z":{"0":{"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"69":{"tf":1.0}}}}}}}},"title":{"root":{"a":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"245":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"223":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":1,"docs":{"286":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"d":{"d":{"df":3,"docs":{"167":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}}},"df":13,"docs":{"116":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"204":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"224":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"270":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"153":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0}}}}}},"i":{"df":3,"docs":{"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"239":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"df":0,"docs":{},"m":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"245":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"p":{"df":2,"docs":{"15":{"tf":1.0},"238":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"165":{"tf":1.0},"273":{"tf":1.0}}},"df":1,"docs":{"118":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"187":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":106,"docs":{"0":{"tf":1.0},"1":{"tf":1.4142135623730951},"10":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":1.0},"113":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"150":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"16":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"209":{"tf":1.0},"21":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.0},"217":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"235":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"246":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.0},"284":{"tf":1.0},"285":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"63":{"tf":1.0},"73":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"93":{"tf":1.0},"96":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.0},"197":{"tf":1.0},"91":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":6,"docs":{"104":{"tf":1.0},"198":{"tf":1.0},"287":{"tf":1.0},"86":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"98":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"264":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"184":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"275":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"15":{"tf":1.0},"224":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"c":{"a":{"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"232":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":3,"docs":{"260":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}},"n":{"df":0,"docs":{},"g":{"df":4,"docs":{"176":{"tf":1.0},"179":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":6,"docs":{"145":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"214":{"tf":1.0},"57":{"tf":1.0},"60":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"276":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"135":{"tf":1.0},"136":{"tf":1.0},"254":{"tf":1.0},"76":{"tf":1.0}}}}}}},"m":{"df":3,"docs":{"233":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"142":{"tf":1.0},"46":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"185":{"tf":1.0},"217":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":8,"docs":{"110":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"258":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":4,"docs":{"120":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.0},"263":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"113":{"tf":1.0},"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"134":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"137":{"tf":1.0},"210":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"266":{"tf":1.0},"6":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":4,"docs":{"1":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"219":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":2,"docs":{"96":{"tf":1.0},"97":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":12,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"74":{"tf":1.0},"85":{"tf":1.0},"9":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"255":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"92":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"248":{"tf":1.0}}}}}}}}}},"d":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.0}}}},"t":{"a":{"b":{"a":{"df":0,"docs":{},"s":{"df":5,"docs":{"174":{"tf":1.0},"217":{"tf":1.0},"219":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":75,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"133":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"16":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"209":{"tf":1.0},"21":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"238":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"246":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"9":{"tf":1.0},"93":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"185":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"70":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"76":{"tf":1.0},"77":{"tf":1.0},"80":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":4,"docs":{"120":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.0}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"144":{"tf":1.0},"163":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":8,"docs":{"107":{"tf":1.0},"111":{"tf":1.0},"141":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"277":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"231":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"o":{"c":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}},"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":2,"docs":{"144":{"tf":1.0},"147":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"162":{"tf":1.0}}},"df":0,"docs":{}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"215":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"166":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"243":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"196":{"tf":1.0}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":2,"docs":{"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"246":{"tf":1.0},"265":{"tf":1.0}},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"75":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"138":{"tf":1.0},"50":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"132":{"tf":1.0},"165":{"tf":1.0},"199":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"160":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"0":{"tf":1.0},"168":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"277":{"tf":1.0}}}}}}}},"f":{"a":{"df":0,"docs":{},"q":{"df":2,"docs":{"221":{"tf":1.0},"73":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"151":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"45":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":3,"docs":{"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":5,"docs":{"144":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"156":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"154":{"tf":1.0},"158":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.0}}}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":1,"docs":{"178":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"268":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"172":{"tf":1.0},"196":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0}}}},"df":1,"docs":{"13":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"277":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.0}}}}},"o":{"a":{"df":0,"docs":{},"l":{"df":8,"docs":{"107":{"tf":1.0},"111":{"tf":1.0},"141":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":3,"docs":{"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"261":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"171":{"tf":1.0}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"168":{"tf":1.0},"177":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"101":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"233":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"169":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":4,"docs":{"104":{"tf":1.0},"198":{"tf":1.0},"86":{"tf":1.0},"88":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"18":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"1":{"tf":1.0},"157":{"tf":1.0},"262":{"tf":1.0},"79":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":3,"docs":{"101":{"tf":1.0},"115":{"tf":1.0},"45":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"167":{"tf":1.0}},"e":{"a":{"df":1,"docs":{"281":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"256":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"216":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"138":{"tf":1.0},"168":{"tf":1.0},"200":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"164":{"tf":1.0},"283":{"tf":1.0}}}}}}},"n":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"224":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"134":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"209":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"15":{"tf":1.0},"170":{"tf":1.0},"43":{"tf":1.0}}}}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"106":{"tf":1.0},"254":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"290":{"tf":1.0},"3":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"f":{"df":4,"docs":{"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"'":{"df":3,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"161":{"tf":1.0}}}}}},"j":{"df":0,"docs":{},"s":{"df":1,"docs":{"240":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":18,"docs":{"116":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"206":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"166":{"tf":1.0},"186":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"283":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"224":{"tf":1.0}}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"228":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"189":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0}}}},"df":0,"docs":{}}}}},"d":{"df":6,"docs":{"125":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"43":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"265":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"178":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"90":{"tf":1.0}}}}}},"i":{"b":{"df":1,"docs":{"280":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"2":{"tf":1.0},"272":{"tf":1.0},"278":{"tf":1.0},"41":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"249":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"220":{"tf":1.0},"236":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"k":{"df":3,"docs":{"128":{"tf":1.0},"13":{"tf":1.0},"77":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"281":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"182":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"152":{"tf":1.0}},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":1,"docs":{"77":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":5,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"243":{"tf":1.0},"257":{"tf":1.0},"267":{"tf":1.0}}}},"p":{"df":1,"docs":{"166":{"tf":1.0}}},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"167":{"tf":1.0}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"135":{"tf":1.0},"136":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"201":{"tf":1.0}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":5,"docs":{"120":{"tf":1.0},"266":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"92":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"265":{"tf":1.0},"266":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"12":{"tf":1.0},"155":{"tf":1.0},"178":{"tf":1.0},"182":{"tf":1.0},"196":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":2,"docs":{"11":{"tf":1.0},"112":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"161":{"tf":1.0},"74":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"122":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"3":{"df":1,"docs":{"123":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":4,"docs":{"179":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"40":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":2,"docs":{"187":{"tf":1.0},"188":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"4":{"df":0,"docs":{},"j":{"df":1,"docs":{"227":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"34":{"tf":1.0},"40":{"tf":1.0},"51":{"tf":1.0}}}},"w":{"df":1,"docs":{"190":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"289":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"j":{"df":1,"docs":{"238":{"tf":1.0}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"182":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"222":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"216":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"267":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"160":{"tf":1.4142135623730951}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"233":{"tf":1.0},"239":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"169":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"78":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":1,"docs":{"174":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"143":{"tf":1.0}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"41":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"123":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0}},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":3,"docs":{"184":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"12":{"tf":1.0},"234":{"tf":1.0}}}}},"r":{"df":1,"docs":{"100":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"143":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"241":{"tf":1.0},"248":{"tf":1.0}}}}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"180":{"tf":1.0},"185":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"162":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"284":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"254":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"249":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"167":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":8,"docs":{"143":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.0},"214":{"tf":1.0},"228":{"tf":1.0},"31":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"168":{"tf":1.0},"173":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"245":{"tf":1.0},"270":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"148":{"tf":1.0},"156":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":5,"docs":{"143":{"tf":1.0},"218":{"tf":1.0},"229":{"tf":1.0},"245":{"tf":1.0},"44":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"245":{"tf":1.0},"253":{"tf":1.0}}}}}}}}}},"r":{"a":{"df":0,"docs":{},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"df":9,"docs":{"120":{"tf":1.0},"122":{"tf":1.0},"124":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"38":{"tf":1.0},"78":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"169":{"tf":1.0}}},"t":{"df":2,"docs":{"238":{"tf":1.0},"240":{"tf":1.0}}}},"d":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"252":{"tf":1.0}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"170":{"tf":1.0},"175":{"tf":1.0},"202":{"tf":1.0},"78":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"163":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"184":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"100":{"tf":1.0},"102":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"183":{"tf":1.0},"206":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"167":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":10,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"224":{"tf":1.0},"28":{"tf":1.0},"34":{"tf":1.0},"40":{"tf":1.0},"51":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"229":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"86":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"79":{"tf":1.0}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"w":{"df":1,"docs":{"214":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"280":{"tf":1.0}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"194":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"189":{"tf":1.0},"230":{"tf":1.0}}}}}}},"c":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":12,"docs":{"189":{"tf":1.0},"194":{"tf":1.0},"215":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.0},"259":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"73":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"248":{"tf":1.0},"277":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}},"f":{"df":1,"docs":{"256":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"178":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"116":{"tf":1.0},"35":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"196":{"tf":1.0}}}}}},"df":0,"docs":{}},"v":{"df":1,"docs":{"165":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"135":{"tf":1.0},"136":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"200":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"233":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":3,"docs":{"158":{"tf":1.0},"237":{"tf":1.0},"97":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"164":{"tf":1.0}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"78":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"212":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"78":{"tf":1.0}}}},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"270":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"186":{"tf":1.0},"76":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"254":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":1,"docs":{"100":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":2,"docs":{"186":{"tf":1.0},"62":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"239":{"tf":1.0},"272":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"193":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"79":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":3,"docs":{"195":{"tf":1.0},"233":{"tf":1.0},"239":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"256":{"tf":1.0}}}}}}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"130":{"tf":1.0},"48":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":5,"docs":{"177":{"tf":1.0},"199":{"tf":1.0},"250":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"l":{"df":3,"docs":{"213":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"255":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":7,"docs":{"14":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"188":{"tf":1.0},"195":{"tf":1.0}}},"i":{"c":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"241":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"17":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"65":{"tf":1.0}}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"80":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"180":{"tf":1.0},"181":{"tf":1.0},"30":{"tf":1.0},"45":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"289":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"257":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"74":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"122":{"tf":1.0}}}}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"214":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"170":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"288":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"155":{"tf":1.0}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"201":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"212":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"149":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"106":{"tf":1.0},"98":{"tf":1.0}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"279":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"279":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"l":{"df":3,"docs":{"2":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0}}}},"p":{"df":1,"docs":{"90":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"244":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"52":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":3,"docs":{"189":{"tf":1.0},"194":{"tf":1.0},"230":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"180":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"130":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"237":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":2,"docs":{"165":{"tf":1.0},"171":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":2,"docs":{"144":{"tf":1.0},"146":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}},"l":{"df":5,"docs":{"167":{"tf":1.0},"183":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"63":{"tf":1.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"178":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":20,"docs":{"10":{"tf":1.0},"115":{"tf":1.0},"150":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"21":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"252":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"206":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":3,"docs":{"158":{"tf":1.0},"177":{"tf":1.0},"32":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"232":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":4,"docs":{"103":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0}}}}}}},"s":{"df":5,"docs":{"143":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"229":{"tf":1.0}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"281":{"tf":1.0}}}},"y":{"df":1,"docs":{"149":{"tf":1.0}}}},"df":0,"docs":{},"e":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}},"b":{"df":1,"docs":{"199":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"133":{"tf":1.0},"134":{"tf":1.0},"99":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"77":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":2,"docs":{"157":{"tf":1.0},"53":{"tf":1.0}}}}}}}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}}); \ No newline at end of file diff --git a/searchindex.json b/searchindex.json new file mode 100644 index 0000000..d2c84a9 --- /dev/null +++ b/searchindex.json @@ -0,0 +1 @@ +{"doc_urls":["atomic-data-overview.html#atomic-data-extended","atomic-data-overview.html#atomizing-how-to-create-convert-and-host-atomic-data","atomic-data-overview.html#tools--libraries","atomic-data-overview.html#get-involved","atomic-data-overview.html#status","atomic-data-overview.html#reading-these-docs","atomic-data-overview.html#table-of-contents","atomic-data-overview.html#specification-core","atomic-data-overview.html#specification-extended","atomic-data-overview.html#create-atomic-data","atomic-data-overview.html#use-atomic-data","motivation.html#motivation-why-atomic-data","motivation.html#give-people-more-control-over-their-data","motivation.html#linked-data-is-awesome-but-it-is-too-difficult-for-developers-in-its-current-form","motivation.html#make-standardization-easier-and-cheaper","motivation.html#make-it-easier-for-developers-to-build-feature-rich-interoperable-apps","roadmap.html#strategy-history-and-roadmap-for-atomic-data","roadmap.html#strategy-for-adoption","roadmap.html#history","roadmap.html#where-were-at","roadmap.html#roadmap","when-to-use.html#when-not-to-use-atomic-data","when-to-use.html#when-should-you-use-atomic-data","when-to-use.html#when-not-to-use-atomic-data-1","core/concepts.html#what-is-atomic-data","core/concepts.html#atomic-data-core","core/concepts.html#design-goals","core/concepts.html#concepts","core/concepts.html#resource","core/concepts.html#atom-or-atomic-triple","core/concepts.html#subject-field","core/concepts.html#property-field","core/concepts.html#value-field","core/concepts.html#graph","core/concepts.html#nested-resource","core/serialization.html#serialization-of-atomic-data","core/serialization.html#json-ad","core/serialization.html#json-simple","core/serialization.html#rdf-serialization-formats","core/json-ad.html#json-ad-the-atomic-data-serialization-format","core/json-ad.html#nested-anonymous-and-named-resources","core/json-ad.html#json-ad-parsers-serializers-and-other-libraries","core/json-ad.html#canonicalized-json-ad","core/json-ad.html#interoperability-with-json-and-json-ld","core/querying.html#querying-atomic-data","core/querying.html#subject-fetching-http","core/querying.html#atomic-collections","core/querying.html#atomic-paths","core/querying.html#sparql","core/paths.html#atomic-paths","core/paths.html#example","core/paths.html#nested-resources","core/paths.html#traversing-arrays","core/paths.html#try-for-yourself","schema/intro.html#atomic-schema","schema/intro.html#design-goals","schema/intro.html#in-short","schema/classes.html#atomic-schema-classes","schema/classes.html#property","schema/classes.html#datatype","schema/classes.html#class","schema/datatypes.html#atomic-schema-datatypes","schema/datatypes.html#slug","schema/datatypes.html#atomic-url","schema/datatypes.html#uri","schema/datatypes.html#string","schema/datatypes.html#markdown","schema/datatypes.html#integer","schema/datatypes.html#float","schema/datatypes.html#boolean","schema/datatypes.html#date","schema/datatypes.html#timestamp","schema/datatypes.html#resourcearray","schema/faq.html#atomic-schema-faq","schema/faq.html#how-do-i-create-a-property-that-supports-multiple-datatypes","schema/faq.html#do-you-have-an-enum-datatype","schema/faq.html#how-should-a-client-deal-with-shortname-collisions","schema/faq.html#atomic-data-uses-a-lot-of-links-how-do-you-deal-with-links-that-dont-work","schema/faq.html#how-does-atomic-schema-relate-to-rdf--shacl--shex--owl--rdfs","schema/faq.html#what-are-the-risks-of-using-schema-data-hosted-somewhere-else","schema/faq.html#how-do-i-deal-with-subclasses--inheritance","extended.html#atomic-data-extended","agents.html#atomic-agents","agents.html#design-goals","agents.html#the-agent-model","agents.html#creating-an-agent","hierarchy.html#hierarchy-rights-and-authorization","hierarchy.html#design-goals","hierarchy.html#atomic-hierarchy-model","hierarchy.html#authorization","hierarchy.html#top-level-resources","hierarchy.html#authentication","hierarchy.html#current-limitations-of-the-authorization-model","authentication.html#authentication-in-atomic-data","authentication.html#design-goals","authentication.html#authentication-resources","authentication.html#atomic-cookies-authentication","authentication.html#setting-the-cookie","authentication.html#bearer-token-authentication","authentication.html#authenticating-websockets","authentication.html#per-request-signing","authentication.html#http-headers","authentication.html#sending-a-request","authentication.html#verifying-an-authentication","authentication.html#hierarchies-for-authorization","authentication.html#limitations--considerations","invitations.html#invitations--tokens","invitations.html#design-goals","invitations.html#flow","invitations.html#limitations-and-gotchas","commits/intro.html#atomic-commits","commits/intro.html#design-goals","commits/intro.html#motivation","commits/concepts.html#atomic-commits-concepts","commits/concepts.html#commit","commits/concepts.html#posting-commits-using-http","commits/concepts.html#serialization-with-json-ad","commits/concepts.html#calculating-the-signature","commits/concepts.html#applying-the-commit","commits/concepts.html#limitations","commits/compare.html#atomic-commits-compared-to-other-rdf-delta-models","commits/compare.html#git","commits/compare.html#rdf-mutation-systems","commits/compare.html#n3-patch","commits/compare.html#rdf-delta","commits/compare.html#delta-ld","commits/compare.html#patchr","commits/compare.html#ld-patch","commits/compare.html#linked-delta","commits/compare.html#json-ld-patch","commits/compare.html#sparql-update","commits/compare.html#json-patch","commits/compare.html#atomic-commits---how-its-different-and-why-it-exists","websockets.html#websockets-in-atomic-data","websockets.html#initializing-a-websocket-connection","websockets.html#client-to-server-messages","websockets.html#server-to-client-messages","websockets.html#considerations","websockets.html#example-implementations","endpoints.html#atomic-endpoints","endpoints.html#incomplete-resources","endpoints.html#design-goals","schema/collections.html#atomic-collections","schema/collections.html#persisting-properties-vs-query-parameters","files.html#uploading-downloading-and-describing-files-with-atomic-data","files.html#the-file-class","files.html#uploading-a-file","files.html#downloading-a-file","atomizing.html#atomizing-how-to-create-and-publish-atomic-data","atomizing.html#three-ways-to-atomize-data","atomic-server.html#creating-atomic-data-using-atomic-server","atomic-server.html#atomic-server-and-its-features","atomic-server.html#running-atomic-server-locally-optional","atomic-server.html#creating-an-agent","atomic-server.html#creating-your-first-atomic-data","atomic-server.html#theres-more","create-json-ad.html#how-to-create-and-publish-a-json-ad-file","create-json-ad.html#creating-json-ad-without-hosting-individual-resources-yourself","create-json-ad.html#setting-the-first-values","create-json-ad.html#adding-a-class","create-json-ad.html#using-exsisting-ontologies-classes-and-ontologies","create-json-ad.html#multiple-items","create-json-ad.html#preventing-duplication-with-localid","create-json-ad.html#describing-relationships-between-resources-using-localid","create-json-ad.html#importing-data-using-atomic-sever","interoperability/upgrade.html#upgrade-your-existing-application-to-serve-atomic-data","interoperability/upgrade.html#easy-map-your-json-keys-to-atomic-data-properties","interoperability/upgrade.html#medium-add-id-urls-that-properly-resolve","interoperability/upgrade.html#hard-implement-atomic-data-extended-protocols","interoperability/upgrade.html#reach-out-for-help","interoperability/intro.html#interoperability-relation-to-other-technology","interoperability/intro.html#upgrade-guide","interoperability/intro.html#data-formats","interoperability/intro.html#protocols","interoperability/intro.html#database-paradigms","interoperability/rdf.html#how-does-atomic-data-relate-to-rdf","interoperability/rdf.html#why-these-changes","interoperability/rdf.html#its-too-hard-to-select-a-specific-value-object-in-rdf","interoperability/rdf.html#less-focus-on-semantics-more-on-usability","interoperability/rdf.html#changing-the-names","interoperability/rdf.html#subject--predicate-uniqueness","interoperability/rdf.html#limiting-subject-usage","interoperability/rdf.html#no-more-literals--named-nodes","interoperability/rdf.html#requiring-urls","interoperability/rdf.html#replace-blank-nodes-with-paths","interoperability/rdf.html#combining-datatype-and-predicate","interoperability/rdf.html#adding-shortnames-slugs--keys-in-properties","interoperability/rdf.html#adding-native-arrays","interoperability/rdf.html#adding-a-native-state-changes-standard","interoperability/rdf.html#adding-a-schema-language-and-type-safety","interoperability/rdf.html#a-new-name-with-new-docs","interoperability/rdf.html#convert-rdf-to-atomic-data","interoperability/rdf.html#convert-atomic-data-to-rdf","interoperability/solid.html#atomic-data-and-solid","interoperability/solid.html#atomic-data-is-type-safe-because-of-its-built-in-schema","interoperability/solid.html#atomic-data-standardizes-state-changes-event-sourcing","interoperability/solid.html#atomic-data-is-more-easily-serializable-to-other-formats-like-json","interoperability/solid.html#authentication","interoperability/solid.html#hierarchy-and-authorization","interoperability/solid.html#no-dependency-on-existing-semantic-web-specifications","interoperability/solid.html#atomic-data-and-solid-server-implementations","interoperability/solid.html#things-that-atomic-data-misses-but-solid-has","interoperability/json.html#how-does-atomic-data-relate-to-json","interoperability/json.html#from-atomic-data-to-plain-json","interoperability/json.html#from-json-to-json-ad","interoperability/json.html#from-atomic-data-to-json-ld","interoperability/json.html#json-ld-requirements-for-valid-atomic-data","interoperability/ipfs.html#atomic-data-and-ipfs","interoperability/ipfs.html#what-is-ipfs","interoperability/ipfs.html#why-is-ipfs-interesting-for-atomic-data","interoperability/ipfs.html#considerations-using-ipfs-urls","interoperability/ipfs.html#atomic-data-and-ipld","interoperability/ipfs.html#share-your-thoughts","interoperability/sql.html#atomic-data-and-sql","interoperability/sql.html#tables-and-rows-vs-classes-and-properties","interoperability/sql.html#dynamic-vs-static-schema","interoperability/sql.html#identifiers-numbers-vs-urls","interoperability/sql.html#atomic-server-combines-server-and-database","interoperability/sql.html#querying","interoperability/sql.html#convert-an-sql-database-to-atomic-data","interoperability/sql.html#limitations-of-atomic-data","interoperability/sql.html#faq","interoperability/sql.html#is-atomic-data-nosql-or-sql","interoperability/sql.html#is-atomic-data-transactional--acid","interoperability/sql.html#how-does-atomic-server-build-indexes-for-its-resources-if-the-schema-is-not-known-in-advance","interoperability/graph-database.html#atomic-data-and-graph-databases","interoperability/graph-database.html#atomic-server-as-a-database","interoperability/graph-database.html#comparing-atomic-data-to-neo4j","interoperability/graph-database.html#labeled-property-graph","interoperability/graph-database.html#query-language-vs-rest","interoperability/graph-database.html#schema-language-and-type-safety","interoperability/graph-database.html#other-differences","usecases/intro.html#various-use-cases-for-atomic-data","usecases/headless-cms.html#using-atomic-server-as-an-open-source-headless-cms","usecases/headless-cms.html#why-people-are-switching-to-headless-cms","usecases/headless-cms.html#atomic-server","usecases/headless-cms.html#limitations","usecases/headless-cms.html#setting-up-the-server","usecases/headless-cms.html#using-the-data-in-your-react--nextjs-app","usecases/headless-cms.html#compared-to-alternative-open-source-headless-cms-software","usecases/react.html#using-atomic-data-in-a-js--ts-react-project","usecases/personal-data-store.html#atomic-data-for-personal-data-stores","usecases/ai.html#atomic-data--artificial-intelligence","usecases/ai.html#make-it-easier-to-create-atomic-data-using-ai","usecases/ai.html#train-ais-with-atomic-data","usecases/ai.html#provide-ai-with-query-access-to-answer-questions","usecases/e-commerce.html#atomic-data-for-e-commerce--marketplaces","usecases/e-commerce.html#decentralize-platform--sharing-economy-service-marketplaces","usecases/e-commerce.html#highly-personalized-and-customizable-search","usecases/e-commerce.html#product-lifecycle--supply-chain-insights","usecases/e-commerce.html#product-specific-updates-after-purchase","usecases/surveys.html#atomic-data-for-surveys","usecases/surveys.html#re-useable-survey-responses","usecases/surveys.html#question-standardization","usecases/surveys.html#privacy-friendly-invites-with-client-side-filtering","usecases/verifiable-credentials.html#atomic-data-and-verifiable-credentials--ssi","usecases/verifiable-credentials.html#what-are-verifiable-credentials--self-sovereign-identity","usecases/verifiable-credentials.html#what-makes-atomic-data-suitable-for-this","usecases/verifiable-credentials.html#every-atomic-commit-is-a-verifiable-credential","usecases/verifiable-credentials.html#use-atomic-schema-for-standardizing-credentials","usecases/data-catalog.html#using-atomic-server-as-a-data-catalog","usecases/data-catalog.html#why-atomic-server-could-be-great-for-data-catalogs","usecases/data-catalog.html#when-atomic-server-is-used-for-hosting-the-data-too","usecases/data-catalog.html#atomic-server-compared-to-ckan","usecases/data-catalog.html#what-we-should-add-to-atomic-server-before-its-a-decent-data-catalog","usecases/education.html#atomic-data-for-education---standardized-modular-e-learning","usecases/education.html#modular-educational-content---a-model","usecases/education.html#what-makes-atomic-server-a-great-tool-for-creating-online-courseware","usecases/food-labels.html#atomic-data-for-food-label-standardization","usecases/food-labels.html#scan-labels-to-get-detailed-reliable-interactive-information","usecases/food-labels.html#provide-nutritional-advice-based-on-shopping-behavior","usecases/food-labels.html#how-to-achieve-all-this","tooling.html#software-and-libraries-for-atomic-data","tooling.html#applications","tooling.html#atomic-server","tooling.html#atomic-data-browser","tooling.html#atomic-cli","tooling.html#raycast-extension-full-text-search-from-your-desktop","tooling.html#libraries","tooling.html#tomiclib-and-tomicreact","tooling.html#atomic-lib-rust","tooling.html#want-to-add-to-this-list-some-ideas-for-tooling","tooling.html#atomic-companion","tooling.html#atomizer-data-importer-and-conversion-kit","tooling.html#atomic-preview","tooling.html#atomic-dart--flutter","acknowledgements.html#acknowledgements","acknowledgements.html#authors","acknowledgements.html#special-thanks-to","newsletter.html#subscribe-to-the-atomic-data-newsletter","get-involved.html#get-involved"],"index":{"documentStore":{"docInfo":{"0":{"body":234,"breadcrumbs":6,"title":3},"1":{"body":28,"breadcrumbs":9,"title":6},"10":{"body":42,"breadcrumbs":6,"title":3},"100":{"body":31,"breadcrumbs":7,"title":3},"101":{"body":43,"breadcrumbs":6,"title":2},"102":{"body":82,"breadcrumbs":6,"title":2},"103":{"body":51,"breadcrumbs":6,"title":2},"104":{"body":9,"breadcrumbs":6,"title":2},"105":{"body":77,"breadcrumbs":6,"title":2},"106":{"body":23,"breadcrumbs":7,"title":2},"107":{"body":27,"breadcrumbs":7,"title":2},"108":{"body":65,"breadcrumbs":6,"title":1},"109":{"body":38,"breadcrumbs":7,"title":2},"11":{"body":0,"breadcrumbs":7,"title":3},"110":{"body":27,"breadcrumbs":8,"title":2},"111":{"body":90,"breadcrumbs":8,"title":2},"112":{"body":201,"breadcrumbs":7,"title":1},"113":{"body":0,"breadcrumbs":10,"title":3},"114":{"body":135,"breadcrumbs":8,"title":1},"115":{"body":38,"breadcrumbs":11,"title":4},"116":{"body":33,"breadcrumbs":10,"title":3},"117":{"body":122,"breadcrumbs":9,"title":2},"118":{"body":128,"breadcrumbs":9,"title":2},"119":{"body":57,"breadcrumbs":8,"title":1},"12":{"body":209,"breadcrumbs":10,"title":6},"120":{"body":37,"breadcrumbs":13,"title":6},"121":{"body":142,"breadcrumbs":8,"title":1},"122":{"body":6,"breadcrumbs":10,"title":3},"123":{"body":30,"breadcrumbs":9,"title":2},"124":{"body":47,"breadcrumbs":9,"title":2},"125":{"body":14,"breadcrumbs":9,"title":2},"126":{"body":70,"breadcrumbs":8,"title":1},"127":{"body":100,"breadcrumbs":9,"title":2},"128":{"body":54,"breadcrumbs":9,"title":2},"129":{"body":37,"breadcrumbs":10,"title":3},"13":{"body":165,"breadcrumbs":11,"title":7},"130":{"body":52,"breadcrumbs":9,"title":2},"131":{"body":45,"breadcrumbs":9,"title":2},"132":{"body":173,"breadcrumbs":12,"title":5},"133":{"body":33,"breadcrumbs":7,"title":3},"134":{"body":29,"breadcrumbs":7,"title":3},"135":{"body":39,"breadcrumbs":7,"title":3},"136":{"body":44,"breadcrumbs":7,"title":3},"137":{"body":13,"breadcrumbs":5,"title":1},"138":{"body":17,"breadcrumbs":6,"title":2},"139":{"body":80,"breadcrumbs":6,"title":2},"14":{"body":150,"breadcrumbs":8,"title":4},"140":{"body":42,"breadcrumbs":6,"title":2},"141":{"body":25,"breadcrumbs":6,"title":2},"142":{"body":113,"breadcrumbs":8,"title":2},"143":{"body":53,"breadcrumbs":11,"title":5},"144":{"body":42,"breadcrumbs":12,"title":6},"145":{"body":18,"breadcrumbs":8,"title":2},"146":{"body":77,"breadcrumbs":8,"title":2},"147":{"body":26,"breadcrumbs":8,"title":2},"148":{"body":72,"breadcrumbs":6,"title":5},"149":{"body":47,"breadcrumbs":5,"title":4},"15":{"body":94,"breadcrumbs":12,"title":8},"150":{"body":20,"breadcrumbs":10,"title":6},"151":{"body":172,"breadcrumbs":7,"title":3},"152":{"body":228,"breadcrumbs":9,"title":5},"153":{"body":21,"breadcrumbs":6,"title":2},"154":{"body":133,"breadcrumbs":8,"title":4},"155":{"body":39,"breadcrumbs":6,"title":2},"156":{"body":61,"breadcrumbs":10,"title":5},"157":{"body":73,"breadcrumbs":13,"title":8},"158":{"body":11,"breadcrumbs":8,"title":3},"159":{"body":57,"breadcrumbs":7,"title":2},"16":{"body":39,"breadcrumbs":11,"title":5},"160":{"body":43,"breadcrumbs":10,"title":5},"161":{"body":32,"breadcrumbs":7,"title":2},"162":{"body":74,"breadcrumbs":8,"title":3},"163":{"body":97,"breadcrumbs":11,"title":6},"164":{"body":8,"breadcrumbs":10,"title":5},"165":{"body":54,"breadcrumbs":10,"title":6},"166":{"body":74,"breadcrumbs":11,"title":7},"167":{"body":28,"breadcrumbs":10,"title":6},"168":{"body":27,"breadcrumbs":10,"title":6},"169":{"body":16,"breadcrumbs":7,"title":3},"17":{"body":122,"breadcrumbs":8,"title":2},"170":{"body":21,"breadcrumbs":5,"title":3},"171":{"body":11,"breadcrumbs":4,"title":2},"172":{"body":71,"breadcrumbs":4,"title":2},"173":{"body":14,"breadcrumbs":3,"title":1},"174":{"body":19,"breadcrumbs":4,"title":2},"175":{"body":196,"breadcrumbs":7,"title":4},"176":{"body":46,"breadcrumbs":4,"title":1},"177":{"body":280,"breadcrumbs":10,"title":7},"178":{"body":65,"breadcrumbs":8,"title":5},"179":{"body":20,"breadcrumbs":5,"title":2},"18":{"body":319,"breadcrumbs":7,"title":1},"180":{"body":114,"breadcrumbs":6,"title":3},"181":{"body":282,"breadcrumbs":6,"title":3},"182":{"body":84,"breadcrumbs":7,"title":4},"183":{"body":112,"breadcrumbs":5,"title":2},"184":{"body":123,"breadcrumbs":7,"title":4},"185":{"body":82,"breadcrumbs":6,"title":3},"186":{"body":84,"breadcrumbs":8,"title":5},"187":{"body":23,"breadcrumbs":6,"title":3},"188":{"body":29,"breadcrumbs":8,"title":5},"189":{"body":132,"breadcrumbs":8,"title":5},"19":{"body":50,"breadcrumbs":7,"title":1},"190":{"body":144,"breadcrumbs":7,"title":4},"191":{"body":116,"breadcrumbs":7,"title":4},"192":{"body":76,"breadcrumbs":7,"title":4},"193":{"body":159,"breadcrumbs":6,"title":3},"194":{"body":116,"breadcrumbs":9,"title":6},"195":{"body":166,"breadcrumbs":10,"title":7},"196":{"body":60,"breadcrumbs":10,"title":7},"197":{"body":64,"breadcrumbs":4,"title":1},"198":{"body":45,"breadcrumbs":5,"title":2},"199":{"body":287,"breadcrumbs":8,"title":5},"2":{"body":49,"breadcrumbs":5,"title":2},"20":{"body":155,"breadcrumbs":7,"title":1},"200":{"body":163,"breadcrumbs":8,"title":5},"201":{"body":45,"breadcrumbs":8,"title":5},"202":{"body":42,"breadcrumbs":7,"title":4},"203":{"body":126,"breadcrumbs":7,"title":4},"204":{"body":98,"breadcrumbs":6,"title":3},"205":{"body":120,"breadcrumbs":7,"title":4},"206":{"body":41,"breadcrumbs":9,"title":6},"207":{"body":0,"breadcrumbs":6,"title":3},"208":{"body":68,"breadcrumbs":4,"title":1},"209":{"body":67,"breadcrumbs":7,"title":4},"21":{"body":0,"breadcrumbs":7,"title":3},"210":{"body":81,"breadcrumbs":7,"title":4},"211":{"body":15,"breadcrumbs":6,"title":3},"212":{"body":7,"breadcrumbs":5,"title":2},"213":{"body":56,"breadcrumbs":6,"title":3},"214":{"body":41,"breadcrumbs":8,"title":5},"215":{"body":67,"breadcrumbs":7,"title":4},"216":{"body":44,"breadcrumbs":7,"title":4},"217":{"body":21,"breadcrumbs":8,"title":5},"218":{"body":83,"breadcrumbs":4,"title":1},"219":{"body":56,"breadcrumbs":8,"title":5},"22":{"body":119,"breadcrumbs":7,"title":3},"220":{"body":41,"breadcrumbs":6,"title":3},"221":{"body":0,"breadcrumbs":4,"title":1},"222":{"body":53,"breadcrumbs":7,"title":4},"223":{"body":24,"breadcrumbs":7,"title":4},"224":{"body":27,"breadcrumbs":11,"title":8},"225":{"body":31,"breadcrumbs":8,"title":4},"226":{"body":120,"breadcrumbs":7,"title":3},"227":{"body":38,"breadcrumbs":8,"title":4},"228":{"body":90,"breadcrumbs":7,"title":3},"229":{"body":82,"breadcrumbs":8,"title":4},"23":{"body":62,"breadcrumbs":7,"title":3},"230":{"body":14,"breadcrumbs":8,"title":4},"231":{"body":22,"breadcrumbs":5,"title":1},"232":{"body":57,"breadcrumbs":8,"title":5},"233":{"body":0,"breadcrumbs":12,"title":7},"234":{"body":98,"breadcrumbs":9,"title":4},"235":{"body":150,"breadcrumbs":7,"title":2},"236":{"body":8,"breadcrumbs":6,"title":1},"237":{"body":19,"breadcrumbs":8,"title":3},"238":{"body":17,"breadcrumbs":10,"title":5},"239":{"body":26,"breadcrumbs":12,"title":7},"24":{"body":0,"breadcrumbs":4,"title":2},"240":{"body":73,"breadcrumbs":12,"title":7},"241":{"body":132,"breadcrumbs":11,"title":5},"242":{"body":82,"breadcrumbs":9,"title":4},"243":{"body":43,"breadcrumbs":12,"title":7},"244":{"body":25,"breadcrumbs":9,"title":4},"245":{"body":47,"breadcrumbs":11,"title":6},"246":{"body":57,"breadcrumbs":11,"title":5},"247":{"body":277,"breadcrumbs":12,"title":6},"248":{"body":125,"breadcrumbs":10,"title":4},"249":{"body":57,"breadcrumbs":11,"title":5},"25":{"body":55,"breadcrumbs":5,"title":3},"250":{"body":59,"breadcrumbs":10,"title":4},"251":{"body":77,"breadcrumbs":7,"title":3},"252":{"body":175,"breadcrumbs":8,"title":4},"253":{"body":59,"breadcrumbs":6,"title":2},"254":{"body":116,"breadcrumbs":10,"title":6},"255":{"body":0,"breadcrumbs":10,"title":5},"256":{"body":58,"breadcrumbs":10,"title":5},"257":{"body":17,"breadcrumbs":9,"title":4},"258":{"body":82,"breadcrumbs":9,"title":4},"259":{"body":44,"breadcrumbs":10,"title":5},"26":{"body":83,"breadcrumbs":4,"title":2},"260":{"body":58,"breadcrumbs":10,"title":5},"261":{"body":95,"breadcrumbs":10,"title":5},"262":{"body":65,"breadcrumbs":10,"title":5},"263":{"body":37,"breadcrumbs":9,"title":4},"264":{"body":44,"breadcrumbs":13,"title":8},"265":{"body":43,"breadcrumbs":11,"title":7},"266":{"body":83,"breadcrumbs":8,"title":4},"267":{"body":59,"breadcrumbs":12,"title":8},"268":{"body":35,"breadcrumbs":10,"title":5},"269":{"body":94,"breadcrumbs":11,"title":6},"27":{"body":0,"breadcrumbs":3,"title":1},"270":{"body":41,"breadcrumbs":11,"title":6},"271":{"body":62,"breadcrumbs":6,"title":1},"272":{"body":43,"breadcrumbs":6,"title":4},"273":{"body":0,"breadcrumbs":3,"title":1},"274":{"body":48,"breadcrumbs":4,"title":2},"275":{"body":27,"breadcrumbs":5,"title":3},"276":{"body":104,"breadcrumbs":4,"title":2},"277":{"body":2,"breadcrumbs":8,"title":6},"278":{"body":0,"breadcrumbs":3,"title":1},"279":{"body":17,"breadcrumbs":4,"title":2},"28":{"body":40,"breadcrumbs":3,"title":1},"280":{"body":32,"breadcrumbs":5,"title":3},"281":{"body":13,"breadcrumbs":7,"title":5},"282":{"body":23,"breadcrumbs":4,"title":2},"283":{"body":22,"breadcrumbs":7,"title":5},"284":{"body":20,"breadcrumbs":4,"title":2},"285":{"body":15,"breadcrumbs":5,"title":3},"286":{"body":0,"breadcrumbs":2,"title":1},"287":{"body":4,"breadcrumbs":2,"title":1},"288":{"body":105,"breadcrumbs":3,"title":2},"289":{"body":41,"breadcrumbs":5,"title":4},"29":{"body":280,"breadcrumbs":5,"title":3},"290":{"body":45,"breadcrumbs":2,"title":1},"3":{"body":9,"breadcrumbs":4,"title":1},"30":{"body":50,"breadcrumbs":4,"title":2},"31":{"body":51,"breadcrumbs":4,"title":2},"32":{"body":20,"breadcrumbs":4,"title":2},"33":{"body":39,"breadcrumbs":3,"title":1},"34":{"body":19,"breadcrumbs":4,"title":2},"35":{"body":22,"breadcrumbs":6,"title":3},"36":{"body":51,"breadcrumbs":5,"title":2},"37":{"body":54,"breadcrumbs":5,"title":2},"38":{"body":139,"breadcrumbs":6,"title":3},"39":{"body":191,"breadcrumbs":10,"title":6},"4":{"body":12,"breadcrumbs":4,"title":1},"40":{"body":81,"breadcrumbs":8,"title":4},"41":{"body":22,"breadcrumbs":9,"title":5},"42":{"body":53,"breadcrumbs":7,"title":3},"43":{"body":8,"breadcrumbs":8,"title":4},"44":{"body":47,"breadcrumbs":6,"title":3},"45":{"body":51,"breadcrumbs":6,"title":3},"46":{"body":30,"breadcrumbs":5,"title":2},"47":{"body":14,"breadcrumbs":5,"title":2},"48":{"body":45,"breadcrumbs":4,"title":1},"49":{"body":52,"breadcrumbs":5,"title":2},"5":{"body":36,"breadcrumbs":5,"title":2},"50":{"body":86,"breadcrumbs":4,"title":1},"51":{"body":76,"breadcrumbs":5,"title":2},"52":{"body":45,"breadcrumbs":5,"title":2},"53":{"body":14,"breadcrumbs":5,"title":2},"54":{"body":45,"breadcrumbs":5,"title":2},"55":{"body":83,"breadcrumbs":5,"title":2},"56":{"body":130,"breadcrumbs":4,"title":1},"57":{"body":18,"breadcrumbs":7,"title":3},"58":{"body":108,"breadcrumbs":5,"title":1},"59":{"body":78,"breadcrumbs":5,"title":1},"6":{"body":8,"breadcrumbs":5,"title":2},"60":{"body":130,"breadcrumbs":5,"title":1},"61":{"body":14,"breadcrumbs":7,"title":3},"62":{"body":21,"breadcrumbs":5,"title":1},"63":{"body":6,"breadcrumbs":6,"title":2},"64":{"body":14,"breadcrumbs":5,"title":1},"65":{"body":20,"breadcrumbs":5,"title":1},"66":{"body":19,"breadcrumbs":5,"title":1},"67":{"body":12,"breadcrumbs":5,"title":1},"68":{"body":9,"breadcrumbs":5,"title":1},"69":{"body":21,"breadcrumbs":5,"title":1},"7":{"body":11,"breadcrumbs":5,"title":2},"70":{"body":11,"breadcrumbs":5,"title":1},"71":{"body":32,"breadcrumbs":5,"title":1},"72":{"body":27,"breadcrumbs":5,"title":1},"73":{"body":0,"breadcrumbs":7,"title":3},"74":{"body":21,"breadcrumbs":9,"title":5},"75":{"body":15,"breadcrumbs":6,"title":2},"76":{"body":127,"breadcrumbs":8,"title":4},"77":{"body":56,"breadcrumbs":13,"title":9},"78":{"body":41,"breadcrumbs":12,"title":8},"79":{"body":82,"breadcrumbs":10,"title":6},"8":{"body":22,"breadcrumbs":5,"title":2},"80":{"body":18,"breadcrumbs":7,"title":3},"81":{"body":102,"breadcrumbs":6,"title":3},"82":{"body":29,"breadcrumbs":6,"title":2},"83":{"body":26,"breadcrumbs":6,"title":2},"84":{"body":56,"breadcrumbs":6,"title":2},"85":{"body":34,"breadcrumbs":6,"title":2},"86":{"body":56,"breadcrumbs":8,"title":3},"87":{"body":29,"breadcrumbs":7,"title":2},"88":{"body":26,"breadcrumbs":8,"title":3},"89":{"body":48,"breadcrumbs":6,"title":1},"9":{"body":11,"breadcrumbs":6,"title":3},"90":{"body":36,"breadcrumbs":8,"title":3},"91":{"body":7,"breadcrumbs":6,"title":1},"92":{"body":48,"breadcrumbs":9,"title":4},"93":{"body":50,"breadcrumbs":7,"title":3},"94":{"body":66,"breadcrumbs":6,"title":2},"95":{"body":133,"breadcrumbs":6,"title":2},"96":{"body":21,"breadcrumbs":7,"title":3},"97":{"body":34,"breadcrumbs":6,"title":2},"98":{"body":29,"breadcrumbs":7,"title":3},"99":{"body":14,"breadcrumbs":6,"title":2}},"docs":{"0":{"body":"# Atomic Data Docs - Overview Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety. Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines. Atomic Data has been designed with the following goals in mind : Give people more control over their data Make linked data easier to use Make it easier for developers to build highly interoperable apps Make standardization easier and cheaper Atomic Data is Linked Data , as it is a strict subset of RDF . It is type-safe (you know if something is a string, number, date, URL, etc.) and extensible through Atomic Schema , which means that you can re-use or define your own Classes, Properties and Datatypes. The default serialization format for Atomic Data is JSON-AD , which is simply JSON where each key is a URL of an Atomic Property. These Properties are responsible for setting the datatype (to ensure type-safety) and setting shortnames (which help to keep names short, for example in JSON serialization) and descriptions (which provide semantic explanations of what a property should be used for). Read more about Atomic Data Core Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization. Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions. Agents are Users that enable authentication . They are Resources with their own Public and Private keys, which they use to identify themselves. Collections : querying, filtering, sorting and pagination. Paths : traverse graphs. Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems. Invites : create new users and provide them with rights. WebSockets : real-time updates. Endpoints : provide machine-readable descriptions of web services. Files : upload, download and metadata for files.","breadcrumbs":"Atomic Data Overview » Atomic Data Extended","id":"0","title":"Atomic Data Extended"},"1":{"body":"Atomic Data has been designed to be very easy to create and host. In the Atomizing section, we'll show you how you can create Atomic Data in three ways: Using Atomic Server, from your browser By creating JSON-AD (and optionally importing it) By upgrading your existing application","breadcrumbs":"Atomic Data Overview » Atomizing: how to create, convert and host Atomic Data","id":"1","title":"Atomizing: how to create, convert and host Atomic Data"},"10":{"body":"Interoperability and comparisons RDF Solid JSON IPFS SQL Graph Databases Potential use cases As a Headless CMS In a React project Personal Data Store Artificial Intelligence E-commerce & marketplaces Surveys Verifiable Credentials Data Catalog Education Food labels Software and libraries Acknowledgements | Newsletter | Get involved Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Use Atomic Data","id":"10","title":"Use Atomic Data"},"100":{"body":"Atomic Data allows signing every HTTP request . This method is most secure, since a MITM attack would only give access to the specific resource requested, and only for a short amount of time. Note that signing every single request takes a bit of time. We picked a fast algorithm (Ed25519) to minimize this cost.","breadcrumbs":"Atomic Data Extended » Authentication » Per-Request Signing","id":"100","title":"Per-Request Signing"},"101":{"body":"All of the following headers are required, if you need authentication. x-atomic-public-key: The base64 public key (Ed25519) of the Agent sending the request x-atomic-signature: A base64 signature of the following string: {subject} {timestamp} x-atomic-timestamp: The current time (when sending the request) as milliseconds since unix epoch x-atomic-agent: The subject URL of the Agent sending the request.","breadcrumbs":"Atomic Data Extended » Authentication » HTTP Headers","id":"101","title":"HTTP Headers"},"102":{"body":"Here's an example (js) client side implementation with comments: // The Private Key of the agent is used for signing\n// https://atomicdata.dev/properties/privateKey\nconst privateKey = \"someBase64Key\";\nconst timestamp = Math.round(new Date().getTime());;\n// This is what you will need to sign.\n// The timestmap is to limit the harm of a man-in-the-middle attack.\n// The `subject` is the full HTTP url that is to be fetched.\nconst message = `${subject} ${timestamp}`;\n// Sign using Ed25519, see example implementation here: https://github.com/atomicdata-dev/atomic-data-browser/blob/30b2f8af59d25084de966301cb6bd1ed90c0eb78/lib/src/commit.ts#L176\nconst signed = await signToBase64(message, privateKey);\n// Set all of these headers\nconst headers = new Headers;\nheaders.set('x-atomic-public-key', await agent.getPublicKey());\nheaders.set('x-atomic-signature', signed);\nheaders.set('x-atomic-timestamp', timestamp.toString());\nheaders.set('x-atomic-agent', agent?.subject);\nconst response = await fetch(subject, {headers});","breadcrumbs":"Atomic Data Extended » Authentication » Sending a request","id":"102","title":"Sending a request"},"103":{"body":"If none of the x-atomic HTTP headers are present, the server assigns the PublicAgent to the request. This Agent represents any guest who is not signed in. If some (but not all) of the x-atomic headers are present, the server will return with a 500. The server must check if the validUntil has not yet passed. The server must check whether the public key matches the one from the Agent. The server must check if the signature is valid. The server should check if the request resource can be accessed by the Agent using hierarchy (e.g. check read right in the resource or its parents).","breadcrumbs":"Atomic Data Extended » Authentication » Verifying an Authentication","id":"103","title":"Verifying an Authentication"},"104":{"body":"Atomic Data uses Hierarchies to describe who gets to access some resource, and who can edit it.","breadcrumbs":"Atomic Data Extended » Authentication » Hierarchies for authorization","id":"104","title":"Hierarchies for authorization"},"105":{"body":"Since we need the Private Key to sign Commits and requests, the client should have this available. This means the client software as well as the user should deal with key management, and that can be a security risk in some contexts (such as a web browser). See issue #49 . When using the Agent's subject to authenticate somewehere, the authorizer must be able to check what the public key of the agent is. This means the agent must be publicly resolvable. This is one of the reasons we should work towards a server-independent identifier, probably as base64 string that contains the public key (and, optionally, also the https identifier). See issue #59 on DIDs . We'll probably also introduce some form of token-based-authentication created server side in the future. See #87 Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Authentication » Limitations / considerations","id":"105","title":"Limitations / considerations"},"106":{"body":"( Discussion ) At some point on working on something in a web application, you're pretty likely to share that, often not with the entire world. In order to make this process of inviting others as simple as possible, we've come up with an Invitation standard.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Invitations & Tokens","id":"106","title":"Invitations & Tokens"},"107":{"body":"Edit without registration . Be able to edit or view things without being required to complete a registration process. Share with a single URL . A single URL should contain all the information needed. (Un)limited URL usage . A URL might be re-usable, or maybe not.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Design goals","id":"107","title":"Design goals"},"108":{"body":"The Owner or a resource creates an Invite . This Invite points to a target Resource, provides read rights by default but can additionally add write rights, contains a bunch of usagesLeft. The Guest opens the Invite URL. This returns the Invite resource, which provides the client with the information needed to do the next request which adds the actual rights. The browser client app might generate a set of keys, or use an existing one. It sends the Agent URL to the Invite in a query param. The server will respond with a Redirect resource, which links to the newly granted target resource. The Guest will now be able to access the Resource. Try it on https://atomicdata.dev/invites/1","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Flow","id":"108","title":"Flow"},"109":{"body":"The one creating the Invite has to take security in consideration. Some URLs can be easily guessed! When implementing Invitations, make sure to use a good amount of randomness when creating the Subject. Make sure that the invite is not publicly discoverable (e.g. through a Collection), this can happen if you set the parent of the invite to a public resource. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Invitations and sharing » Limitations and gotcha's","id":"109","title":"Limitations and gotcha's"},"11":{"body":"","breadcrumbs":"Atomic Data Overview » Motivation » Motivation: Why Atomic Data?","id":"11","title":"Motivation: Why Atomic Data?"},"110":{"body":"Disclaimer: Work in progress, prone to change. Atomic Commits is a specification for communicating state changes (events / transactions / patches / deltas / mutations) of Atomic Data . It is the part of Atomic Data that is concerned with writing, editing, removing and updating information.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Atomic Commits","id":"110","title":"Atomic Commits"},"111":{"body":"Event sourced : Store and standardize changes , as well as the current state. This enables versioning, history playback, undo, audit logs, and more. Traceable origin : Every change should be traceable to an actor and a point in time. Verifiable : Have cryptographic proof for every change. Know when , and what was changed by whom . Identifiable : A single commit has an identifier - it is a resource. Decentralized : Commits can be shared in P2P networks from device to device, whilst maintaining verifiability. Extensible : The methods inside a commit are not fixed. Use-case specific methods can be added by anyone. Streamable : The commits could be used in streaming context. Familiar : Introduces as little new stuff as possible (no new formats or language to learn) Pub/Sub : Subscribe to changes and get notified on changes. ACID-compliant : An Atomic commit will only occur if it results in a valid state. Atomic : All the Atomic Data design goals also apply here.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Design goals","id":"111","title":"Design goals"},"112":{"body":"Although it's a good idea to keep data at the source as much as possible, we'll often need to synchronize two systems. For example when data has to be queried or indexed differently than its source can support. Doing this synchronization can be very difficult, since most of our software is designed to only maintain and share the current state of a system. I noticed this mainly when working on OpenBesluitvorming.nl - an open data project where we aimed to fetch and standardize meeting data (votes, meeting minutes, documents) from 150+ local governments in the Netherlands. We wrote software that fetched data from various systems (who all had different models, serialization formats and APIs), transformed this data to a single standard and share it through an API and a fulltext search endpoint. One of the hard parts was keeping our data in sync with the sources. How could we now if something was changed upstream? We queried all these systems every night for all meetings from the next and previous month , and made deep comparisons to our own data. This approach has a couple of issues: It costs a lot of resources, both for us and for the data suppliers. It's not real-time - we can only run this once every 24 ours (because of how costly it is). It's very prone to errors. We've had issues during all phases of Extraction, Transformation and Loading (ETL) processing. It causes privacy issues. When some data at the source is removed (because it contained faulty or privacy sensitive data), how do we learn about that? Persisting and sharing state changes could solve these issues. In order for this to work, we need to standardize this for all data suppliers. We need a specification that is easy to understand for most developers. Keeping track of where data comes from is essential to knowing whether you can trust it - whether you consider it to be true. When you want to persist data, that quickly becomes bothersome. Atomic Data and Atomic Commits aim to make this easier by using cryptography for ensuring data comes from some particular source, and is therefore trustworthy. If you want to know how Atomic Commits differ from other specs, see the compare section Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Motivation","id":"112","title":"Motivation"},"113":{"body":"","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Atomic Commits: Concepts","id":"113","title":"Atomic Commits: Concepts"},"114":{"body":"url: https://atomicdata.dev/classes/Commit A Commit is a Resource that describes how a Resource must be updated. It can be used for auditing, versioning and feeds. It is cryptographically signed by an Agent . The required fields are: subject - The thing being changed. A Resource Subject URL (HTTP identifier) that the Commit is changing about. A Commit Subject must not contain query parameters, as these are reserved for dynamic resources. signer - Who's making the change. The Atomic URL of the Author's profile - which in turn must contain a publicKey. signature - Cryptographic proof of the change. A hash of the JSON-AD serialized Commit (without the signature field), signed by the Agent's private-key. This proves that the author is indeed the one who created this exact commit. The signature of the Commit is also used as the identifier of the commit. created-at - When the change was made. A UNIX timestamp number of when the commit was created. The optional method fields describe how the data must be changed: destroy - If true, the existing Resource will be removed. remove - an array of Properties that need to be removed (including their values). set - a Nested Resource which contains all the new or edited fields. push - a Nested Resource which contains all the fields that are appended to. This means adding items to a new or existing ResourceArray. These commands are executed in the order above. This means that you can set destroy to true and include set, which empties the existing resource and sets new values.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Commit","id":"114","title":"Commit"},"115":{"body":"Since Commits contains cryptographic proof of authorship, they can be accepted at a public endpoint. There is no need for authentication. A commit should be sent (using an HTTPS POST request) to a /commmit endpoint of an Atomic Server. The server then checks the signature and the author rights, and responds with a 2xx status code if it succeeded, or an 5xx error if something went wrong. The error will be a JSON object.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Posting commits using HTTP","id":"115","title":"Posting commits using HTTP"},"116":{"body":"Let's look at an example Commit: { \"@id\": \"https://atomicdata.dev/commits/3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==\", \"https://atomicdata.dev/properties/createdAt\": 1611489929370, \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Commit\" ], \"https://atomicdata.dev/properties/set\": { \"https://atomicdata.dev/properties/shortname\": \"1611489928\" }, \"https://atomicdata.dev/properties/signature\": \"3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==\", \"https://atomicdata.dev/properties/signer\": \"https://surfy.ddns.net/agents/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=\", \"https://atomicdata.dev/properties/previousCommit\": \"https://surfy.ddns.net/commits/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=\", \"https://atomicdata.dev/properties/subject\": \"https://atomicdata.dev/test\"\n} This Commit can be sent to any Atomic Server. This server, in turn, should verify the signature and the author's rights before the server applies the Commit.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Serialization with JSON-AD","id":"116","title":"Serialization with JSON-AD"},"117":{"body":"The signature is a base64 encoded Ed25519 signature of the deterministically serialized Commit. Calculating the signature is a delicate process that should be followed to the letter - even a single character in the wrong place will result in an incorrect signature, which makes the Commit invalid. The first step is serializing the commit deterministically . This means that the process will always end in the exact same string. Serialize the Commit as JSON-AD. Do not serialize the signature field. Do not include empty objects or arrays. If destroy is false, do not include it. All keys are sorted alphabetically - both in the root object, as in any nested objects. The JSON-AD is minified: no newlines, no spaces. This will result in a string. The next step is to sign this string using the Ed25519 private key from the Author. This signature is a byte array, which should be encoded in base64 for serialization. Make sure that the Author's URL resolves to a Resource that contains the linked public key. Congratulations, you've just created a valid Commit! Here are currently working implementations of this process, including serialization and signing (links are permalinks). in Rust (atomic-lib) . in Typescript / Javascript (atomic-data-browser) . If you want validate your implementation, check out the tests for these two projects.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Calculating the signature","id":"117","title":"Calculating the signature"},"118":{"body":"If you're on the receiving end of a Commit (e.g. if you're writing a server or a client who has to parse Commits), you will apply the Commit to your Store. If you have to persist the Commit, you must perform all of the checks. If you're writing a client, and you trust the source of the Commit, you can probably skip the validation steps. Here's how you apply a Commit: Check if the Subject URL is valid Validate the signature. This means serialize the Commit deterministically (see above), check the Agent's publickey (you might need to fetch this one), verify if the signature matches. Check if the timestamp matches is OK. I think an acceptable window is 10 seconds. If the Commit is for an existing resource, get it. Validate the Rights of the one making the Commit. Check if the previousCommit of the Commit matches with the previousCommit of the Resource. Iterate over the set fields. Overwrite existing, or add the new Values. Make sure the Datatypes match with the respective Properties. Iterate over the remove fields. Remove existing properties. If the Resource has one or more classes, check if the required Properties are there. You might want to perform some custom validations now (e.g. if you accept an Invite, you should make sure that the one creating the Invite has the correct rights to actually make it!) Store the created Commit as a Resource, and store the modified Resource!","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Applying the Commit","id":"118","title":"Applying the Commit"},"119":{"body":"Commits adjust only one Resource at a time , which means that you cannot change multiple in one commit. ( issue ) The one creating the Commit will need to sign it , which may make clients that write data more complicated than you'd like. You can also let Servers write Commits, but this makes them less verifiable / decentralized. Commits require signatures, which means key management . Doing this securely is no trivial matter. The signatures require JSON-AD serialization If your implementation persists all Commits, you might need to store a lot of data . Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Concepts » Limitations","id":"119","title":"Limitations"},"12":{"body":"The world wide web was designed by Tim Berners-Lee to be a decentralized network of servers that help people share information. As I'm writing this, it is exactly 30 years ago that the first website has launched. Unfortunately, the web today is not the decentralized network it was supposed to be. A handful of large tech companies are in control of how the internet is evolving, and where and how our data is being stored. The various services that companies like Google and Microsoft offer (often for free) integrate really well with their other services, but are mostly designed to lock you in . Vendor lock-in means that it is often difficult to take your information from one app to another. This limits innovation, and limits users to decide how they want to interact with their data. Companies often have incentives that are not fully aligned with what users want. For example, Facebook sorts your newsfeed not to make you satisfied, but to make you spend as much time looking at ads. They don't want you to be able to control your own newsfeed. Even companies like Apple, that don't have an ad-revenue model, still have a reason to (and very much do) lock you in. To make things even worse, even open-source projects made by volunteers often don't work well together. That's not because of bad intentions, that's because it is hard to make things interoperable. If we want to change this, we need open tech that works really well together. And if we want that, we need to standardize . The existing standards are well-suited for documents and webpages, but not for structured personal data. If we want to have that, we need to standardize the read-write web , which includes standardizing how items are changed, how their types are checked, how we query lists, and more. I want all people to have a (virtual) private server that contains their own data, that they control. This Personal Data Store could very well be an old smartphone with a broken screen that is always on, running next to your router. Atomic Data is designed to be a standard that achieves this. But we need more than a standard to get adoption - we need implementations. That's why I've been working on a server, various libraries, a GUI and more - all MIT licensed. If Atomic Data will be successful, there will likely be other, better implementations.","breadcrumbs":"Atomic Data Overview » Motivation » Give people more control over their data","id":"12","title":"Give people more control over their data"},"120":{"body":"Let's compare the Atomic Commit approach with some existing protocols for communicating state changes / patches / mutations / deltas in linked data, JSON and text files. First, I'll briefly discuss the existing examples ( open a PR / issue if we're missing something!). After that, we'll discuss how Atomic Data differs from the existing ones.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Atomic Commits compared to other (RDF) delta models","id":"120","title":"Atomic Commits compared to other (RDF) delta models"},"121":{"body":"This might be an odd one in this list, but it is an interesting one nonetheless. Git is an incredibly popular version control system that is used by most software developers to manage their code. It's a decentralized concept which allows multiple computers to share a log of commits , which together represent a folder with its files and its history. It uses hashing to represent (parts of) data (which keeps the .git folder compact through deduplication), and uses cryptographic keys to sign commits and verify authorship. It is designed to work in the paradigm of text files, newlines and folders. Since most data can be represented as text files in a folder, Git is very flexible. This is partly because people are familiar with Git, but also because it has a great ecosystem - platforms such as Github provide a clean UI, cloud storage, issue tracking, authorization, authentication and more for free , as long as you use Git to manage your versions. However, Git doesn't work great for structured data - especially when it changes a lot. Git, on its own, does not perform any validations on integrity of data. Git also does not adhere to some standardized serialization format for storing commits, which makes sense, because it was designed as a tool to solve a problem, and not as some standard that is to be used in various other systems. Also, git is kind of a heavyweight abstraction for many applications. It is designed for collaborating on open source projects, which means dealing with decentralized data storage and merge conflicts - things that might not be required in other kinds of scenarios.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Git","id":"121","title":"Git"},"122":{"body":"Let's move on to specifications that mutate RDF specifically:","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » RDF mutation systems","id":"122","title":"RDF mutation systems"},"123":{"body":"N3 Patch is part of the Solid spec , since december 2021. It uses the N3 serialization format to describe changes to RDF documents. @prefix solid: <> solid:patches ; solid:where { ?a . }; solid:inserts { ?a . }; solid:deletes { ?a . }.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » .n3 Patch","id":"123","title":".n3 Patch"},"124":{"body":"https://afs.github.io/rdf-delta/ Describes changes (RDF Patches) in a specialized turtle-like serialization format. TX .\nPA \"rdf\" \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" .\nPA \"owl\" \"http://www.w3.org/2002/07/owl#\" .\nPA \"rdfs\" \"http://www.w3.org/2000/01/rdf-schema#\" .\nA .\nA .\nA \"SubClass\" .\nTC . Similar to Atomic Commits, these Delta's should have identifiers (URLs), which are denoted in a header.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » RDF-Delta","id":"124","title":"RDF-Delta"},"125":{"body":"http://www.tara.tcd.ie/handle/2262/91407 Spec for classifying and representing state changes between two RDF resources. I wasn't able to find a serialization or an implementation for this.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Delta-LD","id":"125","title":"Delta-LD"},"126":{"body":"https://www.igi-global.com/article/patchr/135561 An ontology for RDF change requests . Looks very interesting, but I'm not able to find any implementations. prefix : .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix pat: .\n@prefix guo: .\n@prefix prov: .\n@prefix xsd: .\n@prefix dbp: .\n@prefix dbo: . :Patch_15 a pat:Patch ; pat:appliesTo ; pat:status pat:Open ; pat:update [ a guo:UpdateInstruction ; guo:target_graph ; guo:target_subject dbp:Oregon ; guo:delete [dbo:language dbp:De_jure ] ; guo:insert [dbo:language dbp:English_language ] ] ; prov:wasGeneratedBy [a prov:Activity ; pat:confidence \"0.5\"^^xsd:decimal ; prov:wasAssociatedWith :WhoKnows ; prov:actedOnBehalfOf :WhoKnows#Player_25 ; prov:performedAt \"...\"^^xsd:dateTime ] .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » PatchR","id":"126","title":"PatchR"},"127":{"body":"https://www.w3.org/TR/ldpatch/ This offers quite a few features besides adding and deleting triples, such as updating lists. It's a unique serialization format, inspired by turtle. Some implementations exists, such as one in ruby which is PATCH /timbl HTTP/1.1\nHost: example.org\nContent-Length: 478\nContent-Type: text/ldpatch\nIf-Match: \"abc123\" @prefix rdf: .\n@prefix schema: .\n@prefix profile: .\n@prefix ex: . Delete { <#> profile:first_name \"Tim\" } .\nAdd { <#> profile:first_name \"Timothy\" ; profile:image .\n} . Bind ?workLocation <#> / schema:workLocation .\nCut ?workLocation . UpdateList <#> ex:preferredLanguages 1..2 ( \"fr-CH\" ) . Bind ?event <#> / schema:performerIn [ / schema:url = ] .\nAdd { ?event rdf:type schema:Event } . Bind ?ted / ^schema:url ! .\nDelete { ?ted schema:startDate \"2009-02-04\" } .\nAdd { ?ted schema:location [ schema:name \"Long Beach, California\" ; schema:geo [ schema:latitude \"33.7817\" ; schema:longitude \"-118.2054\" ] ]\n} .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » LD-Patch","id":"127","title":"LD-Patch"},"128":{"body":"https://github.com/ontola/linked-delta An N-Quads serialized delta format. Methods are URLs, which means they are extensible. Does not specify how to bundle lines. Used in production of a web app that we're working on ( Argu.co ). Designed with simplicity (no new serialization format, simple to parse) and performance in mind by my colleague Thom van Kalkeren. Initial state: \"Old value 🙈\" . Linked-Delta: \"New value 🐵\" . New state: \"New value 🐵\" .","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Linked-Delta","id":"128","title":"Linked-Delta"},"129":{"body":"https://github.com/digibib/ls.ext/wiki/JSON-LD-PATCH A JSON denoted patch notation for RDF. Seems similar to the RDF/JSON serialization format. Uses string literals as operators / methods. Conceptually perhaps most similar to linked-delta. Has a JS implementation . [ { \"op\": \"add\", \"s\": \"http://example.org/my/resource\", \"p\": \"http://example.org/ontology#title\", \"o\": { \"value\": \"New Title\", \"type\": \"http://www.w3.org/2001/XMLSchema#string\" } }\n]","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » JSON-LD-PATCH","id":"129","title":"JSON-LD-PATCH"},"13":{"body":"Linked data (RDF / the semantic web) enables us to use the web as a large, decentralized graph database. Using links everywhere in data has amazing merits: links remove ambiguity, they enable exploration, they enable connected datasets. But the existing specs are too difficult to use, and that is harming adoption. At my company Ontola , we've been working with linked data quite intensely for the last couple of years. We went all-in on RDF, and challenged ourselves to create software that communicates exclusively using it. That has been an inspiring, but at times also a frustrating journey. While building our e-democracy platform Argu.co , we had to solve many RDF related problems . How to properly model data in RDF? How to deal with sequences ? How to communicate state changes? Which serialization format to use? How to convert RDF to HTML, and build a front-end ? We tackled some of these problems by having a tight grip on the data that we create (e.g. we know the type of data, because we control the resources), and another part is creating new protocols, formats, tools, and libraries. But it took a long time, and it was hard. It's been almost 15 years since the introduction of linked data , and its adoption has been slow. We know that some of its merits are undeniable, and we truly want the semantic web to succeed. I believe the lack of growth partially has to do with a lack of tooling, but also with some problems that lie in the RDF data model. Atomic Data aims to take the best parts from RDF, and learn from the past to make a more developer-friendly, performant and reliable data model to achieve a truly linked web. Read more about how Atomic Data relates to RDF, and why these changes have been made .","breadcrumbs":"Atomic Data Overview » Motivation » Linked data is awesome, but it is too difficult for developers in its current form","id":"13","title":"Linked data is awesome, but it is too difficult for developers in its current form"},"130":{"body":"https://www.w3.org/TR/sparql11-update/ SPARQL queries that change data. PREFIX dc: \nINSERT DATA\n{ dc:title \"A new book\" ; dc:creator \"A.N.Other\" .\n} Allows for very powerful queries, combined with updates. E.g. rename all persons named Bill to William: PREFIX foaf: WITH \nDELETE { ?person foaf:givenName 'Bill' }\nINSERT { ?person foaf:givenName 'William' }\nWHERE { ?person foaf:givenName 'Bill' } SPARQL Update is the most powerful of the formats, but also perhaps the most difficult to implement and understand.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » SPARQL UPDATE","id":"130","title":"SPARQL UPDATE"},"131":{"body":"http://jsonpatch.com/ A simple way to edit JSON objects: The original document { \"baz\": \"qux\", \"foo\": \"bar\"\n} The patch [ { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" }, { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] }, { \"op\": \"remove\", \"path\": \"/foo\" }\n] The result { \"baz\": \"boo\", \"hello\": [\"world\"]\n} It uses the JSON-Pointer spec for denoting paths. It has quite a bunch of implementations, in various languages.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » JSON-PATCH","id":"131","title":"JSON-PATCH"},"132":{"body":"Let's talk about the differences between the concepts above and Atomic Commits. For starters, Atomic Commits can only work with a specific subset of RDF, namely Atomic Data. RDF allows for blank nodes, does not have subject-predicate uniqueness and offers named graphs - which all make it hard to unambiguously select a single value. Most of the alternative patch / delta models described above had to support these concepts. Atomic Data is more strict and constrained than RDF. It does not support named graphs and blank nodes. This enables a simpler approach to describing state changes, but it also means that Atomic Commits will not work with most existing RDF data. Secondly, individual Atomic Commits are tightly coupled to specific Resources. A single Commit cannot change multiple resources - and most of the models discussed above to enable this. This is a big constraint, and it does not allow for things like compact migrations in a database. However, this resource-bound constraint opens up some interesting possibilities: it becomes easier to combine it with authorization (i.e. check if the person has the correct rights to edit some resource): simply check if the Author has the rights to edit the Subject. it makes it easier to find all Commits for a Resource, which is useful when constructing a history / audit log / previous version. Thirdly, Atomic Commits don't introduce a new serialization format. It's just JSON. This means that it will feel familiar for most developers, and will be supported by many existing environments. Finally, Atomic Commits use cryptography (hashing) to determine authenticity of commits. This concept is borrowed from git commits, which also uses signatures to prove authorship. As is the case with git, this also allows for verifiable P2P sharing of changes. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Commits (writing data) » Compared to » Atomic Commits - how it's different and why it exists","id":"132","title":"Atomic Commits - how it's different and why it exists"},"133":{"body":"WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion. They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games. These have been implemented in atomic-server and atomic-data-browser (powered by @tomic/lib).","breadcrumbs":"Atomic Data Extended » WebSockets » WebSockets in Atomic Data","id":"133","title":"WebSockets in Atomic Data"},"134":{"body":"Send an HTTP GET request to the /ws endpoint of an atomic-server. The Server should update that request to a secure WebSocket (wss) connection. Use x-atomic authentication headers (read more here) and use ws as a subject when signing. The WebSocket-Protocol is AtomicData.","breadcrumbs":"Atomic Data Extended » WebSockets » Initializing a WebSocket connection","id":"134","title":"Initializing a WebSocket connection"},"135":{"body":"SUBSCRIBE ${subject} tells the Server that you'd like to receive Commits about this Subject. UNSUBSCRIBE ${subject} tells the Server that you'd like to stop receiving Commits about this Subject. GET ${subject} fetch an individual resource. AUTHENTICATE ${authenticationResource} to set a user session for this websocket and allow authorized messages. The authenticationResource is a JSON-AD resource containing the signature and more, see Authentication .","breadcrumbs":"Atomic Data Extended » WebSockets » Client to server messages","id":"135","title":"Client to server messages"},"136":{"body":"COMMIT ${CommitBody} an entire Commit for a resource that you're subscribed to. RESOURCE ${Resource} a JSON-AD Resource as a response to a GET message. If there is something wrong with this request (e.g. 404), return a Error Resource with the requested subject, similar to how the HTTP protocol server does this.` ERROR ${ErrorBody} an Error resource is sent whenever something goes wrong. The ErrorBody is a plaintext, typically English description of what went wrong.","breadcrumbs":"Atomic Data Extended » WebSockets » Server to client messages","id":"136","title":"Server to client messages"},"137":{"body":"For many messages, there is no response to give if things are processed correctly. If a message is unknown or there is a different problem, return an ERROR.","breadcrumbs":"Atomic Data Extended » WebSockets » Considerations","id":"137","title":"Considerations"},"138":{"body":"Example client implementation in Typescript (@tomic/lib). Example server implementation in Rust using Actix-Web Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » WebSockets » Example implementations","id":"138","title":"Example implementations"},"139":{"body":"URL: https://atomicdata.dev/classes/Endpoint An Endpoint is a resource that accepts parameters in order to generate a response. You can think of it like a function in a programming language, or a API endpoint in an OpenAPI spec. It can be used to perform calculations on the server side, such as filtering data, sorting data, selecting a page in a collection, or performing some calculation. Because Endpoints are resources, they can be defined and read programmatically. This means that it's possible to render Endpoints as forms. The most important property in an Endpoint is parameters , which is the list of Properties that can be filled in. You can find a list of Endpoints supported by Atomic-Server on atomicdata.dev/endpoints . Endpoint Resources are dynamic , because their properties could be calculated server-side. When a Property tends to be calculated server-side, they will have a isDynamic property set to true, which tells the client that it's probably useless to try to overwrite it.","breadcrumbs":"Atomic Data Extended » Endpoints » Atomic Endpoints","id":"139","title":"Atomic Endpoints"},"14":{"body":"Standards for data sharing are great, but creating one can be very costly endeavor. Committees with stakeholders write endless documents describing the intricacies of domain models, which fields are allowed and which are required, and how data is serialized. In virtually all cases, these documents are only written for humans - and not for computers. Machine readable ways to describe data models like UML diagrams and OpenAPI specifications (also known as Swagger) help to have machine-readable descriptions, but these are still not really used by machines - they are mostly only used to generate visualizations for humans . This ultimately means that implementations of a standard have to be manually checked for compliance, which often results in small (yet important) differences that severely limit interoperability. These implementations will also often want to extend the original definitions, but they are almost always unable to describe what they have extended. Standardizing with Atomic Data solves these issues. Atomic Data takes the semantic value of ontologies, and merges it with a machine-readable schemas . This makes standards created using Atomic Data easy to read for humans, and easy to validate for computers (which guarantees interoperability). Atomic Data has a highly standardized protocol for fetching data, which means that Atomic Schemas can link to each other, and re-use existing Properties . For developers (the people who need to actually implement and use the data that has been standardized), this means their job becomes easier. Because Properties have URLs, it becomes trivial to add new Properties that were initially not in the main specification, without sacrificing type safety and validation abilities.","breadcrumbs":"Atomic Data Overview » Motivation » Make standardization easier and cheaper","id":"14","title":"Make standardization easier and cheaper"},"140":{"body":"A Server can also send one or more partial Resources for an Endpoint to the client, which means that some properties may be missing. When this is the case, the Resource will have an incomplete property set to true. This tells the client that it has to individually fetch the resource from the server to get the full body. One scenario where this happens, is when fetching Collections that have other Collections as members. If we would not have incomplete resources, the server would have to perform expensive computations even if the data is not needed by the client.","breadcrumbs":"Atomic Data Extended » Endpoints » Incomplete resources","id":"140","title":"Incomplete resources"},"141":{"body":"Familiar API : should look like something that most developers already know Auto-generate forms : a front-end app should present Endpoints as forms that non-developers can interact with ( Discussion ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Endpoints » Design Goals","id":"141","title":"Design Goals"},"142":{"body":"URL: https://atomicdata.dev/classes/Collection Sooner or later, developers will have to deal with (long) lists of items. For example, a set of blog posts, activities or users. These lists often need to be paginated, sorted, and filtered. For dealing with these problems, we have Atomic Collections. An Atomic Collection is a Resource that links to a set of resources. Note that Collections are designed to be dynamic resources , often (partially) generated at runtime. Collections are Endpoints , which means that part of their properties are calculated server-side. Collections have various filters (subject, property, value) that can help to build a useful query. members : How many items (members) are visible per page. property : Filter results by a property URL. value : Filter results by a Value. Combined with property, you can create powerful queries. sort_by : A property URL by which to sort. Defaults to the subject. sort_desc : Sort descending, instead of ascending. Defaults to false. current_page : The number of the current page. page_size : How many items (members) are visible per page. total_pages : How many pages there are for the current collection. total_members : How many items (members) are visible per page.","breadcrumbs":"Atomic Data Extended » Collections, filtering, sorting » Atomic Collections","id":"142","title":"Atomic Collections"},"143":{"body":"Since Atomic Collections are dynamic resources, you can pass query parameters to it. The keys of the query params match the shortnames of the properties of the Collection. For example, let's take the Properties Collection on atomicdata.dev . We could limit the page size to 2 by adding the page_size=2 query parameter: https://atomicdata.dev/collections/property?page_size=2. Or we could sort the list by the description property: https://atomicdata.dev/collections/property?sort_by=https%3A%2F%2Fatomicdata.dev%2Fproperties%2Fdescription. Note that URLs need to be URL encoded. These properties of Collections can either be set by passing query parameters, or they can be persisted by the Collection creator / editor. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Collections, filtering, sorting » Persisting Properties vs Query Parameters","id":"143","title":"Persisting Properties vs Query Parameters"},"144":{"body":"The Atomic Data model (Atomic Schema) is great for describing structured data, but for many types of existing data, we already have a different way to represent them: files. In Atomic Data, files have two URLs. One describes the file and its metadata, and the other is a URL that downloads the file. This allows us to present a better view when a user wants to take a look at some file, and learn about its context before downloading it.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Uploading, downloading and describing files with Atomic Data","id":"144","title":"Uploading, downloading and describing files with Atomic Data"},"145":{"body":"url: https://atomicdata.dev/classes/File Files always have a downloadURL. They often also have a filename, a filesize, a checksum, a mimetype, and an internal ID (more on that later). They also often have a parent , which can be used to set permissions / rights.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » The File class","id":"145","title":"The File class"},"146":{"body":"In atomic-server, a /upload endpoint exists for uploading a file. Decide where you want to add the file in the hierarchy of your server. You can add a file to any resource - your file will refer to this resource as its parent . Make sure you have write rights on this parent. Use that parent to add a query parameter to the server's /upload endpoint, e.g. /upload?parent=https%3A%2F%2Fatomicdata.dev%2Ffiles. Send an HTTP POST request to the server's /upload endpoint containing multi-part-form-data . You can upload multiple files in one request. Add authentication headers, and sign the HTTP request with the The server will check your authentication headers, your permissions, and will persist your uploaded file(s). It will now create File resources. The server will reply with an array of created Atomic Data Files","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Uploading a file","id":"146","title":"Uploading a file"},"147":{"body":"Simply send an HTTP GET request to the File's download-url (make sure to authenticate this request). Discussion on specification Discussion on Rust server implementation Discussion on Typescript client implementation Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Uploading and downloading files » Downloading a file","id":"147","title":"Downloading a file"},"148":{"body":"Now that we're familiar with the basics of Atomic Data Core and its Schema, it's time to create some Atomic Data! We call the process of turning data into Atomic Data Atomizing . During this process, we upgrade the data quality . Our information becomes more valuable. Let's summarize what the advantages are: Your data becomes available on the web (publicly, if you want it to) It can now link to other data , an become part of a bigger web of data It becomes strictly typed , so developers can easily and safely re-use it in their software It becomes easier to understand , because people can look at the Properties and see what they mean It can be easily converted into many formats (JSON, Turtle, CSV, XML, more...)","breadcrumbs":"Atomizing » Atomizing: How to create and publish Atomic Data","id":"148","title":"Atomizing: How to create and publish Atomic Data"},"149":{"body":"In general, there are three ways to create Atomic Data: Using the Atomic-Server app + GUI (easy, only for direct user input) Create an importable JSON-AD file (medium, useful if you want to convert existing data) Make your existing service / app host and serialize Atomic Data (hard, if you want to make your entire app be part of the Atomic Web!) Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Three ways to Atomize data","id":"149","title":"Three ways to Atomize data"},"15":{"body":"Every time a developer builds an application, they have to figure a lot of things out. How to design the API, how to implement forms, how to deal with authentication, authorization, versioning, search... A lot of time is essentially wasted on solving these issues time and time again. By having a more complete, strict standard, Atomic Data aims to decrease this burden. Atomic Schema enables developers to easily share their datamodels, and re-use those from others. Atomic Commits helps developers to deal with versioning, history, undo and audit logs. Atomic Hierarchies provides an intuitive model for authorization and access control. And finally, the existing open source Atomic Data software (such as a server + database, a browser GUI, various libraries and React templates) help developers to have these features without having to do the heavy lifting themselves. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Motivation » Make it easier for developers to build feature-rich, interoperable apps","id":"15","title":"Make it easier for developers to build feature-rich, interoperable apps"},"150":{"body":"Here is everything you need to get started: Atomic-Server and its features Running Atomic-Server locally (optional) Creating an Agent Creating your first Atomic Data There's more!","breadcrumbs":"Atomizing » Using Atomic-Server » Creating Atomic Data using Atomic-Server","id":"150","title":"Creating Atomic Data using Atomic-Server"},"151":{"body":"Atomic-Server is the reference implementation of the Atomic Data Core + Extended specification. It was developed parallel to this specification, and it served as a testing ground for various ideas (some of which didn't work, and some of which ended up in the spec). Atomic-Server is a graph database server for storing and sharing typed linked data. It's free, open source (MIT license), and has a ton of features: ⚛️ Dynamic schema validation / type checking using Atomic Schema . Combines safety of structured data with the 🚀 Fast (1ms responses on my laptop) 🪶 Lightweight (15MB binary, no runtime dependencies) 💻 Runs everywhere (linux, windows, mac, arm) 🌐 Embedded server with support for HTTP / HTTPS / HTTP2.0 and Built-in LetsEncrypt handshake. 🎛️ Browser GUI included powered by atomic-data-browser . Features dynamic forms, tables, authentication, theming and more. 💾 Event-sourced versioning / history powered by Atomic Commits 🔄 Synchronization using websockets : communicates state changes with a client. Send a wss request to /ws to open a webscocket. 🧰 Many serialization options : to JSON, JSON-AD , and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). 🔎 Full-text search with fuzzy search and various operators, often <3ms responses. 📖 Pagination, sorting and filtering using Atomic Collections 🔐 Authorization (read / write permissions) and Hierarchical structures powered by Atomic Hierarchy 📲 Invite and sharing system with Atomic Invites 📂 File management : Upload, download and preview attachments. 🖥️ Desktop app : Easy desktop installation, with status bar icon, powered by tauri .","breadcrumbs":"Atomizing » Using Atomic-Server » Atomic-Server and its features","id":"151","title":"Atomic-Server and its features"},"152":{"body":"In this guide, we'll can simply use atomicdata.dev in our browser without installing anything. So you can skip this step and go to Creating your first Atomic Data . But if you want to, you can run Atomic-Server on your machine in a couple of ways: Using a desktop installer : download a desktop release from the releases page and install it using your desktop GUI. Using a binary : download a binary release from the releases page and open it using a terminal. Using Docker is probably the quickest: docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server. Using Cargo : cargo install atomic-server and then run atomic-server to start. Atomic-Server's README contains more (and up-to-date) information about how to use it! Open your server in your browser. By default, that's http://localhost:9883 . Fun fact: ⚛ is HTML entity code for the Atom icon: ⚛. The first screen should show you your Drive . You can think of this as your root folder. It is the resource hosted at the root URL, effectively being the home page of your server. There's an instruction on the screen about the /setup page. Click this, and you'll get a screen showing an Invite . Normally, you could Accept as new user, but since you're running on localhost, you won't be able to use the newly created Agent on non-local Atomic-Servers. Therefore, it may be best to create an Agent on some other running server, such as the demo Invite on AtomicData.dev . And after that, copy the Secret from the User settings panel from AtomicData.dev, go back to your localhost version, and press sign in. Paste the Secret, and voila! You're signed in. Now, again go to /setup. This time, you can Accept as {user}. After clicking, your Agent has gotten write rights for the Drive! You can verify this by hovering over the description field, clicking the edit icon, and making a few changes. You can also press the menu button (three dots, top left) and press Data view to see your agent after the write field. Note that you can now edit every field. You can also fetch your data now as various formats. Try checking out the other features in the menu bar, and check out the collections. Again, check out the README for more information and guides! Now, let's create some data.","breadcrumbs":"Atomizing » Using Atomic-Server » Running Atomic-Server locally (optional)","id":"152","title":"Running Atomic-Server locally (optional)"},"153":{"body":"Before you can create new things on AtomicData.dev, you'll need an Agent . This is your virtual User, which can create, sign and own things. Simply open the demo invite and press accept. And you're done!","breadcrumbs":"Atomizing » Using Atomic-Server » Creating an Agent","id":"153","title":"Creating an Agent"},"154":{"body":"Now let's create a Class . A Class represents an abstract concept, such as a BlogPost (which we'll do here). We can do this in a couple of ways: Press the + icon button on the left menu (only visible when logged in), and selecting Class Opening Class and pressing new class Going to the Classes Collection and pressing the plus icon The result is the same: we end up with a form in which we can fill in some details. Let's add a shortname (singular), and then a description. After that, we'll add the required properties. This form you're looking at is constructed by using the required and recommended Properties defined in Class. We can use these same fields to generate our BlogPost resource! Which fields would be required in a BlogPost? A name, and a description, probably. So click on the + icon under requires and search for these Properties to add them. Now, we can skip the recommended properties, and get right to saving our newly created BlogPost class. So, press save, and now look at what you created. Notice a couple of things: Your Class has its own URL. It has a parent, shown in the top of the screen. This has impact on the visibility and rights of your Resource. We'll get to that later in the documentation . Now, go to the navigation bar, which is by default at the bottom of the window. Use its context menu to open the Data View. This view gives you some more insight into your newly created data, and various ways in which you can serialize it.","breadcrumbs":"Atomizing » Using Atomic-Server » Creating your first Atomic Data","id":"154","title":"Creating your first Atomic Data"},"155":{"body":"This was just a very brief introduction to Atomic Server, and its features. There's quite a bit that we didn't dive in to, such as versioning, file uploads, the collaborative document editor and more... But by clicking around you're likely to discover these features for yourself. In the next page, we'll dive into how you can create an publish JSON-AD files. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Using Atomic-Server » There's more!","id":"155","title":"There's more!"},"156":{"body":"JSON-AD is the default serialization format of Atomic Data. It's just JSON, but with some extra requirements. Most notably, all keys are links to Atomic Properties . These Properties must be actually hosted somewhere on the web, so other people can visit them to read more about them. Ideally, in JSON-AD, each Resource has its own @id. This is the URL of the resource. This means that if someone visits that @id, they should get the resource they are requesting. That's great for people re-using your data, but as a data provider, implementing this can be a bit of a hassle. That's why there is a different way that allows you to create Atomic Data without manually hosting every resource .","breadcrumbs":"Atomizing » Creating a JSON-AD file » How to create and publish a JSON-AD file","id":"156","title":"How to create and publish a JSON-AD file"},"157":{"body":"In this section, we'll create a single JSON-AD file containing various resources. This file can then be published, shared and stored like any other. The goal of this preparation, is to ultimately import it somewhere else. We'll be importing it to Atomic-Server. Atomic-Server will create URLs for every single resource upon importing it. This way, we only deal with the JSON-AD and the data structure, and we let Atomic-Server take care of hosting the data. Let's create a BlogPost. We know the fields that we need: a name and some body. But we can't use these keys in Atomic Data, we should use URLs that point to Properties. We can either create new Properties (see the Atomic-Server tutorial), or we can use existing ones, for example by searching on AtomicData.dev/properties .","breadcrumbs":"Atomizing » Creating a JSON-AD file » Creating JSON-AD without hosting individual resources yourself","id":"157","title":"Creating JSON-AD without hosting individual resources yourself"},"158":{"body":"{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\",\n}","breadcrumbs":"Atomizing » Creating a JSON-AD file » Setting the first values","id":"158","title":"Setting the first values"},"159":{"body":"Classes help others understanding what a Resource's type is, such as BlogPost or Person. In Atomic Data, Resources can have multiple classes, so we should use an Array, like so: { \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n} Adding a Class helps people to understand the data, and it can provide guarantees to the data users about the shape of the data: they now know which fields are required or recommended . We can also use Classes to render Forms, which can be useful when the data should be edited later. For example, the BlogPost item","breadcrumbs":"Atomizing » Creating a JSON-AD file » Adding a Class","id":"159","title":"Adding a Class"},"16":{"body":"We have the ambition to make the internet more interoperable. We want Atomic Data to be a commonly used specification, enabling a vast amount of applications to work together and share information. This means we need a lot of people to understand and contribute to Atomic Data. In this document, discuss the strategic principles we use, the steps we took, and the path forward. This should help you understand how and where you may be able to contribute.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Strategy, history and roadmap for Atomic Data","id":"16","title":"Strategy, history and roadmap for Atomic Data"},"160":{"body":"Ontologies are groups of concepts that describe some domain. For example, we could have an Ontology for Blogs that links to a bunch of related Classes , such as BlogPost and Person. Or we could have a Recipy Ontology that describes Ingredients, Steps and more. At this moment, there are relatively few Classes created in Atomic Data. You can find most on atomicdata.dev/classes . So possibly the best way forward for you, is to define a Class using the Atomic Data Browser's tools for making resources.","breadcrumbs":"Atomizing » Creating a JSON-AD file » Using exsisting Ontologies, Classes and Ontologies","id":"160","title":"Using exsisting Ontologies, Classes and Ontologies"},"161":{"body":"If we want to have multiple items, we can simply use a JSON Array at the root, like so: [{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n},{ \"https://atomicdata.dev/properties/name\": \"Another blogpost\", \"https://atomicdata.dev/properties/description\": \"I'm writing so much my hands hurt.\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"],\n}]","breadcrumbs":"Atomizing » Creating a JSON-AD file » Multiple items","id":"161","title":"Multiple items"},"162":{"body":"When we want to publish Atomic Data, we also want someone else to be able to import it. An important thing to prevent, is data duplication . If you're importing a list of Blog posts, for example, you'd want to only import every article once . The way to preventing duplication, is by adding a localId. This localId is used by the importer to find out if it has already imported it before. So we, as data producers, need to make sure that our localId is unique and does not change ! We can use any type of string that we like, as long as it conforms to these requirements. Let's use a unique slug , a short name that is often used in URLs. { \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"my-first-blogpost\",\n}","breadcrumbs":"Atomizing » Creating a JSON-AD file » Preventing duplication with localId","id":"162","title":"Preventing duplication with localId"},"163":{"body":"Let's say we also want to describe the author of the BlogPost, and give them an e-mail, a profile picture and some biography. This means we need to create a new Resource for each Author, and again have to think about the properties relevant for Author. We'll also need to create a link from BlogPost to Author, and perhaps the other way around, too. Normally, when we link things in Atomic Data, we can only use full URLs. But, since we don't have URLs yet for our Resources, we'll need a different solution. Again, this is where we can use localId! We can simply refer to the localId, instead of some URL that does not exist yet. [{ \"https://atomicdata.dev/properties/name\": \"Writing my first blogpost\", \"https://atomicdata.dev/properties/description\": \"Hi! I'm a blogpost. I'm also machine readable!\", \"https://atomicdata.dev/properties/author\": \"jon\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"my-first-blogpost\",\n},{ \"https://atomicdata.dev/properties/name\": \"Another blogpost\", \"https://atomicdata.dev/properties/description\": \"I'm writing so much my hands hurt.\", \"https://atomicdata.dev/properties/author\": \"jon\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Article\"], \"https://atomicdata.dev/properties/localId\": \"another-blogpost\",\n},{ \"https://atomicdata.dev/properties/name\": \"Jon Author\", \"https://atomicdata.dev/properties/isA\": [\"https://atomicdata.dev/classes/Person\"], \"https://atomicdata.dev/properties/localId\": \"jon\",\n}]","breadcrumbs":"Atomizing » Creating a JSON-AD file » Describing relationships between resources using localId","id":"163","title":"Describing relationships between resources using localId"},"164":{"body":"currently under development Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Creating a JSON-AD file » Importing data using Atomic Sever","id":"164","title":"Importing data using Atomic Sever"},"165":{"body":"You don't have to use Atomic-Server and ditch your existing projects or apps, if you want to adhere to Atomic Data specs. As the Atomic Data spec is modular, you can start out simply and conform to more specs as needed: Map your JSON keys to new or existing Atomic Data properties Add @id fields to your resources, make sure these URLs resolve using HTTP Implement parts of the Extended spec There's a couple of levels you can go to, when adhering to the Atomic Data spec.","breadcrumbs":"Atomizing » Upgrade your existing project » Upgrade your existing application to serve Atomic Data","id":"165","title":"Upgrade your existing application to serve Atomic Data"},"166":{"body":"If you want to make your existing project compatible with Atomic Data, you probably don't have to get rid of your existing storage / DB implementation. The only thing that matters, is how you make the data accessible to others: the serialization . You can keep your existing software and logic, but simply change the last little part of your API. In short, this is what you'll have to do: Map all properties of resources to Atomic Properties. Either use existing ones , or create new ones . This means: take your JSON objects, and change things like name to https://atomicdata.dev/properties/name. That's it, you've done the most important step! Now your data is already more interoperable: Every field has a clear semantic meaning and datatype Your data can now be easily imported by Atomic Data systems","breadcrumbs":"Atomizing » Upgrade your existing project » Easy: map your JSON keys to Atomic Data Properties","id":"166","title":"Easy: map your JSON keys to Atomic Data Properties"},"167":{"body":"Make sure that when the user requests some URL, that you return that resource as a JSON-AD object (at the very least if the user requests it using an HTTP Accept: application/ad+json header). Your data can now be linked to by external data sources, it can become part of a web of data !","breadcrumbs":"Atomizing » Upgrade your existing project » Medium: add @id URLs that properly resolve","id":"167","title":"Medium: add @id URLs that properly resolve"},"168":{"body":"You can go all out, and implement Commits, Hierarchies, Authentication, Collections and more . I'd suggest starting with Commits , as these allow users to modify data whilst maintaining versioning and auditability. Check out the Atomic-Server source code to get inspired on how to do this.","breadcrumbs":"Atomizing » Upgrade your existing project » Hard: implement Atomic Data Extended protocols","id":"168","title":"Hard: implement Atomic Data Extended protocols"},"169":{"body":"If you need any help, join our Discord . Also, share your thoughts on creating Atomic Data in this issue on github . Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomizing » Upgrade your existing project » Reach out for help","id":"169","title":"Reach out for help"},"17":{"body":"Work on both specification and implementations (both client and server side) simultaneously to make sure all ideas are both easily explainable and properly implementable. Don't design a spec with a large committee over many months, only to learn that it has implementation issues later on. Create libraries whenever possible. Enable other developers to re-use the technology in their own stacks. Keep the code as modular as possible. Document everything . Not just your APIs - also your ideas, considerations and decisions. Do everything public . All code is open source, all issues are publicly visible. Allow outsiders to learn everything and start contributing. Make an all-in-one workspace app that stand on its own . Atomic Data may be an abstract, technical story, but we still need end-user friendly applications that solve actual problems if we want to get as much adoption as possible. Let realistic use cases guide API design . Don't fall victim to spending too much time for extremely rare edge-cases, while ignoring more common issues and wishes. Familiarity first . Make tools and specs that feel familiar, build libraries for popular frameworks, and stick to conventions whenever possible.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Strategy for adoption","id":"17","title":"Strategy for adoption"},"170":{"body":"Atomic data is designed to be easy to use in existing projects, and be interoperable with existing formats. This section will discuss how Atomic Data differs from or is similar to various data formats and paradigms, and how it can interoperate.","breadcrumbs":"Interoperability and comparisons » Interoperability: Relation to other technology","id":"170","title":"Interoperability: Relation to other technology"},"171":{"body":"Upgrade : How to make your existing (server-side) application serve Atomic Data. From easy, to hard.","breadcrumbs":"Interoperability and comparisons » Upgrade guide","id":"171","title":"Upgrade guide"},"172":{"body":"JSON : Atomic Data is designed to be easily serializable to clean, idiomatic JSON. However, if you want to turn JSON into Atomic Data, you'll have to make sure that all keys in the JSON object are URLs that link to Atomic Properties, and the data itself also has to be available at its Subject URL. RDF : Atomic Data is a strict subset of RDF, and can therefore be trivially serialized to all RDF formats (Turtle, N-triples, RDF/XML, JSON-LD, and others). The other way around is more difficult. Turning RDF into Atomic Data requires that all predicates are Atomic Properties, the values must match its properties datatype, the atoms must be available at the subject URL, and the subject-predicate combinations must be unique.","breadcrumbs":"Interoperability and comparisons » Data formats","id":"172","title":"Data formats"},"173":{"body":"Solid : A set of specifications that has many similarities with Atomic Data IPFS : Content-based addressing to prevent 404s and centralization","breadcrumbs":"Interoperability and comparisons » Protocols","id":"173","title":"Protocols"},"174":{"body":"SQL : How Atomic Data differs from and could interact with SQL databases Graph : How it differs from some labeled property graphs, such as Neo4j Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Database paradigms","id":"174","title":"Database paradigms"},"175":{"body":"RDF (the Resource Description Framework ) is a W3C specification from 1999 that describes the original data model for linked data. It is the forerunner of Atomic Data, and is therefore highly similar in its model. Both heavily rely on using URLs, and both have a fundamentally simple and uniform model for data statements. Both view the web as a single, connected graph database. Because of that, Atomic Data is also highly compatible with RDF - all Atomic Data is also valid RDF . Atomic Data can be thought of as a more constrained, type safe version of RDF . However, it does differ in some fundamental ways. Atomic calls the three parts of a Triple subject, property and value, instead of subject, predicate, object. Atomic does not support having multiple statements with the same , every combination must be unique. Atomic does not have literals, named nodes and blank nodes - these are all values, but with different datatypes. Atomic uses nested Resources and paths instead of blank nodes Atomic requires URL (not URI) values in its subjects and properties (predicates), which means that they should be resolvable. Properties must resolve to an Atomic Property, which describes its datatype. Atomic only allows those who control a resource's subject URL endpoint to edit the data. This means that you can't add triples about something that you don't control. Atomic has no separate datatype field, but it requires that Properties (the resources that are shown when you follow a predicate value) specify a datatype. However, it is allowed to serialize the datatype explicitly, of course. Atomic has no separate language field. Atomic has a native Event (state changes) model ( Atomic Commits ), which enables communication of state changes Atomic has a native Schema model ( Atomic Schema ), which helps developers to know what data types they can expect (string, integer, link, array) Atomic does not support Named Graphs. These should not be needed, because all statements should be retrievable by fetching the Subject of a resource. However, it is allowed to include other resources in a response.","breadcrumbs":"Interoperability and comparisons » RDF » How does Atomic Data relate to RDF?","id":"175","title":"How does Atomic Data relate to RDF?"},"176":{"body":"I have been working with RDF for quite some time now, and absolutely believe in some of the core premises of RDF. I started a company that specializes in Linked Data ( Ontola ), and we use it extensively in our products and services. Using URIs (and more-so URLs, which are URIs that can be fetched) for everything is a great idea, since it helps with interoperability and enables truly decentralized knowledge graphs. However, some of the characteristics of RDF make it hard to use, and have probably contributed to its relative lack of adoption.","breadcrumbs":"Interoperability and comparisons » RDF » Why these changes?","id":"176","title":"Why these changes?"},"177":{"body":"For example, let's say I want to render someone's birthday: \"1991-01-20\"^^xsd:date Rendering this item might be as simple as fetching the subject URL, filtering by predicate URL, and parsing the object as a date. However, this is also valid RDF: \"1991-01-20\"^^xsd:date \n \n \"20th of januari 1991\"@en \n \"20 januari 1991\"@nl \n \"2000-02-30\"^^xsd:date Now things get more complicated if you just want to select the original birthdate value: Select the named graph . The triple containing that birthday may exist in some named graph different from the subject URL, which means that I first need to identify and fetch that graph. Select the subject . Select the predicate . Select the datatype . You probably need a specific datatype (in this case, a Date), so you need to filter the triples to match that specific datatype. Select the language . Same could be true for language, too, but that is not necessary in this birthdate example. Select the specific triple . Even after all our previous selectors, we still might have multiple values. How do I know which is the triple I'm supposed to use? To be fair, with a lot of RDF data, only steps 2 and 3 are needed, since there are often no subject-predicate collisions. And if you control the data of the source, you can set any constraints that you like, inlcluding subject-predicate uniqueness. But if you're building a system that uses arbitrary RDF, that system also needs to deal with steps 1,4,5 and 6. That often means writing a lot of conditionals and other client-side logic to get the value that you need. It also means that serializing to a format like JSON becomes complicated - you can't just map predicates to keys - you might get collisions. And you can't use key-value stores for storing RDF, at least not in a trivial way. Every single selected value should be treated as an array of unknown datatypes, and that makes it really difficult to build software. All this complexity is the direct result of the lack of subject-predicate uniqueness. As a developer who uses RDF data, I want to be able to do something like this: // Fetches the resource\nconst joep = get(\"https://example.com/person/joep\")\n// Returns the value of the birthDate atom\nconsole.log(joep.birthDate()) // => Date(1991-01-20)\n// Fetches the employer relation at possibly some other domain, checks that resource for a property with the 'name' shortkey\nconsole.log(joep.employer().name()) // => \"Ontola.io\" Basically, I'd like to use all knowledge of the world as if it were a big JSON object. Being able to do that, requires using some things that are present in JSON, and using some things that are present in RDF. Traverse data on various domains (which is already possible with RDF) Have unique subject-predicate combinations (which is default in JSON) Map properties URLs to keys (which often requires local mapping with RDF, e.g. in JSON-LD) Link properties to datatypes (which is possible with ontologies like SHACL / SHEX)","breadcrumbs":"Interoperability and comparisons » RDF » It's too hard to select a specific value (object) in RDF","id":"177","title":"It's too hard to select a specific value (object) in RDF"},"178":{"body":"One of the core ideas of the semantic web, is that anyone should be able to say anything about anything, using semantic triples. This is one of the reasons why it can be so hard to select a specific value in RDF. When you want to make all graphs mergeable (which is a great idea), but also want to allow anyone to create any triples about any subject, you get subject-predicate non-uniqueness. For the Semantic Web, having semantic triples is great. For linked data, and connecting datasets, having atomic triples (with unique subject-predicate combinations) seems preferable. Atomic Data chooses a more constrained approach, which makes it easier to use the data, but at the cost of some expressiveness.","breadcrumbs":"Interoperability and comparisons » RDF » Less focus on semantics, more on usability","id":"178","title":"Less focus on semantics, more on usability"},"179":{"body":"RDF's subject, predicate and object terminology can be confusing to newcomers, so Atomic Data uses subject, property, value. This more closely resembles common CS terminology. ( discussion )","breadcrumbs":"Interoperability and comparisons » RDF » Changing the names","id":"179","title":"Changing the names"},"18":{"body":"First draft of specification (2020-06). Atomic Data started as an unnamed bundle of ideas and best practices to improve how we work with linked data, but quickly turned into a single (draft) specification. The idea was to start with a cohesive and easy to understand documentation, and use that as a stepping stone for writing the first code. After this, the code and specification should both be worked on simultaneously to make sure ideas are both easily explainable and properly implementable. Many of the earliest ideas were changed to make implementation easier. atomic-cli + atomic-lib (2020-07). The CLI functioned as the first platform to explore some of the most core ideas of Atomic Data, such as Properties and fetching. atomic_lib is the place where most logic resides. Written in Rust. AtomicServer (2020-08). The server (using the same atomic_lib as the CLI) should be a fast, lightweight server that must be easy to set-up. Functions as a graph database with no dependencies. Collections (2020-10). Allows users to perform basic queries, filtering, sorting and pagination. Commits (2020-11). Allow keeping track of an event-sourced log of all activities that mutate resources, which in turn allows for versioning and adding new types of indexes later on. JSON-AD (2021-02). Instead of the earlier proposed serialization format .ad3, we moved to the more familiar json-ad. Atomic-Data-Browser (2021-02). We wanted typescript and react libraries, as well as a nice interactive GUI that works in the browser. It should implement all relevant parts of the specification. Endpoints (2021-03). Machine readable API endpoints (think Swagger / OpenAPI spec) for things like versioning, path traversal and more. Classes and Properties editable from the browser (2021-04). The data-browser is now powerful enough to use for managing the core ontological data of the project. Hierarchies & Invitations (2021-06). Users can set rights, structure Resources and invite new people to collaborate. Websockets (2021-08). Live synchronization between client and server. Use case: Document Editor (2021-09). Notion-like editor with real-time synchronization. Full-text search (2021-11). Powered by Tantivy. Authentication for read access (2021-11). Allows for private data. Desktop support (2021-12). Run Atomic-Server on the desktop, powered by Tauri. Easier install UX, system tray icon. File management (2021-12). Upload, download and view Files. Indexed queries (2022-01). Huge performance increase for queries. Allows for far bigger datasets. Use case: ChatRoom (2022-04). Group chat application. To make this possible, we had to extend the Commit model with a push action, and allow Plugins to create new Commits. JSON-AD Publishing and Importing (2022-08). Creating and consuming Atomic Data becomes a whole lot easier. @tomic/svelte (2022-12). Library for integrating Atomic Data with Svelte(Kit).","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » History","id":"18","title":"History"},"180":{"body":"As discussed above, in RDF, it's very much possible for a graph to contain multiple statements that share both a subject and a predicate. This is probably because of two reasons: RDF graphs must always be mergeable (just like Atomic Data). Anyone can make any statement about any subject ( unlike Atomic Data, see next section). However, this introduces a lot extra complexity for data users (see above), which makes it not very attractive to use RDF in any client. Whereas most languages and datatypes have key-value uniqueness that allow for unambiguous value selection, RDF clients have to deal with the possibility that multiple triples with the same subject-predicate combination might exist. It also introduces a different problem: How should you interpret a set of subject-predicate combinations? Does this represent a non-ordered collection, or did something go wrong while setting values? In the RDF world, I've seen many occurences of both. Atomic Data requires subject-property uniqueness, which means that these issues are no more. However, in order to guarantee this, and still retain graph merge-ability , we also need to limit who creates statements about a subject:","breadcrumbs":"Interoperability and comparisons » RDF » Subject + Predicate uniqueness","id":"180","title":"Subject + Predicate uniqueness"},"181":{"body":"RDF allows that anne.com creates and hosts statements about the subject john.com. In other words, domain A creates statements about domain B. It allows anyone to say anything about any subject, thus allowing for extending data that is not under your control. For example, developers at both Ontola and Inrupt (two companies that work a lot with RDF) use this feature to extend the Schema.org ontology with translations. This means they can still use standards from Schema.org, and have their own translations of these concepts. However, I think this is a flawed approach. In the example above, two companies are adding statements about a subject. In this case, both are adding translations. They're doing the same work twice. And as more and more people will use that same resource, they will be forced to add the same translations, again and again. I think one of the core perks of linked data, is being able to make your information highly re-usable. When you've created statements about an external thing, these statements are hard to re-use. This means that someone using RDF data about domain B cannot know that domain B is actually the source of the data. Knowing where data comes from is one of the great things about URIs, but RDF does not require that you can think of subjects as the source of data. Many subjects in RDF don't actually resolve to all the known triples of the statement. It would make the conceptual model way simpler if statements about a subject could only be made from the source of the domain owner of the subject. When triples are created about a resource, in a place other than where the subject is hosted, these triples are hard to share. The way RDF projects deal with this, is by using named graphs . As a consequence, all systems that use these triples should keep track of another field for every atom. To make things worse, it makes subject-predicate uniqueness impossible to guarantee. That's a high price to pay. I've asked two RDF developers (who did not know each other) working on RDF about limiting subject usage, and both were critical. Interestingly, they provided the same usecase for using named graphs that would conflict with the limiting subject usage constraint. They both wanted to extend the schema.org ontology by adding properties to these items in a local graph. I don't think even this usecase is appropriate for named graphs. They were actually using an external resource that did not provide them with the things they needed. The things that they would add (the translations) are not re-usable, so in the end they will just keep spreading a URL that doesn't provide people with the things that they will come to expect. The schema.org URL still won't provide the translations that they wrote! I believe a better solution is to copy the resource (in this case a part of the schema.org ontology), and extend it, and host it somewhere else, and use that URL. Or even better: have a system for sharing your change suggestions with the source of the data, and allow for easy collaboration on ontologies.","breadcrumbs":"Interoperability and comparisons » RDF » Limiting subject usage","id":"181","title":"Limiting subject usage"},"182":{"body":"In RDF, an object can either be a named node, blank node or literal. A literal has a value, a datatype and an optional language (if the literal is a string). Although RDF statements are often called triples, a single statement can consist of five fields: subject, predicate, object, language, datatype. Having five fields is way more than most information systems. Usually we have just key and value. This difference leads to compatibility issues when using RDF in applications. In practice, clients have to run a lot of checks before they can use the data - which makes RDF in most contexts harder to use than something like JSON. Atomic Data drops the named node / literal distinction. We just have values, and they are interpreted by looking at the datatype, which is defined in the property. When a value is a URL, we don't call it a named node, but we simply use a URL datatype.","breadcrumbs":"Interoperability and comparisons » RDF » No more literals / named nodes","id":"182","title":"No more literals / named nodes"},"183":{"body":"A URL (Uniform Resource Locator ) is a specific and cooler version of a URI (Uniform Resource Identifier ), because a URL tells you where you can find more information about this thing (hence Locator ). RDF allows any type of URIs for subject and predicate value, which means they can be URLs, but don't have to be. This means they don't always resolve, or even function as locators. The links don't work, and that restricts how useful the links are. Atomic Data takes a different approach: these links MUST Resolve. Requiring Properties to resolve is part of what enables the type system of Atomic Schema - they provide the shortname and datatype. Requiring URLs makes things easier for data users, but makes things a bit more difficult for the data producer. With Atomic Data, the data producer MUST offer the data at the URL of the subject. This is a challenge that requires tooling, which is why I've built Atomic-Server : an easy to use, performant, open source data management sytem. Making sure that links actually work offer tremendous benefits for data consumers, and that advantage is often worth the extra trouble.","breadcrumbs":"Interoperability and comparisons » RDF » Requiring URLs","id":"183","title":"Requiring URLs"},"184":{"body":"Blank (or anonymous) nodes are RDF resources with identifiers that exist only locally. In other words, their identifiers are not URLs. They are sometimes also called anonymous nodes. They make life easier for data producers, who can easily create (nested) resources without having to mint all the URLs. In most non-RDF data models, blank nodes are the default. For example, we nest JSON object without thinking twice. Unfortunately, blank nodes tend to make things harder for clients. These clients will now need to keep track of where these blank nodes came from, and they need to create internal identifiers that will not collide. Cache invalidation with blank nodes also becomes a challenge. To make this a bit easier, Atomic Data introduces a new way of dealing with names of things that you have not given a URL yet: Atomic Paths . Since Atomic Data has subject-predicate uniqueness (like JSON does, too), we can use the path of triples as a unique identifier: https://example.com/john https://schema.org/employer This prevents collisions and still makes it easy to point to a specific value. Serialization formats are free to use nesting to denote paths - which means that it is not necessary to include these path strings explicitly in most serialization formats, such as in JSON-AD.","breadcrumbs":"Interoperability and comparisons » RDF » Replace blank nodes with paths","id":"184","title":"Replace blank nodes with paths"},"185":{"body":"Having both a datatype and a predicate value can lead to confusing situations. For example, the schema:dateCreated Property requires an ISO DateTime string (according to the schema.org definition), but using a value true with an xsd:boolean datatype results in perfectly valid RDF. This means that client software using triples with a schema:dateCreated predicate cannot safely assume that its value will be a DateTime. So if the client wants to use schema:dateCreated values, the client must also specify which type of data it expects, check the datatype field of every Atom and provide logic for when these don't match. Also important combining datatype and predicate fits the model of most programmers and languages better - just look at how every single struct / model / class / shape is defined in programming languages: key: datatype. This is why Atomic Data requires that a predicate links to a Property which must have a Datatype.","breadcrumbs":"Interoperability and comparisons » RDF » Combining datatype and predicate","id":"185","title":"Combining datatype and predicate"},"186":{"body":"Using full URI strings as keys (in RDF predicates) results in a relatively clunky Developer Experience. Consider the short strings that developers are used to in pretty much all languages and data formats (object.attribute). Adding a required / tightly integrated key mapping (from long URLs to short, simple strings) in Atomic Properties solves this issue, and provides developers a way to write code like this: someAtomicPerson.bestFriend.name => \"Britta\". Although the RDF ecosystem does have some solutions for this (@context objects in JSON-LD, @prefix mappings, the @ontologies library), these prefixes are not defined in Properties themselves and therefore are often defined locally or separate from the ontology, which means that developers have to manually map them most of the time. This is why Atomic Data introduces a shortname field in Properties, which forces modelers to choose a 'key' that can be used in ORM contexts.","breadcrumbs":"Interoperability and comparisons » RDF » Adding shortnames (slugs / keys) in Properties","id":"186","title":"Adding shortnames (slugs / keys) in Properties"},"187":{"body":"RDF lacks a clear solution for dealing with ordered data , resulting in confusion when developers have to create lists of content. Adding an Array data type as a base data type helps solve this. ( discussion )","breadcrumbs":"Interoperability and comparisons » RDF » Adding native arrays","id":"187","title":"Adding native arrays"},"188":{"body":"There is no integrated standard for communicating state changes. Although linked-delta and rdf-delta do exist, they aren't referred to by the RDF spec. I think developers need guidance when learning a new system such as RDF, and that's why Atomic Commits is included in this book.","breadcrumbs":"Interoperability and comparisons » RDF » Adding a native state changes standard","id":"188","title":"Adding a native state changes standard"},"189":{"body":"A schema language is necessary to constrain and validate instances of data. This is very useful when creating domain-specific standards, which can in turn be used to generate forms or language-specific types / interfaces. Shape validations are already possible in RDF using both SHACL and SHEX , and these are both very powerful and well designed. However, with Atomic Data, I'm going for simplicity. This also means providing an all-inclusive documentation. I want people who read this book to have a decent grasp of creating, modeling, sharing, versioning and querying data. It should provide all information that most developers (new to linked data) will need to get started quickly. Simply linking to SHACL / SHEX documentation could be intimidating for new developers, who simply want to define a simple shape with a few keys and datatypes. Also, SHACL requires named graphs (which are not specified in Atomic Data) and SHEX requires a new serialization format, which might limit adoption. Atomic Data has some unique constrains (such as subject-predicate uniqueness) which also might make things more complicated when using SHEX / SHACL. However , it is not the intention of Atomic Data to create a modeling abstraction that is just as powerful as the ones mentioned above, so perhaps it is better to include a SHACL / SHEX tutorial and come up with a nice integration of both worlds.","breadcrumbs":"Interoperability and comparisons » RDF » Adding a schema language and type safety","id":"189","title":"Adding a schema language and type safety"},"19":{"body":"Most of the specification seems to become pretty stable. The implementations are working better every day, although 1.0 releases are still quite a bit far away. At this point, the most important thing is to get developers to try out Atomic Data and provide feedback. That means not only make it easy to install the tools, but also allow people to make Atomic Data without using any of our own tools. That's why we're now working on the JSON-AD and Atomizer projects (see below).","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Where we're at","id":"19","title":"Where we're at"},"190":{"body":"Besides the technical reasons described above, I think that there are social reasons to start with a new concept and give it a new name: The RDF vocabulary is intimidating. When trying to understand RDF, you're likely to traverse many pages with new concepts: literal, named node, graph, predicate, named graph, blank node... The core specification provides a formal description of these concepts, but fails to do this in a way that results in quick understanding and workable intuitions. Even experienced RDF developers tend to be confused about the nuances of the core model. There is a lack of learning resources that provide a clear, complete answer to the lifecycle of RDF data: modeling data, making data, hosting it, fetching it, updating it. Atomic Data aims to provide an opinionated answer to all of these steps. It feels more like a one-stop-shop for questions that developers are likely to encounter, whilst keeping the extendability. All Core / Schema URLs should resolve to simple, clear explanations with both examples and machine readable definitions. Especially the Property and Class concepts. The Semantic Web community has had a lot of academic attention from formal logic departments, resulting in a highly developed standard for knowledge modeling: the Web Ontology Language (OWL). While this is mostly great, its open-world philosophy and focus on reasoning abilities can confuse developers who are simply looking for a simple way to share models in RDF.","breadcrumbs":"Interoperability and comparisons » RDF » A new name, with new docs","id":"190","title":"A new name, with new docs"},"191":{"body":"All the subject URLs MUST actually resolve, and return all triples about that subject . All blank nodes should be converted into URLs. Atomic Data tools might help to achieve this, for example by hosting the data. All predicates SHOULD resolve to Atomic Properties, and these SHOULD have a datatype . You will probably need to change predicate URLs to Atomic Property URLs, or update the things that the predicate points to to include the required Atomic Property items (e.g. having a Datatype and a Shortname). This also means that the datatype in the original RDF statement can be dropped. Literals with a language tag are converted to TranslationBox resources, which also means their identifiers must be created. Keep in mind that Atomic Data does not allow for blank nodes, so the TranslationBox identifiers must be URLs. Step by step, it entails: Set up some server to make sure the URLs will resolve. Create (or find and refer to) Atomic Properties for all the predicates. Make sure they have a DataType and a Shortname. If you have triples about a subject that you don't control, change the URL to some that you can control, and refer to that external resource. Atomic Data will need tooling to facilitate in this process. This tooling should help to create URLs, Properties, and host everything on an easy to use server.","breadcrumbs":"Interoperability and comparisons » RDF » Convert RDF to Atomic Data","id":"191","title":"Convert RDF to Atomic Data"},"192":{"body":"Since all Atomic Data is also valid RDF, it's trivial to convert / serialize Atoms to RDF. This is why atomic can serialize Atomic Data to RDF. (For example, try atomic-cli get https://atomicdata.dev/properties/description --as n3) However, contrary to Atomic Data, RDF has optional Language and Datatype elements in every statement. It is good practice to use these RDF concepts when serializing Atomic Data into Turtle / RDF/XML, or other RDF serialization formats . Convert Atoms with linked TranslationBox Resources to Literals with an xsd:string datatype and the corresponding language in the tag. Convert Atoms with ResourceArrays to Collections that are native to that serialization format. Dereference the Property and Datatype from Atomic Properties, and add the URLs in datatypes in RDF statements. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » RDF » Convert Atomic data to RDF","id":"192","title":"Convert Atomic data to RDF"},"193":{"body":"The Solid project is an initiative by the inventor of linked data and the world wide web: sir Tim Berners-Lee. In many ways, it has similar goals to Atomic Data: Decentralize the web Make things more interoperable Give people more control over their data Technically, both are also similar: Usage of personal servers , or PODs (Personal Online Datastores). Both Atomic Data and Solid aim to provide users with a highly personal server where all sorts of data can be stored. Usage of linked data . All Atomic Data is valid RDF, which means that all Atomic Data is compatible with Solid . However, the other way around is more difficult. In other words, if you choose to use Atomic Data, you can always put it in your Solid Pod. But there are some important differences , too, which will be explained in more detail below. Atomic Data uses a strict built-in schema to ensure type safety Atomic Data standardizes state changes (which also provides version control / history, audit trails) Atomic Data is more easily serializable to other formats (like JSON) Atomic Data has different models for authentication, authorization and hierarchies Atomic Data does not depend on existing semantic web specifications Atomic Data is a smaller and younger project, and as of now a one-man show Disclaimer: I've been quite involved in the development of Solid, and have a lot of respect for all the people who are working on it. Solid and RDF have been important inspirations for the design of Atomic Data. The following is not meant as a critique on Solid, let alone the individuals working on it.","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data and Solid","id":"193","title":"Atomic Data and Solid"},"194":{"body":"Atomic Data is more strict than Solid - which means that it only accepts data that conforms to a specific shape. In a Solid Pod, you're free to add any shape of data that you like - it is not validated by some schema. Yes, there are some efforts of using SHACL or SHEX to constrain data before putting it in, but as of now it is not part of the spec or any implementation that I know of. A lack of schema strictness can be helpful during prototyping and rapid development, especially if you write data by hand, but it also limits how easy it is to build reliable apps with that data. Atomic Data aims to be very friendly for developers that re-use data, and that's why we take a different approach: all data must be validated by Atomic Schema before it's stored on a server. This means that all Atomic Properties will have to exist on a publicly accessible URL, before the property can be used somewhere. You can think of Atomic Data more like a (dynamic) SQL database that offers guarantees about its content type, and a Solid Pod more like a document store that takes in all kinds of content. Most of the differences have to do with how Atomic Schema aims to make linked data easier to work with, but that is covered in the previous RDF chapter .","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data is type-safe, because of its built-in schema","id":"194","title":"Atomic Data is type-safe, because of its built-in schema"},"195":{"body":"With Solid, you change a Resource by sending a POST request to the URL that you want to change. With Atomic, you change a Resource by sending a signed Commit that contains the requested changes to a Server. Event sourcing means that all changes are stored (persisted) and used to calculate the current state of things. In practice, this means that users get a couple of nice features for free: Versioning for all items by default . Storing events means that these events can be replayed , which means you get to traverse time / undo / redo. Edit / audit log for everything . Events contain information about who made which change at which point in time. Can be useful for finding out why things are the way they are. Easier to add query options / indexes . Any system can play-back the events, which means that the events can be used as an API to add new query options / fill new indexes. This is especially useful if you want to add things like full-text search, or some geolocation index. It also means that, compared to Solid, there is a relatively simple and strict API for changing data. Atomic Data has a uniform write API . All changes to data are done by posting Commits to the /commits endpoint of a Server. This removes the need to think about differences between all sorts of HTTP methods like POST / PUT / PATCH, and how servers should reply to that. EDIT: as of december 2021, Solid has introduced .n3 patch for standardizing state changes. Although this adds a uniform way of describing changes, it still lacks the power of Atomic Commits. It does not specify signatures, mention versioning, or deals with persisting changesets. On top of that, it is quite difficult to read or parse, being .n3.","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data standardizes state changes (event sourcing)","id":"195","title":"Atomic Data standardizes state changes (event sourcing)"},"196":{"body":"Atomic Data is designed with the modern (web)developer in mind. One of the things that developers expect, is to be able to traverse (JSON) objects easily. Doing this with RDF is not easily possible, because doing this requires subject-predicate uniqueness . Atomic Data does not have this problem (properties must be unique), which means that traversing objects becomes easy. Another problem that Atomic Data solves, is dealing with long URLs as property keys. Atomic Data uses shortnames to map properties to short, human-readable strings. For more information about these differences, see the previous RDF chapter .","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data is more easily serializable to other formats (like JSON)","id":"196","title":"Atomic Data is more easily serializable to other formats (like JSON)"},"197":{"body":"Both Solid an Atomic Data use URLs to refer to individuals / users / Agents. Solid's identity system is called WebID. There are multiple supported authentication protocols, the most common being WebID-OIDC . Atomic Data's authentication model is more similar to how SSH works. Atomic Data identities (Agents) are a combination of HTTP based, and cryptography (public / private key) based. In Atomic, all actions (from GET requests to Commits) are signed using the private key of the Agent. This makes Atomic Data a bit more unconventional, but also makes its auth mechanism very decentralized and lightweight.","breadcrumbs":"Interoperability and comparisons » Solid » Authentication","id":"197","title":"Authentication"},"198":{"body":"Atomic Data uses parent-child hierarchies to model data structures and perform authorization checks. This closely resembles how filesystems work (including things like Google Drive). Per resource, write and read rights can be defined, which both contain lists of Agents. Solid is working on the Shape Trees spec, which also describes hierarchies. It uses SHEX to perform shape validation, similar to how Atomic Schema does.","breadcrumbs":"Interoperability and comparisons » Solid » Hierarchy and authorization","id":"198","title":"Hierarchy and authorization"},"199":{"body":"The Solid specification (although still in draft) builds on a 20+ year legacy of committee meetings on semantic web standards such as RDF, SPARQL, OWL and XML. I think the process of designing specifications in various (fragmented) committees has led to a set of specifications that lack simplicity and consistency. Many of these specifications have been written long before there were actual implementations. Much of the effort was spent on creating highly formal and abstract descriptions of common concepts, but too little was spent on making specs that are easy to use and solve actual problems for developers. Aaron Scharz (co-founder or reddit, inventor of RSS and Markdown) wrote this in his unfinished book 'A Programmable Web' : Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense contractors. They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device. (The book is a great read on this topic, by the way!) So, in a nutshell, I think this legacy makes Solid unnecessarily hard to use for developers, for the following reasons: RDF Quirks : Solid has to deal with all the complexities of the RDF data model , such as blank nodes, named graphs, subject-predicate duplication. Multiple (uncommon) serialization formats need to be understood, such as n3, shex and potentially all the various RDF serialization formats. These will feel foreign to most (even very experienced) developers and can have a high degree of complexity. A heritage of broken URLs . Although a lot if RDF data exists, only a small part of it is actually resolvable as machine-readable RDF. The large majority won't give you the data when sending a HTTP GET request with the correct Accept headers to the subject's URL. Much of it is stored in documents on a different URL (named graphs), or behind some SPARQL endpoint that you will first need to find. Solid builds on a lot of standards that have these problems. Confusing specifications . Reading up on RDF, Solid, and the Semantic Web can be a daunting (yet adventurous) task. I've seen many people traverse a similar path as I did: read the RDF specs, dive into OWL, install protege, create ontologies, try doing things that OWL doesn't do (validate data), read more complicated specs that don't help to clear things, become frustrated... It's a bit of a rabbit hole, and I'd like to prevent people from falling into it. There's a lot of interesting ideas there, but it is not a pragmatic framework to develop interoperable apps with.","breadcrumbs":"Interoperability and comparisons » Solid » No dependency on existing semantic web specifications","id":"199","title":"No dependency on existing semantic web specifications"},"2":{"body":"Browser app atomic-data-browser ( demo on atomicdata.dev ) Build a react app using typescript & react libraries . Start with the react template on codesandbox Host your own atomic-server (powers atomicdata.dev , run with docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server) Discover the command line tool: atomic-cli (cargo install atomic-cli) Use the Rust library: atomic-lib","breadcrumbs":"Atomic Data Overview » Tools & libraries","id":"2","title":"Tools & libraries"},"20":{"body":"Video(s) about Atomic Data (2023 Q1). Explain what Atomic Data is, why we're doing this, and how to get started. Atomic Tables (2023 Q2). A powerful table editor with keyboard / copy / paste / sort support that makes it easier to model and edit data. E-mail registration (2023 Q1). This makes it easier for users to get started, and de-emphasizes the importance of private key management, as user can register new Private Keys using their e-mail address. Headless CMS tooling (2023). Use Atomic-Server to host and edit data that is being read by a front-end JAMSTACK type of tool, such as NextJS or SvelteKit. Atomizer (2023). Import files and automatically turn these into Atomic Data. Model Marketplace (2023 Q4). A place where user can easily find, compare and use Classes, Properties and Ontologies. Atomic-server plugins (2024). Let developers design new features without having to make PRs in Atomic-Server, and let users install apps without re-compiling (or even restarting) anything. Atomic-browser plugins (2024). Create new views for Classes. 1.0 release (2024). Mark the specification, the server (tracking issue) and the browser as stable . It is possible that the Spec will become 1.0 before any implementation is stable. Read the STATUS.md document for an up-to-date list of features that are already stable. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » Strategy, history and roadmap » Roadmap","id":"20","title":"Roadmap"},"200":{"body":"Both Atomic Data and Solid are specifications that have different implementations. Some open source Solid implementations are the Node Solid Server , the Community Solid Server (also nodejs based) and the DexPod (Ruby on Rails based). Atomic-Server is a database + server written in the Rust programming language, that can be considered an alternative to Solid Pod implementations. It was definitely built to be one, at least. It implements every part of the Atomic Data specification. I believe that as of today (february 2022), Atomic-Server has quite a few advantages over existing Solid implementations: Dynamic schema validation / type checking using Atomic Schema , combining the best of RDF, JSON and type safety. Fast (1ms responses on my laptop) Lightweight (8MB download, no runtime dependencies) HTTPS + HTTP2 support with Built-in LetsEncrypt handshake. Browser GUI included powered by atomic-data-browser . Features dynamic forms, tables, authentication, theming and more. Easy to use! Event-sourced versioning / history powered by Atomic Commits Many serialization options : to JSON, JSON-AD , and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). Full-text search with fuzzy search and various operators, often <3ms responses. Pagination, sorting and filtering using Atomic Collections Invite and sharing system with Atomic Invites Desktop app Easy desktop installation, with status bar icon, powered by tauri . MIT licensed So fully open-source and free forever!","breadcrumbs":"Interoperability and comparisons » Solid » Atomic Data and Solid server implementations","id":"200","title":"Atomic Data and Solid server implementations"},"201":{"body":"Atomic Data is not even two years old, and although progress has been fast, it does lack some specifications. Here's a list of things missing in Atomic Data, with links to their open issues and links to their existing Solid counterpart. No inbox or notifications yet ( issue ) No OIDC support yet. ( issue ) No support from a big community, a well-funded business or the inventor of the world wide web. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Solid » Things that Atomic Data misses, but Solid has","id":"201","title":"Things that Atomic Data misses, but Solid has"},"202":{"body":"Because JSON is so popular, Atomic Data is designed with JSON in mind. Atomic Data is often (by default) serialized to JSON-AD , which itself uses JSON. JSON-AD uses URLs as keys, which is what gives Atomic Data many of its perks, but using these long strings as keys is not very easy to use in many contexts. That's why you can serialize Atomic Data to simple, clean JSON.","breadcrumbs":"Interoperability and comparisons » JSON » How does Atomic Data relate to JSON?","id":"202","title":"How does Atomic Data relate to JSON?"},"203":{"body":"The JSON keys are then derived from the shortnames of properties. For example, we could convert this JSON-AD: { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} ... into this plain JSON: { \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"shortname\": \"description\"\n} Note that when you serialize Atomic Data to plain JSON, some information is lost: the URLs are no longer there. This means that it is no longer possible to find out what the datatype of a single value is - we now only know if it's a string, but not if it actually represents a markdown string or something else. Most Atomic Data systems will therefore not use this plain JSON serialization, but for some clients (e.g. a front-end app), it might be easier to use the plain JSON, as the keys are easier to write than the long URLs that JSON-AD uses.","breadcrumbs":"Interoperability and comparisons » JSON » From Atomic Data to plain JSON","id":"203","title":"From Atomic Data to plain JSON"},"204":{"body":"Atomic Data requires a bit more information about pieces of data than JSON tends to contain. Let's take a look at a regular JSON example: { \"name\": \"John\", \"birthDate\": \"1991-01-20\"\n} We need more information to convert this JSON into Atomic Data. The following things are missing: What is the Subject URL of the resource being described? What is the Property URL of the keys being used? (name and birthDate), and consequentially, how should the values be parsed? What are their DataTypes? In order to make this conversion work, we need to link to three URLs that resolve to atomic data resources . The @id subject should resolve to the Resource itself, returning the JSON-AD from below. The Property keys (e.g. \"https://example.com/properties/name\") need to resolve to Atomic Properties. { \"@id\": \"https://example.com/people/john\", \"https://example.com/properties/name\": \"John\", \"https://example.com/properties/birthDate\": \"1991-01-20\"\n} In practice, the easiest approach to make this conversion, is to create the data and host it using software like Atomic Server .","breadcrumbs":"Interoperability and comparisons » JSON » From JSON to JSON-AD","id":"204","title":"From JSON to JSON-AD"},"205":{"body":"Atomic Data is a strict subset of RDF, and the most popular serialization of RDF for JSON data is JSON-LD . Since Atomic Schema requires the presence of a key slug in Properties, converting Atomic Data to JSON results in dev-friendly objects with nice shorthands. { \"@id\": \"https://example.com/people/John\", \"https://example.com/properties/lastname\": \"John\", \"https://example.com/properties/bestFriend\": \"https://example.com/sarah\",\n} Can be automatically converted to: { \"@context\": { \"@id\": \"https://example.com/people/John\", \"name\": \"https://example.com/properties/lastname\", \"bestFriend\": \"https://example.com/properties/bestFriend\", }, \"name\": \"John\", \"bestFriend\": { \"@id\": \"https://example.com/sarah\" },\n} The @context object provides a mapping to the original URLs. JSON-AD and JSON-LD are very similar by design, but there are some important differences: JSON-AD is designed just for atomic data, and is therefore easier and more performant to parse / serialize. JSON-LD uses @context to map keys to URLs. Any type of mapping is valid. JSON-AD, on the other hand, doesn't map anything - all keys are URLs. JSON-LD uses nested objects for links and sequences, such as @list. JSON-AD does not. Arrays in JSON-LD do not indicate ordered data - they indicate that for some subject-predicate combination, multiple values exist. This is a result of how RDF works.","breadcrumbs":"Interoperability and comparisons » JSON » From Atomic Data to JSON-LD","id":"205","title":"From Atomic Data to JSON-LD"},"206":{"body":"Make sure the URLs used in the @context resolve to Atomic Properties. Convert JSON-LD arrays into ResourceArrays Creating nested JSON objects is possible (by resolving the identifiers from @id relations), but it is up to the serializer to decide how deep this object nesting should happen. Note that as of now, there are no JSON-LD parsers for Atomic Data. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » JSON » JSON-LD Requirements for valid Atomic Data","id":"206","title":"JSON-LD Requirements for valid Atomic Data"},"207":{"body":"","breadcrumbs":"Interoperability and comparisons » IPFS » Atomic Data and IPFS","id":"207","title":"Atomic Data and IPFS"},"208":{"body":"IPFS (the InterPlanetary File System) is a standard that enables decentralized file storage and retrieval using content-based identifiers. Instead of using an HTTP URL like http://example.com/helloworld, it uses the IPFS scheme, such as ipfs:QmX6j9DHcPhgBcBtZsuRkfmk2v7G5mzb11vU9ve9i8vDsL. IPFS identifies things based on their unique content hash (the long, seemingly random string) using a thing called a Merkle DAG ( this great article explains it nicely). This is called a CID , or Content ID. This simple idea (plus some not so simple network protocols) allows for decentralized, temper-proof storage of data. This fixes some issues with HTTP that are related to its centralized philosophy: no more 404s !","breadcrumbs":"Interoperability and comparisons » IPFS » What is IPFS","id":"208","title":"What is IPFS"},"209":{"body":"Atomic Data is highly dependent on the availability of Resources, especially Properties and Datatypes. These resources are meant to be re-used a lot, and when these go offline or change (for whatever reason), it could cause issues and confusion. IPFS guarantees that these resources are entirely static, which means that they cannot change. This is useful when dealing with Properties, as a change in datatype could break things. IPFS also allows for location-independent fetching, which means that resources can be retrieved from any location, as long as it's online. This Peer-to-peer functionality is a very fundamental advantage of IPFS over HTTP, especially when the resources are very likely to be re-use, which is especially the case for Atomic Data Properties.","breadcrumbs":"Interoperability and comparisons » IPFS » Why is IPFS interesting for Atomic Data","id":"209","title":"Why is IPFS interesting for Atomic Data"},"21":{"body":"","breadcrumbs":"Atomic Data Overview » When (not) to use it » When (not) to use Atomic Data","id":"21","title":"When (not) to use Atomic Data"},"210":{"body":"IPFS URLs are static , which means that their contents can never change. This is great for some types of data, but not so much for others. If you're describing a time-dependent thing (such as a person's job), you'll probably want to know what the current value is, and that is not possible when you only have an IPFS identifier. This can be fixed by including an HTTP URL in IPFS bodies. IPFS data is also hard to remove , as it tends to be replicated across machines. If you're describing personal, private information, it can therefore be a bad idea to use IPFS. And finally, its performance is typically not as good as HTTP. If you know the IPFS gateway that hosts the IPFS resource that you're looking for, things improve drastically. Luckily for Atomic Data, this is often the case, as we know the HTTP url of the server and could try whether that server has an IPFS gateway.","breadcrumbs":"Interoperability and comparisons » IPFS » Considerations using IPFS URLs","id":"210","title":"Considerations using IPFS URLs"},"211":{"body":"IPLD (not IPFS) stands for InterPlanetary Linked Data, but is not related to RDF. The scope seems fundamentally different from RDF, too, but I have to read more about this.","breadcrumbs":"Interoperability and comparisons » IPFS » Atomic Data and IPLD","id":"211","title":"Atomic Data and IPLD"},"212":{"body":"Discuss on this issue . Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » IPFS » Share your thoughts","id":"212","title":"Share your thoughts"},"213":{"body":"Atomic Data has some characteristics that make it similar and different from SQL. Atomic Data has a dynamic schema. Any Resource could have different properties, so you can add new properties to your data without performing any migrations. However, the properties themselves are still validated (contrary to most NoSQL solutions) Atomic Data uses HTTP URLs in its data, which means it's easy to share and reuse . Atomic Data separates reading and writing , whereas SQL has one language for both. Atomic Data has a standardized way of storing changes ( Commits )","breadcrumbs":"Interoperability and comparisons » SQL » Atomic Data and SQL","id":"213","title":"Atomic Data and SQL"},"214":{"body":"At its core, SQL is a query language based around tables and rows . The tables in SQL are similar to Classes in Atomic Data: they both define a set of properties which an item could have. Every single item in a table is called a row in SQL, and a Resource in Atomic Data. One difference is that in Atomic Data, you can add new properties to resources, without making changes to any tables (migrations).","breadcrumbs":"Interoperability and comparisons » SQL » Tables and Rows vs. Classes and Properties","id":"214","title":"Tables and Rows vs. Classes and Properties"},"215":{"body":"In SQL, the schema of the database defines which shape the data can have, which properties are required, what datatypes they have. In Atomic Data, the schema exists as a Resource on the web, which means that they can be retrieved using HTTP. An Atomic Database (such as Atomic-Server ) uses a dynamic schema , which means that any Resource can have different properties, and the properties themselves can be validated, even when the server is not aware of these properties beforehand. In SQL, you'd have to manually adjust the schema of your database to add a new property. Atomic Data is a decentralized, open system, which can read new schema data from other sources. SQL is a centralized, closed system, which relies on the DB manager to define the schema.","breadcrumbs":"Interoperability and comparisons » SQL » Dynamic vs static schema","id":"215","title":"Dynamic vs static schema"},"216":{"body":"In SQL, rows have numbers as identifiers, whereas in Atomic Data, every resource has a resolvable HTTP URL as an identifier. URLs are great identifiers, because you can open them and get more information about something. This means that with Atomic Data, other systems can re-use your data by referencing to it, and you can re-use data from other systems, too. With Atomic Data, you're making your data part of a bigger web of data , which opens up a lot of possibilities.","breadcrumbs":"Interoperability and comparisons » SQL » Identifiers: numbers vs. URLs","id":"216","title":"Identifiers: numbers vs. URLs"},"217":{"body":"If you're building an App with SQL, you will always need some server that connects to your database. If you're building an App with Atomic Server, the database can function as your server, too. It deals with authentication, authorization, and more.","breadcrumbs":"Interoperability and comparisons » SQL » Atomic Server combines server and database","id":"217","title":"Atomic Server combines server and database"},"218":{"body":"The SQL query language is for both reading and writing data. In Atomic Data a distinction is made between Query and Command - getting and setting (Command Query Responsibility Segregation, CQRS ). The Query side is handled using Subject Fetching (sending a GET request to a URL, to get a single resource) and Collections (filtering and sorting data). The Command side is typically done using Atomic Commits , although you're free not to use it. SQL is way more powerful, as a query language. In SQL, the one creating the query basically defines the shape of a table that is requested, and the database returns that shape. Atomic Data does not offer such functionality. So if you need to create custom tables at runtime, you might be better off using SQL, or move your Atomic Data to a query system.","breadcrumbs":"Interoperability and comparisons » SQL » Querying","id":"218","title":"Querying"},"219":{"body":"If you want to make your existing SQL project serve Atomic Data, you can keep your existing SQL database, see the upgrade guide . It basically boils down to mapping the rows (properties) in your SQL tables to Atomic Data Properties . When you want to import arbitrary Atomic Data , though, it might be easier to use atomic-server. If you want to store arbitrary Atomic Data in a SQL database, you might be best off by creating a Resources table with a subject and a propertyValues column, or create both a properties table and a resources one.","breadcrumbs":"Interoperability and comparisons » SQL » Convert an SQL database to Atomic Data","id":"219","title":"Convert an SQL database to Atomic Data"},"22":{"body":"Flexible schemas . When dealing with structured wikis or semantic data, various instances of things will have different attributes. Atomic Data allows any kind of property on any resource. Open data . Atomic Data is a bit harder to create than plain JSON, for example, but it is easier to re-use and understand. It's use of URLs for properties makes data self-documenting. High interoperability requirements . When multiple groups of people have to use the same schema, Atomic Data provides easy ways to constrain and validate the data and ensure type safety. Connected / decentralized data . With Atomic Data, you use URLs to point to things on other computers. This makes it possible to connect datasets very explicitly, without creating copies. Very useful for decentralized social networks, for example. Auditability & Versioning . Using Atomic Commits, we can store all changes to data as transactions that can be replayed. This creates a complete audit log and history. JSON or RDF as Output . Atomic Data serializes to idiomatic, clean JSON as well as various RDF formats (Turtle / JSON-LD / n-triples / RDF/XML).","breadcrumbs":"Atomic Data Overview » When (not) to use it » When should you use Atomic Data","id":"22","title":"When should you use Atomic Data"},"220":{"body":"SQL is far more common, many people will know how to use it. SQL databases are battle-tested and has been powering countless of products for tens of years, whereas Atomic Server is at this moment in beta. SQL databases have a more powerful and expressive query language, where you can define tables in your query and combine resources. Atomic Data doesn't have a mutli-node / distributed option","breadcrumbs":"Interoperability and comparisons » SQL » Limitations of Atomic Data","id":"220","title":"Limitations of Atomic Data"},"221":{"body":"","breadcrumbs":"Interoperability and comparisons » SQL » FAQ","id":"221","title":"FAQ"},"222":{"body":"Generally, Atomic Data apps do not use SQL - so they are NOSQL. Atomic-server, for example, internally uses a key-value store (sled) for persistence. Like most NOSQL systems, Atomic Data does not limit data entries to a specific table shape, so you can add any property that you like to a resource. However, unlike most NOSQL systems, Atomic Data does perform validations on each value. So in a way, Atomic Data tries to combine best of both worlds: the extendibility and flexibility of NOSQL, with the type safety of SQL.","breadcrumbs":"Interoperability and comparisons » SQL » Is Atomic Data NOSQL or SQL?","id":"222","title":"Is Atomic Data NOSQL or SQL?"},"223":{"body":"Yes, if you use Atomic-Server, then you can only write to the server by using Atomic Commits, which are in fact transactions. This means that if part of the transaction fails, it is reverted - transactions are only applied when they are 100% OK. This prevents inconsistent DB states.","breadcrumbs":"Interoperability and comparisons » SQL » Is Atomic Data transactional / ACID?","id":"223","title":"Is Atomic Data transactional / ACID?"},"224":{"body":"It creates indexed collections when users perform queries. This means that the first time your perform some type of query (that sorts and filters by some properties), it will be slow, but the next time you perform a similar query, it will be fast. Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » SQL » How does Atomic Server build indexes for its resources if the schema is not known in advance","id":"224","title":"How does Atomic Server build indexes for its resources if the schema is not known in advance"},"225":{"body":"Atomic Data is fundamentally a graph data model . We can think of Atomic Resources as nodes , and links to other resources through properties as edges . In the first section, we'll take a look at Atomic-Server as a Graph Database. After that, we'll explore how Atomic Data relates to some graph technologies.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Atomic Data and Graph Databases","id":"225","title":"Atomic Data and Graph Databases"},"226":{"body":"Built-in REST . Everything is done over HTTP, there's no new query language or serialization to learn. It's all JSON. All resources have HTTP URLs . This means that every single thing is identified by where it can be be found. Makes it easy to share data, if you want to! Sharable and re-usable data models . Atomic Schema helps you share and re-use data models by simply pointing to URLs. Authorization built-in . Managing rights in a hierarchy (similar to how tools like Google Drive or filesystems work) enable you to have a high degree of control over read / write rights. Built-in easy to use GUI . Managing content on Atomic-Server can be done by anyone, as its GUI is extremely easy to use and has a ton of features. Dynamic indexing . Indexes are created by performing Queries, resulting in great performance - without needing to manually configure indexing. Synchronization over WebSockets . All changes (called Commits ) can be synchronized over WebSockets, allowing you to build realtime collaborative tools. Event-sourced . All changes are stored and reversible, giving you a full versioned history. Open source . All code is MIT-licensed.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Atomic-Server as a database","id":"226","title":"Atomic-Server as a database"},"227":{"body":"Neo4j is a popular graph database that supports multiple query languages. The first difference is that Atomic Data is not a single piece of software but a specification . However, we can compare Neo4j as a product with the open source Atomic-Server . Atomic-Server is fully open source and free (MIT licensed), whereas Neo4j is partially open source and GPL licensed.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Comparing Atomic Data to Neo4j","id":"227","title":"Comparing Atomic Data to Neo4j"},"228":{"body":"The data model of Neo4j features a labeled property graph , which means that edges (relationships between nodes) can have their own properties. This can be useful when adding data to relationship between nodes. For example: in the john - (knows) -> mary relationship, you might want to specify for how long they have known each other. In Neo4j, we can add this data to the labeled property graph. In Atomic Data, we'd have to make a new resource to describe the relation between the two, if we wanted to add information about the relationship itself. This is called reification . This process can be time consuming, especially in Atomic Data, as this means that you'll have to specify the Class of this relationship and its properties. However, one benefit of this approach, is that the relationship itself becomes clearly defined and re-usable. Another benefit is that the simpler model of Atomic Data maps perfectly to datamodels like JSON, which makes things very convenient and familiar for developers.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Labeled Property Graph","id":"228","title":"Labeled Property Graph"},"229":{"body":"Neo4j supports multiple query languages, but its mainly known for Cypher . It is used for doing practically everything: reading, writing, modelling, and more. Atomic Data on the other hand does not have a query language. It uses a RESTful HTTP + JSON-AD approach for everything. Atomic Data uses Endpoints for specific goals that you'd do in a query language: Collections (which can filter by Property or Value, and sort by any Property) to generate lists of resources Paths for traversing graphs by property And finally, data is written using Commits . Commits are very strict, as each one describes modifications to individual resources, and every Commits has to be signed. This means that with Atomic Data, we get versioning + audit trails for all data, but at the cost of more storage requirements and a bit more expensive write process.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Query language vs REST","id":"229","title":"Query language vs REST"},"23":{"body":"Internal use only . If you're not sharing structured data, Atomic Data will probably only make things harder for you. Big Data . If you're dealing with TeraBytes of data, you probably don't want to use Atomic Data. The added cost of schema validation and the lack of distributed / large scale persistence tooling makes it not the right choice. Video / Audio / 3D . These should have unique, optimized binary representations and have very strict, static schemas. The advantages of atomic / linked data do little to improve this, unless it's just for metadata. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Overview » When (not) to use it » When not to use Atomic Data","id":"23","title":"When not to use Atomic Data"},"230":{"body":"In Neo4j, constraints can be added to the database by Atomic Data uses Atomic Schema for validating datatypes and required properties in Classes .","breadcrumbs":"Interoperability and comparisons » Graph Databases » Schema language and type safety","id":"230","title":"Schema language and type safety"},"231":{"body":"Atomic Data has an Authentication model and Hierarchy model for authorization. Neo4j uses roles . Neo4j is actually used in production by many big organizations Found a bug? Edit this page on GitHub.","breadcrumbs":"Interoperability and comparisons » Graph Databases » Other differences","id":"231","title":"Other differences"},"232":{"body":"Most of this book is either abstract or technical, but this section aims to be different. In this section, we'll present concrete examples of things that can be built with Atomic Data. Although you could use Atomic Data for pretty much any type of application, it is especially valuable where data re-use , standardization , and data ownership are important. As a Headless CMS In a React project Personal Data Store Artificial Intelligence E-commerce & marketplaces Surveys Verifiable Credentials Data Catalog Education Food labels Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Various Use Cases for Atomic Data","id":"232","title":"Various Use Cases for Atomic Data"},"233":{"body":"","breadcrumbs":"Potential use cases » As a Headless CMS » Using Atomic-Server as an open source headless CMS","id":"233","title":"Using Atomic-Server as an open source headless CMS"},"234":{"body":"Traditionally, content management systems were responsible for both managing the content as well as producing the actual HTML views that the user saw. This approach has some issues regarding performance and flexibility that headless CMS tools solve. Great performance . We want pages to load in milliseconds, not seconds. Headless CMS tools + JAMSTACK style architectures are designed to give both performant initial page loads, as well as consecutive / dynamic loads. High flexibility . Designs change, and front-end developers want to use the tools that they know and love to create these designs effectively. With a headless CMS, you can build the front-end with the tools that you want, and make it look exactly like you want. Easier content management . Not every CMS is as fun and easy to use, as an admin, as others. Headless CMS tools focus on the admin side of things, so the front-end devs don't have to work on the back-end as well.","breadcrumbs":"Potential use cases » As a Headless CMS » Why people are switching to Headless CMS","id":"234","title":"Why people are switching to Headless CMS"},"235":{"body":"The Atomic-Server project may be the right choice for you if you're looking for a Headless CMS: Free and open source . MIT licensed, no strings attached. Easy to use API . Atomic-Server is built using the Atomic Data specification . It is well-documented, and uses conventions that most web developers are already familiar with. Typescript & React libraries . Use the existing react hooks to make your own fully editable, live-reloaded web application. Fast . 1ms responses on my laptop. It's written in Rust, so it squeezes out every cycle of your server. Lightweight . It's a single 8MB binary, no external dependencies needed. Easy to setup . Just run the binary and open the address. Even HTTPS support is built-in. Clean, powerful admin GUI . The Atomic-Data-Browser front-end gives you a very easy interface to manage your content. Share your data models . Atomic Data is designed to achieve a more decentralized web. You can easily re-use existing data models, or share the ones you built. Files / Attachments . Upload and preview files. Pagination / sorting / filtering . Query your data. Versioning . Built-in history, where each transaction is saved. Websockets . If you need live updates and highly interactive apps (collaborative documents and chatrooms), we've got your back. Full-text search . No need for a big elasticsearch server - atomic-server has one built-in.","breadcrumbs":"Potential use cases » As a Headless CMS » Atomic Server","id":"235","title":"Atomic Server"},"236":{"body":"No support for image resizing, as of now No GraphQL support (see issue)","breadcrumbs":"Potential use cases » As a Headless CMS » Limitations","id":"236","title":"Limitations"},"237":{"body":"One-liners: cargo install atomic-server or docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server Check out the readme!","breadcrumbs":"Potential use cases » As a Headless CMS » Setting up the server","id":"237","title":"Setting up the server"},"238":{"body":"The @tomic/lib and @tomic/react typescript NPM libraries can be used in any JS project. In the next section, we'll discuss how to use Atomic-Server in your React project.","breadcrumbs":"Potential use cases » As a Headless CMS » Using the data in your (React / NextJS) app","id":"238","title":"Using the data in your (React / NextJS) app"},"239":{"body":"Strapi : Atomic-Server doesn't need an external database, is easier to setup, has live synchronization support and is way faster. However, Strapi has a plugin system, is more polished, and has GraphQL support. ** Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » As a Headless CMS » Compared to alternative open source headless CMS software","id":"239","title":"Compared to alternative open source headless CMS software"},"24":{"body":"","breadcrumbs":"What is Atomic Data? » What is Atomic Data?","id":"24","title":"What is Atomic Data?"},"240":{"body":"Atomic Data has been designed with front-end development in mind. The open source Atomic-Data-Browser , which is feature-packed with chatrooms, a real-time collaborative rich text editor, tables and more, is powered by two libraries: @tomic/lib ( docs ) is the core library, containing logic for fetching and storing data, keeping things in sync using websockets, and signing commits . @tomic/react ( docs ) is the react library, featuring various useful hooks that mimic useState, giving you real-time updates through your app. Check out the template on CodeSandbox : Feeling stuck? Post an issue or join the discord . Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » In a React project » Using Atomic Data in a JS / TS React project","id":"240","title":"Using Atomic Data in a JS / TS React project"},"241":{"body":"A Personal Data Store (or personal data service) is a place where you store all sorts of personal information. For example a list of contacts, todo items, pictures, or your profile data. Not that long ago, the default for this was the my Documents folder on your hard drive. But as web applications became better, we started moving our data to the cloud. More and more of our personal information is stored by large corporations who use the information to build profiles to show us ads. And as cloud consumers, we often don't have the luxury of moving our personal data to a place to where we want it to be. Many services don't even provide export functionality, and even if they do, the exports often lack information or are not interoperable with other apps. Atomic Data could help to re-introduce data ownership. Because the specification helps to standardize information, it becomes easier to make data interoperable. And even more important: Apps don't need their own back-end - they can use the same personal data store: an Atomic Server (such as this one ). Realizing this goal requires quite a bit of work, though. This specification needs to mature, and we need reliable implementations. We also need proper tutorials, libraries and tools that convince developers to use atomic data to power their applications. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Personal Data Store » Atomic Data for personal data stores","id":"241","title":"Atomic Data for personal data stores"},"242":{"body":"Recent developments in machine learning (and specifically deep neural networks) have shown how powerful and versatile AI can be. Both Atomic Data and AI can be used to store and query knowledge, but we think of these technologies as complementary due to their unique characteristics: Artificial Intelligence can make sense of (unstructured) data, so you can feed it any type of data. However, AIs often produce unpredictable and sometimes incorrect results. Atomic Data helps to make data interoperable, reliable and predictable. However, it requires very strict inputs. There are two ways in which Atomic Data and AI can help each other: AI can help to make creating Atomic Data easier. Atomic Data can help train AIs. Atomic Data can provide AIs with reliable, machine readable data for answering questions.","breadcrumbs":"Potential use cases » Artificial Intelligence » Atomic Data & Artificial Intelligence","id":"242","title":"Atomic Data & Artificial Intelligence"},"243":{"body":"While writing text, an AI might help make suggestions to disambiguate whatever it is you're writing about. For example, you may mention John and your knowledge graph editor (like atomic-server) could suggest John Wayne or John Cena. When making your selection, a link will be created which helps to make your knowledge graph more easily browsable. AI could help make these suggestions through context-aware entity recognition .","breadcrumbs":"Potential use cases » Artificial Intelligence » Make it easier to create Atomic Data using AI","id":"243","title":"Make it easier to create Atomic Data using AI"},"244":{"body":"During training, you could feed Atomic Data to your AI to help it construct a reliable, consistent model of the knowledge relevant to your organization or domain. You could use atomic-server as the knowledge store, and iterate over your resources and let your AI parse them.","breadcrumbs":"Potential use cases » Artificial Intelligence » Train AIs with Atomic Data","id":"244","title":"Train AIs with Atomic Data"},"245":{"body":"Instead of training your AI, you might provide your AI with an interface to perform queries. Note that at this moment, I'm not aware of any AIs that can actually construct and execute queries, but because of recent advancements (e.g. ChatGPT), we know that there now exist AIs that can create SQL queries based on human text. In the future, you might let your AI query your atomic-server to find reliable and up-to-date answers to your questions. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Artificial Intelligence » Provide AI with query access to answer questions","id":"245","title":"Provide AI with query access to answer questions"},"246":{"body":"Buying good and services on the internet is currently responsible for about 15% of all commerce, and is steadily climbing. The internet makes it easier to find products, compare prices, get information and reviews, and finally order something. But the current e-commerce situation is far from perfect, as large corporations tend to monopolize, which means that we have less competition which ultimately harms prices and quality for consumers. Atomic Data can help empower smaller businesses, make searching for specific things way easier and ultimately make things cheaper for everyone.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Atomic Data for e-commerce & marketplaces","id":"246","title":"Atomic Data for e-commerce & marketplaces"},"247":{"body":"Platforms like Uber, AirBNB and SnapCar are virtual marketplaces that help people share and find services. These platforms are responsible for: providing an interface for managing offers (e.g. describe your car, add specifications and pricing) hosting the data of the offers themselves (make the data available on the internet) providing a search interface (which means indexing the data from all the existing offers) facilitating the transaction / payments provide trust through reviews and warranties (e.g. refunds if the seller fails to deliver) The fact that these responsibilities are almost always combined in a single platforms leads to vendor lock-in and an uncompetitive landscape, which ultimately harms consumers. Currently, if you want to manage your listing / offer on various platforms, you need to manually adjust it on all these various platforms. Some companies even prohibit offering on multiple platforms (which is a legal problem, not a technical one). This means that the biggest (most known) platforms have the most listings, so if you're looking for a house / car / rental / meal, you're likely to go for the biggest business - because that's the one that has the biggest assortment. Compare this to how the web works: every browser should support every type of webpage, and it does not matter where the webpage is hosted. I can browse a webpage written on a mac on my windows machine, and I can read a webpage hosted by amazon on an google device. It does not matter, because the web is standardized and open , instead of being centralized and managed by one single company as proprietary data. This openness of the web means that we get search engines like Google and Bing that scrape the web and add it to their index. This results in a dynamic where those who want to sell their stuff will need to share their stuff using an open standard (for webpages things like HTML and sometimes a bit of metadata), so crawlers can properly index the webpages. We could do the same thing for structured data instead of pages , and that's what Atomic Data is all about. Let's discuss a more practical example of what this could mean. Consider a restaurant owner who currently uses UberEats as their delivery platform. Using Atomic Data, they could define their menu on their own website. The Atomic Schema specification makes it easy to standardize how the data of a menu item looks like (e.g. price, image, title, allergens, vegan...). Several platforms (potentially modern variants of platforms like JustEat / UberEats) could then crawl this standardized Atomic Data, index it, and make it easily searchable. The customer would use one (or multiple) of these platforms, that would probably have the exact same offers. Where these platforms might differ, is in their own service offering, such as delivery speed or price. This would result in a more competitive and free market, where customers would be able to pick a platform based on their service price and quality, instead of their list of offerings. It would empower the small business owner to be far more flexible in which service they will do business with.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Decentralize platform / sharing economy service marketplaces","id":"247","title":"Decentralize platform / sharing economy service marketplaces"},"248":{"body":"Searching for products on the internet is mostly limited to text search. If we want to buy a jacket, we see tonnes of jackets that are not even available in our own size. Every single website has their own way of searching and filtering. Imagine making a search query in one application, and sending that to multiple suppliers , after you'll receive a fully personalized and optimized list of products. Browsing in an application that you like to use, not bound to any one specific store, that doesn't track you, and doesn't show advertisements. It is a tool that helps you to find what you need, and it is the job of producers to accurately describe their products in a format that your product browser can understand. How do we get there? Well, for starters, producers and suppliers will need to reach a consensus on how to describe their articles . This is not new; for many products, we already have a common language. Shoes have a shoe size, televisions have a screen size in diagonal inches, brightness is measured in nits, etc. Describing this in a machine-readable and predictable format as data is the next logical step. This is, of course, where Atomic Schema could help. Atomic-server could be the connected, open source database that suppliers use to describe their products as data. Then we'll also need to build a search interface that performs federated queries, and product-dependent filter options.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Highly personalized and customizable search","id":"248","title":"Highly personalized and customizable search"},"249":{"body":"Imagine buying a product, and being able to see where each part came from. The car that you buy might contain a list of all the maintenance moments, and every replaced part. The raw materials used could be traced back to their origins. This requires a high degree of coordination from each step in the supply chain. This is exactly where Atomic Data shines, though, as it provides a highly standardized way of structuring, querying, authenticating an authorizing data. Before we get to this point, we'll need to: Describe domain-specific product Classes using Atomic Schema, and their Properties.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Product lifecycle & supply chain insights","id":"249","title":"Product lifecycle & supply chain insights"},"25":{"body":"Atomic Data is a modular specification for sharing information on the web. Since Atomic Data is a modular specification, you can mostly take what you want to use, and ignore the rest. The Core part, however, is the only required part of the specification, as all others depend on it. Atomic Data Core can be used to express any type of information, including personal data, vocabularies, metadata, documents, files and more. It's designed to be easily serializable to both JSON and linked data formats. It is a typed data model, which means that every value must be validated by their datatype.","breadcrumbs":"What is Atomic Data? » Atomic Data Core","id":"25","title":"Atomic Data Core"},"250":{"body":"Imagine buying an external battery pack with a production error. All units with a serial number between 1561168 and 1561468 have a serious error, where overcharging could lead to spontaneous combustion. This is something that you'd like to know. But how would the manufacturer of that resource know where to find you? Well, if your Atomic Server would have a list of all the things that you've bought, it could automatically subscribe to safety updates from all manufacturers. When any of these manufacturers would publish a safety warning about a product that you possess, you'll get an alert. Before we have this, well need to: Build notifications support (see issue ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » E-commerce & marketplaces » Product specific updates after purchase","id":"250","title":"Product specific updates after purchase"},"251":{"body":"Surveys and Questionnaires haven't been evolving that much over the past few years. However, Atomic Data has a couple of unique characteristics that would make it especially suitable for surveys. It could help make surveys easier to fill in , easier to analyze , easier to create , and more privacy friendly . Re-useable survey responses which enable pre-filled form fields which can save the respondent a lot of time. They also make it possible for users to use their own responses to gather insights , for example into their own health. Question standardization which helps researchers to re-use (validated) questions, which saves time for the researcher Privacy friendly, yet highly personalized invites as a researcher, send profile descriptions to servers, and let the servers tell if the question is relevant.","breadcrumbs":"Potential use cases » Surveys » Atomic Data for Surveys","id":"251","title":"Atomic Data for Surveys"},"252":{"body":"Since many surveys describe personal information, it makes sense, as a respondent, to have a way of storing the information you filled in in a place that you control. Making this possible enables a few nice use cases. Auto-fill forms . Previously entered response data could be usable while filling in new surveys. This could result in a UX similar to auto-filling forms, but far more powerful and rich than browsers currently support. Analyze your own personal data . Standardized survey responses could also be used to gather insights into your own personal information. For example, filling in a survey about how your shortness of breath linked to air pollution has been today could be used in a different app to make a graph that visualizes how your shortness of breath has progressed over the months for personal insight. Achieving something like this requires a high degree of standardization in both the surveys and the responses. The survey and its questions should provide information about: The question . This is required in all survey questions, of course. The required datatype of the response, such as 'string', or 'datetime' or some 'enumeration'. A (link to a) semantic definition of the property being described. This is a bit more obscure: all pieces of linked data use links, instead of keys, to describe the relation between some resource and its property. For example, a normal resource might have a 'birthdate', while in linked data, we'd use ' https://schema.org/birthDate '. This semantic definition makes things easier to share, because it prevents misinterpretation. Links remove ambiguity. A query description . This is even more obscure, but perhaps the most interesting. A query description means describing how a piece of information can be retrieved. Perhaps a question in a survey will want to know what your payment pointer is. If a piece of software wants to auto-fill this field, it needs to know where it can find your payment pointer.","breadcrumbs":"Potential use cases » Surveys » Re-useable survey responses","id":"252","title":"Re-useable survey responses"},"253":{"body":"We can think of Questions as Resources that have a URL, and can be shared. Sharing questions like that can make it easier to use the same questions across surveys, which in turn can make it easier to interpret data. Some fields (e.g. medical) have highly standardized questions, which have been validated by studies. These Question resources should contain information about: The question itself and its translations The datatype of the response (e.g. date, string, enum), denoted by the Property of the response. The path of the data , relative to the user. For example, a user's birthdate can be found by going to / profile birthdate Atomic Schema and Atomic Paths can be of value here.","breadcrumbs":"Potential use cases » Surveys » Question Standardization","id":"253","title":"Question Standardization"},"254":{"body":"Currently, a researcher needs to either build their own panel, or use a service that has a lot of respondents. Sometimes, researchers will need a very specific target audience, like a specific age group, nationality, gender, or owners of specific types of devices. Targeting these individuals is generally done by having a large database of personal information from many individuals. But there is another way of doing this: client-side filtering Instead of asking for the users data, and storing it centralized, we could send queries to decentralized personal data stores. There queries basically contain the targeting information and an invitation. The query is executed on the personal data store, and if the user characteristics align with the desired participants profile, the user receives an invite. The user only sees invitations that are highly relevant, without sharing any information with the researcher. The Atomic Data specification solves at least part of this problem. Paths are used to describe the queries that researchers make. AtomicServer can be used as the personal online data store. However, we still need to specify the process of sending a request to an individual (probably by introducing an inbox ) Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Surveys » Privacy friendly invites with client-side filtering","id":"254","title":"Privacy friendly invites with client-side filtering"},"255":{"body":"","breadcrumbs":"Potential use cases » Verifiable Credentials » Atomic Data and Verifiable Credentials / SSI","id":"255","title":"Atomic Data and Verifiable Credentials / SSI"},"256":{"body":"Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. For example, you could have a credential that proves your degree, signed by your education. These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it.","breadcrumbs":"Potential use cases » Verifiable Credentials » What are Verifiable Credentials / Self-Sovereign Identity","id":"256","title":"What are Verifiable Credentials / Self-Sovereign Identity"},"257":{"body":"Firstly, Atomic Commit are already verifiable using signatures that contain all the needed information. Secondly, Atomic Schema can be used for standardizing Credential Schemas.","breadcrumbs":"Potential use cases » Verifiable Credentials » What makes Atomic Data suitable for this","id":"257","title":"What makes Atomic Data suitable for this"},"258":{"body":"Every time an Agent updates a Resource, an Atomic Commit is made. This Commit is cryptographically signed by an Agent, just like how Verfifiable Credentials are signed. In essence, this means that all atomic data created through commits is fully verifiable . How could this verification work? Find the Commit that has created / edited the value that you want to verify. This can be made easier with a specialized Endpoint that takes a resource, property and signer and returns the associated Commit(s). Check the signer of the Commit . Is that an Agent that you trust? Verify the signature of the Commit using the public key of the Agent. Sometimes, credentials need to be revoked. How could revocation work? Find the Commit (see above) Get the signer (see above) Find the /isRevoked Endpoint of that signer , send a Request there to make sure the linked Commit is still valid and not revoked. ( Discussion )","breadcrumbs":"Potential use cases » Verifiable Credentials » Every Atomic Commit is a Verifiable Credential","id":"258","title":"Every Atomic Commit is a Verifiable Credential"},"259":{"body":"If you are a Verifier who wants to check someone's birthdate , you'll probably expect a certain datatype in return, such as a date that is formatted in some specific way. Atomic Schema makes it possible to express which properties are required in a certain Class , and it also makes it possible to describe which datatype is linked to a specific Property . Combined, they allow for fine-grained descriptions of models / classes / schemas. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Verifiable Credentials » Use Atomic Schema for standardizing Credentials","id":"259","title":"Use Atomic Schema for standardizing Credentials"},"26":{"body":"Browsable : Data should explicitly link to other pieces of data, and these links should be followable. Semantic : Every data Atom and relation has a clear semantic meaning. Interoperable : Plays nice with other data formats (e.g. JSON, XML, and all RDF formats). Open : Free to use, open source, no strings attached. Clear Ownership : The data shows who (or which domain) is in control of the data, so new versions of the data can easily be retrieved. Mergeable : Any two sets of Atoms can be merged into a single graph without any merge conflicts / name collisions. Extensible : Anyone can define their own data types and create Atoms with it. ORM-friendly : Navigate a decentralized graph by using dot.syntax, similar to how you navigate a JSON object in javascript. Type-safe : All valid Atomic data has an unambiguous, static datatype.","breadcrumbs":"What is Atomic Data? » Design goals","id":"26","title":"Design goals"},"260":{"body":"A data catalog is a system that collects metadata - data about data. They are inventories of datasets. They are often used to: Increase data-reuse of (open) datasets . By making descriptions of datasets, you increase their discoverability. Manage data quality . The more datasets you have, the more you'll want to make sure they are usable. This could mean settings serialization requirements or schema compliance. Manage compliance with privacy laws . If you have datasets that contain GDPR-relevant data (personal data), you're legally required to maintain a list of where that data is stored, what you need it for and what you're doing with it.","breadcrumbs":"Potential use cases » Data Catalog » Using Atomic-Server as a Data Catalog","id":"260","title":"Using Atomic-Server as a Data Catalog"},"261":{"body":"Atomic-Server is a powerful Database that can be used as a modern, powerful data catalog. It has a few advantages over others: Free & open source . MIT licensed! Many built-in features, like full-text search , history , live synchronization and rights management . Great performance . Requests take nanoseconds to milliseconds. Very easy to setup . One single binary, no weird runtime dependencies. Everything is linked data. Not just datasets (which you might), but also everything around them (users, comments, implementations). Powerful CMS capabilities . With built in support for Tables and Documents, you can easily create webpages with articles or other types of resources using Atomic Server. Atomic Schema can be used to describe the shape of your datasets : the properties you use, which fields are required - things like that. Because Atomic Schema uses URLs, we can easily re-use properties and class definitions. This helps to make your datasets highly interoperable.","breadcrumbs":"Potential use cases » Data Catalog » Why Atomic Server could be great for Data Catalogs","id":"261","title":"Why Atomic Server could be great for Data Catalogs"},"262":{"body":"Most datacatalogs only have metadata. However, if you convert your existing CSV / JSON / XML / ... datasets to Atomic Data , you can host them on Atomic-Server as well. This has a few advantages: Data previews in the browser, users can navigate through the data without leaving the catalog. Data itself becomes browseable , too, which means you can traverse a graph by clicking on link values. Standardized Querying means you can easily, from the data catalog, can filter and sort the data. Cross-dataset search . Search queries can be performed over multiple Atomic Data servers at once, enabling searching over multiple datasets. This is also called federated search .","breadcrumbs":"Potential use cases » Data Catalog » When Atomic-Server is used for hosting the data, too","id":"262","title":"When Atomic-Server is used for hosting the data, too"},"263":{"body":"Atomic-Server is MIT licensed - which is more permissive than CKAN's AGPL license. Whereas CKAN needs an external database, a python runtime, solrd and a HTTPS server, Atomic-Server has all of these built-in! CKAN uses plain RDF, which has some very important drawbacks . But... Atomic-Server still misses a few essentials right now:","breadcrumbs":"Potential use cases » Data Catalog » Atomic Server compared to CKAN","id":"263","title":"Atomic Server compared to CKAN"},"264":{"body":"Add a model for datasets. This is absolutely essential. It could be based on (and link to) DCAT, but needs to be described using Atomic Schema. This step means we can generate forms for Datasets and we can validate their fields. Add views for datasets. Atomic-Server already renders decent views for unknown resources, but a specific view should be created for Datasets. Add a PR if you have a React view! Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Data Catalog » What we should add to Atomic-Server before it's a decent Data Catalog","id":"264","title":"What we should add to Atomic-Server before it's a decent Data Catalog"},"265":{"body":"The Atomic Data specification can help make online educational content more modular . This has two direct benefits: Separate learning goals from how they are achieved . Some might prefer watching a video, others may want to read. Both can describe the same topic, and share the same test. Improve discoverability . Create links between topics so students know which knowledge is needed to advance to the next topic.","breadcrumbs":"Potential use cases » Education » Atomic Data for Education - standardized, modular e-learning","id":"265","title":"Atomic Data for Education - standardized, modular e-learning"},"266":{"body":"We can think of Knowledge as being building blocks that we need to do certain things. And we can think of Lessons as teaching certain pieces of knowledge, while at the same time requiring other pieces of knowledge. For example, an algebra class might require that you already know how to multiply, add, etc. We can think of Test as verifying if a piece of knowledge is properly understood. Now there's also a relationship between the Student and all of these things. A student is following a bunch Lessons in which they've made some progress, has done some Tests which resulted in Scores. Describing our educational content in this fashion has a bunch of advantages. For students, this means they can know in advance if they can get started with a course, or if they need to learn something else first. Conversely, they can also discover new topics that depend on their previous piece of knowledge. For teachers, this means they can re-use existing lessons for the courses.","breadcrumbs":"Potential use cases » Education » Modular educational content - a model","id":"266","title":"Modular educational content - a model"},"267":{"body":"Powerful built-in document editor Drag & drop file support Versioning Open source, so no vendor lock-in, and full customizability Real-time updates, great for collaboration Online by default, so no extra hassle with putting courses on the internet However, there is still a lot to do! Turn the model described above into an actual Atomic Schema data model Build the GUI for the application Add plugins / extenders for things like doing tests (without giving the answer to students!) Create educational content Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Education » What makes Atomic-Server a great tool for creating online courseware","id":"267","title":"What makes Atomic-Server a great tool for creating online courseware"},"268":{"body":"In most countries, food producers are required to provide nutritional information on the packages of products, which helps citizens to make informed decisions about what to eat. But how about we upgrade these labels to machine-readable, atomic data? We could describe products using Atomic Data, and put their identifiers (Subject URLs) as QR codes on packages. Imagine these scenarios:","breadcrumbs":"Potential use cases » Food labels » Atomic Data for food label standardization","id":"268","title":"Atomic Data for food label standardization"},"269":{"body":"You want to know more about some new cereal you've just bought. You scan the QR code on the package. A web app opens that shows detailed, yet highly visual information about its nutritional value. The screen is no longer limited to what realistically fits on a package. The elements are interactive, and provide explanations. Everything is translated to the user's language. If the food is (soon to be) expired, the app will clearly and visually alert you. Click on the question mark next to granulated sugars, and you get an explanation of what this means to your health. E-numbers are clickable, too, and help you instantly understand far more about what they represent. When AR glasses become technologically feasible, you could even help people make better decisions while doing grocery shopping. Using links instead of names helps to guide consumers to trustworthy pages that communicate clearly. The alternative is that they use search engines, and maybe end up reading misinformation.","breadcrumbs":"Potential use cases » Food labels » Scan labels to get detailed, reliable, interactive information","id":"269","title":"Scan labels to get detailed, reliable, interactive information"},"27":{"body":"","breadcrumbs":"What is Atomic Data? » Concepts","id":"27","title":"Concepts"},"270":{"body":"You order a bunch of products on your favorite groceries delivery app. When going to the payment screen, you are shown a nutritional overview of your order. You see that with this diet, you might have a deficit of the Lysene amino acid. The shopping cart suggest adding egg, dairy or soy to your diet. This can be done, because the groceries app can easily check detailed information about the food in your shopping cart, and reason about your dietary intake.","breadcrumbs":"Potential use cases » Food labels » Provide nutritional advice based on shopping behavior","id":"270","title":"Provide nutritional advice based on shopping behavior"},"271":{"body":"The governing body (e.g. the European Commision) should set up an Atomic Server and host it on some recognizable domain. Create the Class for a food product, containing the same (or more) information that is shown on food packages. Create the Class for Ingredient. Create instances for various Ingredients. Start with the E-numbers, work your way up to all kinds of used ingredients. Add Translations. Give instructions to Producers on how to describe their Products. Give them to option to host their own Server and control their own data, and give them the option to use some EU server. Found a bug? Edit this page on GitHub.","breadcrumbs":"Potential use cases » Food labels » How to achieve all this","id":"271","title":"How to achieve all this"},"272":{"body":"Although Atomic Data is a specification, it also has reference implementations: Open source (MIT licenced) software for Atomic Data: Server + Database : atomic-server GUI : atomic-data-browser CLI : atomic-cli Libraries (MIT licenced) to build apps with: Typescript / javascript library: @tomic/lib (npm) React library: @tomic/react (npm) Rust library: atomic-lib (crates.io)","breadcrumbs":"Software and libraries » Software and libraries for Atomic Data","id":"272","title":"Software and libraries for Atomic Data"},"273":{"body":"","breadcrumbs":"Software and libraries » Applications","id":"273","title":"Applications"},"274":{"body":"Server for hosting Atomic Data. Uses atomic-lib. Responds to requests for created Atomic Resources, makes atomic data available at their URL. Embedded database Authorization, authentication, versioning, collections, pagination Browser-friendly HTML presentation, JSON serialization, RDF serialization. One liner: $ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server demo repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-server","id":"274","title":"atomic-server"},"275":{"body":"Data browser, powered by @tomic/lib and @tomic/react. View & edit atomic data, using dynamic forms Collections with pagination and sorting Client-side full-text search demo (same as atomic-server) repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-data-browser","id":"275","title":"atomic-data-browser"},"276":{"body":"A tool for generating / querying Atomic Data from the command line. Install with cargo install atomic-cli. atomic 0.20.0\nJoep Meindertsma \nCreate, share, fetch and model linked atomic data! USAGE: atomic-cli [SUBCOMMAND] FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: destroy Permanently removes a Resource. Uses Commits. edit Edit a single Atom from a Resource using your text editor. Uses Commits. get Traverses a Path and prints the resulting Resource or Value. help Prints this message or the help of the given subcommand(s) list List all bookmarks new Create a Resource remove Remove a single Atom from a Resource. Uses Commits. set Update an Atom's value. Uses Commits. tpf Finds Atoms using Triple Pattern Fragments. Visit https://github.com/atomicdata-dev/atomic-data-browser for more info repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-cli","id":"276","title":"atomic-cli"},"277":{"body":"Install here .","breadcrumbs":"Software and libraries » Raycast extension: Full-text search from your desktop","id":"277","title":"Raycast extension: Full-text search from your desktop"},"278":{"body":"","breadcrumbs":"Software and libraries » Libraries","id":"278","title":"Libraries"},"279":{"body":"Javascript / typescript libraries, especially useful for creating front-end apps. Fork the atomic-data-react-template on codesandbox to get started directly!","breadcrumbs":"Software and libraries » @tomic/lib and @tomic/react","id":"279","title":"@tomic/lib and @tomic/react"},"28":{"body":"A Resource is a bunch of information about a thing, referenced by a single link (the Subject ). Formally, it is a set of Atoms (i.e. a Graph) that share a Subject URL. You can think of a Resource as a single row in a spreadsheet or database. In practice, Resources can be anything - a Person, a Blogpost, a Todo item. A Resource consists of at least one Atom, so it always has some Property and some Value. A Property can only occur once in every Resource.","breadcrumbs":"What is Atomic Data? » Resource","id":"28","title":"Resource"},"280":{"body":"Library that powers atomic-server and atomic-cli. Features: An in-memory store Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples) Commit validation and processing Constructing Collections Path traversal Basic validation repository + issue tracker .","breadcrumbs":"Software and libraries » atomic-lib (Rust)","id":"280","title":"atomic-lib (Rust)"},"281":{"body":"This document contains a set of ideas that would help achieve that success. Open a PR and edit this file to add your project!","breadcrumbs":"Software and libraries » Want to add to this list? Some ideas for tooling","id":"281","title":"Want to add to this list? Some ideas for tooling"},"282":{"body":"A mobile app for granting permissions to your data and signing things. See github issue . Show a notification when you try to log in somewhere with your agent Notifications for mentions and other social items Check uptime of your server","breadcrumbs":"Software and libraries » Atomic Companion","id":"282","title":"Atomic Companion"},"283":{"body":"Import data from some data source (CSV / SQL / JSON / RDF), fill in the gaps (mapping / IRI creation / datatypes) an create new Atoms Perhaps a CLI, library, GUI or a combination of all of these","breadcrumbs":"Software and libraries » Atomizer (data importer and conversion kit)","id":"283","title":"Atomizer (data importer and conversion kit)"},"284":{"body":"A simple (JS) widget that can be embedded anywhere, which converts an Atomic Graph into an HTML view. Would be useful for documentation, and as a default view for Atomic Data. Use @tomic/react and @tomic/lib to get started","breadcrumbs":"Software and libraries » Atomic Preview","id":"284","title":"Atomic Preview"},"285":{"body":"Library + front-end app for browsing / manipulating Atomic Data on mobile devices. Found a bug? Edit this page on GitHub.","breadcrumbs":"Software and libraries » Atomic-Dart + Flutter","id":"285","title":"Atomic-Dart + Flutter"},"286":{"body":"","breadcrumbs":"Acknowledgements » Acknowledgements","id":"286","title":"Acknowledgements"},"287":{"body":"Joep Meindertsma ( joepio from Ontola.io )","breadcrumbs":"Acknowledgements » Authors:","id":"287","title":"Authors:"},"288":{"body":"Thom van Kalkeren (my colleague, friend and programming mentor who came up with many great ideas on how to work with RDF, such as HexTuples and linked-delta ) Tim Berners-Lee (for everything he did for linked data and the web) Ruben Verborgh (for doing great work with RDF, such as the TPF spec) Pat McBennett (for lots of valuable feedback on initial Atomic Data docs) Manu Sporny (for his work on JSON-LD, which was an important inspiration for JSON-AD) Jonas Smedegaard (for the various interesting talks we had and the feedback he provided) Arthur Dingemans (for sharing his thoughts, providing feedback and his valuable suggestions) Anja Koopman (for all her support, even when this project ate away days and nights of our time together) Alex Mikhalev (for sharing many inspiring project and ideas) Daniel Lutrha (for inspiring me to be more ambitious and for providing lots of technical ideas) All the other people who contributed to linked data related standards Found a bug? Edit this page on GitHub.","breadcrumbs":"Acknowledgements » Special thanks to:","id":"288","title":"Special thanks to:"},"289":{"body":"We'll send you an update (max once per month) when there's something relevant to share, such as Major changes to the specification Major new releases (with new features) Use-cases, implementations Tutorials, blog posts Organizational / funding news Click here to sign up to the Atomic Data Newsletter Found a bug? Edit this page on GitHub.","breadcrumbs":"Newsletter » Subscribe to the Atomic Data newsletter","id":"289","title":"Subscribe to the Atomic Data newsletter"},"29":{"body":"Every Resource is composed of Atoms . The Atom is the smallest possible piece of meaningful data / information (hence the name). You can think of an Atom as a single cell in a spreadsheet or database. An Atom consists of three fields: Subject : the thing that the atom is providing information about. This is typically also the URL where we can find more information about it. Property : the property of the thing that the atom is about (will always be a URL to a Property ). Value : the new piece of information about the Atom. If you're familiar with RDF, you'll notice similarities. An Atom is comparable with an RDF Triple / Statement ( although there are important differences ). Let's turn this sentence into Atoms: Arnold Peters, who's born on the 20th of Januari 1991, has a best friend named Britta Smalls. Subject Property Value Arnold last name Peters Arnold birthdate 1991-01-20 Arnold best friend Britta Britta last name Smalls The table above shows human readable strings, but in Atomic Data, we use links (URLs) wherever we can. That's because links are awesome. Links remove ambiguity (we know exactly which person or property we mean), they are resolvable (we can click on them), and they are machine readable (machines can fetch links to do useful things with them). So the table from above, will more closely resemble this one: Subject Property Value https://example.com/arnold https://example.com/properties/lastname Peters https://example.com/arnold https://example.com/properties/birthDate 1991-01-20 https://example.com/arnold https://example.com/properties/bestFriend https://example.com/britta https://example.com/britta https://example.com/properties/lastname Smalls The standard serialization format for Atomic Data is JSON-AD, which looks like this: [{ \"@id\": \"https://example.com/arnold\", \"https://example.com/properties/lastname\": \"Peters\", \"https://example.com/properties/birthDate\": \"1991-01-20\", \"https://example.com/properties/bestFriend\": \"https://example.com/britta\",\n},{ \"@id\": \"https://example.com/britta\", \"https://example.com/properties/lastname\": \"Smalls\",\n}] The @id field denotes the Subject of each Resource, which is also the URL that should point to where the resource can be found. In the JSON-AD example above, we have: two Resources , describing two different Subjects : https://example.com/arnold and https://example.com/britta. three different Properties (https://example.com/properties/lastname, https://example.com/properties/birthDate, and https://example.com/properties/bestFriend) four Values (Peters, 1991-01-20, https://example.com/britta and Smalls) four Atoms - every row is one Atom. All Subjects and Properties are Atomic URLs: they are links that point to more Atomic Data. One of the Values is a URL, too, but we also have values like Arnold and 1991-01-20. Values can have different Datatypes In most other data formats, the datatypes are limited and are visually distinct. JSON, for example, has array, object, string, number and boolean. In Atomic Data, however, datatypes are defined somewhere else, and are extendible. To find the Datatype of an Atom, you fetch the Property, and that Property will have a Datatype. For example, the https://example.com/properties/bornAt Property requires an ISO Date string, and the https://example.com/properties/firstName Property requires a regular string. This might seem a little tedious and weird at first, but is has some nice advantages! Their Datatypes are defined in the Properties.","breadcrumbs":"What is Atomic Data? » Atom (or Atomic Triple)","id":"29","title":"Atom (or Atomic Triple)"},"290":{"body":"Atomic Data is an open specification, and that means that you're very welcome to share your thoughts and help make this standard as good as possible. Things you can do: Join the Discord server for voice / text chat Start playing with / contributing to the implementations Drop an issue on Github to share your suggestions or criticism of this book / spec Subscribe to the newsletter Join our W3C Community Group Found a bug? Edit this page on GitHub.","breadcrumbs":"Get involved » Get involved","id":"290","title":"Get involved"},"3":{"body":"Make sure to join our Discord if you'd like to discuss Atomic Data with others.","breadcrumbs":"Atomic Data Overview » Get involved","id":"3","title":"Get involved"},"30":{"body":"The Subject field is the first part of an Atom. It is the identifier that the rest of the Atom is providing information about. The Subject field is a URL that points to the Resource. The creator of the Subject MUST make sure that it resolves. In other words: following / downloading the Subject link will provide you with all the Atoms about the Subject (see Querying Atomic Data . This also means that the creator of a Resource must make sure that it is available at its URL - probably by hosting the data, or by using some service that hosts it. In JSON-AD, the Subject is denoted by @id.","breadcrumbs":"What is Atomic Data? » Subject field","id":"30","title":"Subject field"},"31":{"body":"The Property field is the second part of an Atom. It is a URL that points to an Atomic Property . Examples can be found at https://atomicdata.dev/properties. The Property field MUST be a URL, and that URL MUST resolve (it must be publicly available) to an Atomic Property. The Property is perhaps the most important concept in Atomic Data, as it is what enables the type safety (thanks to datatype ) and the JSON compatibility (thanks to shortname ). We also use Properties for rendering fields in a form, because the Datatype, shortname and description helps us to create an intuitive, easy to understand input for users.","breadcrumbs":"What is Atomic Data? » Property field","id":"31","title":"Property field"},"32":{"body":"The Value field is the third part of an Atom. In RDF, this is called an object. Contrary to the Subject and Property values, the Value can be of any datatype. This includes URLs, strings, integers, dates and more.","breadcrumbs":"What is Atomic Data? » Value field","id":"32","title":"Value field"},"33":{"body":"A Graph is a collection of Atoms. A Graph can describe various subjects, which may or may not be related. Graphs can have several characteristics (Schema Complete, Valid, Closed) In mathematial graph terminology, a graph consists of nodes and edges . The Atomic Data model is a so called directed graph , which means that relationships are by default one-way. In Atomic Data, every node is a Resource, and every edge is a Property.","breadcrumbs":"What is Atomic Data? » Graph","id":"33","title":"Graph"},"34":{"body":"A Nested Resource only exists inside of another resource. It does not have its own subject. In the next chapter, we'll explore how Atomic Data is serialized. Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Nested Resource","id":"34","title":"Nested Resource"},"35":{"body":"Atomic Data is not necessarily bound to a single serialization format. It's fundamentally a data model, and that's an important distinction to make. It can be serialized in different ways, but there is only one required: JSON-AD.","breadcrumbs":"What is Atomic Data? » Serialization » Serialization of Atomic Data","id":"35","title":"Serialization of Atomic Data"},"36":{"body":"JSON-AD (more about that on the next page) is specifically designed to be a simple, complete and performant format for Atomic Data. { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/parent\": \"https://atomicdata.dev/properties\", \"https://atomicdata.dev/properties/shortname\": \"description\"\n} Read more about JSON-AD","breadcrumbs":"What is Atomic Data? » Serialization » JSON-AD","id":"36","title":"JSON-AD"},"37":{"body":"Atomic Data is designed to be serializable to clean, simple JSON , for usage in (client) apps that don't need to know the full URLs of properties. { \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"parent\": \"https://atomicdata.dev/properties\", \"shortname\": \"description\"\n} Read more about JSON and Atomic Data","breadcrumbs":"What is Atomic Data? » Serialization » JSON (simple)","id":"37","title":"JSON (simple)"},"38":{"body":"Since Atomic Data is a strict subset of RDF, RDF serialization formats can be used to communicate and store Atomic Data, such as N-Triples, Turtle, HexTuples, JSON-LD and other RDF serialization formats . However, not all valid RDF is valid Atomic Data. Atomic Data is more strict. Read more about serializing Atomic Data to RDF in the RDF interoperability section . JSON-LD: { \"@context\": { \"datatype\": { \"@id\": \"https://atomicdata.dev/properties/datatype\", \"@type\": \"@id\" }, \"description\": \"https://atomicdata.dev/properties/description\", \"is-a\": { \"@container\": \"@list\", \"@id\": \"https://atomicdata.dev/properties/isA\" }, \"parent\": { \"@id\": \"https://atomicdata.dev/properties/parent\", \"@type\": \"@id\" }, \"shortname\": \"https://atomicdata.dev/properties/shortname\" }, \"@id\": \"https://atomicdata.dev/properties/description\", \"datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"is-a\": [ \"https://atomicdata.dev/classes/Property\" ], \"parent\": \"https://atomicdata.dev/properties\", \"shortname\": \"description\"\n} Turtle / N-Triples: .\n .\n \"description\"^^ .\n \"https://atomicdata.dev/classes/Property\"^^ .\n \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\"^^ . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Serialization » RDF serialization formats","id":"38","title":"RDF serialization formats"},"39":{"body":"Although you can use various serialization formats for Atomic Data, JSON-AD is the default and only required serialization format. It is what the current Rust and Typescript / React implementations use to communicate. It is designed to feel familiar to developers and to be easy and performant to parse and serialize. It is inspired by JSON-LD . It uses JSON , but has some additional constraints: Every single Object is a Resource. Every Key is a Property URL. Other keys are invalid. Each Property URL must resolve to an online Atomic Data Property. The @id field is special: it defines the Subject of the Resource. If you send an HTTP GET request there with an content-type: application/ad+json header, you should get the full JSON-AD resource. JSON arrays are mapped to Resource Arrays Numbers can be Integers , Timestamps or Floats . JSON booleans map to Booleans . JSON strings can be many datatypes, including String , Markdown , Date or other. Nested JSON Objects are Nested Resources. A Nested Resource can either be Anonymous (without an @id subject) or a Named Nested Resource (with an @id subject). Everywhere a Subject URL can be used as a value (i.e. all properties with the datatype atomicURL ), a Nested Resource can be used instead. This also means that an item in an ResourceArray can be a Nested Resource. The root data structure must either be a Named Resource (with an @id), or an Array containing Named Resources. When you want to describe multiple Resources in one JSON-AD document, use an array as the root item. Let's look at an example JSON-AD Resource: { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} The mime type (for HTTP content negotiation) is application/ad+json ( registration ongoing ).","breadcrumbs":"What is Atomic Data? » JSON-AD » JSON-AD: The Atomic Data serialization format","id":"39","title":"JSON-AD: The Atomic Data serialization format"},"4":{"body":"Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen.","breadcrumbs":"Atomic Data Overview » Status","id":"4","title":"Status"},"40":{"body":"In JSON-AD, a Resource can be respresented in multiple ways: Subject : A URL string, such as https://atomicdata.dev/classes/Class. Named Resource : A JSON Object with an @id field containing the Subject. Anonymous Nested Resource A JSON Object without an @id field. This is only possible if it is a Nested Resource, which means that it has a parent Resource. Note that this is also valid for ResourceArrays, which usually only contain Subjects, but are allowed to contain Nested Resources. In the following JSON-AD example, the address is a nested resource: { \"@id\": \"https://example.com/arnold\", \"https://example.com/properties/address\": { \"https://example.com/properties/firstLine\": \"Longstreet 22\", \"https://example.com/properties/city\": \"Watertown\", \"https://example.com/properties/country\": \"the Netherlands\", }\n} Nested Resources can be named or anonymous . An Anonymous Nested Resource does not have it's own @id field. It does have its own unique path , which can be used as its identifier. The path of the anonymous resource in the example above is https://example.com/arnold https://example.com/properties/address.","breadcrumbs":"What is Atomic Data? » JSON-AD » Nested, Anonymous and Named resources","id":"40","title":"Nested, Anonymous and Named resources"},"41":{"body":"Typescript / Javacript : @tomic/lib JSON-AD parser + in-memory store. Works with @tomic/react for rendering Atomic Data in React. Rust : atomic_lib has a JSON-AD parser / serializer (and does a lot more).","breadcrumbs":"What is Atomic Data? » JSON-AD » JSON-AD Parsers, serializers and other libraries","id":"41","title":"JSON-AD Parsers, serializers and other libraries"},"42":{"body":"When you need deterministic serialization of Atomic Data (e.g. when calculating a cryptographic hash or signature, used in Atomic Commits), you can use the following procedure: Serialize your Resource to JSON-AD Do not include empty objects, empty arrays or null values. All keys are sorted alphabetically (lexicographically) - both in the root object, as in any nested objects. The JSON-AD is minified: no newlines, no spaces. The last two steps of this process is more formally defined by the JSON Canonicalization Scheme (JCS, rfc8785 ).","breadcrumbs":"What is Atomic Data? » JSON-AD » Canonicalized JSON-AD","id":"42","title":"Canonicalized JSON-AD"},"43":{"body":"Read more about this subject . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » JSON-AD » Interoperability with JSON and JSON-LD","id":"43","title":"Interoperability with JSON and JSON-LD"},"44":{"body":"There are multiple ways of getting Atomic Data into some system: Subject Fetching requests a single subject right from its source Atomic Collections can filter, sort and paginate resources Atomic Paths is a simple way to traverse Atomic Graphs and target specific values Triple Pattern Fragments allows querying for specific (combinations of) Subject, Property and Value. SPARQL is a powerful Query language for traversing linked data graphs","breadcrumbs":"What is Atomic Data? » Querying » Querying Atomic Data","id":"44","title":"Querying Atomic Data"},"45":{"body":"The simplest way of getting Atomic Data when the Subject is an HTTP URL, is by sending a GET request to the subject URL. Set the Content-Type header to an Atomic Data compatible mime type, such as application/ad+json. GET https://atomicdata.dev/test HTTP/1.1\nContent-Type: application/ad+json The server SHOULD respond with all the Atoms of which the requested URL is the subject: HTTP/1.1 200 OK\nContent-Type: application/ad+json\nConnection: Closed { \"@id\": \"https://atomicdata.dev/test\", \"https://atomicdata.dev/properties/shortname\": \"1611489928\"\n} The server MAY also include other resources, if they are deemed relevant.","breadcrumbs":"What is Atomic Data? » Querying » Subject fetching (HTTP)","id":"45","title":"Subject fetching (HTTP)"},"46":{"body":"Collections are Resources that provide simple query options, such as filtering by Property or Value, and sorting. They also paginate resources. Under the hood, Collections are powered by Triple Pattern Fragments. Use query parameters to traverse pages, filter, or sort. Read more about Collections","breadcrumbs":"What is Atomic Data? » Querying » Atomic Collections","id":"46","title":"Atomic Collections"},"47":{"body":"An Atomic Path is a string that consist of one or more URLs, which when traversed point to an item. Read more about Atomic Paths","breadcrumbs":"What is Atomic Data? » Querying » Atomic Paths","id":"47","title":"Atomic Paths"},"48":{"body":"SPARQL is a powerful RDF query language. Since all Atomic Data is also valid RDF, it should be possible to query Atomic Data using SPARQL. None of the exsisting implementations support a SPARQL endpoint, though. Convert / serialize Atomic Data to RDF (for example by using an accept header: curl -i -H \"Accept: text/turtle\" \"https://atomicdata.dev\") Load it into a SPARQL engine of your choice Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Querying » SPARQL","id":"48","title":"SPARQL"},"49":{"body":"An Atomic Path is a string that consists of at least one URL, followed by one or more URLs or Shortnames. Every single value in an Atomic Resource can be targeted through such a Path. They can be used as identifiers for specific Values. The simplest path, is the URL of a resource, which represents the entire Resource with all its properties. If you want to target a specific atom, you can use an Atomic Path with a second URL. This second URL can be replaced by a Shortname, if the Resource is an instance of a class which has properties with that Shortname (sounds more complicated than it is).","breadcrumbs":"What is Atomic Data? » Paths » Atomic Paths","id":"49","title":"Atomic Paths"},"5":{"body":"This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. If you encounter any issues while reading, please leave an issue on Github . Use the arrows on the side / bottom to go to the next page.","breadcrumbs":"Atomic Data Overview » Reading these docs","id":"5","title":"Reading these docs"},"50":{"body":"Let's start with this simple Resource: { \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\",\n} Then the following Path targets the McLovin value: https://example.com/john https://example.com/lastName => McLovin Instead of using the full URL of the lastName Property, we can use its shortname : https://example.com/john lastname => McLovin We can also traverse relationships between resources: [{ \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\", \"https://example.com/employer\": \"https://example.com/XCorp\",\n},{ \"@id\": \"https://example.com/XCorp\", \"https://example.com/description\": \"The greatest company!\",\n}] https://example.com/john employer description => The greatest company! In the example above, the XCorp subject exists and is the source of the The greatest company! value. We can use this path as a unique identifier for the description of John's current employer. Note that the data for the description of that employer does not have to be in John's control for this path to work - it can live on a totally different server. However, in Atomic Data it's also possible to include this description in the resource of John as a Nested Resource .","breadcrumbs":"What is Atomic Data? » Paths » Example","id":"50","title":"Example"},"51":{"body":"All Atomic Data Resources that we've discussed so far have an explicit URL as a subject. Unfortunately, creating unique and resolvable URLs can be a bother, and sometimes not necessary. If you've worked with RDF, this is what Blank Nodes are used for. In Atomic Data, we have something similar: Nested Resources . Let's use a Nested Resource in the example from the previous section: { \"@id\": \"https://example.com/john\", \"https://example.com/lastName\": \"McLovin\", \"https://example.com/employer\": { \"https://example.com/description\": \"The greatest company!\", }\n} Now the employer is simply a nested Object. Note that it no longer has its own @id. However, we can still identify this Nested Resource using its Path. The Subject of the nested resource is its path: https://example.com/john https://example.com/employer, including the spacebar. Note that the path from before still resolves: https://example.com/john employer description => The greatest company!","breadcrumbs":"What is Atomic Data? » Paths » Nested Resources","id":"51","title":"Nested Resources"},"52":{"body":"We can also navigate Arrays using paths. For example: { \"@id\": \"https://example.com/john\", \"hasShoes\": [ { \"https://example.com/name\": \"Mr. Boot\", }, { \"https://example.com/name\": \"Sunny Sandals\", } ]\n} The Path of Mr. Boot is: https://example.com/john hasShoes 0 name You can target an item in an array by using a number to indicate its position, starting with 0. Notice how the Resource with the name: Mr. Boot does not have an explicit @id, but it does have a Path. This means that we still have a unique, globally resolvable identifier - yay!","breadcrumbs":"What is Atomic Data? » Paths » Traversing Arrays","id":"52","title":"Traversing Arrays"},"53":{"body":"Install the atomic-cli software and run atomic-cli get https://atomicdata.dev/classes/Class description. Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Paths » Try for yourself","id":"53","title":"Try for yourself"},"54":{"body":"Atomic Schema is the proposed standard for specifying classes, properties and datatypes in Atomic Data. You can compare it to UML diagrams, or what XSD is for XML. Atomic Schema deals with validating and constraining the shape of data. It is designed for checking if all the required properties are present, and whether the values conform to the datatype requirements (e.g. datetime, or URL). This section will define various Classes, Properties and Datatypes (discussed in Atomic Core: Concepts ).","breadcrumbs":"What is Atomic Data? » Schema » Atomic Schema","id":"54","title":"Atomic Schema"},"55":{"body":"Decentralized : Classes and Properties can be defined in external systems, and are resolved using web protocols such as HTTP. Typed : Every Atom of data has a clear datatype. Validated data should be highly predictable. IDE-friendly : Although Atomic Schema uses many URLs, users / developers should not have to type full URLs. The schema uses shortnames as aliases. Self-documenting : When seeing a piece of data, simply following links will explain you how the data model is to be understood. This removes the need for (most of) existing API documentation. Extensible : Anybody can create their own Datatypes, Properties and Classes. Accessible : Support for languages, easily translatable. Useful for humans and machines. Atomic : All the design goals of Atomic Data itself also apply here. Atomic Schema is defined using Atomic Data.","breadcrumbs":"What is Atomic Data? » Schema » Design Goals","id":"55","title":"Design Goals"},"56":{"body":"In short, Atomic Schema works like this: The Property field in an Atom, or the key in a JSON-AD object, links to a Property Resource . It is important that the URL to the Property Resource resolves, as others can re-use it and check its datatype. This Property does three things: it links to a Datatype which indicates which Value is acceptable. it has a description which tells you what the property means, what the relationship between the Subject and the Value means. it provides a Shortname , which is sometimes used as an alternative to the full URL of the Property. DataTypes define the shape of the Value, e.g. a Number (124) or Boolean (true). Classes are a special kind of Resource that describe an abstract class of things (such as \"Person\" or \"Blog\"). Classes can recommend or require a set of Properties. They behave as Models, similar to struts in C or interfaces in Typescript. A Resource could have one or more classes, which could provide information about which Properties are expected or required. example: { \"@id\": \"https://atomicdata.dev/classes/Agent\", \"https://atomicdata.dev/properties/description\": \"An Agent is a user that can create or modify data. It has two keys: a private and a public one. The private key should be kept secret. The public key is used to verify signatures (on [Commits](https://atomicdata.dev/classes/Commit)) set by the of the Agent.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Class\" ], \"https://atomicdata.dev/properties/recommends\": [ \"https://atomicdata.dev/properties/name\", \"https://atomicdata.dev/properties/description\" ], \"https://atomicdata.dev/properties/requires\": [ \"https://atomicdata.dev/properties/publicKey\" ], \"https://atomicdata.dev/properties/shortname\": \"agent\"\n} Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » In short","id":"56","title":"In short"},"57":{"body":"The following Classes are some of the most fundamental concepts in Atomic Data, as they make data validation possible. Click the URLs of the classes to read the most actual data, and discover their properties!","breadcrumbs":"What is Atomic Data? » Schema » Classes » Atomic Schema: Classes","id":"57","title":"Atomic Schema: Classes"},"58":{"body":"URL: https://atomicdata.dev/classes/Property The Property class. The thing that the Property field should link to. A Property is an abstract type of Resource that describes the relation between a Subject and a Value. A Property provides some semantic information about the relationship (in its description), it provides a shorthand (the shortname) and it links to a Datatype. Properties of a Property instance: shortname - (required, Slug) the shortname for the property, used in ORM-style dot syntax (thing.property.anotherproperty). description - (optional, AtomicURL, TranslationBox) the semantic meaning of the. datatype - (required, AtomicURL, Datatype) a URL to an Atomic Datatype, which defines what the datatype should be of the Value in an Atom where the Property is the classtype - (optional, AtomicURL, Class) if the datatype is an Atomic URL, the classtype defines which class(es?) is (are?) acceptable. { \"@id\": \"https://atomicdata.dev/properties/description\", \"https://atomicdata.dev/properties/datatype\": \"https://atomicdata.dev/datatypes/markdown\", \"https://atomicdata.dev/properties/description\": \"A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Property\" ], \"https://atomicdata.dev/properties/shortname\": \"description\"\n} Visit https://atomicdata.dev/properties for a list of example Properties.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Property","id":"58","title":"Property"},"59":{"body":"URL: https://atomicdata.dev/classes/Datatype A Datatype specifies how a Value value should be interpreted. Datatypes are concepts such as boolean, string, integer. Since DataTypes can be linked to, you dan define your own. However, using non-standard datatypes limits how many applications will know what to do with the data. Properties: description - (required, AtomicURL, TranslationBox) how the datatype functions. stringSerialization - (required, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as an UTF-8 string stringExample - (required, string) an example stringSerialization that should be parsed correctly binarySerialization - (optional, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as a byte array. binaryExample - (optional, string) an example binarySerialization that should be parsed correctly. Should have the same contents as the stringExample. Required if binarySerialization is present on the DataType. Visit https://atomicdata.dev/datatypes for a list of example Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Datatype","id":"59","title":"Datatype"},"6":{"body":"Atomic Data Overview Motivation Strategy, history and roadmap When (not) to use it","breadcrumbs":"Atomic Data Overview » Table of contents","id":"6","title":"Table of contents"},"60":{"body":"URL: https://atomicdata.dev/classes/Class A Class is an abstract type of Resource, such as Person. It is convention to use an Uppercase in its URI. Note that in Atomic Data, a Resource can have several Classes - not just a single one. If you need to set more complex constraints to your Classes (e.g. maximum string length, Properties that depend on each other), check out SHACL . Properties: shortname - (required, Slug) a short string shorthand. description - (required, AtomicURL, TranslationBox) human readable explanation of what the Class represents. requires - (optional, ResourceArray, Property) a list of Properties that are required. If absent, none are required. These SHOULD have unique shortnames. recommends - (optional, ResourceArray, Property) a list of Properties that are recommended. These SHOULD have unique shortnames. A resource indicates it is an instance of that class by adding a https://atomicdata.dev/properties/isA Atom. Example: { \"@id\": \"https://atomicdata.dev/classes/Class\", \"https://atomicdata.dev/properties/description\": \"A Class describes an abstract concept, such as 'Person' or 'Blogpost'. It describes the data shape of data and explains what the thing represents. It is convention to use Uppercase in its URL. Note that in Atomic Data, a Resource can have several Classes - not just a single one.\", \"https://atomicdata.dev/properties/isA\": [ \"https://atomicdata.dev/classes/Class\" ], \"https://atomicdata.dev/properties/recommends\": [ \"https://atomicdata.dev/properties/recommends\", \"https://atomicdata.dev/properties/requires\" ], \"https://atomicdata.dev/properties/requires\": [ \"https://atomicdata.dev/properties/shortname\", \"https://atomicdata.dev/properties/description\" ], \"https://atomicdata.dev/properties/shortname\": \"class\"\n} Check out a list of example Classes . Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » Classes » Class","id":"60","title":"Class"},"61":{"body":"The Atomic Datatypes consist of some of the most commonly used Datatypes . Note: Please visit https://atomicdata.dev/datatypes for the latest list of official Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Atomic Schema: Datatypes","id":"61","title":"Atomic Schema: Datatypes"},"62":{"body":"URL: https://atomicdata.dev/datatypes/slug A string with a limited set of allowed characters, used in IDE / Text editor context. Only letters, numbers and dashes are allowed. Regex: ^[a-z0-9]+(?:-[a-z0-9]+)*$","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Slug","id":"62","title":"Slug"},"63":{"body":"URL: https://atomicdata.dev/datatypes/atomicURL A URL that should resolve to an Atomic Resource .","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Atomic URL","id":"63","title":"Atomic URL"},"64":{"body":"URL: https://atomicdata.dev/datatypes/URI A Uniform Resource Identifier, preferably a URL (i.e. an URI that can be fetched). Could be HTTP, HTTPS, or any other type of schema.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » URI","id":"64","title":"URI"},"65":{"body":"URL: https://atomicdata.dev/datatypes/string UTF-8 String, no max character count. Newlines use backslash escaped \\n characters. e.g. String time! \\n Second line!","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » String","id":"65","title":"String"},"66":{"body":"URL: https://https://atomicdata.dev/datatypes/markdown A markdown string, using the CommonMark syntax . UTF-8 formatted, no max character count, newlines are \\n. e.g. # Heading Paragraph with [link](https://example.com).","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Markdown","id":"66","title":"Markdown"},"67":{"body":"URL: https://atomicdata.dev/datatypes/integer Signed Integer, max 64 bit. Max value: 9223372036854775807 e.g. -420","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Integer","id":"67","title":"Integer"},"68":{"body":"URL: https://atomicdata.dev/datatypes/float Number with a comma. Max value: 9223372036854775807 e.g. -420","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Float","id":"68","title":"Float"},"69":{"body":"URL: https://atomicdata.dev/datatypes/boolean True or false, one or zero. String serialization true or false. Binary serialization Use a single bit one boolean. 1 for true, or 0 for false.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Boolean","id":"69","title":"Boolean"},"7":{"body":"What is Atomic Data? Serialization JSON-AD Querying Paths Schema Classes Datatypes FAQ","breadcrumbs":"Atomic Data Overview » Specification (core)","id":"7","title":"Specification (core)"},"70":{"body":"ISO date without time . YYYY-MM-DD. e.g. 1991-01-20","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Date","id":"70","title":"Date"},"71":{"body":"URL: https://atomicdata.dev/datatypes/timestamp Similar to Unix Timestamp . Milliseconds since midnight UTC 1970 Jan 01 (aka the Unix Epoch ). Use this for most DateTime fields. Signed 64 bit integer (instead of 32 bit in Unix systems). e.g. 1596798919 (= 07 Aug 2020 11:15:19)","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » Timestamp","id":"71","title":"Timestamp"},"72":{"body":"URL: https://atomicdata.dev/datatypes/resourceArray Sequential, ordered list of Atomic URIs. Serialized as a JSON array with strings. Note that other types of arrays are not included in this spec, but can be perfectly valid. ( Discussion ) e.g. [\"https://example.com/1\", \"https://example.com/1\"] Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » Datatypes » ResourceArray","id":"72","title":"ResourceArray"},"73":{"body":"","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Atomic Schema FAQ","id":"73","title":"Atomic Schema FAQ"},"74":{"body":"A property only has one single Datatype. However, feel free to create a new kind of Datatype that, in turn, refers to other Datatypes. Perhaps Generics, or Option like types should be part of the Atomic Base Datatypes.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How do I create a Property that supports multiple Datatypes?","id":"74","title":"How do I create a Property that supports multiple Datatypes?"},"75":{"body":"In Atomic Data, enum is not a datatype, but it's a constraint that can be added to properties that have. You can set allows-only on a Property, and use that to limit which values are allowed.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Do you have an enum datatype?","id":"75","title":"Do you have an enum datatype?"},"76":{"body":"Atomic Data guarantees Subject-Property uniqueness, which means that Valid Resources are guaranteed to have only one of each Property. Properties offer Shortnames, which are short strings. These strings should be unique inside Classes, but these are not guaranteed to be unique inside all Resources. Note that Resources can have multiple Classes, and through that, they can have colliding Shortnames. Resources are also free to include Properties from other Classes, and their Shortnames, too, might collide. For example: { \"@id\": \"https://example.com/people/123\", \"https://example.com/name\": \"John\", \"https://another.example.com/someOtherName\": \"Martin\"\n} Let's assume that https://example.com/name and https://another.example.com/someOtherName are Properties that have the Shortname: name. What if a client tries something such as people123.name? To consistently return a single value, we need some type of precedence : The earlier Class mentioned in the isA Property of the resource. Resources can have multiple classes, but they appear in an ordered ResourceArray. Classes, internally should have no key collisions in required and recommended properties, which means that they might have. If these exist internally, sort the properties by how they are ordered in the isA array - first item is preferred. When the Properties are not part of any of the mentioned Classes, use Alphabetical sorting of the Property URL. When shortname collisions are possible, it's recommended to not use the shortname, but use the URL of the Property: people123.\"https://example.com/name\" It is likely that using the URL for keys is also the most performant , since it probably more closely mimics the internal data model.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How should a client deal with Shortname collisions?","id":"76","title":"How should a client deal with Shortname collisions?"},"77":{"body":"Many features in Atomic Data apps depend on the availability of Resources on their subject URL. If that server is offline, or the URL has changed, the existing links will break. This is a fundamental problem to HTTP, and not unique to Atomic Data. Like with websites, hosts should make sure that their server stays available, and that URLs remain static. One possible solution to this problem, is using Content Addressing, such as the IPFS protocol enables, which is why we're planning for using that in the near future. Another approach, is using foreign keys (see issue) .","breadcrumbs":"What is Atomic Data? » Schema » FAQ » Atomic Data uses a lot of links. How do you deal with links that don't work?","id":"77","title":"Atomic Data uses a lot of links. How do you deal with links that don't work?"},"78":{"body":"Atomic Schema is the schema language for Atomic Data, whereas RDF has a couple of competing ones, which all vary greatly. In short, OWL is not designed for schema validation, but SHACL and SheX can maybe be compared to Atomic Schema. An important difference is that SHACL and SheX have to deal with all the complexities of RDF, whereas Atomic Data is more constrained. For more information, see RDF interoperability .","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?","id":"78","title":"How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS?"},"79":{"body":"Every time you use an external URL in your data, you kind of create a dependency. This is fundamental to linked data. In Atomic Data, not having access to the Property in some JSON-AD resource will lead to now knowing how to interpret the data itself. You will no longer know what the Datatype was (other than the native JSON datatype, of course), or what the semantic meaning was of the relationship. There are multiple ways we can deal with this: Cache dependencies : Atomic Server already stores a copy of every class and property that it uses by default. The /path endpoint then allows clients to fetch these from servers that have cached it. If the source goes offline, the validations can still be performed by the server. However, it might be a good idea to migrate the data to a hosted ontology, e.g. by cloning the cached ontology. Content-addressing : using non-HTTP identifiers, such as with IPFS . ( Discussion )","breadcrumbs":"What is Atomic Data? » Schema » FAQ » What are the risks of using Schema data hosted somewhere else?","id":"79","title":"What are the risks of using Schema data hosted somewhere else?"},"8":{"body":"Atomic Data Extended Agents Hierarchy and authorization Authentication Invitations and sharing Commits (writing data) Concepts Compared to WebSockets Endpoints Collections, filtering, sorting Uploading and downloading files","breadcrumbs":"Atomic Data Overview » Specification (extended)","id":"8","title":"Specification (extended)"},"80":{"body":"Atomic Data does not have a concept of inheritance. However, you can use the isA property to link to multiple Classes from a single resource. This effectively Found a bug? Edit this page on GitHub.","breadcrumbs":"What is Atomic Data? » Schema » FAQ » How do I deal with subclasses / inheritance?","id":"80","title":"How do I deal with subclasses / inheritance?"},"81":{"body":"Atomic Data is a modular specification, which means that you can choose to implement parts of it. All parts of Extended are optional to implement. The Core of the specification (described in the previous chapter) is required for all of the Extended spec to work, but not the other way around. However, many of the parts of Extended do depend on eachother . Commits communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions. Agents are Users that enable authentication . They are Resources with their own Public and Private keys, which they use to identify themselves. Collections : querying, filtering, sorting and pagination. Paths : traverse graphs. Hierarchies used for authorization and keeping data organized. Similar to folder structures on file-systems. Invites : create new users and provide them with rights. WebSockets : real-time updates. Endpoints : provide machine-readable descriptions of web services. Files : upload, download and metadata for files. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Atomic Data Extended","id":"81","title":"Atomic Data Extended"},"82":{"body":"Atomic Agents are used for authentication : to set an identity and prove who an actor actually is. Agents can represent both actual individuals, or machines that interact with data. Agents are the entities that can get write / read rights. Agents are used to sign Requests and Commits and to accept Invites .","breadcrumbs":"Atomic Data Extended » Agents » Atomic Agents","id":"82","title":"Atomic Agents"},"83":{"body":"Decentralized : Atomic Agents can be created by anyone, at any domain Easy : It should be easy to work with, code with, and use Privacy-friendly : Agents should allow for privacy friendly workflows Verifiable : Others should be able to verify who did what Secure : Resistant to attacks by malicious others","breadcrumbs":"Atomic Data Extended » Agents » Design goals","id":"83","title":"Design goals"},"84":{"body":"url: https://atomicdata.dev/classes/Agent An Agent is a Resource with its own URL. When it is created, the one creating the Agent will generate a cryptographic (Ed25519) keypair. It is required to include the publicKey in the Agent resource. The privateKey should be kept secret, and should be safely stored by the creator. For convenience, a secret can be generated, which is a single long string of characters that encodes both the privateKey and the subject of the Agent. This secret can be used to instantly, easily log in using a single string. The publicKey is used to verify commit signatures by that Agent, to check if that Agent actually did create and sign that Commit.","breadcrumbs":"Atomic Data Extended » Agents » The Agent model","id":"84","title":"The Agent model"},"85":{"body":"Since an Agent is used for verification of commits, the Agent's subject should resolve and be publicly available. This means that the one creating the Agent has to deal with this. One way of doing this, is by hosting an Atomic Server . An easier way of doing this, is by accepting an Invite that exists on someone else's server. Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Agents » Creating an Agent","id":"85","title":"Creating an Agent"},"86":{"body":"Hierarchies help make information easier to find and understand. For example, most websites use breadcrumbs to show you where you are. Your computer probably has a bunch of drives and deeply nested folders that contain files . We generally use these hierarchical elements to keep data organized, and to keep a tighter grip on rights management. For example, sharing a specific folder with a team, but a different folder could be private. Although you are free to use Atomic Data with your own custom authorization system, we have a standardized model that is currently being used by Atomic-Server.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Hierarchy, rights and authorization","id":"86","title":"Hierarchy, rights and authorization"},"87":{"body":"Fast . Authorization can sometimes be costly, but in this model we'll be considering performance. Simple . Easy to understand, easy to implement. Handles most basic use-cases . Should deal with basic read / write access control, calculating the size of a folder, rendering things in a tree.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Design goals","id":"87","title":"Design goals"},"88":{"body":"Every Resource SHOULD have a parent . There are some exceptions to this, which are discussed below. Any Resource can be a parent of some other Resource, as long as both Resources exists on the same Atomic Server. Grants / rights given in a parent also apply to all children, and their children. There are few Classes that do not require parents:","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Atomic Hierarchy Model","id":"88","title":"Atomic Hierarchy Model"},"89":{"body":"Any Resource might have read and write Atoms. These both contain a list of Agents. These Agents will be granted the rights to edit (using Commits) or read / use the Resources. Rights are additive , which means that the rights add up. If a Resource itself has no write Atom containing your Agent, but it's parent does have one, you will still get the write right. Rights cannot be removed by children or parents - they can only be added. Commits can not be edited. They can be read if the Agent has rights to read the subject of the Commit.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Authorization","id":"89","title":"Authorization"},"9":{"body":"Atomizing Using Atomic-Server Creating a JSON-AD file Upgrade your existing project","breadcrumbs":"Atomic Data Overview » Create Atomic Data","id":"9","title":"Create Atomic Data"},"90":{"body":"Some resources are special, as they do not require a parent: Drive s are top-level items in the hierarchy: they do not have a parent. Agent s are top-level items because they are not owned by anything. They can always read and write themselves. Commit s are immutable, so they should never be edited by anyone. That's why they don't have a place in the hierarchy. Their read rights are determined by their subject.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Top-level resources","id":"90","title":"Top-level resources"},"91":{"body":"Authentication is about proving who you are , which is often the first step for authorization. See authentication .","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Authentication","id":"91","title":"Authentication"},"92":{"body":"The specification is growing (and please contribute in the docs repo ), but the current specification lacks some features: Rights can only be added, but not removed in the hierarchy. This means that you cannot have a secret folder inside a public folder. No model for representing groups of Agents, or other runtime checks for authorization. ( issue ) No way to limit delete access or invite rights separately from write rights ( issue ) No way to request a set of rights for a Resource Found a bug? Edit this page on GitHub.","breadcrumbs":"Atomic Data Extended » Hierarchy and authorization » Current limitations of the Authorization model","id":"92","title":"Current limitations of the Authorization model"},"93":{"body":"Authentication means knowing who is doing something, either getting access or creating some new data. When an Agent wants to edit a resource, they have to send a signed Commit , and the signatures are checked in order to authorize a Commit. But how do we deal with reading data, how do we know who is trying to get access? There are two ways users can authenticate themselves: Signing an Authentication Resource and using that as a cookie Opening a WebSocket, and passing an Authentication Resource. Signing every single HTTP request (more secure, less flexible)","breadcrumbs":"Atomic Data Extended » Authentication » Authentication in Atomic Data","id":"93","title":"Authentication in Atomic Data"},"94":{"body":"Secure : Because, what's the point of authentication if it's not? Easy to use : Setting up an identity should not require any effort, and proving identity should be minimal effort. Anonimity allowed : Users should be able to have multiple identities, some of which are fully anonymous. Self-sovereign : No dependency on servers that user's don't control. Or at least, minimise this. Dummy-proof : We need a mechanism for dealing with forgetting passwords / client devices losing data. Compatible with Commits : Atomic Commits require clients to sign things. Ideally, this functionality / strategy would also fit with the new model. Fast : Of course, authentication will always slow things down. But let's keep that to a minimum.","breadcrumbs":"Atomic Data Extended » Authentication » Design goals","id":"94","title":"Design goals"},"95":{"body":"An Authentication Resource is a JSON-AD object containing all the information a Server needs to make sure a valid Agent requests a session at some point in time. These are used both in Cookie-based auth, as well as in WebSockets We use the following fields (be sure to use the full URLs in the resource, see the example below): requestedSubject: The URL of the requested resource. If we're authenticating a WebSocket , we use the wss address as the requestedSubject. (e.g. wss://example.com/ws) If we're authenticating a Cookie of Bearer token , we use the origin of the server (e.g. https://example.com) If we're authentication a single HTTP request , use the same URL as the GET address (e.g. https://example.com/myResource) agent: The URL of the Agent requesting the subject and signing this Authentication Resource. publicKey: base64 serialized ED25519 public key of the agent. signature: base64 serialized ED25519 signature of the following string: {requestedSubject} {timestamp} (without the brackets), signed by the private key of the Agent. timestamp: Unix timestamp of when the Authentication was signed validUntil (optional): Unix timestamp of when the Authentication should be no longer valid. If not provided, the server will default to 30 seconds from the timestamp. Here's what a JSON-AD Authentication Resource looks like for a WebSocket: { \"https://atomicdata.dev/properties/auth/agent\": \"http://example.com/agents/N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=\", \"https://atomicdata.dev/properties/auth/requestedSubject\": \"wss://example.com/ws\", \"https://atomicdata.dev/properties/auth/publicKey\": \"N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=\", \"https://atomicdata.dev/properties/auth/timestamp\": 1661757470002, \"https://atomicdata.dev/properties/auth/signature\": \"19Ce38zFu0E37kXWn8xGEAaeRyeP6EK0S2bt03s36gRrWxLiBbuyxX3LU9qg68pvZTzY3/P3Pgxr6VrOEvYAAQ==\"\n}","breadcrumbs":"Atomic Data Extended » Authentication » Authentication Resources","id":"95","title":"Authentication Resources"},"96":{"body":"In this approach, the client creates and signs a Resource that proves that an Agent wants to access a certain server for some amount of time. This Authentication Resource is stored as a cookie, and passed along in every HTTP request to the server.","breadcrumbs":"Atomic Data Extended » Authentication » Atomic Cookies Authentication","id":"96","title":"Atomic Cookies Authentication"},"97":{"body":"Create a signed Authentication object, as described above. Serialize it as JSON-AD, then as a base64 string. Store it in a Cookie: Name the cookie atomic_session The expiration date of the cookie should be set, and should match the expiration date of the Authentication Resource. Set the Secure attribute to prevent Man-in-the-middle attacks over HTTP","breadcrumbs":"Atomic Data Extended » Authentication » Setting the cookie","id":"97","title":"Setting the cookie"},"98":{"body":"Similar to creating the Cookie, except that we pass the base64 serialized Authentication Resource as a Bearer token in the Authorization header. GET /myResource HTTP/1.1\nAuthorization: Bearer {base64 serialized Authentication Resource} In Data Browser, you can find the token tab in /app/token to create a token.","breadcrumbs":"Atomic Data Extended » Authentication » Bearer Token Authentication","id":"98","title":"Bearer Token Authentication"},"99":{"body":"After opening a WebSocket connection , create an Authentication Resource. Send a message like so: AUTHENTICATE {authenticationResource}. The server will only respond if there is something wrong.","breadcrumbs":"Atomic Data Extended » Authentication » Authenticating Websockets","id":"99","title":"Authenticating Websockets"}},"length":291,"save":true},"fields":["title","body","breadcrumbs"],"index":{"body":{"root":{"0":{".":{"2":{"0":{".":{"0":{"df":1,"docs":{"276":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"df":6,"docs":{"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0},"71":{"tf":1.0}}},"2":{"df":3,"docs":{"127":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"3":{"df":1,"docs":{"18":{"tf":1.0}}},"4":{"df":2,"docs":{"127":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"7":{"df":2,"docs":{"18":{"tf":1.0},"71":{"tf":1.0}}},"8":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"18":{"tf":1.0}}},"df":2,"docs":{"52":{"tf":1.4142135623730951},"69":{"tf":1.0}}},"1":{",":{"4":{",":{"5":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},".":{".":{"2":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"0":{"0":{"df":2,"docs":{"199":{"tf":1.0},"223":{"tf":1.0}}},"df":2,"docs":{"118":{"tf":1.0},"18":{"tf":1.0}}},"1":{"8":{".":{"2":{"0":{"5":{"4":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},":":{"1":{"5":{":":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"2":{"4":{"df":1,"docs":{"56":{"tf":1.0}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"5":{"0":{"df":1,"docs":{"112":{"tf":1.0}}},"6":{"1":{"1":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"9":{"6":{"7":{"9":{"8":{"9":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"13":{"tf":1.0},"246":{"tf":1.0}},"m":{"b":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}}},"6":{"1":{"1":{"4":{"8":{"9":{"9":{"2":{"8":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.0}}},"9":{"3":{"7":{"0":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"6":{"1":{"7":{"5":{"7":{"4":{"7":{"0":{"0":{"0":{"2":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"df":1,"docs":{"256":{"tf":1.0}}},"9":{"7":{"0":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"9":{"1":{"\"":{"@":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"177":{"tf":1.0}}}},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":4,"docs":{"177":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"70":{"tf":1.0}}},"9":{"df":1,"docs":{"175":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"69":{"tf":1.0}},"m":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}},"2":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"0":{"0":{"df":1,"docs":{"177":{"tf":1.0}}},"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":1,"docs":{"45":{"tf":1.0}}},"2":{"0":{"df":2,"docs":{"18":{"tf":2.23606797749979},"71":{"tf":1.0}}},"1":{"df":3,"docs":{"123":{"tf":1.0},"18":{"tf":3.3166247903554},"195":{"tf":1.0}}},"2":{"df":2,"docs":{"18":{"tf":2.0},"200":{"tf":1.0}}},"3":{"df":1,"docs":{"20":{"tf":2.449489742783178}}},"4":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":5,"docs":{"177":{"tf":1.4142135623730951},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"177":{"tf":1.0},"29":{"tf":1.0}}}}},"2":{"df":1,"docs":{"40":{"tf":1.0}}},"4":{"df":1,"docs":{"112":{"tf":1.0}}},"df":2,"docs":{"143":{"tf":1.0},"177":{"tf":1.0}},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"3":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"12":{"tf":1.0},"95":{"tf":1.0}}},"2":{"df":1,"docs":{"71":{"tf":1.0}}},"3":{".":{"7":{"8":{"1":{"7":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}},"m":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"4":{"0":{"4":{"df":3,"docs":{"136":{"tf":1.0},"173":{"tf":1.0},"208":{"tf":1.0}}},"df":0,"docs":{}},"2":{"0":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"7":{"8":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}},"5":{"0":{"0":{"df":1,"docs":{"103":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"6":{"4":{"df":2,"docs":{"67":{"tf":1.0},"71":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}}},"8":{"0":{":":{"8":{"0":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"7":{"df":1,"docs":{"105":{"tf":1.0}}},"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}},"m":{"b":{"df":2,"docs":{"200":{"tf":1.0},"235":{"tf":1.0}}},"df":0,"docs":{}}},"9":{"2":{"2":{"3":{"3":{"7":{"2":{"0":{"3":{"6":{"8":{"5":{"4":{"7":{"7":{"5":{"8":{"0":{"7":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"a":{".":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"b":{"c":{"1":{"2":{"3":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"14":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.0}}}},"o":{"df":0,"docs":{},"v":{"df":13,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"132":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"258":{"tf":1.4142135623730951},"267":{"tf":1.0},"29":{"tf":1.7320508075688772},"40":{"tf":1.0},"50":{"tf":1.0},"97":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"60":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"176":{"tf":1.0},"264":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":9,"docs":{"121":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":13,"docs":{"115":{"tf":1.0},"118":{"tf":1.4142135623730951},"139":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"167":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"48":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":15,"docs":{"100":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"108":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"245":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"185":{"tf":1.0}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"111":{"tf":1.0},"223":{"tf":1.0},"270":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":2,"docs":{"10":{"tf":1.0},"286":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"18":{"tf":1.0},"197":{"tf":1.0}}}},"v":{"df":2,"docs":{"142":{"tf":1.0},"18":{"tf":1.0}}},"x":{"df":1,"docs":{"138":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"111":{"tf":1.0},"82":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":18,"docs":{"108":{"tf":1.0},"118":{"tf":1.0},"14":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"183":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.7320508075688772},"203":{"tf":1.0},"231":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.4142135623730951},"267":{"tf":1.0},"57":{"tf":1.0},"82":{"tf":1.4142135623730951},"84":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"3":{"df":1,"docs":{"18":{"tf":1.0}}},"d":{"df":27,"docs":{"108":{"tf":1.4142135623730951},"118":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":2.0},"154":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":2.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"264":{"tf":2.0},"266":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.4142135623730951},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"108":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"173":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"40":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}}},"df":59,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"127":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"143":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.7320508075688772},"157":{"tf":1.7320508075688772},"159":{"tf":1.4142135623730951},"162":{"tf":1.0},"167":{"tf":1.0},"18":{"tf":2.0},"181":{"tf":1.7320508075688772},"184":{"tf":1.0},"186":{"tf":1.4142135623730951},"187":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":2.0},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"270":{"tf":1.0},"280":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.7320508075688772},"39":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951},"41":{"tf":1.7320508075688772},"42":{"tf":1.7320508075688772},"56":{"tf":1.0},"60":{"tf":1.0},"7":{"tf":1.0},"75":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"121":{"tf":1.0},"165":{"tf":1.4142135623730951}}}}},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"119":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"234":{"tf":1.4142135623730951},"235":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"189":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":4,"docs":{"224":{"tf":1.0},"245":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":9,"docs":{"148":{"tf":1.0},"183":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"23":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"270":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951}}}}},"df":1,"docs":{"254":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"'":{"df":4,"docs":{"105":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"85":{"tf":1.0}}},".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"?":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.7320508075688772},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":2.0},"153":{"tf":1.4142135623730951},"197":{"tf":1.7320508075688772},"198":{"tf":1.0},"258":{"tf":2.0},"282":{"tf":1.0},"56":{"tf":1.7320508075688772},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":2.23606797749979},"83":{"tf":1.4142135623730951},"84":{"tf":2.6457513110645907},"85":{"tf":1.7320508075688772},"89":{"tf":2.0},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.23606797749979},"96":{"tf":1.0}}}}},"o":{"df":2,"docs":{"12":{"tf":1.0},"241":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"263":{"tf":1.0}}}}},"i":{"df":4,"docs":{"242":{"tf":2.6457513110645907},"243":{"tf":1.7320508075688772},"244":{"tf":1.7320508075688772},"245":{"tf":2.449489742783178}},"m":{"df":7,"docs":{"112":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"232":{"tf":1.0}}},"r":{"b":{"df":0,"docs":{},"n":{"b":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"252":{"tf":1.0}}}},"k":{"a":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}},"x":{"df":1,"docs":{"288":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"a":{"df":1,"docs":{"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}}}}}},"i":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"254":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"w":{"df":31,"docs":{"100":{"tf":1.0},"121":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"259":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"62":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"79":{"tf":1.0},"83":{"tf":1.0},"94":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"193":{"tf":1.0}},"g":{"df":1,"docs":{"96":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.0},"42":{"tf":1.0},"76":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":13,"docs":{"141":{"tf":1.0},"144":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"189":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"257":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":5,"docs":{"132":{"tf":1.0},"200":{"tf":1.0},"239":{"tf":1.0},"269":{"tf":1.0},"56":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":15,"docs":{"112":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"201":{"tf":1.0},"218":{"tf":1.0},"232":{"tf":1.0},"272":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0},"86":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":13,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"145":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"217":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"z":{"df":1,"docs":{"13":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"13":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":1.0}}}},"t":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":1,"docs":{"270":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"16":{"tf":1.0},"96":{"tf":1.0}}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"z":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}},"df":0,"docs":{},"j":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}},"y":{"df":0,"docs":{},"m":{"df":4,"docs":{"184":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":2.23606797749979},"94":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.4142135623730951},"181":{"tf":1.0},"196":{"tf":1.0},"228":{"tf":1.0},"254":{"tf":1.0},"34":{"tf":1.0},"77":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"267":{"tf":1.0}}}}}},"y":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"111":{"tf":1.0},"178":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"26":{"tf":1.0},"83":{"tf":1.0},"90":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":7,"docs":{"152":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"20":{"tf":1.0},"205":{"tf":1.0},"28":{"tf":1.0},"90":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"284":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"i":{"df":10,"docs":{"112":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.7320508075688772},"235":{"tf":1.0},"55":{"tf":1.0}}},"p":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"98":{"tf":1.0}}}}}}}},"df":31,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"128":{"tf":1.0},"141":{"tf":1.0},"149":{"tf":1.7320508075688772},"15":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"217":{"tf":1.4142135623730951},"222":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"272":{"tf":1.0},"279":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"37":{"tf":1.0},"77":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"114":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"12":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"a":{"d":{"+":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"167":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":18,"docs":{"1":{"tf":1.0},"106":{"tf":1.0},"121":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"248":{"tf":1.4142135623730951},"267":{"tf":1.0},"273":{"tf":1.0},"59":{"tf":1.0}}},"df":6,"docs":{"111":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.7320508075688772},"223":{"tf":1.0},"55":{"tf":1.0},"88":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"a":{"c":{"df":0,"docs":{},"h":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"234":{"tf":1.0},"77":{"tf":1.0},"96":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.0},"219":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"234":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"188":{"tf":1.0}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{".":{"c":{"df":0,"docs":{},"o":{"df":2,"docs":{"128":{"tf":1.0},"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"df":1,"docs":{"151":{"tf":1.0}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"29":{"tf":2.23606797749979}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"155":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"214":{"tf":1.0},"261":{"tf":1.0},"5":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":17,"docs":{"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.4142135623730951},"205":{"tf":1.0},"206":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":2.0},"42":{"tf":1.0},"52":{"tf":1.7320508075688772},"59":{"tf":1.0},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"162":{"tf":1.0},"208":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"k":{"df":2,"docs":{"181":{"tf":1.0},"254":{"tf":1.0}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"103":{"tf":1.0}}}}},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"185":{"tf":1.0},"76":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"133":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"288":{"tf":1.0}},"o":{"df":0,"docs":{},"m":{"'":{"df":1,"docs":{"276":{"tf":1.0}}},"df":219,"docs":{"0":{"tf":3.605551275463989},"1":{"tf":2.449489742783178},"10":{"tf":1.0},"100":{"tf":1.0},"101":{"tf":2.0},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":2.0},"111":{"tf":1.7320508075688772},"112":{"tf":1.7320508075688772},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"120":{"tf":1.7320508075688772},"124":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":3.0},"133":{"tf":2.0},"134":{"tf":1.4142135623730951},"139":{"tf":1.4142135623730951},"14":{"tf":2.23606797749979},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"144":{"tf":2.0},"146":{"tf":1.4142135623730951},"148":{"tf":2.449489742783178},"149":{"tf":2.23606797749979},"15":{"tf":2.23606797749979},"150":{"tf":2.23606797749979},"151":{"tf":3.1622776601683795},"152":{"tf":3.0},"154":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.7320508075688772},"157":{"tf":2.23606797749979},"159":{"tf":1.0},"16":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":2.449489742783178},"166":{"tf":2.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"17":{"tf":1.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":4.358898943540674},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.8284271247461903},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":2.0},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":2.0},"19":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":3.3166247903554},"193":{"tf":3.605551275463989},"194":{"tf":2.6457513110645907},"195":{"tf":2.0},"196":{"tf":2.23606797749979},"197":{"tf":2.23606797749979},"198":{"tf":1.4142135623730951},"2":{"tf":2.449489742783178},"20":{"tf":3.0},"200":{"tf":3.1622776601683795},"201":{"tf":1.7320508075688772},"202":{"tf":2.23606797749979},"203":{"tf":1.7320508075688772},"204":{"tf":2.23606797749979},"205":{"tf":2.23606797749979},"206":{"tf":1.7320508075688772},"207":{"tf":1.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":2.449489742783178},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":1.7320508075688772},"217":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":2.449489742783178},"22":{"tf":2.6457513110645907},"220":{"tf":1.7320508075688772},"222":{"tf":2.449489742783178},"223":{"tf":1.7320508075688772},"224":{"tf":1.0},"225":{"tf":2.23606797749979},"226":{"tf":1.7320508075688772},"227":{"tf":2.0},"228":{"tf":1.7320508075688772},"229":{"tf":1.7320508075688772},"23":{"tf":2.0},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":2.6457513110645907},"237":{"tf":1.4142135623730951},"238":{"tf":1.0},"239":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":2.0},"242":{"tf":2.6457513110645907},"243":{"tf":1.4142135623730951},"244":{"tf":1.7320508075688772},"245":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.7320508075688772},"258":{"tf":1.7320508075688772},"259":{"tf":1.4142135623730951},"26":{"tf":2.0},"260":{"tf":1.0},"261":{"tf":2.23606797749979},"262":{"tf":2.0},"263":{"tf":2.0},"264":{"tf":1.7320508075688772},"265":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"268":{"tf":1.7320508075688772},"271":{"tf":1.0},"272":{"tf":2.6457513110645907},"274":{"tf":2.449489742783178},"275":{"tf":1.7320508075688772},"276":{"tf":3.0},"279":{"tf":1.0},"28":{"tf":1.4142135623730951},"280":{"tf":1.7320508075688772},"282":{"tf":1.0},"283":{"tf":1.4142135623730951},"284":{"tf":1.7320508075688772},"285":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.4142135623730951},"29":{"tf":4.358898943540674},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":2.0},"31":{"tf":2.0},"32":{"tf":1.0},"33":{"tf":1.7320508075688772},"34":{"tf":1.0},"35":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"38":{"tf":2.23606797749979},"39":{"tf":1.7320508075688772},"4":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.4142135623730951},"44":{"tf":2.23606797749979},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.7320508075688772},"48":{"tf":1.7320508075688772},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"53":{"tf":1.4142135623730951},"54":{"tf":2.23606797749979},"55":{"tf":2.449489742783178},"56":{"tf":1.4142135623730951},"57":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"6":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.4142135623730951},"63":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.7320508075688772},"78":{"tf":2.23606797749979},"79":{"tf":1.4142135623730951},"8":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.4142135623730951},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.4142135623730951},"89":{"tf":1.4142135623730951},"9":{"tf":1.7320508075688772},"93":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}},"i":{"c":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"41":{"tf":1.0}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"97":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"160":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}}}}},"df":4,"docs":{"143":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":1,"docs":{"134":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":2,"docs":{"18":{"tf":1.0},"254":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":4,"docs":{"39":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"151":{"tf":1.0},"235":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"k":{"df":4,"docs":{"100":{"tf":1.0},"102":{"tf":1.0},"83":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"180":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"254":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":1,"docs":{"23":{"tf":1.0}}},"t":{"df":11,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.4142135623730951},"229":{"tf":1.0},"81":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"71":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"197":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":33,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.4142135623730951},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.7320508075688772},"200":{"tf":1.0},"217":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"91":{"tf":1.7320508075688772},"93":{"tf":2.23606797749979},"94":{"tf":1.4142135623730951},"95":{"tf":3.0},"96":{"tf":1.4142135623730951},"97":{"tf":1.4142135623730951},"98":{"tf":1.7320508075688772},"99":{"tf":1.7320508075688772}},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":2,"docs":{"135":{"tf":1.4142135623730951},"99":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"'":{"df":3,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0}}},"df":29,"docs":{"0":{"tf":1.4142135623730951},"104":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.4142135623730951},"135":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"163":{"tf":2.23606797749979},"193":{"tf":1.0},"198":{"tf":1.4142135623730951},"217":{"tf":1.0},"226":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"287":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"87":{"tf":1.0},"89":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.4142135623730951},"93":{"tf":1.0},"98":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0}}}}}}}}},"o":{"df":2,"docs":{"141":{"tf":1.0},"252":{"tf":1.7320508075688772}},"m":{"a":{"df":0,"docs":{},"t":{"df":3,"docs":{"20":{"tf":1.0},"205":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":11,"docs":{"105":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"209":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"274":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.4142135623730951},"85":{"tf":1.0}}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.7320508075688772}}}},"r":{"df":3,"docs":{"215":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":6,"docs":{"152":{"tf":1.0},"195":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0}},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"65":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"d":{"df":2,"docs":{"12":{"tf":1.0},"210":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":5,"docs":{"131":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":6,"docs":{"101":{"tf":1.4142135623730951},"105":{"tf":1.0},"117":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":13,"docs":{"105":{"tf":1.0},"173":{"tf":1.0},"187":{"tf":1.0},"197":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"264":{"tf":1.0},"270":{"tf":1.0},"74":{"tf":1.0},"95":{"tf":1.0}}},"i":{"c":{"df":8,"docs":{"148":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"87":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"250":{"tf":1.0}}}}},"l":{"df":1,"docs":{"220":{"tf":1.0}}}}},"z":{"df":1,"docs":{"131":{"tf":1.7320508075688772}}}},"df":2,"docs":{"123":{"tf":1.0},"181":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"95":{"tf":1.0},"98":{"tf":1.7320508075688772}}}}}},"c":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":16,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.4142135623730951},"148":{"tf":2.23606797749979},"167":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0}}}}},"df":17,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.4142135623730951},"247":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"266":{"tf":1.0},"5":{"tf":1.0},"86":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":12,"docs":{"116":{"tf":1.0},"144":{"tf":1.0},"153":{"tf":1.0},"162":{"tf":1.0},"182":{"tf":1.0},"194":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"264":{"tf":1.0},"51":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":1,"docs":{"56":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":4,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0},"200":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"19":{"tf":1.0},"193":{"tf":1.0},"204":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"183":{"tf":1.0},"228":{"tf":1.4142135623730951},"265":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"127":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}},"t":{"df":9,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}}},"t":{"a":{"df":1,"docs":{"220":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"12":{"tf":1.0},"144":{"tf":1.0},"181":{"tf":1.4142135623730951},"185":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":14,"docs":{"125":{"tf":1.0},"132":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"228":{"tf":1.7320508075688772},"250":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"235":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"148":{"tf":1.0},"18":{"tf":1.0},"216":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.7320508075688772}}}}}}},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":6,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"261":{"tf":1.0},"69":{"tf":1.0}}},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.7320508075688772}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}}},"df":0,"docs":{},"g":{"df":1,"docs":{"247":{"tf":1.0}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"163":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":7,"docs":{"177":{"tf":1.7320508075688772},"204":{"tf":1.4142135623730951},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"256":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0}}},"y":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"df":17,"docs":{"100":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"67":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":8,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":2.449489742783178},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"142":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"289":{"tf":1.0},"56":{"tf":1.0}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"154":{"tf":2.0},"157":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.7320508075688772},"162":{"tf":1.7320508075688772},"163":{"tf":2.6457513110645907},"28":{"tf":1.0},"60":{"tf":1.0}}}}}}}}},"o":{"d":{"df":0,"docs":{},"i":{"df":4,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"210":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"219":{"tf":1.0}}}},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}},"k":{"df":7,"docs":{"130":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"232":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"29":{"tf":1.0},"39":{"tf":1.4142135623730951},"56":{"tf":1.0},"59":{"tf":1.0},"69":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"t":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"132":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":30,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"185":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"242":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"42":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"154":{"tf":1.0},"5":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}}},"n":{"d":{"df":3,"docs":{"132":{"tf":1.0},"248":{"tf":1.0},"35":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"d":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"86":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":3,"docs":{"209":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"155":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"120":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"186":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"199":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"243":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":3,"docs":{"247":{"tf":1.0},"248":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"262":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"'":{"df":1,"docs":{"160":{"tf":1.0}}},"/":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"b":{"/":{"3":{"0":{"b":{"2":{"df":0,"docs":{},"f":{"8":{"a":{"df":0,"docs":{},"f":{"5":{"9":{"d":{"2":{"5":{"0":{"8":{"4":{"d":{"df":0,"docs":{},"e":{"9":{"6":{"6":{"3":{"0":{"1":{"c":{"b":{"6":{"b":{"d":{"1":{"df":0,"docs":{},"e":{"d":{"9":{"0":{"c":{"0":{"df":0,"docs":{},"e":{"b":{"7":{"8":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"#":{"df":0,"docs":{},"l":{"1":{"7":{"6":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":23,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"117":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"18":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"262":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.4142135623730951},"276":{"tf":1.0},"98":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"g":{"df":51,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"df":20,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"2":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":11,"docs":{"151":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":2.23606797749979},"261":{"tf":1.4142135623730951},"263":{"tf":1.0},"267":{"tf":1.0}}}}},"n":{"c":{"df":0,"docs":{},"h":{"df":7,"docs":{"108":{"tf":1.0},"131":{"tf":1.0},"160":{"tf":1.0},"266":{"tf":1.4142135623730951},"270":{"tf":1.0},"28":{"tf":1.0},"86":{"tf":1.0}}}},"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"128":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"i":{"df":3,"docs":{"201":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}}}},"y":{"df":4,"docs":{"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.4142135623730951},"250":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"117":{"tf":1.0},"59":{"tf":1.0}}}}}},"c":{"a":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"184":{"tf":1.0},"79":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":6,"docs":{"117":{"tf":1.4142135623730951},"139":{"tf":2.0},"142":{"tf":1.0},"195":{"tf":1.0},"42":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"l":{"df":12,"docs":{"148":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"262":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"184":{"tf":1.0},"249":{"tf":1.0},"288":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"157":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}},"p":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"261":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"256":{"tf":1.0}}},"df":2,"docs":{"247":{"tf":1.4142135623730951},"249":{"tf":1.0}},"e":{"df":1,"docs":{"157":{"tf":1.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}},"g":{"df":0,"docs":{},"o":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.0}}}},"t":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":15,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.0},"17":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.0},"232":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0},"87":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"262":{"tf":1.4142135623730951},"264":{"tf":1.0}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"112":{"tf":1.0},"209":{"tf":1.0}}}}},"df":2,"docs":{"123":{"tf":1.0},"56":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"243":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"173":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"259":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"13":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"g":{"df":40,"docs":{"0":{"tf":1.7320508075688772},"110":{"tf":1.4142135623730951},"111":{"tf":2.449489742783178},"112":{"tf":1.4142135623730951},"114":{"tf":2.449489742783178},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"151":{"tf":1.0},"152":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"179":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":3.3166247903554},"209":{"tf":1.7320508075688772},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.0},"289":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"194":{"tf":1.0},"196":{"tf":1.0},"34":{"tf":1.0},"81":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.4142135623730951},"66":{"tf":1.0},"84":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"176":{"tf":1.0},"213":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"33":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":2,"docs":{"18":{"tf":1.0},"290":{"tf":1.0}},"g":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"245":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":3,"docs":{"18":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"246":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"k":{"df":29,"docs":{"103":{"tf":2.23606797749979},"105":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":2.449489742783178},"12":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.7320508075688772},"168":{"tf":1.0},"177":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"270":{"tf":1.0},"282":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"84":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"198":{"tf":1.0}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"88":{"tf":1.4142135623730951},"89":{"tf":1.0}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"23":{"tf":1.0},"235":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"186":{"tf":1.0},"193":{"tf":1.0},"81":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"268":{"tf":1.0}}}}}}}},"k":{"a":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"263":{"tf":1.0}}},"df":1,"docs":{"263":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"58":{"tf":1.0}}},"df":30,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":3.0},"159":{"tf":2.23606797749979},"160":{"tf":2.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"20":{"tf":1.4142135623730951},"214":{"tf":1.4142135623730951},"228":{"tf":1.0},"230":{"tf":1.0},"249":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.4142135623730951},"49":{"tf":1.0},"54":{"tf":1.4142135623730951},"55":{"tf":1.4142135623730951},"56":{"tf":2.0},"57":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"60":{"tf":3.1622776601683795},"7":{"tf":1.0},"76":{"tf":2.6457513110645907},"79":{"tf":1.0},"80":{"tf":1.0},"88":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"125":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"58":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":7,"docs":{"121":{"tf":1.0},"172":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.0},"37":{"tf":1.0}}},"r":{"df":6,"docs":{"166":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"26":{"tf":1.4142135623730951},"55":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"269":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":8,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"155":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"57":{"tf":1.0}}}},"df":8,"docs":{"18":{"tf":1.7320508075688772},"192":{"tf":1.0},"2":{"tf":1.4142135623730951},"272":{"tf":1.4142135623730951},"276":{"tf":1.7320508075688772},"280":{"tf":1.0},"283":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":28,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"108":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"133":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.7320508075688772},"147":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"203":{"tf":1.0},"254":{"tf":1.4142135623730951},"275":{"tf":1.0},"37":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"94":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"m":{"b":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"79":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":7,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"215":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"45":{"tf":1.0},"76":{"tf":1.0}}}},"u":{"d":{"df":2,"docs":{"121":{"tf":1.0},"241":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"186":{"tf":1.0}}}}}}},"m":{"df":8,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":2.449489742783178},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}},"o":{"d":{"df":0,"docs":{},"e":{"df":11,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"152":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"226":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"83":{"tf":1.0}},"s":{"a":{"df":0,"docs":{},"n":{"d":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":1,"docs":{"199":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"18":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"121":{"tf":1.0},"133":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.4142135623730951},"142":{"tf":2.6457513110645907},"143":{"tf":2.23606797749979},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"33":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":2.0},"8":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"d":{"df":2,"docs":{"184":{"tf":1.0},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":4,"docs":{"177":{"tf":1.4142135623730951},"184":{"tf":1.0},"26":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"n":{"df":1,"docs":{"219":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":21,"docs":{"0":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"197":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"217":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"247":{"tf":1.0},"259":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"250":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":4,"docs":{"106":{"tf":1.0},"112":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0}}},"m":{"a":{"df":1,"docs":{"68":{"tf":1.0}},"n":{"d":{"df":4,"docs":{"114":{"tf":1.0},"2":{"tf":1.0},"218":{"tf":1.7320508075688772},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"102":{"tf":1.0},"261":{"tf":1.0}}}},"r":{"c":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"271":{"tf":1.0}}},"t":{"(":{"df":1,"docs":{"258":{"tf":1.0}}},"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.0}}}},"df":0,"docs":{}}},"df":48,"docs":{"0":{"tf":1.7320508075688772},"105":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":2.23606797749979},"112":{"tf":1.4142135623730951},"113":{"tf":1.0},"114":{"tf":3.0},"115":{"tf":1.7320508075688772},"116":{"tf":1.7320508075688772},"117":{"tf":2.23606797749979},"118":{"tf":3.4641016151377544},"119":{"tf":2.449489742783178},"120":{"tf":1.4142135623730951},"121":{"tf":1.7320508075688772},"124":{"tf":1.0},"132":{"tf":3.3166247903554},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.7320508075688772},"188":{"tf":1.0},"195":{"tf":2.0},"197":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"240":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":3.0},"276":{"tf":2.0},"280":{"tf":1.0},"42":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"84":{"tf":1.4142135623730951},"85":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"93":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}},"s":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"14":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.7320508075688772}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"17":{"tf":1.0},"179":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"61":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"n":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"269":{"tf":1.0},"290":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":1.0},"132":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":7,"docs":{"12":{"tf":2.0},"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.4142135623730951},"195":{"tf":1.0},"20":{"tf":1.0},"227":{"tf":1.4142135623730951},"239":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"263":{"tf":1.0},"29":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0},"8":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"10":{"tf":1.0},"112":{"tf":1.0}}}}}}},"t":{"df":7,"docs":{"166":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"193":{"tf":1.0},"31":{"tf":1.0},"45":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"78":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"20":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"df":6,"docs":{"107":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"22":{"tf":1.0},"33":{"tf":1.0},"36":{"tf":1.0}}},"x":{"df":5,"docs":{"177":{"tf":1.0},"180":{"tf":1.0},"199":{"tf":1.4142135623730951},"60":{"tf":1.0},"78":{"tf":1.0}}}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"14":{"tf":1.0},"260":{"tf":1.4142135623730951}}},"df":0,"docs":{},"t":{"df":1,"docs":{"111":{"tf":1.0}}}}},"c":{"df":5,"docs":{"119":{"tf":1.0},"177":{"tf":1.4142135623730951},"189":{"tf":1.0},"199":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"29":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":5,"docs":{"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"22":{"tf":1.0},"86":{"tf":1.0}}}}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":18,"docs":{"113":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"160":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":2.0},"192":{"tf":1.0},"199":{"tf":1.0},"27":{"tf":1.0},"31":{"tf":1.0},"5":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"8":{"tf":1.0},"80":{"tf":1.0}},"u":{"df":2,"docs":{"129":{"tf":1.0},"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"110":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"232":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"162":{"tf":1.0},"165":{"tf":1.0},"194":{"tf":1.0},"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":6,"docs":{"179":{"tf":1.0},"185":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"209":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":10,"docs":{"0":{"tf":1.7320508075688772},"13":{"tf":1.0},"134":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.4142135623730951},"248":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"234":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":1,"docs":{"248":{"tf":1.0}}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"181":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"204":{"tf":1.0}}}}}}}}},"i":{"d":{"df":5,"docs":{"112":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"247":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"137":{"tf":1.0},"17":{"tf":1.0},"210":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"182":{"tf":1.0},"199":{"tf":1.0},"244":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"61":{"tf":1.0},"76":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{".":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"t":{"df":2,"docs":{"102":{"tf":2.449489742783178},"177":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":8,"docs":{"132":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0}},"t":{"df":7,"docs":{"132":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"230":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"154":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"280":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":7,"docs":{"18":{"tf":1.0},"183":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0}}}}},"t":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":31,"docs":{"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.0},"115":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"135":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.0},"240":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"86":{"tf":1.0},"89":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"127":{"tf":1.4142135623730951},"173":{"tf":1.0},"187":{"tf":1.0},"194":{"tf":1.4142135623730951},"208":{"tf":1.7320508075688772},"210":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"5":{"tf":1.0},"59":{"tf":1.0},"6":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"df":12,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.4142135623730951},"202":{"tf":1.0},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"243":{"tf":1.0},"38":{"tf":1.0},"62":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"192":{"tf":1.0},"213":{"tf":1.0},"32":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.4142135623730951},"17":{"tf":1.0},"176":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"84":{"tf":1.0}}},"t":{"df":3,"docs":{"17":{"tf":1.0},"235":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"s":{"df":3,"docs":{"204":{"tf":1.4142135623730951},"266":{"tf":1.0},"283":{"tf":1.0}}},"t":{"df":14,"docs":{"1":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"191":{"tf":1.7320508075688772},"192":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"219":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.0},"48":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"241":{"tf":1.0}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":5,"docs":{"93":{"tf":1.0},"95":{"tf":1.4142135623730951},"96":{"tf":1.4142135623730951},"97":{"tf":2.0},"98":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"183":{"tf":1.0}}}}},"r":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"i":{"df":5,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"79":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":14,"docs":{"0":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.7320508075688772},"214":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.7320508075688772},"54":{"tf":1.0},"7":{"tf":1.0},"81":{"tf":1.0}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"241":{"tf":1.0},"246":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"118":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"137":{"tf":1.0},"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"192":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":5,"docs":{"100":{"tf":1.0},"112":{"tf":1.0},"178":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"14":{"tf":1.0},"87":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"65":{"tf":1.0},"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"201":{"tf":1.0}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"268":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"df":9,"docs":{"112":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.0},"78":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":7,"docs":{"175":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"79":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"194":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"r":{"df":1,"docs":{"218":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"272":{"tf":1.0}}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":77,"docs":{"0":{"tf":1.0},"1":{"tf":2.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"13":{"tf":1.7320508075688772},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.4142135623730951},"148":{"tf":1.4142135623730951},"149":{"tf":1.4142135623730951},"150":{"tf":1.7320508075688772},"152":{"tf":2.0},"153":{"tf":1.7320508075688772},"154":{"tf":2.23606797749979},"155":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":2.23606797749979},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"166":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.4142135623730951},"187":{"tf":1.0},"189":{"tf":1.7320508075688772},"191":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"204":{"tf":1.0},"206":{"tf":1.0},"218":{"tf":1.4142135623730951},"219":{"tf":1.4142135623730951},"22":{"tf":1.7320508075688772},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"245":{"tf":1.0},"251":{"tf":1.0},"258":{"tf":1.4142135623730951},"26":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"279":{"tf":1.0},"283":{"tf":1.0},"31":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"9":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"283":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"143":{"tf":1.0},"30":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":2.6457513110645907},"257":{"tf":1.0},"258":{"tf":1.7320508075688772},"259":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"181":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"193":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"262":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":10,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0}},"i":{"df":3,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"197":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}}},"s":{"df":1,"docs":{"179":{"tf":1.0}},"v":{"df":3,"docs":{"148":{"tf":1.0},"262":{"tf":1.0},"283":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":17,"docs":{"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"164":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"254":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"118":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":1.4142135623730951},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"248":{"tf":1.0},"267":{"tf":1.0}}}}}}}},"t":{"df":1,"docs":{"127":{"tf":1.0}}}},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"229":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"208":{"tf":1.0}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"n":{"df":1,"docs":{"59":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"62":{"tf":1.0}}}},"t":{"a":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},"b":{"a":{"df":0,"docs":{},"s":{"df":28,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.0},"215":{"tf":1.7320508075688772},"217":{"tf":1.7320508075688772},"218":{"tf":1.0},"219":{"tf":1.7320508075688772},"220":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"227":{"tf":1.0},"230":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"262":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":193,"docs":{"0":{"tf":4.358898943540674},"1":{"tf":1.7320508075688772},"10":{"tf":1.7320508075688772},"100":{"tf":1.0},"102":{"tf":1.0},"104":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":4.0},"114":{"tf":1.0},"117":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.8284271247461903},"120":{"tf":1.4142135623730951},"121":{"tf":2.23606797749979},"13":{"tf":3.4641016151377544},"130":{"tf":1.4142135623730951},"132":{"tf":1.7320508075688772},"133":{"tf":1.7320508075688772},"139":{"tf":1.4142135623730951},"14":{"tf":3.0},"140":{"tf":1.0},"144":{"tf":2.23606797749979},"146":{"tf":1.4142135623730951},"148":{"tf":3.0},"149":{"tf":2.0},"15":{"tf":1.4142135623730951},"150":{"tf":1.4142135623730951},"151":{"tf":2.23606797749979},"152":{"tf":2.0},"154":{"tf":1.7320508075688772},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":2.23606797749979},"16":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":2.23606797749979},"166":{"tf":2.449489742783178},"167":{"tf":1.7320508075688772},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"17":{"tf":1.0},"170":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":2.449489742783178},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":3.1622776601683795},"176":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":3.0},"180":{"tf":2.0},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"183":{"tf":2.8284271247461903},"184":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"187":{"tf":1.7320508075688772},"189":{"tf":2.6457513110645907},"19":{"tf":1.4142135623730951},"190":{"tf":2.0},"191":{"tf":2.23606797749979},"192":{"tf":2.23606797749979},"193":{"tf":4.123105625617661},"194":{"tf":3.4641016151377544},"195":{"tf":2.0},"196":{"tf":2.23606797749979},"197":{"tf":1.7320508075688772},"198":{"tf":1.4142135623730951},"199":{"tf":2.0},"2":{"tf":1.0},"20":{"tf":2.23606797749979},"200":{"tf":2.23606797749979},"201":{"tf":1.7320508075688772},"202":{"tf":2.23606797749979},"203":{"tf":1.7320508075688772},"204":{"tf":2.23606797749979},"205":{"tf":2.449489742783178},"206":{"tf":1.4142135623730951},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"213":{"tf":2.8284271247461903},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":2.6457513110645907},"218":{"tf":2.23606797749979},"219":{"tf":2.23606797749979},"22":{"tf":3.4641016151377544},"220":{"tf":1.4142135623730951},"222":{"tf":2.449489742783178},"223":{"tf":1.0},"225":{"tf":2.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"228":{"tf":2.449489742783178},"229":{"tf":2.23606797749979},"23":{"tf":2.6457513110645907},"230":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":2.6457513110645907},"235":{"tf":2.449489742783178},"238":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":2.0},"241":{"tf":3.4641016151377544},"242":{"tf":3.3166247903554},"243":{"tf":1.0},"244":{"tf":1.4142135623730951},"246":{"tf":1.4142135623730951},"247":{"tf":3.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.6457513110645907},"251":{"tf":1.4142135623730951},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":2.23606797749979},"255":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":3.0},"260":{"tf":3.0},"261":{"tf":1.7320508075688772},"262":{"tf":2.8284271247461903},"264":{"tf":1.0},"265":{"tf":1.4142135623730951},"267":{"tf":1.0},"268":{"tf":1.7320508075688772},"271":{"tf":1.0},"272":{"tf":2.0},"274":{"tf":1.4142135623730951},"275":{"tf":1.7320508075688772},"276":{"tf":1.7320508075688772},"279":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.7320508075688772},"284":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.7320508075688772},"289":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"31":{"tf":1.0},"33":{"tf":1.4142135623730951},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"38":{"tf":2.23606797749979},"39":{"tf":2.0},"4":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":1.4142135623730951},"48":{"tf":1.7320508075688772},"50":{"tf":1.4142135623730951},"51":{"tf":1.4142135623730951},"54":{"tf":1.4142135623730951},"55":{"tf":2.449489742783178},"56":{"tf":1.0},"57":{"tf":1.7320508075688772},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":2.0},"7":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.7320508075688772},"78":{"tf":1.4142135623730951},"79":{"tf":2.449489742783178},"8":{"tf":1.4142135623730951},"80":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"86":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"98":{"tf":1.0}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"228":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"13":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"22":{"tf":1.0},"260":{"tf":2.23606797749979},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"264":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":40,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"180":{"tf":1.0},"182":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":2.6457513110645907},"189":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"209":{"tf":1.4142135623730951},"215":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.4142135623730951},"26":{"tf":1.0},"283":{"tf":1.0},"29":{"tf":2.449489742783178},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"58":{"tf":2.449489742783178},"59":{"tf":3.1622776601683795},"61":{"tf":2.0},"7":{"tf":1.0},"74":{"tf":2.23606797749979},"75":{"tf":1.4142135623730951},"79":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"(":{")":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"1":{"9":{"9":{"1":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":12,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.4142135623730951},"20":{"tf":1.0},"245":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"70":{"tf":1.4142135623730951},"97":{"tf":1.4142135623730951}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"185":{"tf":1.4142135623730951},"252":{"tf":1.0},"54":{"tf":1.0},"71":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"b":{"df":3,"docs":{"166":{"tf":1.0},"215":{"tf":1.0},"223":{"tf":1.0}},"o":{":":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}}},"p":{":":{"d":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"df":1,"docs":{"126":{"tf":1.0}}}},"c":{":":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}}}},"df":1,"docs":{"130":{"tf":1.0}}},"d":{"df":1,"docs":{"70":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":29,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"187":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"54":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"85":{"tf":1.0},"87":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}}}},"b":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":2,"docs":{"123":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"189":{"tf":1.0},"264":{"tf":1.4142135623730951}},"r":{"df":17,"docs":{"111":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.4142135623730951},"13":{"tf":1.0},"176":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.4142135623730951},"235":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"12":{"tf":1.0},"146":{"tf":1.0},"206":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"17":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"df":1,"docs":{"20":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"45":{"tf":1.0}}},"p":{"df":3,"docs":{"112":{"tf":1.0},"206":{"tf":1.0},"242":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"86":{"tf":1.0}}}}}},"f":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"142":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"184":{"tf":1.0},"195":{"tf":1.0},"202":{"tf":1.0},"241":{"tf":1.0},"267":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":24,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"160":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"189":{"tf":1.0},"198":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"218":{"tf":1.0},"220":{"tf":1.0},"228":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.4142135623730951},"39":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":6,"docs":{"14":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.4142135623730951},"261":{"tf":1.0}}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"199":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"127":{"tf":1.7320508075688772},"130":{"tf":1.0},"92":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"117":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"247":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}},"t":{"a":{"'":{"df":1,"docs":{"124":{"tf":1.0}}},"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.4142135623730951},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"132":{"tf":1.0},"188":{"tf":1.4142135623730951},"288":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"2":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":7,"docs":{"124":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"184":{"tf":1.0},"253":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":17,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"60":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"81":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"192":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"203":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":38,"docs":{"104":{"tf":1.0},"114":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"144":{"tf":1.7320508075688772},"160":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"190":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":2.0},"249":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":1.0},"259":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951},"81":{"tf":1.0},"97":{"tf":1.0}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":27,"docs":{"0":{"tf":1.4142135623730951},"136":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":2.6457513110645907},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"259":{"tf":1.0},"260":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":2.0},"38":{"tf":2.6457513110645907},"39":{"tf":1.7320508075688772},"50":{"tf":2.0},"51":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":2.23606797749979},"59":{"tf":1.0},"60":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":35,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.7320508075688772},"128":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"172":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"78":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"r":{"df":1,"docs":{"254":{"tf":1.0}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":5,"docs":{"151":{"tf":1.4142135623730951},"152":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"277":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"276":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":4,"docs":{"154":{"tf":1.0},"193":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"132":{"tf":1.0},"90":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"42":{"tf":1.0}}}}}}}}}}},"v":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":2,"docs":{"205":{"tf":1.0},"234":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":35,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.23606797749979},"151":{"tf":1.0},"164":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"186":{"tf":2.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":2.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"196":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0}}}}}},"i":{"c":{"df":6,"docs":{"111":{"tf":1.4142135623730951},"199":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"285":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}},"x":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"200":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"m":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"105":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":37,"docs":{"112":{"tf":1.7320508075688772},"120":{"tf":1.0},"132":{"tf":1.4142135623730951},"137":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.4142135623730951},"214":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":2.0},"35":{"tf":1.0},"50":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":9,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"149":{"tf":1.0},"177":{"tf":1.0},"265":{"tf":1.0},"33":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"279":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":1,"docs":{"243":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"110":{"tf":1.0},"193":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":4,"docs":{"155":{"tf":1.0},"2":{"tf":1.0},"266":{"tf":1.0},"57":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"109":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":21,"docs":{"106":{"tf":1.0},"120":{"tf":1.4142135623730951},"132":{"tf":1.0},"141":{"tf":1.0},"147":{"tf":1.7320508075688772},"16":{"tf":1.0},"170":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"187":{"tf":1.0},"212":{"tf":1.0},"238":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"3":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"88":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"182":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"220":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"165":{"tf":1.0}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":2,"docs":{"155":{"tf":1.4142135623730951},"199":{"tf":1.0}}}}},"o":{"c":{"df":6,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.4142135623730951},"288":{"tf":1.0},"5":{"tf":1.0},"92":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"123":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.4142135623730951},"241":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"284":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.4142135623730951}}}}}}}},"df":14,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"20":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"85":{"tf":1.4142135623730951},"93":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"220":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":10,"docs":{"14":{"tf":1.0},"160":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":2.23606797749979},"189":{"tf":1.0},"244":{"tf":1.0},"249":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"83":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":20,"docs":{"12":{"tf":1.7320508075688772},"132":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"185":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.7320508075688772},"37":{"tf":1.0},"77":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":8,"docs":{"153":{"tf":1.0},"166":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.4142135623730951},"254":{"tf":1.0},"266":{"tf":1.0},"270":{"tf":1.0}}}},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":2,"docs":{"152":{"tf":1.0},"58":{"tf":1.0}}},"w":{"df":0,"docs":{},"n":{"df":2,"docs":{"219":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":10,"docs":{"0":{"tf":1.0},"144":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"30":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"r":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951}}}},"g":{"df":1,"docs":{"267":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":6,"docs":{"152":{"tf":1.4142135623730951},"198":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.0},"86":{"tf":1.0},"90":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":4,"docs":{"182":{"tf":1.0},"191":{"tf":1.0},"267":{"tf":1.0},"290":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"242":{"tf":1.0}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"94":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"162":{"tf":1.7320508075688772},"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":4,"docs":{"112":{"tf":1.0},"148":{"tf":1.0},"194":{"tf":1.0},"244":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":13,"docs":{"114":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"151":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"275":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"g":{"df":29,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"130":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"26":{"tf":1.0},"271":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.7320508075688772}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":15,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"181":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"81":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"18":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"s":{"df":1,"docs":{"0":{"tf":1.0}},"i":{"df":31,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"14":{"tf":1.4142135623730951},"149":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.4142135623730951},"202":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.7320508075688772},"234":{"tf":1.0},"235":{"tf":1.7320508075688772},"247":{"tf":1.0},"261":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":29,"docs":{"0":{"tf":2.0},"112":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"148":{"tf":1.0},"15":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.7320508075688772},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"246":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"258":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"204":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":21,"docs":{"109":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.7320508075688772},"20":{"tf":1.0},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.4142135623730951},"262":{"tf":1.0},"270":{"tf":1.0},"55":{"tf":1.0},"84":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"268":{"tf":1.0}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"121":{"tf":1.0},"186":{"tf":1.0}}}}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"df":6,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"117":{"tf":1.4142135623730951},"84":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"g":{"df":4,"docs":{"17":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.4142135623730951}}},"i":{"df":0,"docs":{},"t":{"df":69,"docs":{"10":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.4142135623730951},"109":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"119":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"155":{"tf":1.0},"159":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"143":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"62":{"tf":1.0}}}}}},"u":{"c":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"256":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}},"df":0,"docs":{}}},"df":9,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"163":{"tf":1.0},"20":{"tf":1.4142135623730951},"232":{"tf":1.0},"246":{"tf":1.4142135623730951},"265":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"234":{"tf":1.0},"80":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":3,"docs":{"194":{"tf":1.0},"199":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}}},"g":{"df":0,"docs":{},"g":{"df":1,"docs":{"270":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"192":{"tf":1.0},"269":{"tf":1.0},"86":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"85":{"tf":1.0}}},"df":0,"docs":{}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":3,"docs":{"151":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"177":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"42":{"tf":1.4142135623730951}}}}}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"183":{"tf":1.0},"208":{"tf":1.0},"226":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"143":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}}}}}},"d":{"df":17,"docs":{"117":{"tf":1.0},"118":{"tf":1.0},"13":{"tf":1.0},"141":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":2.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"139":{"tf":2.8284271247461903},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"146":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.0},"229":{"tf":1.0},"258":{"tf":1.4142135623730951},"48":{"tf":1.0},"79":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"247":{"tf":1.0},"269":{"tf":1.0},"48":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"136":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"193":{"tf":1.0},"22":{"tf":1.0},"81":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"191":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}},"i":{"df":0,"docs":{},"r":{"df":5,"docs":{"106":{"tf":1.0},"136":{"tf":1.0},"149":{"tf":1.0},"209":{"tf":1.0},"49":{"tf":1.0}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"152":{"tf":1.0},"243":{"tf":1.0},"82":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"222":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"253":{"tf":1.0},"75":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"132":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"101":{"tf":1.0},"71":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":5,"docs":{"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"136":{"tf":1.7320508075688772},"137":{"tf":1.0},"250":{"tf":1.4142135623730951}}}}}},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"65":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":9,"docs":{"121":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"209":{"tf":1.7320508075688772},"228":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0}}}}}}}},"t":{"c":{"df":3,"docs":{"0":{"tf":1.0},"248":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}},"u":{"df":1,"docs":{"271":{"tf":1.0}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"271":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":19,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"140":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"215":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"t":{"df":9,"docs":{"110":{"tf":1.0},"111":{"tf":1.0},"127":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":2.6457513110645907},"200":{"tf":1.0},"226":{"tf":1.0}}}},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"246":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"150":{"tf":1.0},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"269":{"tf":1.0},"288":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"13":{"tf":1.0},"151":{"tf":1.0},"39":{"tf":1.0}}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"12":{"tf":1.0},"251":{"tf":1.0}}}}}},"x":{":":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"a":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"247":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"12":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":52,"docs":{"0":{"tf":1.0},"102":{"tf":1.4142135623730951},"112":{"tf":1.0},"116":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"138":{"tf":1.7320508075688772},"142":{"tf":1.0},"143":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"204":{"tf":1.0},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"228":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"256":{"tf":1.4142135623730951},"266":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"48":{"tf":1.0},"50":{"tf":1.4142135623730951},"51":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.7320508075688772},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"86":{"tf":1.4142135623730951},"95":{"tf":1.0}},"e":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":2.449489742783178}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":2.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"88":{"tf":1.0},"98":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"245":{"tf":1.0},"254":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":47,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"108":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.7320508075688772},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.7320508075688772},"14":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.7320508075688772},"166":{"tf":2.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"215":{"tf":1.0},"219":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"245":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"34":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"85":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"175":{"tf":1.0},"181":{"tf":1.0},"185":{"tf":1.0},"196":{"tf":1.0},"259":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":2,"docs":{"140":{"tf":1.0},"229":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"186":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"269":{"tf":1.0},"97":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":7,"docs":{"17":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"n":{"df":4,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"269":{"tf":1.4142135623730951},"60":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"175":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":4,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"225":{"tf":1.0},"34":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"220":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"160":{"tf":1.0},"48":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"190":{"tf":1.0},"222":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"8":{"tf":1.4142135623730951},"81":{"tf":2.0}}},"df":0,"docs":{},"s":{"df":7,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"128":{"tf":1.0},"176":{"tf":1.0},"26":{"tf":1.0},"277":{"tf":1.0},"55":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":9,"docs":{"167":{"tf":1.0},"181":{"tf":1.4142135623730951},"191":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"250":{"tf":1.0},"263":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":5,"docs":{"0":{"tf":1.0},"156":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"267":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"226":{"tf":1.0}}}}}}}},"f":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"191":{"tf":1.0},"247":{"tf":1.0}}}}}},"t":{"df":3,"docs":{"152":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}},"r":{"df":1,"docs":{"177":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"17":{"tf":1.0},"199":{"tf":1.0}}},"s":{"df":3,"docs":{"117":{"tf":1.0},"142":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"141":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"228":{"tf":1.0},"235":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0}}}},"df":0,"docs":{}}}}},"q":{"df":3,"docs":{"221":{"tf":1.0},"7":{"tf":1.0},"73":{"tf":1.0}}},"r":{"df":8,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"220":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"133":{"tf":1.0},"266":{"tf":1.0}}}}}},"t":{"df":10,"docs":{"100":{"tf":1.0},"133":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"224":{"tf":1.0},"235":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"239":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"112":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":18,"docs":{"127":{"tf":1.0},"15":{"tf":1.4142135623730951},"150":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"181":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"261":{"tf":1.0},"280":{"tf":1.0},"289":{"tf":1.0},"77":{"tf":1.0},"92":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"248":{"tf":1.0},"262":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"114":{"tf":1.0},"242":{"tf":1.0},"244":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":8,"docs":{"132":{"tf":1.0},"17":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"240":{"tf":1.0},"39":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":21,"docs":{"102":{"tf":1.0},"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":2.0},"18":{"tf":1.0},"190":{"tf":1.0},"209":{"tf":1.0},"218":{"tf":1.0},"240":{"tf":1.0},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":17,"docs":{"127":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"189":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"88":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":30,"docs":{"114":{"tf":2.23606797749979},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"14":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"159":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.7320508075688772},"31":{"tf":2.0},"32":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"56":{"tf":1.0},"58":{"tf":1.0},"71":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"15":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"147":{"tf":1.0}}},"(":{"df":1,"docs":{"146":{"tf":1.0}}},"df":23,"docs":{"0":{"tf":1.7320508075688772},"120":{"tf":1.0},"121":{"tf":1.7320508075688772},"144":{"tf":2.449489742783178},"145":{"tf":1.4142135623730951},"146":{"tf":2.8284271247461903},"147":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"208":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"86":{"tf":1.0},"9":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":1,"docs":{"145":{"tf":1.0}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"198":{"tf":1.0},"226":{"tf":1.0}}}}}}}}},"l":{"df":6,"docs":{"139":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":18,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.0},"151":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"262":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"132":{"tf":1.0},"15":{"tf":1.0},"210":{"tf":1.0},"229":{"tf":1.0},"246":{"tf":1.0}}}},"d":{"df":23,"docs":{"125":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.7320508075688772},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"86":{"tf":1.0},"98":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":1,"docs":{"259":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.7320508075688772},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"91":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"257":{"tf":1.0}}}}}}},"t":{"df":3,"docs":{"185":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"182":{"tf":1.4142135623730951}}}},"x":{"df":3,"docs":{"111":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"276":{"tf":1.0}}},"w":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"121":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"93":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"68":{"tf":1.0}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.0}}}}}}}},"o":{"a":{"df":0,"docs":{},"f":{":":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}}}}}},"df":1,"docs":{"130":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":3,"docs":{"178":{"tf":1.0},"190":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"0":{"tf":1.0},"121":{"tf":2.0},"152":{"tf":1.0},"241":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":17,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"o":{"d":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}},"df":1,"docs":{"131":{"tf":1.4142135623730951}}},"r":{"c":{"df":2,"docs":{"181":{"tf":1.0},"186":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"199":{"tf":1.0},"77":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"175":{"tf":1.0}}}}}},"v":{"df":1,"docs":{"200":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"94":{"tf":1.0}}}}},"k":{"df":1,"docs":{"279":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"28":{"tf":1.0},"42":{"tf":1.0}}},"t":{"df":39,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"170":{"tf":1.4142135623730951},"172":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.0},"192":{"tf":1.4142135623730951},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":1.7320508075688772},"66":{"tf":1.0}}}},"df":17,"docs":{"105":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"264":{"tf":1.0},"275":{"tf":1.0},"31":{"tf":1.0}}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"16":{"tf":1.0},"160":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":55,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"r":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"199":{"tf":1.0},"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":3,"docs":{"17":{"tf":1.0},"175":{"tf":1.0},"199":{"tf":1.0}}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":23,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"151":{"tf":1.0},"184":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"218":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"288":{"tf":1.0},"29":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":11,"docs":{"13":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"251":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"26":{"tf":1.0},"274":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":9,"docs":{"13":{"tf":1.0},"141":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"102":{"tf":1.0},"140":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0}},"i":{"df":7,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"258":{"tf":1.0},"94":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":9,"docs":{"139":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"59":{"tf":1.0},"94":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"175":{"tf":1.4142135623730951},"209":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"35":{"tf":1.0},"57":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"df":2,"docs":{"201":{"tf":1.0},"289":{"tf":1.0}}},"df":2,"docs":{"152":{"tf":1.0},"234":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"245":{"tf":1.0},"77":{"tf":1.0}}}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"g":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"133":{"tf":1.0}}}},"p":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"210":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":1,"docs":{"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":16,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"149":{"tf":1.0},"154":{"tf":1.0},"189":{"tf":1.0},"222":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"264":{"tf":1.0},"276":{"tf":1.0},"74":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"195":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"(":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":5,"docs":{"104":{"tf":1.0},"218":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":3.1622776601683795},"132":{"tf":1.4142135623730951}},"h":{"df":0,"docs":{},"u":{"b":{"df":54,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.4142135623730951},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":23,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"12":{"tf":1.0},"137":{"tf":1.0},"154":{"tf":1.0},"163":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0}},"n":{"df":3,"docs":{"184":{"tf":1.0},"276":{"tf":1.0},"88":{"tf":1.0}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"/":{"1":{"3":{"5":{"5":{"6":{"1":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"193":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"55":{"tf":1.4142135623730951},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"df":11,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"168":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"209":{"tf":1.0},"247":{"tf":1.0},"253":{"tf":1.0},"270":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":2,"docs":{"136":{"tf":1.0},"79":{"tf":1.0}}},"o":{"d":{"df":7,"docs":{"109":{"tf":1.0},"112":{"tf":1.0},"192":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0},"290":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"112":{"tf":1.0},"256":{"tf":1.0},"271":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"227":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"259":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"108":{"tf":1.0},"282":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"df":29,"docs":{"0":{"tf":1.4142135623730951},"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.7320508075688772},"181":{"tf":2.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"225":{"tf":2.0},"227":{"tf":1.0},"228":{"tf":1.7320508075688772},"229":{"tf":1.0},"243":{"tf":1.4142135623730951},"252":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"28":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":2.6457513110645907},"44":{"tf":1.4142135623730951},"81":{"tf":1.0}},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"236":{"tf":1.0},"239":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"p":{"df":1,"docs":{"189":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"121":{"tf":1.4142135623730951},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"288":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"78":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":8,"docs":{"160":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}},"w":{"df":1,"docs":{"92":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":7,"docs":{"14":{"tf":1.0},"159":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"209":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"109":{"tf":1.0}}},"t":{"df":2,"docs":{"103":{"tf":1.0},"108":{"tf":1.4142135623730951}}}}},"i":{"d":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"188":{"tf":1.0}}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.0},"219":{"tf":1.0},"269":{"tf":1.0}}},"df":12,"docs":{"12":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0}}},"o":{":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"12":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0}},"l":{"df":2,"docs":{"218":{"tf":1.0},"87":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"k":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"109":{"tf":1.0},"140":{"tf":1.0},"206":{"tf":1.0},"4":{"tf":1.0}}}}}},"r":{"d":{"df":14,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"149":{"tf":1.0},"168":{"tf":1.0},"171":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"241":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"182":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":4,"docs":{"102":{"tf":1.0},"13":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":5,"docs":{"114":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"208":{"tf":1.0},"42":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":1,"docs":{"52":{"tf":1.4142135623730951}}}},"l":{"df":2,"docs":{"156":{"tf":1.0},"267":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":12,"docs":{"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.0},"20":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"79":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"251":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":2,"docs":{"276":{"tf":1.0},"48":{"tf":1.0}},"e":{"a":{"d":{"df":1,"docs":{"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"124":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.4142135623730951},"167":{"tf":1.0},"199":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"48":{"tf":1.0},"98":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"(":{"'":{"df":0,"docs":{},"x":{"df":1,"docs":{"102":{"tf":2.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":2.23606797749979},"235":{"tf":1.0},"239":{"tf":1.0}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.0},"269":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"15":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"175":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}}}},"p":{"df":32,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"16":{"tf":1.0},"169":{"tf":1.4142135623730951},"175":{"tf":1.0},"176":{"tf":1.0},"187":{"tf":1.0},"191":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":2.0},"243":{"tf":1.7320508075688772},"244":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.7320508075688772},"276":{"tf":2.0},"281":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0}}}},"n":{"c":{"df":2,"docs":{"183":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"'":{"df":4,"docs":{"102":{"tf":1.0},"118":{"tf":1.0},"201":{"tf":1.0},"95":{"tf":1.0}}},"df":10,"docs":{"102":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.0},"134":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"253":{"tf":1.0},"277":{"tf":1.0},"289":{"tf":1.0},"55":{"tf":1.0}}},"i":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"288":{"tf":1.0},"38":{"tf":1.0}}}}}}}},"i":{"df":5,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"151":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":18,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"198":{"tf":1.7320508075688772},"226":{"tf":1.0},"231":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.0},"90":{"tf":1.4142135623730951},"92":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":7,"docs":{"181":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"269":{"tf":1.0},"55":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":16,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"6":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"199":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"152":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":2,"docs":{"235":{"tf":1.0},"240":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":21,"docs":{"1":{"tf":1.4142135623730951},"127":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"181":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"247":{"tf":1.7320508075688772},"262":{"tf":1.4142135623730951},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"30":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}},"s":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":6,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}}},"t":{"df":0,"docs":{},"p":{"/":{"1":{".":{"1":{"df":3,"docs":{"127":{"tf":1.0},"45":{"tf":1.4142135623730951},"98":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{".":{"0":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"200":{"tf":1.0}}},":":{"/":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"2":{"0":{"0":{"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"#":{"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{"_":{"3":{".":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"m":{"df":0,"docs":{},"y":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"129":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"c":{"a":{"b":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"131":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"9":{"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"d":{"c":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"1":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"a":{".":{"df":0,"docs":{},"t":{"c":{"d":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"2":{"2":{"6":{"2":{"/":{"9":{"1":{"4":{"0":{"7":{"df":1,"docs":{"125":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"1":{"9":{"9":{"9":{"/":{"0":{"2":{"/":{"2":{"2":{"df":3,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"0":{"0":{"/":{"0":{"1":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":2,"docs":{"124":{"tf":1.7320508075688772},"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"/":{"df":0,"docs":{},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"2":{"/":{"0":{"7":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"#":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"124":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"f":{"/":{"0":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":38,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.4142135623730951},"229":{"tf":1.0},"235":{"tf":1.0},"263":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.4142135623730951},"55":{"tf":1.0},"64":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"40":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"114":{"tf":1.0},"116":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"58":{"tf":1.4142135623730951}}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":2,"docs":{"59":{"tf":1.0},"61":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"63":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}}}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"62":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"65":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"1":{"df":1,"docs":{"108":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":5,"docs":{"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"58":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"/":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"163":{"tf":1.4142135623730951}}}}}}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":14,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":2.8284271247461903},"39":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"a":{"df":12,"docs":{"116":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":7,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"166":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"36":{"tf":1.0},"38":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"56":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":9,"docs":{"116":{"tf":1.0},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"116":{"tf":1.0}}}}}},"df":1,"docs":{"116":{"tf":1.0}}}}},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.4142135623730951}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"1":{"df":1,"docs":{"72":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"29":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"29":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":4,"docs":{"184":{"tf":1.0},"50":{"tf":2.23606797749979},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"1":{"2":{"3":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":2,"docs":{"204":{"tf":1.0},"205":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}},"c":{"df":1,"docs":{"40":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"204":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"s":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"h":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"252":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"184":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"y":{".":{"d":{"d":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"7":{"7":{"7":{"7":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"123":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"2":{"0":{"1":{"2":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"f":{"2":{"df":0,"docs":{},"f":{"5":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"1":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":6,"docs":{"14":{"tf":1.7320508075688772},"196":{"tf":1.0},"245":{"tf":1.0},"29":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"161":{"tf":1.0},"163":{"tf":1.0}}}}}},"i":{"'":{"d":{"df":3,"docs":{"168":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"120":{"tf":1.0}}}},"m":{"df":10,"docs":{"12":{"tf":1.0},"126":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"161":{"tf":1.7320508075688772},"162":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"177":{"tf":1.0},"189":{"tf":1.0},"245":{"tf":1.0}}},"v":{"df":6,"docs":{"12":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0}}}},".":{"df":4,"docs":{"132":{"tf":1.0},"28":{"tf":1.0},"39":{"tf":1.0},"64":{"tf":1.0}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.7320508075688772},"18":{"tf":1.0},"200":{"tf":1.0}}}}},"d":{"df":28,"docs":{"116":{"tf":1.0},"145":{"tf":1.0},"156":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"40":{"tf":2.0},"45":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951},"52":{"tf":1.4142135623730951},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0},"76":{"tf":1.0}},"e":{"a":{"df":12,"docs":{"112":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":2.23606797749979},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"281":{"tf":1.4142135623730951},"288":{"tf":1.7320508075688772},"79":{"tf":1.0}},"l":{"df":2,"docs":{"156":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"197":{"tf":1.4142135623730951},"256":{"tf":1.0},"82":{"tf":1.0},"94":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":25,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"124":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":2.0},"191":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":2.0},"226":{"tf":1.0},"256":{"tf":1.0},"268":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"172":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"17":{"tf":1.0},"25":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"236":{"tf":1.0},"247":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"90":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":38,"docs":{"102":{"tf":1.4142135623730951},"109":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"138":{"tf":1.7320508075688772},"14":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.4142135623730951},"17":{"tf":1.7320508075688772},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":2.449489742783178},"241":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"39":{"tf":1.0},"48":{"tf":1.0},"81":{"tf":1.4142135623730951},"87":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":31,"docs":{"1":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"157":{"tf":1.7320508075688772},"162":{"tf":2.449489742783178},"164":{"tf":1.0},"166":{"tf":1.4142135623730951},"18":{"tf":1.0},"185":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"263":{"tf":1.0},"283":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":4,"docs":{"18":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.0},"265":{"tf":1.0}}}}}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":2,"docs":{"201":{"tf":1.0},"254":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}},"h":{"df":1,"docs":{"248":{"tf":1.0}}},"l":{"df":0,"docs":{},"u":{"d":{"df":22,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"12":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"210":{"tf":1.0},"25":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"42":{"tf":1.0},"45":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"189":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":1.7320508075688772}}}}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"117":{"tf":1.0},"242":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"260":{"tf":1.4142135623730951}}}},"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"114":{"tf":1.0}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"105":{"tf":1.0},"209":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":6,"docs":{"112":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.7320508075688772},"224":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"247":{"tf":2.0}}}},"i":{"c":{"df":4,"docs":{"205":{"tf":1.4142135623730951},"52":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":9,"docs":{"132":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"157":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}},"r":{"df":0,"docs":{},"m":{"df":39,"docs":{"107":{"tf":1.0},"108":{"tf":1.0},"110":{"tf":1.0},"12":{"tf":1.4142135623730951},"148":{"tf":1.0},"152":{"tf":1.4142135623730951},"16":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":2.23606797749979},"246":{"tf":1.0},"25":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.0},"30":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":2,"docs":{"160":{"tf":1.0},"271":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.4142135623730951}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"128":{"tf":1.0},"134":{"tf":1.0},"14":{"tf":1.0},"193":{"tf":1.0},"234":{"tf":1.0},"288":{"tf":1.0}}}}},"l":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":1,"docs":{"12":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"149":{"tf":1.0},"242":{"tf":1.0},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"181":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":4,"docs":{"111":{"tf":1.0},"34":{"tf":1.0},"76":{"tf":1.4142135623730951},"92":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":4,"docs":{"154":{"tf":1.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":6,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":12,"docs":{"151":{"tf":1.0},"152":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.4142135623730951},"277":{"tf":1.0},"53":{"tf":1.0}}},"n":{"c":{"df":6,"docs":{"189":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"49":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"84":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":14,"docs":{"142":{"tf":1.0},"163":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"252":{"tf":1.0},"254":{"tf":1.0},"269":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"270":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":6,"docs":{"175":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":1.0},"67":{"tf":1.4142135623730951},"71":{"tf":1.0}},"r":{"df":6,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":3,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.4142135623730951}}}}}},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}},"t":{"df":2,"docs":{"12":{"tf":1.0},"189":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"141":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"269":{"tf":1.4142135623730951},"82":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"252":{"tf":1.0},"288":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}}},"f":{"a":{"c":{"df":6,"docs":{"189":{"tf":1.0},"235":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"56":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"n":{"df":5,"docs":{"145":{"tf":1.0},"184":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"76":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"16":{"tf":1.0},"199":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.7320508075688772},"176":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"78":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"208":{"tf":1.0},"211":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"180":{"tf":1.0},"182":{"tf":1.0},"253":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"189":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"c":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":9,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"180":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"241":{"tf":1.0},"254":{"tf":1.0}},"t":{"df":2,"docs":{"13":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"190":{"tf":1.0},"31":{"tf":1.0}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"117":{"tf":1.0},"184":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"193":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0}},"i":{"df":1,"docs":{"260":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"106":{"tf":1.7320508075688772},"108":{"tf":2.23606797749979},"109":{"tf":2.0},"118":{"tf":1.4142135623730951},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"251":{"tf":1.0},"254":{"tf":2.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":4,"docs":{"10":{"tf":1.0},"193":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"f":{"df":9,"docs":{"10":{"tf":1.0},"173":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":2.0},"210":{"tf":3.0},"211":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"s":{":":{"df":0,"docs":{},"q":{"df":0,"docs":{},"m":{"df":0,"docs":{},"x":{"6":{"df":0,"docs":{},"j":{"9":{"d":{"df":0,"docs":{},"h":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"b":{"c":{"b":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"2":{"df":0,"docs":{},"v":{"7":{"df":0,"docs":{},"g":{"5":{"df":0,"docs":{},"m":{"df":0,"docs":{},"z":{"b":{"1":{"1":{"df":0,"docs":{},"v":{"df":0,"docs":{},"u":{"9":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"9":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"v":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"283":{"tf":1.0}}}},"s":{"a":{"df":2,"docs":{"76":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":3,"docs":{"185":{"tf":1.0},"29":{"tf":1.0},"70":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"u":{"df":31,"docs":{"105":{"tf":1.4142135623730951},"112":{"tf":2.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.7320508075688772},"208":{"tf":1.0},"209":{"tf":1.0},"212":{"tf":1.0},"234":{"tf":1.0},"236":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.0},"256":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.4142135623730951},"77":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"t":{"'":{"df":30,"docs":{"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"264":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":19,"docs":{"114":{"tf":1.0},"12":{"tf":1.0},"142":{"tf":2.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"214":{"tf":1.4142135623730951},"241":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"39":{"tf":1.4142135623730951},"47":{"tf":1.0},"52":{"tf":1.0},"76":{"tf":1.0},"90":{"tf":1.4142135623730951}}},"r":{"df":2,"docs":{"118":{"tf":1.4142135623730951},"244":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":9,"docs":{"172":{"tf":1.0},"202":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.4142135623730951},"253":{"tf":1.0},"262":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}}}}},"j":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"20":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"n":{"df":1,"docs":{"71":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"41":{"tf":1.0}}}}}}},"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":4,"docs":{"117":{"tf":1.0},"26":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{},"o":{"b":{"df":3,"docs":{"14":{"tf":1.0},"210":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"@":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":3,"docs":{"177":{"tf":1.0},"276":{"tf":1.0},"287":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"287":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"h":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}},".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":6,"docs":{"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"228":{"tf":1.0},"243":{"tf":1.7320508075688772},"50":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.4142135623730951},"3":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":1,"docs":{"163":{"tf":2.0}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"s":{"df":5,"docs":{"102":{"tf":1.0},"129":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"284":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":69,"docs":{"0":{"tf":2.23606797749979},"1":{"tf":1.0},"10":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"120":{"tf":1.0},"129":{"tf":1.4142135623730951},"131":{"tf":1.7320508075688772},"132":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.7320508075688772},"155":{"tf":1.0},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"161":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"18":{"tf":1.7320508075688772},"182":{"tf":1.0},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"200":{"tf":2.0},"202":{"tf":2.6457513110645907},"203":{"tf":2.8284271247461903},"204":{"tf":2.449489742783178},"205":{"tf":3.4641016151377544},"206":{"tf":2.0},"22":{"tf":2.0},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.7320508075688772},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.7320508075688772},"38":{"tf":1.4142135623730951},"39":{"tf":3.3166247903554},"40":{"tf":2.0},"41":{"tf":1.7320508075688772},"42":{"tf":2.0},"43":{"tf":1.4142135623730951},"56":{"tf":1.0},"7":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.4142135623730951},"9":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"5":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"k":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":16,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"219":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}}},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":39,"docs":{"0":{"tf":1.7320508075688772},"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"105":{"tf":2.0},"108":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.7320508075688772},"119":{"tf":1.0},"121":{"tf":1.0},"143":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":2.0},"189":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"222":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":2.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.0},"81":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951}},"p":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"84":{"tf":1.0}}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":7,"docs":{"121":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":1,"docs":{"283":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":27,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.4142135623730951},"13":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"203":{"tf":1.0},"210":{"tf":1.7320508075688772},"220":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"37":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.4142135623730951},"93":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":8,"docs":{"176":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"244":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":2.23606797749979}}}},"df":0,"docs":{}}},"n":{"df":6,"docs":{"14":{"tf":1.0},"181":{"tf":1.0},"224":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":6,"docs":{"10":{"tf":1.0},"174":{"tf":1.0},"228":{"tf":1.7320508075688772},"232":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"k":{"df":12,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":28,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.4142135623730951},"220":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":2.0},"230":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"44":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"78":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"g":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"254":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"13":{"tf":1.0},"166":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"142":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":1.0},"159":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"61":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":1,"docs":{"260":{"tf":1.0}}}},"d":{"df":16,"docs":{"125":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.4142135623730951},"151":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":2.449489742783178},"206":{"tf":1.7320508075688772},"22":{"tf":1.0},"280":{"tf":1.0},"288":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"43":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"d":{"df":5,"docs":{"182":{"tf":1.0},"185":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"144":{"tf":1.0},"17":{"tf":1.4142135623730951},"188":{"tf":1.0},"190":{"tf":1.0},"226":{"tf":1.0},"242":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"v":{"df":2,"docs":{"262":{"tf":1.0},"5":{"tf":1.0}}}},"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}},"g":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"l":{"df":2,"docs":{"247":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"127":{"tf":1.0},"60":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"119":{"tf":1.0},"178":{"tf":1.0},"246":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"266":{"tf":1.7320508075688772}}}}}},"t":{"'":{"df":20,"docs":{"116":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.0},"132":{"tf":1.0},"143":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"177":{"tf":1.0},"204":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"117":{"tf":1.0},"62":{"tf":1.0}}}}},"’":{"df":1,"docs":{"199":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"165":{"tf":1.0},"90":{"tf":1.7320508075688772}}}}},"x":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"i":{"b":{"df":6,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":19,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"2":{"tf":1.7320508075688772},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":1.0},"272":{"tf":2.23606797749979},"278":{"tf":1.0},"279":{"tf":1.0},"280":{"tf":1.0},"283":{"tf":1.0},"285":{"tf":1.0},"41":{"tf":1.0}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"272":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":8,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":2,"docs":{"190":{"tf":1.0},"249":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"184":{"tf":1.0}}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":5,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":21,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"143":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"189":{"tf":1.0},"194":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":1.0},"59":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"n":{"df":0,"docs":{},"e":{"df":4,"docs":{"128":{"tf":1.0},"2":{"tf":1.0},"276":{"tf":1.0},"65":{"tf":1.0}},"r":{"df":2,"docs":{"237":{"tf":1.0},"274":{"tf":1.0}}}},"k":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":66,"docs":{"0":{"tf":2.0},"108":{"tf":1.0},"117":{"tf":1.4142135623730951},"120":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.6457513110645907},"14":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"156":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"23":{"tf":1.0},"243":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":2.449489742783178},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":2.23606797749979},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"44":{"tf":1.0},"5":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"80":{"tf":1.0}}},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"151":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.0},"139":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"162":{"tf":1.0},"187":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"38":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.0},"72":{"tf":1.0},"89":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"129":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":2.23606797749979},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0}}}},"t":{"df":0,"docs":{},"l":{"df":5,"docs":{"111":{"tf":1.0},"166":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"29":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":5,"docs":{"18":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0},"50":{"tf":1.0}}}}},"o":{"a":{"d":{"df":3,"docs":{"112":{"tf":1.0},"234":{"tf":1.7320508075688772},"48":{"tf":1.0}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"112":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.4142135623730951}}}}}},"i":{"d":{"df":2,"docs":{"162":{"tf":2.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"t":{"df":2,"docs":{"183":{"tf":1.7320508075688772},"209":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"k":{"df":3,"docs":{"12":{"tf":1.7320508075688772},"247":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":10,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0},"84":{"tf":1.0}},"i":{"c":{"df":7,"docs":{"166":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"g":{"df":16,"docs":{"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.0},"162":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"203":{"tf":1.4142135623730951},"269":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}}},"o":{"df":0,"docs":{},"k":{"df":19,"docs":{"116":{"tf":1.0},"12":{"tf":1.0},"126":{"tf":1.0},"141":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"154":{"tf":1.4142135623730951},"182":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"225":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"94":{"tf":1.0}}},"t":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":21,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"209":{"tf":1.0},"216":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.4142135623730951},"41":{"tf":1.0},"77":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"234":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"210":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"h":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"241":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"m":{"a":{"c":{"df":2,"docs":{"151":{"tf":1.0},"247":{"tf":1.0}},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":20,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":2.0},"152":{"tf":1.0},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"242":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":10,"docs":{"112":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"163":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"14":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"229":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"168":{"tf":1.0},"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"199":{"tf":1.0},"289":{"tf":1.4142135623730951}}}}},"k":{"df":0,"docs":{},"e":{"df":92,"docs":{"0":{"tf":2.0},"106":{"tf":1.0},"109":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"17":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"184":{"tf":2.0},"189":{"tf":1.0},"19":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.0},"197":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"203":{"tf":2.0},"204":{"tf":1.4142135623730951},"206":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"216":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.4142135623730951},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.7320508075688772},"243":{"tf":2.23606797749979},"246":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"274":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.4142135623730951},"38":{"tf":2.0},"39":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.4142135623730951},"77":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"83":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"g":{"df":15,"docs":{"105":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"20":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"247":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"86":{"tf":1.0}}}},"df":3,"docs":{"102":{"tf":1.0},"193":{"tf":1.0},"97":{"tf":1.0}},"i":{"df":31,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"137":{"tf":1.0},"142":{"tf":2.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"220":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"55":{"tf":1.0},"59":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"285":{"tf":1.0}}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"14":{"tf":1.0},"156":{"tf":1.0},"186":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.0}}}},"df":1,"docs":{"288":{"tf":1.0}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"250":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"df":10,"docs":{"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"205":{"tf":2.0},"219":{"tf":1.0},"228":{"tf":1.0},"283":{"tf":1.0},"39":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"228":{"tf":1.0}}},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":8,"docs":{"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"58":{"tf":1.0},"66":{"tf":1.4142135623730951}}}}}},"df":2,"docs":{"20":{"tf":1.0},"269":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":5,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":8,"docs":{"103":{"tf":1.0},"118":{"tf":2.0},"127":{"tf":1.0},"143":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}}},"h":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"(":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"33":{"tf":1.0}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"119":{"tf":1.0},"166":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}}}}},"x":{"df":5,"docs":{"289":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.4142135623730951},"68":{"tf":1.0}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"60":{"tf":1.0}}}}}}},"y":{"b":{"df":3,"docs":{"107":{"tf":1.0},"269":{"tf":1.0},"78":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"50":{"tf":2.23606797749979},"51":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}},"n":{"df":73,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":1.0},"121":{"tf":1.0},"128":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.0},"14":{"tf":1.7320508075688772},"140":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.0},"16":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":2.449489742783178},"196":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.4142135623730951},"210":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.4142135623730951},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"40":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":2,"docs":{"193":{"tf":1.0},"209":{"tf":1.0}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"197":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"253":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"149":{"tf":1.0},"167":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.7320508075688772},"199":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"m":{"a":{"df":2,"docs":{"276":{"tf":1.0},"287":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"140":{"tf":1.0},"142":{"tf":2.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"280":{"tf":1.0},"41":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"189":{"tf":1.0},"195":{"tf":1.0},"243":{"tf":1.0},"282":{"tf":1.0},"76":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"u":{"df":3,"docs":{"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"g":{"df":4,"docs":{"121":{"tf":1.0},"14":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.4142135623730951}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"178":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"102":{"tf":1.0},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"137":{"tf":1.4142135623730951},"276":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":8,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"100":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"102":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"71":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"132":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}}},"k":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"101":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"39":{"tf":1.0},"45":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"i":{"c":{"df":2,"docs":{"240":{"tf":1.0},"76":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"d":{"df":7,"docs":{"0":{"tf":1.0},"128":{"tf":1.0},"191":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"m":{"df":2,"docs":{"100":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"184":{"tf":1.0}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}}}}}}},"s":{"df":5,"docs":{"120":{"tf":1.0},"140":{"tf":1.0},"201":{"tf":1.4142135623730951},"204":{"tf":1.0},"263":{"tf":1.0}}}},"t":{"df":9,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}},"m":{"df":1,"docs":{"70":{"tf":1.0}}},"o":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"282":{"tf":1.0},"285":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":46,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":2.23606797749979},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.0},"193":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"231":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"244":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.0},"92":{"tf":1.4142135623730951},"94":{"tf":1.0}}},"r":{"df":1,"docs":{"256":{"tf":1.0}},"n":{"df":3,"docs":{"196":{"tf":1.0},"247":{"tf":1.0},"261":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"229":{"tf":1.0}},"i":{"df":4,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"168":{"tf":1.0},"56":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":7,"docs":{"0":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"25":{"tf":1.4142135623730951},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"81":{"tf":1.0}}}},"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"160":{"tf":1.0},"220":{"tf":1.0},"245":{"tf":1.0},"249":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"112":{"tf":1.0},"17":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{".":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"38":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":89,"docs":{"0":{"tf":1.4142135623730951},"111":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"145":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":2.23606797749979},"194":{"tf":1.7320508075688772},"196":{"tf":1.4142135623730951},"197":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"229":{"tf":1.7320508075688772},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.7320508075688772},"243":{"tf":1.0},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"263":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.0},"276":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.7320508075688772},"32":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.4142135623730951},"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.4142135623730951},"93":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"190":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":3,"docs":{"11":{"tf":1.0},"112":{"tf":1.0},"6":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":4,"docs":{"122":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.4142135623730951}}}}},"r":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}},"u":{"c":{"df":0,"docs":{},"h":{"df":11,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"161":{"tf":1.0},"163":{"tf":1.0},"17":{"tf":1.4142135623730951},"180":{"tf":1.0},"186":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"146":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":26,"docs":{"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"262":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"80":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":1,"docs":{"266":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.4142135623730951},"18":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"98":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":4,"docs":{"123":{"tf":1.7320508075688772},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":26,"docs":{"0":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"181":{"tf":1.7320508075688772},"182":{"tf":2.0},"184":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":2.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":2.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"76":{"tf":1.0},"97":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"261":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"254":{"tf":1.0}}}},"v":{"df":5,"docs":{"175":{"tf":1.4142135623730951},"187":{"tf":1.0},"188":{"tf":1.0},"192":{"tf":1.0},"79":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":4,"docs":{"154":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"52":{"tf":1.0}}}}}},"df":9,"docs":{"128":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.4142135623730951},"65":{"tf":1.4142135623730951},"66":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"77":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"177":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.0},"51":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"35":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":62,"docs":{"101":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.23606797749979},"14":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"157":{"tf":1.0},"16":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"217":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.7320508075688772},"239":{"tf":1.0},"241":{"tf":2.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772},"249":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"39":{"tf":1.0}}}}}},"o":{"4":{"df":0,"docs":{},"j":{"df":6,"docs":{"174":{"tf":1.0},"227":{"tf":2.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":13,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"34":{"tf":1.4142135623730951},"39":{"tf":2.449489742783178},"40":{"tf":2.6457513110645907},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.449489742783178},"86":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"112":{"tf":1.0},"40":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":5,"docs":{"111":{"tf":1.0},"12":{"tf":1.4142135623730951},"208":{"tf":1.0},"22":{"tf":1.0},"242":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"210":{"tf":1.0},"90":{"tf":1.0}}}}},"w":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"179":{"tf":1.0}}}}},"df":43,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"13":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.7320508075688772},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":2.23606797749979},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":1.0},"74":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"108":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951}},"n":{"df":5,"docs":{"117":{"tf":1.0},"121":{"tf":1.0},"42":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":3,"docs":{"10":{"tf":1.0},"289":{"tf":1.4142135623730951},"290":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":14,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"155":{"tf":1.0},"180":{"tf":1.0},"224":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"5":{"tf":1.0}},"j":{"df":2,"docs":{"20":{"tf":1.0},"238":{"tf":1.0}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":8,"docs":{"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.0},"288":{"tf":1.0}}}}},"t":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":13,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.7320508075688772},"182":{"tf":2.23606797749979},"184":{"tf":2.6457513110645907},"190":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"220":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.4142135623730951},"33":{"tf":1.4142135623730951},"51":{"tf":1.0}},"j":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":7,"docs":{"141":{"tf":1.0},"152":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}},"e":{"df":4,"docs":{"103":{"tf":1.0},"4":{"tf":1.0},"48":{"tf":1.0},"60":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"152":{"tf":1.0},"163":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"213":{"tf":1.0},"222":{"tf":2.23606797749979}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"156":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"129":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":14,"docs":{"100":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"245":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0}}},"i":{"c":{"df":4,"docs":{"112":{"tf":1.0},"154":{"tf":1.0},"29":{"tf":1.0},"52":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"201":{"tf":1.0},"250":{"tf":1.0},"282":{"tf":1.4142135623730951}},"i":{"df":1,"docs":{"111":{"tf":1.0}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"w":{"df":25,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"118":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.4142135623730951},"152":{"tf":2.0},"154":{"tf":2.0},"159":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"236":{"tf":1.0},"245":{"tf":1.0},"263":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0}}}},"p":{"df":0,"docs":{},"m":{"df":2,"docs":{"238":{"tf":1.0},"272":{"tf":1.4142135623730951}}}},"s":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":3,"docs":{"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0}}},"u":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"190":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"0":{"tf":1.0},"114":{"tf":1.0},"142":{"tf":1.0},"216":{"tf":1.4142135623730951},"250":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"62":{"tf":1.0},"68":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{".":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"186":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":25,"docs":{"115":{"tf":1.0},"117":{"tf":1.7320508075688772},"131":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"26":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"51":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"111":{"tf":1.0},"180":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{}},"d":{"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"129":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"132":{"tf":1.0},"183":{"tf":1.4142135623730951},"194":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":2.8284271247461903},"76":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"61":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"209":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"i":{"d":{"c":{"df":2,"docs":{"197":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"k":{"df":3,"docs":{"118":{"tf":1.0},"223":{"tf":1.0},"45":{"tf":1.0}}},"l":{"d":{"df":3,"docs":{"12":{"tf":1.0},"128":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"n":{"c":{"df":5,"docs":{"112":{"tf":1.0},"162":{"tf":1.0},"262":{"tf":1.0},"28":{"tf":1.0},"289":{"tf":1.0}}},"df":56,"docs":{"103":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":2.0},"119":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"127":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"144":{"tf":1.0},"146":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.4142135623730951},"17":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.4142135623730951},"237":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"261":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.7320508075688772},"33":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"74":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"89":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"39":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":6,"docs":{"193":{"tf":1.0},"209":{"tf":1.0},"254":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"39":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":2,"docs":{"177":{"tf":1.0},"287":{"tf":1.0}}}}},"df":3,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":11,"docs":{"126":{"tf":1.0},"14":{"tf":1.0},"160":{"tf":2.23606797749979},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"186":{"tf":1.4142135623730951},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"p":{"df":2,"docs":{"129":{"tf":1.0},"131":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":3,"docs":{"139":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":1.0}}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}}}}}}},"df":37,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.4142135623730951},"17":{"tf":1.0},"183":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"272":{"tf":1.0},"281":{"tf":1.0},"290":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"r":{"df":3,"docs":{"129":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"190":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"23":{"tf":1.0},"248":{"tf":1.0}}},"o":{"df":0,"docs":{},"n":{"df":20,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0},"271":{"tf":1.4142135623730951},"46":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"74":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":14,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"139":{"tf":1.0},"180":{"tf":1.4142135623730951},"187":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"246":{"tf":1.0},"270":{"tf":1.4142135623730951},"5":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"93":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"0":{"tf":1.0},"231":{"tf":1.0},"244":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"289":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"205":{"tf":1.0},"249":{"tf":1.0},"95":{"tf":1.0}}}}}},"m":{"df":3,"docs":{"186":{"tf":1.0},"26":{"tf":1.0},"58":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"106":{"tf":1.0},"15":{"tf":1.0},"159":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"234":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"265":{"tf":1.0},"3":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"t":{"df":14,"docs":{"117":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.7320508075688772},"162":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"203":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"60":{"tf":1.4142135623730951}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"250":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":17,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"12":{"tf":1.0},"152":{"tf":1.0},"17":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"226":{"tf":2.0},"244":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.4142135623730951},"97":{"tf":1.0}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":3,"docs":{"0":{"tf":1.0},"270":{"tf":1.0},"6":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"139":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"l":{"df":4,"docs":{"124":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.7320508075688772},"78":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"90":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"108":{"tf":1.0},"181":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"232":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0}}}}}}}}}}},"p":{"2":{"df":0,"docs":{},"p":{"df":2,"docs":{"111":{"tf":1.0},"132":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"271":{"tf":1.0}}}},"df":2,"docs":{"240":{"tf":1.0},"250":{"tf":1.0}}}},"df":1,"docs":{"124":{"tf":1.7320508075688772}},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":1,"docs":{"142":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":62,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":2.0},"155":{"tf":1.4142135623730951},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"n":{"df":11,"docs":{"0":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"81":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"152":{"tf":1.0},"254":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":3,"docs":{"121":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.0}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"m":{"df":2,"docs":{"108":{"tf":1.0},"143":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"114":{"tf":1.0},"139":{"tf":1.4142135623730951},"143":{"tf":2.0},"146":{"tf":1.0},"46":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":12,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"154":{"tf":1.0},"198":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.4142135623730951}}}}},"s":{"df":10,"docs":{"118":{"tf":1.0},"128":{"tf":1.0},"177":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"244":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"206":{"tf":1.0},"41":{"tf":1.7320508075688772}}}}},"t":{"df":37,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"81":{"tf":1.7320508075688772}},"i":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"13":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"227":{"tf":1.0}}}},"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"254":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"256":{"tf":1.0}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"103":{"tf":1.0},"143":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{}}}}},"t":{"df":4,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"20":{"tf":1.0},"251":{"tf":1.0}}}},"t":{":":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"h":{"_":{"1":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"123":{"tf":1.4142135623730951},"124":{"tf":1.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.7320508075688772},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"195":{"tf":1.4142135623730951}},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":2,"docs":{"126":{"tf":1.0},"288":{"tf":1.0}},"h":{"df":22,"docs":{"0":{"tf":1.0},"131":{"tf":2.0},"16":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":2.23606797749979},"199":{"tf":1.0},"229":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"40":{"tf":1.4142135623730951},"44":{"tf":1.0},"47":{"tf":1.7320508075688772},"49":{"tf":2.23606797749979},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.7320508075688772},"7":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"y":{"df":1,"docs":{"181":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"247":{"tf":1.0},"252":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}}},"df":5,"docs":{"129":{"tf":1.0},"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"209":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"0":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.4142135623730951},"159":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"e":{"1":{"2":{"3":{".":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"r":{"df":4,"docs":{"100":{"tf":1.0},"142":{"tf":1.7320508075688772},"198":{"tf":1.0},"289":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"246":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"185":{"tf":1.0},"228":{"tf":1.0},"72":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":25,"docs":{"118":{"tf":1.4142135623730951},"121":{"tf":1.0},"128":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.4142135623730951},"140":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"198":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"213":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"76":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"p":{"df":8,"docs":{"129":{"tf":1.0},"130":{"tf":1.0},"163":{"tf":1.0},"189":{"tf":1.0},"252":{"tf":1.4142135623730951},"283":{"tf":1.0},"31":{"tf":1.0},"74":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":2,"docs":{"181":{"tf":1.0},"202":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"n":{"df":1,"docs":{"276":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"145":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"263":{"tf":1.0},"282":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":8,"docs":{"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"119":{"tf":1.0},"143":{"tf":1.4142135623730951},"146":{"tf":1.0},"195":{"tf":1.4142135623730951},"222":{"tf":1.0},"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"210":{"tf":1.0}}},"df":20,"docs":{"10":{"tf":1.0},"12":{"tf":1.4142135623730951},"130":{"tf":2.0},"132":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"193":{"tf":1.7320508075688772},"210":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":2.6457513110645907},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":2.0},"260":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":2.23606797749979}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"208":{"tf":1.0}}}}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"100":{"tf":1.0},"247":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"163":{"tf":1.0},"241":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":9,"docs":{"0":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"252":{"tf":1.7320508075688772},"256":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":2.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":7,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"203":{"tf":2.23606797749979},"22":{"tf":1.0},"263":{"tf":1.0}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"136":{"tf":1.0}}}}}}}},"n":{"df":1,"docs":{"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":3.7416573867739413}}}}}}},"y":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"195":{"tf":1.0},"26":{"tf":1.0},"290":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":3,"docs":{"5":{"tf":1.0},"61":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":2,"docs":{"154":{"tf":1.0},"208":{"tf":1.0}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.4142135623730951},"239":{"tf":1.0},"267":{"tf":1.0}}}}}}},"o":{"d":{"df":3,"docs":{"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"200":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":17,"docs":{"106":{"tf":1.0},"108":{"tf":1.0},"111":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"47":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"131":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"239":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":5,"docs":{"121":{"tf":1.0},"17":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"227":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":31,"docs":{"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"17":{"tf":2.0},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"22":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"40":{"tf":1.0},"48":{"tf":1.0},"50":{"tf":1.0},"57":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":7,"docs":{"115":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"162":{"tf":1.0},"195":{"tf":1.7320508075688772},"240":{"tf":1.0},"289":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"10":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":24,"docs":{"130":{"tf":1.4142135623730951},"133":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":2.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.4142135623730951},"195":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.7320508075688772},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":8,"docs":{"18":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":4,"docs":{"120":{"tf":1.0},"20":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":19,"docs":{"132":{"tf":1.0},"172":{"tf":1.4142135623730951},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.23606797749979},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.0},"196":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0}},"t":{"df":3,"docs":{"242":{"tf":1.0},"248":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"251":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"178":{"tf":1.0},"265":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"x":{"df":5,"docs":{"123":{"tf":1.0},"126":{"tf":3.0},"127":{"tf":2.0},"130":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"176":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.4142135623730951},"141":{"tf":1.0},"144":{"tf":1.0},"177":{"tf":1.4142135623730951},"232":{"tf":1.0},"274":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}},"s":{"df":3,"docs":{"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"154":{"tf":2.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"106":{"tf":1.0},"186":{"tf":1.0},"19":{"tf":1.0},"232":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"162":{"tf":1.7320508075688772},"173":{"tf":1.0},"184":{"tf":1.0},"199":{"tf":1.0},"223":{"tf":1.0},"252":{"tf":1.0},"97":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":4,"docs":{"151":{"tf":1.0},"235":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":8,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"177":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"81":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"118":{"tf":1.4142135623730951}}}}}}}},"df":1,"docs":{"252":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":3,"docs":{"181":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0}}}},"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"16":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"276":{"tf":2.0}}}},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"260":{"tf":1.0},"83":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"210":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"102":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"105":{"tf":1.4142135623730951},"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"166":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"191":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":11,"docs":{"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"137":{"tf":1.0},"142":{"tf":1.0},"17":{"tf":1.0},"180":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"77":{"tf":1.4142135623730951}}}}}},"c":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":13,"docs":{"106":{"tf":1.0},"107":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.7320508075688772},"137":{"tf":1.0},"148":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"42":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":8,"docs":{"162":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.4142135623730951},"268":{"tf":1.0},"271":{"tf":1.0}},"t":{"df":12,"docs":{"128":{"tf":1.0},"176":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":2.6457513110645907},"249":{"tf":1.7320508075688772},"250":{"tf":1.7320508075688772},"268":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"114":{"tf":1.0},"127":{"tf":1.0},"163":{"tf":1.0},"241":{"tf":1.4142135623730951},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0}},"e":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":4,"docs":{"139":{"tf":1.0},"185":{"tf":1.0},"200":{"tf":1.0},"288":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":2,"docs":{"185":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"110":{"tf":1.0},"201":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0}}}}}}},"h":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":22,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"219":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0},"288":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":2,"docs":{"110":{"tf":1.0},"112":{"tf":1.0}}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"111":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"13":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":1.0},"266":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":79,"docs":{"0":{"tf":2.0},"114":{"tf":1.0},"118":{"tf":1.7320508075688772},"139":{"tf":2.23606797749979},"14":{"tf":1.7320508075688772},"140":{"tf":1.4142135623730951},"142":{"tf":2.449489742783178},"143":{"tf":2.23606797749979},"148":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"172":{"tf":1.7320508075688772},"174":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":2.23606797749979},"192":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"196":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"209":{"tf":1.7320508075688772},"213":{"tf":1.7320508075688772},"214":{"tf":1.7320508075688772},"215":{"tf":2.23606797749979},"219":{"tf":1.7320508075688772},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":2.23606797749979},"229":{"tf":1.7320508075688772},"230":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":3.605551275463989},"31":{"tf":2.6457513110645907},"32":{"tf":1.0},"33":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":2.0},"44":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":2.8284271247461903},"57":{"tf":1.0},"58":{"tf":3.1622776601683795},"59":{"tf":1.0},"60":{"tf":2.449489742783178},"74":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"76":{"tf":3.3166247903554},"79":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"y":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"219":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"54":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":11,"docs":{"120":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"136":{"tf":1.0},"14":{"tf":1.0},"168":{"tf":1.0},"173":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"v":{":":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"w":{"a":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}},"e":{"df":7,"docs":{"114":{"tf":1.0},"132":{"tf":1.0},"256":{"tf":1.7320508075688772},"82":{"tf":1.0},"91":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}}},"i":{"d":{"df":33,"docs":{"0":{"tf":1.7320508075688772},"108":{"tf":1.4142135623730951},"121":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"159":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"205":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"247":{"tf":1.7320508075688772},"249":{"tf":1.0},"252":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"46":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"95":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"111":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"103":{"tf":1.0}}}},"df":15,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.0},"197":{"tf":1.0},"258":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":4,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"31":{"tf":1.0},"85":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":7,"docs":{"148":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"18":{"tf":1.0},"250":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"114":{"tf":1.0},"18":{"tf":1.0}}}},"t":{"df":5,"docs":{"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}}}}}},"q":{"1":{"df":1,"docs":{"20":{"tf":1.4142135623730951}}},"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":2,"docs":{"268":{"tf":1.0},"269":{"tf":1.0}}},"u":{"a":{"d":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"148":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"260":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":34,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.4142135623730951},"114":{"tf":1.0},"12":{"tf":1.0},"130":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":2.23606797749979},"146":{"tf":1.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.0},"195":{"tf":1.4142135623730951},"214":{"tf":1.0},"218":{"tf":2.8284271247461903},"220":{"tf":1.4142135623730951},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":2.0},"235":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":2.23606797749979},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"254":{"tf":2.0},"262":{"tf":1.4142135623730951},"276":{"tf":1.0},"30":{"tf":1.0},"44":{"tf":1.7320508075688772},"46":{"tf":1.4142135623730951},"48":{"tf":1.4142135623730951},"7":{"tf":1.0},"81":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":7,"docs":{"190":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":2.6457513110645907},"269":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"251":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"190":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"t":{"df":10,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"155":{"tf":1.0},"176":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"241":{"tf":1.0}}}},"x":{"df":1,"docs":{"131":{"tf":1.0}}}}},"r":{"a":{"b":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"200":{"tf":1.0}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"109":{"tf":1.0},"208":{"tf":1.0}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"194":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.0}}}},"w":{"df":1,"docs":{"249":{"tf":1.0}}},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"'":{"df":1,"docs":{"179":{"tf":1.0}}},"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0}}}}}},":":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"df":50,"docs":{"0":{"tf":1.7320508075688772},"10":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":2.449489742783178},"125":{"tf":1.0},"126":{"tf":2.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"132":{"tf":2.0},"151":{"tf":1.0},"172":{"tf":2.0},"175":{"tf":2.23606797749979},"176":{"tf":1.7320508075688772},"177":{"tf":3.0},"178":{"tf":1.0},"180":{"tf":2.23606797749979},"181":{"tf":2.8284271247461903},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"187":{"tf":1.0},"188":{"tf":1.7320508075688772},"189":{"tf":1.0},"190":{"tf":2.23606797749979},"191":{"tf":1.4142135623730951},"192":{"tf":2.8284271247461903},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":2.8284271247461903},"200":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"26":{"tf":1.0},"263":{"tf":1.0},"274":{"tf":1.0},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"32":{"tf":1.0},"38":{"tf":2.6457513110645907},"48":{"tf":1.7320508075688772},"51":{"tf":1.0},"78":{"tf":2.23606797749979}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"169":{"tf":1.0},"248":{"tf":1.0},"4":{"tf":1.0}}},"t":{"df":13,"docs":{"10":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":1.4142135623730951},"238":{"tf":1.4142135623730951},"240":{"tf":1.4142135623730951},"264":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}},"d":{"a":{"b":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"60":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"df":38,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.4142135623730951},"211":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":1.7320508075688772},"57":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":2.0},"90":{"tf":1.4142135623730951},"93":{"tf":1.0}},"m":{"df":2,"docs":{"152":{"tf":1.4142135623730951},"237":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":7,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"133":{"tf":1.0},"18":{"tf":1.0},"240":{"tf":1.4142135623730951},"267":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"269":{"tf":1.0}}}},"z":{"df":1,"docs":{"241":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"177":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"105":{"tf":1.0},"12":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.7320508075688772},"199":{"tf":1.0},"209":{"tf":1.0},"270":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":4,"docs":{"118":{"tf":1.0},"135":{"tf":1.4142135623730951},"248":{"tf":1.0},"254":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"242":{"tf":1.0},"245":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"160":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"243":{"tf":1.0}}},"z":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"d":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"195":{"tf":1.0}}}},"df":23,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"20":{"tf":1.0},"209":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"146":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"188":{"tf":1.0},"191":{"tf":1.4142135623730951},"197":{"tf":1.0},"272":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"216":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"g":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"234":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"62":{"tf":1.0}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}},"r":{"df":3,"docs":{"107":{"tf":1.4142135623730951},"20":{"tf":1.0},"39":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"228":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"170":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"202":{"tf":1.0},"206":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":8,"docs":{"163":{"tf":1.0},"228":{"tf":2.449489742783178},"266":{"tf":1.0},"33":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"79":{"tf":1.0}}}}}}}}}}},"df":5,"docs":{"160":{"tf":1.0},"176":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"s":{"df":4,"docs":{"152":{"tf":2.0},"19":{"tf":1.0},"20":{"tf":1.0},"289":{"tf":1.0}}}},"df":0,"docs":{},"v":{"df":8,"docs":{"163":{"tf":1.0},"18":{"tf":1.0},"244":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"289":{"tf":1.0},"45":{"tf":1.0}}}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":9,"docs":{"0":{"tf":1.0},"13":{"tf":1.0},"194":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.4142135623730951},"244":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.0},"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"175":{"tf":1.0},"215":{"tf":1.0}}},"o":{"a":{"d":{"df":1,"docs":{"235":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"77":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":14,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"131":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"252":{"tf":1.0},"276":{"tf":1.7320508075688772},"29":{"tf":1.0},"55":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"139":{"tf":1.0},"159":{"tf":1.0},"177":{"tf":1.4142135623730951},"264":{"tf":1.0},"31":{"tf":1.0},"41":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":4,"docs":{"131":{"tf":1.0},"184":{"tf":1.0},"249":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{},"y":{"df":2,"docs":{"195":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":2,"docs":{"146":{"tf":1.0},"195":{"tf":1.0}}}},"o":{"df":1,"docs":{"92":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":12,"docs":{"103":{"tf":1.0},"121":{"tf":1.7320508075688772},"125":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"180":{"tf":1.0},"203":{"tf":1.0},"269":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":31,"docs":{"100":{"tf":2.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.0},"103":{"tf":1.4142135623730951},"105":{"tf":1.0},"108":{"tf":1.0},"115":{"tf":1.0},"126":{"tf":1.0},"134":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"146":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.4142135623730951},"254":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0},"274":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.0},"96":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":53,"docs":{"101":{"tf":1.0},"107":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"121":{"tf":1.0},"14":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.0},"159":{"tf":1.0},"162":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"191":{"tf":1.0},"196":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.7320508075688772},"259":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"59":{"tf":2.0},"60":{"tf":2.23606797749979},"76":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.7320508075688772},"254":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"114":{"tf":1.0}}}}},"i":{"d":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"83":{"tf":1.0}}}},"z":{"df":1,"docs":{"236":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":23,"docs":{"105":{"tf":1.0},"117":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.7320508075688772},"199":{"tf":1.0},"204":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"216":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"63":{"tf":1.0},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":105,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.8284271247461903},"117":{"tf":1.0},"118":{"tf":2.23606797749979},"119":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":2.449489742783178},"139":{"tf":1.7320508075688772},"140":{"tf":2.23606797749979},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"146":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"181":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.7320508075688772},"209":{"tf":2.23606797749979},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.4142135623730951},"244":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"258":{"tf":1.4142135623730951},"261":{"tf":1.0},"264":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":2.23606797749979},"28":{"tf":2.449489742783178},"29":{"tf":2.0},"30":{"tf":1.4142135623730951},"33":{"tf":1.0},"34":{"tf":1.7320508075688772},"39":{"tf":3.605551275463989},"40":{"tf":3.3166247903554},"42":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":2.0},"51":{"tf":2.449489742783178},"52":{"tf":1.0},"56":{"tf":2.0},"58":{"tf":1.0},"60":{"tf":2.0},"63":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":2.449489742783178},"77":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.4142135623730951},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.4142135623730951},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"95":{"tf":2.449489742783178},"96":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"159":{"tf":1.0},"175":{"tf":1.0}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":8,"docs":{"114":{"tf":1.0},"192":{"tf":1.0},"206":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"60":{"tf":1.4142135623730951},"72":{"tf":1.0},"76":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"193":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"108":{"tf":1.0},"115":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"274":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":16,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.0},"200":{"tf":1.4142135623730951},"218":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":4,"docs":{"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"25":{"tf":1.0},"30":{"tf":1.0}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":18,"docs":{"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"131":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.4142135623730951},"154":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"226":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"266":{"tf":1.0},"276":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"180":{"tf":1.0}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":6,"docs":{"175":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"215":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":12,"docs":{"103":{"tf":1.0},"108":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"167":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"204":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"76":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"213":{"tf":1.0},"260":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"12":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"226":{"tf":1.0}}},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.4142135623730951}}}}}},"f":{"c":{"8":{"7":{"8":{"5":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.0},"240":{"tf":1.0},"252":{"tf":1.0}}}},"d":{"df":1,"docs":{"166":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"145":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"18":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"44":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"86":{"tf":1.4142135623730951},"88":{"tf":1.0},"89":{"tf":2.449489742783178},"90":{"tf":1.0},"92":{"tf":2.0}}}}},"s":{"df":0,"docs":{},"k":{"df":2,"docs":{"105":{"tf":1.0},"79":{"tf":1.0}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":3,"docs":{"16":{"tf":1.0},"20":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"231":{"tf":1.0}}}},"o":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"152":{"tf":1.4142135623730951},"161":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"w":{"df":5,"docs":{"214":{"tf":1.7320508075688772},"216":{"tf":1.0},"219":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"i":{"df":2,"docs":{"127":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":12,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":2.449489742783178},"18":{"tf":1.0},"182":{"tf":1.0},"2":{"tf":1.4142135623730951},"235":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"53":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":7,"docs":{"142":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"92":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":11,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"272":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}}}},"s":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":7,"docs":{"0":{"tf":1.0},"148":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"194":{"tf":1.0},"26":{"tf":1.0},"84":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.7320508075688772},"14":{"tf":1.0},"151":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"230":{"tf":1.0},"250":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":18,"docs":{"117":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"22":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"253":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"59":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"d":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"154":{"tf":1.4142135623730951},"235":{"tf":1.0},"251":{"tf":1.4142135623730951}}}},"w":{"df":1,"docs":{"234":{"tf":1.0}}}},"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"n":{"df":1,"docs":{"269":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":3,"docs":{"121":{"tf":1.0},"140":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"z":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":2,"docs":{"181":{"tf":2.23606797749979},"185":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"185":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"127":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":1,"docs":{"127":{"tf":1.0}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":46,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":2.23606797749979},"198":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":2.6457513110645907},"22":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.4142135623730951},"230":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"257":{"tf":1.4142135623730951},"259":{"tf":1.7320508075688772},"260":{"tf":1.0},"261":{"tf":1.4142135623730951},"264":{"tf":1.0},"267":{"tf":1.0},"33":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.7320508075688772},"56":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"64":{"tf":1.0},"7":{"tf":1.0},"73":{"tf":1.0},"78":{"tf":2.23606797749979},"79":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":2,"docs":{"208":{"tf":1.0},"42":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"211":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"266":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"12":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0}}}}}}},"df":2,"docs":{"129":{"tf":1.0},"90":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":17,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"154":{"tf":1.0},"157":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":2.449489742783178},"261":{"tf":1.0},"262":{"tf":2.0},"269":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.0}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"118":{"tf":1.0},"234":{"tf":1.0},"31":{"tf":1.0},"49":{"tf":1.4142135623730951},"65":{"tf":1.0},"95":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"257":{"tf":1.0}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"56":{"tf":1.0},"84":{"tf":1.7320508075688772},"92":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":11,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"180":{"tf":1.0},"225":{"tf":1.0},"232":{"tf":1.4142135623730951},"238":{"tf":1.0},"38":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":9,"docs":{"100":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"134":{"tf":1.0},"83":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":26,"docs":{"102":{"tf":1.0},"105":{"tf":1.7320508075688772},"112":{"tf":1.0},"118":{"tf":1.0},"135":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"180":{"tf":1.4142135623730951},"19":{"tf":1.0},"196":{"tf":1.0},"219":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.4142135623730951},"270":{"tf":1.0},"282":{"tf":1.0},"30":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"91":{"tf":1.0},"95":{"tf":1.0}},"m":{"df":5,"docs":{"129":{"tf":1.0},"178":{"tf":1.0},"19":{"tf":1.0},"211":{"tf":1.0},"29":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"208":{"tf":1.0}}}}}}}},"n":{"df":2,"docs":{"180":{"tf":1.0},"199":{"tf":1.0}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"218":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"132":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"177":{"tf":3.0},"178":{"tf":1.0},"180":{"tf":1.0},"243":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"177":{"tf":1.0}}}}}},"df":0,"docs":{}},"f":{"df":4,"docs":{"22":{"tf":1.0},"256":{"tf":1.0},"55":{"tf":1.0},"94":{"tf":1.0}}},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":13,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"166":{"tf":1.0},"178":{"tf":2.23606797749979},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"22":{"tf":1.0},"252":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"79":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":20,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"134":{"tf":1.0},"140":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"218":{"tf":1.0},"248":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.4142135623730951},"258":{"tf":1.0},"289":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"121":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"t":{"df":3,"docs":{"115":{"tf":1.0},"116":{"tf":1.0},"136":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"0":{"tf":1.0},"175":{"tf":1.4142135623730951},"186":{"tf":1.0},"213":{"tf":1.0},"265":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"13":{"tf":1.0},"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"72":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":56,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.449489742783178},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"192":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.4142135623730951},"280":{"tf":1.0},"29":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":1.7320508075688772},"38":{"tf":2.0},"39":{"tf":2.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"59":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"z":{"df":5,"docs":{"172":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"25":{"tf":1.0},"37":{"tf":1.0}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"250":{"tf":1.0}}}}},"v":{"df":4,"docs":{"151":{"tf":1.0},"165":{"tf":1.0},"171":{"tf":1.0},"219":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"'":{"df":2,"docs":{"146":{"tf":1.4142135623730951},"152":{"tf":1.0}}},"df":88,"docs":{"1":{"tf":1.0},"103":{"tf":2.449489742783178},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"115":{"tf":1.4142135623730951},"116":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"133":{"tf":1.4142135623730951},"134":{"tf":1.4142135623730951},"135":{"tf":1.7320508075688772},"136":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":2.0},"140":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":2.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"150":{"tf":1.7320508075688772},"151":{"tf":2.23606797749979},"152":{"tf":3.0},"155":{"tf":1.0},"157":{"tf":2.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":2.0},"200":{"tf":2.449489742783178},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"217":{"tf":2.23606797749979},"219":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.4142135623730951},"233":{"tf":1.0},"235":{"tf":2.449489742783178},"237":{"tf":1.7320508075688772},"238":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"263":{"tf":2.23606797749979},"264":{"tf":1.4142135623730951},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"272":{"tf":1.4142135623730951},"274":{"tf":1.7320508075688772},"275":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"45":{"tf":1.4142135623730951},"50":{"tf":1.0},"77":{"tf":1.4142135623730951},"79":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"86":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.4142135623730951},"99":{"tf":1.0}}}},"i":{"c":{"df":10,"docs":{"0":{"tf":1.0},"12":{"tf":1.4142135623730951},"149":{"tf":1.0},"176":{"tf":1.0},"241":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":2.23606797749979},"254":{"tf":1.0},"30":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"135":{"tf":1.0},"95":{"tf":1.0}}}}}}},"t":{"df":38,"docs":{"0":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":2.0},"118":{"tf":1.0},"135":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"145":{"tf":1.0},"152":{"tf":1.0},"158":{"tf":1.0},"173":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"237":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"281":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"82":{"tf":1.0},"92":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.7320508075688772}},"u":{"df":0,"docs":{},"p":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"14":{"tf":1.0},"164":{"tf":1.0},"247":{"tf":1.0},"33":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":5,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"60":{"tf":1.0},"78":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":12,"docs":{"159":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"215":{"tf":1.0},"218":{"tf":1.4142135623730951},"222":{"tf":1.0},"261":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}}},"r":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":37,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"16":{"tf":1.0},"169":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"265":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"8":{"tf":1.0},"86":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":6,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"78":{"tf":1.7320508075688772}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"249":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"e":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}},"p":{"df":3,"docs":{"190":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.7320508075688772}}},"r":{"df":0,"docs":{},"t":{"df":11,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.4142135623730951},"196":{"tf":1.0},"252":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"177":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":18,"docs":{"0":{"tf":1.0},"143":{"tf":1.0},"154":{"tf":1.0},"183":{"tf":1.0},"186":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"196":{"tf":1.0},"203":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.7320508075688772},"60":{"tf":1.7320508075688772},"76":{"tf":2.6457513110645907}}}},"df":0,"docs":{}}}},"w":{"df":12,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"152":{"tf":1.4142135623730951},"193":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"86":{"tf":1.0}},"n":{"df":5,"docs":{"154":{"tf":1.0},"175":{"tf":1.0},"242":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":12,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"139":{"tf":1.7320508075688772},"142":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"177":{"tf":1.0},"218":{"tf":1.4142135623730951},"234":{"tf":1.0},"254":{"tf":1.4142135623730951},"275":{"tf":1.0},"5":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":19,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"114":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.6457513110645907},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"132":{"tf":1.0},"135":{"tf":1.0},"195":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"56":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"df":31,"docs":{"0":{"tf":1.0},"100":{"tf":1.7320508075688772},"102":{"tf":2.23606797749979},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"121":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"240":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.4142135623730951},"282":{"tf":1.0},"289":{"tf":1.0},"67":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"114":{"tf":1.0},"258":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"(":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":24,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"129":{"tf":1.4142135623730951},"136":{"tf":1.0},"170":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"98":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":18,"docs":{"106":{"tf":1.0},"128":{"tf":1.0},"131":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"195":{"tf":1.0},"202":{"tf":1.0},"208":{"tf":1.4142135623730951},"284":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"132":{"tf":1.0},"181":{"tf":1.0},"228":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"45":{"tf":1.0},"49":{"tf":1.0}}}}},"i":{"c":{"df":3,"docs":{"128":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0}}},"df":15,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"182":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"226":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":37,"docs":{"100":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"132":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"203":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"69":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"80":{"tf":1.0},"84":{"tf":1.4142135623730951},"93":{"tf":1.0},"95":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"193":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"185":{"tf":1.0},"246":{"tf":1.0}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"143":{"tf":1.0},"248":{"tf":1.7320508075688772},"87":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"118":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"222":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"w":{"df":3,"docs":{"13":{"tf":1.0},"224":{"tf":1.0},"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":6,"docs":{"162":{"tf":1.0},"186":{"tf":1.0},"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"193":{"tf":1.0},"246":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"a":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"p":{"c":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":16,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.4142135623730951},"121":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.0},"252":{"tf":1.0},"272":{"tf":1.4142135623730951},"53":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"123":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":11,"docs":{"10":{"tf":1.0},"123":{"tf":1.4142135623730951},"173":{"tf":1.0},"193":{"tf":2.8284271247461903},"194":{"tf":1.7320508075688772},"195":{"tf":1.7320508075688772},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.23606797749979},"200":{"tf":2.6457513110645907},"201":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"263":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"163":{"tf":1.0},"181":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"213":{"tf":1.0},"77":{"tf":1.0}}}},"v":{"df":12,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"234":{"tf":1.0},"254":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"186":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"156":{"tf":1.0},"162":{"tf":1.0},"181":{"tf":1.0},"85":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"177":{"tf":1.0},"259":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"h":{"df":28,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.0},"120":{"tf":1.0},"136":{"tf":1.4142135623730951},"141":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"216":{"tf":1.0},"246":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"51":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"i":{"df":0,"docs":{},"m":{"df":8,"docs":{"184":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"87":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"105":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"156":{"tf":1.0},"157":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"142":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"_":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"142":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":25,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"275":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}},"r":{"c":{"df":32,"docs":{"111":{"tf":1.0},"112":{"tf":2.23606797749979},"118":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.7320508075688772},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.7320508075688772},"233":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0},"50":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"256":{"tf":1.0},"94":{"tf":1.0}}}}}}}}},"y":{"df":1,"docs":{"270":{"tf":1.0}}}},"p":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":4,"docs":{"130":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"44":{"tf":1.0},"48":{"tf":2.23606797749979}}}}}},"df":0,"docs":{},"e":{"c":{"df":19,"docs":{"112":{"tf":1.0},"123":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":2.23606797749979},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"188":{"tf":1.0},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"20":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"72":{"tf":1.0},"81":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"124":{"tf":1.0},"176":{"tf":1.0},"258":{"tf":1.0},"288":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":55,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"122":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":2.449489742783178},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"222":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.7320508075688772},"250":{"tf":1.0},"254":{"tf":2.0},"259":{"tf":1.4142135623730951},"264":{"tf":1.0},"265":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"44":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.4142135623730951},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}},"i":{"df":9,"docs":{"128":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"228":{"tf":1.4142135623730951},"254":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}},"n":{"d":{"df":2,"docs":{"12":{"tf":1.0},"17":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"181":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"28":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"l":{"df":14,"docs":{"10":{"tf":1.0},"174":{"tf":1.4142135623730951},"194":{"tf":1.0},"213":{"tf":1.7320508075688772},"214":{"tf":1.7320508075688772},"215":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":2.0},"219":{"tf":2.23606797749979},"220":{"tf":1.7320508075688772},"222":{"tf":1.7320508075688772},"245":{"tf":1.0},"283":{"tf":1.0}}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"z":{"df":1,"docs":{"235":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"197":{"tf":1.0}}},"i":{"df":1,"docs":{"255":{"tf":1.0}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.7320508075688772}}}},"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":35,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":2.449489742783178},"121":{"tf":1.4142135623730951},"14":{"tf":2.6457513110645907},"15":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"208":{"tf":1.0},"213":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"257":{"tf":1.0},"259":{"tf":1.0},"262":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0},"86":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"17":{"tf":1.0},"211":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":19,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"241":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"290":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"248":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.4142135623730951},"120":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.4142135623730951},"13":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"188":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"223":{"tf":1.0},"81":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"175":{"tf":1.7320508075688772},"180":{"tf":1.7320508075688772},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}},"i":{"c":{"df":6,"docs":{"209":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"23":{"tf":1.0},"26":{"tf":1.0},"77":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":4,"docs":{"115":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"4":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"m":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"y":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":15,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"264":{"tf":1.0},"42":{"tf":1.0},"91":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"213":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"263":{"tf":1.0},"267":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"p":{"df":2,"docs":{"135":{"tf":1.0},"190":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"121":{"tf":1.4142135623730951},"152":{"tf":1.0},"166":{"tf":1.0},"2":{"tf":1.0},"208":{"tf":1.4142135623730951},"229":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{":":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":34,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"151":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"226":{"tf":1.0},"232":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":2.23606797749979},"242":{"tf":1.0},"244":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":2.0},"260":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.0},"41":{"tf":1.0},"79":{"tf":1.0},"84":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}}},"i":{"df":1,"docs":{"17":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"239":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":4,"docs":{"16":{"tf":1.0},"17":{"tf":1.0},"6":{"tf":1.0},"94":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"t":{"df":12,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"38":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"148":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":36,"docs":{"0":{"tf":1.0},"101":{"tf":1.0},"105":{"tf":1.0},"117":{"tf":1.7320508075688772},"129":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"208":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":2.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"59":{"tf":2.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"65":{"tf":1.7320508075688772},"66":{"tf":1.0},"69":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951},"95":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"185":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":15,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"144":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"18":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"249":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"240":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}},"i":{"df":1,"docs":{"253":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":2,"docs":{"111":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":2,"docs":{"234":{"tf":1.0},"58":{"tf":1.0}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"124":{"tf":1.0},"80":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{"(":{"df":1,"docs":{"276":{"tf":1.0}}},"df":1,"docs":{"276":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"199":{"tf":1.0}}},"df":52,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"105":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"132":{"tf":1.4142135623730951},"134":{"tf":1.0},"135":{"tf":2.23606797749979},"136":{"tf":1.0},"142":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":2.449489742783178},"177":{"tf":2.6457513110645907},"178":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"180":{"tf":2.6457513110645907},"181":{"tf":3.4641016151377544},"182":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.7320508075688772},"196":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"268":{"tf":1.0},"28":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"30":{"tf":2.6457513110645907},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"39":{"tf":2.0},"40":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":2.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":6,"docs":{"111":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"250":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"172":{"tf":1.0},"205":{"tf":1.0},"38":{"tf":1.0}}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"d":{"df":1,"docs":{"115":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"12":{"tf":1.0},"199":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":40,"docs":{"105":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.4142135623730951},"139":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"38":{"tf":1.0},"40":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"168":{"tf":1.0},"181":{"tf":1.0},"243":{"tf":1.7320508075688772},"270":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"257":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"12":{"tf":1.0}}}},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"148":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"112":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":30,"docs":{"112":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"247":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0}}}},"s":{"df":2,"docs":{"12":{"tf":1.0},"177":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":26,"docs":{"109":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"206":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":5,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":2.23606797749979},"252":{"tf":3.0},"253":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"w":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"14":{"tf":1.0},"18":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"112":{"tf":1.0},"240":{"tf":1.0}},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":5,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0},"58":{"tf":1.0},"66":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":29,"docs":{"0":{"tf":1.0},"112":{"tf":2.0},"121":{"tf":1.4142135623730951},"122":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":1.0},"222":{"tf":1.4142135623730951},"234":{"tf":1.0},"239":{"tf":1.0},"260":{"tf":1.0},"44":{"tf":1.0},"55":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"183":{"tf":1.0}}}}}}},"t":{"a":{"b":{"df":1,"docs":{"98":{"tf":1.0}},"l":{"df":13,"docs":{"151":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"214":{"tf":2.23606797749979},"218":{"tf":1.4142135623730951},"219":{"tf":1.7320508075688772},"220":{"tf":1.0},"222":{"tf":1.0},"240":{"tf":1.0},"261":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0},"6":{"tf":1.0}}}},"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":2,"docs":{"191":{"tf":1.0},"192":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":16,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.4142135623730951},"204":{"tf":1.0},"225":{"tf":1.0},"25":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":2,"docs":{"132":{"tf":1.0},"288":{"tf":1.0}}},"m":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"18":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"108":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"44":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"52":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0}}}}}},"c":{"df":1,"docs":{"124":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"266":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"266":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":1,"docs":{"86":{"tf":1.0}}}},"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.4142135623730951}},"n":{"df":0,"docs":{},"i":{"c":{"df":6,"docs":{"17":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"288":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":5,"docs":{"17":{"tf":1.0},"170":{"tf":1.0},"225":{"tf":1.0},"242":{"tf":1.0},"269":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"l":{"df":12,"docs":{"135":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"183":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"208":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"15":{"tf":1.0},"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"d":{"df":6,"docs":{"139":{"tf":1.0},"184":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0}}},"df":1,"docs":{"220":{"tf":1.0}}},"r":{"a":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":2,"docs":{"179":{"tf":1.4142135623730951},"33":{"tf":1.0}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"117":{"tf":1.0},"151":{"tf":1.0},"220":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}}}}}},"df":23,"docs":{"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"62":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}},"df":0,"docs":{}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":2,"docs":{"288":{"tf":1.0},"31":{"tf":1.4142135623730951}}}},"t":{"'":{"df":13,"docs":{"12":{"tf":1.7320508075688772},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"166":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"194":{"tf":1.0},"202":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"90":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":10,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"186":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"81":{"tf":1.0},"90":{"tf":1.0},"93":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":8,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"165":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"152":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"186":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0}}}}}}},"y":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"181":{"tf":1.0}}},"v":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{".":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"58":{"tf":1.0}}}}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":54,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"137":{"tf":1.0},"15":{"tf":1.0},"153":{"tf":1.4142135623730951},"154":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"181":{"tf":2.449489742783178},"183":{"tf":1.7320508075688772},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"196":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"201":{"tf":1.4142135623730951},"204":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.0},"240":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.7320508075688772},"290":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.4142135623730951}}},"k":{"df":18,"docs":{"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"253":{"tf":1.0},"266":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"d":{"df":2,"docs":{"256":{"tf":1.0},"32":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"132":{"tf":1.0}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"175":{"tf":1.0},"247":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":4,"docs":{"219":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0},"48":{"tf":1.0}},"t":{"df":5,"docs":{"169":{"tf":1.0},"175":{"tf":1.0},"212":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":7,"docs":{"1":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"204":{"tf":1.0},"29":{"tf":1.4142135623730951},"56":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":12,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"225":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"49":{"tf":1.0},"76":{"tf":1.0}}}}}}},"u":{"df":1,"docs":{"181":{"tf":1.0}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"86":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"186":{"tf":1.0}}}}}}},"m":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":4,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}},"e":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.0},"152":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"258":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"65":{"tf":1.0},"70":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":7,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.7320508075688772},"114":{"tf":1.0},"118":{"tf":1.0},"39":{"tf":1.0},"71":{"tf":1.4142135623730951},"95":{"tf":2.23606797749979}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"l":{"df":2,"docs":{"129":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"d":{"a":{"df":0,"docs":{},"y":{"df":3,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":2,"docs":{"241":{"tf":1.0},"28":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"16":{"tf":1.0},"288":{"tf":1.0}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"95":{"tf":1.0},"98":{"tf":2.0}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":9,"docs":{"133":{"tf":1.0},"138":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"41":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"41":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"df":2,"docs":{"151":{"tf":1.0},"226":{"tf":1.0}},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"13":{"tf":1.0},"16":{"tf":1.0}}},"l":{"df":17,"docs":{"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"17":{"tf":1.0},"183":{"tf":1.0},"19":{"tf":1.4142135623730951},"191":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.23606797749979},"241":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"281":{"tf":1.0}}}},"p":{"df":5,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"90":{"tf":1.7320508075688772}},"i":{"c":{"df":3,"docs":{"199":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"f":{"df":2,"docs":{"276":{"tf":1.0},"288":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"249":{"tf":1.0}}},"k":{"df":7,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"20":{"tf":1.0},"248":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"234":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"193":{"tf":1.0},"229":{"tf":1.0}}},"n":{"df":3,"docs":{"242":{"tf":1.0},"244":{"tf":1.4142135623730951},"245":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"110":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":2.0},"235":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":5,"docs":{"181":{"tf":2.449489742783178},"253":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":5,"docs":{"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":17,"docs":{"0":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"229":{"tf":1.0},"262":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"47":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0},"81":{"tf":1.0}}}}}},"y":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"198":{"tf":1.0},"87":{"tf":1.0}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"183":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":13,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"19":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.0},"282":{"tf":1.0},"53":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"127":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":2.0},"178":{"tf":2.0},"180":{"tf":1.0},"181":{"tf":2.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"29":{"tf":1.4142135623730951},"38":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0}}}},"v":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"119":{"tf":1.0},"14":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"192":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"e":{"df":8,"docs":{"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"56":{"tf":1.0},"69":{"tf":1.7320508075688772}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"112":{"tf":1.0},"118":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"269":{"tf":1.0}}}}}}}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"280":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"20":{"tf":1.0},"253":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"74":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":9,"docs":{"124":{"tf":1.0},"127":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"38":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"157":{"tf":1.0},"189":{"tf":1.0},"241":{"tf":1.0},"289":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"181":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":16,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"125":{"tf":1.0},"144":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"201":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.0},"242":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":1.0},"93":{"tf":1.0}}}},"x":{"df":1,"docs":{"124":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":45,"docs":{"0":{"tf":2.0},"12":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"159":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"183":{"tf":1.4142135623730951},"185":{"tf":1.0},"187":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"31":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"45":{"tf":2.0},"55":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":12,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"56":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"i":{"c":{"df":4,"docs":{"136":{"tf":1.0},"210":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"14":{"tf":1.0},"157":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"l":{"df":2,"docs":{"14":{"tf":1.0},"54":{"tf":1.0}}}},"n":{")":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"107":{"tf":1.0}}}}}}}},"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"132":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"197":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"r":{"df":4,"docs":{"154":{"tf":1.0},"164":{"tf":1.0},"181":{"tf":1.0},"46":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"112":{"tf":1.0},"130":{"tf":1.0},"148":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.4142135623730951},"22":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"199":{"tf":1.0},"266":{"tf":1.0},"55":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"o":{"df":3,"docs":{"111":{"tf":1.0},"15":{"tf":1.0},"195":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"184":{"tf":1.0},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"175":{"tf":1.0},"183":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"64":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":23,"docs":{"127":{"tf":1.0},"132":{"tf":1.0},"162":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"196":{"tf":1.4142135623730951},"208":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":1.0}}}},"t":{"df":1,"docs":{"250":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"x":{"df":4,"docs":{"101":{"tf":1.0},"114":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":3,"docs":{"137":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"23":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"k":{"df":2,"docs":{"180":{"tf":1.0},"222":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"135":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"114":{"tf":1.0},"127":{"tf":1.0},"130":{"tf":2.0},"133":{"tf":1.0},"134":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.4142135623730951},"258":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"289":{"tf":1.0},"81":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":20,"docs":{"106":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"206":{"tf":1.0},"216":{"tf":1.0},"237":{"tf":1.0},"245":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":7,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"165":{"tf":1.0},"171":{"tf":1.4142135623730951},"219":{"tf":1.0},"268":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"=":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"%":{"3":{"a":{"%":{"2":{"df":0,"docs":{},"f":{"%":{"2":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"%":{"2":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"146":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":9,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":2.6457513110645907},"151":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"157":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":8,"docs":{"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.4142135623730951},"186":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.4142135623730951},"72":{"tf":1.0}}},"l":{"df":94,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.0},"107":{"tf":2.0},"108":{"tf":1.4142135623730951},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.0},"124":{"tf":1.0},"128":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.4142135623730951},"144":{"tf":1.4142135623730951},"145":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"176":{"tf":1.0},"177":{"tf":2.0},"181":{"tf":1.7320508075688772},"182":{"tf":1.4142135623730951},"183":{"tf":2.449489742783178},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.7320508075688772},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":2.0},"213":{"tf":1.0},"216":{"tf":1.7320508075688772},"218":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"253":{"tf":1.0},"261":{"tf":1.0},"268":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":2.449489742783178},"30":{"tf":1.4142135623730951},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.0},"45":{"tf":1.7320508075688772},"47":{"tf":1.0},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"63":{"tf":1.7320508075688772},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.7320508075688772},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":2.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"107":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"107":{"tf":1.0},"181":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"276":{"tf":1.0},"37":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}}}}}}}},"df":184,"docs":{"0":{"tf":3.0},"1":{"tf":1.0},"10":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.4142135623730951},"117":{"tf":1.0},"121":{"tf":2.23606797749979},"123":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":2.23606797749979},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"134":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":2.23606797749979},"142":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":3.0},"154":{"tf":1.7320508075688772},"156":{"tf":1.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"160":{"tf":1.4142135623730951},"161":{"tf":1.0},"162":{"tf":2.0},"163":{"tf":1.7320508075688772},"164":{"tf":1.0},"165":{"tf":1.4142135623730951},"166":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.7320508075688772},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.23606797749979},"180":{"tf":1.0},"181":{"tf":3.1622776601683795},"182":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"189":{"tf":2.0},"19":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.7320508075688772},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"202":{"tf":2.0},"203":{"tf":2.23606797749979},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.0},"210":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":1.0},"22":{"tf":2.6457513110645907},"220":{"tf":1.0},"222":{"tf":1.4142135623730951},"223":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"228":{"tf":1.0},"229":{"tf":2.0},"23":{"tf":1.7320508075688772},"230":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"234":{"tf":1.4142135623730951},"235":{"tf":2.23606797749979},"238":{"tf":1.7320508075688772},"240":{"tf":1.7320508075688772},"241":{"tf":1.7320508075688772},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":2.449489742783178},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":2.449489742783178},"279":{"tf":1.0},"284":{"tf":1.4142135623730951},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":2.6457513110645907},"40":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"55":{"tf":2.23606797749979},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":2.0},"77":{"tf":2.0},"79":{"tf":2.0},"80":{"tf":1.0},"81":{"tf":2.0},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"89":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":2.449489742783178}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"139":{"tf":1.0}}}}}},"r":{"'":{"df":3,"docs":{"253":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"df":33,"docs":{"0":{"tf":1.4142135623730951},"105":{"tf":1.0},"12":{"tf":1.4142135623730951},"135":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"159":{"tf":1.0},"167":{"tf":1.4142135623730951},"168":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":2.0},"224":{"tf":1.0},"234":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":2.0},"261":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"81":{"tf":1.4142135623730951},"93":{"tf":1.0},"94":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"182":{"tf":1.0},"40":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"c":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}},"x":{"df":2,"docs":{"18":{"tf":1.0},"252":{"tf":1.0}}}},"v":{"1":{"df":1,"docs":{"4":{"tf":1.0}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":44,"docs":{"103":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.23606797749979},"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"264":{"tf":1.0},"280":{"tf":1.4142135623730951},"33":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"48":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"103":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"u":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"148":{"tf":1.0},"232":{"tf":1.0},"288":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":48,"docs":{"114":{"tf":1.4142135623730951},"118":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"158":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.7320508075688772},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.4142135623730951},"229":{"tf":1.0},"25":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.6457513110645907},"32":{"tf":2.0},"39":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"54":{"tf":1.0},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"67":{"tf":1.0},"68":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0}}}},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":1,"docs":{"78":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"131":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"232":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"271":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":5,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.0}},"e":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"r":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"288":{"tf":1.0}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}}}},"i":{"df":28,"docs":{"1":{"tf":1.0},"112":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"126":{"tf":1.0},"130":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"155":{"tf":1.0},"167":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"209":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"290":{"tf":1.0}},"f":{"df":2,"docs":{"258":{"tf":1.0},"85":{"tf":1.0}},"i":{"df":19,"docs":{"10":{"tf":1.0},"103":{"tf":1.0},"111":{"tf":1.4142135623730951},"116":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.7320508075688772},"257":{"tf":1.0},"258":{"tf":2.0},"259":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":26,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"121":{"tf":1.4142135623730951},"132":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"26":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"17":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"(":{"df":1,"docs":{"20":{"tf":1.0}}},"df":2,"docs":{"23":{"tf":1.0},"265":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":11,"docs":{"107":{"tf":1.0},"144":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"20":{"tf":1.0},"234":{"tf":1.0},"264":{"tf":2.0},"275":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"153":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"142":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"17":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":5,"docs":{"156":{"tf":1.4142135623730951},"276":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"c":{"a":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"25":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"290":{"tf":1.0}}},"df":0,"docs":{},"l":{"a":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":5,"docs":{"143":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"229":{"tf":1.0}}}},"w":{"3":{"c":{"df":2,"docs":{"175":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":42,"docs":{"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"12":{"tf":2.6457513110645907},"13":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"189":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"219":{"tf":1.7320508075688772},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"281":{"tf":1.0},"39":{"tf":1.0},"49":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"125":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"265":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"y":{"df":47,"docs":{"1":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0},"190":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"239":{"tf":1.0},"242":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"271":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.4142135623730951},"45":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.4142135623730951},"92":{"tf":1.4142135623730951},"93":{"tf":1.0}},"n":{"df":1,"docs":{"243":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"'":{"d":{"df":2,"docs":{"228":{"tf":1.0},"252":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":17,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.0},"120":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.7320508075688772},"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"232":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"289":{"tf":1.0},"34":{"tf":1.0},"87":{"tf":1.0}}}},"r":{"df":7,"docs":{"120":{"tf":1.0},"128":{"tf":1.0},"148":{"tf":1.0},"19":{"tf":1.4142135623730951},"20":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.7320508075688772}}},"v":{"df":5,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"235":{"tf":1.0},"51":{"tf":1.0}}}},"b":{")":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"196":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"12":{"tf":1.7320508075688772},"128":{"tf":1.0},"13":{"tf":2.0},"138":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"190":{"tf":1.4142135623730951},"193":{"tf":1.7320508075688772},"199":{"tf":2.23606797749979},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"235":{"tf":1.7320508075688772},"241":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"55":{"tf":1.0},"81":{"tf":1.0}},"i":{"d":{"df":1,"docs":{"197":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":2.449489742783178},"261":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"c":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"77":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"133":{"tf":1.4142135623730951},"134":{"tf":1.7320508075688772},"135":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.7320508075688772},"99":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"261":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"290":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":13,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"12":{"tf":2.23606797749979},"18":{"tf":1.0},"189":{"tf":1.0},"201":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.4142135623730951},"262":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"115":{"tf":1.0},"13":{"tf":1.0},"136":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"209":{"tf":1.0},"243":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"136":{"tf":1.0},"17":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":7,"docs":{"180":{"tf":1.0},"213":{"tf":1.0},"216":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"263":{"tf":1.0},"78":{"tf":1.4142135623730951}}},"df":0,"docs":{},"v":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"103":{"tf":1.0},"112":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"54":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"111":{"tf":1.0},"168":{"tf":1.0},"190":{"tf":1.0}}}}}},"o":{"'":{"df":2,"docs":{"114":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"126":{"tf":1.0}},"s":{"#":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"2":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":4,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"256":{"tf":1.0}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"284":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":4,"docs":{"118":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":23,"docs":{"107":{"tf":1.4142135623730951},"114":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.4142135623730951},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"262":{"tf":1.0},"267":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"70":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":11,"docs":{"181":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"190":{"tf":1.0}}}},"df":0,"docs":{}},"df":39,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.4142135623730951},"128":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.4142135623730951},"271":{"tf":1.0},"288":{"tf":1.7320508075688772},"41":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"83":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"a":{"c":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"d":{"df":10,"docs":{"106":{"tf":1.0},"12":{"tf":1.0},"131":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"222":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":2,"docs":{"12":{"tf":1.0},"181":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"183":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"123":{"tf":1.0}}}}}},"df":34,"docs":{"108":{"tf":1.0},"110":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"243":{"tf":1.4142135623730951},"8":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"92":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":8,"docs":{"14":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"5":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":5,"docs":{"115":{"tf":1.0},"117":{"tf":1.0},"136":{"tf":1.7320508075688772},"180":{"tf":1.0},"99":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"112":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}}}},"s":{"df":2,"docs":{"134":{"tf":1.4142135623730951},"151":{"tf":1.0}},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"w":{"df":1,"docs":{"95":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"134":{"tf":1.0},"151":{"tf":1.0},"95":{"tf":1.0}}}}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":3,"docs":{"101":{"tf":2.0},"103":{"tf":1.4142135623730951},"134":{"tf":1.0}},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"148":{"tf":1.0},"199":{"tf":1.0},"26":{"tf":1.0},"262":{"tf":1.0},"54":{"tf":1.0}}}},"s":{"d":{":":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"185":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"192":{"tf":1.0}}}}}}}}},"df":2,"docs":{"126":{"tf":1.0},"54":{"tf":1.0}}},"df":0,"docs":{}}},"y":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"199":{"tf":1.0},"201":{"tf":1.0},"220":{"tf":1.0},"251":{"tf":1.0}}}},"df":2,"docs":{"194":{"tf":1.0},"223":{"tf":1.0}}},"o":{"df":0,"docs":{},"u":{"'":{"d":{"df":7,"docs":{"119":{"tf":1.0},"135":{"tf":1.4142135623730951},"162":{"tf":1.0},"215":{"tf":1.0},"229":{"tf":1.0},"250":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":11,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"df":29,"docs":{"106":{"tf":1.0},"118":{"tf":1.7320508075688772},"136":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.4142135623730951},"210":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.4142135623730951},"218":{"tf":1.0},"23":{"tf":1.4142135623730951},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"v":{"df":6,"docs":{"117":{"tf":1.0},"166":{"tf":1.0},"181":{"tf":1.0},"250":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":3,"docs":{"155":{"tf":1.0},"157":{"tf":1.0},"53":{"tf":1.0}}}}}}}}},"y":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":1,"docs":{"70":{"tf":1.0}}}}}},"z":{"0":{"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"69":{"tf":1.0}}}}}}}},"breadcrumbs":{"root":{"0":{".":{"2":{"0":{".":{"0":{"df":1,"docs":{"276":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"5":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"df":6,"docs":{"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0},"71":{"tf":1.0}}},"2":{"df":3,"docs":{"127":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"3":{"df":1,"docs":{"18":{"tf":1.0}}},"4":{"df":2,"docs":{"127":{"tf":1.0},"18":{"tf":1.4142135623730951}}},"6":{"df":1,"docs":{"18":{"tf":1.4142135623730951}}},"7":{"df":2,"docs":{"18":{"tf":1.0},"71":{"tf":1.0}}},"8":{"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"9":{"df":1,"docs":{"18":{"tf":1.0}}},"df":2,"docs":{"52":{"tf":1.4142135623730951},"69":{"tf":1.0}}},"1":{",":{"4":{",":{"5":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},".":{".":{"2":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"0":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"0":{"0":{"df":2,"docs":{"199":{"tf":1.0},"223":{"tf":1.0}}},"df":2,"docs":{"118":{"tf":1.0},"18":{"tf":1.0}}},"1":{"8":{".":{"2":{"0":{"5":{"4":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},":":{"1":{"5":{":":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"2":{"4":{"df":1,"docs":{"56":{"tf":1.0}}},"df":1,"docs":{"18":{"tf":1.7320508075688772}}},"5":{"0":{"df":1,"docs":{"112":{"tf":1.0}}},"6":{"1":{"1":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"4":{"6":{"8":{"df":1,"docs":{"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"9":{"6":{"7":{"9":{"8":{"9":{"1":{"9":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"13":{"tf":1.0},"246":{"tf":1.0}},"m":{"b":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}}},"6":{"1":{"1":{"4":{"8":{"9":{"9":{"2":{"8":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.0}}},"9":{"3":{"7":{"0":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"6":{"1":{"7":{"5":{"7":{"4":{"7":{"0":{"0":{"0":{"2":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"df":1,"docs":{"256":{"tf":1.0}}},"9":{"7":{"0":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"9":{"1":{"\"":{"@":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"177":{"tf":1.0}}}},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":4,"docs":{"177":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"70":{"tf":1.0}}},"9":{"df":1,"docs":{"175":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"69":{"tf":1.0}},"m":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}},"2":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"0":{"0":{"df":1,"docs":{"177":{"tf":1.0}}},"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":1,"docs":{"45":{"tf":1.0}}},"2":{"0":{"df":2,"docs":{"18":{"tf":2.23606797749979},"71":{"tf":1.0}}},"1":{"df":3,"docs":{"123":{"tf":1.0},"18":{"tf":3.3166247903554},"195":{"tf":1.0}}},"2":{"df":2,"docs":{"18":{"tf":2.0},"200":{"tf":1.0}}},"3":{"df":1,"docs":{"20":{"tf":2.449489742783178}}},"4":{"df":1,"docs":{"20":{"tf":1.7320508075688772}}},"df":0,"docs":{}},"df":5,"docs":{"177":{"tf":1.4142135623730951},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979},"70":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"177":{"tf":1.0},"29":{"tf":1.0}}}}},"2":{"df":1,"docs":{"40":{"tf":1.0}}},"4":{"df":1,"docs":{"112":{"tf":1.0}}},"df":2,"docs":{"143":{"tf":1.0},"177":{"tf":1.0}},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"3":{"0":{"\"":{"^":{"^":{"df":0,"docs":{},"x":{"df":0,"docs":{},"s":{"d":{":":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":2,"docs":{"12":{"tf":1.0},"95":{"tf":1.0}}},"2":{"df":1,"docs":{"71":{"tf":1.0}}},"3":{".":{"7":{"8":{"1":{"7":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"d":{"df":1,"docs":{"23":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}},"m":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"4":{"0":{"4":{"df":3,"docs":{"136":{"tf":1.0},"173":{"tf":1.0},"208":{"tf":1.0}}},"df":0,"docs":{}},"2":{"0":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"7":{"8":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}},"5":{"0":{"0":{"df":1,"docs":{"103":{"tf":1.0}}},"df":0,"docs":{}},"9":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"x":{"df":1,"docs":{"115":{"tf":1.0}}}}},"6":{"4":{"df":2,"docs":{"67":{"tf":1.0},"71":{"tf":1.0}}},"df":1,"docs":{"177":{"tf":1.0}}},"8":{"0":{":":{"8":{"0":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"7":{"df":1,"docs":{"105":{"tf":1.0}}},"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}},"m":{"b":{"df":2,"docs":{"200":{"tf":1.0},"235":{"tf":1.0}}},"df":0,"docs":{}}},"9":{"2":{"2":{"3":{"3":{"7":{"2":{"0":{"3":{"6":{"8":{"5":{"4":{"7":{"7":{"5":{"8":{"0":{"7":{"df":2,"docs":{"67":{"tf":1.0},"68":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"a":{".":{"df":0,"docs":{},"n":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"b":{"c":{"1":{"2":{"3":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"14":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.0}}}},"o":{"df":0,"docs":{},"v":{"df":13,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"132":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"258":{"tf":1.4142135623730951},"267":{"tf":1.0},"29":{"tf":1.7320508075688772},"40":{"tf":1.0},"50":{"tf":1.0},"97":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"60":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"176":{"tf":1.0},"264":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":9,"docs":{"121":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"c":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":13,"docs":{"115":{"tf":1.0},"118":{"tf":1.4142135623730951},"139":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"167":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"48":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":15,"docs":{"100":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"108":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"245":{"tf":1.4142135623730951},"55":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"185":{"tf":1.0}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"271":{"tf":1.4142135623730951},"281":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"111":{"tf":1.0},"223":{"tf":1.4142135623730951},"270":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":4,"docs":{"10":{"tf":1.0},"286":{"tf":1.7320508075688772},"287":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"18":{"tf":1.0},"197":{"tf":1.0}}}},"v":{"df":2,"docs":{"142":{"tf":1.0},"18":{"tf":1.0}}},"x":{"df":1,"docs":{"138":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"111":{"tf":1.0},"82":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":18,"docs":{"108":{"tf":1.0},"118":{"tf":1.0},"14":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"183":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.7320508075688772},"203":{"tf":1.0},"231":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.4142135623730951},"267":{"tf":1.0},"57":{"tf":1.0},"82":{"tf":1.4142135623730951},"84":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"3":{"df":1,"docs":{"18":{"tf":1.0}}},"d":{"df":27,"docs":{"108":{"tf":1.4142135623730951},"118":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":2.0},"154":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":2.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"264":{"tf":2.23606797749979},"266":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.7320508075688772},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"89":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"108":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":7,"docs":{"173":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"40":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}}},"df":65,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"127":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"143":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":2.23606797749979},"157":{"tf":2.23606797749979},"158":{"tf":1.0},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.0},"164":{"tf":1.0},"167":{"tf":1.0},"18":{"tf":2.0},"181":{"tf":1.7320508075688772},"184":{"tf":1.0},"186":{"tf":1.7320508075688772},"187":{"tf":1.7320508075688772},"188":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":2.0},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"270":{"tf":1.0},"280":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.0},"39":{"tf":2.6457513110645907},"40":{"tf":1.7320508075688772},"41":{"tf":2.23606797749979},"42":{"tf":2.23606797749979},"43":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"7":{"tf":1.0},"75":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"121":{"tf":1.0},"165":{"tf":1.4142135623730951}}}}},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"119":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"234":{"tf":1.4142135623730951},"235":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"189":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":4,"docs":{"224":{"tf":1.4142135623730951},"245":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":9,"docs":{"148":{"tf":1.0},"183":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"23":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}}},"i":{"c":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951}}}}},"df":1,"docs":{"254":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"'":{"df":4,"docs":{"105":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"85":{"tf":1.0}}},".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"?":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.7320508075688772},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":2.0},"153":{"tf":1.7320508075688772},"197":{"tf":1.7320508075688772},"198":{"tf":1.0},"258":{"tf":2.0},"282":{"tf":1.0},"56":{"tf":1.7320508075688772},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":2.6457513110645907},"83":{"tf":1.7320508075688772},"84":{"tf":3.0},"85":{"tf":2.23606797749979},"89":{"tf":2.0},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.23606797749979},"96":{"tf":1.0}}}}},"o":{"df":2,"docs":{"12":{"tf":1.0},"241":{"tf":1.0}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"263":{"tf":1.0}}}}},"i":{"df":4,"docs":{"242":{"tf":2.6457513110645907},"243":{"tf":2.0},"244":{"tf":2.0},"245":{"tf":2.6457513110645907}},"m":{"df":7,"docs":{"112":{"tf":1.4142135623730951},"13":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"232":{"tf":1.0}}},"r":{"b":{"df":0,"docs":{},"n":{"b":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}},"df":1,"docs":{"252":{"tf":1.0}}}},"k":{"a":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}},"x":{"df":1,"docs":{"288":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"a":{"df":1,"docs":{"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}}}}}},"i":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"254":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"w":{"df":31,"docs":{"100":{"tf":1.0},"121":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"259":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"62":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"79":{"tf":1.0},"83":{"tf":1.0},"94":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"193":{"tf":1.0}},"g":{"df":1,"docs":{"96":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.0},"42":{"tf":1.0},"76":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":13,"docs":{"141":{"tf":1.0},"144":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"189":{"tf":1.0},"20":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"257":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":5,"docs":{"132":{"tf":1.0},"200":{"tf":1.0},"239":{"tf":1.4142135623730951},"269":{"tf":1.0},"56":{"tf":1.0}}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":15,"docs":{"112":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"201":{"tf":1.0},"218":{"tf":1.0},"232":{"tf":1.0},"272":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0},"86":{"tf":1.0}}}}}}}},"w":{"a":{"df":0,"docs":{},"y":{"df":13,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"145":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"217":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"z":{"df":1,"docs":{"13":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"13":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":1.0}}}},"t":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":1,"docs":{"270":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"16":{"tf":1.0},"96":{"tf":1.0}}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"y":{"df":0,"docs":{},"z":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}},"df":0,"docs":{},"j":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}},"y":{"df":0,"docs":{},"m":{"df":4,"docs":{"184":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":2.449489742783178},"94":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.4142135623730951},"181":{"tf":1.0},"196":{"tf":1.0},"228":{"tf":1.0},"254":{"tf":1.0},"34":{"tf":1.0},"77":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}}},"y":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"111":{"tf":1.0},"178":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"26":{"tf":1.0},"83":{"tf":1.0},"90":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":7,"docs":{"152":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"20":{"tf":1.0},"205":{"tf":1.0},"28":{"tf":1.0},"90":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"284":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"i":{"df":10,"docs":{"112":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.7320508075688772},"235":{"tf":1.0},"55":{"tf":1.0}}},"p":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"98":{"tf":1.0}}}}}}}},"df":31,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"128":{"tf":1.0},"141":{"tf":1.0},"149":{"tf":1.7320508075688772},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"217":{"tf":1.4142135623730951},"222":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"272":{"tf":1.0},"279":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"37":{"tf":1.0},"77":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"114":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":1,"docs":{"12":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"a":{"d":{"+":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":3,"docs":{"167":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":18,"docs":{"1":{"tf":1.0},"106":{"tf":1.0},"121":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"165":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"248":{"tf":1.4142135623730951},"267":{"tf":1.0},"273":{"tf":1.4142135623730951},"59":{"tf":1.0}}},"df":6,"docs":{"111":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":2.0},"223":{"tf":1.0},"55":{"tf":1.0},"88":{"tf":1.0}}}},"r":{"df":0,"docs":{},"o":{"a":{"c":{"df":0,"docs":{},"h":{"df":13,"docs":{"112":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"178":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"234":{"tf":1.0},"77":{"tf":1.0},"96":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}},"r":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.0},"219":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"234":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"188":{"tf":1.0}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{".":{"c":{"df":0,"docs":{},"o":{"df":2,"docs":{"128":{"tf":1.0},"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"df":1,"docs":{"151":{"tf":1.0}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"29":{"tf":2.23606797749979}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"155":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"214":{"tf":1.0},"261":{"tf":1.0},"5":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"df":0,"docs":{},"y":{"df":17,"docs":{"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":2.0},"42":{"tf":1.0},"52":{"tf":2.0},"59":{"tf":1.0},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"5":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"162":{"tf":1.0},"208":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":2.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"k":{"df":2,"docs":{"181":{"tf":1.0},"254":{"tf":1.0}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"103":{"tf":1.0}}}}},"o":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"185":{"tf":1.0},"76":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"133":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":1,"docs":{"288":{"tf":1.0}},"o":{"df":0,"docs":{},"m":{"'":{"df":1,"docs":{"276":{"tf":1.0}}},"df":272,"docs":{"0":{"tf":3.872983346207417},"1":{"tf":3.0},"10":{"tf":1.7320508075688772},"100":{"tf":1.4142135623730951},"101":{"tf":2.23606797749979},"102":{"tf":2.23606797749979},"103":{"tf":1.7320508075688772},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"11":{"tf":1.7320508075688772},"110":{"tf":2.449489742783178},"111":{"tf":2.0},"112":{"tf":2.0},"113":{"tf":1.7320508075688772},"114":{"tf":1.4142135623730951},"115":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"120":{"tf":2.23606797749979},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.7320508075688772},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":3.3166247903554},"133":{"tf":2.449489742783178},"134":{"tf":1.7320508075688772},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":2.0},"14":{"tf":2.449489742783178},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"144":{"tf":2.449489742783178},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"147":{"tf":1.0},"148":{"tf":3.0},"149":{"tf":2.6457513110645907},"15":{"tf":2.449489742783178},"150":{"tf":3.0},"151":{"tf":3.605551275463989},"152":{"tf":3.4641016151377544},"153":{"tf":1.4142135623730951},"154":{"tf":2.0},"155":{"tf":1.7320508075688772},"156":{"tf":2.0},"157":{"tf":2.449489742783178},"158":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":2.23606797749979},"160":{"tf":1.7320508075688772},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"164":{"tf":1.7320508075688772},"165":{"tf":2.8284271247461903},"166":{"tf":2.449489742783178},"167":{"tf":1.0},"168":{"tf":2.0},"169":{"tf":1.4142135623730951},"17":{"tf":1.4142135623730951},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":4.47213595499958},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":3.0},"180":{"tf":1.7320508075688772},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":2.0},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":2.0},"19":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":3.0},"192":{"tf":3.4641016151377544},"193":{"tf":3.7416573867739413},"194":{"tf":2.8284271247461903},"195":{"tf":2.23606797749979},"196":{"tf":2.449489742783178},"197":{"tf":2.23606797749979},"198":{"tf":1.4142135623730951},"2":{"tf":2.6457513110645907},"20":{"tf":3.1622776601683795},"200":{"tf":3.3166247903554},"201":{"tf":2.0},"202":{"tf":2.449489742783178},"203":{"tf":2.0},"204":{"tf":2.23606797749979},"205":{"tf":2.449489742783178},"206":{"tf":2.0},"207":{"tf":1.4142135623730951},"209":{"tf":2.0},"21":{"tf":1.7320508075688772},"210":{"tf":1.0},"211":{"tf":1.4142135623730951},"213":{"tf":2.6457513110645907},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":1.7320508075688772},"217":{"tf":1.7320508075688772},"218":{"tf":2.0},"219":{"tf":2.6457513110645907},"22":{"tf":3.0},"220":{"tf":2.0},"222":{"tf":2.6457513110645907},"223":{"tf":2.0},"224":{"tf":1.4142135623730951},"225":{"tf":2.449489742783178},"226":{"tf":2.0},"227":{"tf":2.23606797749979},"228":{"tf":1.7320508075688772},"229":{"tf":1.7320508075688772},"23":{"tf":2.449489742783178},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"232":{"tf":2.0},"233":{"tf":1.4142135623730951},"235":{"tf":2.8284271247461903},"237":{"tf":1.4142135623730951},"238":{"tf":1.0},"239":{"tf":1.0},"24":{"tf":1.7320508075688772},"240":{"tf":2.0},"241":{"tf":2.23606797749979},"242":{"tf":2.8284271247461903},"243":{"tf":1.7320508075688772},"244":{"tf":2.0},"245":{"tf":1.0},"246":{"tf":1.7320508075688772},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":2.449489742783178},"250":{"tf":1.0},"251":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"255":{"tf":1.4142135623730951},"257":{"tf":2.0},"258":{"tf":2.0},"259":{"tf":1.7320508075688772},"26":{"tf":2.23606797749979},"260":{"tf":1.4142135623730951},"261":{"tf":2.449489742783178},"262":{"tf":2.23606797749979},"263":{"tf":2.23606797749979},"264":{"tf":2.0},"265":{"tf":1.7320508075688772},"267":{"tf":1.7320508075688772},"268":{"tf":2.0},"27":{"tf":1.0},"271":{"tf":1.0},"272":{"tf":2.8284271247461903},"274":{"tf":2.6457513110645907},"275":{"tf":2.0},"276":{"tf":3.1622776601683795},"279":{"tf":1.0},"28":{"tf":1.7320508075688772},"280":{"tf":2.0},"282":{"tf":1.4142135623730951},"283":{"tf":1.7320508075688772},"284":{"tf":2.0},"285":{"tf":1.7320508075688772},"288":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":4.69041575982343},"290":{"tf":1.0},"3":{"tf":1.4142135623730951},"30":{"tf":2.23606797749979},"31":{"tf":2.23606797749979},"32":{"tf":1.4142135623730951},"33":{"tf":2.0},"34":{"tf":1.4142135623730951},"35":{"tf":2.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.7320508075688772},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"4":{"tf":1.4142135623730951},"40":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":2.6457513110645907},"45":{"tf":2.0},"46":{"tf":1.7320508075688772},"47":{"tf":2.23606797749979},"48":{"tf":2.0},"49":{"tf":2.6457513110645907},"5":{"tf":1.0},"50":{"tf":1.4142135623730951},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"53":{"tf":1.7320508075688772},"54":{"tf":2.6457513110645907},"55":{"tf":2.6457513110645907},"56":{"tf":1.7320508075688772},"57":{"tf":2.0},"58":{"tf":2.0},"59":{"tf":1.0},"6":{"tf":1.4142135623730951},"60":{"tf":2.0},"61":{"tf":2.0},"62":{"tf":1.0},"63":{"tf":2.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.4142135623730951},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.4142135623730951},"73":{"tf":1.7320508075688772},"74":{"tf":1.4142135623730951},"75":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"77":{"tf":2.23606797749979},"78":{"tf":2.6457513110645907},"79":{"tf":1.7320508075688772},"8":{"tf":1.4142135623730951},"80":{"tf":1.4142135623730951},"81":{"tf":2.0},"82":{"tf":2.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"9":{"tf":2.23606797749979},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.4142135623730951},"95":{"tf":1.0},"96":{"tf":1.7320508075688772},"97":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}},"i":{"c":{"_":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"41":{"tf":1.0}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"97":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"160":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}}}}},"df":4,"docs":{"143":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"2":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":1,"docs":{"134":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"v":{"df":2,"docs":{"18":{"tf":1.0},"254":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":4,"docs":{"39":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"t":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"151":{"tf":1.0},"235":{"tf":1.4142135623730951},"26":{"tf":1.0}}},"k":{"df":4,"docs":{"100":{"tf":1.0},"102":{"tf":1.0},"83":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"180":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"22":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"254":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":1,"docs":{"23":{"tf":1.0}}},"t":{"df":11,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.4142135623730951},"229":{"tf":1.0},"81":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"71":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"197":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":36,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.7320508075688772},"104":{"tf":1.0},"105":{"tf":1.7320508075688772},"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.4142135623730951},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":2.0},"200":{"tf":1.0},"217":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"91":{"tf":2.0},"93":{"tf":2.6457513110645907},"94":{"tf":1.7320508075688772},"95":{"tf":3.3166247903554},"96":{"tf":2.0},"97":{"tf":1.7320508075688772},"98":{"tf":2.23606797749979},"99":{"tf":2.23606797749979}},"i":{"c":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":2,"docs":{"135":{"tf":1.4142135623730951},"99":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"'":{"df":3,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0}}},"df":31,"docs":{"0":{"tf":1.4142135623730951},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.4142135623730951},"135":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"163":{"tf":2.23606797749979},"193":{"tf":1.0},"198":{"tf":1.7320508075688772},"217":{"tf":1.0},"226":{"tf":1.0},"231":{"tf":1.0},"249":{"tf":1.0},"274":{"tf":1.0},"287":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.4142135623730951},"88":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"91":{"tf":1.4142135623730951},"92":{"tf":2.0},"93":{"tf":1.0},"98":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0}}}}}}}}},"o":{"df":2,"docs":{"141":{"tf":1.0},"252":{"tf":1.7320508075688772}},"m":{"a":{"df":0,"docs":{},"t":{"df":3,"docs":{"20":{"tf":1.0},"205":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}}}},"v":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":11,"docs":{"105":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"209":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"274":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.4142135623730951},"85":{"tf":1.0}}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.7320508075688772}}}},"r":{"df":3,"docs":{"215":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}}},"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":6,"docs":{"152":{"tf":1.0},"195":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0}},"s":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"65":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"d":{"df":2,"docs":{"12":{"tf":1.0},"210":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":5,"docs":{"131":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":6,"docs":{"101":{"tf":1.4142135623730951},"105":{"tf":1.0},"117":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":13,"docs":{"105":{"tf":1.0},"173":{"tf":1.0},"187":{"tf":1.0},"197":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"264":{"tf":1.0},"270":{"tf":1.4142135623730951},"74":{"tf":1.0},"95":{"tf":1.0}}},"i":{"c":{"df":8,"docs":{"148":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"87":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"250":{"tf":1.0}}}}},"l":{"df":1,"docs":{"220":{"tf":1.0}}}}},"z":{"df":1,"docs":{"131":{"tf":1.7320508075688772}}}},"df":2,"docs":{"123":{"tf":1.0},"181":{"tf":1.7320508075688772}},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"95":{"tf":1.0},"98":{"tf":2.0}}}}}},"c":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":16,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.4142135623730951},"148":{"tf":2.23606797749979},"167":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0}}}}},"df":17,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.4142135623730951},"247":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"266":{"tf":1.0},"5":{"tf":1.0},"86":{"tf":1.0}},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":12,"docs":{"116":{"tf":1.0},"144":{"tf":1.0},"153":{"tf":1.0},"162":{"tf":1.0},"182":{"tf":1.0},"194":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"264":{"tf":1.4142135623730951},"51":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":1,"docs":{"56":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":4,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0},"200":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"w":{"df":5,"docs":{"19":{"tf":1.0},"193":{"tf":1.0},"204":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"183":{"tf":1.0},"228":{"tf":1.4142135623730951},"265":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"127":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}},"t":{"df":9,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0}},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}}},"t":{"a":{"df":1,"docs":{"220":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"12":{"tf":1.0},"144":{"tf":1.0},"181":{"tf":1.4142135623730951},"185":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":14,"docs":{"125":{"tf":1.0},"132":{"tf":1.0},"163":{"tf":1.4142135623730951},"18":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"228":{"tf":1.7320508075688772},"250":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"235":{"tf":1.0}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"148":{"tf":1.0},"18":{"tf":1.0},"216":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.7320508075688772}}}}}}},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":6,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"261":{"tf":1.0},"69":{"tf":1.0}}},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.7320508075688772}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}}},"df":0,"docs":{},"g":{"df":1,"docs":{"247":{"tf":1.0}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"163":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":7,"docs":{"177":{"tf":1.7320508075688772},"204":{"tf":1.4142135623730951},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"256":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0}}},"y":{"df":1,"docs":{"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"t":{"df":17,"docs":{"100":{"tf":1.0},"155":{"tf":1.0},"156":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"67":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":8,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":2.6457513110645907},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"51":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"142":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"289":{"tf":1.0},"56":{"tf":1.0}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"154":{"tf":2.0},"157":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":2.0},"160":{"tf":1.0},"161":{"tf":1.7320508075688772},"162":{"tf":1.7320508075688772},"163":{"tf":2.6457513110645907},"28":{"tf":1.0},"60":{"tf":1.0}}}}}}}}},"o":{"d":{"df":0,"docs":{},"i":{"df":4,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"210":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"219":{"tf":1.0}}}},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}},"k":{"df":7,"docs":{"130":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"232":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"29":{"tf":1.0},"39":{"tf":1.4142135623730951},"56":{"tf":1.0},"59":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}},"t":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"29":{"tf":1.0}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"132":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":30,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"185":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"242":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"265":{"tf":1.0},"42":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"154":{"tf":1.0},"5":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"250":{"tf":1.0},"269":{"tf":1.0}}}}},"n":{"d":{"df":3,"docs":{"132":{"tf":1.0},"248":{"tf":1.0},"35":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"d":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"86":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{},"k":{"df":3,"docs":{"209":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":1,"docs":{"155":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"120":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"186":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"12":{"tf":1.0},"199":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"243":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":3,"docs":{"247":{"tf":1.0},"248":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"262":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"r":{"'":{"df":1,"docs":{"160":{"tf":1.0}}},"/":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"b":{"/":{"3":{"0":{"b":{"2":{"df":0,"docs":{},"f":{"8":{"a":{"df":0,"docs":{},"f":{"5":{"9":{"d":{"2":{"5":{"0":{"8":{"4":{"d":{"df":0,"docs":{},"e":{"9":{"6":{"6":{"3":{"0":{"1":{"c":{"b":{"6":{"b":{"d":{"1":{"df":0,"docs":{},"e":{"d":{"9":{"0":{"c":{"0":{"df":0,"docs":{},"e":{"b":{"7":{"8":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"r":{"c":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"#":{"df":0,"docs":{},"l":{"1":{"7":{"6":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":23,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"117":{"tf":1.0},"133":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"18":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"262":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.7320508075688772},"276":{"tf":1.0},"98":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"g":{"df":51,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"l":{"d":{"df":20,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.7320508075688772},"17":{"tf":1.0},"177":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"2":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":11,"docs":{"151":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":2.23606797749979},"261":{"tf":1.4142135623730951},"263":{"tf":1.0},"267":{"tf":1.0}}}}},"n":{"c":{"df":0,"docs":{},"h":{"df":7,"docs":{"108":{"tf":1.0},"131":{"tf":1.0},"160":{"tf":1.0},"266":{"tf":1.4142135623730951},"270":{"tf":1.0},"28":{"tf":1.0},"86":{"tf":1.0}}}},"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"128":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"15":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"i":{"df":3,"docs":{"201":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.7320508075688772}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}}}},"y":{"df":4,"docs":{"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.4142135623730951},"250":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"117":{"tf":1.0},"59":{"tf":1.0}}}}}},"c":{"a":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"184":{"tf":1.0},"79":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":6,"docs":{"117":{"tf":1.7320508075688772},"139":{"tf":2.0},"142":{"tf":1.0},"195":{"tf":1.0},"42":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"a":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"l":{"df":12,"docs":{"148":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"214":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"262":{"tf":1.0},"32":{"tf":1.0},"33":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":3,"docs":{"184":{"tf":1.0},"249":{"tf":1.0},"288":{"tf":1.0}}}},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"157":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"p":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"261":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"256":{"tf":1.0}}},"df":2,"docs":{"247":{"tf":1.4142135623730951},"249":{"tf":1.0}},"e":{"df":1,"docs":{"157":{"tf":1.0}},"f":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}},"g":{"df":0,"docs":{},"o":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.0}}}},"t":{"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"e":{"df":53,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.0},"17":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.0},"232":{"tf":1.7320508075688772},"233":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"254":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0},"289":{"tf":1.0},"87":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"260":{"tf":2.0},"261":{"tf":2.0},"262":{"tf":1.7320508075688772},"263":{"tf":1.0},"264":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"112":{"tf":1.0},"209":{"tf":1.0}}}}},"df":2,"docs":{"123":{"tf":1.0},"56":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"243":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"173":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0}}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"259":{"tf":1.4142135623730951},"266":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.7320508075688772}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":3,"docs":{"13":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"g":{"df":40,"docs":{"0":{"tf":1.7320508075688772},"110":{"tf":1.4142135623730951},"111":{"tf":2.449489742783178},"112":{"tf":1.4142135623730951},"114":{"tf":2.449489742783178},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"151":{"tf":1.0},"152":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.4142135623730951},"179":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.7320508075688772},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"195":{"tf":3.4641016151377544},"209":{"tf":1.7320508075688772},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.0},"289":{"tf":1.0},"4":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"194":{"tf":1.0},"196":{"tf":1.0},"34":{"tf":1.0},"81":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.4142135623730951},"66":{"tf":1.0},"84":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"176":{"tf":1.0},"213":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"33":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":2,"docs":{"18":{"tf":1.0},"290":{"tf":1.0}},"g":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"245":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":3,"docs":{"18":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.4142135623730951},"246":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"k":{"df":29,"docs":{"103":{"tf":2.23606797749979},"105":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":2.449489742783178},"12":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.7320508075688772},"168":{"tf":1.0},"177":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"270":{"tf":1.0},"282":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"84":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"198":{"tf":1.0}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"88":{"tf":1.4142135623730951},"89":{"tf":1.0}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"i":{"c":{"df":3,"docs":{"23":{"tf":1.0},"235":{"tf":1.0},"48":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"186":{"tf":1.0},"193":{"tf":1.0},"81":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"268":{"tf":1.0}}}}}}}},"k":{"a":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"263":{"tf":1.0}}},"df":1,"docs":{"263":{"tf":2.0}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"(":{"df":1,"docs":{"58":{"tf":1.0}}},"df":31,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"145":{"tf":1.4142135623730951},"154":{"tf":3.0},"159":{"tf":2.449489742783178},"160":{"tf":2.23606797749979},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"20":{"tf":1.4142135623730951},"214":{"tf":1.7320508075688772},"228":{"tf":1.0},"230":{"tf":1.0},"249":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.4142135623730951},"49":{"tf":1.0},"54":{"tf":1.4142135623730951},"55":{"tf":1.4142135623730951},"56":{"tf":2.0},"57":{"tf":2.23606797749979},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":3.4641016151377544},"7":{"tf":1.0},"76":{"tf":2.6457513110645907},"79":{"tf":1.0},"80":{"tf":1.0},"88":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"125":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"58":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":7,"docs":{"121":{"tf":1.0},"172":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.0},"37":{"tf":1.0}}},"r":{"df":6,"docs":{"166":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"26":{"tf":1.4142135623730951},"55":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"269":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":8,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"155":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"57":{"tf":1.0}}}},"df":8,"docs":{"18":{"tf":1.7320508075688772},"192":{"tf":1.0},"2":{"tf":1.4142135623730951},"272":{"tf":1.4142135623730951},"276":{"tf":2.0},"280":{"tf":1.0},"283":{"tf":1.0},"53":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":28,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"108":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"133":{"tf":1.0},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.7320508075688772},"147":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"203":{"tf":1.0},"254":{"tf":1.7320508075688772},"275":{"tf":1.0},"37":{"tf":1.0},"76":{"tf":1.7320508075688772},"79":{"tf":1.0},"94":{"tf":1.4142135623730951},"96":{"tf":1.0}}}}},"m":{"b":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"79":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":7,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"215":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"45":{"tf":1.0},"76":{"tf":1.0}}}},"u":{"d":{"df":2,"docs":{"121":{"tf":1.0},"241":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"186":{"tf":1.0}}}}}}},"m":{"df":11,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.7320508075688772},"234":{"tf":2.8284271247461903},"235":{"tf":1.4142135623730951},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.7320508075688772},"261":{"tf":1.0}}},"o":{"d":{"df":0,"docs":{},"e":{"df":11,"docs":{"115":{"tf":1.0},"121":{"tf":1.0},"152":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"226":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"83":{"tf":1.0}},"s":{"a":{"df":0,"docs":{},"n":{"d":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":3,"docs":{"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":1,"docs":{"199":{"tf":1.0}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"18":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"121":{"tf":1.0},"133":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.4142135623730951},"142":{"tf":3.0},"143":{"tf":2.449489742783178},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"33":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":2.23606797749979},"8":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"d":{"df":2,"docs":{"184":{"tf":1.0},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":4,"docs":{"177":{"tf":1.4142135623730951},"184":{"tf":1.0},"26":{"tf":1.0},"76":{"tf":2.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"n":{"df":1,"docs":{"219":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":21,"docs":{"0":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"197":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"217":{"tf":1.4142135623730951},"220":{"tf":1.0},"222":{"tf":1.0},"247":{"tf":1.0},"259":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"250":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":4,"docs":{"106":{"tf":1.0},"112":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0}}},"m":{"a":{"df":1,"docs":{"68":{"tf":1.0}},"n":{"d":{"df":4,"docs":{"114":{"tf":1.0},"2":{"tf":1.0},"218":{"tf":1.7320508075688772},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"102":{"tf":1.0},"261":{"tf":1.0}}}},"r":{"c":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":2.23606797749979},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"271":{"tf":1.0}}},"t":{"(":{"df":1,"docs":{"258":{"tf":1.0}}},"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.0}}}},"df":0,"docs":{}}},"df":57,"docs":{"0":{"tf":1.7320508075688772},"105":{"tf":1.0},"110":{"tf":2.0},"111":{"tf":2.449489742783178},"112":{"tf":1.7320508075688772},"113":{"tf":1.7320508075688772},"114":{"tf":3.3166247903554},"115":{"tf":2.23606797749979},"116":{"tf":2.0},"117":{"tf":2.449489742783178},"118":{"tf":3.7416573867739413},"119":{"tf":2.6457513110645907},"120":{"tf":2.0},"121":{"tf":2.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":3.605551275463989},"135":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.7320508075688772},"188":{"tf":1.0},"195":{"tf":2.0},"197":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"240":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":3.1622776601683795},"276":{"tf":2.0},"280":{"tf":1.0},"42":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"82":{"tf":1.0},"84":{"tf":1.4142135623730951},"85":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"93":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}},"s":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"14":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.7320508075688772}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"17":{"tf":1.0},"179":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"61":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"n":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"120":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"269":{"tf":1.0},"290":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":1.0},"132":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":7,"docs":{"12":{"tf":2.0},"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.4142135623730951}}}}}},"r":{"df":25,"docs":{"112":{"tf":1.0},"120":{"tf":2.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"227":{"tf":1.7320508075688772},"239":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":1.0},"263":{"tf":1.4142135623730951},"29":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0},"8":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":64,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"170":{"tf":1.0},"171":{"tf":1.0},"172":{"tf":1.0},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"220":{"tf":1.0},"221":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.0}}}}}}},"t":{"df":7,"docs":{"166":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"193":{"tf":1.0},"31":{"tf":1.0},"45":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"78":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"20":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"df":6,"docs":{"107":{"tf":1.0},"15":{"tf":1.0},"190":{"tf":1.0},"22":{"tf":1.0},"33":{"tf":1.0},"36":{"tf":1.0}}},"x":{"df":5,"docs":{"177":{"tf":1.0},"180":{"tf":1.0},"199":{"tf":1.4142135623730951},"60":{"tf":1.0},"78":{"tf":1.0}}}},"i":{"a":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"14":{"tf":1.0},"260":{"tf":1.4142135623730951}}},"df":0,"docs":{},"t":{"df":1,"docs":{"111":{"tf":1.0}}}}},"c":{"df":5,"docs":{"119":{"tf":1.0},"177":{"tf":1.4142135623730951},"189":{"tf":1.0},"199":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"s":{"df":1,"docs":{"29":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":5,"docs":{"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"22":{"tf":1.0},"86":{"tf":1.0}}}}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":24,"docs":{"113":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"160":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":2.0},"192":{"tf":1.0},"199":{"tf":1.0},"27":{"tf":1.4142135623730951},"31":{"tf":1.0},"5":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"8":{"tf":1.0},"80":{"tf":1.0}},"u":{"df":2,"docs":{"129":{"tf":1.0},"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"110":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"232":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"162":{"tf":1.0},"165":{"tf":1.0},"194":{"tf":1.0},"54":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":6,"docs":{"179":{"tf":1.0},"185":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.0},"209":{"tf":1.0}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":10,"docs":{"0":{"tf":1.7320508075688772},"13":{"tf":1.0},"134":{"tf":1.7320508075688772},"175":{"tf":1.0},"178":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.4142135623730951},"248":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"234":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":1,"docs":{"248":{"tf":1.0}}}}},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"181":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"204":{"tf":1.0}}}}}}}}},"i":{"d":{"df":5,"docs":{"112":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"247":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"137":{"tf":1.4142135623730951},"17":{"tf":1.0},"210":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":10,"docs":{"182":{"tf":1.0},"199":{"tf":1.0},"244":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"61":{"tf":1.0},"76":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"(":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{".":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"(":{")":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"t":{"df":2,"docs":{"102":{"tf":2.449489742783178},"177":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":8,"docs":{"132":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"54":{"tf":1.0},"78":{"tf":1.0}},"t":{"df":7,"docs":{"132":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"230":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"154":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"280":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"m":{"df":7,"docs":{"18":{"tf":1.0},"183":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"269":{"tf":1.0}}}}},"t":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":31,"docs":{"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.0},"115":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"135":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.0},"240":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"281":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"86":{"tf":1.0},"89":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"127":{"tf":1.4142135623730951},"173":{"tf":1.0},"187":{"tf":1.0},"194":{"tf":1.4142135623730951},"208":{"tf":1.7320508075688772},"210":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"5":{"tf":1.0},"59":{"tf":1.0},"6":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"df":12,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.4142135623730951},"202":{"tf":1.0},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"243":{"tf":1.0},"38":{"tf":1.0},"62":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"192":{"tf":1.0},"213":{"tf":1.0},"32":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"16":{"tf":1.4142135623730951},"17":{"tf":1.0},"176":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"12":{"tf":2.23606797749979},"121":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":2,"docs":{"228":{"tf":1.0},"84":{"tf":1.0}}},"t":{"df":3,"docs":{"17":{"tf":1.0},"235":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"s":{"df":3,"docs":{"204":{"tf":1.4142135623730951},"266":{"tf":1.0},"283":{"tf":1.4142135623730951}}},"t":{"df":14,"docs":{"1":{"tf":1.4142135623730951},"13":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.23606797749979},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"219":{"tf":1.4142135623730951},"262":{"tf":1.0},"284":{"tf":1.0},"48":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"241":{"tf":1.0}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":5,"docs":{"93":{"tf":1.0},"95":{"tf":1.4142135623730951},"96":{"tf":1.7320508075688772},"97":{"tf":2.23606797749979},"98":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"183":{"tf":1.0}}}}},"r":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"i":{"df":5,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"22":{"tf":1.0},"79":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":14,"docs":{"0":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.7320508075688772},"214":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":2.0},"54":{"tf":1.0},"7":{"tf":1.4142135623730951},"81":{"tf":1.0}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"241":{"tf":1.0},"246":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"118":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"137":{"tf":1.0},"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"192":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":5,"docs":{"100":{"tf":1.0},"112":{"tf":1.0},"178":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"14":{"tf":1.0},"87":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"65":{"tf":1.0},"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"201":{"tf":1.0}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"268":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"df":9,"docs":{"112":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.0},"78":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":7,"docs":{"175":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"79":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"194":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"r":{"df":1,"docs":{"218":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"272":{"tf":1.0}}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":82,"docs":{"0":{"tf":1.0},"1":{"tf":2.23606797749979},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"119":{"tf":1.0},"13":{"tf":1.7320508075688772},"133":{"tf":1.0},"14":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.4142135623730951},"148":{"tf":1.7320508075688772},"149":{"tf":1.4142135623730951},"150":{"tf":2.0},"152":{"tf":2.0},"153":{"tf":2.0},"154":{"tf":2.449489742783178},"155":{"tf":1.0},"156":{"tf":2.0},"157":{"tf":2.6457513110645907},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.4142135623730951},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"164":{"tf":1.0},"166":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.4142135623730951},"187":{"tf":1.0},"189":{"tf":1.7320508075688772},"191":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"204":{"tf":1.0},"206":{"tf":1.0},"218":{"tf":1.4142135623730951},"219":{"tf":1.4142135623730951},"22":{"tf":1.7320508075688772},"224":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.7320508075688772},"245":{"tf":1.0},"251":{"tf":1.0},"258":{"tf":1.4142135623730951},"26":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.7320508075688772},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"279":{"tf":1.0},"283":{"tf":1.0},"31":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.7320508075688772},"79":{"tf":1.0},"81":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.7320508075688772},"9":{"tf":1.7320508075688772},"93":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"283":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"143":{"tf":1.0},"30":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":7,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.7320508075688772},"256":{"tf":3.0},"257":{"tf":1.4142135623730951},"258":{"tf":2.23606797749979},"259":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"181":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"193":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"262":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":10,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.0},"121":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0}},"i":{"df":3,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"197":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}}},"s":{"df":1,"docs":{"179":{"tf":1.0}},"v":{"df":3,"docs":{"148":{"tf":1.0},"262":{"tf":1.0},"283":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":17,"docs":{"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"164":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"254":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"86":{"tf":1.0},"92":{"tf":1.7320508075688772}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"118":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":1.4142135623730951},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":2,"docs":{"248":{"tf":1.4142135623730951},"267":{"tf":1.0}}}}}}}},"t":{"df":1,"docs":{"127":{"tf":1.0}}}},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"229":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"208":{"tf":1.0}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"n":{"df":1,"docs":{"59":{"tf":1.0}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"62":{"tf":1.0}}}},"t":{"a":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},"b":{"a":{"df":0,"docs":{},"s":{"df":31,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"174":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.0},"194":{"tf":1.0},"200":{"tf":1.0},"215":{"tf":1.7320508075688772},"217":{"tf":2.0},"218":{"tf":1.0},"219":{"tf":2.0},"220":{"tf":1.4142135623730951},"225":{"tf":2.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.4142135623730951},"231":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"262":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":263,"docs":{"0":{"tf":4.58257569495584},"1":{"tf":2.23606797749979},"10":{"tf":2.23606797749979},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.4142135623730951},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"11":{"tf":1.7320508075688772},"110":{"tf":2.0},"111":{"tf":1.7320508075688772},"112":{"tf":4.242640687119285},"113":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"115":{"tf":1.4142135623730951},"116":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"119":{"tf":2.0},"12":{"tf":3.1622776601683795},"120":{"tf":2.0},"121":{"tf":2.6457513110645907},"122":{"tf":1.4142135623730951},"123":{"tf":1.4142135623730951},"124":{"tf":1.4142135623730951},"125":{"tf":1.4142135623730951},"126":{"tf":1.4142135623730951},"127":{"tf":1.4142135623730951},"128":{"tf":1.4142135623730951},"129":{"tf":1.4142135623730951},"13":{"tf":3.7416573867739413},"130":{"tf":2.0},"131":{"tf":1.4142135623730951},"132":{"tf":2.23606797749979},"133":{"tf":2.23606797749979},"134":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.7320508075688772},"14":{"tf":3.1622776601683795},"140":{"tf":1.4142135623730951},"141":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":2.6457513110645907},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"147":{"tf":1.0},"148":{"tf":3.1622776601683795},"149":{"tf":2.23606797749979},"15":{"tf":1.7320508075688772},"150":{"tf":1.7320508075688772},"151":{"tf":2.23606797749979},"152":{"tf":2.0},"154":{"tf":2.0},"156":{"tf":2.0},"157":{"tf":1.7320508075688772},"159":{"tf":2.23606797749979},"16":{"tf":2.23606797749979},"160":{"tf":1.4142135623730951},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"164":{"tf":1.4142135623730951},"165":{"tf":2.449489742783178},"166":{"tf":2.6457513110645907},"167":{"tf":1.7320508075688772},"168":{"tf":1.7320508075688772},"169":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":2.6457513110645907},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":3.3166247903554},"176":{"tf":1.0},"177":{"tf":2.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":3.1622776601683795},"180":{"tf":2.0},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"183":{"tf":2.8284271247461903},"184":{"tf":2.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951},"187":{"tf":1.7320508075688772},"189":{"tf":2.6457513110645907},"19":{"tf":1.7320508075688772},"190":{"tf":2.0},"191":{"tf":2.449489742783178},"192":{"tf":2.449489742783178},"193":{"tf":4.242640687119285},"194":{"tf":3.605551275463989},"195":{"tf":2.23606797749979},"196":{"tf":2.449489742783178},"197":{"tf":1.7320508075688772},"198":{"tf":1.4142135623730951},"199":{"tf":2.0},"2":{"tf":1.4142135623730951},"20":{"tf":2.449489742783178},"200":{"tf":2.449489742783178},"201":{"tf":2.0},"202":{"tf":2.449489742783178},"203":{"tf":2.0},"204":{"tf":2.23606797749979},"205":{"tf":2.6457513110645907},"206":{"tf":1.7320508075688772},"207":{"tf":1.4142135623730951},"208":{"tf":1.0},"209":{"tf":2.0},"21":{"tf":1.7320508075688772},"210":{"tf":1.7320508075688772},"211":{"tf":1.7320508075688772},"213":{"tf":3.0},"214":{"tf":1.7320508075688772},"215":{"tf":2.0},"216":{"tf":2.6457513110645907},"218":{"tf":2.23606797749979},"219":{"tf":2.449489742783178},"22":{"tf":3.7416573867739413},"220":{"tf":1.7320508075688772},"222":{"tf":2.6457513110645907},"223":{"tf":1.4142135623730951},"225":{"tf":2.23606797749979},"226":{"tf":1.7320508075688772},"227":{"tf":1.7320508075688772},"228":{"tf":2.449489742783178},"229":{"tf":2.23606797749979},"23":{"tf":3.0},"230":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":2.8284271247461903},"235":{"tf":2.449489742783178},"238":{"tf":1.4142135623730951},"24":{"tf":1.7320508075688772},"240":{"tf":2.23606797749979},"241":{"tf":3.872983346207417},"242":{"tf":3.4641016151377544},"243":{"tf":1.4142135623730951},"244":{"tf":1.7320508075688772},"246":{"tf":1.7320508075688772},"247":{"tf":3.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.4142135623730951},"25":{"tf":3.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":2.23606797749979},"255":{"tf":1.4142135623730951},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"26":{"tf":3.1622776601683795},"260":{"tf":3.3166247903554},"261":{"tf":2.23606797749979},"262":{"tf":3.1622776601683795},"263":{"tf":1.0},"264":{"tf":1.7320508075688772},"265":{"tf":1.7320508075688772},"267":{"tf":1.0},"268":{"tf":2.0},"27":{"tf":1.0},"271":{"tf":1.0},"272":{"tf":2.23606797749979},"274":{"tf":1.4142135623730951},"275":{"tf":2.0},"276":{"tf":1.7320508075688772},"279":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":2.0},"284":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.7320508075688772},"289":{"tf":1.7320508075688772},"29":{"tf":2.6457513110645907},"290":{"tf":1.0},"3":{"tf":1.4142135623730951},"30":{"tf":1.7320508075688772},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"33":{"tf":1.7320508075688772},"34":{"tf":1.4142135623730951},"35":{"tf":2.23606797749979},"36":{"tf":1.4142135623730951},"37":{"tf":1.7320508075688772},"38":{"tf":2.449489742783178},"39":{"tf":2.449489742783178},"4":{"tf":1.4142135623730951},"40":{"tf":1.0},"41":{"tf":1.4142135623730951},"42":{"tf":1.4142135623730951},"43":{"tf":1.0},"44":{"tf":2.23606797749979},"45":{"tf":1.7320508075688772},"46":{"tf":1.0},"47":{"tf":1.0},"48":{"tf":2.0},"49":{"tf":1.0},"5":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.0},"53":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":2.6457513110645907},"56":{"tf":1.4142135623730951},"57":{"tf":2.0},"58":{"tf":1.0},"59":{"tf":1.4142135623730951},"6":{"tf":1.4142135623730951},"60":{"tf":2.23606797749979},"61":{"tf":1.0},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.4142135623730951},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":2.23606797749979},"78":{"tf":1.7320508075688772},"79":{"tf":2.8284271247461903},"8":{"tf":1.7320508075688772},"80":{"tf":1.4142135623730951},"81":{"tf":2.23606797749979},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"9":{"tf":1.7320508075688772},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":2.23606797749979},"94":{"tf":1.4142135623730951},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"m":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"15":{"tf":1.0},"228":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":9,"docs":{"0":{"tf":1.4142135623730951},"13":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"22":{"tf":1.0},"260":{"tf":2.23606797749979},"261":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"264":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":51,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"180":{"tf":1.0},"182":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":2.8284271247461903},"189":{"tf":1.0},"191":{"tf":2.0},"192":{"tf":2.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"209":{"tf":1.4142135623730951},"215":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.4142135623730951},"26":{"tf":1.0},"283":{"tf":1.0},"29":{"tf":2.449489742783178},"31":{"tf":1.4142135623730951},"32":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"58":{"tf":2.449489742783178},"59":{"tf":3.3166247903554},"61":{"tf":2.449489742783178},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":2.449489742783178},"75":{"tf":1.7320508075688772},"79":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"(":{")":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"1":{"9":{"9":{"1":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":12,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"177":{"tf":1.4142135623730951},"20":{"tf":1.0},"245":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"70":{"tf":1.7320508075688772},"97":{"tf":1.4142135623730951}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"185":{"tf":1.4142135623730951},"252":{"tf":1.0},"54":{"tf":1.0},"71":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"y":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.0}}}},"b":{"df":3,"docs":{"166":{"tf":1.0},"215":{"tf":1.0},"223":{"tf":1.0}},"o":{":":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}}},"p":{":":{"d":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"j":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"_":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"df":1,"docs":{"126":{"tf":1.0}}}},"c":{":":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"130":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}}}},"df":1,"docs":{"130":{"tf":1.0}}},"d":{"df":1,"docs":{"70":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":29,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"157":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"187":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"54":{"tf":1.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.4142135623730951},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.4142135623730951},"85":{"tf":1.0},"87":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}}}},"b":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":2,"docs":{"123":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"189":{"tf":1.0},"264":{"tf":1.7320508075688772}},"r":{"df":17,"docs":{"111":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.4142135623730951},"13":{"tf":1.0},"176":{"tf":1.0},"193":{"tf":1.0},"197":{"tf":1.0},"208":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.4142135623730951},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0}}}}}},"i":{"d":{"df":3,"docs":{"12":{"tf":1.0},"146":{"tf":1.0},"206":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"17":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"df":1,"docs":{"20":{"tf":1.0}},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"45":{"tf":1.0}}},"p":{"df":3,"docs":{"112":{"tf":1.0},"206":{"tf":1.0},"242":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"86":{"tf":1.0}}}}}},"f":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"142":{"tf":1.4142135623730951},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.0},"184":{"tf":1.0},"195":{"tf":1.0},"202":{"tf":1.0},"241":{"tf":1.0},"267":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":24,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"160":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.4142135623730951},"189":{"tf":1.0},"198":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"218":{"tf":1.0},"220":{"tf":1.0},"228":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.4142135623730951},"39":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":6,"docs":{"14":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.4142135623730951},"261":{"tf":1.0}}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"199":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"127":{"tf":1.7320508075688772},"130":{"tf":1.0},"92":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"117":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"247":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}},"t":{"a":{"'":{"df":1,"docs":{"124":{"tf":1.0}}},"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.7320508075688772},"124":{"tf":1.7320508075688772},"125":{"tf":1.4142135623730951},"128":{"tf":2.23606797749979},"129":{"tf":1.0},"132":{"tf":1.0},"188":{"tf":1.4142135623730951},"288":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"r":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"2":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":7,"docs":{"124":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"184":{"tf":1.0},"253":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"190":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":17,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.0},"60":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.4142135623730951},"81":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"192":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"v":{"df":1,"docs":{"203":{"tf":1.0}}}}},"s":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":38,"docs":{"104":{"tf":1.0},"114":{"tf":1.4142135623730951},"123":{"tf":1.0},"124":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"144":{"tf":2.0},"160":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"175":{"tf":1.4142135623730951},"190":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":2.0},"249":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":1.0},"259":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951},"81":{"tf":1.0},"97":{"tf":1.0}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":27,"docs":{"0":{"tf":1.4142135623730951},"136":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":2.6457513110645907},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"259":{"tf":1.0},"260":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":2.0},"38":{"tf":2.6457513110645907},"39":{"tf":1.7320508075688772},"50":{"tf":2.0},"51":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":2.23606797749979},"59":{"tf":1.0},"60":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"38":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":35,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.7320508075688772},"112":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.7320508075688772},"128":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"172":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.7320508075688772},"78":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}}}},"r":{"df":1,"docs":{"254":{"tf":1.0}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":5,"docs":{"151":{"tf":1.4142135623730951},"152":{"tf":1.7320508075688772},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"277":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"276":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":4,"docs":{"154":{"tf":1.0},"193":{"tf":1.0},"269":{"tf":1.7320508075688772},"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"132":{"tf":1.0},"90":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"42":{"tf":1.0}}}}}}}}}}},"v":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":2,"docs":{"205":{"tf":1.0},"234":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":35,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.449489742783178},"151":{"tf":1.0},"164":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"186":{"tf":2.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":2.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"196":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.0}}}}}},"i":{"c":{"df":6,"docs":{"111":{"tf":1.4142135623730951},"199":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"285":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{}}},"x":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"200":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"m":{"df":3,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"54":{"tf":1.0}}}},"df":0,"docs":{}}}},"d":{"df":1,"docs":{"105":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":1,"docs":{"270":{"tf":1.4142135623730951}}}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":37,"docs":{"112":{"tf":1.7320508075688772},"120":{"tf":1.0},"132":{"tf":1.7320508075688772},"137":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.4142135623730951},"214":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"29":{"tf":2.0},"35":{"tf":1.0},"50":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":9,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.7320508075688772},"130":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"149":{"tf":1.0},"177":{"tf":1.0},"265":{"tf":1.0},"33":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"279":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"a":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":1,"docs":{"243":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"110":{"tf":1.0},"193":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"d":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{}},"v":{"df":4,"docs":{"155":{"tf":1.0},"2":{"tf":1.0},"266":{"tf":1.0},"57":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"109":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":21,"docs":{"106":{"tf":1.0},"120":{"tf":1.4142135623730951},"132":{"tf":1.0},"141":{"tf":1.0},"147":{"tf":1.7320508075688772},"16":{"tf":1.0},"170":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"187":{"tf":1.0},"212":{"tf":1.0},"238":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"3":{"tf":1.0},"5":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"88":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"182":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0},"35":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":2,"docs":{"220":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"165":{"tf":1.0}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":2,"docs":{"155":{"tf":1.4142135623730951},"199":{"tf":1.0}}}}},"o":{"c":{"df":6,"docs":{"0":{"tf":1.0},"190":{"tf":1.4142135623730951},"240":{"tf":1.4142135623730951},"288":{"tf":1.0},"5":{"tf":1.4142135623730951},"92":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"123":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"22":{"tf":1.0},"235":{"tf":1.4142135623730951},"241":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"284":{"tf":1.0},"39":{"tf":1.0},"55":{"tf":1.4142135623730951}}}}}}}},"df":14,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"20":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"85":{"tf":1.4142135623730951},"93":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"220":{"tf":1.0},"239":{"tf":1.0},"248":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":10,"docs":{"14":{"tf":1.0},"160":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":2.23606797749979},"189":{"tf":1.0},"244":{"tf":1.0},"249":{"tf":1.0},"26":{"tf":1.0},"271":{"tf":1.0},"83":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"'":{"df":0,"docs":{},"t":{"df":20,"docs":{"12":{"tf":1.7320508075688772},"132":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.4142135623730951},"175":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"185":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.7320508075688772},"37":{"tf":1.0},"77":{"tf":1.4142135623730951},"90":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":8,"docs":{"153":{"tf":1.0},"166":{"tf":1.0},"195":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.4142135623730951},"254":{"tf":1.0},"266":{"tf":1.0},"270":{"tf":1.0}}}},"t":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":1,"docs":{"26":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":2,"docs":{"152":{"tf":1.0},"58":{"tf":1.0}}},"w":{"df":0,"docs":{},"n":{"df":2,"docs":{"219":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":12,"docs":{"0":{"tf":1.0},"144":{"tf":2.23606797749979},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":2.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"30":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"r":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"18":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951}}}},"g":{"df":1,"docs":{"267":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":0,"docs":{}}}},"w":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":6,"docs":{"152":{"tf":1.4142135623730951},"198":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.0},"86":{"tf":1.0},"90":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":4,"docs":{"182":{"tf":1.0},"191":{"tf":1.0},"267":{"tf":1.0},"290":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"e":{"df":1,"docs":{"242":{"tf":1.0}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"94":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"162":{"tf":2.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":4,"docs":{"112":{"tf":1.0},"148":{"tf":1.0},"194":{"tf":1.0},"244":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":13,"docs":{"114":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"151":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.7320508075688772},"226":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"275":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"g":{"df":29,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"130":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"253":{"tf":1.4142135623730951},"26":{"tf":1.0},"271":{"tf":1.0},"42":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.7320508075688772}}}},"a":{"c":{"df":0,"docs":{},"h":{"df":15,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":1.0},"156":{"tf":1.0},"163":{"tf":1.0},"181":{"tf":1.0},"222":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"81":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"18":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"s":{"df":1,"docs":{"0":{"tf":1.0}},"i":{"df":31,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"14":{"tf":1.4142135623730951},"149":{"tf":1.0},"151":{"tf":1.0},"166":{"tf":1.4142135623730951},"170":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.4142135623730951},"202":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.7320508075688772},"234":{"tf":1.0},"235":{"tf":1.7320508075688772},"247":{"tf":1.0},"261":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":29,"docs":{"0":{"tf":2.0},"112":{"tf":1.0},"132":{"tf":1.4142135623730951},"14":{"tf":1.7320508075688772},"148":{"tf":1.0},"15":{"tf":1.4142135623730951},"178":{"tf":1.0},"18":{"tf":1.7320508075688772},"183":{"tf":1.0},"184":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"246":{"tf":1.4142135623730951},"251":{"tf":1.7320508075688772},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"258":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"204":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":21,"docs":{"109":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":2.0},"20":{"tf":1.0},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.4142135623730951},"262":{"tf":1.0},"270":{"tf":1.0},"55":{"tf":1.0},"84":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"268":{"tf":1.0}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"121":{"tf":1.0},"186":{"tf":1.0}}}}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"df":6,"docs":{"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"117":{"tf":1.4142135623730951},"84":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"g":{"df":4,"docs":{"17":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.4142135623730951}}},"i":{"df":0,"docs":{},"t":{"df":69,"docs":{"10":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.4142135623730951},"109":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"119":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.4142135623730951},"155":{"tf":1.0},"159":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"143":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"62":{"tf":1.0}}}}}},"u":{"c":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"256":{"tf":1.0},"265":{"tf":2.0},"266":{"tf":2.0},"267":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":13,"docs":{"10":{"tf":1.0},"13":{"tf":1.0},"163":{"tf":1.0},"20":{"tf":1.4142135623730951},"232":{"tf":1.0},"246":{"tf":2.0},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"265":{"tf":1.4142135623730951},"269":{"tf":1.0},"271":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"234":{"tf":1.0},"80":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":3,"docs":{"194":{"tf":1.0},"199":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}}},"g":{"df":0,"docs":{},"g":{"df":1,"docs":{"270":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"235":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"192":{"tf":1.0},"269":{"tf":1.0},"86":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"85":{"tf":1.0}}},"df":0,"docs":{}}}},"m":{"b":{"df":0,"docs":{},"e":{"d":{"df":3,"docs":{"151":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"20":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":3,"docs":{"177":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"42":{"tf":1.4142135623730951}}}}}},"n":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"183":{"tf":1.0},"208":{"tf":1.0},"226":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"c":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"117":{"tf":1.4142135623730951},"143":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}}}}}},"d":{"df":17,"docs":{"117":{"tf":1.0},"118":{"tf":1.0},"13":{"tf":1.0},"141":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":2.0},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"269":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":19,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"134":{"tf":1.0},"139":{"tf":3.1622776601683795},"140":{"tf":1.4142135623730951},"141":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.7320508075688772},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.0},"229":{"tf":1.0},"258":{"tf":1.4142135623730951},"48":{"tf":1.0},"79":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"247":{"tf":1.0},"269":{"tf":1.0},"48":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"136":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":5,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"193":{"tf":1.0},"22":{"tf":1.0},"81":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"191":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}},"i":{"df":0,"docs":{},"r":{"df":5,"docs":{"106":{"tf":1.0},"136":{"tf":1.0},"149":{"tf":1.0},"209":{"tf":1.0},"49":{"tf":1.0}}},"t":{"df":0,"docs":{},"i":{"df":3,"docs":{"152":{"tf":1.0},"243":{"tf":1.0},"82":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"222":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"253":{"tf":1.0},"75":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"132":{"tf":1.0}}}}}}}},"p":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"101":{"tf":1.0},"71":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"b":{"df":0,"docs":{},"o":{"d":{"df":0,"docs":{},"i":{"df":1,"docs":{"136":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":5,"docs":{"112":{"tf":1.0},"115":{"tf":1.4142135623730951},"136":{"tf":1.7320508075688772},"137":{"tf":1.0},"250":{"tf":1.4142135623730951}}}}}},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"65":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"df":9,"docs":{"121":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"209":{"tf":1.7320508075688772},"228":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0}}}}}}}},"t":{"c":{"df":3,"docs":{"0":{"tf":1.0},"248":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}},"u":{"df":1,"docs":{"271":{"tf":1.0}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"271":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":19,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"140":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"215":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"t":{"df":9,"docs":{"110":{"tf":1.0},"111":{"tf":1.0},"127":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":2.8284271247461903},"200":{"tf":1.0},"226":{"tf":1.0}}}},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"246":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":10,"docs":{"150":{"tf":1.0},"17":{"tf":1.7320508075688772},"176":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"269":{"tf":1.0},"288":{"tf":1.0}}}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"13":{"tf":1.0},"151":{"tf":1.0},"39":{"tf":1.0}}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"12":{"tf":1.0},"251":{"tf":1.0}}}}}},"x":{":":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"a":{"c":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"117":{"tf":1.0},"247":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"12":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":52,"docs":{"0":{"tf":1.0},"102":{"tf":1.4142135623730951},"112":{"tf":1.0},"116":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"138":{"tf":2.0},"142":{"tf":1.0},"143":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"204":{"tf":1.0},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"228":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"256":{"tf":1.4142135623730951},"266":{"tf":1.0},"29":{"tf":1.7320508075688772},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"48":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.7320508075688772},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"86":{"tf":1.4142135623730951},"95":{"tf":1.0}},"e":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":2.449489742783178}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":2.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"177":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"88":{"tf":1.0},"98":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"114":{"tf":1.0},"245":{"tf":1.0},"254":{"tf":1.0}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":50,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"108":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.7320508075688772},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.0},"14":{"tf":1.0},"144":{"tf":1.0},"146":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":2.23606797749979},"166":{"tf":2.23606797749979},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"170":{"tf":1.4142135623730951},"171":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"215":{"tf":1.0},"219":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"245":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"262":{"tf":1.0},"266":{"tf":1.0},"34":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"85":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"175":{"tf":1.0},"181":{"tf":1.0},"185":{"tf":1.0},"196":{"tf":1.0},"259":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":2,"docs":{"140":{"tf":1.0},"229":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"186":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"190":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"269":{"tf":1.0},"97":{"tf":1.4142135623730951}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":7,"docs":{"17":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"n":{"df":4,"docs":{"0":{"tf":1.0},"190":{"tf":1.0},"269":{"tf":1.4142135623730951},"60":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"51":{"tf":1.0},"52":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":4,"docs":{"175":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"26":{"tf":1.0}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":4,"docs":{"13":{"tf":1.0},"18":{"tf":1.0},"225":{"tf":1.0},"34":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"241":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"178":{"tf":1.0},"220":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"160":{"tf":1.4142135623730951},"48":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":79,"docs":{"0":{"tf":1.7320508075688772},"100":{"tf":1.0},"101":{"tf":1.0},"102":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.4142135623730951},"140":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":2.0},"190":{"tf":1.0},"222":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"8":{"tf":1.7320508075688772},"81":{"tf":2.449489742783178},"82":{"tf":1.0},"83":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"91":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":7,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"128":{"tf":1.0},"176":{"tf":1.0},"26":{"tf":1.0},"277":{"tf":1.4142135623730951},"55":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":9,"docs":{"167":{"tf":1.0},"181":{"tf":1.4142135623730951},"191":{"tf":1.0},"235":{"tf":1.0},"239":{"tf":1.0},"250":{"tf":1.0},"263":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":5,"docs":{"0":{"tf":1.0},"156":{"tf":1.0},"180":{"tf":1.0},"183":{"tf":1.0},"267":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"17":{"tf":1.0},"226":{"tf":1.0}}}}}}}},"f":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"191":{"tf":1.0},"247":{"tf":1.0}}}}}},"t":{"df":3,"docs":{"152":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"223":{"tf":1.0},"247":{"tf":1.0}}},"r":{"df":1,"docs":{"177":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":2,"docs":{"17":{"tf":1.0},"199":{"tf":1.0}}},"s":{"df":3,"docs":{"117":{"tf":1.0},"142":{"tf":1.0},"69":{"tf":1.7320508075688772}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"r":{"df":11,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"141":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"228":{"tf":1.0},"235":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0}}}},"df":0,"docs":{}}}}},"q":{"df":10,"docs":{"221":{"tf":1.4142135623730951},"7":{"tf":1.0},"73":{"tf":1.7320508075688772},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0}}},"r":{"df":8,"docs":{"18":{"tf":1.0},"19":{"tf":1.0},"220":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"133":{"tf":1.0},"266":{"tf":1.0}}}}}},"t":{"df":10,"docs":{"100":{"tf":1.0},"133":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"224":{"tf":1.0},"235":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"239":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"112":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":18,"docs":{"127":{"tf":1.0},"15":{"tf":1.7320508075688772},"150":{"tf":1.0},"151":{"tf":2.0},"152":{"tf":1.0},"155":{"tf":1.4142135623730951},"181":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"261":{"tf":1.0},"280":{"tf":1.0},"289":{"tf":1.0},"77":{"tf":1.0},"92":{"tf":1.0}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"248":{"tf":1.0},"262":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"d":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"19":{"tf":1.0},"288":{"tf":1.7320508075688772}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"114":{"tf":1.0},"242":{"tf":1.0},"244":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":8,"docs":{"132":{"tf":1.0},"17":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"240":{"tf":1.0},"39":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"(":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":21,"docs":{"102":{"tf":1.0},"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"135":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"152":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":2.0},"18":{"tf":1.0},"190":{"tf":1.0},"209":{"tf":1.0},"218":{"tf":1.0},"240":{"tf":1.0},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"64":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":17,"docs":{"127":{"tf":1.0},"152":{"tf":1.0},"160":{"tf":1.0},"189":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"88":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":30,"docs":{"114":{"tf":2.23606797749979},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"14":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"159":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.0},"186":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":2.0},"31":{"tf":2.23606797749979},"32":{"tf":1.7320508075688772},"39":{"tf":1.0},"40":{"tf":1.7320508075688772},"56":{"tf":1.0},"58":{"tf":1.0},"71":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"15":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"147":{"tf":1.0}}},"(":{"df":1,"docs":{"146":{"tf":1.0}}},"df":30,"docs":{"0":{"tf":1.7320508075688772},"120":{"tf":1.0},"121":{"tf":1.7320508075688772},"144":{"tf":2.8284271247461903},"145":{"tf":2.0},"146":{"tf":3.1622776601683795},"147":{"tf":1.7320508075688772},"149":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.4142135623730951},"156":{"tf":1.7320508075688772},"157":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"18":{"tf":1.4142135623730951},"20":{"tf":1.0},"208":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.7320508075688772},"86":{"tf":1.0},"9":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"145":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":1,"docs":{"145":{"tf":1.0}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":2,"docs":{"198":{"tf":1.0},"226":{"tf":1.0}}}}}}}}},"l":{"df":6,"docs":{"139":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"0":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.0},"151":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"262":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}}}},"n":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"132":{"tf":1.0},"15":{"tf":1.0},"210":{"tf":1.0},"229":{"tf":1.0},"246":{"tf":1.0}}}},"d":{"df":23,"docs":{"125":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.7320508075688772},"276":{"tf":1.0},"29":{"tf":1.4142135623730951},"86":{"tf":1.0},"98":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":1,"docs":{"259":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"117":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"158":{"tf":1.7320508075688772},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.7320508075688772},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"224":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"266":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"91":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"257":{"tf":1.0}}}}}}},"t":{"df":3,"docs":{"185":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"182":{"tf":1.4142135623730951}}}},"x":{"df":3,"docs":{"111":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"276":{"tf":1.0}}},"w":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":6,"docs":{"121":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"93":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"39":{"tf":1.0},"68":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.4142135623730951}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.4142135623730951}}}}}}}},"o":{"a":{"df":0,"docs":{},"f":{":":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}}}}}},"df":1,"docs":{"130":{"tf":1.0}}}},"c":{"df":0,"docs":{},"u":{"df":3,"docs":{"178":{"tf":1.4142135623730951},"190":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"0":{"tf":1.0},"121":{"tf":2.0},"152":{"tf":1.0},"241":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.7320508075688772},"87":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":17,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"42":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"o":{"d":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"268":{"tf":2.0},"269":{"tf":1.4142135623730951},"270":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772}}},"df":1,"docs":{"131":{"tf":1.4142135623730951}}},"r":{"c":{"df":2,"docs":{"181":{"tf":1.0},"186":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"199":{"tf":1.0},"77":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":1,"docs":{"175":{"tf":1.0}}}}}},"v":{"df":1,"docs":{"200":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"94":{"tf":1.0}}}}},"k":{"df":1,"docs":{"279":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"28":{"tf":1.0},"42":{"tf":1.0}}},"t":{"df":39,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.4142135623730951},"130":{"tf":1.0},"132":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"170":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.0},"192":{"tf":1.4142135623730951},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"248":{"tf":1.4142135623730951},"25":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":2.0},"39":{"tf":2.0},"66":{"tf":1.0}}}},"df":17,"docs":{"105":{"tf":1.0},"13":{"tf":1.4142135623730951},"139":{"tf":1.0},"141":{"tf":1.4142135623730951},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"264":{"tf":1.0},"275":{"tf":1.0},"31":{"tf":1.0}}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"16":{"tf":1.0},"160":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"n":{"d":{"df":55,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"r":{"df":1,"docs":{"29":{"tf":1.4142135623730951}}}}},"r":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"199":{"tf":1.0},"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":3,"docs":{"17":{"tf":1.0},"175":{"tf":1.0},"199":{"tf":1.0}}}}}}}}},"df":1,"docs":{"127":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":23,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"151":{"tf":1.0},"184":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"218":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"288":{"tf":1.0},"29":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":11,"docs":{"13":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"251":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"256":{"tf":1.0},"26":{"tf":1.0},"274":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":9,"docs":{"13":{"tf":1.0},"141":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0},"285":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"102":{"tf":1.0},"140":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.4142135623730951},"37":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0}},"i":{"df":7,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.0},"258":{"tf":1.0},"94":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}}}}},"n":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":9,"docs":{"139":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"209":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"59":{"tf":1.0},"94":{"tf":1.0}}}}}}},"d":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"175":{"tf":1.4142135623730951},"209":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"35":{"tf":1.0},"57":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"df":2,"docs":{"201":{"tf":1.0},"289":{"tf":1.0}}},"df":2,"docs":{"152":{"tf":1.0},"234":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"245":{"tf":1.0},"77":{"tf":1.0}}}}},"z":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"g":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"133":{"tf":1.0}}}},"p":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"210":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":1,"docs":{"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":16,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":1.0},"149":{"tf":1.0},"154":{"tf":1.0},"189":{"tf":1.0},"222":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"264":{"tf":1.0},"276":{"tf":1.0},"74":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"195":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"(":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":1,"docs":{"177":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":5,"docs":{"104":{"tf":1.0},"218":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"121":{"tf":3.3166247903554},"132":{"tf":1.4142135623730951}},"h":{"df":0,"docs":{},"u":{"b":{"df":54,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"141":{"tf":1.0},"143":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"155":{"tf":1.0},"164":{"tf":1.0},"169":{"tf":1.4142135623730951},"174":{"tf":1.0},"192":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.0},"282":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"34":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":23,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"12":{"tf":1.4142135623730951},"137":{"tf":1.0},"154":{"tf":1.0},"163":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"226":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"267":{"tf":1.0},"271":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"5":{"tf":1.0},"58":{"tf":1.0}},"n":{"df":3,"docs":{"184":{"tf":1.0},"276":{"tf":1.0},"88":{"tf":1.0}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"l":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"/":{"1":{"3":{"5":{"5":{"6":{"1":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"a":{"df":0,"docs":{},"l":{"df":14,"docs":{"0":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.7320508075688772},"141":{"tf":1.4142135623730951},"157":{"tf":1.0},"193":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.4142135623730951},"265":{"tf":1.0},"55":{"tf":1.7320508075688772},"83":{"tf":1.4142135623730951},"87":{"tf":1.4142135623730951},"94":{"tf":1.4142135623730951}}}},"df":11,"docs":{"152":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"165":{"tf":1.0},"168":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"209":{"tf":1.0},"247":{"tf":1.0},"253":{"tf":1.0},"270":{"tf":1.0},"5":{"tf":1.0}},"e":{"df":2,"docs":{"136":{"tf":1.0},"79":{"tf":1.0}}},"o":{"d":{"df":7,"docs":{"109":{"tf":1.0},"112":{"tf":1.0},"192":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0},"290":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"112":{"tf":1.0},"256":{"tf":1.0},"271":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"227":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"259":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"108":{"tf":1.0},"282":{"tf":1.0},"88":{"tf":1.0},"89":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"h":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"10":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"174":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.7320508075688772},"181":{"tf":2.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"225":{"tf":2.449489742783178},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"228":{"tf":2.23606797749979},"229":{"tf":1.4142135623730951},"230":{"tf":1.0},"231":{"tf":1.0},"243":{"tf":1.4142135623730951},"252":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"28":{"tf":1.0},"284":{"tf":1.0},"33":{"tf":2.8284271247461903},"44":{"tf":1.4142135623730951},"81":{"tf":1.0}},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"236":{"tf":1.0},"239":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"p":{"df":1,"docs":{"189":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"121":{"tf":1.4142135623730951},"14":{"tf":1.0},"144":{"tf":1.0},"156":{"tf":1.0},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.7320508075688772},"288":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951}}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"78":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"270":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"p":{"df":8,"docs":{"160":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"290":{"tf":1.0},"92":{"tf":1.0}}}},"w":{"df":1,"docs":{"92":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"u":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":7,"docs":{"14":{"tf":1.0},"159":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"209":{"tf":1.0},"76":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"109":{"tf":1.0}}},"t":{"df":2,"docs":{"103":{"tf":1.0},"108":{"tf":1.4142135623730951}}}}},"i":{"d":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"188":{"tf":1.0}}},"df":0,"docs":{}}},"df":5,"docs":{"152":{"tf":1.4142135623730951},"17":{"tf":1.0},"171":{"tf":1.4142135623730951},"219":{"tf":1.0},"269":{"tf":1.0}}},"df":12,"docs":{"12":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0}}},"o":{":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"12":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"194":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0}},"l":{"df":2,"docs":{"218":{"tf":1.0},"87":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"k":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"109":{"tf":1.0},"140":{"tf":1.0},"206":{"tf":1.0},"4":{"tf":1.0}}}}}},"r":{"d":{"df":14,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"149":{"tf":1.0},"168":{"tf":1.4142135623730951},"171":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.4142135623730951},"178":{"tf":1.0},"181":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"241":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"182":{"tf":1.0},"184":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":4,"docs":{"102":{"tf":1.0},"13":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0}}}},"s":{"df":0,"docs":{},"h":{"df":5,"docs":{"114":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"208":{"tf":1.0},"42":{"tf":1.0}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":1,"docs":{"52":{"tf":1.4142135623730951}}}},"l":{"df":2,"docs":{"156":{"tf":1.0},"267":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":12,"docs":{"13":{"tf":1.0},"15":{"tf":1.4142135623730951},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.0},"20":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"79":{"tf":1.0}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"251":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":2,"docs":{"276":{"tf":1.0},"48":{"tf":1.0}},"e":{"a":{"d":{"df":1,"docs":{"66":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":12,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":2.0},"103":{"tf":1.4142135623730951},"124":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.4142135623730951},"167":{"tf":1.0},"199":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"48":{"tf":1.0},"98":{"tf":1.0}},"s":{".":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"(":{"'":{"df":0,"docs":{},"x":{"df":1,"docs":{"102":{"tf":2.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":10,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.7320508075688772},"234":{"tf":2.6457513110645907},"235":{"tf":1.4142135623730951},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.7320508075688772}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.0},"269":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"15":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"175":{"tf":1.0}}}}},"y":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":1,"docs":{"131":{"tf":1.4142135623730951}}}},"p":{"df":32,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"16":{"tf":1.0},"169":{"tf":1.7320508075688772},"175":{"tf":1.0},"176":{"tf":1.0},"187":{"tf":1.0},"191":{"tf":1.4142135623730951},"194":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":2.0},"243":{"tf":1.7320508075688772},"244":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.7320508075688772},"276":{"tf":2.0},"281":{"tf":1.0},"290":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0}}}},"n":{"c":{"df":2,"docs":{"183":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"'":{"df":4,"docs":{"102":{"tf":1.0},"118":{"tf":1.0},"201":{"tf":1.0},"95":{"tf":1.0}}},"df":10,"docs":{"102":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.0},"134":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"253":{"tf":1.0},"277":{"tf":1.0},"289":{"tf":1.0},"55":{"tf":1.0}}},"i":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"288":{"tf":1.0},"38":{"tf":1.0}}}}}}}},"i":{"df":5,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"151":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":21,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"104":{"tf":1.7320508075688772},"146":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"168":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"198":{"tf":2.0},"226":{"tf":1.0},"231":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"88":{"tf":1.7320508075688772},"89":{"tf":1.0},"90":{"tf":1.7320508075688772},"91":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":7,"docs":{"181":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.0},"235":{"tf":1.0},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"269":{"tf":1.0},"55":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":19,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.0},"16":{"tf":1.7320508075688772},"17":{"tf":1.0},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"193":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"6":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"199":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":1,"docs":{"152":{"tf":1.0}}}},"o":{"d":{"df":1,"docs":{"46":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":2,"docs":{"235":{"tf":1.0},"240":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":21,"docs":{"1":{"tf":1.7320508075688772},"127":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"2":{"tf":1.0},"20":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"247":{"tf":1.7320508075688772},"262":{"tf":1.7320508075688772},"271":{"tf":1.4142135623730951},"274":{"tf":1.0},"30":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.7320508075688772},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}},"s":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"152":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":6,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"234":{"tf":1.0},"247":{"tf":1.0},"274":{"tf":1.0},"284":{"tf":1.0}}}},"t":{"df":0,"docs":{},"p":{"/":{"1":{".":{"1":{"df":3,"docs":{"127":{"tf":1.0},"45":{"tf":1.4142135623730951},"98":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{".":{"0":{"df":1,"docs":{"151":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"200":{"tf":1.0}}},":":{"/":{"/":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"2":{"0":{"0":{"9":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"d":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"#":{"d":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"a":{"_":{"3":{".":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"208":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"m":{"df":0,"docs":{},"y":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"129":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"128":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}},"v":{"df":0,"docs":{},"o":{"c":{"a":{"b":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":1,"docs":{"126":{"tf":1.0}}}}}},"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"130":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"131":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"9":{"8":{"8":{"3":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"d":{"c":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"1":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"e":{"b":{"df":0,"docs":{},"r":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"/":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"a":{".":{"df":0,"docs":{},"t":{"c":{"d":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"/":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"2":{"2":{"6":{"2":{"/":{"9":{"1":{"4":{"0":{"7":{"df":1,"docs":{"125":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"1":{"9":{"9":{"9":{"/":{"0":{"2":{"/":{"2":{"2":{"df":3,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"2":{"0":{"0":{"0":{"/":{"0":{"1":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":2,"docs":{"124":{"tf":1.7320508075688772},"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"1":{"/":{"df":0,"docs":{},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"2":{"/":{"0":{"7":{"/":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"#":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":1,"docs":{"124":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"f":{"/":{"0":{".":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":38,"docs":{"100":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.7320508075688772},"134":{"tf":1.0},"136":{"tf":1.0},"146":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"226":{"tf":1.4142135623730951},"229":{"tf":1.0},"235":{"tf":1.0},"263":{"tf":1.0},"39":{"tf":1.4142135623730951},"45":{"tf":1.7320508075688772},"55":{"tf":1.0},"64":{"tf":1.4142135623730951},"77":{"tf":1.0},"79":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"/":{"df":0,"docs":{},"r":{"d":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"l":{"df":4,"docs":{"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"40":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.7320508075688772}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"114":{"tf":1.0},"116":{"tf":1.0}}}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"59":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{}}},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"145":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"58":{"tf":1.4142135623730951}}}}}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":2,"docs":{"59":{"tf":1.0},"61":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"63":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}}}}}},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":1,"docs":{"62":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"65":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}}}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"1":{"df":1,"docs":{"108":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":5,"docs":{"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"58":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"/":{"a":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"/":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"95":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"163":{"tf":1.4142135623730951}}}}}}}},"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":14,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"192":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":2.8284271247461903},"39":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"a":{"df":12,"docs":{"116":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"m":{"df":7,"docs":{"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"166":{"tf":1.0},"56":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"36":{"tf":1.0},"38":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"56":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":9,"docs":{"116":{"tf":1.0},"203":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"116":{"tf":1.0}}}}}},"df":1,"docs":{"116":{"tf":1.0}}}}},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"116":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"116":{"tf":1.0},"45":{"tf":1.4142135623730951}}}}}}},"df":1,"docs":{"48":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"1":{"df":1,"docs":{"72":{"tf":1.4142135623730951}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"29":{"tf":2.23606797749979},"40":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}},"b":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"a":{"df":1,"docs":{"29":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":2,"docs":{"50":{"tf":1.0},"51":{"tf":1.4142135623730951}}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":4,"docs":{"184":{"tf":1.0},"50":{"tf":2.23606797749979},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"50":{"tf":1.7320508075688772},"51":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"m":{"df":0,"docs":{},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"52":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"/":{"1":{"2":{"3":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":2,"docs":{"204":{"tf":1.0},"205":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"a":{"d":{"d":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.4142135623730951}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}}}}}},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.7320508075688772}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}},"c":{"df":1,"docs":{"40":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"29":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"205":{"tf":1.4142135623730951},"29":{"tf":2.23606797749979}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"204":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"s":{"a":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"h":{"df":1,"docs":{"205":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"95":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{".":{"df":0,"docs":{},"j":{"df":0,"docs":{},"p":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"b":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":2,"docs":{"102":{"tf":1.0},"276":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"b":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"128":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"s":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"252":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"y":{"df":1,"docs":{"184":{"tf":1.0}}}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"y":{".":{"d":{"d":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"/":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"/":{"9":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"s":{"7":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"d":{"d":{"df":0,"docs":{},"f":{"4":{"df":0,"docs":{},"y":{"b":{"a":{"df":0,"docs":{},"i":{"a":{"4":{"df":0,"docs":{},"h":{"df":0,"docs":{},"u":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"g":{"+":{"df":0,"docs":{},"x":{"df":0,"docs":{},"z":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"z":{"4":{"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"m":{"c":{"df":1,"docs":{"116":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{".":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{":":{"7":{"7":{"7":{"7":{"/":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"123":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"w":{"df":0,"docs":{},"w":{"df":0,"docs":{},"w":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}}},"w":{"3":{".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"/":{"2":{"0":{"1":{"2":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"/":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"/":{"df":0,"docs":{},"f":{"2":{"df":0,"docs":{},"f":{"5":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"1":{"1":{"df":1,"docs":{"130":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":6,"docs":{"14":{"tf":1.7320508075688772},"196":{"tf":1.0},"245":{"tf":1.0},"29":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"161":{"tf":1.0},"163":{"tf":1.0}}}}}},"i":{"'":{"d":{"df":3,"docs":{"168":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"120":{"tf":1.0}}}},"m":{"df":10,"docs":{"12":{"tf":1.0},"126":{"tf":1.0},"158":{"tf":1.4142135623730951},"159":{"tf":1.4142135623730951},"161":{"tf":1.7320508075688772},"162":{"tf":1.4142135623730951},"163":{"tf":1.7320508075688772},"177":{"tf":1.0},"189":{"tf":1.0},"245":{"tf":1.0}}},"v":{"df":6,"docs":{"12":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0}}}},".":{"df":4,"docs":{"132":{"tf":1.0},"28":{"tf":1.0},"39":{"tf":1.0},"64":{"tf":1.0}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.7320508075688772},"18":{"tf":1.0},"200":{"tf":1.0}}}}},"d":{"df":28,"docs":{"116":{"tf":1.0},"145":{"tf":1.0},"156":{"tf":1.4142135623730951},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"40":{"tf":2.0},"45":{"tf":1.0},"50":{"tf":1.7320508075688772},"51":{"tf":1.4142135623730951},"52":{"tf":1.4142135623730951},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.0},"76":{"tf":1.0}},"e":{"a":{"df":12,"docs":{"112":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.4142135623730951},"176":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":2.23606797749979},"199":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"281":{"tf":1.7320508075688772},"288":{"tf":1.7320508075688772},"79":{"tf":1.0}},"l":{"df":2,"docs":{"156":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"197":{"tf":1.4142135623730951},"256":{"tf":1.4142135623730951},"82":{"tf":1.0},"94":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":25,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"124":{"tf":1.0},"177":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":2.0},"191":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":2.23606797749979},"226":{"tf":1.0},"256":{"tf":1.0},"268":{"tf":1.0},"30":{"tf":1.0},"40":{"tf":1.0},"49":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"64":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"172":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"17":{"tf":1.0},"25":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"236":{"tf":1.0},"247":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"90":{"tf":1.0}}}}},"p":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":38,"docs":{"102":{"tf":1.4142135623730951},"109":{"tf":1.0},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"138":{"tf":2.0},"14":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"15":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.7320508075688772},"17":{"tf":1.7320508075688772},"18":{"tf":1.7320508075688772},"19":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":2.6457513110645907},"241":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"39":{"tf":1.0},"48":{"tf":1.0},"81":{"tf":1.4142135623730951},"87":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":31,"docs":{"1":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"157":{"tf":1.7320508075688772},"162":{"tf":2.449489742783178},"164":{"tf":1.4142135623730951},"166":{"tf":1.4142135623730951},"18":{"tf":1.0},"185":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.0},"219":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"263":{"tf":1.0},"283":{"tf":1.7320508075688772},"288":{"tf":1.0},"29":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":4,"docs":{"18":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.0},"265":{"tf":1.0}}}}}}},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":2,"docs":{"201":{"tf":1.0},"254":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}},"h":{"df":1,"docs":{"248":{"tf":1.0}}},"l":{"df":0,"docs":{},"u":{"d":{"df":22,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.7320508075688772},"12":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"198":{"tf":1.0},"200":{"tf":1.0},"210":{"tf":1.0},"25":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"42":{"tf":1.0},"45":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"189":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":2.0}}}}}}},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"117":{"tf":1.0},"242":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"260":{"tf":1.4142135623730951}}}},"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}}}},"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"114":{"tf":1.0}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"105":{"tf":1.0},"209":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":6,"docs":{"112":{"tf":1.0},"18":{"tf":1.4142135623730951},"195":{"tf":1.7320508075688772},"224":{"tf":1.7320508075688772},"226":{"tf":1.7320508075688772},"247":{"tf":2.0}}}},"i":{"c":{"df":4,"docs":{"205":{"tf":1.4142135623730951},"52":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":9,"docs":{"132":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"157":{"tf":1.4142135623730951},"193":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}},"r":{"df":0,"docs":{},"m":{"df":39,"docs":{"107":{"tf":1.0},"108":{"tf":1.0},"110":{"tf":1.0},"12":{"tf":1.4142135623730951},"148":{"tf":1.0},"152":{"tf":1.4142135623730951},"16":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"210":{"tf":1.0},"216":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":2.23606797749979},"246":{"tf":1.0},"25":{"tf":1.4142135623730951},"252":{"tf":2.23606797749979},"253":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.0},"30":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":2,"docs":{"160":{"tf":1.0},"271":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.7320508075688772}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":6,"docs":{"128":{"tf":1.0},"134":{"tf":1.4142135623730951},"14":{"tf":1.0},"193":{"tf":1.0},"234":{"tf":1.0},"288":{"tf":1.0}}}}},"l":{"c":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"177":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":1,"docs":{"12":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":3,"docs":{"149":{"tf":1.0},"242":{"tf":1.0},"31":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"181":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}}},"i":{"d":{"df":4,"docs":{"111":{"tf":1.0},"34":{"tf":1.0},"76":{"tf":1.4142135623730951},"92":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":4,"docs":{"154":{"tf":1.0},"249":{"tf":1.4142135623730951},"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}},"p":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":6,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"168":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":12,"docs":{"151":{"tf":1.0},"152":{"tf":2.0},"18":{"tf":1.0},"19":{"tf":1.0},"199":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"237":{"tf":1.0},"276":{"tf":1.4142135623730951},"277":{"tf":1.0},"53":{"tf":1.0}}},"n":{"c":{"df":6,"docs":{"189":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"49":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"269":{"tf":1.0},"84":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":14,"docs":{"142":{"tf":1.0},"163":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"199":{"tf":1.0},"208":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.7320508075688772},"252":{"tf":1.0},"254":{"tf":1.0},"269":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"271":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"a":{"df":0,"docs":{},"k":{"df":1,"docs":{"270":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":6,"docs":{"175":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":1.0},"67":{"tf":1.7320508075688772},"71":{"tf":1.0}},"r":{"df":6,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"242":{"tf":2.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"13":{"tf":1.0}}},"t":{"df":2,"docs":{"12":{"tf":1.0},"189":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"141":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"269":{"tf":1.7320508075688772},"82":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":7,"docs":{"121":{"tf":1.0},"126":{"tf":1.0},"132":{"tf":1.0},"199":{"tf":1.0},"209":{"tf":1.4142135623730951},"252":{"tf":1.0},"288":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"181":{"tf":1.0}}}}}}}}}},"f":{"a":{"c":{"df":6,"docs":{"189":{"tf":1.0},"235":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"56":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"n":{"df":5,"docs":{"145":{"tf":1.0},"184":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"76":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"t":{"df":7,"docs":{"12":{"tf":1.0},"16":{"tf":1.0},"199":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":77,"docs":{"0":{"tf":1.0},"10":{"tf":1.0},"12":{"tf":1.0},"14":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"166":{"tf":1.0},"170":{"tf":2.23606797749979},"171":{"tf":1.0},"172":{"tf":1.0},"173":{"tf":1.0},"174":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"177":{"tf":1.0},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0},"211":{"tf":1.0},"212":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"221":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.4142135623730951},"78":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"208":{"tf":1.0},"211":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"180":{"tf":1.0},"182":{"tf":1.0},"253":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"189":{"tf":1.0},"190":{"tf":1.0}}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"c":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":9,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"132":{"tf":1.0},"180":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"241":{"tf":1.0},"254":{"tf":1.0}},"t":{"df":2,"docs":{"13":{"tf":1.0},"155":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"15":{"tf":1.0},"190":{"tf":1.0},"31":{"tf":1.0}}}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"117":{"tf":1.0},"184":{"tf":1.0},"39":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"193":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0}},"i":{"df":1,"docs":{"260":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"t":{"df":18,"docs":{"0":{"tf":1.0},"106":{"tf":2.23606797749979},"107":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":2.23606797749979},"118":{"tf":1.4142135623730951},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"18":{"tf":1.4142135623730951},"200":{"tf":1.4142135623730951},"251":{"tf":1.0},"254":{"tf":2.23606797749979},"8":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":4,"docs":{"10":{"tf":1.0},"193":{"tf":1.0},"290":{"tf":1.7320508075688772},"3":{"tf":1.4142135623730951}}}}}}},"p":{"df":0,"docs":{},"f":{"df":10,"docs":{"10":{"tf":1.0},"173":{"tf":1.0},"207":{"tf":1.7320508075688772},"208":{"tf":2.449489742783178},"209":{"tf":2.449489742783178},"210":{"tf":3.3166247903554},"211":{"tf":1.4142135623730951},"212":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"s":{":":{"df":0,"docs":{},"q":{"df":0,"docs":{},"m":{"df":0,"docs":{},"x":{"6":{"df":0,"docs":{},"j":{"9":{"d":{"df":0,"docs":{},"h":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"g":{"b":{"c":{"b":{"df":0,"docs":{},"t":{"df":0,"docs":{},"z":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"f":{"df":0,"docs":{},"m":{"df":0,"docs":{},"k":{"2":{"df":0,"docs":{},"v":{"7":{"df":0,"docs":{},"g":{"5":{"df":0,"docs":{},"m":{"df":0,"docs":{},"z":{"b":{"1":{"1":{"df":0,"docs":{},"v":{"df":0,"docs":{},"u":{"9":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"9":{"df":0,"docs":{},"i":{"8":{"df":0,"docs":{},"v":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.7320508075688772}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"283":{"tf":1.0}}}},"s":{"a":{"df":2,"docs":{"76":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"d":{"df":0,"docs":{},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"o":{"df":3,"docs":{"185":{"tf":1.0},"29":{"tf":1.0},"70":{"tf":1.0}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"u":{"df":31,"docs":{"105":{"tf":1.4142135623730951},"112":{"tf":2.0},"119":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"186":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.7320508075688772},"208":{"tf":1.0},"209":{"tf":1.0},"212":{"tf":1.0},"234":{"tf":1.0},"236":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.0},"256":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"5":{"tf":1.4142135623730951},"77":{"tf":1.0},"92":{"tf":1.4142135623730951}}}}},"t":{"'":{"df":30,"docs":{"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.4142135623730951},"148":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"192":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.0},"213":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"25":{"tf":1.0},"264":{"tf":1.4142135623730951},"35":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":19,"docs":{"114":{"tf":1.0},"12":{"tf":1.0},"142":{"tf":2.0},"159":{"tf":1.0},"161":{"tf":1.7320508075688772},"177":{"tf":1.0},"181":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"214":{"tf":1.4142135623730951},"241":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"39":{"tf":1.4142135623730951},"47":{"tf":1.0},"52":{"tf":1.0},"76":{"tf":1.0},"90":{"tf":1.4142135623730951}}},"r":{"df":2,"docs":{"118":{"tf":1.4142135623730951},"244":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":9,"docs":{"172":{"tf":1.0},"202":{"tf":1.0},"204":{"tf":1.0},"228":{"tf":1.4142135623730951},"253":{"tf":1.0},"262":{"tf":1.0},"55":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}}}}},"j":{"a":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"20":{"tf":1.0},"234":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"n":{"df":1,"docs":{"71":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"177":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"41":{"tf":1.0}}}}}}},"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":4,"docs":{"117":{"tf":1.0},"26":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{},"o":{"b":{"df":3,"docs":{"14":{"tf":1.0},"210":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"@":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"276":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":3,"docs":{"177":{"tf":1.0},"276":{"tf":1.0},"287":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":1,"docs":{"287":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"h":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}},".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"181":{"tf":1.0}}}}},"df":0,"docs":{}},"df":6,"docs":{"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"228":{"tf":1.0},"243":{"tf":1.7320508075688772},"50":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"169":{"tf":1.0},"240":{"tf":1.0},"290":{"tf":1.4142135623730951},"3":{"tf":1.0}}}},"n":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":1,"docs":{"163":{"tf":2.0}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"s":{"df":5,"docs":{"102":{"tf":1.0},"129":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.4142135623730951},"284":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":75,"docs":{"0":{"tf":2.23606797749979},"1":{"tf":1.0},"10":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"120":{"tf":1.0},"129":{"tf":1.7320508075688772},"131":{"tf":2.0},"132":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.7320508075688772},"155":{"tf":1.0},"156":{"tf":2.449489742783178},"157":{"tf":2.23606797749979},"158":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"167":{"tf":1.0},"172":{"tf":2.23606797749979},"177":{"tf":2.23606797749979},"18":{"tf":1.7320508075688772},"182":{"tf":1.0},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.7320508075688772},"200":{"tf":2.0},"202":{"tf":3.0},"203":{"tf":3.1622776601683795},"204":{"tf":3.0},"205":{"tf":3.7416573867739413},"206":{"tf":2.449489742783178},"22":{"tf":2.0},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"25":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.7320508075688772},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.7320508075688772},"30":{"tf":1.0},"31":{"tf":1.0},"35":{"tf":1.0},"36":{"tf":2.0},"37":{"tf":2.0},"38":{"tf":1.4142135623730951},"39":{"tf":3.605551275463989},"40":{"tf":2.23606797749979},"41":{"tf":2.23606797749979},"42":{"tf":2.449489742783178},"43":{"tf":2.23606797749979},"56":{"tf":1.0},"7":{"tf":1.0},"72":{"tf":1.0},"79":{"tf":1.4142135623730951},"9":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"5":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"k":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":16,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.7320508075688772},"121":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"219":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.4142135623730951},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"56":{"tf":1.0},"84":{"tf":1.0}}}},"y":{"b":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":39,"docs":{"0":{"tf":1.7320508075688772},"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"105":{"tf":2.0},"108":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.7320508075688772},"119":{"tf":1.0},"121":{"tf":1.0},"143":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":2.23606797749979},"189":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"222":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":2.0},"76":{"tf":1.4142135623730951},"77":{"tf":1.0},"81":{"tf":1.4142135623730951},"95":{"tf":1.4142135623730951}},"p":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"84":{"tf":1.0}}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":7,"docs":{"121":{"tf":1.4142135623730951},"194":{"tf":1.0},"22":{"tf":1.0},"271":{"tf":1.0},"56":{"tf":1.0},"74":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}},"t":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":1,"docs":{"283":{"tf":1.4142135623730951}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":27,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.4142135623730951},"13":{"tf":1.4142135623730951},"141":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"203":{"tf":1.0},"210":{"tf":1.7320508075688772},"220":{"tf":1.0},"228":{"tf":1.0},"234":{"tf":1.0},"245":{"tf":1.0},"250":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"37":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.4142135623730951},"93":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":8,"docs":{"176":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.4142135623730951},"244":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":2.23606797749979}}}},"df":0,"docs":{}}},"n":{"df":6,"docs":{"14":{"tf":1.0},"181":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":8,"docs":{"10":{"tf":1.0},"174":{"tf":1.0},"228":{"tf":2.0},"232":{"tf":1.0},"268":{"tf":2.0},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.0}}}}},"c":{"df":0,"docs":{},"k":{"df":12,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"201":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"s":{"c":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":28,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"182":{"tf":1.4142135623730951},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":2.0},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.4142135623730951},"220":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":2.23606797749979},"230":{"tf":1.4142135623730951},"248":{"tf":1.0},"269":{"tf":1.0},"44":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"78":{"tf":1.0}}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":3,"docs":{"151":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"g":{"df":8,"docs":{"12":{"tf":1.0},"13":{"tf":1.0},"17":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"241":{"tf":1.0},"246":{"tf":1.0},"254":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"13":{"tf":1.0},"166":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"50":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"142":{"tf":1.0},"145":{"tf":1.0},"154":{"tf":1.0},"159":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"61":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.0}}}},"df":0,"docs":{}}},"w":{"df":1,"docs":{"260":{"tf":1.0}}}},"d":{"df":16,"docs":{"125":{"tf":1.4142135623730951},"127":{"tf":1.4142135623730951},"129":{"tf":1.7320508075688772},"151":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":2.6457513110645907},"206":{"tf":2.0},"22":{"tf":1.0},"280":{"tf":1.0},"288":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"43":{"tf":1.4142135623730951}}},"df":0,"docs":{},"e":{"a":{"d":{"df":5,"docs":{"182":{"tf":1.0},"185":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"144":{"tf":1.0},"17":{"tf":1.4142135623730951},"188":{"tf":1.0},"190":{"tf":1.0},"226":{"tf":1.0},"242":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}}},"v":{"df":2,"docs":{"262":{"tf":1.0},"5":{"tf":1.0}}}},"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":3,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}}},"f":{"df":0,"docs":{},"t":{"df":2,"docs":{"152":{"tf":1.0},"154":{"tf":1.0}}}},"g":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"l":{"df":2,"docs":{"247":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":2,"docs":{"127":{"tf":1.0},"60":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"119":{"tf":1.0},"178":{"tf":1.4142135623730951},"246":{"tf":1.0},"93":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"266":{"tf":1.7320508075688772}}}}}},"t":{"'":{"df":20,"docs":{"116":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.0},"132":{"tf":1.0},"143":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"177":{"tf":1.0},"204":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"117":{"tf":1.0},"62":{"tf":1.0}}}}},"’":{"df":1,"docs":{"199":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"165":{"tf":1.0},"90":{"tf":2.0}}}}},"x":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"i":{"b":{"df":6,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"280":{"tf":1.4142135623730951}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":27,"docs":{"10":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"186":{"tf":1.0},"2":{"tf":2.0},"235":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.7320508075688772},"241":{"tf":1.0},"272":{"tf":2.6457513110645907},"273":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"278":{"tf":1.7320508075688772},"279":{"tf":1.4142135623730951},"280":{"tf":1.4142135623730951},"281":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.4142135623730951},"284":{"tf":1.0},"285":{"tf":1.4142135623730951},"41":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"272":{"tf":1.4142135623730951}}},"df":0,"docs":{},"s":{"df":8,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.4142135623730951},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":2,"docs":{"190":{"tf":1.0},"249":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":1,"docs":{"184":{"tf":1.0}}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":5,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0}}}}}}}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":21,"docs":{"102":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"143":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"189":{"tf":1.0},"194":{"tf":1.0},"220":{"tf":1.4142135623730951},"222":{"tf":1.0},"236":{"tf":1.4142135623730951},"248":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":1.0},"59":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"92":{"tf":1.7320508075688772}}}}},"n":{"df":0,"docs":{},"e":{"df":4,"docs":{"128":{"tf":1.0},"2":{"tf":1.0},"276":{"tf":1.0},"65":{"tf":1.0}},"r":{"df":2,"docs":{"237":{"tf":1.0},"274":{"tf":1.0}}}},"k":{"]":{"(":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":66,"docs":{"0":{"tf":2.0},"108":{"tf":1.0},"117":{"tf":1.4142135623730951},"120":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"14":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"156":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.4142135623730951},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.0},"185":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"23":{"tf":1.0},"243":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":2.449489742783178},"258":{"tf":1.0},"259":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.7320508075688772},"29":{"tf":2.23606797749979},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"44":{"tf":1.0},"5":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"77":{"tf":2.23606797749979},"79":{"tf":1.0},"80":{"tf":1.0}}},"u":{"df":0,"docs":{},"x":{"df":1,"docs":{"151":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"t":{"df":29,"docs":{"12":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.0},"139":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"162":{"tf":1.0},"187":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"276":{"tf":1.4142135623730951},"281":{"tf":1.4142135623730951},"38":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.7320508075688772},"61":{"tf":1.0},"72":{"tf":1.0},"89":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":6,"docs":{"129":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":2.449489742783178},"190":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0}}}},"t":{"df":0,"docs":{},"l":{"df":5,"docs":{"111":{"tf":1.0},"166":{"tf":1.0},"199":{"tf":1.0},"23":{"tf":1.0},"29":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":5,"docs":{"18":{"tf":1.0},"235":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0},"50":{"tf":1.0}}}}},"o":{"a":{"d":{"df":3,"docs":{"112":{"tf":1.0},"234":{"tf":1.7320508075688772},"48":{"tf":1.0}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"112":{"tf":1.0},"150":{"tf":1.0},"152":{"tf":1.7320508075688772},"177":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0}},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.4142135623730951}}}}}},"i":{"d":{"df":2,"docs":{"162":{"tf":2.23606797749979},"163":{"tf":2.0}}},"df":0,"docs":{}}},"t":{"df":2,"docs":{"183":{"tf":1.7320508075688772},"209":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"k":{"df":3,"docs":{"12":{"tf":1.7320508075688772},"247":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":10,"docs":{"111":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0},"84":{"tf":1.0}},"i":{"c":{"df":7,"docs":{"166":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"240":{"tf":1.0},"248":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"g":{"df":16,"docs":{"121":{"tf":1.0},"127":{"tf":1.0},"13":{"tf":1.0},"142":{"tf":1.0},"162":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"228":{"tf":1.0},"241":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"203":{"tf":1.4142135623730951},"269":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}}},"o":{"df":0,"docs":{},"k":{"df":19,"docs":{"116":{"tf":1.0},"12":{"tf":1.0},"126":{"tf":1.0},"141":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"154":{"tf":1.4142135623730951},"182":{"tf":1.0},"185":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"225":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"39":{"tf":1.0},"95":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"94":{"tf":1.0}}},"t":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":21,"docs":{"112":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.4142135623730951},"16":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.7320508075688772},"209":{"tf":1.0},"216":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.4142135623730951},"41":{"tf":1.0},"77":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"234":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"210":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"h":{"a":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}}},"x":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"241":{"tf":1.0}}}}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"m":{"a":{"c":{"df":2,"docs":{"151":{"tf":1.0},"247":{"tf":1.0}},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":20,"docs":{"0":{"tf":1.4142135623730951},"14":{"tf":2.0},"152":{"tf":1.0},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"242":{"tf":1.4142135623730951},"247":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":10,"docs":{"112":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"181":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.4142135623730951},"266":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"163":{"tf":1.0},"20":{"tf":1.4142135623730951}}},"n":{"df":1,"docs":{"14":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"229":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"111":{"tf":1.0},"112":{"tf":1.0},"168":{"tf":1.0},"260":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"j":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":2,"docs":{"199":{"tf":1.0},"289":{"tf":1.4142135623730951}}}}},"k":{"df":0,"docs":{},"e":{"df":92,"docs":{"0":{"tf":2.0},"106":{"tf":1.0},"109":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.0},"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"133":{"tf":1.0},"14":{"tf":1.7320508075688772},"146":{"tf":1.0},"147":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"17":{"tf":1.7320508075688772},"171":{"tf":1.0},"172":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.4142135623730951},"18":{"tf":1.7320508075688772},"180":{"tf":1.4142135623730951},"181":{"tf":2.0},"182":{"tf":1.0},"183":{"tf":1.7320508075688772},"184":{"tf":2.0},"189":{"tf":1.0},"19":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.0},"197":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"203":{"tf":2.0},"204":{"tf":1.4142135623730951},"206":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"216":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.4142135623730951},"234":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.7320508075688772},"243":{"tf":2.449489742783178},"246":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"257":{"tf":1.4142135623730951},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.4142135623730951},"268":{"tf":1.0},"269":{"tf":1.0},"274":{"tf":1.0},"290":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"35":{"tf":1.0},"36":{"tf":1.4142135623730951},"37":{"tf":1.4142135623730951},"38":{"tf":2.0},"39":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.4142135623730951},"77":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"83":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"g":{"df":15,"docs":{"105":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"20":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"247":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"86":{"tf":1.0}}}},"df":3,"docs":{"102":{"tf":1.0},"193":{"tf":1.0},"97":{"tf":1.0}},"i":{"df":31,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"137":{"tf":1.0},"142":{"tf":2.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"220":{"tf":1.0},"231":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"55":{"tf":1.0},"59":{"tf":1.0},"77":{"tf":1.0},"81":{"tf":1.0}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"285":{"tf":1.0}}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"14":{"tf":1.0},"156":{"tf":1.0},"186":{"tf":1.0},"215":{"tf":1.0},"226":{"tf":1.0},"247":{"tf":1.0}}}},"df":1,"docs":{"288":{"tf":1.0}},"f":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"250":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"p":{"df":10,"docs":{"165":{"tf":1.0},"166":{"tf":1.7320508075688772},"177":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"205":{"tf":2.0},"219":{"tf":1.0},"228":{"tf":1.0},"283":{"tf":1.0},"39":{"tf":1.4142135623730951}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"228":{"tf":1.0}}},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":8,"docs":{"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"58":{"tf":1.0},"66":{"tf":1.7320508075688772}}}}}},"df":2,"docs":{"20":{"tf":1.0},"269":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":8,"docs":{"10":{"tf":1.0},"20":{"tf":1.0},"232":{"tf":1.0},"246":{"tf":1.7320508075688772},"247":{"tf":2.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":8,"docs":{"103":{"tf":1.0},"118":{"tf":2.0},"127":{"tf":1.0},"143":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}}},"h":{".":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"d":{"(":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"33":{"tf":1.0}}}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"119":{"tf":1.0},"166":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}}}}},"x":{"df":5,"docs":{"289":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.4142135623730951},"68":{"tf":1.0}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"60":{"tf":1.0}}}}}}},"y":{"b":{"df":3,"docs":{"107":{"tf":1.0},"269":{"tf":1.0},"78":{"tf":1.0}}},"df":0,"docs":{}}},"c":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"288":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"50":{"tf":2.23606797749979},"51":{"tf":1.0}}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}},"n":{"df":73,"docs":{"0":{"tf":1.0},"105":{"tf":1.4142135623730951},"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":1.0},"121":{"tf":1.0},"128":{"tf":1.0},"132":{"tf":1.4142135623730951},"139":{"tf":1.0},"14":{"tf":1.7320508075688772},"140":{"tf":1.0},"142":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.0},"16":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":2.449489742783178},"196":{"tf":1.0},"203":{"tf":1.0},"209":{"tf":1.4142135623730951},"210":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.4142135623730951},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"269":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"30":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"4":{"tf":1.0},"40":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":2,"docs":{"193":{"tf":1.0},"209":{"tf":1.0}}}},"s":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"197":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"253":{"tf":1.0}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":2,"docs":{"149":{"tf":1.0},"167":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.7320508075688772},"199":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"s":{"df":0,"docs":{},"m":{"a":{"df":2,"docs":{"276":{"tf":1.0},"287":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"140":{"tf":1.0},"142":{"tf":2.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"280":{"tf":1.0},"41":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":5,"docs":{"189":{"tf":1.0},"195":{"tf":1.0},"243":{"tf":1.0},"282":{"tf":1.0},"76":{"tf":1.4142135623730951}}}}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"288":{"tf":1.0}}}}},"u":{"df":3,"docs":{"152":{"tf":1.4142135623730951},"154":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"g":{"df":4,"docs":{"121":{"tf":1.0},"14":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.4142135623730951}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"178":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"208":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":6,"docs":{"102":{"tf":1.0},"135":{"tf":1.7320508075688772},"136":{"tf":1.7320508075688772},"137":{"tf":1.4142135623730951},"276":{"tf":1.0},"99":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"a":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":8,"docs":{"0":{"tf":1.0},"144":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"d":{"df":6,"docs":{"100":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"195":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"d":{"d":{"df":0,"docs":{},"l":{"df":2,"docs":{"102":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"71":{"tf":1.0}}}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"132":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{}}},"k":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"101":{"tf":1.0},"234":{"tf":1.0},"261":{"tf":1.0},"71":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"39":{"tf":1.0},"45":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"145":{"tf":1.0}}}}}},"i":{"c":{"df":2,"docs":{"240":{"tf":1.0},"76":{"tf":1.0}}},"df":0,"docs":{}}},"n":{"d":{"df":7,"docs":{"0":{"tf":1.0},"128":{"tf":1.0},"191":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"240":{"tf":1.0},"4":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"m":{"df":2,"docs":{"100":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"94":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"184":{"tf":1.0}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}}}}}}},"s":{"df":5,"docs":{"120":{"tf":1.0},"140":{"tf":1.0},"201":{"tf":1.7320508075688772},"204":{"tf":1.0},"263":{"tf":1.0}}}},"t":{"df":9,"docs":{"12":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"272":{"tf":1.4142135623730951}},"m":{"df":1,"docs":{"100":{"tf":1.0}}}}},"m":{"df":1,"docs":{"70":{"tf":1.0}}},"o":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"282":{"tf":1.0},"285":{"tf":1.0}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":46,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.0},"120":{"tf":1.4142135623730951},"13":{"tf":1.7320508075688772},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"15":{"tf":1.0},"175":{"tf":2.23606797749979},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.0},"193":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"231":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"244":{"tf":1.0},"25":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"76":{"tf":1.0},"84":{"tf":1.4142135623730951},"86":{"tf":1.0},"87":{"tf":1.0},"88":{"tf":1.4142135623730951},"92":{"tf":1.7320508075688772},"94":{"tf":1.0}}},"r":{"df":1,"docs":{"256":{"tf":1.0}},"n":{"df":3,"docs":{"196":{"tf":1.0},"247":{"tf":1.0},"261":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"229":{"tf":1.0}},"i":{"df":4,"docs":{"0":{"tf":1.0},"118":{"tf":1.0},"168":{"tf":1.0},"56":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":7,"docs":{"0":{"tf":1.0},"165":{"tf":1.0},"17":{"tf":1.0},"25":{"tf":1.4142135623730951},"265":{"tf":1.7320508075688772},"266":{"tf":1.4142135623730951},"81":{"tf":1.0}}}},"df":1,"docs":{"0":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"160":{"tf":1.0},"220":{"tf":1.0},"245":{"tf":1.0},"249":{"tf":1.0}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"112":{"tf":1.0},"17":{"tf":1.0},"252":{"tf":1.0},"289":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{".":{"\"":{"^":{"^":{"<":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"/":{"d":{"a":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"/":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"38":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":89,"docs":{"0":{"tf":1.4142135623730951},"111":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":2.23606797749979},"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"132":{"tf":1.0},"134":{"tf":1.0},"135":{"tf":1.0},"140":{"tf":1.0},"145":{"tf":1.0},"148":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"154":{"tf":1.0},"155":{"tf":1.7320508075688772},"156":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"178":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":2.23606797749979},"194":{"tf":1.7320508075688772},"196":{"tf":1.7320508075688772},"197":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"216":{"tf":1.0},"217":{"tf":1.0},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"229":{"tf":1.7320508075688772},"235":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.7320508075688772},"243":{"tf":1.0},"247":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.7320508075688772},"260":{"tf":1.4142135623730951},"263":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.4142135623730951},"271":{"tf":1.0},"276":{"tf":1.0},"288":{"tf":1.0},"29":{"tf":1.7320508075688772},"32":{"tf":1.0},"36":{"tf":1.7320508075688772},"37":{"tf":1.4142135623730951},"38":{"tf":1.7320508075688772},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.4142135623730951},"93":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"190":{"tf":1.0},"248":{"tf":1.0},"25":{"tf":1.0},"5":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":7,"docs":{"11":{"tf":1.7320508075688772},"112":{"tf":1.4142135623730951},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"6":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":4,"docs":{"122":{"tf":1.0},"18":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.4142135623730951}}}}},"r":{"df":1,"docs":{"52":{"tf":1.7320508075688772}}},"u":{"c":{"df":0,"docs":{},"h":{"df":11,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"161":{"tf":1.0},"163":{"tf":1.0},"17":{"tf":1.4142135623730951},"180":{"tf":1.0},"186":{"tf":1.0},"199":{"tf":1.4142135623730951},"210":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"146":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"133":{"tf":1.0}}}},"df":26,"docs":{"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"146":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.7320508075688772},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"22":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"262":{"tf":1.4142135623730951},"39":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.0},"74":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"79":{"tf":1.0},"80":{"tf":1.0},"94":{"tf":1.0}},"i":{"df":1,"docs":{"266":{"tf":1.0}}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"122":{"tf":1.7320508075688772},"18":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"220":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"98":{"tf":1.0}}},"df":0,"docs":{}}}}}}}}},"n":{"3":{"2":{"df":0,"docs":{},"z":{"df":0,"docs":{},"q":{"df":0,"docs":{},"n":{"df":0,"docs":{},"z":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"j":{"1":{"df":0,"docs":{},"l":{"b":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"5":{"c":{"df":0,"docs":{},"k":{"a":{"4":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"2":{"a":{"a":{"df":0,"docs":{},"j":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"w":{"c":{"df":0,"docs":{},"n":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"g":{"df":0,"docs":{},"y":{"6":{"c":{"df":1,"docs":{"95":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}}}}},"df":4,"docs":{"123":{"tf":2.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":26,"docs":{"0":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.7320508075688772},"154":{"tf":1.0},"157":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"181":{"tf":1.7320508075688772},"182":{"tf":2.23606797749979},"184":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"29":{"tf":2.0},"39":{"tf":1.7320508075688772},"40":{"tf":2.0},"52":{"tf":1.4142135623730951},"76":{"tf":1.0},"97":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"261":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"254":{"tf":1.0}}}},"v":{"df":5,"docs":{"175":{"tf":1.4142135623730951},"187":{"tf":1.4142135623730951},"188":{"tf":1.4142135623730951},"192":{"tf":1.0},"79":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":4,"docs":{"154":{"tf":1.0},"26":{"tf":1.4142135623730951},"262":{"tf":1.0},"52":{"tf":1.0}}}}}},"df":9,"docs":{"128":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.4142135623730951},"65":{"tf":1.4142135623730951},"66":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"77":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"177":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.0},"51":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"35":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"d":{"df":62,"docs":{"101":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"107":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.7320508075688772},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"12":{"tf":2.23606797749979},"14":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"157":{"tf":1.0},"16":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"169":{"tf":1.0},"17":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.449489742783178},"180":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"188":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.4142135623730951},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"217":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"235":{"tf":1.7320508075688772},"239":{"tf":1.0},"241":{"tf":2.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772},"249":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.7320508075688772},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"37":{"tf":1.0},"42":{"tf":1.0},"55":{"tf":1.0},"60":{"tf":1.0},"76":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}}},"df":0,"docs":{}},"g":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"39":{"tf":1.0}}}}}},"o":{"4":{"df":0,"docs":{},"j":{"df":6,"docs":{"174":{"tf":1.0},"227":{"tf":2.23606797749979},"228":{"tf":1.4142135623730951},"229":{"tf":1.0},"230":{"tf":1.0},"231":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":13,"docs":{"114":{"tf":1.4142135623730951},"117":{"tf":1.0},"175":{"tf":1.0},"184":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"34":{"tf":1.7320508075688772},"39":{"tf":2.449489742783178},"40":{"tf":2.8284271247461903},"42":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":2.6457513110645907},"86":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"n":{"d":{"df":2,"docs":{"112":{"tf":1.0},"40":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":5,"docs":{"111":{"tf":1.0},"12":{"tf":1.4142135623730951},"208":{"tf":1.0},"22":{"tf":1.0},"242":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"210":{"tf":1.0},"90":{"tf":1.0}}}}},"w":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"179":{"tf":1.0}}}}},"df":43,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"111":{"tf":1.4142135623730951},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"128":{"tf":2.0},"129":{"tf":1.0},"13":{"tf":1.0},"130":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"18":{"tf":1.7320508075688772},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":2.6457513110645907},"195":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"213":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.7320508075688772},"29":{"tf":1.0},"74":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"108":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951}},"n":{"df":5,"docs":{"117":{"tf":1.0},"121":{"tf":1.0},"42":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.4142135623730951}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":3,"docs":{"10":{"tf":1.0},"289":{"tf":2.0},"290":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":14,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"155":{"tf":1.0},"180":{"tf":1.0},"224":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"5":{"tf":1.0}},"j":{"df":2,"docs":{"20":{"tf":1.0},"238":{"tf":1.4142135623730951}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":8,"docs":{"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":2,"docs":{"112":{"tf":1.0},"288":{"tf":1.0}}}}},"t":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":13,"docs":{"132":{"tf":1.4142135623730951},"175":{"tf":1.7320508075688772},"182":{"tf":2.449489742783178},"184":{"tf":2.8284271247461903},"190":{"tf":1.4142135623730951},"191":{"tf":1.4142135623730951},"199":{"tf":1.0},"200":{"tf":1.0},"220":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.4142135623730951},"33":{"tf":1.4142135623730951},"51":{"tf":1.0}},"j":{"df":1,"docs":{"200":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":7,"docs":{"141":{"tf":1.0},"152":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"184":{"tf":1.0},"59":{"tf":1.0},"79":{"tf":1.0}},"e":{"df":4,"docs":{"103":{"tf":1.0},"4":{"tf":1.0},"48":{"tf":1.0},"60":{"tf":1.0}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"121":{"tf":1.0}}}}}}}}}}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"152":{"tf":1.0},"163":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"213":{"tf":1.0},"222":{"tf":2.449489742783178}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"156":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"129":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":14,"docs":{"100":{"tf":1.0},"142":{"tf":1.0},"143":{"tf":1.0},"152":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"245":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0}}},"i":{"c":{"df":4,"docs":{"112":{"tf":1.0},"154":{"tf":1.0},"29":{"tf":1.0},"52":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"201":{"tf":1.0},"250":{"tf":1.0},"282":{"tf":1.4142135623730951}},"i":{"df":1,"docs":{"111":{"tf":1.0}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"w":{"df":25,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"118":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.4142135623730951},"152":{"tf":2.0},"154":{"tf":2.0},"159":{"tf":1.0},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"236":{"tf":1.0},"245":{"tf":1.0},"263":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"79":{"tf":1.0}}}},"p":{"df":0,"docs":{},"m":{"df":2,"docs":{"238":{"tf":1.0},"272":{"tf":1.4142135623730951}}}},"s":{"#":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":3,"docs":{"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0}}},"u":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"190":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"42":{"tf":1.0}}}},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"0":{"tf":1.0},"114":{"tf":1.0},"142":{"tf":1.0},"216":{"tf":1.7320508075688772},"250":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"29":{"tf":1.0},"39":{"tf":1.0},"52":{"tf":1.0},"56":{"tf":1.0},"62":{"tf":1.0},"68":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":3,"docs":{"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.7320508075688772}}}}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"199":{"tf":1.0}}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{".":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"186":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":25,"docs":{"115":{"tf":1.0},"117":{"tf":1.7320508075688772},"131":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.0},"179":{"tf":1.0},"182":{"tf":1.4142135623730951},"184":{"tf":1.0},"186":{"tf":1.0},"196":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"26":{"tf":1.0},"29":{"tf":1.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.4142135623730951},"42":{"tf":1.7320508075688772},"51":{"tf":1.0},"56":{"tf":1.0},"95":{"tf":1.0},"97":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"252":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}}},"c":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":3,"docs":{"111":{"tf":1.0},"180":{"tf":1.0},"28":{"tf":1.0}}}}},"df":0,"docs":{}},"d":{"d":{"df":1,"docs":{"121":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"129":{"tf":1.0}},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":8,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"132":{"tf":1.0},"183":{"tf":1.4142135623730951},"194":{"tf":1.0},"218":{"tf":1.0},"247":{"tf":2.8284271247461903},"76":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"61":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"209":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}}}}},"i":{"d":{"c":{"df":2,"docs":{"197":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"k":{"df":3,"docs":{"118":{"tf":1.0},"223":{"tf":1.0},"45":{"tf":1.0}}},"l":{"d":{"df":3,"docs":{"12":{"tf":1.0},"128":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}},"n":{"c":{"df":5,"docs":{"112":{"tf":1.0},"162":{"tf":1.0},"262":{"tf":1.0},"28":{"tf":1.0},"289":{"tf":1.0}}},"df":56,"docs":{"103":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":2.0},"119":{"tf":1.7320508075688772},"12":{"tf":1.0},"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"127":{"tf":1.0},"14":{"tf":1.0},"140":{"tf":1.4142135623730951},"144":{"tf":1.0},"146":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.4142135623730951},"17":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.4142135623730951},"237":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"248":{"tf":1.4142135623730951},"261":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.7320508075688772},"33":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"74":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.4142135623730951},"89":{"tf":1.0}},"g":{"df":0,"docs":{},"o":{"df":1,"docs":{"39":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":6,"docs":{"193":{"tf":1.0},"209":{"tf":1.0},"254":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.7320508075688772},"39":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"a":{".":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":2,"docs":{"177":{"tf":1.0},"287":{"tf":1.0}}}}},"df":3,"docs":{"13":{"tf":1.0},"176":{"tf":1.0},"181":{"tf":1.0}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":11,"docs":{"126":{"tf":1.0},"14":{"tf":1.0},"160":{"tf":2.6457513110645907},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"186":{"tf":1.4142135623730951},"190":{"tf":1.0},"199":{"tf":1.4142135623730951},"20":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"p":{"df":2,"docs":{"129":{"tf":1.0},"131":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":3,"docs":{"139":{"tf":1.0},"14":{"tf":1.0},"18":{"tf":1.0}}}}},"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"v":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}}}}}}}}},"df":37,"docs":{"108":{"tf":1.0},"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.4142135623730951},"17":{"tf":1.0},"183":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.7320508075688772},"233":{"tf":1.4142135623730951},"235":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"240":{"tf":1.0},"247":{"tf":1.7320508075688772},"248":{"tf":1.0},"26":{"tf":1.4142135623730951},"260":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"272":{"tf":1.0},"281":{"tf":1.0},"290":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"r":{"df":3,"docs":{"129":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"190":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":2,"docs":{"23":{"tf":1.0},"248":{"tf":1.0}}},"o":{"df":0,"docs":{},"n":{"df":20,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"220":{"tf":1.0},"248":{"tf":1.0},"271":{"tf":1.4142135623730951},"46":{"tf":1.0},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"60":{"tf":1.4142135623730951},"74":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0}}}}}}},"r":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":14,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.0},"139":{"tf":1.0},"180":{"tf":1.4142135623730951},"187":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"246":{"tf":1.0},"270":{"tf":1.4142135623730951},"5":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"93":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":5,"docs":{"0":{"tf":1.0},"231":{"tf":1.0},"244":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"289":{"tf":1.0}}}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":9,"docs":{"111":{"tf":1.0},"131":{"tf":1.0},"14":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"205":{"tf":1.0},"249":{"tf":1.0},"95":{"tf":1.0}}}}}},"m":{"df":3,"docs":{"186":{"tf":1.0},"26":{"tf":1.0},"58":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":13,"docs":{"106":{"tf":1.0},"15":{"tf":1.0},"159":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"234":{"tf":1.0},"25":{"tf":1.0},"261":{"tf":1.0},"265":{"tf":1.0},"3":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951}}}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"13":{"tf":1.0}}}}}}},"t":{"df":14,"docs":{"117":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.7320508075688772},"162":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.4142135623730951},"169":{"tf":1.4142135623730951},"19":{"tf":1.0},"195":{"tf":1.0},"203":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"240":{"tf":1.0},"60":{"tf":1.4142135623730951}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"22":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":1,"docs":{"250":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":17,"docs":{"0":{"tf":1.4142135623730951},"118":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"152":{"tf":1.0},"17":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"209":{"tf":1.0},"226":{"tf":2.0},"244":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"256":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.4142135623730951},"97":{"tf":1.0}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":25,"docs":{"0":{"tf":1.4142135623730951},"1":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"21":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"270":{"tf":1.0},"3":{"tf":1.0},"4":{"tf":1.0},"5":{"tf":1.0},"6":{"tf":1.4142135623730951},"7":{"tf":1.0},"8":{"tf":1.0},"9":{"tf":1.0}}}}}},"w":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"139":{"tf":1.0}}}}}}}}},"w":{"df":0,"docs":{},"l":{"df":4,"docs":{"124":{"tf":1.0},"190":{"tf":1.0},"199":{"tf":1.7320508075688772},"78":{"tf":1.7320508075688772}}},"n":{"df":1,"docs":{"90":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"108":{"tf":1.0},"181":{"tf":1.0},"247":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"232":{"tf":1.0},"241":{"tf":1.0},"26":{"tf":1.0}}}}}}}}}}},"p":{"2":{"df":0,"docs":{},"p":{"df":2,"docs":{"111":{"tf":1.0},"132":{"tf":1.0}}}},"a":{"c":{"df":0,"docs":{},"k":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"268":{"tf":1.4142135623730951},"269":{"tf":1.4142135623730951},"271":{"tf":1.0}}}},"df":2,"docs":{"240":{"tf":1.0},"250":{"tf":1.0}}}},"df":1,"docs":{"124":{"tf":1.7320508075688772}},"g":{"df":0,"docs":{},"e":{"_":{"df":0,"docs":{},"s":{"df":1,"docs":{"142":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":0,"docs":{},"e":{"=":{"2":{"df":1,"docs":{"143":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":62,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"132":{"tf":1.0},"138":{"tf":1.0},"139":{"tf":1.0},"141":{"tf":1.0},"142":{"tf":2.23606797749979},"143":{"tf":1.4142135623730951},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":2.0},"155":{"tf":1.4142135623730951},"164":{"tf":1.0},"169":{"tf":1.0},"174":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"201":{"tf":1.0},"206":{"tf":1.0},"212":{"tf":1.0},"224":{"tf":1.0},"23":{"tf":1.0},"231":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.4142135623730951},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"245":{"tf":1.0},"247":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"285":{"tf":1.0},"288":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"34":{"tf":1.0},"36":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0},"5":{"tf":1.0},"53":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0},"72":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.0},"92":{"tf":1.0}}},"i":{"df":0,"docs":{},"n":{"df":11,"docs":{"0":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"81":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":2,"docs":{"152":{"tf":1.0},"254":{"tf":1.0}}}}},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":3,"docs":{"121":{"tf":1.0},"170":{"tf":1.0},"174":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":1,"docs":{"66":{"tf":1.0}}}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"m":{"df":2,"docs":{"108":{"tf":1.0},"143":{"tf":1.0}},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"114":{"tf":1.0},"139":{"tf":1.4142135623730951},"143":{"tf":2.23606797749979},"146":{"tf":1.0},"46":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":12,"docs":{"103":{"tf":1.0},"109":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.7320508075688772},"154":{"tf":1.0},"198":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"88":{"tf":2.0},"89":{"tf":1.4142135623730951},"90":{"tf":1.4142135623730951}}}}},"s":{"df":10,"docs":{"118":{"tf":1.0},"128":{"tf":1.0},"177":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"244":{"tf":1.0},"280":{"tf":1.0},"39":{"tf":1.0},"59":{"tf":2.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"206":{"tf":1.0},"41":{"tf":2.0}}}}},"t":{"df":37,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"13":{"tf":1.4142135623730951},"142":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"216":{"tf":1.0},"223":{"tf":1.0},"249":{"tf":1.4142135623730951},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"256":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"81":{"tf":1.7320508075688772}},"i":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"13":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.0},"227":{"tf":1.0}}}},"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"254":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":1,"docs":{"256":{"tf":1.0}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"103":{"tf":1.0},"143":{"tf":1.4142135623730951},"93":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{}}}}},"t":{"df":4,"docs":{"13":{"tf":1.0},"152":{"tf":1.0},"20":{"tf":1.0},"251":{"tf":1.0}}}},"t":{":":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"126":{"tf":1.0}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"p":{"d":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}}}},"c":{"df":0,"docs":{},"h":{"_":{"1":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":9,"docs":{"110":{"tf":1.0},"120":{"tf":1.0},"123":{"tf":1.7320508075688772},"124":{"tf":1.0},"127":{"tf":1.7320508075688772},"129":{"tf":2.0},"131":{"tf":1.7320508075688772},"132":{"tf":1.0},"195":{"tf":1.4142135623730951}},"r":{"df":1,"docs":{"126":{"tf":1.4142135623730951}}}}},"df":2,"docs":{"126":{"tf":1.0},"288":{"tf":1.0}},"h":{"df":23,"docs":{"0":{"tf":1.0},"131":{"tf":2.0},"16":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":2.449489742783178},"199":{"tf":1.0},"229":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"40":{"tf":1.4142135623730951},"44":{"tf":1.0},"47":{"tf":2.0},"49":{"tf":2.6457513110645907},"50":{"tf":2.0},"51":{"tf":2.0},"52":{"tf":2.0},"53":{"tf":1.0},"7":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":3,"docs":{"276":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0}}}}}}},"y":{"df":1,"docs":{"181":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"247":{"tf":1.0},"252":{"tf":1.4142135623730951},"270":{"tf":1.0}}}}}}}},"df":5,"docs":{"129":{"tf":1.0},"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"209":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"0":{"tf":1.0},"12":{"tf":2.0},"121":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"156":{"tf":1.4142135623730951},"159":{"tf":1.0},"16":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"234":{"tf":1.4142135623730951},"247":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0}},"e":{"1":{"2":{"3":{".":{"\"":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"76":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"r":{"df":4,"docs":{"100":{"tf":1.4142135623730951},"142":{"tf":1.7320508075688772},"198":{"tf":1.0},"289":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"246":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"185":{"tf":1.0},"228":{"tf":1.0},"72":{"tf":1.0}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":25,"docs":{"118":{"tf":1.4142135623730951},"121":{"tf":1.0},"128":{"tf":1.0},"13":{"tf":1.0},"139":{"tf":1.4142135623730951},"140":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"198":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"213":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"234":{"tf":1.7320508075688772},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"76":{"tf":1.0},"79":{"tf":1.0},"87":{"tf":1.0}}}}}},"h":{"a":{"df":0,"docs":{},"p":{"df":8,"docs":{"129":{"tf":1.0},"130":{"tf":1.0},"163":{"tf":1.0},"189":{"tf":1.0},"252":{"tf":1.4142135623730951},"283":{"tf":1.0},"31":{"tf":1.0},"74":{"tf":1.0}}}},"df":0,"docs":{}},"k":{"df":2,"docs":{"181":{"tf":1.0},"202":{"tf":1.0}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"n":{"df":1,"docs":{"276":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":5,"docs":{"145":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"263":{"tf":1.0},"282":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":8,"docs":{"112":{"tf":1.4142135623730951},"118":{"tf":1.0},"119":{"tf":1.0},"143":{"tf":1.7320508075688772},"146":{"tf":1.0},"195":{"tf":1.4142135623730951},"222":{"tf":1.0},"23":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":1,"docs":{"210":{"tf":1.0}}},"df":20,"docs":{"10":{"tf":1.0},"12":{"tf":1.4142135623730951},"130":{"tf":2.0},"132":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"193":{"tf":1.7320508075688772},"210":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":3.0},"248":{"tf":1.7320508075688772},"25":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":2.0},"254":{"tf":2.0},"260":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"29":{"tf":2.23606797749979}}}}}},"h":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"208":{"tf":1.0}}}}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":2,"docs":{"100":{"tf":1.0},"247":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"163":{"tf":1.0},"241":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":9,"docs":{"0":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"252":{"tf":1.7320508075688772},"256":{"tf":1.0},"26":{"tf":1.0},"266":{"tf":2.0},"29":{"tf":1.4142135623730951},"55":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"a":{"c":{"df":0,"docs":{},"e":{"df":7,"docs":{"117":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"20":{"tf":1.0},"241":{"tf":1.4142135623730951},"252":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":3,"docs":{"203":{"tf":2.449489742783178},"22":{"tf":1.0},"263":{"tf":1.0}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"136":{"tf":1.0}}}}}}}},"n":{"df":1,"docs":{"77":{"tf":1.0}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"121":{"tf":1.0},"13":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":3.872983346207417}}}}}}},"y":{"b":{"a":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"195":{"tf":1.0},"26":{"tf":1.0},"290":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":3,"docs":{"5":{"tf":1.0},"61":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"u":{"df":2,"docs":{"154":{"tf":1.0},"208":{"tf":1.0}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":4,"docs":{"18":{"tf":1.0},"20":{"tf":1.4142135623730951},"239":{"tf":1.0},"267":{"tf":1.0}}}}}}},"o":{"d":{"df":3,"docs":{"193":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"200":{"tf":1.0}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":17,"docs":{"106":{"tf":1.0},"108":{"tf":1.0},"111":{"tf":1.0},"157":{"tf":1.0},"184":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"195":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"249":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"47":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"131":{"tf":1.0},"252":{"tf":1.4142135623730951}}}}}}},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"239":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"p":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":5,"docs":{"121":{"tf":1.0},"17":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"227":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"52":{"tf":1.0}}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}}},"i":{"b":{"df":0,"docs":{},"l":{"df":31,"docs":{"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"160":{"tf":1.0},"17":{"tf":2.0},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"206":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"22":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"40":{"tf":1.0},"48":{"tf":1.0},"50":{"tf":1.0},"57":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"df":7,"docs":{"115":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":1.0},"162":{"tf":1.0},"195":{"tf":1.7320508075688772},"240":{"tf":1.0},"289":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":42,"docs":{"10":{"tf":1.0},"199":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":1.0},"239":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":24,"docs":{"130":{"tf":1.4142135623730951},"133":{"tf":1.0},"142":{"tf":1.0},"151":{"tf":2.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.4142135623730951},"195":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.7320508075688772},"218":{"tf":1.0},"220":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.7320508075688772},"267":{"tf":1.0},"275":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"48":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"c":{"df":8,"docs":{"18":{"tf":1.0},"182":{"tf":1.0},"192":{"tf":1.0},"195":{"tf":1.0},"204":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":4,"docs":{"120":{"tf":1.0},"20":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}},"e":{"c":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"76":{"tf":1.0}}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"i":{"c":{"df":19,"docs":{"132":{"tf":1.0},"172":{"tf":1.4142135623730951},"175":{"tf":2.0},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.23606797749979},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.449489742783178},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.0},"196":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0}},"t":{"df":3,"docs":{"242":{"tf":1.0},"248":{"tf":1.0},"55":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"251":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"178":{"tf":1.0},"265":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":1.0}}}},"i":{"df":0,"docs":{},"x":{"df":5,"docs":{"123":{"tf":1.0},"126":{"tf":3.0},"127":{"tf":2.0},"130":{"tf":1.4142135623730951},"186":{"tf":1.4142135623730951}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"176":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.4142135623730951},"141":{"tf":1.0},"144":{"tf":1.0},"177":{"tf":1.4142135623730951},"232":{"tf":1.0},"274":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}},"s":{"df":3,"docs":{"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"154":{"tf":2.0}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"106":{"tf":1.0},"186":{"tf":1.0},"19":{"tf":1.0},"232":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"162":{"tf":2.0},"173":{"tf":1.0},"184":{"tf":1.0},"199":{"tf":1.0},"223":{"tf":1.0},"252":{"tf":1.0},"97":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":4,"docs":{"151":{"tf":1.0},"235":{"tf":1.0},"262":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"o":{"df":0,"docs":{},"u":{"df":8,"docs":{"112":{"tf":1.0},"132":{"tf":1.0},"177":{"tf":1.0},"194":{"tf":1.0},"196":{"tf":1.0},"266":{"tf":1.0},"51":{"tf":1.0},"81":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"118":{"tf":1.4142135623730951}}}}}}}},"df":1,"docs":{"252":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"e":{"df":3,"docs":{"181":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":2.0}}}},"df":0,"docs":{},"n":{"c":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"16":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"276":{"tf":2.0}}}},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"254":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.0},"83":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"t":{"df":14,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"18":{"tf":1.0},"197":{"tf":1.4142135623730951},"20":{"tf":1.4142135623730951},"210":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"86":{"tf":1.0},"95":{"tf":1.0}},"e":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"102":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951}}}}}}}},"df":0,"docs":{}}},"o":{"b":{"a":{"b":{"df":0,"docs":{},"l":{"df":19,"docs":{"105":{"tf":1.4142135623730951},"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"166":{"tf":1.0},"176":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"191":{"tf":1.0},"210":{"tf":1.0},"23":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"30":{"tf":1.0},"5":{"tf":1.0},"76":{"tf":1.0},"86":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":11,"docs":{"121":{"tf":1.0},"13":{"tf":1.7320508075688772},"137":{"tf":1.0},"142":{"tf":1.0},"17":{"tf":1.0},"180":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"247":{"tf":1.0},"254":{"tf":1.0},"77":{"tf":1.4142135623730951}}}}}},"c":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"42":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":13,"docs":{"106":{"tf":1.0},"107":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.7320508075688772},"137":{"tf":1.0},"148":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.0},"254":{"tf":1.0},"280":{"tf":1.0},"42":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":8,"docs":{"162":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"234":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.4142135623730951},"268":{"tf":1.0},"271":{"tf":1.0}},"t":{"df":12,"docs":{"128":{"tf":1.0},"176":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"231":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":2.6457513110645907},"249":{"tf":2.0},"250":{"tf":2.0},"268":{"tf":1.4142135623730951},"270":{"tf":1.0},"271":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":7,"docs":{"114":{"tf":1.0},"127":{"tf":1.0},"163":{"tf":1.0},"241":{"tf":1.4142135623730951},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":1.0}},"e":{":":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"_":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}}},"i":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"g":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"m":{"df":4,"docs":{"139":{"tf":1.0},"185":{"tf":1.0},"200":{"tf":1.0},"288":{"tf":1.0}},"m":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}},"df":2,"docs":{"185":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"110":{"tf":1.0},"201":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0}}}}}}},"h":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":25,"docs":{"10":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"165":{"tf":1.4142135623730951},"166":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"170":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.4142135623730951},"219":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.4142135623730951},"240":{"tf":1.7320508075688772},"256":{"tf":1.0},"281":{"tf":1.0},"288":{"tf":1.4142135623730951},"4":{"tf":1.0},"9":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"e":{"df":2,"docs":{"110":{"tf":1.0},"112":{"tf":1.0}}}},"o":{"df":0,"docs":{},"f":{"df":6,"docs":{"111":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"208":{"tf":1.0},"256":{"tf":1.0},"94":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"241":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":6,"docs":{"13":{"tf":1.0},"167":{"tf":1.4142135623730951},"17":{"tf":1.0},"18":{"tf":1.0},"247":{"tf":1.0},"266":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":79,"docs":{"0":{"tf":2.0},"114":{"tf":1.0},"118":{"tf":1.7320508075688772},"139":{"tf":2.23606797749979},"14":{"tf":1.7320508075688772},"140":{"tf":1.4142135623730951},"142":{"tf":2.449489742783178},"143":{"tf":2.449489742783178},"148":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":2.0},"172":{"tf":1.7320508075688772},"174":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.7320508075688772},"179":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"182":{"tf":1.0},"183":{"tf":1.0},"185":{"tf":1.4142135623730951},"186":{"tf":2.23606797749979},"190":{"tf":1.0},"191":{"tf":2.23606797749979},"192":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"196":{"tf":1.7320508075688772},"199":{"tf":1.0},"20":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.7320508075688772},"205":{"tf":1.0},"206":{"tf":1.0},"209":{"tf":1.7320508075688772},"213":{"tf":1.7320508075688772},"214":{"tf":2.0},"215":{"tf":2.23606797749979},"219":{"tf":1.7320508075688772},"22":{"tf":1.4142135623730951},"222":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":2.449489742783178},"229":{"tf":1.7320508075688772},"230":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.4142135623730951},"261":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":3.605551275463989},"31":{"tf":2.8284271247461903},"32":{"tf":1.0},"33":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":2.0},"44":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"54":{"tf":1.7320508075688772},"55":{"tf":1.4142135623730951},"56":{"tf":2.8284271247461903},"57":{"tf":1.0},"58":{"tf":3.3166247903554},"59":{"tf":1.0},"60":{"tf":2.449489742783178},"74":{"tf":1.7320508075688772},"75":{"tf":1.4142135623730951},"76":{"tf":3.3166247903554},"79":{"tf":1.4142135623730951},"80":{"tf":1.0}}},"y":{"df":0,"docs":{},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"u":{"df":1,"docs":{"219":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"s":{"df":2,"docs":{"18":{"tf":1.0},"54":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"199":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":11,"docs":{"120":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"136":{"tf":1.0},"14":{"tf":1.0},"168":{"tf":1.4142135623730951},"173":{"tf":1.4142135623730951},"197":{"tf":1.0},"208":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"v":{":":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"d":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}},"w":{"a":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"126":{"tf":1.0}}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"d":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"126":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}},"df":1,"docs":{"126":{"tf":1.0}},"e":{"df":7,"docs":{"114":{"tf":1.0},"132":{"tf":1.0},"256":{"tf":1.7320508075688772},"82":{"tf":1.0},"91":{"tf":1.0},"94":{"tf":1.0},"96":{"tf":1.0}}},"i":{"d":{"df":33,"docs":{"0":{"tf":1.7320508075688772},"108":{"tf":1.4142135623730951},"121":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"159":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.7320508075688772},"193":{"tf":1.4142135623730951},"205":{"tf":1.0},"22":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"247":{"tf":1.7320508075688772},"249":{"tf":1.0},"252":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.4142135623730951},"288":{"tf":1.7320508075688772},"29":{"tf":1.0},"30":{"tf":1.4142135623730951},"46":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"95":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"/":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":1,"docs":{"111":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"103":{"tf":1.0}}}},"df":15,"docs":{"0":{"tf":1.0},"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"105":{"tf":1.4142135623730951},"109":{"tf":1.0},"115":{"tf":1.0},"117":{"tf":1.0},"17":{"tf":1.0},"197":{"tf":1.0},"258":{"tf":1.0},"56":{"tf":1.4142135623730951},"81":{"tf":1.0},"92":{"tf":1.0},"95":{"tf":1.0}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":4,"docs":{"114":{"tf":1.0},"118":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"148":{"tf":1.0},"17":{"tf":1.0},"194":{"tf":1.0},"31":{"tf":1.0},"85":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":7,"docs":{"148":{"tf":1.4142135623730951},"155":{"tf":1.0},"156":{"tf":1.4142135623730951},"157":{"tf":1.0},"162":{"tf":1.0},"18":{"tf":1.0},"250":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"114":{"tf":1.0},"18":{"tf":1.0}}}},"t":{"df":5,"docs":{"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0}}}},"y":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}}}}}},"q":{"1":{"df":1,"docs":{"20":{"tf":1.4142135623730951}}},"2":{"df":1,"docs":{"20":{"tf":1.0}}},"4":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{},"r":{"df":2,"docs":{"268":{"tf":1.0},"269":{"tf":1.0}}},"u":{"a":{"d":{"df":1,"docs":{"128":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"148":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.0},"260":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":36,"docs":{"0":{"tf":1.0},"108":{"tf":1.0},"112":{"tf":1.4142135623730951},"114":{"tf":1.0},"12":{"tf":1.0},"130":{"tf":1.4142135623730951},"142":{"tf":1.4142135623730951},"143":{"tf":2.449489742783178},"146":{"tf":1.0},"18":{"tf":1.7320508075688772},"189":{"tf":1.0},"195":{"tf":1.4142135623730951},"214":{"tf":1.0},"218":{"tf":3.0},"220":{"tf":1.4142135623730951},"224":{"tf":1.7320508075688772},"226":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":2.23606797749979},"235":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":2.449489742783178},"248":{"tf":1.4142135623730951},"249":{"tf":1.0},"252":{"tf":1.4142135623730951},"254":{"tf":2.0},"262":{"tf":1.4142135623730951},"276":{"tf":1.0},"30":{"tf":1.0},"44":{"tf":2.23606797749979},"45":{"tf":1.0},"46":{"tf":1.7320508075688772},"47":{"tf":1.0},"48":{"tf":1.7320508075688772},"7":{"tf":1.0},"81":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":7,"docs":{"190":{"tf":1.0},"242":{"tf":1.0},"245":{"tf":1.7320508075688772},"251":{"tf":1.7320508075688772},"252":{"tf":2.0},"253":{"tf":2.8284271247461903},"269":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":1,"docs":{"251":{"tf":1.0}}}}},"df":0,"docs":{}}}}}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"190":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"152":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"112":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0}}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"t":{"df":10,"docs":{"127":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"155":{"tf":1.0},"176":{"tf":1.0},"19":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"241":{"tf":1.0}}}},"x":{"df":1,"docs":{"131":{"tf":1.0}}}}},"r":{"a":{"b":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"200":{"tf":1.0}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"109":{"tf":1.0},"208":{"tf":1.0}}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"194":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"17":{"tf":1.0}}}},"w":{"df":1,"docs":{"249":{"tf":1.0}}},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"'":{"df":1,"docs":{"179":{"tf":1.0}}},"/":{"df":0,"docs":{},"j":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"129":{"tf":1.0}}}}}},"x":{"df":0,"docs":{},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0}}}}}},":":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"df":51,"docs":{"0":{"tf":1.7320508075688772},"10":{"tf":1.0},"120":{"tf":1.4142135623730951},"122":{"tf":1.7320508075688772},"123":{"tf":1.0},"124":{"tf":2.6457513110645907},"125":{"tf":1.0},"126":{"tf":2.0},"127":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":2.8284271247461903},"132":{"tf":2.0},"151":{"tf":1.0},"172":{"tf":2.0},"175":{"tf":2.6457513110645907},"176":{"tf":2.0},"177":{"tf":3.3166247903554},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"180":{"tf":2.449489742783178},"181":{"tf":3.0},"182":{"tf":2.23606797749979},"183":{"tf":1.4142135623730951},"184":{"tf":1.7320508075688772},"185":{"tf":1.4142135623730951},"186":{"tf":1.7320508075688772},"187":{"tf":1.4142135623730951},"188":{"tf":2.0},"189":{"tf":1.4142135623730951},"190":{"tf":2.449489742783178},"191":{"tf":2.0},"192":{"tf":3.1622776601683795},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":2.8284271247461903},"200":{"tf":1.4142135623730951},"205":{"tf":1.7320508075688772},"211":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"26":{"tf":1.0},"263":{"tf":1.0},"274":{"tf":1.0},"283":{"tf":1.0},"288":{"tf":1.4142135623730951},"29":{"tf":1.4142135623730951},"32":{"tf":1.0},"38":{"tf":2.8284271247461903},"48":{"tf":1.7320508075688772},"51":{"tf":1.0},"78":{"tf":2.6457513110645907}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"169":{"tf":1.4142135623730951},"248":{"tf":1.0},"4":{"tf":1.0}}},"t":{"df":13,"docs":{"10":{"tf":1.0},"15":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.7320508075688772},"232":{"tf":1.0},"235":{"tf":1.4142135623730951},"238":{"tf":1.7320508075688772},"240":{"tf":2.0},"264":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}}}},"d":{"a":{"b":{"df":0,"docs":{},"l":{"df":17,"docs":{"0":{"tf":1.0},"14":{"tf":1.7320508075688772},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"242":{"tf":1.0},"248":{"tf":1.0},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"60":{"tf":1.0},"81":{"tf":1.0}}}},"df":0,"docs":{}},"df":38,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"134":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"151":{"tf":1.0},"156":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.4142135623730951},"211":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"247":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.0},"43":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"5":{"tf":2.0},"57":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":2.0},"90":{"tf":1.4142135623730951},"93":{"tf":1.0}},"m":{"df":2,"docs":{"152":{"tf":1.4142135623730951},"237":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":7,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"133":{"tf":1.0},"18":{"tf":1.0},"240":{"tf":1.4142135623730951},"267":{"tf":1.0},"81":{"tf":1.0}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"17":{"tf":1.0},"269":{"tf":1.0}}}},"z":{"df":1,"docs":{"241":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":3,"docs":{"12":{"tf":1.4142135623730951},"14":{"tf":1.0},"177":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"226":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":8,"docs":{"105":{"tf":1.0},"12":{"tf":1.0},"178":{"tf":1.0},"180":{"tf":1.0},"190":{"tf":1.7320508075688772},"199":{"tf":1.0},"209":{"tf":1.0},"270":{"tf":1.0}}}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":4,"docs":{"118":{"tf":1.0},"135":{"tf":1.4142135623730951},"248":{"tf":1.0},"254":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"242":{"tf":1.0},"245":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"160":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"243":{"tf":1.0}}},"z":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":5,"docs":{"154":{"tf":1.4142135623730951},"159":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951}}},"df":0,"docs":{}}}}}}},"d":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":1,"docs":{"195":{"tf":1.0}}}},"df":23,"docs":{"0":{"tf":1.0},"107":{"tf":1.0},"14":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"156":{"tf":1.0},"17":{"tf":1.0},"181":{"tf":1.7320508075688772},"194":{"tf":1.0},"20":{"tf":1.0},"209":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"22":{"tf":1.0},"226":{"tf":1.4142135623730951},"228":{"tf":1.0},"232":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"251":{"tf":1.4142135623730951},"252":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.0},"56":{"tf":1.0}},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":9,"docs":{"146":{"tf":1.0},"151":{"tf":1.0},"163":{"tf":1.0},"188":{"tf":1.0},"191":{"tf":1.4142135623730951},"197":{"tf":1.0},"272":{"tf":1.0},"5":{"tf":1.0},"74":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"216":{"tf":1.0},"28":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"g":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"234":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"62":{"tf":1.0}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}},"r":{"df":3,"docs":{"107":{"tf":1.4142135623730951},"20":{"tf":1.0},"39":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"204":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"228":{"tf":1.0}}},"df":0,"docs":{}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"170":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"177":{"tf":1.0},"202":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":1.0},"211":{"tf":1.0},"225":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"58":{"tf":1.0},"78":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":8,"docs":{"163":{"tf":1.4142135623730951},"228":{"tf":2.449489742783178},"266":{"tf":1.0},"33":{"tf":1.0},"50":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0},"79":{"tf":1.0}}}}}}}}}}},"df":5,"docs":{"160":{"tf":1.0},"176":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"s":{"df":4,"docs":{"152":{"tf":2.0},"19":{"tf":1.0},"20":{"tf":1.0},"289":{"tf":1.0}}}},"df":0,"docs":{},"v":{"df":8,"docs":{"163":{"tf":1.0},"18":{"tf":1.0},"244":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.0},"260":{"tf":1.0},"289":{"tf":1.0},"45":{"tf":1.0}}}},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":9,"docs":{"0":{"tf":1.0},"13":{"tf":1.0},"194":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.4142135623730951},"244":{"tf":1.0},"245":{"tf":1.0},"256":{"tf":1.0},"269":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":2,"docs":{"175":{"tf":1.0},"215":{"tf":1.0}}},"o":{"a":{"d":{"df":1,"docs":{"235":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"m":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"77":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"v":{"df":14,"docs":{"110":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.4142135623730951},"13":{"tf":1.0},"131":{"tf":1.0},"195":{"tf":1.0},"210":{"tf":1.0},"252":{"tf":1.0},"276":{"tf":1.7320508075688772},"29":{"tf":1.0},"55":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"139":{"tf":1.0},"159":{"tf":1.0},"177":{"tf":1.4142135623730951},"264":{"tf":1.0},"31":{"tf":1.0},"41":{"tf":1.0},"87":{"tf":1.0}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":4,"docs":{"131":{"tf":1.0},"184":{"tf":1.4142135623730951},"249":{"tf":1.0},"49":{"tf":1.0}}},"df":0,"docs":{},"y":{"df":2,"docs":{"195":{"tf":1.0},"22":{"tf":1.0}}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"210":{"tf":1.0}}},"df":2,"docs":{"146":{"tf":1.0},"195":{"tf":1.0}}}},"o":{"df":1,"docs":{"92":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":12,"docs":{"103":{"tf":1.0},"121":{"tf":1.7320508075688772},"125":{"tf":1.0},"144":{"tf":1.0},"154":{"tf":1.0},"180":{"tf":1.0},"203":{"tf":1.0},"269":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}}}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":31,"docs":{"100":{"tf":2.23606797749979},"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.4142135623730951},"105":{"tf":1.0},"108":{"tf":1.0},"115":{"tf":1.0},"126":{"tf":1.0},"134":{"tf":1.4142135623730951},"136":{"tf":1.4142135623730951},"146":{"tf":1.7320508075688772},"147":{"tf":1.4142135623730951},"151":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"197":{"tf":1.0},"199":{"tf":1.0},"218":{"tf":1.4142135623730951},"254":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0},"274":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.4142135623730951},"82":{"tf":1.0},"92":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":2.0},"96":{"tf":1.0}},"e":{"d":{"df":0,"docs":{},"s":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"95":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}},"i":{"df":0,"docs":{},"r":{"df":53,"docs":{"101":{"tf":1.0},"107":{"tf":1.0},"114":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.4142135623730951},"121":{"tf":1.0},"14":{"tf":1.0},"154":{"tf":2.0},"156":{"tf":1.0},"159":{"tf":1.0},"162":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":1.4142135623730951},"180":{"tf":1.0},"181":{"tf":1.0},"183":{"tf":2.23606797749979},"185":{"tf":1.4142135623730951},"186":{"tf":1.0},"189":{"tf":1.4142135623730951},"191":{"tf":1.0},"196":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"215":{"tf":1.0},"22":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.7320508075688772},"259":{"tf":1.0},"260":{"tf":1.4142135623730951},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"268":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"59":{"tf":2.0},"60":{"tf":2.23606797749979},"76":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"90":{"tf":1.0},"94":{"tf":1.4142135623730951}}}}}},"s":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"251":{"tf":1.7320508075688772},"254":{"tf":2.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"179":{"tf":1.0},"198":{"tf":1.0},"29":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"v":{"df":1,"docs":{"114":{"tf":1.0}}}}},"i":{"d":{"df":1,"docs":{"18":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"83":{"tf":1.0}}}},"z":{"df":1,"docs":{"236":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":23,"docs":{"105":{"tf":1.0},"117":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.7320508075688772},"190":{"tf":1.0},"191":{"tf":1.7320508075688772},"199":{"tf":1.0},"204":{"tf":1.7320508075688772},"206":{"tf":1.4142135623730951},"216":{"tf":1.0},"29":{"tf":1.0},"30":{"tf":1.0},"31":{"tf":1.0},"39":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"63":{"tf":1.0},"85":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":105,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"103":{"tf":1.4142135623730951},"104":{"tf":1.0},"108":{"tf":2.449489742783178},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"114":{"tf":2.8284271247461903},"117":{"tf":1.0},"118":{"tf":2.23606797749979},"119":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":2.449489742783178},"139":{"tf":1.7320508075688772},"140":{"tf":2.449489742783178},"142":{"tf":1.7320508075688772},"143":{"tf":1.0},"146":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":2.0},"157":{"tf":2.0},"159":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":2.0},"165":{"tf":1.0},"166":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":2.23606797749979},"177":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"181":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"195":{"tf":1.4142135623730951},"198":{"tf":1.0},"204":{"tf":1.7320508075688772},"209":{"tf":2.23606797749979},"210":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.4142135623730951},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"229":{"tf":1.4142135623730951},"244":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.4142135623730951},"258":{"tf":1.4142135623730951},"261":{"tf":1.0},"264":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":2.23606797749979},"28":{"tf":2.6457513110645907},"29":{"tf":2.0},"30":{"tf":1.4142135623730951},"33":{"tf":1.0},"34":{"tf":2.0},"39":{"tf":3.605551275463989},"40":{"tf":3.4641016151377544},"42":{"tf":1.0},"44":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.4142135623730951},"49":{"tf":2.0},"50":{"tf":2.0},"51":{"tf":2.6457513110645907},"52":{"tf":1.0},"56":{"tf":2.0},"58":{"tf":1.0},"60":{"tf":2.0},"63":{"tf":1.0},"64":{"tf":1.0},"76":{"tf":2.449489742783178},"77":{"tf":1.0},"79":{"tf":1.0},"80":{"tf":1.0},"81":{"tf":1.0},"84":{"tf":1.4142135623730951},"88":{"tf":2.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.7320508075688772},"92":{"tf":1.0},"93":{"tf":1.7320508075688772},"95":{"tf":2.6457513110645907},"96":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951},"99":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"159":{"tf":1.0},"175":{"tf":1.0}}},"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":8,"docs":{"114":{"tf":1.0},"192":{"tf":1.0},"206":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"60":{"tf":1.4142135623730951},"72":{"tf":1.4142135623730951},"76":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"118":{"tf":1.0},"193":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"n":{"d":{"df":8,"docs":{"108":{"tf":1.0},"115":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"274":{"tf":1.0},"45":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":16,"docs":{"0":{"tf":1.0},"102":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.0},"200":{"tf":1.4142135623730951},"218":{"tf":1.0},"234":{"tf":1.0},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"252":{"tf":2.449489742783178},"253":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":4,"docs":{"226":{"tf":1.0},"229":{"tf":1.7320508075688772},"25":{"tf":1.0},"30":{"tf":1.0}},"r":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":18,"docs":{"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"131":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.4142135623730951},"154":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"190":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"226":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.4142135623730951},"252":{"tf":1.0},"266":{"tf":1.0},"276":{"tf":1.0}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"180":{"tf":1.0}}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":6,"docs":{"175":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"215":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":12,"docs":{"103":{"tf":1.0},"108":{"tf":1.0},"136":{"tf":1.0},"137":{"tf":1.0},"167":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"204":{"tf":1.0},"218":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"76":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"s":{"df":2,"docs":{"213":{"tf":1.0},"260":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"u":{"df":1,"docs":{"12":{"tf":1.0}}}},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"226":{"tf":1.0}}},"t":{"df":1,"docs":{"223":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"c":{"df":1,"docs":{"258":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":1,"docs":{"258":{"tf":1.4142135623730951}}}}}},"f":{"c":{"8":{"7":{"8":{"5":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"h":{"df":3,"docs":{"15":{"tf":1.4142135623730951},"240":{"tf":1.0},"252":{"tf":1.0}}}},"d":{"df":1,"docs":{"166":{"tf":1.0}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":26,"docs":{"0":{"tf":1.0},"103":{"tf":1.0},"108":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"118":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"145":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"18":{"tf":1.0},"198":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"44":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"86":{"tf":1.7320508075688772},"88":{"tf":1.0},"89":{"tf":2.449489742783178},"90":{"tf":1.0},"92":{"tf":2.0}}}}},"s":{"df":0,"docs":{},"k":{"df":2,"docs":{"105":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":6,"docs":{"16":{"tf":1.7320508075688772},"17":{"tf":1.0},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.7320508075688772},"6":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"r":{"df":1,"docs":{"199":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"231":{"tf":1.0}}}},"o":{"df":0,"docs":{},"t":{"df":5,"docs":{"117":{"tf":1.0},"152":{"tf":1.4142135623730951},"161":{"tf":1.0},"39":{"tf":1.4142135623730951},"42":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"w":{"df":5,"docs":{"214":{"tf":2.0},"216":{"tf":1.0},"219":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":1.0}}}},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"288":{"tf":1.0}}}},"i":{"df":2,"docs":{"127":{"tf":1.0},"200":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":12,"docs":{"112":{"tf":1.0},"12":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":2.6457513110645907},"18":{"tf":1.0},"182":{"tf":1.0},"2":{"tf":1.4142135623730951},"235":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"53":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":7,"docs":{"142":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"92":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":11,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"200":{"tf":1.0},"235":{"tf":1.0},"272":{"tf":1.0},"280":{"tf":1.4142135623730951},"39":{"tf":1.0},"41":{"tf":1.0}}}}}},"s":{"a":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":7,"docs":{"0":{"tf":1.0},"148":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"194":{"tf":1.4142135623730951},"26":{"tf":1.0},"84":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":11,"docs":{"0":{"tf":1.7320508075688772},"14":{"tf":1.0},"151":{"tf":1.0},"189":{"tf":1.4142135623730951},"193":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"230":{"tf":1.4142135623730951},"250":{"tf":1.4142135623730951},"31":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"e":{"df":18,"docs":{"117":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":2.0},"22":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"253":{"tf":1.0},"265":{"tf":1.4142135623730951},"266":{"tf":1.0},"271":{"tf":1.0},"275":{"tf":1.0},"59":{"tf":1.0},"88":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"d":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"12":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":3,"docs":{"154":{"tf":1.4142135623730951},"235":{"tf":1.0},"251":{"tf":1.4142135623730951}}}},"w":{"df":1,"docs":{"234":{"tf":1.0}}}},"c":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"23":{"tf":1.0}}}},"n":{"df":1,"docs":{"269":{"tf":1.7320508075688772}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":3,"docs":{"121":{"tf":1.0},"140":{"tf":1.0},"268":{"tf":1.0}}}}}},"df":0,"docs":{}}},"h":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"z":{"df":1,"docs":{"199":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"#":{"df":0,"docs":{},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"124":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"f":{"df":1,"docs":{"124":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},".":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":2,"docs":{"181":{"tf":2.23606797749979},"185":{"tf":1.0}}}}}},":":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"d":{"df":1,"docs":{"177":{"tf":2.449489742783178}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"r":{"df":1,"docs":{"185":{"tf":1.7320508075688772}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"127":{"tf":1.0}}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":1,"docs":{"127":{"tf":1.0}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}},"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"d":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}}}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.0}}},"df":0,"docs":{}}}}}}}},"df":64,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"14":{"tf":1.4142135623730951},"144":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"175":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.7320508075688772},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":2.449489742783178},"198":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":2.8284271247461903},"22":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"226":{"tf":1.0},"23":{"tf":1.4142135623730951},"230":{"tf":1.7320508075688772},"247":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"253":{"tf":1.0},"257":{"tf":1.4142135623730951},"259":{"tf":2.0},"260":{"tf":1.0},"261":{"tf":1.4142135623730951},"264":{"tf":1.0},"267":{"tf":1.0},"33":{"tf":1.0},"54":{"tf":2.23606797749979},"55":{"tf":2.0},"56":{"tf":1.4142135623730951},"57":{"tf":1.7320508075688772},"58":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.0},"61":{"tf":1.7320508075688772},"62":{"tf":1.0},"63":{"tf":1.0},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"7":{"tf":1.0},"70":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"73":{"tf":1.7320508075688772},"74":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":2.6457513110645907},"79":{"tf":1.7320508075688772},"80":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":2,"docs":{"208":{"tf":1.0},"42":{"tf":1.0}}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"211":{"tf":1.0}}}},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"266":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":6,"docs":{"12":{"tf":1.0},"152":{"tf":1.7320508075688772},"154":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":1.0}}}}}}},"df":2,"docs":{"129":{"tf":1.0},"90":{"tf":1.7320508075688772}},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":17,"docs":{"112":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"154":{"tf":1.0},"157":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.4142135623730951},"235":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":2.6457513110645907},"261":{"tf":1.0},"262":{"tf":2.0},"269":{"tf":1.0},"275":{"tf":1.0},"277":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"d":{"df":6,"docs":{"118":{"tf":1.0},"234":{"tf":1.0},"31":{"tf":1.0},"49":{"tf":1.4142135623730951},"65":{"tf":1.0},"95":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"257":{"tf":1.0}}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"56":{"tf":1.0},"84":{"tf":1.7320508075688772},"92":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":11,"docs":{"1":{"tf":1.0},"112":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"180":{"tf":1.0},"225":{"tf":1.0},"232":{"tf":1.4142135623730951},"238":{"tf":1.0},"38":{"tf":1.0},"51":{"tf":1.0},"54":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"r":{"df":9,"docs":{"100":{"tf":1.0},"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"134":{"tf":1.0},"83":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":26,"docs":{"102":{"tf":1.0},"105":{"tf":1.7320508075688772},"112":{"tf":1.0},"118":{"tf":1.0},"135":{"tf":1.0},"148":{"tf":1.0},"152":{"tf":1.0},"157":{"tf":1.0},"180":{"tf":1.4142135623730951},"19":{"tf":1.0},"196":{"tf":1.0},"219":{"tf":1.0},"236":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"250":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.4142135623730951},"270":{"tf":1.0},"282":{"tf":1.0},"30":{"tf":1.0},"55":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"91":{"tf":1.0},"95":{"tf":1.0}},"m":{"df":5,"docs":{"129":{"tf":1.0},"178":{"tf":1.0},"19":{"tf":1.0},"211":{"tf":1.0},"29":{"tf":1.0}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"208":{"tf":1.0}}}}}}}},"n":{"df":2,"docs":{"180":{"tf":1.0},"199":{"tf":1.0}}}},"g":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"218":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"132":{"tf":1.0},"139":{"tf":1.0},"154":{"tf":1.0},"177":{"tf":3.1622776601683795},"178":{"tf":1.0},"180":{"tf":1.0},"243":{"tf":1.0}},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"177":{"tf":1.0}}}}}},"df":0,"docs":{}},"f":{"df":4,"docs":{"22":{"tf":1.0},"256":{"tf":1.4142135623730951},"55":{"tf":1.0},"94":{"tf":1.0}}},"l":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":13,"docs":{"0":{"tf":1.0},"13":{"tf":1.4142135623730951},"14":{"tf":1.0},"166":{"tf":1.0},"178":{"tf":2.449489742783178},"190":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":2.0},"22":{"tf":1.0},"252":{"tf":1.4142135623730951},"26":{"tf":1.4142135623730951},"58":{"tf":1.4142135623730951},"79":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":20,"docs":{"101":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"108":{"tf":1.0},"134":{"tf":1.0},"140":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"151":{"tf":1.0},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"218":{"tf":1.0},"248":{"tf":1.0},"251":{"tf":1.0},"254":{"tf":1.4142135623730951},"258":{"tf":1.0},"289":{"tf":1.0},"39":{"tf":1.0},"45":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":3,"docs":{"121":{"tf":1.0},"242":{"tf":1.0},"252":{"tf":1.0}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"112":{"tf":1.0}}}}},"t":{"df":3,"docs":{"115":{"tf":1.0},"116":{"tf":1.0},"136":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"0":{"tf":1.0},"175":{"tf":1.4142135623730951},"186":{"tf":1.0},"213":{"tf":1.0},"265":{"tf":1.0},"92":{"tf":1.0}}}},"df":0,"docs":{}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"13":{"tf":1.0},"205":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"72":{"tf":1.0}}}}}}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":58,"docs":{"0":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.0},"116":{"tf":1.4142135623730951},"117":{"tf":2.449489742783178},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.4142135623730951},"129":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"149":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"192":{"tf":2.23606797749979},"199":{"tf":1.4142135623730951},"200":{"tf":1.0},"202":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"250":{"tf":1.0},"260":{"tf":1.0},"274":{"tf":1.4142135623730951},"280":{"tf":1.0},"29":{"tf":1.0},"34":{"tf":1.0},"35":{"tf":2.23606797749979},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":2.449489742783178},"39":{"tf":2.23606797749979},"41":{"tf":1.7320508075688772},"42":{"tf":1.4142135623730951},"48":{"tf":1.0},"59":{"tf":1.4142135623730951},"69":{"tf":1.4142135623730951},"7":{"tf":1.0},"72":{"tf":1.0},"95":{"tf":1.4142135623730951},"97":{"tf":1.0},"98":{"tf":1.4142135623730951}},"i":{"df":0,"docs":{},"z":{"df":5,"docs":{"172":{"tf":1.0},"193":{"tf":1.0},"196":{"tf":1.4142135623730951},"25":{"tf":1.0},"37":{"tf":1.0}}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"250":{"tf":1.0}}}}},"v":{"df":4,"docs":{"151":{"tf":1.0},"165":{"tf":1.4142135623730951},"171":{"tf":1.0},"219":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"'":{"df":2,"docs":{"146":{"tf":1.4142135623730951},"152":{"tf":1.0}}},"df":90,"docs":{"1":{"tf":1.0},"103":{"tf":2.449489742783178},"105":{"tf":1.4142135623730951},"108":{"tf":1.0},"115":{"tf":1.4142135623730951},"116":{"tf":1.7320508075688772},"118":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.7320508075688772},"133":{"tf":1.4142135623730951},"134":{"tf":1.4142135623730951},"135":{"tf":2.0},"136":{"tf":1.7320508075688772},"138":{"tf":1.0},"139":{"tf":2.0},"140":{"tf":1.7320508075688772},"142":{"tf":1.0},"146":{"tf":2.0},"147":{"tf":1.0},"149":{"tf":1.0},"15":{"tf":1.0},"150":{"tf":2.23606797749979},"151":{"tf":2.6457513110645907},"152":{"tf":3.3166247903554},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.4142135623730951},"157":{"tf":2.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"195":{"tf":1.7320508075688772},"2":{"tf":1.4142135623730951},"20":{"tf":2.0},"200":{"tf":2.6457513110645907},"204":{"tf":1.0},"210":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"217":{"tf":2.6457513110645907},"219":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.4142135623730951},"224":{"tf":1.4142135623730951},"225":{"tf":1.0},"226":{"tf":1.7320508075688772},"227":{"tf":1.4142135623730951},"233":{"tf":1.4142135623730951},"235":{"tf":2.6457513110645907},"237":{"tf":2.0},"238":{"tf":1.0},"239":{"tf":1.0},"241":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"251":{"tf":1.4142135623730951},"260":{"tf":1.4142135623730951},"261":{"tf":2.0},"262":{"tf":2.0},"263":{"tf":2.449489742783178},"264":{"tf":1.7320508075688772},"267":{"tf":1.4142135623730951},"271":{"tf":1.7320508075688772},"272":{"tf":1.4142135623730951},"274":{"tf":2.0},"275":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"290":{"tf":1.0},"45":{"tf":1.4142135623730951},"50":{"tf":1.0},"77":{"tf":1.4142135623730951},"79":{"tf":1.7320508075688772},"85":{"tf":1.4142135623730951},"86":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.4142135623730951},"99":{"tf":1.0}}}},"i":{"c":{"df":10,"docs":{"0":{"tf":1.0},"12":{"tf":1.4142135623730951},"149":{"tf":1.0},"176":{"tf":1.0},"241":{"tf":1.4142135623730951},"246":{"tf":1.0},"247":{"tf":2.449489742783178},"254":{"tf":1.0},"30":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"135":{"tf":1.0},"95":{"tf":1.0}}}}}}},"t":{"df":38,"docs":{"0":{"tf":1.7320508075688772},"102":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":2.0},"118":{"tf":1.0},"135":{"tf":1.0},"139":{"tf":1.0},"140":{"tf":1.0},"142":{"tf":1.4142135623730951},"143":{"tf":1.0},"145":{"tf":1.0},"152":{"tf":1.0},"158":{"tf":1.4142135623730951},"173":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.4142135623730951},"191":{"tf":1.0},"199":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"237":{"tf":1.4142135623730951},"26":{"tf":1.0},"260":{"tf":1.0},"271":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"281":{"tf":1.0},"45":{"tf":1.0},"56":{"tf":1.4142135623730951},"60":{"tf":1.0},"62":{"tf":1.0},"75":{"tf":1.0},"82":{"tf":1.0},"92":{"tf":1.0},"94":{"tf":1.0},"97":{"tf":2.0}},"u":{"df":0,"docs":{},"p":{"df":4,"docs":{"152":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.0},"261":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"14":{"tf":1.0},"164":{"tf":1.4142135623730951},"247":{"tf":1.0},"33":{"tf":1.0},"60":{"tf":1.4142135623730951}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":5,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"60":{"tf":1.0},"78":{"tf":2.0}}}},"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":12,"docs":{"159":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"194":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"215":{"tf":1.0},"218":{"tf":1.4142135623730951},"222":{"tf":1.0},"261":{"tf":1.0},"54":{"tf":1.0},"56":{"tf":1.0},"60":{"tf":1.0}}}},"r":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":39,"docs":{"0":{"tf":1.0},"106":{"tf":1.4142135623730951},"107":{"tf":1.4142135623730951},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"16":{"tf":1.0},"169":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"200":{"tf":1.0},"212":{"tf":1.4142135623730951},"213":{"tf":1.0},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"235":{"tf":1.4142135623730951},"247":{"tf":2.0},"25":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.4142135623730951},"254":{"tf":1.0},"265":{"tf":1.0},"276":{"tf":1.0},"28":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"290":{"tf":1.4142135623730951},"8":{"tf":1.0},"86":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":6,"docs":{"177":{"tf":1.0},"189":{"tf":2.23606797749979},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"78":{"tf":2.0}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"249":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"e":{"df":1,"docs":{"248":{"tf":1.4142135623730951}}},"p":{"df":3,"docs":{"190":{"tf":1.0},"269":{"tf":1.0},"270":{"tf":2.0}}},"r":{"df":0,"docs":{},"t":{"df":11,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"162":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.4142135623730951},"196":{"tf":1.0},"252":{"tf":1.4142135623730951},"56":{"tf":1.7320508075688772},"60":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0}},"h":{"a":{"df":0,"docs":{},"n":{"d":{"df":3,"docs":{"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"177":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":18,"docs":{"0":{"tf":1.0},"143":{"tf":1.0},"154":{"tf":1.0},"183":{"tf":1.0},"186":{"tf":1.7320508075688772},"191":{"tf":1.4142135623730951},"196":{"tf":1.0},"203":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"49":{"tf":1.7320508075688772},"50":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.7320508075688772},"60":{"tf":1.7320508075688772},"76":{"tf":2.8284271247461903}}}},"df":0,"docs":{}}}},"w":{"df":12,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"152":{"tf":1.4142135623730951},"193":{"tf":1.0},"241":{"tf":1.0},"248":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"269":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"86":{"tf":1.0}},"n":{"df":5,"docs":{"154":{"tf":1.0},"175":{"tf":1.0},"242":{"tf":1.0},"270":{"tf":1.0},"271":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":12,"docs":{"102":{"tf":1.0},"105":{"tf":1.0},"139":{"tf":1.7320508075688772},"142":{"tf":1.0},"17":{"tf":1.0},"171":{"tf":1.0},"177":{"tf":1.0},"218":{"tf":1.4142135623730951},"234":{"tf":1.0},"254":{"tf":1.7320508075688772},"275":{"tf":1.0},"5":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":19,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.0},"103":{"tf":1.0},"114":{"tf":1.7320508075688772},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":2.8284271247461903},"118":{"tf":1.4142135623730951},"119":{"tf":1.4142135623730951},"132":{"tf":1.0},"135":{"tf":1.0},"195":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"42":{"tf":1.0},"56":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.4142135623730951}}}}}},"df":31,"docs":{"0":{"tf":1.0},"100":{"tf":2.0},"102":{"tf":2.23606797749979},"103":{"tf":1.0},"105":{"tf":1.0},"114":{"tf":1.4142135623730951},"117":{"tf":1.4142135623730951},"119":{"tf":1.0},"121":{"tf":1.0},"134":{"tf":1.0},"146":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"229":{"tf":1.0},"240":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.4142135623730951},"282":{"tf":1.0},"289":{"tf":1.0},"67":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"93":{"tf":1.7320508075688772},"94":{"tf":1.0},"95":{"tf":1.7320508075688772},"96":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"114":{"tf":1.0},"258":{"tf":2.0}}}},"t":{"df":0,"docs":{},"o":{"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"(":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":24,"docs":{"0":{"tf":1.0},"124":{"tf":1.0},"129":{"tf":1.4142135623730951},"136":{"tf":1.0},"170":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"193":{"tf":1.4142135623730951},"197":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"205":{"tf":1.0},"213":{"tf":1.0},"214":{"tf":1.0},"224":{"tf":1.0},"226":{"tf":1.0},"252":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"98":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"df":18,"docs":{"106":{"tf":1.0},"128":{"tf":1.0},"131":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"186":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.4142135623730951},"195":{"tf":1.0},"202":{"tf":1.0},"208":{"tf":1.4142135623730951},"284":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.7320508075688772},"44":{"tf":1.0},"46":{"tf":1.0},"50":{"tf":1.0},"87":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"132":{"tf":1.0},"181":{"tf":1.0},"228":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"45":{"tf":1.0},"49":{"tf":1.0}}}}},"i":{"c":{"df":3,"docs":{"128":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":1.0}}},"df":15,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"153":{"tf":1.0},"161":{"tf":1.0},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"182":{"tf":1.0},"189":{"tf":1.4142135623730951},"190":{"tf":1.0},"226":{"tf":1.0},"51":{"tf":1.0},"55":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":2,"docs":{"17":{"tf":1.0},"18":{"tf":1.0}}}},"df":0,"docs":{}}}}},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"l":{"df":37,"docs":{"100":{"tf":1.0},"107":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"117":{"tf":1.0},"132":{"tf":1.4142135623730951},"157":{"tf":1.4142135623730951},"175":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"182":{"tf":1.0},"185":{"tf":1.0},"203":{"tf":1.0},"214":{"tf":1.0},"218":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"49":{"tf":1.0},"60":{"tf":1.4142135623730951},"69":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0},"80":{"tf":1.0},"84":{"tf":1.4142135623730951},"93":{"tf":1.0},"95":{"tf":1.0}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"154":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":1,"docs":{"193":{"tf":1.0}}},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"185":{"tf":1.0},"246":{"tf":1.0}}}},"df":0,"docs":{}}},"z":{"df":0,"docs":{},"e":{"df":3,"docs":{"143":{"tf":1.0},"248":{"tf":1.7320508075688772},"87":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":3,"docs":{"118":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0}}}}},"l":{"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"222":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"w":{"df":3,"docs":{"13":{"tf":1.0},"224":{"tf":1.0},"94":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":6,"docs":{"162":{"tf":1.0},"186":{"tf":1.4142135623730951},"205":{"tf":1.0},"58":{"tf":1.0},"60":{"tf":1.0},"62":{"tf":1.4142135623730951}}}}},"m":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"199":{"tf":1.0},"247":{"tf":1.0},"29":{"tf":2.23606797749979}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"193":{"tf":1.0},"246":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"29":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"12":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"a":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"288":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"n":{"a":{"df":0,"docs":{},"p":{"c":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"o":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"190":{"tf":1.0},"22":{"tf":1.0},"282":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":29,"docs":{"10":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.4142135623730951},"121":{"tf":1.0},"13":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"204":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.4142135623730951},"252":{"tf":1.0},"272":{"tf":2.0},"273":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.0},"278":{"tf":1.0},"279":{"tf":1.0},"280":{"tf":1.0},"281":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.0},"284":{"tf":1.0},"285":{"tf":1.0},"53":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"'":{"df":1,"docs":{"197":{"tf":1.0}}},":":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"123":{"tf":1.0}}}}}}}},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"123":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"123":{"tf":1.0}}}}}}},"df":12,"docs":{"10":{"tf":1.0},"123":{"tf":1.4142135623730951},"173":{"tf":1.0},"193":{"tf":3.1622776601683795},"194":{"tf":2.0},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":2.449489742783178},"200":{"tf":3.0},"201":{"tf":2.0}}},"df":0,"docs":{}},"r":{"d":{"df":1,"docs":{"263":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":0,"docs":{},"t":{"df":6,"docs":{"163":{"tf":1.0},"181":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"213":{"tf":1.0},"77":{"tf":1.0}}}},"v":{"df":12,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"17":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"196":{"tf":1.0},"199":{"tf":1.0},"234":{"tf":1.0},"254":{"tf":1.0}}}},"m":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{".":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{".":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"186":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"6":{"4":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":1,"docs":{"102":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":4,"docs":{"156":{"tf":1.0},"162":{"tf":1.0},"181":{"tf":1.0},"85":{"tf":1.0}},"e":{"'":{"df":2,"docs":{"177":{"tf":1.0},"259":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":0,"docs":{},"h":{"df":28,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"112":{"tf":1.0},"115":{"tf":1.0},"120":{"tf":1.0},"136":{"tf":1.4142135623730951},"141":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"182":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.7320508075688772},"216":{"tf":1.0},"246":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"51":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"93":{"tf":1.0},"99":{"tf":1.0}}},"i":{"df":0,"docs":{},"m":{"df":8,"docs":{"184":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"254":{"tf":1.0},"258":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"87":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"105":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":7,"docs":{"156":{"tf":1.0},"157":{"tf":1.0},"181":{"tf":1.0},"194":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.0},"79":{"tf":1.4142135623730951}}}}}}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"142":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"t":{"_":{"b":{"df":0,"docs":{},"i":{"df":1,"docs":{"142":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"c":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":25,"docs":{"0":{"tf":1.0},"117":{"tf":1.0},"12":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":2.0},"143":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"218":{"tf":1.0},"224":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.0},"262":{"tf":1.0},"275":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.4142135623730951},"76":{"tf":1.4142135623730951},"8":{"tf":1.0},"81":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"49":{"tf":1.0}}},"df":0,"docs":{}},"r":{"c":{"df":32,"docs":{"111":{"tf":1.0},"112":{"tf":2.23606797749979},"118":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.4142135623730951},"167":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"183":{"tf":1.0},"195":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"215":{"tf":1.0},"226":{"tf":1.4142135623730951},"227":{"tf":1.7320508075688772},"233":{"tf":1.4142135623730951},"235":{"tf":1.0},"239":{"tf":1.4142135623730951},"240":{"tf":1.0},"248":{"tf":1.0},"26":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"272":{"tf":1.0},"283":{"tf":1.0},"44":{"tf":1.0},"50":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":2,"docs":{"256":{"tf":1.4142135623730951},"94":{"tf":1.0}}}}}}}}},"y":{"df":1,"docs":{"270":{"tf":1.0}}}},"p":{"a":{"c":{"df":0,"docs":{},"e":{"b":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"51":{"tf":1.0}}}},"df":0,"docs":{}},"df":2,"docs":{"117":{"tf":1.0},"42":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":4,"docs":{"130":{"tf":2.0},"199":{"tf":1.4142135623730951},"44":{"tf":1.0},"48":{"tf":2.449489742783178}}}}}},"df":0,"docs":{},"e":{"c":{"df":19,"docs":{"112":{"tf":1.0},"123":{"tf":1.0},"125":{"tf":1.0},"13":{"tf":1.0},"131":{"tf":1.0},"139":{"tf":1.0},"151":{"tf":1.0},"165":{"tf":2.23606797749979},"17":{"tf":1.4142135623730951},"18":{"tf":1.0},"188":{"tf":1.0},"194":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"20":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0},"72":{"tf":1.0},"81":{"tf":1.0}},"i":{"a":{"df":0,"docs":{},"l":{"df":7,"docs":{"124":{"tf":1.0},"176":{"tf":1.0},"258":{"tf":1.0},"288":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"90":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":55,"docs":{"0":{"tf":1.0},"100":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"122":{"tf":1.4142135623730951},"132":{"tf":1.4142135623730951},"14":{"tf":1.4142135623730951},"147":{"tf":1.0},"151":{"tf":1.4142135623730951},"16":{"tf":1.0},"17":{"tf":1.0},"173":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":2.23606797749979},"178":{"tf":1.0},"18":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"189":{"tf":1.4142135623730951},"19":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"199":{"tf":2.6457513110645907},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"201":{"tf":1.0},"222":{"tf":1.0},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"25":{"tf":1.7320508075688772},"250":{"tf":1.4142135623730951},"254":{"tf":2.0},"259":{"tf":1.4142135623730951},"264":{"tf":1.0},"265":{"tf":1.0},"272":{"tf":1.0},"289":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"44":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"7":{"tf":1.4142135623730951},"8":{"tf":1.4142135623730951},"81":{"tf":1.4142135623730951},"86":{"tf":1.0},"92":{"tf":1.4142135623730951}},"i":{"df":9,"docs":{"128":{"tf":1.0},"175":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.0},"195":{"tf":1.0},"228":{"tf":1.4142135623730951},"254":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"d":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}},"n":{"d":{"df":2,"docs":{"12":{"tf":1.0},"17":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"199":{"tf":1.7320508075688772}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"288":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"d":{"df":1,"docs":{"181":{"tf":1.0}},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":2,"docs":{"28":{"tf":1.0},"29":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"l":{"df":17,"docs":{"10":{"tf":1.0},"174":{"tf":1.4142135623730951},"194":{"tf":1.0},"213":{"tf":2.23606797749979},"214":{"tf":2.0},"215":{"tf":2.0},"216":{"tf":1.4142135623730951},"217":{"tf":1.4142135623730951},"218":{"tf":2.23606797749979},"219":{"tf":2.6457513110645907},"220":{"tf":2.0},"221":{"tf":1.0},"222":{"tf":2.23606797749979},"223":{"tf":1.0},"224":{"tf":1.0},"245":{"tf":1.0},"283":{"tf":1.0}}},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"z":{"df":1,"docs":{"235":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"197":{"tf":1.0}}},"i":{"df":1,"docs":{"255":{"tf":1.4142135623730951}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"19":{"tf":1.0},"20":{"tf":1.7320508075688772}}}},"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"d":{"df":1,"docs":{"14":{"tf":1.0}}},"df":0,"docs":{}}}}}},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":35,"docs":{"0":{"tf":1.0},"106":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.7320508075688772},"12":{"tf":2.449489742783178},"121":{"tf":1.4142135623730951},"14":{"tf":2.8284271247461903},"15":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.7320508075688772},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"199":{"tf":1.4142135623730951},"208":{"tf":1.0},"213":{"tf":1.0},"232":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":2.0},"249":{"tf":1.0},"251":{"tf":1.0},"252":{"tf":1.4142135623730951},"253":{"tf":1.7320508075688772},"257":{"tf":1.0},"259":{"tf":1.4142135623730951},"262":{"tf":1.0},"265":{"tf":1.4142135623730951},"268":{"tf":1.4142135623730951},"288":{"tf":1.0},"29":{"tf":1.0},"290":{"tf":1.0},"54":{"tf":1.0},"59":{"tf":1.0},"86":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"17":{"tf":1.0},"211":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"t":{"df":19,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"165":{"tf":1.0},"168":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"190":{"tf":1.0},"2":{"tf":1.0},"20":{"tf":1.4142135623730951},"241":{"tf":1.0},"266":{"tf":1.0},"271":{"tf":1.0},"279":{"tf":1.0},"284":{"tf":1.0},"290":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"248":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":16,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.4142135623730951},"120":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.4142135623730951},"13":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"188":{"tf":1.7320508075688772},"193":{"tf":1.0},"195":{"tf":2.0},"223":{"tf":1.0},"81":{"tf":1.0}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":7,"docs":{"175":{"tf":1.7320508075688772},"180":{"tf":1.7320508075688772},"181":{"tf":2.6457513110645907},"182":{"tf":1.4142135623730951},"191":{"tf":1.0},"192":{"tf":1.4142135623730951},"29":{"tf":1.0}}}}}}},"i":{"c":{"df":6,"docs":{"209":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.4142135623730951},"23":{"tf":1.0},"26":{"tf":1.0},"77":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":4,"docs":{"115":{"tf":1.0},"151":{"tf":1.0},"200":{"tf":1.0},"4":{"tf":1.4142135623730951}},"s":{".":{"df":0,"docs":{},"m":{"d":{"df":1,"docs":{"20":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"y":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"246":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"p":{"df":15,"docs":{"117":{"tf":1.4142135623730951},"118":{"tf":1.0},"152":{"tf":1.0},"16":{"tf":1.0},"160":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.4142135623730951},"248":{"tf":1.0},"249":{"tf":1.0},"264":{"tf":1.0},"42":{"tf":1.0},"91":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"17":{"tf":1.0}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":20,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"17":{"tf":1.0},"177":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.4142135623730951},"184":{"tf":1.0},"19":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.0},"213":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"263":{"tf":1.0},"267":{"tf":1.0},"51":{"tf":1.4142135623730951},"52":{"tf":1.0},"79":{"tf":1.0},"89":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}},"p":{"df":2,"docs":{"135":{"tf":1.0},"190":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"g":{"df":8,"docs":{"121":{"tf":1.4142135623730951},"152":{"tf":1.0},"166":{"tf":1.0},"2":{"tf":1.0},"208":{"tf":1.4142135623730951},"229":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}},"e":{":":{"/":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":4,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0}}}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":34,"docs":{"10":{"tf":1.0},"111":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"151":{"tf":1.0},"157":{"tf":1.0},"177":{"tf":1.4142135623730951},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"226":{"tf":1.0},"232":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":2.6457513110645907},"242":{"tf":1.0},"244":{"tf":1.0},"248":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":2.0},"260":{"tf":1.0},"280":{"tf":1.0},"38":{"tf":1.0},"41":{"tf":1.0},"79":{"tf":1.0},"84":{"tf":1.0},"96":{"tf":1.0},"97":{"tf":1.0}}},"i":{"df":1,"docs":{"17":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"i":{"df":1,"docs":{"239":{"tf":1.4142135623730951}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"16":{"tf":1.0}},"i":{"df":7,"docs":{"16":{"tf":1.7320508075688772},"17":{"tf":1.7320508075688772},"18":{"tf":1.0},"19":{"tf":1.0},"20":{"tf":1.0},"6":{"tf":1.0},"94":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"111":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"c":{"df":0,"docs":{},"t":{"df":12,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"15":{"tf":1.0},"172":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"195":{"tf":1.0},"205":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"38":{"tf":1.4142135623730951}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"148":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":36,"docs":{"0":{"tf":1.0},"101":{"tf":1.0},"105":{"tf":1.0},"117":{"tf":1.7320508075688772},"129":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"186":{"tf":1.7320508075688772},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"208":{"tf":1.0},"235":{"tf":1.0},"252":{"tf":1.0},"253":{"tf":1.0},"26":{"tf":1.0},"29":{"tf":2.0},"32":{"tf":1.0},"39":{"tf":1.4142135623730951},"40":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"59":{"tf":2.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"65":{"tf":2.0},"66":{"tf":1.0},"69":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.4142135623730951},"84":{"tf":1.4142135623730951},"95":{"tf":1.0},"97":{"tf":1.0}},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"59":{"tf":1.4142135623730951}}}}}}}}},"u":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"185":{"tf":1.0}},"u":{"df":0,"docs":{},"r":{"df":15,"docs":{"0":{"tf":1.0},"12":{"tf":1.0},"121":{"tf":1.0},"144":{"tf":1.0},"151":{"tf":1.4142135623730951},"157":{"tf":1.0},"18":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"247":{"tf":1.0},"249":{"tf":1.0},"39":{"tf":1.0},"81":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}}}}},"u":{"c":{"df":0,"docs":{},"k":{"df":1,"docs":{"240":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"265":{"tf":1.0},"266":{"tf":1.7320508075688772},"267":{"tf":1.0}}}}},"i":{"df":1,"docs":{"253":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":2,"docs":{"111":{"tf":1.0},"247":{"tf":1.4142135623730951}}}}},"y":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":2,"docs":{"234":{"tf":1.0},"58":{"tf":1.0}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":2,"docs":{"124":{"tf":1.0},"80":{"tf":1.4142135623730951}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"n":{"d":{"(":{"df":1,"docs":{"276":{"tf":1.0}}},"df":1,"docs":{"276":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"199":{"tf":1.0}}},"df":52,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.4142135623730951},"105":{"tf":1.0},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"118":{"tf":1.0},"132":{"tf":1.4142135623730951},"134":{"tf":1.0},"135":{"tf":2.23606797749979},"136":{"tf":1.0},"142":{"tf":1.4142135623730951},"172":{"tf":1.7320508075688772},"175":{"tf":2.449489742783178},"177":{"tf":2.6457513110645907},"178":{"tf":1.7320508075688772},"179":{"tf":1.4142135623730951},"180":{"tf":2.8284271247461903},"181":{"tf":3.605551275463989},"182":{"tf":1.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.7320508075688772},"196":{"tf":1.0},"199":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"218":{"tf":1.0},"219":{"tf":1.0},"268":{"tf":1.0},"28":{"tf":1.4142135623730951},"29":{"tf":2.449489742783178},"30":{"tf":2.8284271247461903},"32":{"tf":1.0},"33":{"tf":1.0},"34":{"tf":1.0},"39":{"tf":2.0},"40":{"tf":1.7320508075688772},"43":{"tf":1.0},"44":{"tf":1.7320508075688772},"45":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"56":{"tf":1.0},"58":{"tf":1.0},"76":{"tf":1.0},"77":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0},"89":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":6,"docs":{"111":{"tf":1.0},"135":{"tf":1.0},"136":{"tf":1.0},"250":{"tf":1.0},"289":{"tf":1.4142135623730951},"290":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":5,"docs":{"0":{"tf":1.0},"132":{"tf":1.0},"172":{"tf":1.0},"205":{"tf":1.0},"38":{"tf":1.0}}}}}},"c":{"c":{"df":0,"docs":{},"e":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"d":{"df":1,"docs":{"115":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"s":{"df":4,"docs":{"12":{"tf":1.0},"199":{"tf":1.0},"256":{"tf":1.0},"281":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":40,"docs":{"105":{"tf":1.0},"121":{"tf":1.0},"127":{"tf":1.4142135623730951},"139":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"174":{"tf":1.0},"18":{"tf":1.0},"184":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"199":{"tf":2.0},"20":{"tf":1.0},"205":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":1.0},"215":{"tf":1.0},"218":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"252":{"tf":1.0},"259":{"tf":1.0},"288":{"tf":1.4142135623730951},"289":{"tf":1.0},"38":{"tf":1.0},"40":{"tf":1.0},"45":{"tf":1.0},"46":{"tf":1.0},"49":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}}}},"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"168":{"tf":1.0},"181":{"tf":1.0},"243":{"tf":1.7320508075688772},"270":{"tf":1.0},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"257":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"12":{"tf":1.0}}}},"m":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"148":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"52":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.7320508075688772}},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"112":{"tf":1.4142135623730951},"248":{"tf":1.7320508075688772}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":30,"docs":{"112":{"tf":1.0},"132":{"tf":1.7320508075688772},"139":{"tf":1.0},"151":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"227":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"236":{"tf":1.4142135623730951},"239":{"tf":1.4142135623730951},"247":{"tf":1.0},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"48":{"tf":1.0},"55":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.4142135623730951}}}},"s":{"df":2,"docs":{"12":{"tf":1.0},"177":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"e":{"df":26,"docs":{"109":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.4142135623730951},"146":{"tf":1.0},"147":{"tf":1.0},"162":{"tf":1.0},"165":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"18":{"tf":1.0},"183":{"tf":1.0},"191":{"tf":1.4142135623730951},"203":{"tf":1.4142135623730951},"206":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"3":{"tf":1.0},"30":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.4142135623730951}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":6,"docs":{"10":{"tf":1.0},"232":{"tf":1.0},"251":{"tf":2.6457513110645907},"252":{"tf":3.3166247903554},"253":{"tf":1.4142135623730951},"254":{"tf":1.0}}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"(":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"20":{"tf":1.0}}}}}}}}}},"w":{"a":{"df":0,"docs":{},"g":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"14":{"tf":1.0},"18":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"n":{"c":{"df":2,"docs":{"112":{"tf":1.0},"240":{"tf":1.0}},"h":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":6,"docs":{"112":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"239":{"tf":1.0},"261":{"tf":1.0}}}}}}},"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"x":{"df":5,"docs":{"124":{"tf":1.4142135623730951},"126":{"tf":1.0},"127":{"tf":1.0},"58":{"tf":1.0},"66":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":29,"docs":{"0":{"tf":1.0},"112":{"tf":2.0},"121":{"tf":1.4142135623730951},"122":{"tf":1.4142135623730951},"151":{"tf":1.0},"166":{"tf":1.0},"177":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"183":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.0},"208":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":1.0},"222":{"tf":1.4142135623730951},"234":{"tf":1.0},"239":{"tf":1.0},"260":{"tf":1.0},"44":{"tf":1.0},"55":{"tf":1.0},"71":{"tf":1.0},"81":{"tf":1.0},"86":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"183":{"tf":1.0}}}}}}},"t":{"a":{"b":{"df":1,"docs":{"98":{"tf":1.0}},"l":{"df":13,"docs":{"151":{"tf":1.0},"20":{"tf":1.4142135623730951},"200":{"tf":1.0},"214":{"tf":2.449489742783178},"218":{"tf":1.4142135623730951},"219":{"tf":1.7320508075688772},"220":{"tf":1.0},"222":{"tf":1.0},"240":{"tf":1.0},"261":{"tf":1.0},"29":{"tf":1.4142135623730951},"5":{"tf":1.0},"6":{"tf":1.4142135623730951}}}},"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"l":{"df":1,"docs":{"13":{"tf":1.0}}}}},"df":0,"docs":{},"g":{"df":2,"docs":{"191":{"tf":1.0},"192":{"tf":1.0}}},"k":{"df":0,"docs":{},"e":{"df":16,"docs":{"100":{"tf":1.0},"109":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"143":{"tf":1.0},"144":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"183":{"tf":1.0},"194":{"tf":1.4142135623730951},"204":{"tf":1.0},"225":{"tf":1.0},"25":{"tf":1.0},"258":{"tf":1.0},"261":{"tf":1.0}}}},"l":{"df":0,"docs":{},"k":{"df":2,"docs":{"132":{"tf":1.0},"288":{"tf":1.0}}},"m":{"df":0,"docs":{},"u":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":1,"docs":{"18":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":6,"docs":{"108":{"tf":1.4142135623730951},"254":{"tf":1.7320508075688772},"44":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.0},"52":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"199":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":3,"docs":{"151":{"tf":1.0},"18":{"tf":1.0},"200":{"tf":1.0}}}}}},"c":{"df":1,"docs":{"124":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"266":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"266":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":1,"docs":{"86":{"tf":1.0}}}},"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"12":{"tf":1.4142135623730951}},"n":{"df":0,"docs":{},"i":{"c":{"df":6,"docs":{"17":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"232":{"tf":1.0},"247":{"tf":1.0},"288":{"tf":1.0}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":5,"docs":{"17":{"tf":1.0},"170":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"269":{"tf":1.0}}}}}}}}},"d":{"df":1,"docs":{"127":{"tf":1.7320508075688772}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"l":{"df":12,"docs":{"135":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"183":{"tf":1.0},"203":{"tf":1.4142135623730951},"251":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"56":{"tf":1.0},"58":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"208":{"tf":1.0}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"15":{"tf":1.0},"2":{"tf":1.0},"240":{"tf":1.0},"279":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"d":{"df":6,"docs":{"139":{"tf":1.0},"184":{"tf":1.0},"190":{"tf":1.0},"204":{"tf":1.0},"210":{"tf":1.0},"246":{"tf":1.0}}},"df":1,"docs":{"220":{"tf":1.0}}},"r":{"a":{"b":{"df":0,"docs":{},"y":{"df":0,"docs":{},"t":{"df":1,"docs":{"23":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":2,"docs":{"179":{"tf":1.4142135623730951},"33":{"tf":1.0}}}}}}}}}},"s":{"df":0,"docs":{},"t":{"df":6,"docs":{"117":{"tf":1.0},"151":{"tf":1.0},"220":{"tf":1.0},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0}}}},"x":{"df":0,"docs":{},"t":{"/":{"df":0,"docs":{},"l":{"d":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"48":{"tf":1.0}}}}}}}},"df":23,"docs":{"120":{"tf":1.0},"121":{"tf":1.4142135623730951},"151":{"tf":1.0},"18":{"tf":1.0},"195":{"tf":1.0},"200":{"tf":1.0},"203":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"245":{"tf":1.0},"248":{"tf":1.0},"261":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"277":{"tf":1.4142135623730951},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0},"62":{"tf":1.0}},"u":{"a":{"df":0,"docs":{},"l":{"df":6,"docs":{"203":{"tf":1.4142135623730951},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}}},"df":0,"docs":{}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":2,"docs":{"288":{"tf":1.4142135623730951},"31":{"tf":1.4142135623730951}}}},"t":{"'":{"df":13,"docs":{"12":{"tf":1.7320508075688772},"152":{"tf":1.0},"156":{"tf":1.4142135623730951},"166":{"tf":1.0},"181":{"tf":1.0},"188":{"tf":1.0},"19":{"tf":1.0},"194":{"tf":1.0},"202":{"tf":1.0},"247":{"tf":1.4142135623730951},"29":{"tf":1.0},"35":{"tf":1.0},"90":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":2,"docs":{"151":{"tf":1.0},"200":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":10,"docs":{"0":{"tf":1.0},"15":{"tf":1.0},"186":{"tf":1.0},"213":{"tf":1.0},"215":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0},"81":{"tf":1.0},"90":{"tf":1.0},"93":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"'":{"df":8,"docs":{"150":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.7320508075688772},"165":{"tf":1.0},"199":{"tf":1.0},"226":{"tf":1.0},"266":{"tf":1.0},"289":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":9,"docs":{"0":{"tf":1.0},"112":{"tf":1.0},"152":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"186":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0}}}}}}},"y":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"181":{"tf":1.0}}},"v":{"df":1,"docs":{"266":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{".":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"y":{".":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"58":{"tf":1.0}}}}}}}}}}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}}}},"df":54,"docs":{"107":{"tf":1.0},"114":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"137":{"tf":1.0},"15":{"tf":1.0},"153":{"tf":1.4142135623730951},"154":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"166":{"tf":1.4142135623730951},"177":{"tf":1.7320508075688772},"18":{"tf":1.0},"181":{"tf":2.449489742783178},"183":{"tf":1.7320508075688772},"184":{"tf":1.4142135623730951},"189":{"tf":1.0},"19":{"tf":1.0},"191":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.7320508075688772},"196":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.7320508075688772},"201":{"tf":1.7320508075688772},"204":{"tf":1.0},"208":{"tf":1.4142135623730951},"209":{"tf":1.0},"210":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"234":{"tf":1.0},"240":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.4142135623730951},"250":{"tf":1.0},"252":{"tf":1.0},"261":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"28":{"tf":1.0},"282":{"tf":1.0},"29":{"tf":1.7320508075688772},"290":{"tf":1.0},"56":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.4142135623730951}}},"k":{"df":18,"docs":{"118":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"163":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":2.0},"184":{"tf":1.0},"188":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"199":{"tf":1.4142135623730951},"225":{"tf":1.0},"242":{"tf":1.0},"253":{"tf":1.0},"266":{"tf":1.7320508075688772},"28":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"d":{"df":2,"docs":{"256":{"tf":1.0},"32":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"132":{"tf":1.0}}}}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"m":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"s":{"df":0,"docs":{},"e":{"df":3,"docs":{"15":{"tf":1.0},"175":{"tf":1.0},"247":{"tf":1.0}}}},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":4,"docs":{"219":{"tf":1.0},"241":{"tf":1.0},"249":{"tf":1.0},"48":{"tf":1.0}},"t":{"df":5,"docs":{"169":{"tf":1.0},"175":{"tf":1.0},"212":{"tf":1.4142135623730951},"288":{"tf":1.0},"290":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":7,"docs":{"1":{"tf":1.0},"149":{"tf":1.7320508075688772},"152":{"tf":1.0},"175":{"tf":1.0},"204":{"tf":1.0},"29":{"tf":1.4142135623730951},"56":{"tf":1.0}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":12,"docs":{"0":{"tf":1.0},"109":{"tf":1.0},"112":{"tf":1.0},"121":{"tf":1.0},"225":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"49":{"tf":1.0},"76":{"tf":1.0}}}}}}},"u":{"df":1,"docs":{"181":{"tf":1.0}}}},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"86":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"132":{"tf":1.0},"186":{"tf":1.0}}}}}}},"m":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"127":{"tf":1.0}}}},"df":4,"docs":{"12":{"tf":1.0},"127":{"tf":1.0},"193":{"tf":1.0},"288":{"tf":1.0}},"e":{"df":32,"docs":{"0":{"tf":1.4142135623730951},"100":{"tf":1.4142135623730951},"101":{"tf":1.0},"111":{"tf":1.0},"112":{"tf":1.0},"119":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"133":{"tf":1.0},"148":{"tf":1.0},"15":{"tf":2.0},"152":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"224":{"tf":1.4142135623730951},"228":{"tf":1.0},"240":{"tf":1.4142135623730951},"251":{"tf":1.4142135623730951},"258":{"tf":1.0},"266":{"tf":1.0},"267":{"tf":1.0},"288":{"tf":1.0},"65":{"tf":1.0},"70":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":1,"docs":{"102":{"tf":1.0}}}}}}}},"df":7,"docs":{"101":{"tf":1.4142135623730951},"102":{"tf":1.7320508075688772},"114":{"tf":1.0},"118":{"tf":1.0},"39":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":2.23606797749979}}}}},"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":1,"docs":{"102":{"tf":1.0}}}},"df":0,"docs":{}}}}},"o":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":1,"docs":{"127":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"l":{"df":2,"docs":{"129":{"tf":1.0},"247":{"tf":1.0}}}}},"o":{"d":{"a":{"df":0,"docs":{},"y":{"df":3,"docs":{"12":{"tf":1.0},"200":{"tf":1.0},"252":{"tf":1.0}}}},"df":0,"docs":{},"o":{"df":2,"docs":{"241":{"tf":1.0},"28":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":4,"docs":{"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"16":{"tf":1.0},"288":{"tf":1.0}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":4,"docs":{"105":{"tf":1.0},"106":{"tf":1.4142135623730951},"95":{"tf":1.0},"98":{"tf":2.23606797749979}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":9,"docs":{"133":{"tf":1.0},"138":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.4142135623730951},"284":{"tf":1.0},"41":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":7,"docs":{"238":{"tf":1.0},"240":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"279":{"tf":1.4142135623730951},"284":{"tf":1.0},"41":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"18":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"n":{"df":2,"docs":{"151":{"tf":1.0},"226":{"tf":1.0}},"n":{"df":1,"docs":{"248":{"tf":1.0}}}},"o":{"df":0,"docs":{},"k":{"df":2,"docs":{"13":{"tf":1.0},"16":{"tf":1.0}}},"l":{"df":17,"docs":{"121":{"tf":1.0},"13":{"tf":1.4142135623730951},"160":{"tf":1.0},"17":{"tf":1.0},"183":{"tf":1.0},"19":{"tf":1.4142135623730951},"191":{"tf":1.7320508075688772},"2":{"tf":1.7320508075688772},"20":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.23606797749979},"241":{"tf":1.0},"248":{"tf":1.0},"267":{"tf":1.4142135623730951},"276":{"tf":1.0},"281":{"tf":1.4142135623730951}}}},"p":{"df":5,"docs":{"0":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"195":{"tf":1.0},"90":{"tf":2.0}},"i":{"c":{"df":3,"docs":{"199":{"tf":1.0},"265":{"tf":1.7320508075688772},"266":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"a":{"df":0,"docs":{},"l":{"_":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"b":{"df":1,"docs":{"142":{"tf":1.0}}},"df":0,"docs":{}}}},"p":{"a":{"df":0,"docs":{},"g":{"df":1,"docs":{"142":{"tf":1.0}}}},"df":0,"docs":{}}},"df":1,"docs":{"50":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"a":{"df":0,"docs":{},"r":{"d":{"df":1,"docs":{"105":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"f":{"df":2,"docs":{"276":{"tf":1.0},"288":{"tf":1.0}}}},"r":{"a":{"c":{"df":0,"docs":{},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"111":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":1,"docs":{"249":{"tf":1.0}}},"k":{"df":7,"docs":{"112":{"tf":1.0},"121":{"tf":1.0},"18":{"tf":1.0},"181":{"tf":1.0},"184":{"tf":1.0},"20":{"tf":1.0},"248":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":4,"docs":{"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"234":{"tf":1.0}}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"193":{"tf":1.0},"229":{"tf":1.0}}},"n":{"df":3,"docs":{"242":{"tf":1.0},"244":{"tf":1.7320508075688772},"245":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":6,"docs":{"110":{"tf":1.0},"22":{"tf":1.0},"223":{"tf":2.23606797749979},"235":{"tf":1.0},"247":{"tf":1.0},"256":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.4142135623730951}}}}}},"l":{"a":{"df":0,"docs":{},"t":{"df":5,"docs":{"181":{"tf":2.449489742783178},"253":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.0},"55":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"x":{"df":5,"docs":{"191":{"tf":1.4142135623730951},"192":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.7320508075688772},"60":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":17,"docs":{"0":{"tf":1.0},"177":{"tf":1.0},"18":{"tf":1.0},"190":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.4142135623730951},"199":{"tf":1.0},"229":{"tf":1.0},"262":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"47":{"tf":1.0},"50":{"tf":1.0},"52":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}},"y":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":2,"docs":{"198":{"tf":1.0},"87":{"tf":1.0}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"183":{"tf":1.0}}},"df":0,"docs":{}}}}},"i":{"df":13,"docs":{"108":{"tf":1.0},"139":{"tf":1.0},"152":{"tf":1.0},"19":{"tf":1.0},"190":{"tf":1.0},"192":{"tf":1.0},"199":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.0},"282":{"tf":1.0},"53":{"tf":1.4142135623730951},"76":{"tf":1.0},"93":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":20,"docs":{"127":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.4142135623730951},"177":{"tf":2.0},"178":{"tf":2.0},"180":{"tf":1.0},"181":{"tf":2.0},"182":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":1.0},"191":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"29":{"tf":1.7320508075688772},"38":{"tf":1.4142135623730951},"44":{"tf":1.0},"46":{"tf":1.0}}}},"v":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"119":{"tf":1.0},"14":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.0},"192":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"df":0,"docs":{},"u":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"183":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"e":{"df":8,"docs":{"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"139":{"tf":1.0},"140":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"56":{"tf":1.0},"69":{"tf":1.7320508075688772}}},"l":{"df":0,"docs":{},"i":{"df":2,"docs":{"13":{"tf":1.4142135623730951},"176":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"112":{"tf":1.0},"118":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.0}},"w":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":2,"docs":{"112":{"tf":1.0},"269":{"tf":1.0}}}}}}}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.4142135623730951}}},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"280":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":11,"docs":{"114":{"tf":1.0},"116":{"tf":1.0},"148":{"tf":1.0},"172":{"tf":1.4142135623730951},"18":{"tf":1.4142135623730951},"189":{"tf":1.0},"20":{"tf":1.0},"253":{"tf":1.0},"267":{"tf":1.0},"29":{"tf":1.0},"74":{"tf":1.0}}},"t":{"df":0,"docs":{},"l":{"df":9,"docs":{"124":{"tf":1.0},"127":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.0},"172":{"tf":1.0},"192":{"tf":1.0},"200":{"tf":1.0},"22":{"tf":1.0},"38":{"tf":1.4142135623730951}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"157":{"tf":1.0},"189":{"tf":1.0},"241":{"tf":1.0},"289":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"e":{"df":2,"docs":{"181":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{}},"o":{"df":16,"docs":{"112":{"tf":1.0},"117":{"tf":1.0},"125":{"tf":1.0},"144":{"tf":1.0},"180":{"tf":1.0},"181":{"tf":1.7320508075688772},"201":{"tf":1.0},"228":{"tf":1.0},"240":{"tf":1.0},"242":{"tf":1.0},"26":{"tf":1.0},"265":{"tf":1.0},"29":{"tf":1.4142135623730951},"42":{"tf":1.0},"56":{"tf":1.0},"93":{"tf":1.0}}}},"x":{"df":1,"docs":{"124":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":45,"docs":{"0":{"tf":2.0},"12":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"151":{"tf":1.4142135623730951},"159":{"tf":1.0},"162":{"tf":1.0},"175":{"tf":1.4142135623730951},"18":{"tf":1.0},"183":{"tf":1.4142135623730951},"185":{"tf":1.0},"187":{"tf":1.4142135623730951},"189":{"tf":1.7320508075688772},"193":{"tf":1.0},"194":{"tf":1.7320508075688772},"20":{"tf":1.0},"200":{"tf":1.4142135623730951},"205":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.4142135623730951},"232":{"tf":1.0},"242":{"tf":1.0},"247":{"tf":1.0},"25":{"tf":1.4142135623730951},"254":{"tf":1.0},"26":{"tf":1.4142135623730951},"261":{"tf":1.0},"31":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.4142135623730951},"45":{"tf":2.0},"55":{"tf":1.4142135623730951},"58":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.0},"72":{"tf":1.0},"74":{"tf":1.0},"76":{"tf":1.0}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":12,"docs":{"117":{"tf":1.0},"138":{"tf":1.0},"147":{"tf":1.0},"18":{"tf":1.0},"2":{"tf":1.0},"235":{"tf":1.0},"238":{"tf":1.0},"272":{"tf":1.0},"279":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"56":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"i":{"c":{"df":4,"docs":{"136":{"tf":1.0},"210":{"tf":1.0},"218":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"247":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"121":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":4,"docs":{"14":{"tf":1.0},"157":{"tf":1.0},"246":{"tf":1.4142135623730951},"247":{"tf":1.0}}}}}},"m":{"df":0,"docs":{},"l":{"df":2,"docs":{"14":{"tf":1.0},"54":{"tf":1.0}}}},"n":{")":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"107":{"tf":1.0}}}}}}}},"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"14":{"tf":1.0}}}},"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"df":3,"docs":{"132":{"tf":1.0},"180":{"tf":1.0},"26":{"tf":1.0}}}}}},"df":0,"docs":{}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"m":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"199":{"tf":1.0}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"n":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"197":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":1,"docs":{"13":{"tf":1.0}}}},"r":{"df":4,"docs":{"154":{"tf":1.0},"164":{"tf":1.0},"181":{"tf":1.0},"46":{"tf":1.0}},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"n":{"d":{"df":13,"docs":{"112":{"tf":1.0},"130":{"tf":1.0},"148":{"tf":1.0},"159":{"tf":1.4142135623730951},"16":{"tf":1.4142135623730951},"18":{"tf":1.0},"190":{"tf":1.4142135623730951},"22":{"tf":1.0},"248":{"tf":1.0},"269":{"tf":1.0},"31":{"tf":1.0},"86":{"tf":1.0},"87":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"d":{"df":3,"docs":{"199":{"tf":1.0},"266":{"tf":1.0},"55":{"tf":1.0}}},"df":0,"docs":{}}}}}}},"o":{"df":3,"docs":{"111":{"tf":1.0},"15":{"tf":1.0},"195":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":3,"docs":{"12":{"tf":1.0},"184":{"tf":1.0},"51":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":4,"docs":{"175":{"tf":1.0},"183":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"64":{"tf":1.0}}}}}},"q":{"df":0,"docs":{},"u":{"df":23,"docs":{"127":{"tf":1.0},"132":{"tf":1.0},"162":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"180":{"tf":2.0},"181":{"tf":1.0},"184":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"196":{"tf":1.4142135623730951},"208":{"tf":1.0},"23":{"tf":1.0},"242":{"tf":1.0},"251":{"tf":1.0},"40":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"52":{"tf":1.0},"60":{"tf":1.4142135623730951},"76":{"tf":1.7320508075688772},"77":{"tf":1.0}}}},"t":{"df":1,"docs":{"250":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"199":{"tf":1.0}}}}}},"x":{"df":4,"docs":{"101":{"tf":1.0},"114":{"tf":1.0},"71":{"tf":1.7320508075688772},"95":{"tf":1.4142135623730951}}}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":3,"docs":{"137":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}}}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"23":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"k":{"df":2,"docs":{"180":{"tf":1.0},"222":{"tf":1.0}}}}},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"18":{"tf":1.0}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"199":{"tf":1.0}}}}}}},"df":0,"docs":{}}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"u":{"b":{"df":0,"docs":{},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"135":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"110":{"tf":1.0},"114":{"tf":1.0},"127":{"tf":1.0},"130":{"tf":2.23606797749979},"133":{"tf":1.0},"134":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":1.0},"235":{"tf":1.0},"240":{"tf":1.0},"250":{"tf":1.7320508075688772},"258":{"tf":1.0},"267":{"tf":1.0},"276":{"tf":1.0},"289":{"tf":1.0},"81":{"tf":1.0}},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"127":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":20,"docs":{"106":{"tf":1.0},"132":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"18":{"tf":1.0},"189":{"tf":1.0},"191":{"tf":1.0},"199":{"tf":1.0},"20":{"tf":1.0},"206":{"tf":1.0},"216":{"tf":1.0},"237":{"tf":1.4142135623730951},"245":{"tf":1.0},"269":{"tf":1.0},"271":{"tf":1.4142135623730951},"288":{"tf":1.0},"289":{"tf":1.0},"89":{"tf":1.0},"94":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":11,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"165":{"tf":1.7320508075688772},"166":{"tf":1.0},"167":{"tf":1.0},"168":{"tf":1.0},"169":{"tf":1.0},"171":{"tf":1.7320508075688772},"219":{"tf":1.0},"268":{"tf":1.0},"9":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"?":{"df":0,"docs":{},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"=":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"s":{"%":{"3":{"a":{"%":{"2":{"df":0,"docs":{},"f":{"%":{"2":{"df":0,"docs":{},"f":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"c":{"d":{"a":{"df":0,"docs":{},"t":{"a":{".":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"%":{"2":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"146":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}},"df":11,"docs":{"0":{"tf":1.0},"144":{"tf":1.7320508075688772},"145":{"tf":1.0},"146":{"tf":3.0},"147":{"tf":1.0},"151":{"tf":1.0},"155":{"tf":1.0},"18":{"tf":1.0},"235":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"157":{"tf":1.0}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"60":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"112":{"tf":1.0}}}},"df":0,"docs":{}}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":8,"docs":{"175":{"tf":1.0},"176":{"tf":1.4142135623730951},"181":{"tf":1.0},"183":{"tf":1.4142135623730951},"186":{"tf":1.0},"60":{"tf":1.0},"64":{"tf":1.7320508075688772},"72":{"tf":1.0}}},"l":{"df":94,"docs":{"0":{"tf":1.4142135623730951},"101":{"tf":1.0},"102":{"tf":1.0},"107":{"tf":2.0},"108":{"tf":1.4142135623730951},"109":{"tf":1.0},"114":{"tf":1.7320508075688772},"117":{"tf":1.0},"118":{"tf":1.0},"124":{"tf":1.0},"128":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"143":{"tf":1.4142135623730951},"144":{"tf":1.4142135623730951},"145":{"tf":1.0},"147":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.7320508075688772},"165":{"tf":1.0},"167":{"tf":1.7320508075688772},"172":{"tf":1.7320508075688772},"175":{"tf":1.7320508075688772},"176":{"tf":1.0},"177":{"tf":2.0},"181":{"tf":1.7320508075688772},"182":{"tf":1.4142135623730951},"183":{"tf":2.6457513110645907},"184":{"tf":1.7320508075688772},"186":{"tf":1.0},"190":{"tf":1.0},"191":{"tf":2.8284271247461903},"192":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.7320508075688772},"202":{"tf":1.0},"203":{"tf":1.4142135623730951},"204":{"tf":1.7320508075688772},"205":{"tf":1.7320508075688772},"206":{"tf":1.0},"208":{"tf":1.0},"210":{"tf":2.23606797749979},"213":{"tf":1.0},"216":{"tf":2.0},"218":{"tf":1.0},"22":{"tf":1.4142135623730951},"226":{"tf":1.4142135623730951},"253":{"tf":1.0},"261":{"tf":1.0},"268":{"tf":1.0},"274":{"tf":1.0},"28":{"tf":1.0},"29":{"tf":2.449489742783178},"30":{"tf":1.4142135623730951},"31":{"tf":1.7320508075688772},"32":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.7320508075688772},"40":{"tf":1.0},"45":{"tf":1.7320508075688772},"47":{"tf":1.0},"49":{"tf":2.23606797749979},"50":{"tf":1.0},"51":{"tf":1.4142135623730951},"54":{"tf":1.0},"55":{"tf":1.4142135623730951},"56":{"tf":1.4142135623730951},"57":{"tf":1.0},"58":{"tf":1.7320508075688772},"59":{"tf":1.0},"60":{"tf":1.4142135623730951},"62":{"tf":1.0},"63":{"tf":2.0},"64":{"tf":1.4142135623730951},"65":{"tf":1.0},"66":{"tf":1.0},"67":{"tf":1.0},"68":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.7320508075688772},"77":{"tf":1.7320508075688772},"79":{"tf":1.0},"84":{"tf":1.4142135623730951},"95":{"tf":2.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":7,"docs":{"107":{"tf":1.0},"178":{"tf":1.4142135623730951},"181":{"tf":1.4142135623730951},"226":{"tf":1.0},"228":{"tf":1.0},"252":{"tf":1.0},"260":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":5,"docs":{"107":{"tf":1.0},"181":{"tf":2.0},"193":{"tf":1.4142135623730951},"276":{"tf":1.0},"37":{"tf":1.0}},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":1,"docs":{"108":{"tf":1.0}}}}}}}}}},"df":196,"docs":{"0":{"tf":3.0},"1":{"tf":1.0},"10":{"tf":1.7320508075688772},"102":{"tf":1.4142135623730951},"103":{"tf":1.0},"104":{"tf":1.0},"105":{"tf":1.0},"108":{"tf":1.0},"109":{"tf":1.0},"111":{"tf":1.4142135623730951},"112":{"tf":1.0},"114":{"tf":1.4142135623730951},"115":{"tf":1.7320508075688772},"117":{"tf":1.0},"121":{"tf":2.23606797749979},"123":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"13":{"tf":2.23606797749979},"131":{"tf":1.0},"132":{"tf":1.7320508075688772},"133":{"tf":1.0},"134":{"tf":1.4142135623730951},"138":{"tf":1.0},"139":{"tf":1.0},"14":{"tf":2.23606797749979},"142":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"15":{"tf":1.0},"150":{"tf":1.7320508075688772},"151":{"tf":2.0},"152":{"tf":3.1622776601683795},"153":{"tf":1.0},"154":{"tf":2.0},"155":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.7320508075688772},"159":{"tf":1.7320508075688772},"16":{"tf":1.4142135623730951},"160":{"tf":1.7320508075688772},"161":{"tf":1.0},"162":{"tf":2.0},"163":{"tf":2.0},"164":{"tf":1.4142135623730951},"165":{"tf":1.4142135623730951},"166":{"tf":1.0},"167":{"tf":1.0},"17":{"tf":1.4142135623730951},"170":{"tf":1.0},"175":{"tf":1.4142135623730951},"176":{"tf":1.7320508075688772},"177":{"tf":2.6457513110645907},"178":{"tf":1.4142135623730951},"179":{"tf":1.0},"18":{"tf":2.23606797749979},"180":{"tf":1.0},"181":{"tf":3.1622776601683795},"182":{"tf":2.0},"183":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"185":{"tf":1.7320508075688772},"186":{"tf":1.7320508075688772},"189":{"tf":2.0},"19":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.4142135623730951},"194":{"tf":1.7320508075688772},"195":{"tf":2.0},"196":{"tf":1.0},"197":{"tf":1.4142135623730951},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"2":{"tf":1.4142135623730951},"20":{"tf":1.7320508075688772},"200":{"tf":1.7320508075688772},"202":{"tf":2.0},"203":{"tf":2.23606797749979},"204":{"tf":1.4142135623730951},"205":{"tf":1.4142135623730951},"206":{"tf":1.0},"208":{"tf":2.0},"209":{"tf":1.7320508075688772},"21":{"tf":1.7320508075688772},"210":{"tf":1.7320508075688772},"213":{"tf":1.0},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"218":{"tf":2.0},"219":{"tf":1.0},"22":{"tf":3.0},"220":{"tf":1.0},"222":{"tf":1.4142135623730951},"223":{"tf":1.4142135623730951},"226":{"tf":1.7320508075688772},"228":{"tf":1.0},"229":{"tf":2.0},"23":{"tf":2.23606797749979},"230":{"tf":1.0},"231":{"tf":1.4142135623730951},"232":{"tf":2.23606797749979},"233":{"tf":1.7320508075688772},"234":{"tf":1.7320508075688772},"235":{"tf":2.449489742783178},"236":{"tf":1.0},"237":{"tf":1.0},"238":{"tf":2.23606797749979},"239":{"tf":1.0},"240":{"tf":2.23606797749979},"241":{"tf":2.0},"242":{"tf":1.4142135623730951},"243":{"tf":1.7320508075688772},"244":{"tf":1.4142135623730951},"245":{"tf":1.0},"246":{"tf":1.0},"247":{"tf":2.23606797749979},"248":{"tf":1.7320508075688772},"249":{"tf":1.7320508075688772},"25":{"tf":1.4142135623730951},"250":{"tf":1.0},"251":{"tf":1.7320508075688772},"252":{"tf":2.449489742783178},"253":{"tf":1.4142135623730951},"254":{"tf":2.0},"255":{"tf":1.0},"256":{"tf":1.4142135623730951},"257":{"tf":1.7320508075688772},"258":{"tf":1.4142135623730951},"259":{"tf":1.7320508075688772},"26":{"tf":1.4142135623730951},"260":{"tf":2.0},"261":{"tf":2.6457513110645907},"262":{"tf":1.7320508075688772},"263":{"tf":1.4142135623730951},"264":{"tf":1.4142135623730951},"265":{"tf":1.0},"266":{"tf":1.4142135623730951},"267":{"tf":1.0},"268":{"tf":1.4142135623730951},"269":{"tf":1.7320508075688772},"270":{"tf":1.0},"271":{"tf":1.7320508075688772},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":2.449489742783178},"279":{"tf":1.0},"284":{"tf":1.4142135623730951},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"30":{"tf":1.0},"31":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.7320508075688772},"39":{"tf":2.6457513110645907},"40":{"tf":1.0},"42":{"tf":1.4142135623730951},"46":{"tf":1.0},"48":{"tf":1.4142135623730951},"49":{"tf":1.4142135623730951},"5":{"tf":1.4142135623730951},"50":{"tf":1.7320508075688772},"51":{"tf":1.7320508075688772},"52":{"tf":1.4142135623730951},"55":{"tf":2.23606797749979},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.0},"6":{"tf":1.0},"60":{"tf":1.4142135623730951},"61":{"tf":1.0},"62":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0},"69":{"tf":1.0},"71":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":2.0},"77":{"tf":2.23606797749979},"79":{"tf":2.23606797749979},"80":{"tf":1.0},"81":{"tf":2.0},"82":{"tf":1.4142135623730951},"83":{"tf":1.0},"84":{"tf":1.7320508075688772},"85":{"tf":1.0},"86":{"tf":2.0},"87":{"tf":1.0},"89":{"tf":1.4142135623730951},"9":{"tf":1.0},"93":{"tf":1.0},"94":{"tf":1.0},"95":{"tf":2.449489742783178}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"c":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"181":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"139":{"tf":1.0}}}}}},"r":{"'":{"df":3,"docs":{"253":{"tf":1.0},"269":{"tf":1.0},"94":{"tf":1.0}}},"df":33,"docs":{"0":{"tf":1.4142135623730951},"105":{"tf":1.0},"12":{"tf":1.4142135623730951},"135":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.0},"152":{"tf":1.7320508075688772},"153":{"tf":1.0},"159":{"tf":1.0},"167":{"tf":1.4142135623730951},"168":{"tf":1.0},"17":{"tf":1.0},"18":{"tf":1.4142135623730951},"180":{"tf":1.0},"183":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.0},"197":{"tf":1.0},"20":{"tf":2.0},"224":{"tf":1.0},"234":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"254":{"tf":2.0},"261":{"tf":1.0},"262":{"tf":1.0},"31":{"tf":1.0},"55":{"tf":1.0},"56":{"tf":1.0},"81":{"tf":1.4142135623730951},"93":{"tf":1.0},"94":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":2,"docs":{"182":{"tf":1.0},"40":{"tf":1.0}}}},"df":0,"docs":{}}},"t":{"c":{"df":1,"docs":{"71":{"tf":1.0}}},"df":0,"docs":{},"f":{"df":3,"docs":{"59":{"tf":1.0},"65":{"tf":1.0},"66":{"tf":1.0}}}},"x":{"df":2,"docs":{"18":{"tf":1.0},"252":{"tf":1.0}}}},"v":{"1":{"df":1,"docs":{"4":{"tf":1.0}}},"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":44,"docs":{"103":{"tf":1.0},"111":{"tf":1.0},"117":{"tf":1.4142135623730951},"118":{"tf":2.23606797749979},"121":{"tf":1.0},"14":{"tf":1.4142135623730951},"151":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"185":{"tf":1.0},"189":{"tf":1.4142135623730951},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.4142135623730951},"198":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.4142135623730951},"213":{"tf":1.0},"215":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"23":{"tf":1.0},"230":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"26":{"tf":1.0},"264":{"tf":1.0},"280":{"tf":1.4142135623730951},"33":{"tf":1.0},"38":{"tf":1.4142135623730951},"40":{"tf":1.0},"48":{"tf":1.0},"54":{"tf":1.0},"55":{"tf":1.0},"57":{"tf":1.0},"72":{"tf":1.0},"76":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0},"95":{"tf":1.4142135623730951}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":2,"docs":{"103":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"u":{"a":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"148":{"tf":1.0},"232":{"tf":1.0},"288":{"tf":1.4142135623730951}}}},"df":0,"docs":{}},"df":48,"docs":{"114":{"tf":1.4142135623730951},"118":{"tf":1.0},"128":{"tf":1.7320508075688772},"129":{"tf":1.0},"131":{"tf":1.4142135623730951},"132":{"tf":1.0},"14":{"tf":1.0},"142":{"tf":1.7320508075688772},"158":{"tf":1.4142135623730951},"172":{"tf":1.0},"175":{"tf":2.0},"177":{"tf":2.8284271247461903},"178":{"tf":1.0},"179":{"tf":1.0},"180":{"tf":1.7320508075688772},"182":{"tf":2.0},"183":{"tf":1.0},"184":{"tf":1.0},"185":{"tf":2.0},"203":{"tf":1.0},"204":{"tf":1.0},"205":{"tf":1.0},"210":{"tf":1.0},"222":{"tf":1.4142135623730951},"229":{"tf":1.0},"25":{"tf":1.0},"253":{"tf":1.0},"258":{"tf":1.0},"262":{"tf":1.0},"269":{"tf":1.0},"276":{"tf":1.4142135623730951},"28":{"tf":1.0},"29":{"tf":2.6457513110645907},"32":{"tf":2.23606797749979},"39":{"tf":1.0},"42":{"tf":1.0},"44":{"tf":1.4142135623730951},"46":{"tf":1.0},"49":{"tf":1.4142135623730951},"50":{"tf":1.4142135623730951},"54":{"tf":1.0},"56":{"tf":1.7320508075688772},"58":{"tf":1.4142135623730951},"59":{"tf":1.4142135623730951},"67":{"tf":1.0},"68":{"tf":1.0},"75":{"tf":1.0},"76":{"tf":1.0}}}},"n":{"df":2,"docs":{"128":{"tf":1.0},"288":{"tf":1.0}}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"247":{"tf":1.0}}}}},"df":1,"docs":{"78":{"tf":1.0}},"o":{"df":0,"docs":{},"u":{"df":24,"docs":{"112":{"tf":1.0},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"131":{"tf":1.0},"142":{"tf":1.0},"15":{"tf":1.0},"151":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.0},"157":{"tf":1.0},"170":{"tf":1.0},"177":{"tf":1.0},"199":{"tf":1.7320508075688772},"200":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"232":{"tf":1.4142135623730951},"240":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"271":{"tf":1.0},"288":{"tf":1.0},"33":{"tf":1.0},"39":{"tf":1.0},"54":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"16":{"tf":1.0}}}}},"df":5,"docs":{"152":{"tf":1.0},"2":{"tf":1.0},"237":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.0}},"e":{"df":0,"docs":{},"g":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"247":{"tf":1.0}}}},"df":0,"docs":{}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"267":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":1,"docs":{"0":{"tf":1.0}}}},"r":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":1,"docs":{"288":{"tf":1.0}}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"258":{"tf":1.0}}}}}},"i":{"df":28,"docs":{"1":{"tf":1.0},"112":{"tf":1.4142135623730951},"12":{"tf":1.4142135623730951},"121":{"tf":1.0},"126":{"tf":1.0},"130":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"155":{"tf":1.0},"167":{"tf":1.0},"180":{"tf":1.4142135623730951},"189":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"199":{"tf":1.0},"202":{"tf":1.0},"205":{"tf":1.0},"209":{"tf":1.4142135623730951},"22":{"tf":1.4142135623730951},"228":{"tf":1.0},"229":{"tf":1.0},"23":{"tf":1.0},"235":{"tf":1.0},"242":{"tf":1.0},"254":{"tf":1.0},"261":{"tf":1.0},"263":{"tf":1.0},"290":{"tf":1.0}},"f":{"df":2,"docs":{"258":{"tf":1.0},"85":{"tf":1.0}},"i":{"df":19,"docs":{"10":{"tf":1.0},"103":{"tf":1.4142135623730951},"111":{"tf":1.4142135623730951},"116":{"tf":1.0},"118":{"tf":1.0},"119":{"tf":1.0},"121":{"tf":1.0},"132":{"tf":1.0},"152":{"tf":1.0},"232":{"tf":1.0},"255":{"tf":1.7320508075688772},"256":{"tf":2.23606797749979},"257":{"tf":1.4142135623730951},"258":{"tf":2.449489742783178},"259":{"tf":1.4142135623730951},"266":{"tf":1.0},"56":{"tf":1.0},"83":{"tf":1.4142135623730951},"84":{"tf":1.0}}}}},"s":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":26,"docs":{"0":{"tf":1.0},"111":{"tf":1.0},"114":{"tf":1.0},"121":{"tf":1.4142135623730951},"132":{"tf":1.0},"15":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"155":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"18":{"tf":1.4142135623730951},"183":{"tf":1.0},"189":{"tf":1.0},"193":{"tf":1.0},"195":{"tf":1.4142135623730951},"200":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"26":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0},"276":{"tf":1.4142135623730951},"81":{"tf":1.0}}}}}}}},"i":{"c":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"17":{"tf":1.0}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"(":{"df":1,"docs":{"20":{"tf":1.0}}},"df":2,"docs":{"23":{"tf":1.0},"265":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":11,"docs":{"107":{"tf":1.0},"144":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"175":{"tf":1.0},"18":{"tf":1.0},"20":{"tf":1.0},"234":{"tf":1.0},"264":{"tf":2.0},"275":{"tf":1.0},"284":{"tf":1.4142135623730951}}}},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"12":{"tf":1.0},"14":{"tf":1.0},"153":{"tf":1.0},"247":{"tf":1.0}}}},"df":0,"docs":{}}}},"s":{"df":0,"docs":{},"i":{"b":{"df":0,"docs":{},"l":{"df":3,"docs":{"142":{"tf":1.7320508075688772},"154":{"tf":1.4142135623730951},"17":{"tf":1.0}}}},"df":0,"docs":{},"t":{"df":5,"docs":{"156":{"tf":1.4142135623730951},"276":{"tf":1.0},"58":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0}}}},"u":{"a":{"df":0,"docs":{},"l":{"df":4,"docs":{"14":{"tf":1.0},"252":{"tf":1.0},"269":{"tf":1.4142135623730951},"29":{"tf":1.0}}}},"df":0,"docs":{}}}},"o":{"c":{"a":{"b":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"190":{"tf":1.0},"25":{"tf":1.0}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"290":{"tf":1.0}}},"df":0,"docs":{},"l":{"a":{"df":1,"docs":{"152":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":1,"docs":{"112":{"tf":1.0}}}}},"s":{"df":5,"docs":{"143":{"tf":1.4142135623730951},"214":{"tf":1.4142135623730951},"215":{"tf":1.4142135623730951},"216":{"tf":1.4142135623730951},"229":{"tf":1.4142135623730951}}}},"w":{"3":{"c":{"df":2,"docs":{"175":{"tf":1.0},"290":{"tf":1.0}}},"df":0,"docs":{}},"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":42,"docs":{"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"118":{"tf":1.0},"12":{"tf":2.6457513110645907},"13":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.4142135623730951},"152":{"tf":1.0},"16":{"tf":1.0},"161":{"tf":1.0},"162":{"tf":1.7320508075688772},"163":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"17":{"tf":1.0},"172":{"tf":1.0},"177":{"tf":1.7320508075688772},"178":{"tf":1.4142135623730951},"18":{"tf":1.0},"181":{"tf":1.0},"189":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"210":{"tf":1.0},"219":{"tf":1.7320508075688772},"226":{"tf":1.0},"228":{"tf":1.4142135623730951},"23":{"tf":1.0},"234":{"tf":2.0},"241":{"tf":1.0},"247":{"tf":1.4142135623730951},"248":{"tf":1.0},"25":{"tf":1.0},"252":{"tf":1.0},"258":{"tf":1.0},"260":{"tf":1.0},"265":{"tf":1.0},"269":{"tf":1.0},"281":{"tf":1.4142135623730951},"39":{"tf":1.0},"49":{"tf":1.0}}}},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"250":{"tf":1.0}}},"r":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"199":{"tf":1.0}}},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"125":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":1,"docs":{"15":{"tf":1.0}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"265":{"tf":1.0}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"40":{"tf":1.0}}}}}}}}},"y":{"df":47,"docs":{"1":{"tf":1.0},"131":{"tf":1.0},"133":{"tf":1.0},"14":{"tf":1.0},"144":{"tf":1.0},"149":{"tf":1.7320508075688772},"152":{"tf":1.0},"154":{"tf":1.4142135623730951},"156":{"tf":1.0},"157":{"tf":1.0},"160":{"tf":1.0},"162":{"tf":1.0},"163":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"181":{"tf":1.4142135623730951},"182":{"tf":1.0},"184":{"tf":1.0},"186":{"tf":1.0},"190":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"195":{"tf":1.4142135623730951},"199":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"22":{"tf":1.0},"222":{"tf":1.0},"239":{"tf":1.0},"242":{"tf":1.0},"246":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"252":{"tf":1.0},"254":{"tf":1.0},"259":{"tf":1.0},"271":{"tf":1.0},"33":{"tf":1.0},"35":{"tf":1.0},"40":{"tf":1.0},"44":{"tf":1.4142135623730951},"45":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"85":{"tf":1.4142135623730951},"92":{"tf":1.4142135623730951},"93":{"tf":1.0}},"n":{"df":1,"docs":{"243":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"'":{"d":{"df":2,"docs":{"228":{"tf":1.0},"252":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":17,"docs":{"1":{"tf":1.0},"105":{"tf":1.0},"112":{"tf":1.0},"120":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.7320508075688772},"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"163":{"tf":1.4142135623730951},"225":{"tf":1.4142135623730951},"232":{"tf":1.0},"238":{"tf":1.0},"248":{"tf":1.0},"249":{"tf":1.0},"289":{"tf":1.0},"34":{"tf":1.0},"87":{"tf":1.0}}}},"r":{"df":7,"docs":{"120":{"tf":1.0},"128":{"tf":1.0},"148":{"tf":1.0},"19":{"tf":1.7320508075688772},"20":{"tf":1.0},"77":{"tf":1.0},"95":{"tf":1.7320508075688772}}},"v":{"df":5,"docs":{"106":{"tf":1.0},"112":{"tf":1.0},"13":{"tf":1.0},"235":{"tf":1.0},"51":{"tf":1.0}}}},"b":{")":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"196":{"tf":1.0}}}}}}}}},"df":0,"docs":{}},"df":27,"docs":{"0":{"tf":1.0},"105":{"tf":1.0},"106":{"tf":1.0},"12":{"tf":1.7320508075688772},"128":{"tf":1.0},"13":{"tf":2.0},"138":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"156":{"tf":1.0},"167":{"tf":1.0},"175":{"tf":1.0},"178":{"tf":1.4142135623730951},"190":{"tf":1.4142135623730951},"193":{"tf":1.7320508075688772},"199":{"tf":2.449489742783178},"201":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"235":{"tf":1.7320508075688772},"241":{"tf":1.0},"247":{"tf":2.0},"25":{"tf":1.0},"269":{"tf":1.0},"288":{"tf":1.0},"55":{"tf":1.0},"81":{"tf":1.0}},"i":{"d":{"df":1,"docs":{"197":{"tf":1.4142135623730951}}},"df":0,"docs":{}},"p":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"12":{"tf":1.0},"247":{"tf":2.449489742783178},"261":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"c":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"151":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":5,"docs":{"12":{"tf":1.0},"247":{"tf":1.0},"248":{"tf":1.0},"77":{"tf":1.0},"86":{"tf":1.0}}}},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":17,"docs":{"0":{"tf":1.0},"133":{"tf":2.0},"134":{"tf":2.23606797749979},"135":{"tf":1.4142135623730951},"136":{"tf":1.0},"137":{"tf":1.0},"138":{"tf":1.0},"151":{"tf":1.0},"18":{"tf":1.0},"226":{"tf":1.4142135623730951},"235":{"tf":1.0},"240":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.7320508075688772},"99":{"tf":1.7320508075688772}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"261":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"290":{"tf":1.0}}}}},"df":0,"docs":{},"l":{"df":13,"docs":{"105":{"tf":1.0},"111":{"tf":1.0},"12":{"tf":2.23606797749979},"18":{"tf":1.0},"189":{"tf":1.0},"201":{"tf":1.0},"22":{"tf":1.0},"234":{"tf":1.7320508075688772},"235":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.4142135623730951},"262":{"tf":1.0},"95":{"tf":1.0}}}},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"115":{"tf":1.0},"13":{"tf":1.0},"136":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"t":{"'":{"df":1,"docs":{"94":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"209":{"tf":1.0},"243":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":2,"docs":{"136":{"tf":1.0},"17":{"tf":1.4142135623730951}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":7,"docs":{"180":{"tf":1.0},"213":{"tf":1.0},"216":{"tf":1.0},"220":{"tf":1.0},"227":{"tf":1.0},"263":{"tf":1.0},"78":{"tf":1.4142135623730951}}},"df":0,"docs":{},"v":{"df":1,"docs":{"29":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":5,"docs":{"103":{"tf":1.0},"112":{"tf":1.4142135623730951},"199":{"tf":1.0},"210":{"tf":1.0},"54":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"l":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"111":{"tf":1.0},"168":{"tf":1.0},"190":{"tf":1.0}}}}}},"o":{"'":{"df":2,"docs":{"114":{"tf":1.0},"29":{"tf":1.0}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"126":{"tf":1.0}},"s":{"#":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"y":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"_":{"2":{"5":{"df":1,"docs":{"126":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":0,"docs":{}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}}}}},"l":{"df":0,"docs":{},"e":{"df":1,"docs":{"18":{"tf":1.0}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":4,"docs":{"12":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"256":{"tf":1.0}}},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"284":{"tf":1.0}}}}}},"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":1,"docs":{"22":{"tf":1.0}}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"130":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"n":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":4,"docs":{"118":{"tf":1.0},"151":{"tf":1.0},"154":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"h":{"df":1,"docs":{"17":{"tf":1.0}}}},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":23,"docs":{"107":{"tf":1.4142135623730951},"114":{"tf":1.0},"14":{"tf":1.0},"15":{"tf":1.0},"152":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.4142135623730951},"184":{"tf":1.4142135623730951},"19":{"tf":1.0},"20":{"tf":1.4142135623730951},"213":{"tf":1.0},"214":{"tf":1.0},"22":{"tf":1.0},"226":{"tf":1.0},"254":{"tf":1.0},"256":{"tf":1.4142135623730951},"26":{"tf":1.0},"262":{"tf":1.0},"267":{"tf":1.0},"39":{"tf":1.0},"40":{"tf":1.0},"70":{"tf":1.0},"95":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":3,"docs":{"152":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}},"df":0,"docs":{}},"r":{"d":{"df":11,"docs":{"181":{"tf":1.0},"184":{"tf":1.0},"193":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.4142135623730951},"30":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"df":0,"docs":{},"k":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"190":{"tf":1.0}}}},"df":0,"docs":{}},"df":39,"docs":{"105":{"tf":1.0},"106":{"tf":1.0},"110":{"tf":1.0},"112":{"tf":1.4142135623730951},"117":{"tf":1.0},"12":{"tf":1.7320508075688772},"121":{"tf":1.4142135623730951},"128":{"tf":1.0},"13":{"tf":1.0},"132":{"tf":1.4142135623730951},"151":{"tf":1.0},"16":{"tf":1.0},"17":{"tf":1.0},"176":{"tf":1.0},"18":{"tf":1.7320508075688772},"181":{"tf":1.7320508075688772},"183":{"tf":1.4142135623730951},"19":{"tf":1.4142135623730951},"193":{"tf":1.4142135623730951},"194":{"tf":1.0},"197":{"tf":1.0},"198":{"tf":1.4142135623730951},"199":{"tf":1.4142135623730951},"204":{"tf":1.0},"205":{"tf":1.0},"226":{"tf":1.0},"234":{"tf":1.0},"241":{"tf":1.0},"247":{"tf":1.0},"258":{"tf":1.4142135623730951},"271":{"tf":1.0},"288":{"tf":1.7320508075688772},"41":{"tf":1.0},"50":{"tf":1.0},"51":{"tf":1.0},"56":{"tf":1.0},"77":{"tf":1.4142135623730951},"81":{"tf":1.0},"83":{"tf":1.0}},"f":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":1,"docs":{"83":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"c":{"df":1,"docs":{"127":{"tf":1.4142135623730951}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"p":{"a":{"c":{"df":1,"docs":{"17":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"l":{"d":{"df":10,"docs":{"106":{"tf":1.0},"12":{"tf":1.0},"131":{"tf":1.4142135623730951},"177":{"tf":1.0},"180":{"tf":1.0},"189":{"tf":1.0},"190":{"tf":1.0},"193":{"tf":1.0},"201":{"tf":1.0},"222":{"tf":1.0}}},"df":0,"docs":{}},"s":{"df":2,"docs":{"12":{"tf":1.0},"181":{"tf":1.0}}},"t":{"df":0,"docs":{},"h":{"df":1,"docs":{"183":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{".":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"l":{"df":1,"docs":{"123":{"tf":1.0}}}}}},"df":54,"docs":{"108":{"tf":1.0},"110":{"tf":1.4142135623730951},"111":{"tf":1.0},"112":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"116":{"tf":1.0},"117":{"tf":1.0},"118":{"tf":1.7320508075688772},"119":{"tf":1.7320508075688772},"12":{"tf":1.4142135623730951},"120":{"tf":1.0},"121":{"tf":1.0},"122":{"tf":1.0},"123":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"126":{"tf":1.0},"127":{"tf":1.0},"128":{"tf":1.0},"129":{"tf":1.0},"130":{"tf":1.0},"131":{"tf":1.0},"132":{"tf":1.0},"14":{"tf":1.0},"146":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.4142135623730951},"158":{"tf":1.0},"159":{"tf":1.0},"161":{"tf":1.4142135623730951},"162":{"tf":1.0},"163":{"tf":1.4142135623730951},"177":{"tf":1.0},"18":{"tf":1.0},"186":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"198":{"tf":1.0},"199":{"tf":1.0},"203":{"tf":1.0},"213":{"tf":1.0},"218":{"tf":1.0},"223":{"tf":1.0},"226":{"tf":1.0},"229":{"tf":1.4142135623730951},"243":{"tf":1.4142135623730951},"8":{"tf":1.0},"82":{"tf":1.0},"87":{"tf":1.0},"89":{"tf":1.7320508075688772},"90":{"tf":1.0},"92":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":8,"docs":{"14":{"tf":1.0},"18":{"tf":1.0},"199":{"tf":1.0},"200":{"tf":1.0},"229":{"tf":1.0},"235":{"tf":1.0},"247":{"tf":1.0},"5":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":5,"docs":{"115":{"tf":1.0},"117":{"tf":1.0},"136":{"tf":1.7320508075688772},"180":{"tf":1.0},"99":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":3,"docs":{"112":{"tf":1.0},"181":{"tf":1.0},"199":{"tf":1.0}}}}}},"s":{"df":2,"docs":{"134":{"tf":1.4142135623730951},"151":{"tf":1.0}},"s":{":":{"/":{"/":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{".":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"/":{"df":0,"docs":{},"w":{"df":1,"docs":{"95":{"tf":1.4142135623730951}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}},"df":3,"docs":{"134":{"tf":1.0},"151":{"tf":1.0},"95":{"tf":1.0}}}}},"x":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"p":{"df":1,"docs":{"50":{"tf":1.0}}}}}},"df":3,"docs":{"101":{"tf":2.0},"103":{"tf":1.4142135623730951},"134":{"tf":1.0}},"m":{"df":0,"docs":{},"l":{"df":5,"docs":{"148":{"tf":1.0},"199":{"tf":1.0},"26":{"tf":1.0},"262":{"tf":1.0},"54":{"tf":1.0}}}},"s":{"d":{":":{"b":{"df":0,"docs":{},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"185":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"d":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"m":{"df":1,"docs":{"126":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"192":{"tf":1.0}}}}}}}}},"df":2,"docs":{"126":{"tf":1.0},"54":{"tf":1.0}}},"df":0,"docs":{}}},"y":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"52":{"tf":1.0}}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"a":{"df":0,"docs":{},"r":{"df":6,"docs":{"12":{"tf":1.0},"13":{"tf":1.4142135623730951},"199":{"tf":1.0},"201":{"tf":1.0},"220":{"tf":1.0},"251":{"tf":1.0}}}},"df":2,"docs":{"194":{"tf":1.0},"223":{"tf":1.0}}},"o":{"df":0,"docs":{},"u":{"'":{"d":{"df":7,"docs":{"119":{"tf":1.0},"135":{"tf":1.4142135623730951},"162":{"tf":1.0},"215":{"tf":1.0},"229":{"tf":1.0},"250":{"tf":1.0},"3":{"tf":1.0}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":11,"docs":{"152":{"tf":1.0},"153":{"tf":1.0},"166":{"tf":1.0},"172":{"tf":1.0},"210":{"tf":1.0},"228":{"tf":1.0},"248":{"tf":1.0},"250":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"29":{"tf":1.0}}}},"r":{"df":29,"docs":{"106":{"tf":1.0},"118":{"tf":1.7320508075688772},"136":{"tf":1.0},"152":{"tf":1.4142135623730951},"153":{"tf":1.0},"154":{"tf":1.0},"155":{"tf":1.0},"162":{"tf":1.0},"177":{"tf":1.0},"190":{"tf":1.0},"194":{"tf":1.0},"203":{"tf":1.4142135623730951},"210":{"tf":1.7320508075688772},"216":{"tf":1.0},"217":{"tf":1.4142135623730951},"218":{"tf":1.0},"23":{"tf":1.4142135623730951},"235":{"tf":1.0},"243":{"tf":1.0},"247":{"tf":1.4142135623730951},"256":{"tf":1.0},"260":{"tf":1.4142135623730951},"29":{"tf":1.0},"290":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"38":{"tf":1.4142135623730951},"39":{"tf":1.0},"58":{"tf":1.0}}},"v":{"df":6,"docs":{"117":{"tf":1.0},"166":{"tf":1.0},"181":{"tf":1.0},"250":{"tf":1.0},"269":{"tf":1.0},"51":{"tf":1.0}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"193":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":3,"docs":{"155":{"tf":1.0},"157":{"tf":1.4142135623730951},"53":{"tf":1.4142135623730951}}}}}}}}},"y":{"df":0,"docs":{},"y":{"df":0,"docs":{},"i":{"df":1,"docs":{"70":{"tf":1.0}}}}}},"z":{"0":{"df":1,"docs":{"62":{"tf":1.4142135623730951}}},"df":1,"docs":{"123":{"tf":1.4142135623730951}},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"o":{"df":1,"docs":{"69":{"tf":1.0}}}}}}}},"title":{"root":{"a":{"c":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"245":{"tf":1.0}}}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"v":{"df":1,"docs":{"271":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"223":{"tf":1.0}}},"df":0,"docs":{}},"k":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"g":{"df":1,"docs":{"286":{"tf":1.0}}}},"df":0,"docs":{}}}}}}}},"d":{"d":{"df":3,"docs":{"167":{"tf":1.0},"264":{"tf":1.0},"281":{"tf":1.0}}},"df":13,"docs":{"116":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"159":{"tf":1.0},"186":{"tf":1.0},"187":{"tf":1.0},"188":{"tf":1.0},"189":{"tf":1.0},"204":{"tf":1.0},"36":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":1,"docs":{"17":{"tf":1.0}}}}},"v":{"a":{"df":0,"docs":{},"n":{"c":{"df":1,"docs":{"224":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"270":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"153":{"tf":1.0},"82":{"tf":1.0},"84":{"tf":1.0},"85":{"tf":1.0}}}}}},"i":{"df":3,"docs":{"243":{"tf":1.0},"244":{"tf":1.0},"245":{"tf":1.0}}},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"239":{"tf":1.0}}}}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"y":{"df":0,"docs":{},"m":{"df":1,"docs":{"40":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"245":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"p":{"df":2,"docs":{"15":{"tf":1.0},"238":{"tf":1.0}},"l":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"165":{"tf":1.0},"273":{"tf":1.0}}},"df":1,"docs":{"118":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":2,"docs":{"187":{"tf":1.0},"52":{"tf":1.0}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"242":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":106,"docs":{"0":{"tf":1.0},"1":{"tf":1.4142135623730951},"10":{"tf":1.0},"11":{"tf":1.0},"110":{"tf":1.0},"113":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"133":{"tf":1.0},"139":{"tf":1.0},"142":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.4142135623730951},"149":{"tf":1.0},"150":{"tf":1.4142135623730951},"151":{"tf":1.0},"152":{"tf":1.0},"154":{"tf":1.0},"16":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"175":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"209":{"tf":1.0},"21":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.0},"217":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"224":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0},"227":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"235":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.0},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"246":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"267":{"tf":1.0},"268":{"tf":1.0},"272":{"tf":1.0},"274":{"tf":1.0},"275":{"tf":1.0},"276":{"tf":1.0},"280":{"tf":1.0},"282":{"tf":1.0},"283":{"tf":1.0},"284":{"tf":1.0},"285":{"tf":1.0},"289":{"tf":1.0},"29":{"tf":1.4142135623730951},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"46":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"63":{"tf":1.0},"73":{"tf":1.0},"77":{"tf":1.0},"78":{"tf":1.0},"81":{"tf":1.0},"82":{"tf":1.0},"88":{"tf":1.0},"9":{"tf":1.0},"93":{"tf":1.0},"96":{"tf":1.0}}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":8,"docs":{"103":{"tf":1.0},"197":{"tf":1.0},"91":{"tf":1.0},"93":{"tf":1.0},"95":{"tf":1.0},"96":{"tf":1.0},"98":{"tf":1.0},"99":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"r":{"df":6,"docs":{"104":{"tf":1.0},"198":{"tf":1.0},"287":{"tf":1.0},"86":{"tf":1.0},"89":{"tf":1.0},"92":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":1,"docs":{"13":{"tf":1.0}}}}}}}},"b":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"270":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"98":{"tf":1.0}}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"264":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":1,"docs":{"270":{"tf":1.0}}}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"w":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":1,"docs":{"163":{"tf":1.0}}}}}}}},"l":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"184":{"tf":1.0}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"69":{"tf":1.0}}}},"df":0,"docs":{}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"275":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"d":{"df":2,"docs":{"15":{"tf":1.0},"224":{"tf":1.0}}},"df":0,"docs":{},"t":{"df":1,"docs":{"194":{"tf":1.0}}}}}}},"c":{"a":{"df":0,"docs":{},"l":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":1,"docs":{"117":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"42":{"tf":1.0}}},"df":0,"docs":{}}}}},"s":{"df":0,"docs":{},"e":{"df":1,"docs":{"232":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":3,"docs":{"260":{"tf":1.0},"261":{"tf":1.0},"264":{"tf":1.0}}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"249":{"tf":1.0}}}},"n":{"df":0,"docs":{},"g":{"df":4,"docs":{"176":{"tf":1.0},"179":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"14":{"tf":1.0}}}}}},"df":0,"docs":{}}},"k":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"263":{"tf":1.0}}}},"df":0,"docs":{}},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":6,"docs":{"145":{"tf":1.0},"159":{"tf":1.0},"160":{"tf":1.0},"214":{"tf":1.0},"57":{"tf":1.0},"60":{"tf":1.0}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"276":{"tf":1.0}},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":4,"docs":{"135":{"tf":1.0},"136":{"tf":1.0},"254":{"tf":1.0},"76":{"tf":1.0}}}}}}},"m":{"df":3,"docs":{"233":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"142":{"tf":1.0},"46":{"tf":1.0}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"s":{"df":1,"docs":{"76":{"tf":1.0}}}}}},"m":{"b":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":2,"docs":{"185":{"tf":1.0},"217":{"tf":1.0}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"c":{"df":1,"docs":{"246":{"tf":1.0}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"t":{"df":8,"docs":{"110":{"tf":1.0},"113":{"tf":1.0},"114":{"tf":1.0},"115":{"tf":1.0},"118":{"tf":1.0},"120":{"tf":1.0},"132":{"tf":1.0},"258":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"282":{"tf":1.0}}}}}},"r":{"df":4,"docs":{"120":{"tf":1.0},"227":{"tf":1.0},"239":{"tf":1.0},"263":{"tf":1.0}}}},"df":0,"docs":{}}},"n":{"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"p":{"df":0,"docs":{},"t":{"df":2,"docs":{"113":{"tf":1.0},"27":{"tf":1.0}}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"134":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"105":{"tf":1.0},"137":{"tf":1.0},"210":{"tf":1.0}}}}},"df":0,"docs":{}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"266":{"tf":1.0},"6":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":1,"docs":{"12":{"tf":1.0}}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"283":{"tf":1.0}}},"t":{"df":4,"docs":{"1":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"219":{"tf":1.0}}}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"i":{"df":2,"docs":{"96":{"tf":1.0},"97":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"25":{"tf":1.0},"7":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":1,"docs":{"267":{"tf":1.0}}}},"df":0,"docs":{}}}}}}},"r":{"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":12,"docs":{"1":{"tf":1.0},"148":{"tf":1.0},"150":{"tf":1.0},"153":{"tf":1.0},"154":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"243":{"tf":1.0},"267":{"tf":1.0},"74":{"tf":1.0},"85":{"tf":1.0},"9":{"tf":1.0}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":4,"docs":{"255":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0},"259":{"tf":1.0}}}}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"13":{"tf":1.0},"92":{"tf":1.0}}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"248":{"tf":1.0}}}}}}}}}},"d":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"285":{"tf":1.0}}}},"t":{"a":{"b":{"a":{"df":0,"docs":{},"s":{"df":5,"docs":{"174":{"tf":1.0},"217":{"tf":1.0},"219":{"tf":1.0},"225":{"tf":1.0},"226":{"tf":1.0}}}},"df":0,"docs":{}},"df":75,"docs":{"0":{"tf":1.0},"1":{"tf":1.0},"10":{"tf":1.0},"11":{"tf":1.0},"12":{"tf":1.0},"13":{"tf":1.0},"133":{"tf":1.0},"144":{"tf":1.0},"148":{"tf":1.0},"149":{"tf":1.0},"150":{"tf":1.0},"154":{"tf":1.0},"16":{"tf":1.0},"164":{"tf":1.0},"165":{"tf":1.0},"166":{"tf":1.0},"168":{"tf":1.0},"172":{"tf":1.0},"175":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"193":{"tf":1.0},"194":{"tf":1.0},"195":{"tf":1.0},"196":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"207":{"tf":1.0},"209":{"tf":1.0},"21":{"tf":1.0},"211":{"tf":1.0},"213":{"tf":1.0},"219":{"tf":1.0},"22":{"tf":1.0},"220":{"tf":1.0},"222":{"tf":1.0},"223":{"tf":1.0},"225":{"tf":1.0},"227":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"238":{"tf":1.0},"24":{"tf":1.0},"240":{"tf":1.0},"241":{"tf":1.4142135623730951},"242":{"tf":1.0},"243":{"tf":1.0},"244":{"tf":1.0},"246":{"tf":1.0},"25":{"tf":1.0},"251":{"tf":1.0},"255":{"tf":1.0},"257":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"264":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0},"272":{"tf":1.0},"275":{"tf":1.0},"283":{"tf":1.0},"289":{"tf":1.0},"35":{"tf":1.0},"39":{"tf":1.0},"44":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0},"81":{"tf":1.0},"9":{"tf":1.0},"93":{"tf":1.0}},"t":{"df":0,"docs":{},"y":{"df":0,"docs":{},"p":{"df":5,"docs":{"185":{"tf":1.0},"59":{"tf":1.0},"61":{"tf":1.0},"74":{"tf":1.0},"75":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":1,"docs":{"70":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"l":{"df":3,"docs":{"76":{"tf":1.0},"77":{"tf":1.0},"80":{"tf":1.0}}}},"c":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"264":{"tf":1.0}},"r":{"df":1,"docs":{"247":{"tf":1.0}}}}}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"a":{"df":4,"docs":{"120":{"tf":1.0},"124":{"tf":1.0},"125":{"tf":1.0},"128":{"tf":1.0}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":1,"docs":{"199":{"tf":1.0}}},"df":0,"docs":{}}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":2,"docs":{"144":{"tf":1.0},"163":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":8,"docs":{"107":{"tf":1.0},"111":{"tf":1.0},"141":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}}},"k":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"277":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}}},"df":0,"docs":{}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":2,"docs":{"13":{"tf":1.0},"15":{"tf":1.0}}}}}}}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":2,"docs":{"132":{"tf":1.0},"231":{"tf":1.0}}}},"i":{"c":{"df":0,"docs":{},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":1,"docs":{"13":{"tf":1.0}}}}}},"df":0,"docs":{}}}}},"o":{"c":{"df":2,"docs":{"190":{"tf":1.0},"5":{"tf":1.0}}},"df":0,"docs":{},"n":{"'":{"df":0,"docs":{},"t":{"df":1,"docs":{"77":{"tf":1.0}}}},"df":0,"docs":{}},"w":{"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":2,"docs":{"144":{"tf":1.0},"147":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}},"u":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"c":{"df":1,"docs":{"162":{"tf":1.0}}},"df":0,"docs":{}}}}},"y":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"m":{"df":1,"docs":{"215":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"166":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"243":{"tf":1.0}}}},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"196":{"tf":1.0}}}}}}},"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"i":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"d":{"df":0,"docs":{},"u":{"c":{"df":2,"docs":{"265":{"tf":1.0},"266":{"tf":1.0}}},"df":0,"docs":{}}},"df":2,"docs":{"246":{"tf":1.0},"265":{"tf":1.0}},"n":{"d":{"df":0,"docs":{},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"139":{"tf":1.0}}}}}}}},"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"75":{"tf":1.0}}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"195":{"tf":1.0}}}}}},"x":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"138":{"tf":1.0},"50":{"tf":1.0}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"132":{"tf":1.0},"165":{"tf":1.0},"199":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"160":{"tf":1.0}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":4,"docs":{"0":{"tf":1.0},"168":{"tf":1.0},"8":{"tf":1.0},"81":{"tf":1.0}}},"df":0,"docs":{},"s":{"df":1,"docs":{"277":{"tf":1.0}}}}}}}},"f":{"a":{"df":0,"docs":{},"q":{"df":2,"docs":{"221":{"tf":1.0},"73":{"tf":1.0}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":2,"docs":{"15":{"tf":1.0},"151":{"tf":1.0}}}}}},"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"45":{"tf":1.0}}}},"df":0,"docs":{}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"d":{"df":3,"docs":{"30":{"tf":1.0},"31":{"tf":1.0},"32":{"tf":1.0}}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"e":{"df":5,"docs":{"144":{"tf":1.0},"145":{"tf":1.0},"146":{"tf":1.0},"147":{"tf":1.0},"156":{"tf":1.0}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"254":{"tf":1.0}}}}}},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"154":{"tf":1.0},"158":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"o":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"68":{"tf":1.0}}}},"df":0,"docs":{},"w":{"df":1,"docs":{"108":{"tf":1.0}}}},"u":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"285":{"tf":1.0}}}}}}}},"o":{"c":{"df":0,"docs":{},"u":{"df":1,"docs":{"178":{"tf":1.0}}}},"df":0,"docs":{},"o":{"d":{"df":1,"docs":{"268":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"172":{"tf":1.0},"196":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0}}}},"df":1,"docs":{"13":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"d":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"254":{"tf":1.0}}}}},"df":0,"docs":{}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"l":{"df":1,"docs":{"277":{"tf":1.0}}}}}},"g":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"121":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":1,"docs":{"12":{"tf":1.0}}}}},"o":{"a":{"df":0,"docs":{},"l":{"df":8,"docs":{"107":{"tf":1.0},"111":{"tf":1.0},"141":{"tf":1.0},"26":{"tf":1.0},"55":{"tf":1.0},"83":{"tf":1.0},"87":{"tf":1.0},"94":{"tf":1.0}}}},"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"a":{"'":{"df":1,"docs":{"109":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"df":0,"docs":{}}},"r":{"a":{"df":0,"docs":{},"p":{"df":0,"docs":{},"h":{"df":3,"docs":{"225":{"tf":1.0},"228":{"tf":1.0},"33":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"261":{"tf":1.0},"267":{"tf":1.0}}}},"df":0,"docs":{}}},"u":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"171":{"tf":1.0}}},"df":0,"docs":{}}}},"h":{"a":{"df":0,"docs":{},"r":{"d":{"df":2,"docs":{"168":{"tf":1.0},"177":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"e":{"a":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"101":{"tf":1.0}}}},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":3,"docs":{"233":{"tf":1.0},"234":{"tf":1.0},"239":{"tf":1.0}}}}}}},"df":0,"docs":{}},"df":0,"docs":{},"l":{"df":0,"docs":{},"p":{"df":1,"docs":{"169":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":4,"docs":{"104":{"tf":1.0},"198":{"tf":1.0},"86":{"tf":1.0},"88":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"248":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"18":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":4,"docs":{"1":{"tf":1.0},"157":{"tf":1.0},"262":{"tf":1.0},"79":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":3,"docs":{"101":{"tf":1.0},"115":{"tf":1.0},"45":{"tf":1.0}}}}}},"i":{"d":{"df":1,"docs":{"167":{"tf":1.0}},"e":{"a":{"df":1,"docs":{"281":{"tf":1.0}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"256":{"tf":1.0}},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":1,"docs":{"216":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":3,"docs":{"138":{"tf":1.0},"168":{"tf":1.0},"200":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":2,"docs":{"164":{"tf":1.0},"283":{"tf":1.0}}}}}}},"n":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"140":{"tf":1.0}}}}}}}}},"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"224":{"tf":1.0}}}},"i":{"df":0,"docs":{},"v":{"df":0,"docs":{},"i":{"d":{"df":0,"docs":{},"u":{"df":1,"docs":{"157":{"tf":1.0}}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"269":{"tf":1.0}}}}}},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"80":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":1,"docs":{"134":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"249":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":1,"docs":{"67":{"tf":1.0}}},"l":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":1,"docs":{"242":{"tf":1.0}}}}}},"r":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"209":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":3,"docs":{"15":{"tf":1.0},"170":{"tf":1.0},"43":{"tf":1.0}}}}}}}}},"v":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":2,"docs":{"106":{"tf":1.0},"254":{"tf":1.0}}}},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":2,"docs":{"290":{"tf":1.0},"3":{"tf":1.0}}}}}}},"p":{"df":0,"docs":{},"f":{"df":4,"docs":{"207":{"tf":1.0},"208":{"tf":1.0},"209":{"tf":1.0},"210":{"tf":1.0}}},"l":{"d":{"df":1,"docs":{"211":{"tf":1.0}}},"df":0,"docs":{}}},"t":{"'":{"df":3,"docs":{"132":{"tf":1.0},"177":{"tf":1.0},"264":{"tf":1.0}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"161":{"tf":1.0}}}}}},"j":{"df":0,"docs":{},"s":{"df":1,"docs":{"240":{"tf":1.0}},"o":{"df":0,"docs":{},"n":{"df":18,"docs":{"116":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0},"156":{"tf":1.0},"157":{"tf":1.0},"166":{"tf":1.0},"196":{"tf":1.0},"202":{"tf":1.0},"203":{"tf":1.0},"204":{"tf":1.4142135623730951},"205":{"tf":1.0},"206":{"tf":1.0},"36":{"tf":1.0},"37":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0},"42":{"tf":1.0},"43":{"tf":1.4142135623730951}}}}}},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"166":{"tf":1.0},"186":{"tf":1.0}}}},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"283":{"tf":1.0}}}},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"224":{"tf":1.0}}}}}}},"l":{"a":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":3,"docs":{"228":{"tf":1.0},"268":{"tf":1.0},"269":{"tf":1.0}}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":0,"docs":{},"u":{"a":{"df":0,"docs":{},"g":{"df":3,"docs":{"189":{"tf":1.0},"229":{"tf":1.0},"230":{"tf":1.0}}}},"df":0,"docs":{}}}}},"d":{"df":6,"docs":{"125":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"205":{"tf":1.0},"206":{"tf":1.0},"43":{"tf":1.0}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"n":{"df":1,"docs":{"265":{"tf":1.0}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"178":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":1,"docs":{"90":{"tf":1.0}}}}}},"i":{"b":{"df":1,"docs":{"280":{"tf":1.0}},"r":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":4,"docs":{"2":{"tf":1.0},"272":{"tf":1.0},"278":{"tf":1.0},"41":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"y":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"249":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":7,"docs":{"105":{"tf":1.0},"109":{"tf":1.0},"119":{"tf":1.0},"181":{"tf":1.0},"220":{"tf":1.0},"236":{"tf":1.0},"92":{"tf":1.0}}}}},"n":{"df":0,"docs":{},"k":{"df":3,"docs":{"128":{"tf":1.0},"13":{"tf":1.0},"77":{"tf":1.4142135623730951}}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"281":{"tf":1.0}}}},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"182":{"tf":1.0}}}}}},"o":{"c":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"152":{"tf":1.0}},"i":{"d":{"df":2,"docs":{"162":{"tf":1.0},"163":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{},"t":{"df":1,"docs":{"77":{"tf":1.0}}}}},"m":{"a":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":5,"docs":{"14":{"tf":1.0},"15":{"tf":1.0},"243":{"tf":1.0},"257":{"tf":1.0},"267":{"tf":1.0}}}},"p":{"df":1,"docs":{"166":{"tf":1.0}}},"r":{"df":0,"docs":{},"k":{"d":{"df":0,"docs":{},"o":{"df":0,"docs":{},"w":{"df":0,"docs":{},"n":{"df":1,"docs":{"66":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":2,"docs":{"246":{"tf":1.0},"247":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}}}}}},"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"u":{"df":0,"docs":{},"m":{"df":1,"docs":{"167":{"tf":1.0}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"a":{"df":0,"docs":{},"g":{"df":2,"docs":{"135":{"tf":1.0},"136":{"tf":1.0}}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"201":{"tf":1.0}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":5,"docs":{"120":{"tf":1.0},"266":{"tf":1.0},"84":{"tf":1.0},"88":{"tf":1.0},"92":{"tf":1.0}}}},"u":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"265":{"tf":1.0},"266":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":5,"docs":{"12":{"tf":1.0},"155":{"tf":1.0},"178":{"tf":1.0},"182":{"tf":1.0},"196":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":2,"docs":{"11":{"tf":1.0},"112":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"l":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"161":{"tf":1.0},"74":{"tf":1.0}}}}}}},"t":{"a":{"df":0,"docs":{},"t":{"df":1,"docs":{"122":{"tf":1.0}}}},"df":0,"docs":{}}}},"n":{"3":{"df":1,"docs":{"123":{"tf":1.0}}},"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":4,"docs":{"179":{"tf":1.0},"182":{"tf":1.0},"190":{"tf":1.0},"40":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"v":{"df":2,"docs":{"187":{"tf":1.0},"188":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"4":{"df":0,"docs":{},"j":{"df":1,"docs":{"227":{"tf":1.0}}}},"df":0,"docs":{}},"s":{"df":0,"docs":{},"t":{"df":3,"docs":{"34":{"tf":1.0},"40":{"tf":1.0},"51":{"tf":1.0}}}},"w":{"df":1,"docs":{"190":{"tf":1.4142135623730951}},"s":{"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":0,"docs":{},"t":{"df":1,"docs":{"289":{"tf":1.0}}}}}}}},"x":{"df":0,"docs":{},"t":{"df":0,"docs":{},"j":{"df":1,"docs":{"238":{"tf":1.0}}}}}},"o":{"d":{"df":0,"docs":{},"e":{"df":2,"docs":{"182":{"tf":1.0},"184":{"tf":1.0}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":1,"docs":{"222":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"m":{"b":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"216":{"tf":1.0}}}}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"df":1,"docs":{"270":{"tf":1.0}}}}}}}},"o":{"b":{"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{},"n":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"267":{"tf":1.0}}}}},"t":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"160":{"tf":1.4142135623730951}}}}}}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"233":{"tf":1.0},"239":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}}}}}},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"169":{"tf":1.0}}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"12":{"tf":1.0}}}}},"w":{"df":0,"docs":{},"l":{"df":1,"docs":{"78":{"tf":1.0}}}}},"p":{"a":{"df":0,"docs":{},"r":{"a":{"d":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"m":{"df":1,"docs":{"174":{"tf":1.0}}}}}},"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":1,"docs":{"143":{"tf":1.0}}}}}},"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"41":{"tf":1.0}}}}}},"t":{"c":{"df":0,"docs":{},"h":{"df":4,"docs":{"123":{"tf":1.0},"127":{"tf":1.0},"129":{"tf":1.0},"131":{"tf":1.0}},"r":{"df":1,"docs":{"126":{"tf":1.0}}}}},"df":0,"docs":{},"h":{"df":3,"docs":{"184":{"tf":1.0},"47":{"tf":1.0},"49":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"o":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":2,"docs":{"12":{"tf":1.0},"234":{"tf":1.0}}}}},"r":{"df":1,"docs":{"100":{"tf":1.0}},"s":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"143":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"241":{"tf":1.0},"248":{"tf":1.0}}}}}}},"l":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"203":{"tf":1.0}}}},"t":{"df":0,"docs":{},"f":{"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"m":{"df":1,"docs":{"247":{"tf":1.0}}}}}}}},"df":0,"docs":{}},"o":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"115":{"tf":1.0}}}}},"r":{"df":0,"docs":{},"e":{"d":{"df":0,"docs":{},"i":{"c":{"df":2,"docs":{"180":{"tf":1.0},"185":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"162":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":1,"docs":{"284":{"tf":1.0}}}}}}},"i":{"df":0,"docs":{},"v":{"a":{"c":{"df":0,"docs":{},"i":{"df":1,"docs":{"254":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"d":{"df":0,"docs":{},"u":{"c":{"df":0,"docs":{},"t":{"df":2,"docs":{"249":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"240":{"tf":1.0}}}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"167":{"tf":1.0}}}},"t":{"df":0,"docs":{},"i":{"df":8,"docs":{"143":{"tf":1.0},"166":{"tf":1.0},"186":{"tf":1.0},"214":{"tf":1.0},"228":{"tf":1.0},"31":{"tf":1.0},"58":{"tf":1.0},"74":{"tf":1.0}}}}}}},"t":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":2,"docs":{"168":{"tf":1.0},"173":{"tf":1.0}}}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"i":{"d":{"df":2,"docs":{"245":{"tf":1.0},"270":{"tf":1.0}}},"df":0,"docs":{}}}}},"u":{"b":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":2,"docs":{"148":{"tf":1.0},"156":{"tf":1.0}}}}}}},"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"a":{"df":0,"docs":{},"s":{"df":1,"docs":{"250":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":5,"docs":{"143":{"tf":1.0},"218":{"tf":1.0},"229":{"tf":1.0},"245":{"tf":1.0},"44":{"tf":1.0}}}},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":2,"docs":{"245":{"tf":1.0},"253":{"tf":1.0}}}}}}}}}},"r":{"a":{"df":0,"docs":{},"y":{"c":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"d":{"df":0,"docs":{},"f":{"df":9,"docs":{"120":{"tf":1.0},"122":{"tf":1.0},"124":{"tf":1.0},"175":{"tf":1.0},"177":{"tf":1.0},"191":{"tf":1.0},"192":{"tf":1.0},"38":{"tf":1.0},"78":{"tf":1.4142135623730951}}}},"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"169":{"tf":1.0}}},"t":{"df":2,"docs":{"238":{"tf":1.0},"240":{"tf":1.0}}}},"d":{"df":1,"docs":{"5":{"tf":1.0}}},"df":0,"docs":{}},"df":1,"docs":{"252":{"tf":1.0}},"l":{"a":{"df":0,"docs":{},"t":{"df":4,"docs":{"170":{"tf":1.0},"175":{"tf":1.0},"202":{"tf":1.0},"78":{"tf":1.0}},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":0,"docs":{},"h":{"df":0,"docs":{},"i":{"df":0,"docs":{},"p":{"df":1,"docs":{"163":{"tf":1.0}}}}}}}}}}},"df":0,"docs":{},"i":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"l":{"a":{"c":{"df":1,"docs":{"184":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"u":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":2,"docs":{"100":{"tf":1.0},"102":{"tf":1.0}}}}},"i":{"df":0,"docs":{},"r":{"df":2,"docs":{"183":{"tf":1.0},"206":{"tf":1.0}}}}}},"s":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"v":{"df":1,"docs":{"167":{"tf":1.0}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":10,"docs":{"140":{"tf":1.0},"157":{"tf":1.0},"163":{"tf":1.0},"224":{"tf":1.0},"28":{"tf":1.0},"34":{"tf":1.0},"40":{"tf":1.0},"51":{"tf":1.0},"90":{"tf":1.0},"95":{"tf":1.0}},"e":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"r":{"a":{"df":0,"docs":{},"y":{"df":1,"docs":{"72":{"tf":1.0}}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{}}}},"p":{"df":0,"docs":{},"o":{"df":0,"docs":{},"n":{"df":0,"docs":{},"s":{"df":1,"docs":{"252":{"tf":1.0}}}}}},"t":{"df":1,"docs":{"229":{"tf":1.0}}}}},"i":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"15":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"86":{"tf":1.0}}}}},"s":{"df":0,"docs":{},"k":{"df":1,"docs":{"79":{"tf":1.0}}}}},"o":{"a":{"d":{"df":0,"docs":{},"m":{"a":{"df":0,"docs":{},"p":{"df":2,"docs":{"16":{"tf":1.0},"20":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{},"w":{"df":1,"docs":{"214":{"tf":1.0}}}},"u":{"df":0,"docs":{},"n":{"df":1,"docs":{"152":{"tf":1.0}}},"s":{"df":0,"docs":{},"t":{"df":1,"docs":{"280":{"tf":1.0}}}}}},"s":{"a":{"df":0,"docs":{},"f":{"df":0,"docs":{},"e":{"df":1,"docs":{"194":{"tf":1.0}},"t":{"df":0,"docs":{},"i":{"df":2,"docs":{"189":{"tf":1.0},"230":{"tf":1.0}}}}}}},"c":{"a":{"df":0,"docs":{},"n":{"df":1,"docs":{"269":{"tf":1.0}}}},"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"a":{"df":12,"docs":{"189":{"tf":1.0},"194":{"tf":1.0},"215":{"tf":1.0},"224":{"tf":1.0},"230":{"tf":1.0},"259":{"tf":1.0},"54":{"tf":1.0},"57":{"tf":1.0},"61":{"tf":1.0},"73":{"tf":1.0},"78":{"tf":1.0},"79":{"tf":1.0}}},"df":0,"docs":{}}}}},"df":0,"docs":{},"e":{"a":{"df":0,"docs":{},"r":{"c":{"df":0,"docs":{},"h":{"df":2,"docs":{"248":{"tf":1.0},"277":{"tf":1.0}}}},"df":0,"docs":{}}},"df":0,"docs":{},"l":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"177":{"tf":1.0}}}},"df":0,"docs":{}},"f":{"df":1,"docs":{"256":{"tf":1.0}}}},"m":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":2,"docs":{"178":{"tf":1.0},"199":{"tf":1.0}}}}},"df":0,"docs":{}},"n":{"d":{"df":1,"docs":{"102":{"tf":1.0}}},"df":0,"docs":{}},"r":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":5,"docs":{"116":{"tf":1.0},"35":{"tf":1.0},"38":{"tf":1.0},"39":{"tf":1.0},"41":{"tf":1.0}},"i":{"df":0,"docs":{},"z":{"df":1,"docs":{"196":{"tf":1.0}}}}}},"df":0,"docs":{}},"v":{"df":1,"docs":{"165":{"tf":1.0}},"e":{"df":0,"docs":{},"r":{"df":19,"docs":{"135":{"tf":1.0},"136":{"tf":1.0},"150":{"tf":1.0},"151":{"tf":1.0},"152":{"tf":1.0},"200":{"tf":1.0},"217":{"tf":1.4142135623730951},"224":{"tf":1.0},"226":{"tf":1.0},"233":{"tf":1.0},"235":{"tf":1.0},"237":{"tf":1.0},"260":{"tf":1.0},"261":{"tf":1.0},"262":{"tf":1.0},"263":{"tf":1.0},"264":{"tf":1.0},"267":{"tf":1.0},"274":{"tf":1.0}}}},"i":{"c":{"df":1,"docs":{"247":{"tf":1.0}}},"df":0,"docs":{}}}},"t":{"df":3,"docs":{"158":{"tf":1.0},"237":{"tf":1.0},"97":{"tf":1.0}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"164":{"tf":1.0}}}}}},"h":{"a":{"c":{"df":0,"docs":{},"l":{"df":1,"docs":{"78":{"tf":1.0}}}},"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":2,"docs":{"212":{"tf":1.0},"247":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"x":{"df":1,"docs":{"78":{"tf":1.0}}}},"o":{"df":0,"docs":{},"p":{"df":1,"docs":{"270":{"tf":1.0}}},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"56":{"tf":1.0}},"n":{"a":{"df":0,"docs":{},"m":{"df":2,"docs":{"186":{"tf":1.0},"76":{"tf":1.0}}}},"df":0,"docs":{}}}}}},"i":{"d":{"df":0,"docs":{},"e":{"df":1,"docs":{"254":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":1,"docs":{"117":{"tf":1.0}}}}}},"df":1,"docs":{"100":{"tf":1.0}}}},"m":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"37":{"tf":1.0}}}}}},"l":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":2,"docs":{"186":{"tf":1.0},"62":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"f":{"df":0,"docs":{},"t":{"df":0,"docs":{},"w":{"a":{"df":0,"docs":{},"r":{"df":2,"docs":{"239":{"tf":1.0},"272":{"tf":1.0}}}},"df":0,"docs":{}}}},"l":{"df":0,"docs":{},"i":{"d":{"df":3,"docs":{"193":{"tf":1.0},"200":{"tf":1.0},"201":{"tf":1.0}}},"df":0,"docs":{}}},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"w":{"df":0,"docs":{},"h":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":1,"docs":{"79":{"tf":1.0}}}}}}}},"u":{"df":0,"docs":{},"r":{"c":{"df":3,"docs":{"195":{"tf":1.0},"233":{"tf":1.0},"239":{"tf":1.0}}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"i":{"df":0,"docs":{},"g":{"df":0,"docs":{},"n":{"df":1,"docs":{"256":{"tf":1.0}}}}}}}}}},"p":{"a":{"df":0,"docs":{},"r":{"df":0,"docs":{},"q":{"df":0,"docs":{},"l":{"df":2,"docs":{"130":{"tf":1.0},"48":{"tf":1.0}}}}}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"i":{"a":{"df":0,"docs":{},"l":{"df":1,"docs":{"288":{"tf":1.0}}}},"df":0,"docs":{},"f":{"df":5,"docs":{"177":{"tf":1.0},"199":{"tf":1.0},"250":{"tf":1.0},"7":{"tf":1.0},"8":{"tf":1.0}}}}},"df":0,"docs":{}}},"q":{"df":0,"docs":{},"l":{"df":3,"docs":{"213":{"tf":1.0},"219":{"tf":1.0},"222":{"tf":1.0}}}},"s":{"df":0,"docs":{},"i":{"df":1,"docs":{"255":{"tf":1.0}}}},"t":{"a":{"df":0,"docs":{},"n":{"d":{"a":{"df":0,"docs":{},"r":{"d":{"df":7,"docs":{"14":{"tf":1.0},"188":{"tf":1.0},"195":{"tf":1.0},"253":{"tf":1.0},"259":{"tf":1.0},"265":{"tf":1.0},"268":{"tf":1.0}}},"df":0,"docs":{}}},"df":0,"docs":{}},"df":0,"docs":{}},"t":{"df":0,"docs":{},"e":{"df":2,"docs":{"188":{"tf":1.0},"195":{"tf":1.0}}},"i":{"c":{"df":1,"docs":{"215":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":1,"docs":{"4":{"tf":1.0}}}}},"df":0,"docs":{},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"df":1,"docs":{"241":{"tf":1.0}}}}},"r":{"a":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"g":{"df":0,"docs":{},"i":{"df":2,"docs":{"16":{"tf":1.0},"17":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"65":{"tf":1.0}}}}}}},"u":{"b":{"c":{"df":0,"docs":{},"l":{"a":{"df":0,"docs":{},"s":{"df":0,"docs":{},"s":{"df":1,"docs":{"80":{"tf":1.0}}}}},"df":0,"docs":{}}},"df":0,"docs":{},"j":{"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"t":{"df":4,"docs":{"180":{"tf":1.0},"181":{"tf":1.0},"30":{"tf":1.0},"45":{"tf":1.0}}}},"df":0,"docs":{}}},"s":{"c":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"289":{"tf":1.0}}},"df":0,"docs":{}}}},"df":0,"docs":{}}},"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"257":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"p":{"df":0,"docs":{},"p":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"df":1,"docs":{"249":{"tf":1.0}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"t":{"df":1,"docs":{"74":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"y":{"df":2,"docs":{"251":{"tf":1.0},"252":{"tf":1.0}}}}}}},"w":{"df":0,"docs":{},"i":{"df":0,"docs":{},"t":{"c":{"df":0,"docs":{},"h":{"df":1,"docs":{"234":{"tf":1.0}}}},"df":0,"docs":{}}}},"y":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"df":0,"docs":{},"e":{"df":0,"docs":{},"m":{"df":1,"docs":{"122":{"tf":1.0}}}}}}}},"t":{"a":{"b":{"df":0,"docs":{},"l":{"df":2,"docs":{"214":{"tf":1.0},"6":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{},"e":{"c":{"df":0,"docs":{},"h":{"df":0,"docs":{},"n":{"df":0,"docs":{},"o":{"df":0,"docs":{},"l":{"df":0,"docs":{},"o":{"df":0,"docs":{},"g":{"df":1,"docs":{"170":{"tf":1.0}}}}}}}}},"df":0,"docs":{},"x":{"df":0,"docs":{},"t":{"df":1,"docs":{"277":{"tf":1.0}}}}},"h":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"k":{"df":1,"docs":{"288":{"tf":1.0}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"e":{"'":{"df":1,"docs":{"155":{"tf":1.0}}},"df":0,"docs":{}}}},"i":{"df":0,"docs":{},"n":{"df":0,"docs":{},"g":{"df":1,"docs":{"201":{"tf":1.0}}}}},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"g":{"df":0,"docs":{},"h":{"df":0,"docs":{},"t":{"df":1,"docs":{"212":{"tf":1.0}}}}}}},"r":{"df":0,"docs":{},"e":{"df":0,"docs":{},"e":{"df":1,"docs":{"149":{"tf":1.0}}}}}},"i":{"df":0,"docs":{},"m":{"df":0,"docs":{},"e":{"df":0,"docs":{},"s":{"df":0,"docs":{},"t":{"a":{"df":0,"docs":{},"m":{"df":0,"docs":{},"p":{"df":1,"docs":{"71":{"tf":1.0}}}}},"df":0,"docs":{}}}}}},"o":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"n":{"df":2,"docs":{"106":{"tf":1.0},"98":{"tf":1.0}}}}},"m":{"df":0,"docs":{},"i":{"c":{"/":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"b":{"df":1,"docs":{"279":{"tf":1.0}}},"df":0,"docs":{}}},"r":{"df":0,"docs":{},"e":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"279":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"o":{"df":0,"docs":{},"l":{"df":3,"docs":{"2":{"tf":1.0},"267":{"tf":1.0},"281":{"tf":1.0}}}},"p":{"df":1,"docs":{"90":{"tf":1.0}}}},"r":{"a":{"df":0,"docs":{},"i":{"df":0,"docs":{},"n":{"df":1,"docs":{"244":{"tf":1.0}}}},"n":{"df":0,"docs":{},"s":{"a":{"c":{"df":0,"docs":{},"t":{"df":1,"docs":{"223":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}},"v":{"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":1,"docs":{"52":{"tf":1.0}}}}}}},"df":0,"docs":{},"i":{"df":1,"docs":{"53":{"tf":1.0}},"p":{"df":0,"docs":{},"l":{"df":1,"docs":{"29":{"tf":1.0}}}}}},"s":{"df":1,"docs":{"240":{"tf":1.0}}},"y":{"df":0,"docs":{},"p":{"df":0,"docs":{},"e":{"df":3,"docs":{"189":{"tf":1.0},"194":{"tf":1.0},"230":{"tf":1.0}}}}}},"u":{"df":0,"docs":{},"n":{"df":0,"docs":{},"i":{"df":0,"docs":{},"q":{"df":0,"docs":{},"u":{"df":1,"docs":{"180":{"tf":1.0}}}}}},"p":{"d":{"a":{"df":0,"docs":{},"t":{"df":2,"docs":{"130":{"tf":1.0},"250":{"tf":1.0}}}},"df":0,"docs":{}},"df":1,"docs":{"237":{"tf":1.0}},"g":{"df":0,"docs":{},"r":{"a":{"d":{"df":2,"docs":{"165":{"tf":1.0},"171":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}},"l":{"df":0,"docs":{},"o":{"a":{"d":{"df":2,"docs":{"144":{"tf":1.0},"146":{"tf":1.0}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"r":{"df":0,"docs":{},"i":{"df":1,"docs":{"64":{"tf":1.0}}},"l":{"df":5,"docs":{"167":{"tf":1.0},"183":{"tf":1.0},"210":{"tf":1.0},"216":{"tf":1.0},"63":{"tf":1.0}}}},"s":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"178":{"tf":1.0}}}},"df":0,"docs":{},"g":{"df":1,"docs":{"181":{"tf":1.0}}}},"df":20,"docs":{"10":{"tf":1.0},"115":{"tf":1.0},"150":{"tf":1.0},"160":{"tf":1.0},"163":{"tf":1.0},"164":{"tf":1.0},"21":{"tf":1.0},"210":{"tf":1.0},"22":{"tf":1.0},"23":{"tf":1.0},"232":{"tf":1.0},"233":{"tf":1.0},"238":{"tf":1.0},"240":{"tf":1.0},"243":{"tf":1.0},"259":{"tf":1.0},"260":{"tf":1.0},"262":{"tf":1.0},"77":{"tf":1.0},"79":{"tf":1.0}},"e":{"a":{"b":{"df":0,"docs":{},"l":{"df":1,"docs":{"252":{"tf":1.0}}}},"df":0,"docs":{}},"df":0,"docs":{}}}},"v":{"a":{"df":0,"docs":{},"l":{"df":0,"docs":{},"i":{"d":{"df":1,"docs":{"206":{"tf":1.0}}},"df":0,"docs":{}},"u":{"df":3,"docs":{"158":{"tf":1.0},"177":{"tf":1.0},"32":{"tf":1.0}}}},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":1,"docs":{"232":{"tf":1.0}}}}}}},"df":0,"docs":{},"e":{"df":0,"docs":{},"r":{"df":0,"docs":{},"i":{"df":0,"docs":{},"f":{"df":0,"docs":{},"i":{"df":4,"docs":{"103":{"tf":1.0},"255":{"tf":1.0},"256":{"tf":1.0},"258":{"tf":1.0}}}}}}},"s":{"df":5,"docs":{"143":{"tf":1.0},"214":{"tf":1.0},"215":{"tf":1.0},"216":{"tf":1.0},"229":{"tf":1.0}}}},"w":{"a":{"df":0,"docs":{},"n":{"df":0,"docs":{},"t":{"df":1,"docs":{"281":{"tf":1.0}}}},"y":{"df":1,"docs":{"149":{"tf":1.0}}}},"df":0,"docs":{},"e":{"'":{"df":0,"docs":{},"r":{"df":1,"docs":{"19":{"tf":1.0}}}},"b":{"df":1,"docs":{"199":{"tf":1.0}},"s":{"df":0,"docs":{},"o":{"c":{"df":0,"docs":{},"k":{"df":0,"docs":{},"e":{"df":0,"docs":{},"t":{"df":3,"docs":{"133":{"tf":1.0},"134":{"tf":1.0},"99":{"tf":1.0}}}}}},"df":0,"docs":{}}}},"df":0,"docs":{}},"i":{"df":0,"docs":{},"t":{"df":0,"docs":{},"h":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"t":{"df":1,"docs":{"157":{"tf":1.0}}}}}}}},"o":{"df":0,"docs":{},"r":{"df":0,"docs":{},"k":{"df":1,"docs":{"77":{"tf":1.0}}}}}},"y":{"df":0,"docs":{},"o":{"df":0,"docs":{},"u":{"df":0,"docs":{},"r":{"df":0,"docs":{},"s":{"df":0,"docs":{},"e":{"df":0,"docs":{},"l":{"df":0,"docs":{},"f":{"df":2,"docs":{"157":{"tf":1.0},"53":{"tf":1.0}}}}}}}}}}}}},"lang":"English","pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5"},"results_options":{"limit_results":30,"teaser_word_count":30},"search_options":{"bool":"OR","expand":true,"fields":{"body":{"boost":1},"breadcrumbs":{"boost":1},"title":{"boost":2}}}} \ No newline at end of file diff --git a/src/404.md b/src/404.md deleted file mode 100644 index 6457dc9..0000000 --- a/src/404.md +++ /dev/null @@ -1,3 +0,0 @@ -## Page is not found. - -Try **searching in the top bar**, the document you're looking for may have been moved! diff --git a/src/SUMMARY.md b/src/SUMMARY.md deleted file mode 100644 index 25f3a52..0000000 --- a/src/SUMMARY.md +++ /dev/null @@ -1,68 +0,0 @@ -## Table of contents - -* [Atomic Data Overview](atomic-data-overview.md) - * [Motivation](motivation.md) - * [Strategy, history and roadmap](roadmap.md) - * [When (not) to use it](when-to-use.md) - -# Specification (core) - -* [What is Atomic Data?](core/concepts.md) - * [Serialization](core/serialization.md) - * [JSON-AD](core/json-ad.md) - * [Querying](core/querying.md) - * [Paths](core/paths.md) - * [Schema](schema/intro.md) - * [Classes](schema/classes.md) - * [Datatypes](schema/datatypes.md) - * [FAQ](schema/faq.md) - -# Specification (extended) - -* [Atomic Data Extended](extended.md) - * [Agents](agents.md) - * [Hierarchy and authorization](hierarchy.md) - * [Authentication](authentication.md) - * [Invitations and sharing](invitations.md) - * [Commits (writing data)](commits/intro.md) - * [Concepts](commits/concepts.md) - * [Compared to](commits/compare.md) - * [WebSockets](websockets.md) - * [Endpoints](endpoints.md) - * [Collections, filtering, sorting](schema/collections.md) - * [Uploading and downloading files](files.md) - -# Create Atomic Data - -* [Atomizing](atomizing.md) - * [Using Atomic-Server](atomic-server.md) - * [Creating a JSON-AD file](create-json-ad.md) - * [Upgrade your existing project](interoperability/upgrade.md) - -# Use Atomic Data - -* [Interoperability and comparisons](interoperability/intro.md) - * [RDF](interoperability/rdf.md) - * [Solid](interoperability/solid.md) - * [JSON](interoperability/json.md) - * [IPFS](interoperability/ipfs.md) - * [SQL](interoperability/sql.md) - * [Graph Databases](interoperability/graph-database.md) -* [Potential use cases](usecases/intro.md) - * [As a Headless CMS](usecases/headless-cms.md) - * [In a React project](usecases/react.md) - * [Personal Data Store](usecases/personal-data-store.md) - * [Artificial Intelligence](usecases/ai.md) - * [E-commerce & marketplaces](usecases/e-commerce.md) - * [Surveys](usecases/surveys.md) - * [Verifiable Credentials](usecases/verifiable-credentials.md) - * [Data Catalog](usecases/data-catalog.md) - * [Education](usecases/education.md) - * [Food labels](usecases/food-labels.md) -* [**Software and libraries**](tooling.md) - ------------ - -[Acknowledgements](acknowledgements.md) | -[Newsletter](newsletter.md) | -[Get involved](get-involved.md) diff --git a/src/acknowledgements.md b/src/acknowledgements.md deleted file mode 100644 index e88ec6b..0000000 --- a/src/acknowledgements.md +++ /dev/null @@ -1,19 +0,0 @@ -# Acknowledgements - -## Authors: - -- **Joep Meindertsma** ([joepio](https://github.com/joepio/) from [Ontola.io](https://ontola.io/)) - -## Special thanks to: - -- **Thom van Kalkeren** (my colleague, friend and programming mentor who came up with many great ideas on how to work with RDF, such as [HexTuples](https://github.com/ontola/hextuples) and [linked-delta](https://github.com/ontola/linked-delta)) -- **Tim Berners-Lee** (for everything he did for linked data and the web) -- **Ruben Verborgh** (for doing great work with RDF, such as the TPF spec) -- **Pat McBennett** (for lots of valuable feedback on initial Atomic Data docs) -- **Manu Sporny** (for his work on JSON-LD, which was an important inspiration for JSON-AD) -- **Jonas Smedegaard** (for the various interesting talks we had and the feedback he provided) -- **Arthur Dingemans** (for sharing his thoughts, providing feedback and his valuable suggestions) -- **Anja Koopman** (for all her support, even when this project ate away days and nights of our time together) -- **Alex Mikhalev** (for sharing many inspiring project and ideas) -- **Daniel Lutrha** (for inspiring me to be more ambitious and for providing lots of technical ideas) -- All the other people who contributed to linked data related standards diff --git a/src/agents.md b/src/agents.md deleted file mode 100644 index 35d9b41..0000000 --- a/src/agents.md +++ /dev/null @@ -1,35 +0,0 @@ -{{#title Atomic Data Agents - Users and identities }} -# Atomic Agents - -Atomic Agents are used for [authentication](./authentication.md): to set an identity and prove who an actor actually is. -Agents can represent both actual individuals, or machines that interact with data. -Agents are the entities that can get write / read rights. -Agents are used to sign Requests and [Commits](commits/intro.md) and to accept [Invites](invitations.md). - -## Design goals - -- **Decentralized**: Atomic Agents can be created by anyone, at any domain -- **Easy**: It should be easy to work with, code with, and use -- **Privacy-friendly**: Agents should allow for privacy friendly workflows -- **Verifiable**: Others should be able to verify who did what -- **Secure**: Resistant to attacks by malicious others - -## The Agent model - -_url: https://atomicdata.dev/classes/Agent_ - -An Agent is a Resource with its own URL. -When it is created, the one creating the Agent will generate a cryptographic (Ed25519) keypair. -It is _required_ to include the [`publicKey`](https://atomicdata.dev/properties/publicKey) in the Agent resource. -The [`privateKey`](https://atomicdata.dev/properties/privateKey) should be kept secret, and should be safely stored by the creator. -For convenience, a `secret` can be generated, which is a single long string of characters that encodes both the `privateKey` and the `subject` of the Agent. -This `secret` can be used to instantly, easily log in using a single string. - -The `publicKey` is used to verify commit signatures by that Agent, to check if that Agent actually did create and sign that Commit. - -## Creating an Agent - -Since an Agent is used for verification of commits, the Agent's `subject` should resolve and be publicly available. -This means that the one creating the Agent has to deal with this. -One way of doing this, is by hosting an [Atomic Server](https://crates.io/crates/atomic-server). -An easier way of doing this, is by accepting an [Invite](invitations.md) that exists on someone else's server. diff --git a/src/atomic-data-overview.md b/src/atomic-data-overview.md deleted file mode 100644 index 468bd5d..0000000 --- a/src/atomic-data-overview.md +++ /dev/null @@ -1,63 +0,0 @@ -{{#title Atomic Data}} -![# Atomic Data Docs - Overview](assets/atomic_data_logo_stroke.svg) - -**Atomic Data is a modular specification for sharing, modifying and modeling graph data. It combines the ease of use of JSON, the connectivity of RDF (linked data) and the reliability of type-safety.** - -![Venn diagram showing Atomic Data is the combination of JSON, RDF and Type-Safety](assets/venn.svg) - -Atomic Data uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines. - -Atomic Data has been designed with [the following goals in mind](motivation.md): - -- Give people more control over their data -- Make linked data easier to use -- Make it easier for developers to build highly interoperable apps -- Make standardization easier and cheaper - -Atomic Data is [Linked Data](https://ontola.io/what-is-linked-data/), as it is a [strict subset of RDF](interoperability/rdf.md). -It is type-safe (you know if something is a `string`, `number`, `date`, `URL`, etc.) and extensible through [Atomic Schema](schema/intro.md), which means that you can re-use or define your own Classes, Properties and Datatypes. - -The default serialization format for Atomic Data is [JSON-AD](core/json-ad.md), which is simply JSON where each key is a URL of an Atomic Property. -These Properties are responsible for setting the `datatype` (to ensure type-safety) and setting `shortnames` (which help to keep names short, for example in JSON serialization) and `descriptions` (which provide semantic explanations of what a property should be used for). - -[Read more about Atomic Data Core](core/concepts.md) - -## Atomic Data Extended - -Atomic Data Extended is a set of extra modules (on top of Atomic Data Core) that deal with data that changes over time, authentication, and authorization. - -{{#include extended-table.md}} - -## Atomizing: how to create, convert and host Atomic Data - -Atomic Data has been designed to be very easy to create and host. -In the Atomizing section, we'll show you how you can create Atomic Data in three ways: - -- [Using Atomic Server, from your browser](atomic-server.md) -- [By creating JSON-AD (and optionally importing it)](create-json-ad.md) -- [By upgrading your existing application](interoperability/upgrade.md) - -## Tools & libraries - -- Browser app [atomic-data-browser](https://github.com/atomicdata-dev/atomic-data-browser) ([demo on atomicdata.dev](https://atomicdata.dev)) -- Build a react app using [typescript & react libraries](https://github.com/atomicdata-dev/atomic-data-browser). Start with the [react template on codesandbox](https://codesandbox.io/s/atomic-data-react-template-4y9qu?file=/src/MyResource.tsx) -- Host your own [atomic-server](https://github.com/atomicdata-dev/atomic-server) (powers [atomicdata.dev](https://atomicdata.dev), run with `docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server`) -- Discover the command line tool: [atomic-cli](https://github.com/atomicdata-dev/atomic-server) (`cargo install atomic-cli`) -- Use the Rust library: [atomic-lib](https://github.com/atomicdata-dev/atomic-server) - -## Get involved - -Make sure to [join our Discord](https://discord.gg/a72Rv2P) if you'd like to discuss Atomic Data with others. - -## Status - -Keep in mind that none of the Atomic Data projects has reached a v1, which means that breaking changes can happen. - -## Reading these docs - -This is written mostly as a book, so reading it in the order of the Table of Contents will probably give you the best experience. -That being said, feel free to jump around - links are often used to refer to earlier discussed concepts. -If you encounter any issues while reading, please leave an [issue on Github](https://github.com/ontola/atomic-data/issues). -Use the arrows on the side / bottom to go to the next page. - -{{#include SUMMARY.md}} diff --git a/src/atomic-server.md b/src/atomic-server.md deleted file mode 100644 index cfe0295..0000000 --- a/src/atomic-server.md +++ /dev/null @@ -1,124 +0,0 @@ -# Creating Atomic Data using Atomic-Server - -Here is everything you need to get started: - -- [Atomic-Server and its features](#atomic-server-and-its-features) -- [Running Atomic-Server locally (optional)](#running-atomic-server-locally-optional) -- [Creating an Agent](#creating-an-agent) -- [Creating your first Atomic Data](#creating-your-first-atomic-data) -- [There's more!](#theres-more) - -## Atomic-Server and its features - -[`Atomic-Server`](https://github.com/atomicdata-dev/atomic-server/blob/master/server/README.md) is the _reference implementation_ of the Atomic Data Core + Extended specification. -It was developed parallel to this specification, and it served as a testing ground for various ideas (some of which didn't work, and some of which ended up in the spec). - -Atomic-Server is a graph database server for storing and sharing typed linked data. -It's free, open source (MIT license), and has a ton of features: - -- ⚛️ **Dynamic schema validation** / type checking using [Atomic Schema](https://docs.atomicdata.dev/schema/intro.html). Combines safety of structured data with the -- 🚀 **Fast** (1ms responses on my laptop) -- 🪶 **Lightweight** (15MB binary, no runtime dependencies) -- 💻 **Runs everywhere** (linux, windows, mac, arm) -- 🌐 **Embedded server** with support for HTTP / HTTPS / HTTP2.0 and Built-in LetsEncrypt handshake. -- 🎛️ **Browser GUI included** powered by [atomic-data-browser](https://github.com/atomicdata-dev/atomic-data-browser). Features dynamic forms, tables, authentication, theming and more. -- 💾 **Event-sourced versioning** / history powered by [Atomic Commits](https://docs.atomicdata.dev/commits/intro.html) -- 🔄 **Synchronization using websockets**: communicates state changes with a client. Send a `wss` request to `/ws` to open a webscocket. -- 🧰 **Many serialization options**: to JSON, [JSON-AD](https://docs.atomicdata.dev/core/json-ad.html), and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). -- 🔎 **Full-text search** with fuzzy search and various operators, often <3ms responses. -- 📖 **Pagination, sorting and filtering** using [Atomic Collections](https://docs.atomicdata.dev/schema/collections.html) -- 🔐 **Authorization** (read / write permissions) and Hierarchical structures powered by [Atomic Hierarchy](https://docs.atomicdata.dev/hierarchy.html) -- 📲 **Invite and sharing system** with [Atomic Invites](https://docs.atomicdata.dev/invitations.html) -- 📂 **File management**: Upload, download and preview attachments. -- 🖥️ **Desktop app**: Easy desktop installation, with status bar icon, powered by [tauri](https://github.com/tauri-apps/tauri/). - -## Running Atomic-Server locally (optional) - -In this guide, we'll can simply use `atomicdata.dev` in our browser without installing anything. -So you can skip this step and go to _Creating your first Atomic Data_. -But if you want to, you can run Atomic-Server on your machine in a couple of ways: - -- **Using a desktop installer**: download a desktop release from the [`releases`](https://github.com/atomicdata-dev/atomic-server/releases) page and install it using your desktop GUI. -- **Using a binary**: download a binary release from the [`releases`](https://github.com/atomicdata-dev/atomic-server/releases) page and open it using a terminal. -- **Using Docker** is probably the quickest: `docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server`. -- **Using Cargo**: `cargo install atomic-server` and then run `atomic-server` to start. - -_[Atomic-Server's README](https://github.com/atomicdata-dev/atomic-server) contains more (and up-to-date) information about how to use it!_ - -Open your server in your browser. -By default, that's [`http://localhost:9883`](http://localhost:9883). -Fun fact: `⚛` is HTML entity code for the Atom icon: ⚛. - -The first screen should show you your [_Drive_](https://atomicdata.dev/classes/Drive). -You can think of this as your root folder. -It is the resource hosted at the root URL, effectively being the home page of your server. - -There's an instruction on the screen about the `/setup` page. -Click this, and you'll get a screen showing an [_Invite_](https://atomicdata.dev/classes/Invite). -Normally, you could `Accept as new user`, but since you're running on `localhost`, you won't be able to use the newly created Agent on non-local Atomic-Servers. -Therefore, it may be best to create an Agent on some _other_ running server, such as the [demo Invite on AtomicData.dev](https://atomicdata.dev/invites/1). -And after that, copy the Secret from the `User settings` panel from AtomicData.dev, go back to your `localhost` version, and press `sign in`. -Paste the Secret, and voila! You're signed in. - -Now, again go to `/setup`. This time, you can `Accept as {user}`. -After clicking, your Agent has gotten `write` rights for the Drive! -You can verify this by hovering over the description field, clicking the edit icon, and making a few changes. -You can also press the menu button (three dots, top left) and press `Data view` to see your agent after the `write` field. -Note that you can now edit every field. -You can also fetch your data now as various formats. - -Try checking out the other features in the menu bar, and check out the `collections`. - -Again, check out the [README](https://github.com/atomicdata-dev/atomic-server) for more information and guides! - -Now, let's create some data. - -## Creating an Agent - -Before you can create new things on AtomicData.dev, you'll need an _Agent_. -This is your virtual User, which can create, sign and own things. - -Simply open the [demo invite](https://atomicdata.dev/invites/1) and press accept. -And you're done! - - -## Creating your first Atomic Data - -Now let's create a [_Class_](https://atomicdata.dev/classes/Class). -A Class represents an abstract concept, such as a `BlogPost` (which we'll do here). -We can do this in a couple of ways: - -- Press the `+ icon` button on the left menu (only visible when logged in), and selecting Class -- Opening [Class](https://atomicdata.dev/classes/Class) and pressing `new class` -- Going to the [Classes Collection](https://atomicdata.dev/classes/) and pressing the plus icon - -The result is the same: we end up with a form in which we can fill in some details. - -Let's add a shortname (singular), and then a description. - -After that, we'll add the `required` properties. -This form you're looking at is constructed by using the `required` and `recommended` Properties defined in `Class`. -We can use these same fields to generate our BlogPost resource! -Which fields would be required in a `BlogPost`? -A `name`, and a `description`, probably. - -So click on the `+ icon` under `requires` and search for these Properties to add them. - -Now, we can skip the `recommended` properties, and get right to saving our newly created `BlogPost` class. -So, press save, and now look at what you created. - -Notice a couple of things: - -- Your Class has its own URL. -- It has a `parent`, shown in the top of the screen. This has impact on the visibility and rights of your Resource. We'll get to that [later in the documentation](./hierarchy.md). - -Now, go to the navigation bar, which is by default at the bottom of the window. Use its context menu to open the `Data View`. -This view gives you some more insight into your newly created data, and various ways in which you can serialize it. - -## There's more! - -This was just a very brief introduction to Atomic Server, and its features. -There's quite a bit that we didn't dive in to, such as versioning, file uploads, the collaborative document editor and more... -But by clicking around you're likely to discover these features for yourself. - -In the next page, we'll dive into how you can create an publish JSON-AD files. diff --git a/src/atomizing.md b/src/atomizing.md deleted file mode 100644 index c483f81..0000000 --- a/src/atomizing.md +++ /dev/null @@ -1,21 +0,0 @@ -# Atomizing: How to create and publish Atomic Data - -Now that we're familiar with the basics of Atomic Data Core and its Schema, it's time to create some Atomic Data! -We call the process of turning data into Atomic Data _Atomizing_. -During this process, we **upgrade the data quality**. -Our information becomes more valuable. -Let's summarize what the advantages are: - -- Your data becomes **available on the web** (publicly, if you want it to) -- It can now **link to other data**, an become part of a bigger web of data -- It becomes **strictly typed**, so developers can easily and safely re-use it in their software -- It becomes **easier to understand**, because people can look at the Properties and see what they mean -- It can be **easily converted** into many formats (JSON, Turtle, CSV, XML, more...) - -## Three ways to Atomize data - -In general, there are three ways to create Atomic Data: - -- [Using the **Atomic-Server** app + GUI](./atomic-server.md) (easy, only for direct user input) -- [Create an **importable JSON-AD file**](./create-json-ad.md) (medium, useful if you want to convert existing data) -- [Make your existing service / app **host and serialize Atomic Data**](./interoperability/upgrade.md) (hard, if you want to make your entire app be part of the Atomic Web!) diff --git a/src/authentication.md b/src/authentication.md deleted file mode 100644 index fee1d6b..0000000 --- a/src/authentication.md +++ /dev/null @@ -1,140 +0,0 @@ -# Authentication in Atomic Data - -Authentication means knowing _who_ is doing something, either getting access or creating some new data. -When an Agent wants to _edit_ a resource, they have to send a signed [Commit](commits/intro.md), and the signatures are checked in order to authorize a Commit. - -But how do we deal with _reading_ data, how do we know who is trying to get access? -There are two ways users can authenticate themselves: - -- Signing an `Authentication Resource` and using that as a cookie -- Opening a WebSocket, and passing an `Authentication Resource`. -- Signing every single HTTP request (more secure, less flexible) - -## Design goals - -- **Secure**: Because, what's the point of authentication if it's not? -- **Easy to use**: Setting up an identity should not require _any_ effort, and proving identity should be minimal effort. -- **Anonimity allowed**: Users should be able to have multiple identities, some of which are fully anonymous. -- **Self-sovereign**: No dependency on servers that user's don't control. Or at least, minimise this. -- **Dummy-proof**: We need a mechanism for dealing with forgetting passwords / client devices losing data. -- **Compatible with Commits**: Atomic Commits require clients to sign things. Ideally, this functionality / strategy would also fit with the new model. -- **Fast**: Of course, authentication will always slow things down. But let's keep that to a minimum. - -## Authentication Resources - -An _Authentication Resource_ is a JSON-AD object containing all the information a Server needs to make sure a valid Agent requests a session at some point in time. -These are used both in Cookie-based auth, as well as in [WebSockets](websockets.md) - -We use the following fields (be sure to use the full URLs in the resource, see the example below): - -- `requestedSubject`: The URL of the requested resource. - - If we're authenticating a *WebSocket*, we use the `wss` address as the `requestedSubject`. (e.g. `wss://example.com/ws`) - - If we're authenticating a *Cookie* of *Bearer token*, we use the origin of the server (e.g. `https://example.com`) - - If we're authentication a *single HTTP request*, use the same URL as the `GET` address (e.g. `https://example.com/myResource`) -- `agent`: The URL of the Agent requesting the subject and signing this Authentication Resource. -- `publicKey`: base64 serialized ED25519 public key of the agent. -- `signature`: base64 serialized ED25519 signature of the following string: `{requestedSubject} {timestamp}` (without the brackets), signed by the private key of the Agent. -- `timestamp`: Unix timestamp of when the Authentication was signed -- `validUntil` (optional): Unix timestamp of when the Authentication should be no longer valid. If not provided, the server will default to 30 seconds from the `timestamp`. - -Here's what a JSON-AD Authentication Resource looks like for a WebSocket: - -```json -{ - "https://atomicdata.dev/properties/auth/agent": "http://example.com/agents/N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=", - "https://atomicdata.dev/properties/auth/requestedSubject": "wss://example.com/ws", - "https://atomicdata.dev/properties/auth/publicKey": "N32zQnZHoj1LbTaWI5CkA4eT2AaJNBPhWcNriBgy6CE=", - "https://atomicdata.dev/properties/auth/timestamp": 1661757470002, - "https://atomicdata.dev/properties/auth/signature": "19Ce38zFu0E37kXWn8xGEAaeRyeP6EK0S2bt03s36gRrWxLiBbuyxX3LU9qg68pvZTzY3/P3Pgxr6VrOEvYAAQ==" -} -``` - -## Atomic Cookies Authentication - -In this approach, the client creates and signs a Resource that proves that an Agent wants to access a certain server for some amount of time. -This Authentication Resource is stored as a cookie, and passed along in every HTTP request to the server. - -### Setting the cookie - -1. Create a signed Authentication object, as described above. -2. Serialize it as JSON-AD, then as a base64 string. -3. Store it in a Cookie: - 1. Name the cookie `atomic_session` - 2. The expiration date of the cookie should be set, and should match the expiration date of the Authentication Resource. - 3. Set the `Secure` attribute to prevent Man-in-the-middle attacks over HTTP - -## Bearer Token Authentication - -Similar to creating the Cookie, except that we pass the base64 serialized Authentication Resource as a Bearer token in the `Authorization` header. - -```http -GET /myResource HTTP/1.1 -Authorization: Bearer {base64 serialized Authentication Resource} -``` - -In Data Browser, you can find the `token` tab in `/app/token` to create a token. - -## Authenticating Websockets - -After [opening a WebSocket connection](websockets.md), create an Authentication Resource. -Send a message like so: `AUTHENTICATE {authenticationResource}`. -The server will only respond if there is something wrong. - -## Per-Request Signing - -Atomic Data allows **signing every HTTP request**. -This method is most secure, since a MITM attack would only give access to the specific resource requested, and only for a short amount of time. -Note that signing every single request takes a bit of time. -We picked a fast algorithm (Ed25519) to minimize this cost. - -### HTTP Headers - -All of the following headers are required, if you need authentication. - -- `x-atomic-public-key`: The base64 public key (Ed25519) of the Agent sending the request -- `x-atomic-signature`: A base64 signature of the following string: `{subject} {timestamp}` -- `x-atomic-timestamp`: The current time (when sending the request) as milliseconds since unix epoch -- `x-atomic-agent`: The subject URL of the Agent sending the request. - -### Sending a request - -Here's an example (js) client side implementation with comments: - -```ts -// The Private Key of the agent is used for signing -// https://atomicdata.dev/properties/privateKey -const privateKey = "someBase64Key"; -const timestamp = Math.round(new Date().getTime());; -// This is what you will need to sign. -// The timestmap is to limit the harm of a man-in-the-middle attack. -// The `subject` is the full HTTP url that is to be fetched. -const message = `${subject} ${timestamp}`; -// Sign using Ed25519, see example implementation here: https://github.com/atomicdata-dev/atomic-data-browser/blob/30b2f8af59d25084de966301cb6bd1ed90c0eb78/lib/src/commit.ts#L176 -const signed = await signToBase64(message, privateKey); -// Set all of these headers -const headers = new Headers; -headers.set('x-atomic-public-key', await agent.getPublicKey()); -headers.set('x-atomic-signature', signed); -headers.set('x-atomic-timestamp', timestamp.toString()); -headers.set('x-atomic-agent', agent?.subject); -const response = await fetch(subject, {headers}); -``` - -## Verifying an Authentication - -- If none of the `x-atomic` HTTP headers are present, the server assigns the [PublicAgent](https://atomicdata.dev/agents/publicAgent) to the request. This Agent represents any guest who is not signed in. -- If some (but not all) of the `x-atomic` headers are present, the server will return with a `500`. -- The server must check if the `validUntil` has not yet passed. -- The server must check whether the public key matches the one from the Agent. -- The server must check if the signature is valid. -- The server should check if the request resource can be accessed by the Agent using [hierarchy](hierarchy.md) (e.g. check `read` right in the resource or its parents). - -## Hierarchies for authorization - -Atomic Data uses [Hierarchies](hierarchy.md) to describe who gets to access some resource, and who can edit it. - -## Limitations / considerations - -- Since we need the Private Key to sign Commits and requests, the client should have this available. This means the client software as well as the user should deal with key management, and that can be a security risk in some contexts (such as a web browser). [See issue #49](https://github.com/ontola/atomic-data-docs/issues/49). -- When using the Agent's subject to authenticate somewehere, the authorizer must be able to check what the public key of the agent is. This means the agent must be publicly resolvable. This is one of the reasons we should work towards a server-independent identifier, probably as base64 string that contains the public key (and, optionally, also the https identifier). See [issue #59 on DIDs](https://github.com/ontola/atomic-data-docs/issues/59). -- We'll probably also introduce some form of token-based-authentication created server side in the future. [See #87](https://github.com/ontola/atomic-data-docs/issues/87) diff --git a/src/commits/compare.md b/src/commits/compare.md deleted file mode 100644 index cfa776f..0000000 --- a/src/commits/compare.md +++ /dev/null @@ -1,295 +0,0 @@ -{{#title Atomic Commits compared to other (RDF) delta models}} -# Atomic Commits compared to other (RDF) delta models - -Let's compare the [Atomic Commit](concepts.md) approach with some existing protocols for communicating state changes / patches / mutations / deltas in linked data, JSON and text files. -First, I'll briefly discuss the existing examples ([open a PR / issue](https://github.com/ontola/atomic-data/issues) if we're missing something!). -After that, we'll discuss how Atomic Data differs from the existing ones. - -## Git - -This might be an odd one in this list, but it is an interesting one nonetheless. -Git is an incredibly popular version control system that is used by most software developers to manage their code. -It's a decentralized concept which allows multiple computers to share a log of _commits_, which together represent a folder with its files and its history. -It uses hashing to represent (parts of) data (which keeps the `.git` folder compact through deduplication), and uses cryptographic keys to sign commits and verify authorship. -It is designed to work in the paradigm of text files, newlines and folders. -Since most data _can_ be represented as text files in a folder, Git is very flexible. -This is partly because people are familiar with Git, but also because it has a great ecosystem - platforms such as Github provide a clean UI, cloud storage, issue tracking, authorization, authentication and more _for free_, as long as you use Git to manage your versions. - -However, Git doesn't work great for structured data - especially when it changes a lot. -Git, on its own, does not perform any validations on integrity of data. -Git also does not adhere to some standardized serialization format for storing commits, which makes sense, because it was designed as a tool to solve a problem, and not as some standard that is to be used in various other systems. -Also, git is kind of a heavyweight abstraction for many applications. -It is designed for collaborating on open source projects, which means dealing with decentralized data storage and merge conflicts - things that might not be required in other kinds of scenarios. - -## RDF mutation systems - -Let's move on to specifications that mutate RDF specifically: - -### .n3 Patch - -N3 Patch is [part of the Solid spec](https://solidproject.org/TR/protocol#writing-resources), since december 2021. - -It uses the N3 serialization format to describe changes to RDF documents. - -``` -@prefix solid: - -<> solid:patches ; - solid:where { ?a . }; - solid:inserts { ?a . }; - solid:deletes { ?a . }. -``` - -### RDF-Delta - -[https://afs.github.io/rdf-delta/](https://afs.github.io/rdf-delta/) - -Describes changes (RDF Patches) in a specialized turtle-like serialization format. - -``` -TX . -PA "rdf" "http://www.w3.org/1999/02/22-rdf-syntax-ns#" . -PA "owl" "http://www.w3.org/2002/07/owl#" . -PA "rdfs" "http://www.w3.org/2000/01/rdf-schema#" . -A . -A . -A "SubClass" . -TC . -``` - -Similar to Atomic Commits, these Delta's should have identifiers (URLs), which are denoted in a header. - -### Delta-LD - -[http://www.tara.tcd.ie/handle/2262/91407]() - -Spec for classifying and representing state changes between two RDF resources. -I wasn't able to find a serialization or an implementation for this. - -### PatchR - -[https://www.igi-global.com/article/patchr/135561]() - -An ontology for RDF change _requests_. -Looks very interesting, but I'm not able to find any implementations. - -```turtle -prefix : . -@prefix rdf: . -@prefix rdfs: . -@prefix pat: . -@prefix guo: . -@prefix prov: . -@prefix xsd: . -@prefix dbp: . -@prefix dbo: . - -:Patch_15 a pat:Patch ; - pat:appliesTo ; - pat:status pat:Open ; - pat:update [ - a guo:UpdateInstruction ; - guo:target_graph ; - guo:target_subject dbp:Oregon ; - guo:delete [dbo:language dbp:De_jure ] ; - guo:insert [dbo:language dbp:English_language ] - ] ; - prov:wasGeneratedBy [a prov:Activity ; - pat:confidence "0.5"^^xsd:decimal ; - prov:wasAssociatedWith :WhoKnows ; - prov:actedOnBehalfOf :WhoKnows#Player_25 ; - prov:performedAt "..."^^xsd:dateTime ] . -``` - -### LD-Patch - -[https://www.w3.org/TR/ldpatch/]() - -This offers quite a few features besides adding and deleting triples, such as updating lists. -It's a unique serialization format, inspired by turtle. -Some implementations exists, such as one in [ruby](https://github.com/ruby-rdf/ld-patch) which is - -``` -PATCH /timbl HTTP/1.1 -Host: example.org -Content-Length: 478 -Content-Type: text/ldpatch -If-Match: "abc123" - -@prefix rdf: . -@prefix schema: . -@prefix profile: . -@prefix ex: . - -Delete { <#> profile:first_name "Tim" } . -Add { - <#> profile:first_name "Timothy" ; - profile:image . -} . - -Bind ?workLocation <#> / schema:workLocation . -Cut ?workLocation . - -UpdateList <#> ex:preferredLanguages 1..2 ( "fr-CH" ) . - -Bind ?event <#> / schema:performerIn [ / schema:url = ] . -Add { ?event rdf:type schema:Event } . - -Bind ?ted / ^schema:url ! . -Delete { ?ted schema:startDate "2009-02-04" } . -Add { - ?ted schema:location [ - schema:name "Long Beach, California" ; - schema:geo [ - schema:latitude "33.7817" ; - schema:longitude "-118.2054" - ] - ] -} . -``` - -### Linked-Delta - -[https://github.com/ontola/linked-delta]() - -An N-Quads serialized delta format. -Methods are URLs, which means they are extensible. -Does not specify how to bundle lines. -Used in production of a web app that we're working on ([Argu.co](https://argu.co)). -Designed with simplicity (no new serialization format, simple to parse) and performance in mind by my colleague Thom van Kalkeren. - -``` -Initial state: - - "Old value 🙈" . - -Linked-Delta: - - "New value 🐵" . - -New state: - - "New value 🐵" . -``` - - -### JSON-LD-PATCH - -[https://github.com/digibib/ls.ext/wiki/JSON-LD-PATCH]() - -A JSON denoted patch notation for RDF. -Seems similar to the [RDF/JSON](https://www.w3.org/TR/rdf-json/) serialization format. -Uses string literals as operators / methods. -Conceptually perhaps most similar to linked-delta. - -Has a [JS implementation](https://developer.aliyun.com/mirror/npm/package/jsonld-patch). - -``` -[ - { - "op": "add", - "s": "http://example.org/my/resource", - "p": "http://example.org/ontology#title", - "o": { - "value": "New Title", - "type": "http://www.w3.org/2001/XMLSchema#string" - } - } -] -``` - -### SPARQL UPDATE - -[https://www.w3.org/TR/sparql11-update/]() - -SPARQL queries that change data. - -```sparql -PREFIX dc: -INSERT DATA -{ - dc:title "A new book" ; - dc:creator "A.N.Other" . -} -``` - -Allows for very powerful queries, combined with updates. -E.g. rename all persons named `Bill` to `William`: - -``` -PREFIX foaf: - -WITH -DELETE { ?person foaf:givenName 'Bill' } -INSERT { ?person foaf:givenName 'William' } -WHERE - { ?person foaf:givenName 'Bill' - } -``` - -SPARQL Update is the most powerful of the formats, but also perhaps the most difficult to implement and understand. - -## JSON-PATCH - -[http://jsonpatch.com/]() - -A simple way to edit JSON objects: - -``` -The original document - -{ - "baz": "qux", - "foo": "bar" -} - -The patch - -[ - { "op": "replace", "path": "/baz", "value": "boo" }, - { "op": "add", "path": "/hello", "value": ["world"] }, - { "op": "remove", "path": "/foo" } -] - -The result - -{ - "baz": "boo", - "hello": ["world"] -} -``` - -It uses the [JSON-Pointer spec](http://tools.ietf.org/html/rfc6901) for denoting `path`s. -It has quite a bunch of implementations, in various languages. - - -## Atomic Commits - how it's different and why it exists - -Let's talk about the differences between the concepts above and Atomic Commits. - -For starters, Atomic Commits can only work with a _specific subset_ of RDF, namely Atomic Data. -RDF allows for blank nodes, does not have subject-predicate uniqueness and offers named graphs - which all make it hard to unambiguously select a single value. -Most of the alternative patch / delta models described above had to support these concepts. -Atomic Data is more strict and constrained than RDF. -It does not support named graphs and blank nodes. -This enables a simpler approach to describing state changes, but it also means that Atomic Commits will not work with most existing RDF data. - -Secondly, individual Atomic Commits are tightly coupled to specific Resources. -A single Commit cannot change multiple resources - and most of the models discussed above to enable this. -This is a big constraint, and it does not allow for things like compact migrations in a database. -However, this resource-bound constraint opens up some interesting possibilities: - -- it becomes easier to combine it with _authorization_ (i.e. check if the person has the correct rights to edit some resource): simply check if the Author has the rights to edit the Subject. -- it makes it easier to find all Commits for a Resource, which is useful when constructing a history / audit log / previous version. - -Thirdly, Atomic Commits don't introduce a new serialization format. -It's just JSON. -This means that it will feel familiar for most developers, and will be supported by many existing environments. - -Finally, Atomic Commits use cryptography (hashing) to determine authenticity of commits. -This concept is borrowed from git commits, which also uses signatures to prove authorship. -As is the case with git, this also allows for verifiable P2P sharing of changes. diff --git a/src/commits/concepts.md b/src/commits/concepts.md deleted file mode 100644 index 8584814..0000000 --- a/src/commits/concepts.md +++ /dev/null @@ -1,117 +0,0 @@ -{{#title Atomic Commits: Concepts}} -# Atomic Commits: Concepts - -## Commit - -_url: [https://atomicdata.dev/classes/Commit](https://atomicdata.dev/classes/Commit)_ - -A Commit is a Resource that describes how a Resource must be updated. -It can be used for auditing, versioning and feeds. -It is cryptographically signed by an [Agent](https://atomicdata.dev/classes/Agent). - -The **required fields** are: - -- `subject` - The thing being changed. A Resource Subject URL (HTTP identifier) that the Commit is changing about. A Commit Subject must not contain query parameters, as these are reserved for dynamic resources. -- `signer` - Who's making the change. The Atomic URL of the Author's profile - which in turn must contain a `publicKey`. -- `signature` - Cryptographic proof of the change. A hash of the JSON-AD serialized Commit (without the `signature` field), signed by the Agent's `private-key`. This proves that the author is indeed the one who created this exact commit. The signature of the Commit is also used as the identifier of the commit. -- `created-at` - When the change was made. A UNIX timestamp number of when the commit was created. - -The **optional method fields** describe how the data must be changed: - -- `destroy` - If true, the existing Resource will be removed. -- `remove` - an array of Properties that need to be removed (including their values). -- `set` - a Nested Resource which contains all the new or edited fields. -- `push` - a Nested Resource which contains all the fields that are _appended_ to. This means adding items to a new or existing ResourceArray. - -These commands are executed in the order above. -This means that you can set `destroy` to `true` and include `set`, which empties the existing resource and sets new values. - -### Posting commits using HTTP - -Since Commits contains cryptographic proof of authorship, they can be accepted at a public endpoint. -There is no need for authentication. - -A commit should be sent (using an HTTPS POST request) to a `/commmit` endpoint of an Atomic Server. -The server then checks the signature and the author rights, and responds with a `2xx` status code if it succeeded, or an `5xx` error if something went wrong. -The error will be a JSON object. - -### Serialization with JSON-AD - -Let's look at an example Commit: - -```json -{ - "@id": "https://atomicdata.dev/commits/3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==", - "https://atomicdata.dev/properties/createdAt": 1611489929370, - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Commit" - ], - "https://atomicdata.dev/properties/set": { - "https://atomicdata.dev/properties/shortname": "1611489928" - }, - "https://atomicdata.dev/properties/signature": "3n+U/3OvymF86Ha6S9MQZtRVIQAAL0rv9ZQpjViht4emjnqKxj4wByiO9RhfL+qwoxTg0FMwKQsNg6d0QU7pAw==", - "https://atomicdata.dev/properties/signer": "https://surfy.ddns.net/agents/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=", - "https://atomicdata.dev/properties/previousCommit": "https://surfy.ddns.net/commits/9YCs7htDdF4yBAiA4HuHgjsafg+xZIrtZNELz4msCmc=", - "https://atomicdata.dev/properties/subject": "https://atomicdata.dev/test" -} -``` - -This Commit can be sent to any Atomic Server. -This server, in turn, should verify the signature and the author's rights before the server applies the Commit. - -### Calculating the signature - -The signature is a base64 encoded Ed25519 signature of the deterministically serialized Commit. -Calculating the signature is a delicate process that should be followed to the letter - even a single character in the wrong place will result in an incorrect signature, which makes the Commit invalid. - -The first step is **serializing the commit deterministically**. -This means that the process will always end in the exact same string. - -- Serialize the Commit as JSON-AD. -- Do not serialize the signature field. -- Do not include empty objects or arrays. -- If `destroy` is false, do not include it. -- All keys are sorted alphabetically - both in the root object, as in any nested objects. -- The JSON-AD is minified: no newlines, no spaces. - -This will result in a string. -The next step is to sign this string using the Ed25519 private key from the Author. -This signature is a byte array, which should be encoded in base64 for serialization. -Make sure that the Author's URL resolves to a Resource that contains the linked public key. - -Congratulations, you've just created a valid Commit! - -Here are currently working implementations of this process, including serialization and signing (links are permalinks). - -- [in Rust (atomic-lib)](https://github.com/atomicdata-dev/atomic-server/blob/ceb88c1ae58811f2a9e6bacb7eaa39a2a7aa1513/lib/src/commit.rs#L81). -- [in Typescript / Javascript (atomic-data-browser)](https://github.com/atomicdata-dev/atomic-data-browser/blob/fc899bb2cf54bdff593ee6b4debf52e20a85619e/src/atomic-lib/commit.ts#L51). - -If you want validate your implementation, check out the tests for these two projects. - -### Applying the Commit - -If you're on the receiving end of a Commit (e.g. if you're writing a server or a client who has to parse Commits), you will _apply_ the Commit to your Store. -If you have to _persist_ the Commit, you must perform all of the checks. -If you're writing a client, and you trust the source of the Commit, you can probably skip the validation steps. - -Here's how you apply a Commit: - -1. Check if the Subject URL is valid -2. Validate the signature. This means serialize the Commit deterministically (see above), check the Agent's publickey (you might need to fetch this one), verify if the signature matches. -3. Check if the timestamp matches is OK. I think an acceptable window is 10 seconds. -4. If the Commit is for an existing resource, get it. -5. Validate the Rights of the one making the Commit. -6. Check if the `previousCommit` of the Commit matches with the `previousCommit` of the Resource. -7. Iterate over the `set` fields. Overwrite existing, or add the new Values. Make sure the Datatypes match with the respective Properties. -8. Iterate over the `remove` fields. Remove existing properties. -9. If the Resource has one or more classes, check if the required Properties are there. -10. You might want to perform some custom validations now (e.g. if you accept an Invite, you should make sure that the one creating the Invite has the correct rights to actually make it!) -11. Store the created Commit as a Resource, and store the modified Resource! - -## Limitations - -- Commits adjust **only one Resource at a time**, which means that you cannot change multiple in one commit. ([issue](https://github.com/atomicdata-dev/atomic-data-docs/issues/130)) -- The one creating the Commit will **need to sign it**, which may make clients that write data more complicated than you'd like. You can also let Servers write Commits, but this makes them less verifiable / decentralized. -- Commits require signatures, which means **key management**. Doing this securely is no trivial matter. -- The signatures **require JSON-AD** serialization -- If your implementation persists all Commits, you might need to **store a lot of data**. diff --git a/src/commits/intro.md b/src/commits/intro.md deleted file mode 100644 index b9ee58c..0000000 --- a/src/commits/intro.md +++ /dev/null @@ -1,50 +0,0 @@ -{{#title Atomic Commits - Event standard for Atomic Data}} -# Atomic Commits - -_Disclaimer: Work in progress, prone to change._ - -Atomic Commits is a specification for communicating _state changes_ (events / transactions / patches / deltas / mutations) of [Atomic Data](../core/concepts.md). -It is the part of Atomic Data that is concerned with writing, editing, removing and updating information. - -## Design goals - -- **Event sourced**: Store and standardize _changes_, as well as the _current_ state. This enables versioning, history playback, undo, audit logs, and more. -- **Traceable origin**: Every change should be traceable to an actor and a point in time. -- **Verifiable**: Have cryptographic proof for every change. Know _when_, and _what_ was changed by _whom_. -- **Identifiable**: A single commit has an identifier - it is a resource. -- **Decentralized**: Commits can be shared in P2P networks from device to device, whilst maintaining verifiability. -- **Extensible**: The methods inside a commit are not fixed. Use-case specific methods can be added by anyone. -- **Streamable**: The commits could be used in streaming context. -- **Familiar**: Introduces as little new stuff as possible (no new formats or language to learn) -- **Pub/Sub**: Subscribe to changes and get notified on changes. -- **ACID-compliant**: An Atomic commit will only occur if it results in a valid state. -- **Atomic**: All the Atomic Data design goals also apply here. - -## Motivation - -Although it's a good idea to keep data at the source as much as possible, we'll often need to synchronize two systems. -For example when data has to be queried or indexed differently than its source can support. -Doing this synchronization can be very difficult, since most of our software is designed to only maintain and share the _current state_ of a system. - -I noticed this mainly when working on OpenBesluitvorming.nl - an open data project where we aimed to fetch and standardize meeting data (votes, meeting minutes, documents) from 150+ local governments in the Netherlands. -We wrote software that fetched data from various systems (who all had different models, serialization formats and APIs), transformed this data to a single standard and share it through an API and a fulltext search endpoint. -One of the hard parts was keeping our data in sync with the sources. -How could we now if something was changed upstream? -We queried all these systems every night for _all meetings from the next and previous month_, and made deep comparisons to our own data. - -This approach has a couple of issues: - -- It costs a lot of resources, both for us and for the data suppliers. -- It's not real-time - we can only run this once every 24 ours (because of how costly it is). -- It's very prone to errors. We've had issues during all phases of Extraction, Transformation and Loading (ETL) processing. -- It causes privacy issues. When some data at the source is removed (because it contained faulty or privacy sensitive data), how do we learn about that? - -Persisting and sharing state changes could solve these issues. -In order for this to work, we need to standardize this for all data suppliers. -We need a specification that is easy to understand for most developers. - -Keeping track of where data comes from is essential to knowing whether you can trust it - whether you consider it to be true. -When you want to persist data, that quickly becomes bothersome. -Atomic Data and Atomic Commits aim to make this easier by using cryptography for ensuring data comes from some particular source, and is therefore trustworthy. - -If you want to know how Atomic Commits differ from other specs, see the [compare section](compare.md) diff --git a/src/commits/ownership.md b/src/commits/ownership.md deleted file mode 100644 index b4f0468..0000000 --- a/src/commits/ownership.md +++ /dev/null @@ -1,39 +0,0 @@ -# Atomic Ownership - -When data changes, we need a way of thinking about _who is able to change data_. -Of course, anybody can copy some piece of data and make changes to is, but for P2P data sharing to work, we also need to be able to _verify_ that the changes are _authentic_. -That's why Atomic Data has the _Ownership_ concept. - -## Owner - -The Owner of a Resource is the _authority_ of the content of the resource and its Commits. -It can be either a person or some more abstract entity, such as an organization or some hardware running somewhere. -You can think of an Owner as the one accepting Pull Requests in a Git repository. -By _default_, the Owner is the Domain. - -The Owner identifies itself using a generated key-pair. -It signs authored Commits with his private key, so others can verify the authenticity of the Commits using the corresponding public key. - -If the Owner is not the domain, the owner SHOULD be explicitly referred to using the `owner` Property: - -- `owner` (required, AtomicURL, Owner) - the Owner of the resource - -## Using HTTP(S) - -Any Atomic Resource has a Subject, and that Subject will be a URL. -Resolving that URL will link to the resource itself and show you the latest state. -HTTP URLs already show you who's in control, because the domain name points you there. - -## Using IPFS - -TODO! - -## Using DID - -The DID (decentralized identifiers) paves the way for a more decentralized web. - -TODO! Something with DID controllers https://w3c.github.io/did-core/#dfn-did-controllers - -## Using Hypercore (DAT) - -TODO! diff --git a/src/commits/suggestions.md b/src/commits/suggestions.md deleted file mode 100644 index 0dc81f6..0000000 --- a/src/commits/suggestions.md +++ /dev/null @@ -1,44 +0,0 @@ -# Atomic Suggestions - -Atomic Suggestions is a proposed standard that enables decentralized collaboration on resources. -It's basically Git for linked data. -Practically, it should enable right-clicking on any piece of Atomic Data on the web, and suggesting an edit to the owner. - -## Design goals - -- **Asynchronous collaboration**: Various users can work on the same thing at the same time. -- **Branching & merging**: Issues that result from async changes (merge conflicts) can be resolved. - -## Concepts - -### Fork - -Forking is the first step to making a suggestion. -Forking refers to: - -1. copying some resource -1. changing the subject URL to some URL that you control -1. adding a reference to the original URL using the `atomic:originalSubject` Property. - -The newly created copy with the different URL is a _Fork_. -Since the Fork is a resource that you own (see [Ownership](ownership.md)), you can make changes to is. - -Whenever you make changes, the app making the changes _should_ keep track of them as Atomic Commits. -These Commits make it easier to apply (small) changes to (large) resources, even when multiple people are working on the same thing at the same time. - -### Suggestion - -When you've forked some resource and made some changes, you can Suggest these changes to the original owner. -This is done by sending an HTTP POST request containing the Commits to the Owner URL. - -A Suggestion is a (set of?) Commit(s?) that is proposed to be appended to some Ledger. -The important difference between a Suggestion and a Commit, is that a Commit has been verified, signed and approved by the Controller. - -### Controller - -The actor (person / organization) that is in control of a specific Resource and its Commits. - -### Inbox - -An Inbox represents a resource that contains incoming Suggestions. -It's similar to an e-mail inbox. diff --git a/src/commits/versioning.md b/src/commits/versioning.md deleted file mode 100644 index 0b02ca6..0000000 --- a/src/commits/versioning.md +++ /dev/null @@ -1,26 +0,0 @@ -# Atomic Data Versioning - -When Atomic Commits are applied to some Resource, the resource will change. -However, its identifier (the Subject) will often remain the same. - -- Versioned representations should provide a link to the authority that might update it, and a link to where the latest version can be found. -- The latest version should have a link to its permanent version. -- Should [IPFS](../interoperability/ipfs.md) content-hash URLs be used for Versioned resources? - -## Versioned Resources - -Properties: - - -- latest: (ResourceArray, optional) -- versions: (ResourceArray, optional) -- currentVersion: (ResourceURL, required) - -## Static Resource - -A static resource has a _content addressable_ URL, which means that its URL will never change. - -## Hashing - -- Serialize all Atoms of the Subject (the entire Resource) as Atomic-NDJSON -- Sort all lines (every atom) alphabetically diff --git a/src/core/concepts.md b/src/core/concepts.md deleted file mode 100644 index faf2519..0000000 --- a/src/core/concepts.md +++ /dev/null @@ -1,150 +0,0 @@ -{{#title What is Atomic Data?}} -# What is Atomic Data? - -## Atomic Data Core - -Atomic Data is a modular specification for sharing information on the web. -Since Atomic Data is a _modular_ specification, you can mostly take what you want to use, and ignore the rest. -The _Core_ part, however, is the _only required_ part of the specification, as all others depend on it. - -Atomic Data Core can be used to express any type of information, including personal data, vocabularies, metadata, documents, files and more. -It's designed to be easily serializable to both JSON and linked data formats. -It is a _typed_ data model, which means that every value must be validated by their datatype. - -## Design goals - -* **Browsable**: Data should explicitly link to other pieces of data, and these links should be followable. -* **Semantic**: Every data Atom and relation has a clear semantic meaning. -* **Interoperable**: Plays nice with other data formats (e.g. JSON, XML, and all RDF formats). -* **Open**: Free to use, open source, no strings attached. -* **Clear Ownership**: The data shows who (or which domain) is in control of the data, so new versions of the data can easily be retrieved. -* **Mergeable**: Any two sets of Atoms can be merged into a single graph without any merge conflicts / name collisions. -* **Extensible**: Anyone can define their own data types and create Atoms with it. -* **ORM-friendly**: Navigate a _decentralized_ graph by using `dot.syntax`, similar to how you navigate a JSON object in javascript. -* **Type-safe**: All valid Atomic data has an unambiguous, static datatype. - -# Concepts - -## Resource - -A _Resource_ is a bunch of information about a thing, referenced by a single link (the _Subject_). -Formally, it is a set of Atoms (i.e. a Graph) that share a Subject URL. -You can think of a Resource as a single row in a spreadsheet or database. -In practice, Resources can be anything - a Person, a Blogpost, a Todo item. -A Resource consists of at least one Atom, so it always has some Property and some Value. -A Property can only occur once in every Resource. - -## Atom (or Atomic Triple) - -Every Resource is composed of _Atoms_. -The Atom is the smallest possible piece of _meaningful_ data / information (hence the name). -You can think of an Atom as a single cell in a spreadsheet or database. -An Atom consists of three fields: - -* **[Subject](#subject-field)**: the thing that the atom is providing information about. This is typically also the URL where we can find more information about it. -* **[Property](#property-field)**: the property of the thing that the atom is about (will always be a URL to a [Property](../schema/classes.md#property)). -* **[Value](#value-field)**: the new piece of information about the Atom. - -If you're familiar with RDF, you'll notice similarities. -An Atom is comparable with an RDF Triple / Statement ([although there are important differences](../interoperability/rdf.md)). - -Let's turn this sentence into Atoms: - -`Arnold Peters, who's born on the 20th of Januari 1991, has a best friend named Britta Smalls.` - -Subject | Property | Value ---- | --- | --- -Arnold | last name | Peters -Arnold | birthdate | 1991-01-20 -Arnold | best friend | Britta -Britta | last name | Smalls - -The table above shows human readable strings, but in Atomic Data, we use links (URLs) wherever we can. -That's because links are awesome. -Links **remove ambiguity** (we know exactly which person or property we mean), they are **resolvable** (we can click on them), and they are **machine readable** (machines can fetch links to do useful things with them). -So the table from above, will more closely resemble this one: - -Subject | Property | Value ---- | --- | --- -https://example.com/arnold | https://example.com/properties/lastname | Peters -https://example.com/arnold | https://example.com/properties/birthDate | 1991-01-20 -https://example.com/arnold | https://example.com/properties/bestFriend | https://example.com/britta -https://example.com/britta | https://example.com/properties/lastname | Smalls - -The standard serialization format for Atomic Data is JSON-AD, which looks like this: - -```json -[{ - "@id": "https://example.com/arnold", - "https://example.com/properties/lastname": "Peters", - "https://example.com/properties/birthDate": "1991-01-20", - "https://example.com/properties/bestFriend": "https://example.com/britta", -},{ - "@id": "https://example.com/britta", - "https://example.com/properties/lastname": "Smalls", -}] -``` - -The `@id` field denotes the Subject of each Resource, which is also the URL that should point to where the resource can be found. - -In the JSON-AD example above, we have: - -- two **Resources**, describing two different **Subjects**: `https://example.com/arnold` and `https://example.com/britta`. -- three different **Properties** (`https://example.com/properties/lastname`, `https://example.com/properties/birthDate`, and `https://example.com/properties/bestFriend`) -- four **Values** (`Peters`, `1991-01-20`, `https://example.com/britta` and `Smalls`) -- four **Atoms** - every row is one Atom. - -All Subjects and Properties are Atomic URLs: they are links that point to more Atomic Data. -One of the Values is a URL, too, but we also have values like `Arnold` and `1991-01-20`. -Values can have different _Datatypes_ -In most other data formats, the datatypes are limited and are visually distinct. -JSON, for example, has `array`, `object`, `string`, `number` and `boolean`. -In Atomic Data, however, datatypes are defined somewhere else, and are extendible. -To find the Datatype of an Atom, you fetch the Property, and that Property will have a Datatype. -For example, the `https://example.com/properties/bornAt` Property requires an ISO Date string, and the `https://example.com/properties/firstName` Property requires a regular string. -This might seem a little tedious and weird at first, but is has some nice advantages! -Their Datatypes are defined in the Properties. - -## Subject field - -The Subject field is the first part of an Atom. -It is the identifier that the rest of the Atom is providing information about. -The Subject field is a URL that points to the Resource. -The creator of the Subject MUST make sure that it resolves. -In other words: following / downloading the Subject link will provide you with all the Atoms about the Subject (see [Querying Atomic Data](querying.md). -This also means that the creator of a Resource must make sure that it is available at its URL - probably by hosting the data, or by using some service that hosts it. -In JSON-AD, the Subject is denoted by `@id`. - -## Property field - -The Property field is the second part of an Atom. -It is a URL that points to an Atomic [Property](../schema/classes.md#Property). -Examples can be found at https://atomicdata.dev/properties. - -The Property field MUST be a URL, and that URL MUST resolve (it must be publicly available) to an Atomic Property. -The Property is perhaps the most important concept in Atomic Data, as it is what enables the type safety (thanks to [`datatype`](https://atomicdata.dev/properties/datatype)) and the JSON compatibility (thanks to [`shortname`](https://atomicdata.dev/properties/shortname)). -We also use Properties for rendering fields in a form, because the Datatype, shortname and description helps us to create an intuitive, easy to understand input for users. - -## Value field - -The Value field is the third part of an Atom. -In RDF, this is called an `object`. -Contrary to the Subject and Property values, the Value can be of any datatype. -This includes URLs, strings, integers, dates and more. - -## Graph - -A Graph is a collection of Atoms. -A Graph can describe various subjects, which may or may not be related. -Graphs can have several characteristics (Schema Complete, Valid, Closed) - -In mathematial graph terminology, a graph consists of _nodes_ and _edges_. -The Atomic Data model is a so called _directed graph_, which means that relationships are by default one-way. -In Atomic Data, every node is a `Resource`, and every edge is a `Property`. - -## Nested Resource - -A Nested Resource only exists inside of another resource. -It does not have its own subject. - -In the next chapter, we'll explore how Atomic Data is serialized. diff --git a/src/core/json-ad.md b/src/core/json-ad.md deleted file mode 100644 index c69bf13..0000000 --- a/src/core/json-ad.md +++ /dev/null @@ -1,82 +0,0 @@ -{{#title JSON-AD: The Atomic Data serialization format}} -# JSON-AD: The Atomic Data serialization format - -Although you can use various serialization formats for Atomic Data, `JSON-AD` is the _default_ and _only required_ serialization format. -It is what the current [Rust](https://github.com/atomicdata-dev/atomic-data-browser) and [Typescript / React](https://github.com/atomicdata-dev/atomic-data-browser) implementations use to communicate. -It is designed to feel familiar to developers and to be easy and performant to parse and serialize. -It is inspired by [JSON-LD](https://json-ld.org/). - -It uses [JSON](https://www.ecma-international.org/publications-and-standards/standards/ecma-404/), but has some additional constraints: - -- Every single Object is a `Resource`. -- Every Key is a [`Property`](https://atomicdata.dev/classes/Property) URL. Other keys are invalid. Each Property URL must resolve to an online Atomic Data Property. -- The `@id` field is special: it defines the `Subject` of the `Resource`. If you send an HTTP GET request there with an `content-type: application/ad+json` header, you should get the full JSON-AD resource. -- JSON arrays are mapped to [Resource Arrays](https://atomicdata.dev/datatypes/resourceArray) -- Numbers can be [Integers](https://atomicdata.dev/datatypes/integer), [Timestamps](https://atomicdata.dev/datatypes/timestamp) or [Floats](https://atomicdata.dev/datatypes/float). -- JSON booleans map to [Booleans](https://atomicdata.dev/datatypes/boolean). -- JSON strings can be many datatypes, including [String](https://atomicdata.dev/datatypes/string), [Markdown](https://atomicdata.dev/datatypes/markdown), [Date](https://atomicdata.dev/datatypes/date) or other. -- Nested JSON Objects are Nested Resources. A Nested Resource can either be _Anonymous_ (without an `@id` subject) or a Named Nested Resource (with an `@id` subject). Everywhere a Subject URL can be used as a value (i.e. all properties with the datatype [atomicURL](https://atomicdata.dev/datatypes/atomicURL)), a Nested Resource can be used instead. This also means that an item in an `ResourceArray` can be a Nested Resource. -- The root data structure must either be a Named Resource (with an `@id`), or an Array containing Named Resources. When you want to describe multiple Resources in one JSON-AD document, use an array as the root item. - -Let's look at an example JSON-AD Resource: - -```json -{ - "@id": "https://atomicdata.dev/properties/description", - "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown", - "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Property" - ], - "https://atomicdata.dev/properties/shortname": "description" -} -``` - -The mime type (for HTTP content negotiation) is `application/ad+json` ([registration ongoing](https://github.com/ontola/atomic-data-docs/issues/60)). - -## Nested, Anonymous and Named resources - -In JSON-AD, a Resource can be respresented in multiple ways: - -- **Subject**: A URL string, such as `https://atomicdata.dev/classes/Class`. -- **Named Resource**: A JSON Object with an `@id` field containing the Subject. -- **Anonymous Nested Resource** A JSON Object without an `@id` field. This is only possible if it is a Nested Resource, which means that it has a parent Resource. - -Note that this is also valid for `ResourceArrays`, which usually only contain Subjects, but are allowed to contain Nested Resources. - -In the following JSON-AD example, the `address` is a nested resource: - -```json -{ - "@id": "https://example.com/arnold", - "https://example.com/properties/address": { - "https://example.com/properties/firstLine": "Longstreet 22", - "https://example.com/properties/city": "Watertown", - "https://example.com/properties/country": "the Netherlands", - } -} -``` - -Nested Resources can be _named_ or _anonymous_. An _Anonymous Nested Resource_ does not have it's own `@id` field. -It _does_ have its own unique [path](./paths.md), which can be used as its identifier. -The `path` of the anonymous resource in the example above is `https://example.com/arnold https://example.com/properties/address`. - -## JSON-AD Parsers, serializers and other libraries - -- **Typescript / Javacript**: [@tomic/lib](https://www.npmjs.com/package/@tomic/lib) JSON-AD parser + in-memory store. Works with [@tomic/react](https://www.npmjs.com/package/@tomic/lib) for rendering Atomic Data in React. -- **Rust**: [atomic_lib](https://crates.io/crates/atomic_lib) has a JSON-AD parser / serializer (and does a lot more). - -## Canonicalized JSON-AD - -When you need deterministic serialization of Atomic Data (e.g. when calculating a cryptographic hash or signature, used in Atomic Commits), you can use the following procedure: - -1. Serialize your Resource to JSON-AD -1. Do not include empty objects, empty arrays or null values. -1. All keys are sorted alphabetically (lexicographically) - both in the root object, as in any nested objects. -1. The JSON-AD is minified: no newlines, no spaces. - -The last two steps of this process is more formally defined by the JSON Canonicalization Scheme (JCS, [rfc8785](https://tools.ietf.org/html/rfc8785)). - -## Interoperability with JSON and JSON-LD - -[Read more about this subject](../interoperability/json.md). diff --git a/src/core/paths.md b/src/core/paths.md deleted file mode 100644 index 60f78a9..0000000 --- a/src/core/paths.md +++ /dev/null @@ -1,113 +0,0 @@ -{{#title Atomic Data Paths}} -# Atomic Paths - -An Atomic Path is a string that consists of at least one URL, followed by one or more URLs or Shortnames. -Every single value in an Atomic Resource can be targeted through such a Path. -They can be used as identifiers for specific Values. - -The simplest path, is the URL of a resource, which represents the entire Resource with all its properties. -If you want to target a specific atom, you can use an Atomic Path with a second URL. -This second URL can be replaced by a Shortname, if the Resource is an instance of a class which has properties with that Shortname (sounds more complicated than it is). - -## Example - -Let's start with this simple Resource: - -```json -{ - "@id": "https://example.com/john", - "https://example.com/lastName": "McLovin", -} -``` - -Then the following Path targets the `McLovin` value: - -`https://example.com/john https://example.com/lastName` => `McLovin` - -Instead of using the full URL of the `lastName` Property, we can use its [shortname](https://atomicdata.dev/properties/shortname): - -`https://example.com/john lastname` => `McLovin` - -We can also traverse relationships between resources: - -```json -[{ - "@id": "https://example.com/john", - "https://example.com/lastName": "McLovin", - "https://example.com/employer": "https://example.com/XCorp", -},{ - "@id": "https://example.com/XCorp", - "https://example.com/description": "The greatest company!", -}] -``` - -`https://example.com/john employer description` => `The greatest company!` - -In the example above, the XCorp subject exists and is the source of the `The greatest company!` value. -We can use this path as a unique identifier for the description of John's current employer. -Note that the data for the description of that employer does not have to be in John's control for this path to work - it can live on a totally different server. -However, in Atomic Data it's also possible to include this description in the resource of John as a _Nested Resource_. - -## Nested Resources - -All Atomic Data Resources that we've discussed so far have an explicit URL as a subject. -Unfortunately, creating unique and resolvable URLs can be a bother, and sometimes not necessary. -If you've worked with RDF, this is what Blank Nodes are used for. -In Atomic Data, we have something similar: _Nested Resources_. - -Let's use a Nested Resource in the example from the previous section: - -```json -{ - "@id": "https://example.com/john", - "https://example.com/lastName": "McLovin", - "https://example.com/employer": { - "https://example.com/description": "The greatest company!", - } -} -``` - -Now the `employer` is simply a nested Object. -Note that it no longer has its own `@id`. -However, we can still identify this Nested Resource using its Path. - -The Subject of the nested resource is its path: `https://example.com/john https://example.com/employer`, including the spacebar. - -Note that the path from before still resolves: - -`https://example.com/john employer description` => `The greatest company!` - -## Traversing Arrays - -We can also navigate Arrays using paths. - -For example: - -```json -{ - "@id": "https://example.com/john", - "hasShoes": [ - { - "https://example.com/name": "Mr. Boot", - }, - { - "https://example.com/name": "Sunny Sandals", - } - ] -} -``` - -The Path of `Mr. Boot` is: - -``` -https://example.com/john hasShoes 0 name -``` - -You can target an item in an array by using a number to indicate its position, starting with 0. - -Notice how the Resource with the `name: Mr. Boot` does not have an explicit `@id`, but it _does_ have a Path. -This means that we still have a unique, globally resolvable identifier - yay! - -## Try for yourself - -Install the [`atomic-cli`](https://github.com/atomicdata-dev/atomic-server/blob/master/cli/README.md) software and run `atomic-cli get https://atomicdata.dev/classes/Class description`. diff --git a/src/core/querying.md b/src/core/querying.md deleted file mode 100644 index 1e45763..0000000 --- a/src/core/querying.md +++ /dev/null @@ -1,59 +0,0 @@ -{{#title Querying Atomic Data}} -# Querying Atomic Data - -There are multiple ways of getting Atomic Data into some system: - -- [**Subject Fetching**](#subject-fetching-http) requests a single subject right from its source -- [**Atomic Collections**](../schema/collections.md) can filter, sort and paginate resources -- [**Atomic Paths**](paths.md) is a simple way to traverse Atomic Graphs and target specific values -- [**Triple Pattern Fragments**](#triple-pattern-fragments) allows querying for specific (combinations of) Subject, Property and Value. -- [**SPARQL**](#SPARQL) is a powerful Query language for traversing linked data graphs - -## Subject fetching (HTTP) - -The simplest way of getting Atomic Data when the Subject is an HTTP URL, is by sending a GET request to the subject URL. -Set the `Content-Type` header to an Atomic Data compatible mime type, such as `application/ad+json`. - -```HTTP -GET https://atomicdata.dev/test HTTP/1.1 -Content-Type: application/ad+json -``` - -The server SHOULD respond with all the Atoms of which the requested URL is the subject: - -```HTTP -HTTP/1.1 200 OK -Content-Type: application/ad+json -Connection: Closed - -{ - "@id": "https://atomicdata.dev/test", - "https://atomicdata.dev/properties/shortname": "1611489928" -} -``` - -The server MAY also include other resources, if they are deemed relevant. - -## Atomic Collections - -Collections are Resources that provide simple query options, such as filtering by Property or Value, and sorting. -They also paginate resources. -Under the hood, Collections are powered by Triple Pattern Fragments. -Use query parameters to traverse pages, filter, or sort. - -[Read more about Collections](../schema/collections.md) - -## Atomic Paths - -An Atomic Path is a string that consist of one or more URLs, which when traversed point to an item. - -[Read more about Atomic Paths](paths.md) - -## SPARQL - -[SPARQL](https://www.w3.org/TR/rdf-sparql-query/) is a powerful RDF query language. -Since all Atomic Data is also valid RDF, it should be possible to query Atomic Data using SPARQL. -None of the exsisting implementations support a SPARQL endpoint, though. - -- Convert / serialize Atomic Data to RDF (for example by using an `accept` header: `curl -i -H "Accept: text/turtle" "https://atomicdata.dev"`) -- Load it into a SPARQL engine of your choice diff --git a/src/core/serialization.md b/src/core/serialization.md deleted file mode 100644 index 63985fc..0000000 --- a/src/core/serialization.md +++ /dev/null @@ -1,93 +0,0 @@ -{{#title Serialization of Atomic Data}} -# Serialization of Atomic Data - -Atomic Data is not necessarily bound to a single serialization format. -It's fundamentally a data model, and that's an important distinction to make. -It can be serialized in different ways, but there is only one required: `JSON-AD`. - -## JSON-AD - -[`JSON-AD`](json-ad.md) (more about that on the next page) is specifically designed to be a simple, complete and performant format for Atomic Data. - -```json -{ - "@id": "https://atomicdata.dev/properties/description", - "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown", - "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Property" - ], - "https://atomicdata.dev/properties/parent": "https://atomicdata.dev/properties", - "https://atomicdata.dev/properties/shortname": "description" -} -``` - -[Read more about JSON-AD](json-ad.md) - -## JSON (simple) - -Atomic Data is designed to be serializable to clean, simple [JSON](../interoperability/json.md), for usage in (client) apps that don't need to know the full URLs of properties. - -````json -{ - "@id": "https://atomicdata.dev/properties/description", - "datatype": "https://atomicdata.dev/datatypes/markdown", - "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "is-a": [ - "https://atomicdata.dev/classes/Property" - ], - "parent": "https://atomicdata.dev/properties", - "shortname": "description" -} -```` - -[Read more about JSON and Atomic Data](json-ad.md) - - -## RDF serialization formats - -Since Atomic Data is a strict subset of RDF, RDF serialization formats can be used to communicate and store Atomic Data, such as N-Triples, Turtle, HexTuples, JSON-LD and [other RDF serialization formats](https://ontola.io/blog/rdf-serialization-formats/). -However, not all valid RDF is valid Atomic Data. -Atomic Data is more strict. -Read more about serializing Atomic Data to RDF in the [RDF interoperability section](../interoperability/rdf.md). - -JSON-LD: - -```json -{ - "@context": { - "datatype": { - "@id": "https://atomicdata.dev/properties/datatype", - "@type": "@id" - }, - "description": "https://atomicdata.dev/properties/description", - "is-a": { - "@container": "@list", - "@id": "https://atomicdata.dev/properties/isA" - }, - "parent": { - "@id": "https://atomicdata.dev/properties/parent", - "@type": "@id" - }, - "shortname": "https://atomicdata.dev/properties/shortname" - }, - "@id": "https://atomicdata.dev/properties/description", - "datatype": "https://atomicdata.dev/datatypes/markdown", - "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "is-a": [ - "https://atomicdata.dev/classes/Property" - ], - "parent": "https://atomicdata.dev/properties", - "shortname": "description" -} -``` - -Turtle / N-Triples: - -```turtle - . - . - "description"^^ . - "https://atomicdata.dev/classes/Property"^^ . - "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more."^^ . -``` diff --git a/src/core/validations.md b/src/core/validations.md deleted file mode 100644 index 70c5244..0000000 --- a/src/core/validations.md +++ /dev/null @@ -1,98 +0,0 @@ -# Atomic Graph Validations - -An Graph is a set of Atoms. -Since Atomic Data is designed to facilitate decentralized data storage, Graphs will often lack information or contain invalid data. -In this section, we define some of these concepts. - -- A **Valid Graph** contains no mismatches between Datatypes from Properties and their usage in Atoms -- A **Closed Graph** contains no unfetched outgoing links -- A **Verified Graph** contains only Atoms from verified Authors -- A **Schema Complete Graph** contains all used linked Properties -- A **Frozen Graph** contains content-addressing identifiers (e.g. IPFS), all the way down - -These concepts are important when creating an implementation of a Store. - -## Valid Graphs - -We refer to a Graph as Valid, if the following constraints are met: - -- **The Datatypes are correctly used**. The Graph does not contain Atoms where the Datatype of the Value does not match the Datatype of the Property of the Atom. -- **The links work**. All URLs used in the Graph (Subject, Property, Value) resolve correctly to the required Datatype. -- **The Class Restrictions are met**. If a Class sets required properties, these must be present in Resources that are instances of that Class. - -Making sure Graphs are Valid is of great importance to anyone creating, sharing or using Atomic Data. -Services should specify whether they check the validity of graphs. - -## Closed Graphs - -A Graph is Closed, when the Resources of all URLs are present in the Graph. -In other words, if you were to fetch and download every single URL in a Graph, you would not have any more Atoms than before. -There are no more unfetched outgoing links. - -Closed Graphs are _rarely_ required in Atomic Data; it's often perfectly fine to have outgoing links that do not have been fetched. - -## Verified Graphs - -When you are given some Atomic Graph by someone, you initially don't know for sure whether the Atoms themselves are actually created by the one controlling the subject URL. -Someone may have tempered with the data, or fabricated it. - -The process of Verification can be done in two ways: - -1. **Request the subjects, and check if the atoms match**. -1. **Verify the signatures of the Resources or Commits** - -When one of these steps is taken, we say that the Graph is Verified. - -## Schema Complete Graphs - -When a Graph has a set of Atoms, it might not possess all the information that is required to determine the datatype of each Atom. -When that is the case, we say the Graph is _Schema Complete_. - -Having a Schema Complete Graph is essential for determining what the Datatype is of a Value. -Most implementations of Atomic Data will need Schema Completeness to create fitting views, or apply functional business logic. - -Imagine some application (perhaps an app running inside a web-browser) that has only the following data: - -```ndjson -["https://example.com/john","https://example.com/birthDate","1991-01-20"] -``` - -Now, by looking at this single Atom, we might assume that the Value is an ISO date, -but this type information is not known yet to the application. -This type information should be specified in the `example:birthDate` Property. -It is the responsibility of the application to make sure it possess the required Schema data. - -We say a Graph is _Schema Complete_ when it contains _at least_ all the Property Classes that are used in the Property fields. - -So let's add the missing Property: `https://example.com/birthDate` - -```ndjson -["https://example.com/john","https://example.com/birthDate","1991-01-20"] -["https://example.com/birthDate","https://atomicdata.dev/datatypes/Datatype","https://atomicdata.dev/datatypes/dateTime"] -``` - -Now, since we've introduced yet another Property, we need to include that one as well: - -```ndjson -["https://example.com/john","https://example.com/birthDate","1991-01-20"] -["https://example.com/birthDate","https://atomicdata.dev/datatypes/Datatype","https://atomicdata.dev/datatypes/dateTime"] -["https://atomicdata.dev/datatypes/Datatype","https://atomicdata.dev/datatypes/Datatype","https://atomicdata.dev/datatypes/atomicURI"] -``` - -Since all valid Atomic Data requires Property fields to resolve to Atomic Properties Classes, which are required to have an associated DataType... -We can safely say that the last atom in the example above (the one describing `https://atomicdata.dev/datatypes/Datatype`) will have to be pre -sent in all Schema Complete Atomic Graphs. - -## Frozen Graphs - -A Frozen Graph consists only of resources with content-addressing identifiers as Subjects. -A [content-addressable](https://flyingzumwalt.gitbooks.io/decentralized-web-primer/avenues-for-access/lessons/power-of-content-addressing.html) URL (such as an IPFS URL) refers to specific immutable content, that is absolutely certain not to change over time. -Due to its static nature, we call it _Frozen_. -As long as a graph contains links to HTTP Resources, it is not Frozen, since responses from that HTTP address might change over time. - -Freezing a Graph, therefore, entails converting all resources to IFPS (or another content-addressable schema) Resources, and using only IPFS URLs. - -Freezing a Graph has performance benefits for clients, since clients can easily verify if they already have (part of) the Graph locally, simply by comparing the URLs or Resources. -It also helps to make sure the content can be shared peer to peer - -Note that **Graphs with cyclical relations cannot be frozen**, since every iteration that you'd try to freeze will change its references and therefore also its contents, and therefore also its content hash. diff --git a/src/create-json-ad.md b/src/create-json-ad.md deleted file mode 100644 index fa47583..0000000 --- a/src/create-json-ad.md +++ /dev/null @@ -1,137 +0,0 @@ -# How to create and publish a JSON-AD file - -[JSON-AD](core/json-ad.md) is the default serialization format of Atomic Data. -It's just JSON, but with some extra requirements. - -Most notably, all keys are links to [Atomic Properties](https://atomicdata.dev/classes/Property). -These Properties must be actually hosted somewhere on the web, so other people can visit them to read more about them. - -Ideally, in JSON-AD, each Resource has its own `@id`. -This is the URL of the resource. -This means that if someone visits that `@id`, they should get the resource they are requesting. -That's great for people re-using your data, but as a data provider, implementing this can be a bit of a hassle. -That's why there is a different way that allows you to create Atomic Data _without manually hosting every resource_. - -## Creating JSON-AD without hosting individual resources yourself - -In this section, we'll create a single JSON-AD file containing various resources. -This file can then be published, shared and stored like any other. - -The goal of this preparation, is to ultimately import it somewhere else. -We'll be importing it to Atomic-Server. -Atomic-Server will create URLs for every single resource upon importing it. -This way, we only deal with the JSON-AD and the data structure, and we let Atomic-Server take care of hosting the data. - -Let's create a BlogPost. -We know the fields that we need: a `name` and some `body`. -But we can't use these keys in Atomic Data, we should use URLs that point to Properties. -We can either create new Properties (see the Atomic-Server tutorial), or we can use existing ones, for example by searching on [AtomicData.dev/properties](https://atomicdata.dev/properties). - -## Setting the first values - -```json -{ - "https://atomicdata.dev/properties/name": "Writing my first blogpost", - "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!", -} -``` - -## Adding a Class - -Classes help others understanding what a Resource's type is, such as BlogPost or Person. -In Atomic Data, Resources can have multiple classes, so we should use an Array, like so: - -```json -{ - "https://atomicdata.dev/properties/name": "Writing my first blogpost", - "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], -} -``` - -Adding a Class helps people to understand the data, and it can provide guarantees to the data users about the _shape_ of the data: they now know which fields are _required_ or _recommended_. -We can also use Classes to render Forms, which can be useful when the data should be edited later. -For example, the BlogPost item - -## Using exsisting Ontologies, Classes and Ontologies - -Ontologies are groups of concepts that describe some domain. -For example, we could have an Ontology for Blogs that links to a bunch of related _Classes_, such as BlogPost and Person. -Or we could have a Recipy Ontology that describes Ingredients, Steps and more. - -At this moment, there are relatively few Classes created in Atomic Data. -You can find most on [atomicdata.dev/classes](https://atomicdata.dev/classes). - -So possibly the best way forward for you, is to define a Class using the Atomic Data Browser's tools for making resources. - -## Multiple items - -If we want to have _multiple_ items, we can simply use a JSON Array at the root, like so: - -```json -[{ - "https://atomicdata.dev/properties/name": "Writing my first blogpost", - "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], -},{ - "https://atomicdata.dev/properties/name": "Another blogpost", - "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], -}] -``` - -## Preventing duplication with `localId` - -When we want to _publish_ Atomic Data, we also want someone else to be able to _import_ it. -An important thing to prevent, is _data duplication_. -If you're importing a list of Blog posts, for example, you'd want to only import every article _once_. - -The way to preventing duplication, is by adding a `localId`. -This `localId` is used by the importer to find out if it has already imported it before. -So we, as data producers, need to make sure that our `localId` is _unique_ and _does not change_! -We can use any type of string that we like, as long as it conforms to these requirements. -Let's use a unique _slug_, a short name that is often used in URLs. - -```json -{ - "https://atomicdata.dev/properties/name": "Writing my first blogpost", - "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], - "https://atomicdata.dev/properties/localId": "my-first-blogpost", -} -``` - -## Describing relationships between resources using `localId` - -Let's say we also want to describe the `author` of the BlogPost, and give them an e-mail, a profile picture and some biography. -This means we need to create a new Resource for each Author, and again have to think about the properties relevant for Author. -We'll also need to create a link from BlogPost to Author, and perhaps the other way around, too. - -Normally, when we link things in Atomic Data, we can only use full URLs. -But, since we don't have URLs yet for our Resources, we'll need a different solution. -Again, this is where we can use `localId`! -We can simply refer to the `localId`, instead of some URL that does not exist yet. - -```json -[{ - "https://atomicdata.dev/properties/name": "Writing my first blogpost", - "https://atomicdata.dev/properties/description": "Hi! I'm a blogpost. I'm also machine readable!", - "https://atomicdata.dev/properties/author": "jon", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], - "https://atomicdata.dev/properties/localId": "my-first-blogpost", -},{ - "https://atomicdata.dev/properties/name": "Another blogpost", - "https://atomicdata.dev/properties/description": "I'm writing so much my hands hurt.", - "https://atomicdata.dev/properties/author": "jon", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Article"], - "https://atomicdata.dev/properties/localId": "another-blogpost", -},{ - "https://atomicdata.dev/properties/name": "Jon Author", - "https://atomicdata.dev/properties/isA": ["https://atomicdata.dev/classes/Person"], - "https://atomicdata.dev/properties/localId": "jon", -}] -``` - -## Importing data using Atomic Sever - -_currently [under development](https://github.com/atomicdata-dev/atomic-server/issues/390)_ diff --git a/src/endpoints.md b/src/endpoints.md deleted file mode 100644 index cefbc13..0000000 --- a/src/endpoints.md +++ /dev/null @@ -1,33 +0,0 @@ -{{#title Atomic Data Endpoints - describe how RESTful HTTP APIs behave}} -# Atomic Endpoints - -_URL: https://atomicdata.dev/classes/Endpoint_ - -An Endpoint is a resource that accepts parameters in order to generate a response. -You can think of it like a function in a programming language, or a API endpoint in an OpenAPI spec. -It can be used to perform calculations on the server side, such as filtering data, sorting data, selecting a page in a collection, or performing some calculation. -Because Endpoints are resources, they can be defined and read programmatically. -This means that it's possible to render Endpoints as forms. - -The most important property in an Endpoint is [`parameters`](https://atomicdata.dev/properties/endpoint/parameters), which is the list of Properties that can be filled in. - -You can find a list of Endpoints supported by Atomic-Server on [atomicdata.dev/endpoints](https://atomicdata.dev/endpoints). - -Endpoint Resources are _dynamic_, because their properties could be calculated server-side. -When a Property tends to be calculated server-side, they will have a [`isDynamic` property](https://atomicdata.dev/properties/isDynamic) set to `true`, which tells the client that it's probably useless to try to overwrite it. - -## Incomplete resources - -A Server can also send one or more partial Resources for an Endpoint to the client, which means that some properties may be missing. -When this is the case, the Resource will have an [`incomplete`](https://atomicdata.dev/properties/incomplete) property set to `true`. -This tells the client that it has to individually fetch the resource from the server to get the full body. - -One scenario where this happens, is when fetching Collections that have other Collections as members. -If we would not have incomplete resources, the server would have to perform expensive computations even if the data is not needed by the client. - -## Design Goals - -- **Familiar API**: should look like something that most developers already know -- **Auto-generate forms**: a front-end app should present Endpoints as forms that non-developers can interact with - -([Discussion](https://github.com/atomicdata-dev/atomic-data-docs/issues/15)) diff --git a/src/experimental-serialization.md b/src/experimental-serialization.md deleted file mode 100644 index 347c6e8..0000000 --- a/src/experimental-serialization.md +++ /dev/null @@ -1,157 +0,0 @@ -# Experimental Atomic Data serialization formats - -These experimental formats are not supported or maintained. This document serves as an archived reference. - -## AD3 (Deprecated) - -_AD3 is now deprecated in favor of JSON-AD_ - -AD3 stands for _Atomic Data Triples_, and it's the simplest and fastest way to serialize / parse Atomic Data. - -AD3 represents a single Atom as a single line, containing a JSON array of three strings, respectively representing the Subject, Property and Value. - -It looks like this: - -```ad3 -["https://example.com/subject","https://example.com/property","some object"] -["https://example.com/subject","https://example.com/otherProperty","https://example.com/somethingelse"] -``` - -It uses Newline Delimited JSON ([NDJSON](http://ndjson.org/)) for serialization, which is just a large string with newlines between each JSON object. - -NDJSON has some important benefits: - -- **Streaming parsing**: An NDJSON document can be parsed before it's fully loaded / transmitted. That is not possible with regular JSON. -- **High compatibility**: NDJSON parsers can use JSON parsers, and are therefore everywhere. -- **Performance**: Modern browsers have highly performant JSON parsing, which means that it's _fast_ in one of the most important contexts: the browser. - -_Mime type (not registered yet!): `application/ad3-ndjson`_ - -_File name extension: `.ad3`_ - -Disclaimer: note that AD3 is useful for communicating _current state_, but not for _state changes_. - -You can validate AD3 at [atomicdata.dev/validate](https://atomicdata.dev/validate). - -Atomic Triples is heavily inspired by [HexTuples-NDJSON](https://github.com/ontola/hextuples). - -Example serialization implementation written in Rust, to show you how _easy_ it is to serialize this! - -```rust -pub fn serialize_atoms_to_ad3(atoms: Vec) -> AtomicResult { - let mut string = String::new(); - for atom in atoms { - // Use an exsting JSON serialization library to take care of the hard work (escaping quotes, etc.) - let mut ad3_atom = serde_json::to_string(&vec![&atom.subject, &atom.property, &atom.value])?; - ad3_atom.push_str("\n"); - &string.push_str(&*ad3_atom); - } - return Ok(string); -} -``` - -And an example parser: - -```rust -pub fn parse_ad3<'a, 'b>(string: &'b String) -> AtomicResult> { - let mut atoms: Vec = Vec::new(); - for line in string.lines() { - match line.chars().next() { - // These are comments - Some('#') => {} - Some(' ') => {} - // That's an array, let's do this! - Some('[') => { - let string_vec: Vec = - parse_json_array(line).expect(&*format!("Parsing error in {:?}", line)); - if string_vec.len() != 3 { - return Err(format!( - "Wrong length of array at line {:?}: wrong length of array, should be 3", - line - ) - .into()); - } - let subject = &string_vec[0]; - let property = &string_vec[1]; - let value = &string_vec[2]; - atoms.push(Atom::new(subject, property, value)); - } - Some(char) => { - return Err(format!( - "AD3 Parsing error at {:?}, cannot start with {}", - line, char - ) - .into()) - } - None => {} - }; - } - return Ok(atoms); -} -``` - -## AD2 - -AD2 (Atomic Data Doubles) is similar to AtomicTriples, with one exception: the Subject is left out. -For many use-cases, omitting the Subject is a _bad idea_ - you'll most often need AD2! -having no subject means that you can't describe multiple resources in a single document, and that is useful in many contexts. - -However, omitting the subject can be useful in (at least) three scenarios: - -- The **Subject is not yet known when creating the data** (for example, because it still has to be determined by some server or hash function). -- The **Subject is already known by the client**, and leaving it out saves bandwidth. This happens for example during Subject Fetching, where the request itself contains the Subject, because the fetched URL itself is the Subject of all returned triples. Note that in this scenario, the server is unable to include -- The **Atoms are only valid coming from a specific source**. Since - -```ndjson -["https://example.com/property","some object"] -["https://example.com/otherProperty","https://example.com/somethingelse"] -``` - -Keep in mind that this approach also has some downsides: - -- It becomes impossible to include other resources in a single serialized document / response. - -- _Mime type (not registered yet!): `application/ad2-ndjson`_ -- _File name extension: `.ad2`_ - -### AtomicData-FS - -Possible extension: `.adf` - -FS stands for FileSystem. -It should be designed as a format that's easy to manipulate Atomic Data by hand, using plaintext editors and IDE software. -It fits nicely in our line-based paradigm, where we us IDEs and Github to manage our information. -It should use Shortnames wherever possible to make life easier for those who modify instances. -It might use hierarchical path structures to shape URLs. -It might use hierarchical path structures to shape data, and set constraints (e.g. all items directly in the `./person` directory should be Person instances). -Folder structure should reflect the structure inside URLs. - -Note that this format is _not_ useful for sending arbitrary Atomic Data to some client. -It is useful for managing Atomic Data from a filesystem. - -An example AtomicData-FS dir can be [found in the repo](https://github.com/ontola/atomic-data/tree/master/examples/atomic-fs/people). - -``` -# in ./projectDir/people/john.adf -# serialization uses YAML syntax -firstName: John -lastName: McLovin -# If a Property is not available in the Class, you can the URL of the property -https://schema.org/birthDate: 1991-01-20 -# Perhaps support relative paths to other local resources -bestFriend: ./mary -``` - -Perhaps YAML isn't the right pick for this, because it's kind of hard to parse. - -### AtomicData-Binary - -Possible extension: `.adb` - -A binary serialization format, designed to be performant and highly compressed. -Perhaps it works like this: - -- An `adb` file consists of a large sequence of Maps and Statements -- A _Map_ is a combination of an internal identifiers (the _ID_, some short binary object) and a URL strings. These make sure that URLs can be used again cheaply, if they are used multiple times. -- A _Statement_ is a set of two IDs and a value, which can be a String, a URL or some binary format. -- Perhaps some extra compression is possible, because many URLs will have a common domain. diff --git a/src/extended-table.md b/src/extended-table.md deleted file mode 100644 index 4a57309..0000000 --- a/src/extended-table.md +++ /dev/null @@ -1,9 +0,0 @@ -- [Commits](commits/intro.md) communicate state changes. These Commits are signed using cryptographic keys, which ensures that every change can be audited. Commits are also used to construct a history of versions. -- [Agents](agents.md) are Users that enable [authentication](authentication.md). They are Resources with their own Public and Private keys, which they use to identify themselves. -- [Collections](schema/collections.md): querying, filtering, sorting and pagination. -- [Paths](core/paths.md): traverse graphs. -- [Hierarchies](hierarchy.md) used for authorization and keeping data organized. Similar to folder structures on file-systems. -- [Invites](invitations.md): create new users and provide them with rights. -- [WebSockets](websockets.md): real-time updates. -- [Endpoints](endpoints.md): provide machine-readable descriptions of web services. -- [Files](files.md): upload, download and metadata for files. diff --git a/src/extended.md b/src/extended.md deleted file mode 100644 index d779038..0000000 --- a/src/extended.md +++ /dev/null @@ -1,10 +0,0 @@ -{{#title Atomic Data Extended specification}} -# Atomic Data Extended - -Atomic Data is a _modular_ specification, which means that you can choose to implement parts of it. -All parts of Extended are _optional_ to implement. -The _Core_ of the specification (described in the previous chapter) is required for all of the Extended spec to work, but not the other way around. - -However, many of the parts of Extended do depend on _eachother_. - -{{#include extended-table.md}} diff --git a/src/files.md b/src/files.md deleted file mode 100644 index 42cf2b3..0000000 --- a/src/files.md +++ /dev/null @@ -1,33 +0,0 @@ -{{#title Uploading, downloading and describing files with Atomic Data}} -# Uploading, downloading and describing files with Atomic Data - -The Atomic Data model (Atomic Schema) is great for describing structured data, but for many types of existing data, we already have a different way to represent them: files. -In Atomic Data, files have two URLs. -One _describes_ the file and its metadata, and the other is a URL that downloads the file. -This allows us to present a better view when a user wants to take a look at some file, and learn about its context before downloading it. - -## The File class - -_url: [https://atomicdata.dev/classes/File](https://atomicdata.dev/classes/File)_ - -Files always have a downloadURL. -They often also have a filename, a filesize, a checksum, a mimetype, and an internal ID (more on that later). -They also often have a [`parent`](https://atomicdata.dev/properties/parent), which can be used to set permissions / rights. - -## Uploading a file - -In `atomic-server`, a `/upload` endpoint exists for uploading a file. - -- Decide where you want to add the file in the [hierarchy](hierarchy.md) of your server. You can add a file to any resource - your file will refer to this resource as its [`parent`](https://atomicdata.dev/properties/parent). Make sure you have `write` rights on this parent. -- Use that parent to add a query parameter to the server's `/upload` endpoint, e.g. `/upload?parent=https%3A%2F%2Fatomicdata.dev%2Ffiles`. -- Send an HTTP `POST` request to the server's `/upload` endpoint containing [`multi-part-form-data`](https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects). You can upload multiple files in one request. Add [authentication](authentication.md) headers, and sign the HTTP request with the -- The server will check your authentication headers, your permissions, and will persist your uploaded file(s). It will now create File resources. -- The server will reply with an array of created Atomic Data Files - -## Downloading a file - -Simply send an HTTP GET request to the File's [`download-url`](https://atomicdata.dev/properties/downloadURL) (make sure to authenticate this request). - -- [Discussion on specification](https://github.com/ontola/atomic-data-docs/issues/57) -- [Discussion on Rust server implementation](https://github.com/atomicdata-dev/atomic-server/issues/72) -- [Discussion on Typescript client implementation](https://github.com/atomicdata-dev/atomic-data-browser/issues/121) diff --git a/src/framework.md b/src/framework.md deleted file mode 100644 index c05650e..0000000 --- a/src/framework.md +++ /dev/null @@ -1,4 +0,0 @@ -# Atomic Data as a Framework - -Atomic Data is designed as a _specification_, which simply sets the rules. -Implementing these rules can be a costly endeavor, which is why we've made some tooling available that helps you make other apps. diff --git a/src/get-involved.md b/src/get-involved.md deleted file mode 100644 index c1d131d..0000000 --- a/src/get-involved.md +++ /dev/null @@ -1,20 +0,0 @@ -{{#title Atomic Data - Get Involved}} -# Get involved - -Atomic Data is an open specification, and that means that you're very welcome to share your thoughts and help make this standard as good as possible. - -Things you can do: - -- Join the [Discord server](https://discord.gg/a72Rv2P) for voice / text chat -- Start playing with / contributing to [the implementations](tooling.md) -- Drop an [issue on Github](https://github.com/ontola/atomic-data-docs/issues) to share your suggestions or criticism of this book / spec -- Subscribe to the [newsletter](newsletter.md) -- Join our [W3C Community Group](https://www.w3.org/community/atomic-data/) - - - diff --git a/src/get-started.md b/src/get-started.md deleted file mode 100644 index e50bedb..0000000 --- a/src/get-started.md +++ /dev/null @@ -1,41 +0,0 @@ -{{#title Get started with Atomic Data}} -# Get started with Atomic Data - -There's a couple of levels at which you can start working with Atomic Data (from easy to hard): - -- **Play with the demo**: Create an Agent, edit a document. -- **Host your own Atomic-Server**. -- **Create a react app with the template** -- **Set up the full dev environment**. -- **Create a library for Atomic Data**. - -## Play with the demo - -- Open [the Invite](https://atomicdata.dev/invites/1) on `atomicdata.dev` -- Press `Accept`. Now, the front-end app will generate a Private-Public Key pair. The public key will be sent to the server, which creates an Agent for you. -- You're now signed in! You can edit the document in your screen. -- Edit your Agent by going to [user settings](https://atomicdata.dev/app/agent) -- Copy your `secret`, and save it somewhere safe. You can use this to sign in on a different machine. -- Press `edit user` to add your name and perhaps a bio. -- When you're done, visit user settings again and press `sign out` to erase your credentials and end the session. - -## Host your own Atomic-Sesrver (locally) - -- If you have docker running, you can use this one-liner: `docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server` (or use `cargo install atomic-server`, or the [binaries](https://github.com/atomicdata-dev/atomic-server/releases/)) -- Now, visit `localhost` in your browser to access your server. -- It's now only available locally. If you want to get it on the _internet_, you need to set up a domain name, and make sure its traffic is routed to your computer (search `port forwarding`). - -## Host your own Atomic-Server (on a VPS) - -- **Set up a domain name** by using one of the many services that do this for you. -- **Get a virtual private server (VPS)** on which you can run `atomic-server`. We are running atomicdata.dev on the cheapest VPS we could find: $3.50 / month at [Vultr.com (use this link to give us $10 bucks of hosting credit)](https://www.vultr.com/?ref=8970814-8H). - - - -- Browser app [atomic-data-browser](https://github.com/atomicdata-dev/atomic-data-browser) ([demo on atomicdata.dev](https://atomicdata.dev)) -- Build a react app using [typescript & react libraries](https://github.com/atomicdata-dev/atomic-data-browser). Start with the [react template on codesandbox](https://codesandbox.io/s/atomic-data-react-template-4y9qu?file=/src/MyResource.tsx) -- Host your own [atomic-server](https://github.com/atomicdata-dev/atomic-data-browser) (powers [atomicdata.dev](https://atomicdata.dev), run with `docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server`) -- Discover the command line tool: [atomic-cli](https://github.com/atomicdata-dev/atomic-server) (`cargo install atomic-cli`) -- Use the Rust library: [atomic-lib](https://github.com/atomicdata-dev/atomic-server) - -Make sure to [join our Discord](https://discord.gg/a72Rv2P) if you'd like to discuss Atomic Data with others. diff --git a/src/headless-cms.md b/src/headless-cms.md deleted file mode 100644 index 0af7c1f..0000000 --- a/src/headless-cms.md +++ /dev/null @@ -1 +0,0 @@ -# Using as a Headless CMS diff --git a/src/hierarchy.md b/src/hierarchy.md deleted file mode 100644 index da94a71..0000000 --- a/src/hierarchy.md +++ /dev/null @@ -1,51 +0,0 @@ -{{#title Atomic Data Hierarchy, rights and authorization }} -# Hierarchy, rights and authorization - -Hierarchies help make information easier to find and understand. -For example, most websites use breadcrumbs to show you where you are. -Your computer probably has a bunch of _drives_ and deeply nested _folders_ that contain _files_. -We generally use these hierarchical elements to keep data organized, and to keep a tighter grip on rights management. -For example, sharing a specific folder with a team, but a different folder could be private. - -Although you are free to use Atomic Data with your own custom authorization system, we have a standardized model that is currently being used by Atomic-Server. - -## Design goals - -- **Fast**. Authorization can sometimes be costly, but in this model we'll be considering performance. -- **Simple**. Easy to understand, easy to implement. -- **Handles most basic use-cases**. Should deal with basic read / write access control, calculating the size of a folder, rendering things in a tree. - -## Atomic Hierarchy Model - -- Every Resource SHOULD have a [`parent`](https://atomicdata.dev/properties/parent). There are some exceptions to this, which are discussed below. -- Any Resource can be a `parent` of some other Resource, as long as both Resources exists on the same Atomic Server. -- Grants / rights given in a `parent` also apply to all children, and their children. -- There are few Classes that do not require `parent`s: - -## Authorization - -- Any Resource might have [`read`](https://atomicdata.dev/properties/read) and [`write`](https://atomicdata.dev/properties/write) Atoms. These both contain a list of Agents. These Agents will be granted the rights to edit (using Commits) or read / use the Resources. -- Rights are _additive_, which means that the rights add up. If a Resource itself has no `write` Atom containing your Agent, but it's `parent` _does_ have one, you will still get the `write` right. -- Rights cannot be removed by children or parents - they can only be added. -- `Commits` can not be edited. They can be `read` if the Agent has rights to read the [`subject`](https://atomicdata.dev/properties/subject) of the `Commit`. - -## Top-level resources - -Some resources are special, as they do not require a `parent`: - -- [`Drive`](https://atomicdata.dev/classes/Drive)s are top-level items in the hierarchy: they do not have a `parent`. -- [`Agent`](https://atomicdata.dev/classes/Agent)s are top-level items because they are not `owned` by anything. They can always `read` and `write` themselves. -- [`Commit`](https://atomicdata.dev/classes/Commit)s are immutable, so they should never be edited by anyone. That's why they don't have a place in the hierarchy. Their `read` rights are determined by their subject. - -## Authentication - -Authentication is about proving _who you are_, which is often the first step for authorization. See [authentication](./authentication.md). - -## Current limitations of the Authorization model - -The specification is growing (and please contribute in the [docs repo](https://github.com/atomicdata-dev/atomic-data-docs/issues)), but the current specification lacks some features: - -- Rights can only be added, but not removed in the hierarchy. This means that you cannot have a secret folder inside a public folder. -- No model for representing groups of Agents, or other runtime checks for authorization. ([issue](https://github.com/atomicdata-dev/atomic-data-docs/issues/73)) -- No way to limit delete access or invite rights separately from write rights ([issue](https://github.com/atomicdata-dev/atomic-data-docs/issues/82)) -- No way to request a set of rights for a Resource diff --git a/src/interoperability/git.md b/src/interoperability/git.md deleted file mode 100644 index 870aa1e..0000000 --- a/src/interoperability/git.md +++ /dev/null @@ -1,14 +0,0 @@ -{{#title Atomic Data and Git}} -# Atomic Data and Git - -## How to manage Atomic Data using GIT - -Although Git started as in invention to manage changes to the - -## Similarities / differences between Git and Atomic Data + Commits - -Similarities: - -- Atomic Commits and Git Commits both use hashes to identify previous state -- Both allow for decentralized storage -- Both work with diff --git a/src/interoperability/graph-database.md b/src/interoperability/graph-database.md deleted file mode 100644 index bfc66cb..0000000 --- a/src/interoperability/graph-database.md +++ /dev/null @@ -1,66 +0,0 @@ -{{#title How does Atomic Data relate to Graph Databases?}} -# Atomic Data and Graph Databases - -Atomic Data is fundamentally a _graph data model_. -We can think of Atomic Resources as _nodes_, and links to other resources through _properties_ as _edges_. - -In the first section, we'll take a look at Atomic-Server as a Graph Database. -After that, we'll explore how Atomic Data relates to some graph technologies. - -## Atomic-Server as a database - -- **Built-in REST**. Everything is done over HTTP, there's no new query language or serialization to learn. It's all JSON. -- **All resources have HTTP URLs**. This means that every single thing is identified by where it can be be found. Makes it easy to share data, if you want to! -- **Sharable and re-usable data models**. Atomic Schema helps you share and re-use data models by simply pointing to URLs. -- **Authorization built-in**. Managing rights in a hierarchy (similar to how tools like Google Drive or filesystems work) enable you to have a high degree of control over read / write rights. -- **Built-in easy to use GUI**. Managing content on Atomic-Server can be done by anyone, as its GUI is extremely easy to use and has a ton of features. -- **Dynamic indexing**. Indexes are created by performing Queries, resulting in great performance - without needing to manually configure indexing. -- **Synchronization over WebSockets**. All changes (called [Commits](../commits/intro.md)) can be synchronized over WebSockets, allowing you to build realtime collaborative tools. -- **Event-sourced**. All changes are stored and reversible, giving you a full versioned history. -- **Open source**. All code is MIT-licensed. - -## Comparing Atomic Data to Neo4j - -Neo4j is a popular graph database that supports multiple query languages. -The first difference is that Atomic Data is not a single piece of software but a _specification_. -However, we can compare Neo4j as a _product_ with the open source [Atomic-Server](https://crates.io/crates/atomic-server). -Atomic-Server is fully open source and free (MIT licensed), whereas Neo4j is partially open source and GPL licensed. - -### Labeled Property Graph - -The data model of Neo4j features a _labeled property graph_, which means that edges (relationships between nodes) can have their own properties. -This can be useful when adding data to relationship between nodes. -For example: in the `john - (knows) -> mary` relationship, you might want to specify _for how long_ they have known each other. -In Neo4j, we can add this data to the labeled property graph. - -In Atomic Data, we'd have to make a new resource to describe the relation between the two, if we wanted to add information about the relationship itself. -This is called _reification_. -This process can be time consuming, especially in Atomic Data, as this means that you'll have to specify the Class of this relationship and its properties. -However, one benefit of this approach, is that the relationship itself becomes clearly defined and re-usable. -Another benefit is that the simpler model of Atomic Data maps perfectly to datamodels like JSON, which makes things very convenient and familiar for developers. - -### Query language vs REST - -Neo4j supports multiple query languages, but its mainly known for _Cypher_. -It is used for doing practically everything: reading, writing, modelling, and more. - -Atomic Data on the other hand does not have a query language. -It uses a RESTful HTTP + JSON-AD approach for everything. -Atomic Data uses [Endpoints](../endpoints.md) for specific goals that you'd do in a query language: - - - [Collections](../schema/collections.md) (which can filter by Property or Value, and sort by any Property) to generate lists of resources - - [Paths](../core/paths.md) for traversing graphs by property - -And finally, data is written using [Commits](../commits/intro.md). -Commits are very strict, as each one describes modifications to individual resources, and every Commits has to be signed. -This means that with Atomic Data, we get _versioning + audit trails_ for all data, but at the cost of more storage requirements and a bit more expensive write process. - -### Schema language and type safety - -In Neo4j, constraints can be added to the database by -Atomic Data uses [Atomic Schema](../schema/intro.md) for validating datatypes and required properties in [Classes](../schema/classes.md). - -### Other differences - -- Atomic Data has an [Authentication model](../agents.md) and [Hierarchy model](../hierarchy.md) for authorization. Neo4j uses [roles](https://neo4j.com/docs/operations-manual/current/authentication-authorization/built-in-roles/#auth-built-in-roles). -- Neo4j is actually used in production by many big organizations diff --git a/src/interoperability/intro.md b/src/interoperability/intro.md deleted file mode 100644 index 8c33a1e..0000000 --- a/src/interoperability/intro.md +++ /dev/null @@ -1,24 +0,0 @@ -{{#title Atomic Data Interoperability - Relationship and comparison to other technology}} -# Interoperability: Relation to other technology - -Atomic data is designed to be easy to use in existing projects, and be interoperable with existing formats. -This section will discuss how Atomic Data differs from or is similar to various data formats and paradigms, and how it can interoperate. - -## Upgrade guide - -* [Upgrade](upgrade.md): How to make your existing (server-side) application serve Atomic Data. From easy, to hard. - -## Data formats - -* [JSON](json.md): Atomic Data is designed to be easily serializable to clean, idiomatic JSON. However, if you want to turn JSON into Atomic Data, you'll have to make sure that all keys in the JSON object are URLs that link to Atomic Properties, and the data itself also has to be available at its Subject URL. -* [RDF](rdf.md): Atomic Data is a strict subset of RDF, and can therefore be trivially serialized to all RDF formats (Turtle, N-triples, RDF/XML, JSON-LD, and others). The other way around is more difficult. Turning RDF into Atomic Data requires that all predicates are Atomic Properties, the values must match its properties datatype, the atoms must be available at the subject URL, and the subject-predicate combinations must be unique. - -## Protocols - -* [Solid](solid.md): A set of specifications that has many similarities with Atomic Data -* [IPFS](ipfs.md): Content-based addressing to prevent 404s and centralization - -## Database paradigms - -* [SQL](sql.md): How Atomic Data differs from and could interact with SQL databases -* [Graph](graph-database.md): How it differs from some labeled property graphs, such as Neo4j diff --git a/src/interoperability/ipfs.md b/src/interoperability/ipfs.md deleted file mode 100644 index ccddcfc..0000000 --- a/src/interoperability/ipfs.md +++ /dev/null @@ -1,43 +0,0 @@ -{{#title How does Atomic Data relate to IPFS?}} -# Atomic Data and IPFS - -## What is IPFS - -IPFS (the InterPlanetary File System) is a standard that enables decentralized file storage and retrieval using content-based identifiers. -Instead of using an HTTP URL like `http://example.com/helloworld`, it uses the IPFS scheme, such as `ipfs:QmX6j9DHcPhgBcBtZsuRkfmk2v7G5mzb11vU9ve9i8vDsL`. -IPFS identifies things based on their unique content hash (the long, seemingly random string) using a thing called a Merkle DAG ([this great article](https://medium.com/textileio/whats-really-happening-when-you-add-a-file-to-ipfs-ae3b8b5e4b0f#:~:text=In%20practice%2C%20content%20addressing%20systems,function%2C%20to%20produce%20a%20digest.&text=From%20raw%20image%20to%20cryptographic%20digest%20to%20content%20id%20(multihash).) explains it nicely). -This is called a [CID](https://github.com/multiformats/cid), or Content ID. -This simple idea (plus some not so simple network protocols) allows for decentralized, temper-proof storage of data. -This fixes some issues with HTTP that are related to its centralized philosophy: **no more 404s**! - -## Why is IPFS interesting for Atomic Data - -Atomic Data is highly dependent on the availability of Resources, especially Properties and Datatypes. -These resources are meant to be re-used a lot, and when these go offline or change (for whatever reason), it could cause issues and confusion. -IPFS guarantees that these resources are entirely static, which means that they cannot change. -This is useful when dealing with Properties, as a change in datatype could break things. -IPFS also allows for location-independent fetching, which means that resources can be retrieved from any location, as long as it's online. -This Peer-to-peer functionality is a very fundamental advantage of IPFS over HTTP, especially when the resources are very likely to be re-use, which is _especially_ the case for Atomic Data Properties. - -## Considerations using IPFS URLs - -IPFS URLs are **static**, which means that their contents can never change. -This is great for some types of data, but not so much for others. -If you're describing a time-dependent thing (such as a person's job), you'll probably want to know what the _current_ value is, and that is not possible when you only have an IPFS identifier. -This can be fixed by including an HTTP URL in IPFS bodies. - -IPFS data is also **hard to remove**, as it tends to be replicated across machines. -If you're describing personal, private information, it can therefore be a bad idea to use IPFS. - -And finally, its **performance** is typically not as good as HTTP. -If you know the IPFS gateway that hosts the IPFS resource that you're looking for, things improve drastically. -Luckily for Atomic Data, this is often the case, as we know the HTTP url of the server and could try whether that server has an IPFS gateway. - -## Atomic Data and IPLD - -IPLD (not IPFS) stands for InterPlanetary Linked Data, but is not related to RDF. -The scope seems fundamentally different from RDF, too, but I have to read more about this. - -## Share your thoughts - -Discuss on [this issue](https://github.com/ontola/atomic-data-docs/issues/42). diff --git a/src/interoperability/json.md b/src/interoperability/json.md deleted file mode 100644 index 7e5a600..0000000 --- a/src/interoperability/json.md +++ /dev/null @@ -1,122 +0,0 @@ -{{#title How does Atomic Data relate to JSON?}} -# How does Atomic Data relate to JSON? - -Because JSON is so popular, Atomic Data is designed with JSON in mind. - -Atomic Data is often (by default) serialized to [JSON-AD](../core/json-ad.md), which itself uses JSON. -JSON-AD uses URLs as keys, which is what gives Atomic Data many of its perks, but using these long strings as keys is not very easy to use in many contexts. -That's why you can serialize Atomic Data to simple, clean JSON. - -## From Atomic Data to plain JSON - -The JSON keys are then derived from the `shortnames` of properties. -For example, we could convert this JSON-AD: - -```json -{ - "@id": "https://atomicdata.dev/properties/description", - "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown", - "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Property" - ], - "https://atomicdata.dev/properties/shortname": "description" -} -``` - -... into this plain JSON: - -```json -{ - "@id": "https://atomicdata.dev/properties/description", - "datatype": "https://atomicdata.dev/datatypes/markdown", - "description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "is-a": [ - "https://atomicdata.dev/classes/Property" - ], - "shortname": "description" -} -``` - -Note that when you serialize Atomic Data to plain JSON, some information is lost: the URLs are no longer there. -This means that it is no longer possible to find out what the datatype of a single value is - we now only know if it's a `string`, but not if it actually represents a markdown string or something else. -Most Atomic Data systems will therefore _not_ use this plain JSON serialization, but for some clients (e.g. a front-end app), it might be easier to use the plain JSON, as the keys are easier to write than the long URLs that JSON-AD uses. - -## From JSON to JSON-AD - -Atomic Data requires a bit more information about pieces of data than JSON tends to contain. Let's take a look at a regular JSON example: - -```json -{ - "name": "John", - "birthDate": "1991-01-20" -} -``` - -We need more information to convert this JSON into Atomic Data. -The following things are missing: - -* What is the **Subject** URL of the resource being described? -* What is the **Property** URL of the keys being used? (`name` and `birthDate`), and consequentially, how should the values be parsed? What are their DataTypes? - -In order to make this conversion work, we need to link to three URLs that _resolve to atomic data resources_. -The `@id` subject should resolve to the Resource itself, returning the JSON-AD from below. -The Property keys (e.g. "https://example.com/properties/name") need to resolve to Atomic Properties. - -```json -{ - "@id": "https://example.com/people/john", - "https://example.com/properties/name": "John", - "https://example.com/properties/birthDate": "1991-01-20" -} -``` - -In practice, the easiest approach to make this conversion, is to create the data and host it using software like [Atomic Server](https://github.com/atomicdata-dev/atomic-server/blob/master/server/README.md). - -## From Atomic Data to JSON-LD - -Atomic Data is a strict subset of RDF, and the most popular serialization of RDF for JSON data is [JSON-LD](https://json-ld.org/). - -Since Atomic Schema requires the presence of a `key` slug in Properties, converting Atomic Data to JSON results in dev-friendly objects with nice shorthands. - -```json -{ - "@id": "https://example.com/people/John", - "https://example.com/properties/lastname": "John", - "https://example.com/properties/bestFriend": "https://example.com/sarah", -} -``` - -Can be automatically converted to: - -```json -{ - "@context": { - "@id": "https://example.com/people/John", - "name": "https://example.com/properties/lastname", - "bestFriend": "https://example.com/properties/bestFriend", - }, - "name": "John", - "bestFriend": { - "@id": "https://example.com/sarah" - }, -} -``` - -The `@context` object provides a _mapping_ to the original URLs. - -JSON-AD and JSON-LD are very similar by design, but there are some important differences: - -- JSON-AD is designed just for atomic data, and is therefore easier and more performant to parse / serialize. -- JSON-LD uses `@context` to map keys to URLs. Any type of mapping is valid. JSON-AD, on the other hand, doesn't map anything - all keys are URLs. -- JSON-LD uses nested objects for links and sequences, such as `@list`. JSON-AD does not. -- Arrays in JSON-LD do not indicate ordered data - they indicate that for some subject-predicate combination, multiple values exist. This is a result of how RDF works. - -## JSON-LD Requirements for valid Atomic Data - -- Make sure the URLs used in the `@context` resolve to Atomic Properties. - -- Convert JSON-LD arrays into ResourceArrays -- Creating nested JSON objects is possible (by resolving the identifiers from `@id` relations), but it is up to the serializer to decide how deep this object nesting should happen. - -Note that as of now, there are no JSON-LD parsers for Atomic Data. diff --git a/src/interoperability/privacy.md b/src/interoperability/privacy.md deleted file mode 100644 index 973b9a2..0000000 --- a/src/interoperability/privacy.md +++ /dev/null @@ -1,11 +0,0 @@ -# Atomic Data - privacy and encryption - -Atomic Data is great for sharing, and therefore great as a format for Open Data. -However, Atomic Data can also be used to share secret and private stuff. - -## Using Encryption - -Encryption turns readable text into gibberish using some specific Key. -The counterpart of that key can be used to _decrypt_ that gibberish, and turn it into its usable form. - -TODO! diff --git a/src/interoperability/rdf.md b/src/interoperability/rdf.md deleted file mode 100644 index 08638c4..0000000 --- a/src/interoperability/rdf.md +++ /dev/null @@ -1,285 +0,0 @@ -{{#title How does Atomic Data relate to RDF?}} -# How does Atomic Data relate to RDF? - -RDF (the [Resource Description Framework](https://www.w3.org/TR/rdf-primer/)) is a W3C specification from 1999 that describes the original data model for linked data. -It is the forerunner of Atomic Data, and is therefore highly similar in its model. -Both heavily rely on using URLs, and both have a fundamentally simple and uniform model for data statements. -Both view the web as a single, connected graph database. -Because of that, Atomic Data is also highly compatible with RDF - **all Atomic Data is also valid RDF**. -Atomic Data can be thought of as a **more constrained, type safe version of RDF**. -However, it does differ in some fundamental ways. - -- Atomic calls the three parts of a Triple `subject`, `property` and `value`, instead of `subject`, `predicate`, `object`. -- Atomic does not support having multiple statements with the same ` `, every combination must be unique. -- Atomic does not have `literals`, `named nodes` and `blank nodes` - these are all `values`, but with different datatypes. -- Atomic uses `nested Resources` and `paths` instead of `blank nodes` -- Atomic requires URL (not URI) values in its `subjects` and `properties` (predicates), which means that they should be resolvable. Properties must resolve to an `Atomic Property`, which describes its datatype. -- Atomic only allows those who control a resource's `subject` URL endpoint to edit the data. This means that you can't add triples about something that you don't control. -- Atomic has no separate `datatype` field, but it requires that `Properties` (the resources that are shown when you follow a `predicate` value) specify a datatype. However, it is allowed to serialize the datatype explicitly, of course. -- Atomic has no separate `language` field. -- Atomic has a native Event (state changes) model ([Atomic Commits](../commits/intro.md)), which enables communication of state changes -- Atomic has a native Schema model ([Atomic Schema](../schema/intro.md)), which helps developers to know what data types they can expect (string, integer, link, array) -- Atomic does not support Named Graphs. These should not be needed, because all statements should be retrievable by fetching the Subject of a resource. However, it _is_ allowed to include other resources in a response. - -## Why these changes? - -I have been working with RDF for quite some time now, and absolutely believe in some of the core premises of RDF. -I started a company that specializes in Linked Data ([Ontola](https://ontola.io)), and we use it extensively in our products and services. -Using URIs (and more-so URLs, which are URIs that can be fetched) for everything is a great idea, since it helps with interoperability and enables truly decentralized knowledge graphs. -However, some of the characteristics of RDF make it hard to use, and have probably contributed to its relative lack of adoption. - -### It's too hard to select a specific value (object) in RDF - -For example, let's say I want to render someone's birthday: - -```ttl - "1991-01-20"^^xsd:date -``` - -Rendering this item might be as simple as fetching the subject URL, filtering by predicate URL, and parsing the `object` as a date. - -However, this is also valid RDF: - -```ttl - "1991-01-20"^^xsd:date - - "20th of januari 1991"@en - "20 januari 1991"@nl - "2000-02-30"^^xsd:date -``` - -Now things get more complicated if you just want to select the original birthdate value: - -1. **Select the named graph**. The triple containing that birthday may exist in some named graph different from the `subject` URL, which means that I first need to identify and fetch that graph. -1. **Select the subject**. -1. **Select the predicate**. -1. **Select the datatype**. You probably need a specific datatype (in this case, a Date), so you need to filter the triples to match that specific datatype. -1. **Select the language**. Same could be true for language, too, but that is not necessary in this birthdate example. -1. **Select the specific triple**. Even after all our previous selectors, we _still_ might have multiple values. How do I know which is the triple I'm supposed to use? - -To be fair, with a lot of RDF data, only steps 2 and 3 are needed, since there are often no `subject-predicate` collisions. -And if you _control_ the data of the source, you can set any constraints that you like, inlcluding `subject-predicate` uniqueness. -But if you're building a system that uses arbitrary RDF, that system also needs to deal with steps 1,4,5 and 6. -That often means writing a lot of conditionals and other client-side logic to get the value that you need. -It also means that serializing to a format like JSON becomes complicated - you can't just map predicates to keys - you might get collisions. -And you can't use key-value stores for storing RDF, at least not in a trivial way. -Every single _selected value_ should be treated as an array of unknown datatypes, and that makes it really difficult to build software. -All this complexity is the direct result of the lack of `subject-predicate` uniqueness. - -As a developer who uses RDF data, I want to be able to do something like this: - -```js -// Fetches the resource -const joep = get("https://example.com/person/joep") -// Returns the value of the birthDate atom -console.log(joep.birthDate()) // => Date(1991-01-20) -// Fetches the employer relation at possibly some other domain, checks that resource for a property with the 'name' shortkey -console.log(joep.employer().name()) // => "Ontola.io" -``` - -Basically, I'd like to use all knowledge of the world as if it were a big JSON object. -Being able to do that, requires using some things that are present in JSON, and using some things that are present in RDF. - -- Traverse data on various domains (which is already possible with RDF) -- Have [unique `subject-predicate` combinations](#subject-predicate-uniqueness) (which is default in JSON) -- Map properties URLs to keys (which often requires local mapping with RDF, e.g. in JSON-LD) -- Link properties to datatypes (which is possible with ontologies like SHACL / SHEX) - -### Less focus on semantics, more on usability - -One of the core ideas of the semantic web, is that anyone should be able to say anything about anything, using semantic triples. -This is one of the reasons why it can be so hard to select a specific value in RDF. -When you want to make all graphs mergeable (which is a great idea), but also want to allow anyone to create any triples about any subject, you get `subject-predicate` non-uniqueness. -For the Semantic Web, having _semantic_ triples is great. -For linked data, and connecting datasets, having atomic triples (with unique `subject-predicate` combinations) seems preferable. -Atomic Data chooses a more constrained approach, which makes it easier to use the data, but at the cost of some expressiveness. - -### Changing the names - -RDF's `subject`, `predicate` and `object` terminology can be confusing to newcomers, so Atomic Data uses `subject`, `property`, `value`. -This more closely resembles common CS terminology. ([discussion](https://github.com/ontola/atomic-data/issues/3)) - -### Subject + Predicate uniqueness - -As discussed above, in RDF, it's very much possible for a graph to contain multiple statements that share both a `subject` and a `predicate`. -This is probably because of two reasons: - -1. RDF graphs must always be **mergeable** (just like Atomic Data). -1. Anyone can make **any statement** about **any subject** (_unlike_ Atomic Data, see next section). - -However, this introduces a lot extra complexity for data users (see above), which makes it not very attractive to use RDF in any client. -Whereas most languages and datatypes have `key-value` uniqueness that allow for unambiguous value selection, RDF clients have to deal with the possibility that multiple triples with the same `subject-predicate` combination might exist. -It also introduces a different problem: How should you interpret a set of `subject-predicate` combinations? -Does this represent a non-ordered collection, or did something go wrong while setting values?\ -In the RDF world, I've seen many occurences of both. - -Atomic Data requires `subject-property` uniqueness, which means that these issues are no more. -However, in order to guarantee this, and still retain _graph merge-ability_, we also need to limit who creates statements about a subject: - -### Limiting subject usage - -RDF allows that `anne.com` creates and hosts statements about the subject `john.com`. -In other words, domain A creates statements about domain B. -It allows anyone to say anything about any subject, thus allowing for extending data that is not under your control. - -For example, developers at both Ontola and Inrupt (two companies that work a lot with RDF) use this feature to extend the Schema.org ontology with translations. -This means they can still use standards from Schema.org, and have their own translations of these concepts. - -However, I think this is a flawed approach. -In the example above, two companies are adding statements about a subject. -In this case, both are adding translations. -They're doing the same work twice. -And as more and more people will use that same resource, they will be forced to add the same translations, again and again. - -I think one of the core perks of linked data, is being able to make your information highly re-usable. -When you've created statements about an external thing, these statements are hard to re-use. - -This means that someone using RDF data about domain B cannot know that domain B is actually the source of the data. -Knowing _where data comes from_ is one of the great things about URIs, but RDF does not require that you can think of subjects as the source of data. -Many subjects in RDF don't actually resolve to all the known triples of the statement. -It would make the conceptual model way simpler if statements about a subject could only be made from the source of the domain owner of the subject. -When triples are created about a resource, in a place other than where the subject is hosted, these triples are hard to share. - -The way RDF projects deal with this, is by using _named graphs_. -As a consequence, all systems that use these triples should keep track of another field for every atom. -To make things worse, it makes `subject-predicate` uniqueness _impossible_ to guarantee. -That's a high price to pay. - -I've asked two RDF developers (who did not know each other) working on RDF about limiting subject usage, and both were critical. -Interestingly, they provided the same usecase for using named graphs that would conflict with the limiting subject usage constraint. -They both wanted to extend the schema.org ontology by adding properties to these items in a local graph. -I don't think even this usecase is appropriate for named graphs. They were actually using an external resource that did not provide them with the things they needed. The things that they would add (the translations) are not re-usable, so in the end they will just keep spreading a URL that doesn't provide people with the things that they will come to expect. The schema.org URL still won't provide the translations that they wrote! -I believe a better solution is to copy the resource (in this case a part of the schema.org ontology), and extend it, and host it somewhere else, and use that URL. -Or even better: have a system for [sharing your change suggestions](https://github.com/ontola/atomic-data/issues/21) with the source of the data, and allow for easy collaboration on ontologies. - -### No more literals / named nodes - -In RDF, an `object` can either be a `named node`, `blank node` or `literal`. A `literal` has a `value`, a `datatype` and an optional `language` (if the `literal` is a string). -Although RDF statements are often called `triples`, a single statement can consist of five fields: `subject`, `predicate`, `object`, `language`, `datatype`. -Having five fields is way more than most information systems. Usually we have just `key` and `value`. -This difference leads to compatibility issues when using RDF in applications. -In practice, clients have to run a lot of checks before they can use the data - which makes RDF in most contexts harder to use than something like JSON. - -Atomic Data drops the `named node` / `literal` distinction. -We just have `values`, and they are interpreted by looking at the `datatype`, which is defined in the `property`. -When a value is a URL, we don't call it a named node, but we simply use a URL datatype. - -### Requiring URLs - -A URL (Uniform Resource _Locator_) is a specific and cooler version of a URI (Uniform Resource _Identifier_), because a URL tells you where you can find more information about this thing (hence _Locator_). - -RDF allows any type of URIs for `subject` and `predicate` value, which means they can be URLs, but don't have to be. -This means they don't always resolve, or even function as locators. -The links don't work, and that restricts how useful the links are. -Atomic Data takes a different approach: these links MUST Resolve. Requiring [Properties](https://atomicdata.dev/classes/Property) to resolve is part of what enables the type system of Atomic Schema - they provide the `shortname` and `datatype`. - -Requiring URLs makes things easier for data users, but makes things a bit more difficult for the data producer. -With Atomic Data, the data producer MUST offer the data at the URL of the subject. -This is a challenge that requires tooling, which is why I've built [Atomic-Server](https://crates.io/crates/atomic-server): an easy to use, performant, open source data management sytem. - -Making sure that links _actually work_ offer tremendous benefits for data consumers, and that advantage is often worth the extra trouble. - -### Replace blank nodes with paths - -Blank (or anonymous) nodes are RDF resources with identifiers that exist only locally. -In other words, their identifiers are not URLs. -They are sometimes also called `anonymous nodes`. -They make life easier for data producers, who can easily create (nested) resources without having to mint all the URLs. -In most non-RDF data models, blank nodes are the default. -For example, we nest JSON object without thinking twice. - -Unfortunately, blank nodes tend to make things harder for clients. -These clients will now need to keep track of where these blank nodes came from, and they need to create internal identifiers that will not collide. -Cache invalidation with blank nodes also becomes a challenge. -To make this a bit easier, Atomic Data introduces a new way of dealing with names of things that you have not given a URL yet: [Atomic Paths](../core/paths.md). - -Since Atomic Data has `subject-predicate` uniqueness (like JSON does, too), we can use the _path_ of triples as a unique identifier: - -``` -https://example.com/john https://schema.org/employer -``` - -This prevents collisions and still makes it easy to point to a specific value. - -Serialization formats are free to use nesting to denote paths - which means that it is not necessary to include these path strings explicitly in most serialization formats, such as in JSON-AD. - -### Combining datatype and predicate - -Having both a `datatype` and a `predicate` value can lead to confusing situations. -For example, the [`schema:dateCreated`](https://schema.org/dateCreated) Property requires an ISO DateTime string (according to the schema.org definition), but using a value `true` with an `xsd:boolean` datatype results in perfectly valid RDF. -This means that client software using triples with a `schema:dateCreated` predicate cannot safely assume that its value will be a DateTime. -So if the client wants to use `schema:dateCreated` values, the client must also specify which type of data it expects, check the datatype field of every Atom and provide logic for when these don't match. -Also important combining `datatype` and `predicate` fits the model of most programmers and languages better - just look at how every single struct / model / class / shape is defined in programming languages: `key: datatype`. -This is why Atomic Data requires that a `predicate` links to a Property which must have a `Datatype`. - -### Adding shortnames (slugs / keys) in Properties - -Using full URI strings as keys (in RDF `predicates`) results in a relatively clunky Developer Experience. -Consider the short strings that developers are used to in pretty much all languages and data formats (`object.attribute`). -Adding a _required_ / tightly integrated key mapping (from long URLs to short, simple strings) in Atomic Properties solves this issue, and provides developers a way to write code like this: `someAtomicPerson.bestFriend.name => "Britta"`. -Although the RDF ecosystem does have some solutions for this (@context objects in JSON-LD, @prefix mappings, the @ontologies library), these prefixes are not defined in Properties themselves and therefore are often defined locally or separate from the ontology, which means that developers have to manually map them most of the time. -This is why Atomic Data introduces a `shortname` field in Properties, which forces modelers to choose a 'key' that can be used in ORM contexts. - -### Adding native arrays - -RDF lacks a clear solution for dealing with [ordered data](https://ontola.io/blog/ordered-data-in-rdf/), resulting in confusion when developers have to create lists of content. -Adding an Array data type as a base data type helps solve this. ([discussion](https://github.com/ontola/atomic-data/issues/4)) - -### Adding a native state changes standard - -There is no integrated standard for communicating state changes. -Although [linked-delta](https://github.com/ontola/linked-delta) and [rdf-delta](https://afs.github.io/rdf-delta/) do exist, they aren't referred to by the RDF spec. -I think developers need guidance when learning a new system such as RDF, and that's why [Atomic Commits](../commits/intro.md) is included in this book. - -### Adding a schema language and type safety - -A schema language is necessary to constrain and validate instances of data. -This is very useful when creating domain-specific standards, which can in turn be used to generate forms or language-specific types / interfaces. -Shape validations are already possible in RDF using both [SHACL](https://www.w3.org/TR/shacl/) and [SHEX](https://shex.io/), and these are both very powerful and well designed. - -However, with Atomic Data, I'm going for simplicity. -This also means providing an all-inclusive documentation. -I want people who read this book to have a decent grasp of creating, modeling, sharing, versioning and querying data. -It should provide all information that most developers (new to linked data) will need to get started quickly. -Simply linking to SHACL / SHEX documentation could be intimidating for new developers, who simply want to define a simple shape with a few keys and datatypes. - -Also, SHACL requires named graphs (which are not specified in Atomic Data) and SHEX requires a new serialization format, which might limit adoption. -Atomic Data has some unique constrains (such as subject-predicate uniqueness) which also might make things more complicated when using SHEX / SHACL. - -_However_, it is not the intention of Atomic Data to create a modeling abstraction that is just as powerful as the ones mentioned above, so perhaps it is better to include a SHACL / SHEX tutorial and come up with a nice integration of both worlds. - -### A new name, with new docs - -Besides the technical reasons described above, I think that there are social reasons to start with a new concept and give it a new name: - -- The RDF vocabulary is intimidating. When trying to understand RDF, you're likely to traverse many pages with new concepts: `literal`, `named node`, `graph`, `predicate`, `named graph`, `blank node`... The core specification provides a formal description of these concepts, but fails to do this in a way that results in quick understanding and workable intuitions. Even experienced RDF developers tend to be confused about the nuances of the core model. -- There is a lack of learning resources that provide a clear, complete answer to the lifecycle of RDF data: modeling data, making data, hosting it, fetching it, updating it. Atomic Data aims to provide an opinionated answer to all of these steps. It feels more like a one-stop-shop for questions that developers are likely to encounter, whilst keeping the extendability. -- All Core / Schema URLs should resolve to simple, clear explanations with both examples and machine readable definitions. Especially the Property and Class concepts. -- The Semantic Web community has had a lot of academic attention from formal logic departments, resulting in a highly developed standard for knowledge modeling: the Web Ontology Language (OWL). While this is mostly great, its open-world philosophy and focus on reasoning abilities can confuse developers who are simply looking for a simple way to share models in RDF. - -## Convert RDF to Atomic Data - -- **All the `subject` URLs MUST actually resolve, and return all triples about that subject**. All `blank nodes` should be converted into URLs. Atomic Data tools might help to achieve this, for example by hosting the data. -- **All `predicates` SHOULD resolve to Atomic Properties, and these SHOULD have a `datatype`**. You will probably need to change predicate URLs to Atomic Property URLs, or update the things that the predicate points to to include the required Atomic Property items (e.g. having a Datatype and a Shortname). This also means that the `datatype` in the original RDF statement can be dropped. -- Literals with a `language` tag are converted to TranslationBox resources, which also means their identifiers must be created. Keep in mind that Atomic Data does not allow for blank nodes, so the TranslationBox identifiers must be URLs. - -Step by step, it entails: - -1. Set up some server to make sure the URLs will resolve. -1. Create (or find and refer to) Atomic Properties for all the `predicates`. Make sure they have a DataType and a Shortname. -1. If you have triples about a subject that you don't control, change the URL to some that you _can_ control, and refer to that external resource. - -Atomic Data will need [tooling](../tooling.md) to facilitate in this process. -This tooling should help to create URLs, Properties, and host everything on an easy to use server. - -## Convert Atomic data to RDF - -Since all Atomic Data is also valid RDF, it's trivial to convert / serialize Atoms to RDF. -This is why [atomic](https://github.com/atomicdata-dev/atomic-data-browser) can serialize Atomic Data to RDF. (For example, try `atomic-cli get https://atomicdata.dev/properties/description --as n3`) - -However, contrary to Atomic Data, RDF has optional Language and Datatype elements in every statement. -It is good practice to use these RDF concepts when serializing Atomic Data into Turtle / RDF/XML, or other [RDF serialization formats](https://ontola.io/blog/rdf-serialization-formats/). - -- Convert Atoms with linked `TranslationBox` Resources to Literals with an `xsd:string` datatype and the corresponding language in the tag. -- Convert Atoms with ResourceArrays to [Collections](https://ontola.io/blog/ordered-data-in-rdf/) that are native to that serialization format. -- Dereference the Property and Datatype from Atomic Properties, and add the URLs in `datatypes` in RDF statements. diff --git a/src/interoperability/solid.md b/src/interoperability/solid.md deleted file mode 100644 index 274cd9b..0000000 --- a/src/interoperability/solid.md +++ /dev/null @@ -1,148 +0,0 @@ -{{#title How does Atomic Data relate to Solid?}} -# Atomic Data and Solid - -The [Solid project](https://solidproject.org/) is an initiative by the inventor of linked data and the world wide web: sir Tim Berners-Lee. -In many ways, it has **similar goals** to Atomic Data: - -- Decentralize the web -- Make things more interoperable -- Give people more control over their data - -Technically, both are also similar: - -- Usage of **personal servers**, or PODs (Personal Online Datastores). Both Atomic Data and Solid aim to provide users with a highly personal server where all sorts of data can be stored. -- Usage of **linked data**. All Atomic Data is valid RDF, which means that **all Atomic Data is compatible with Solid**. However, the other way around is more difficult. In other words, if you choose to use Atomic Data, you can always put it in your Solid Pod. - -But there are some important **differences**, too, which will be explained in more detail below. - -- Atomic Data uses a strict built-in schema to ensure type safety -- Atomic Data standardizes state changes (which also provides version control / history, audit trails) -- Atomic Data is more easily serializable to other formats (like JSON) -- Atomic Data has different models for authentication, authorization and hierarchies -- Atomic Data does not depend on existing semantic web specifications -- Atomic Data is a smaller and younger project, and as of now a one-man show - -_Disclaimer: I've been quite involved in the development of Solid, and have a lot of respect for all the people who are working on it. -Solid and RDF have been important inspirations for the design of Atomic Data. -The following is not meant as a critique on Solid, let alone the individuals working on it._ - -## Atomic Data is type-safe, because of its built-in schema - -Atomic Data is more strict than Solid - which means that it only accepts data that conforms to a specific shape. -In a Solid Pod, you're free to add any shape of data that you like - it is not _validated_ by some schema. -Yes, there are some efforts of using SHACL or SHEX to _constrain_ data before putting it in, but as of now it is not part of the spec or any implementation that I know of. -A lack of schema strictness can be helpful during prototyping and rapid development, especially if you write data by hand, but it also limits how easy it is to build reliable apps with that data. -Atomic Data aims to be very friendly for developers that re-use data, and that's why we take a different approach: all data _must be_ validated by Atomic Schema before it's stored on a server. -This means that all Atomic Properties will have to exist on a publicly accessible URL, before the property can be used somewhere. - -You can think of Atomic Data more like a (dynamic) SQL database that offers guarantees about its content type, and a Solid Pod more like a document store that takes in all kinds of content. -Most of the differences have to do with how Atomic Schema aims to make linked data easier to work with, but that is covered in the previous [RDF chapter](./rdf.md). - -## Atomic Data standardizes state changes (event sourcing) - -With Solid, you change a Resource by sending a POST request to the URL that you want to change. -With Atomic, you change a Resource by sending a signed Commit that contains the requested changes to a Server. - -Event sourcing means that all changes are stored (persisted) and used to calculate the current state of things. -In practice, this means that users get a couple of nice features for free: - -- **Versioning for all items by default**. Storing events means that these events can be _replayed_, which means you get to traverse time / undo / redo. -- **Edit / audit log for everything**. Events contain information about who made which change at which point in time. Can be useful for finding out why things are the way they are. -- **Easier to add query options / indexes**. Any system can play-back the events, which means that the events can be used as an API to add new query options / fill new indexes. This is especially useful if you want to add things like full-text search, or some geolocation index. - -It also means that, compared to Solid, there is a relatively simple and strict API for changing data. -Atomic Data has a **uniform write API**. -All changes to data are done by posting Commits to the `/commits` endpoint of a Server. -This removes the need to think about differences between all sorts of HTTP methods like POST / PUT / PATCH, and how servers should reply to that. - -_EDIT: as of december 2021, Solid has introduced `.n3 patch` for standardizing state changes. Although this adds a uniform way of describing changes, it still lacks the power of Atomic Commits. It does not specify signatures, mention versioning, or deals with persisting changesets. On top of that, it is quite difficult to read or parse, being `.n3`._ - -## Atomic Data is more easily serializable to other formats (like JSON) - -Atomic Data is designed with the modern (web)developer in mind. -One of the things that developers expect, is to be able to traverse (JSON) objects easily. -Doing this with RDF is not easily possible, because doing this requires _subject-predicate uniqueness_. -Atomic Data does not have this problem (properties _must_ be unique), which means that traversing objects becomes easy. - -Another problem that Atomic Data solves, is dealing with long URLs as property keys. -Atomic Data uses `shortnames` to map properties to short, human-readable strings. - -For more information about these differences, see the previous [RDF chapter](./rdf.md). - - -## Authentication - -Both Solid an Atomic Data use URLs to refer to individuals / users / Agents. - -Solid's identity system is called WebID. -There are multiple supported authentication protocols, the most common being [WebID-OIDC](https://github.com/solid/webid-oidc-spec). - -Atomic Data's [authentication model](../authentication.md) is more similar to how SSH works. -Atomic Data identities (Agents) are a combination of HTTP based, and cryptography (public / private key) based. -In Atomic, all actions (from GET requests to Commits) are signed using the private key of the Agent. -This makes Atomic Data a bit more unconventional, but also makes its auth mechanism very decentralized and lightweight. - -## Hierarchy and authorization - -Atomic Data uses `parent-child` [hierarchies](../hierarchy.md) to model data structures and perform authorization checks. -This closely resembles how filesystems work (including things like Google Drive). -Per resource, `write` and `read` rights can be defined, which both contain lists of Agents. - -Solid is working on the [Shape Trees](https://shapetrees.org/TR/specification/) spec, which also describes hierarchies. -It uses SHEX to perform shape validation, similar to how Atomic Schema does. - - -## No dependency on existing semantic web specifications - -The Solid specification (although still in draft) builds on a 20+ year legacy of committee meetings on semantic web standards such as RDF, SPARQL, OWL and XML. -I think the process of designing specifications in [various (fragmented) committees](https://en.wikipedia.org/wiki/Design_by_committee) has led to a set of specifications that lack simplicity and consistency. -Many of these specifications have been written long before there were actual implementations. -Much of the effort was spent on creating highly formal and abstract descriptions of common concepts, but too little was spent on making specs that are easy to use and solve actual problems for developers. - -Aaron Scharz (co-founder or reddit, inventor of RSS and Markdown) wrote this in his [unfinished book 'A Programmable Web'](https://ieeexplore.ieee.org/document/6814657): - -> Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense -contractors. -> They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device. - -(The book is a great read on this topic, by the way!) - -So, in a nutshell, I think this legacy makes Solid unnecessarily hard to use for developers, for the following reasons: - -- **RDF Quirks**: Solid has to deal with all the [complexities of the RDF data model](./rdf.md), such as blank nodes, named graphs, subject-predicate duplication. -- **Multiple (uncommon) serialization formats** need to be understood, such as `n3`, `shex` and potentially all the various RDF serialization formats. These will feel foreign to most (even very experienced) developers and can have a high degree of complexity. -- **A heritage of broken URLs**. Although a lot if RDF data exists, only a small part of it is actually resolvable as machine-readable RDF. The large majority won't give you the data when sending a HTTP GET request with the correct `Accept` headers to the subject's URL. Much of it is stored in documents on a different URL (`named graphs`), or behind some SPARQL endpoint that you will first need to find. Solid builds on a lot of standards that have these problems. -- **Confusing specifications**. Reading up on RDF, Solid, and the Semantic Web can be a daunting (yet adventurous) task. I've seen many people traverse a similar path as I did: read the RDF specs, dive into OWL, install protege, create ontologies, try doing things that OWL doesn't do (validate data), read more complicated specs that don't help to clear things, become frustrated... It's a bit of a rabbit hole, and I'd like to prevent people from falling into it. There's a lot of interesting ideas there, but it is not a pragmatic framework to develop interoperable apps with. - -## Atomic Data and Solid server implementations - -Both Atomic Data and Solid are specifications that have different implementations. -Some open source Solid implementations are the [Node Solid Server](https://github.com/solid/node-solid-server), the [Community Solid Server](https://github.com/solid/community-server) (also nodejs based) and the [DexPod](https://gitlab.com/ontola/dexpod) (Ruby on Rails based). - -[Atomic-Server](https://github.com/atomicdata-dev/atomic-server/) is a database + server written in the Rust programming language, that can be considered an alternative to Solid Pod implementations. -It was definitely built to be one, at least. -It implements every part of the Atomic Data specification. -I believe that as of today (february 2022), Atomic-Server has quite a few advantages over existing Solid implementations: - - -- **Dynamic schema validation** / type checking using [Atomic Schema](https://docs.atomicdata.dev/schema/intro.html), combining the best of RDF, JSON and type safety. -- **Fast** (1ms responses on my laptop) -- **Lightweight** (8MB download, no runtime dependencies) -- **HTTPS + HTTP2 support** with Built-in LetsEncrypt handshake. -- **Browser GUI included** powered by [atomic-data-browser](https://github.com/atomicdata-dev/atomic-data-browser). Features dynamic forms, tables, authentication, theming and more. Easy to use! -- **Event-sourced versioning** / history powered by [Atomic Commits](https://docs.atomicdata.dev/commits/intro.html) -- **Many serialization options**: to JSON, [JSON-AD](https://docs.atomicdata.dev/core/serialization.html#json-ad), and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD). -- **Full-text search** with fuzzy search and various operators, often <3ms responses. -- **Pagination, sorting and filtering** using [Atomic Collections](https://docs.atomicdata.dev/schema/collections.html) -- **Invite and sharing system** with [Atomic Invites](https://docs.atomicdata.dev/invitations.html) -- **Desktop app** Easy desktop installation, with status bar icon, powered by [tauri](https://github.com/tauri-apps/tauri/). -- **MIT licensed** So fully open-source and free forever! - -## Things that Atomic Data misses, but Solid has - -Atomic Data is not even two years old, and although progress has been fast, it does lack some specifications. -Here's a list of things missing in Atomic Data, with links to their open issues and links to their existing Solid counterpart. - -- No inbox or [notifications](https://www.w3.org/TR/ldn/) yet ([issue](https://github.com/ontola/atomic-data/issues/28)) -- No OIDC support yet. ([issue](https://github.com/atomicdata-dev/atomic-server/issues/277)) -- No support from a big community, a well-funded business or the inventor of the world wide web. diff --git a/src/interoperability/sql.md b/src/interoperability/sql.md deleted file mode 100644 index dc582d1..0000000 --- a/src/interoperability/sql.md +++ /dev/null @@ -1,87 +0,0 @@ -{{#title How does Atomic Data relate to SQL?}} -# Atomic Data and SQL - -Atomic Data has some characteristics that make it similar and different from SQL. - -- Atomic Data has a _dynamic_ schema. Any Resource could have different properties, so you can **add new properties** to your data without performing any migrations. However, the properties themselves are still validated (contrary to most NoSQL solutions) -- Atomic Data uses **HTTP URLs** in its data, which means it's easy to **share and reuse**. -- Atomic Data separates _reading_ and _writing_, whereas SQL has one language for both. -- Atomic Data has a standardized way of **storing changes** ([Commits](../commits/intro.md)) - -## Tables and Rows vs. Classes and Properties - -At its core, SQL is a query language based around _tables_ and _rows_. -The _tables_ in SQL are similar to `Classes` in Atomic Data: they both define a set of `properties` which an item could have. -Every single item in a table is called a _row_ in SQL, and a `Resource` in Atomic Data. -One difference is that in Atomic Data, you can add new properties to resources, without making changes to any tables (migrations). - -## Dynamic vs static schema - -In SQL, the schema of the database defines which shape the data can have, which properties are required, what datatypes they have. -In Atomic Data, the schema exists as a Resource on the web, which means that they can be retrieved using HTTP. -An Atomic Database (such as [Atomic-Server](https://crates.io/crates/atomic-server)) uses a _dynamic schema_, -which means that any Resource can have different properties, and the properties themselves can be validated, even when the server is not aware of these properties beforehand. -In SQL, you'd have to manually adjust the schema of your database to add a new property. -Atomic Data is a decentralized, open system, which can read new schema data from other sources. -SQL is a centralized, closed system, which relies on the DB manager to define the schema. - -## Identifiers: numbers vs. URLs - -In SQL, rows have numbers as identifiers, whereas in Atomic Data, every resource has a resolvable HTTP URL as an identifier. -URLs are great identifiers, because you can open them and get more information about something. -This means that with Atomic Data, other systems can re-use your data by referencing to it, and you can re-use data from other systems, too. -With Atomic Data, you're making your data part of a bigger _web of data_, which opens up a lot of possibilities. - -## Atomic Server combines server and database - -If you're building an App with SQL, you will always need some server that connects to your database. -If you're building an App with Atomic Server, the database can function as your server, too. It deals with authentication, authorization, and more. - -## Querying - -The SQL query language is for both _reading_ and _writing_ data. -In Atomic Data a distinction is made between Query and Command - getting and setting (Command Query Responsibility Segregation, [CQRS](https://martinfowler.com/bliki/CQRS.html)). -The [Query side](../core/querying.md) is handled using Subject Fetching (sending a GET request to a URL, to get a single resource) and [Collections](../schema/collections.md) (filtering and sorting data). -The Command side is typically done using [Atomic Commits](../commits/intro.md), although you're free not to use it. - -SQL is way more powerful, as a query language. -In SQL, the one creating the query basically defines the shape of a table that is requested, and the database returns that shape. -Atomic Data does not offer such functionality. -So if you need to create custom tables at runtime, you might be better off using SQL, or move your Atomic Data to a query system. - -## Convert an SQL database to Atomic Data - -If you want to make your existing SQL project serve Atomic Data, you can keep your existing SQL database, see [the upgrade guide](upgrade.md). -It basically boils down to mapping the rows (properties) in your SQL tables to Atomic Data [Properties](https://atomicdata.dev/classes/Property). - -When you want to _import arbitrary Atomic Data_, though, it might be easier to use `atomic-server`. -If you want to store arbitrary Atomic Data in a SQL database, you might be best off by creating a `Resources` table with a `subject` and a `propertyValues` column, or create both a `properties` table and a `resources` one. - -## Limitations of Atomic Data - -- SQL is far more common, many people will know how to use it. -- SQL databases are battle-tested and has been powering countless of products for tens of years, whereas Atomic Server is at this moment in beta. -- SQL databases have a more powerful and expressive query language, where you can define tables in your query and combine resources. -- Atomic Data doesn't have a [mutli-node / distributed option](https://github.com/atomicdata-dev/atomic-server/issues/213) - -## FAQ - -### Is Atomic Data NOSQL or SQL? - -Generally, Atomic Data apps do not use SQL - so they are NOSQL. -Atomic-server, for example, internally uses a key-value store (sled) for persistence. - -Like most NOSQL systems, Atomic Data does not limit data entries to a specific table shape, so you can add any property that you like to a resource. -However, unlike most NOSQL systems, Atomic Data _does_ perform validations on each value. -So in a way, Atomic Data tries to combine best of both worlds: the extendibility and flexibility of NOSQL, with the type safety of SQL. - -### Is Atomic Data transactional / ACID? - -Yes, if you use Atomic-Server, then you can only write to the server by using Atomic Commits, which are in fact transactions. -This means that if part of the transaction fails, it is reverted - transactions are only applied when they are 100% OK. -This prevents inconsistent DB states. - -### How does Atomic Server build indexes for its resources if the schema is not known in advance - -It creates indexed collections when users perform queries. -This means that the first time your perform some type of query (that sorts and filters by some properties), it will be slow, but the next time you perform a similar query, it will be fast. diff --git a/src/interoperability/upgrade.md b/src/interoperability/upgrade.md deleted file mode 100644 index 49fe51c..0000000 --- a/src/interoperability/upgrade.md +++ /dev/null @@ -1,49 +0,0 @@ -{{#title Upgrade your existing application to serve Atomic Data}} -# Upgrade your existing application to serve Atomic Data - -You don't have to use [Atomic-Server](https://crates.io/crates/atomic-server) and ditch your existing projects or apps, if you want to adhere to Atomic Data specs. - -As the Atomic Data spec is modular, you can start out simply and conform to more specs as needed: - -1. Map your JSON keys to new or existing Atomic Data properties -2. Add `@id` fields to your resources, make sure these URLs resolve using HTTP -3. Implement parts of the [Extended spec](../extended.md) - -There's a couple of levels you can go to, when adhering to the Atomic Data spec. - -## Easy: map your JSON keys to Atomic Data Properties - -If you want to make your existing project compatible with Atomic Data, you probably don't have to get rid of your existing storage / DB implementation. -The only thing that matters, is how you make the data accessible to others: the _serialization_. -You can keep your existing software and logic, but simply change the last little part of your API. - -In short, this is what you'll have to do: - -Map all properties of resources to Atomic Properties. -Either use [existing ones](https://atomicdata.dev/properties), or [create new ones](https://atomicdata.dev/app/new?classSubject=https%3A%2F%2Fatomicdata.dev%2Fclasses%2FProperty&parent=https%3A%2F%2Fatomicdata.dev%2Fagents%2F8S2U%2FviqkaAQVzUisaolrpX6hx%2FG%2FL3e2MTjWA83Rxk%3D&newSubject=https%3A%2F%2Fatomicdata.dev%2Fproperty%2Fsu98ox6tvkh). -This means: take your JSON objects, and change things like `name` to `https://atomicdata.dev/properties/name`. - -That's it, you've done the most important step! - -Now your data is already more interoperable: - -- Every field has a clear **semantic meaning** and **datatype** -- Your data can now be **easily imported** by Atomic Data systems - -## Medium: add `@id` URLs that properly resolve - -Make sure that when the user requests some URL, that you return that resource as a [JSON-AD](../core/json-ad.md) object (at the very least if the user requests it using an HTTP `Accept: application/ad+json` header). - -- Your data can now be **linked to** by external data sources, it can become part of a **web of data**! - -## Hard: implement Atomic Data Extended protocols - -You can go all out, and implement Commits, Hierarchies, Authentication, Collections and [more](https://docs.atomicdata.dev/extended.html). -I'd suggest starting with [Commits](../commits/intro.md), as these allow users to modify data whilst maintaining versioning and auditability. -Check out the [Atomic-Server source code](https://github.com/atomicdata-dev/atomic-server/tree/master/server) to get inspired on how to do this. - -## Reach out for help - -If you need any help, join our [Discord](https://discord.gg/a72Rv2P). - -Also, share your thoughts on creating Atomic Data in [this issue on github](https://github.com/ontola/atomic-data-docs/issues/95). diff --git a/src/interoperability/vc-old.md b/src/interoperability/vc-old.md deleted file mode 100644 index 52a9919..0000000 --- a/src/interoperability/vc-old.md +++ /dev/null @@ -1,32 +0,0 @@ -# Atomic Data and Verifiable Credentials - -Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. -For example, you could have a credential that proves your degree, signed by your education. -These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. -For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. -Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it. - -In Atomic Data, _all information created with Atomic Commits is verifiable_. -Atomic Commits are signed by specific individuals, and these signatures can be verified with the Public Key from the Agent who signed the Commit. - -## W3C Verifiable Credentials spec - -The W3C Verifiable Credentials (W3CVC) specification has helped to create a spec to describe credentials. -However, the approach is fundamentally different from how Atomic Data works. -In the W3CVC spec, every credential is a resource. -In Atomic Data, having a new type of `Credential` class that maps to W3CVC Credentials is definitely possible, but it is also highly redundant, as Commits already provide the same information. -That's why we've opted for only signing Commits. - -In Atomic Commits, the _change in information_ is signed, instead of the _state_ of the data. -This is by design, as storing signed state changes allows for fully verifiable and reversible history / version control with audit logs. - -## Verifying data with Atomic Commits - -If you want to know whether a specific value that you see is signed by a specific Agent, you need to find the Commit that created the value. - -This can be achieved by using a Collection. -The easiest way to do this, is by using the [`/all-versions` Endpoint](https://atomicdata.dev/all-versions) and finding the Signer of the version that is relevant to your question. - -In the near future, we will introduce a `/verify` Endpoint that will allow you to verify a specific value. - -Visit the [issue on github](https://github.com/ontola/atomic-data-docs/issues/22) to join the discussion about this subject. diff --git a/src/interoperability/verifiable-credentials.md b/src/interoperability/verifiable-credentials.md deleted file mode 100644 index 751fb01..0000000 --- a/src/interoperability/verifiable-credentials.md +++ /dev/null @@ -1,2 +0,0 @@ -{{#title How does Atomic Data relate to Verifiable Crendentials?}} -# Verifiable Credentials diff --git a/src/invitations.md b/src/invitations.md deleted file mode 100644 index 278e5e9..0000000 --- a/src/invitations.md +++ /dev/null @@ -1,28 +0,0 @@ -{{#title Atomic Data Invitations - Sharing using Tokens }} -# Invitations & Tokens - -([Discussion](https://github.com/ontola/atomic-data/issues/23)) - -At some point on working on something in a web application, you're pretty likely to share that, often not with the entire world. -In order to make this process of inviting others as simple as possible, we've come up with an Invitation standard. - -## Design goals - -- **Edit without registration**. Be able to edit or view things without being required to complete a registration process. -- **Share with a single URL**. A single URL should contain all the information needed. -- **(Un)limited URL usage**. A URL might be re-usable, or maybe not. - -## Flow - -1. The Owner or a resource creates an [Invite](https://atomicdata.dev/classes/Invite). This Invite points to a `target` Resource, provides `read` rights by default but can additionally add `write` rights, contains a bunch of `usagesLeft`. -1. The Guest opens the Invite URL. This returns the Invite resource, which provides the client with the information needed to do the next request which adds the actual rights. -1. The browser client app might generate a set of keys, or use an existing one. It sends the Agent URL to the Invite in a query param. -1. The server will respond with a Redirect resource, which links to the newly granted `target` resource. -1. The Guest will now be able to access the Resource. - -Try it on [https://atomicdata.dev/invites/1](https://atomicdata.dev/invites/1) - -## Limitations and gotcha's - -- The one creating the Invite has to take security in consideration. Some URLs can be easily guessed! When implementing Invitations, make sure to use a good amount of randomness when creating the Subject. -- Make sure that the invite is not publicly discoverable (e.g. through a Collection), this can happen if you set the `parent` of the invite to a public resource. diff --git a/src/links.md b/src/links.md deleted file mode 100644 index 009836f..0000000 --- a/src/links.md +++ /dev/null @@ -1,4 +0,0 @@ -# List of links of Atomic Data on the web - -- [Awesome Knowledge Graph](https://github.com/totogo/awesome-knowledge-graph) -- [Awesome Semantic Web](https://github.com/semantalytics/awesome-semantic-web) diff --git a/src/motivation.md b/src/motivation.md deleted file mode 100644 index 9feddcc..0000000 --- a/src/motivation.md +++ /dev/null @@ -1,91 +0,0 @@ -{{#title Motivation for creating Atomic Data}} -# Motivation: Why Atomic Data? - - - -## Give people more control over their data - -The world wide web was designed by Tim Berners-Lee to be a decentralized network of servers that help people share information. -As I'm writing this, it is exactly 30 years ago that the first website has launched. -Unfortunately, the web today is not the decentralized network it was supposed to be. -A handful of large tech companies are in control of how the internet is evolving, and where and how our data is being stored. -The various services that companies like Google and Microsoft offer (often for free) integrate really well with their other services, but are mostly designed to _lock you in_. -Vendor lock-in means that it is often difficult to take your information from one app to another. -This limits innovation, and limits users to decide how they want to interact with their data. -Companies often have incentives that are not fully aligned with what users want. -For example, Facebook sorts your newsfeed not to make you satisfied, but to make you spend as much time looking at ads. -They don't want you to be able to control your own newsfeed. -Even companies like Apple, that don't have an ad-revenue model, still have a reason to (and very much do) lock you in. -To make things even worse, even open-source projects made by volunteers often don't work well together. -That's not because of bad intentions, that's because it is _hard_ to make things interoperable. - -If we want to change this, we need open tech that works really well together. -And if we want that, we need to _standardize_. -The existing standards are well-suited for documents and webpages, but not for structured personal data. -If we want to have that, we need to standardize the _read-write web_, which includes standardizing how items are changed, how their types are checked, how we query lists, and more. -I want all people to have a (virtual) private server that contains their own data, that they control. -This [Personal Data Store](usecases/personal-data-store.md) could very well be an old smartphone with a broken screen that is always on, running next to your router. - -Atomic Data is designed to be a standard that achieves this. -But we need more than a standard to get adoption - we need implementations. -That's why I've been working on a server, various libraries, a GUI and [more](tooling.md) - all MIT licensed. -If Atomic Data will be successful, there will likely be other, better implementations. - -## Linked data is awesome, but it is too difficult for developers in its current form - -[Linked data](https://ontola.io/what-is-linked-data/) (RDF / the semantic web) enables us to use the web as a large, decentralized graph database. -Using links everywhere in data has amazing merits: links remove ambiguity, they enable exploration, they enable connected datasets. -But the existing specs are too difficult to use, and that is harming adoption. - -At my company [Ontola](https://ontola.io/), we've been working with linked data quite intensely for the last couple of years. -We went all-in on RDF, and challenged ourselves to create software that communicates exclusively using it. -That has been an inspiring, but at times also a frustrating journey. -While building our e-democracy platform [Argu.co](https://argu.co/), we had to [solve many RDF related problems](https://ontola.io/blog/full-stack-linked-data/). -How to properly model data in RDF? How to deal with [sequences](https://ontola.io/blog/ordered-data-in-rdf/)? How to communicate state changes? Which [serialization format](https://ontola.io/blog/rdf-serialization-formats/) to use? How to convert [RDF to HTML, and build a front-end](https://ontola.io/blog/rdf-solid-react-tutorial-link/)? -We tackled some of these problems by having a tight grip on the data that we create (e.g. we know the type of data, because we control the resources), and another part is creating new protocols, formats, tools, and libraries. -But it took a long time, and it was hard. -It's been almost 15 years since the [introduction of linked data](https://www.w3.org/DesignIssues/LinkedData.html), and its adoption has been slow. -We know that some of its merits are undeniable, and we truly want the semantic web to succeed. -I believe the lack of growth partially has to do with a lack of tooling, but also with some problems that lie in the RDF data model. - -Atomic Data aims to take the best parts from RDF, and learn from the past to make a more developer-friendly, performant and reliable data model to achieve a truly linked web. -Read more about [how Atomic Data relates to RDF, and why these changes have been made](interoperability/rdf.md). - -## Make standardization easier and cheaper - -Standards for data sharing are great, but creating one can be very costly endeavor. -Committees with stakeholders write endless documents describing the intricacies of domain models, which fields are allowed and which are required, and how data is serialized. -In virtually all cases, these documents are only written for humans - and not for computers. -Machine readable ways to describe data models like UML diagrams and OpenAPI specifications (also known as Swagger) help to have machine-readable descriptions, but these are still not _really_ used by machines - they are mostly only used to generate _visualizations for humans_. -This ultimately means that implementations of a standard have to be _manually checked_ for compliance, which often results in small (yet important) differences that severely limit interoperability. -These implementations will also often want to _extend_ the original definitions, but they are almost always unable to describe _what_ they have extended. - -Standardizing with Atomic Data solves these issues. -Atomic Data takes the semantic value of ontologies, and merges it with a machine-readable [schemas](schema/intro.md). -This makes standards created using Atomic Data easy to read for humans, and easy to validate for computers (which guarantees interoperability). -Atomic Data has a highly standardized protocol for fetching data, which means that Atomic Schemas can link to each other, and _re-use existing Properties_. -For developers (the people who need to actually implement and use the data that has been standardized), this means their job becomes easier. -Because Properties have URLs, it becomes trivial to _add new Properties_ that were initially not in the main specification, without sacrificing type safety and validation abilities. - -## Make it easier for developers to build feature-rich, interoperable apps - -Every time a developer builds an application, they have to figure a lot of things out. -How to design the API, how to implement forms, how to deal with authentication, authorization, versioning, search... -A lot of time is essentially wasted on solving these issues time and time again. - -By having a more complete, strict standard, Atomic Data aims to decrease this burden. -[Atomic Schema](schema/intro.md) enables developers to easily share their datamodels, and re-use those from others. -[Atomic Commits](commits/intro.md) helps developers to deal with versioning, history, undo and audit logs. -[Atomic Hierarchies](hierarchy.md) provides an intuitive model for authorization and access control. -And finally, the [existing open source Atomic Data software](tooling.md) (such as a server + database, a browser GUI, various libraries and React templates) help developers to have these features without having to do the heavy lifting themselves. diff --git a/src/newsletter.md b/src/newsletter.md deleted file mode 100644 index 4491efd..0000000 --- a/src/newsletter.md +++ /dev/null @@ -1,12 +0,0 @@ -{{#title Official Atomic Data newsletter}} -# Subscribe to the Atomic Data newsletter - -We'll send you an update (max once per month) when there's something relevant to share, such as - -- Major changes to the specification -- Major new releases (with new features) -- Use-cases, implementations -- Tutorials, blog posts -- Organizational / funding news - -[Click here to sign up to the Atomic Data Newsletter](http://eepurl.com/hHcRA1) diff --git a/src/plugins.md b/src/plugins.md deleted file mode 100644 index 7076f91..0000000 --- a/src/plugins.md +++ /dev/null @@ -1,35 +0,0 @@ -# Atomic Plugins - -Atomic Plugins are applications that can run inside of an Atomic Server. -They enhance the functionality of an Atomic Server. -For example, they can: - -- Extend existing resources (e.g. automatic translations) -- Provide new endpoints (maybe even ports?) with custom functionality (e.g. full text search for pod data, an e-mail server) -- Periodically execute some code (e.g. fetch new data from a source) -- Add datatypes and validation - -## The Plugin Resource - -A Plugin itself is a Resource: it is described using Atoms. -The most important Atom for a Plugin, is the `wasm` property: this contains the actual code. -Other properties include: - -- `name` -- `description` -- `author` - -## Registering a plugin - -When a plugin is installed, the Server needs to be aware of when the functionality of the plugin needs to be called: - -- Periodically (if so, when?) -- On a certain endpoint (which endpoint? One or multiple?) -- As a middleware when (specific) resources are created / read / updated. - -## Hooks - -### BeforeCommit - -Is run before a Commit is applied. -Useful for performing authorization or data shape checks. diff --git a/src/roadmap.md b/src/roadmap.md deleted file mode 100644 index efa8b41..0000000 --- a/src/roadmap.md +++ /dev/null @@ -1,60 +0,0 @@ -# Strategy, history and roadmap for Atomic Data - -We have the ambition to make the internet more interoperable. -We want Atomic Data to be a commonly used specification, enabling a vast amount of applications to work together and share information. -This means we need a lot of people to understand and contribute to Atomic Data. -In this document, discuss the strategic principles we use, the steps we took, and the path forward. -This should help you understand how and where you may be able to contribute. - -## Strategy for adoption - -- **Work on both specification and implementations (both client and server side) simultaneously** to make sure all ideas are both easily explainable and properly implementable. Don't design a spec with a large committee over many months, only to learn that it has implementation issues later on. -- **Create libraries whenever possible.** Enable other developers to re-use the technology in their own stacks. Keep the code as modular as possible. -- **Document everything**. Not just your APIs - also your ideas, considerations and decisions. -- **Do everything public**. All code is open source, all issues are publicly visible. Allow outsiders to learn everything and start contributing. -- **Make an all-in-one workspace app that stand on its own**. Atomic Data may be an abstract, technical story, but we still need end-user friendly applications that solve actual problems if we want to get as much adoption as possible. -- **Let realistic use cases guide API design**. Don't fall victim to spending too much time for extremely rare edge-cases, while ignoring more common issues and wishes. -- **Familiarity first**. Make tools and specs that feel familiar, build libraries for popular frameworks, and stick to conventions whenever possible. - -## History - -- **First draft of specification** (2020-06). Atomic Data started as an unnamed bundle of ideas and best practices to improve how we work with linked data, but quickly turned into a single (draft) specification. The idea was to start with a cohesive and easy to understand documentation, and use that as a stepping stone for writing the first code. After this, the code and specification should both be worked on simultaneously to make sure ideas are both easily explainable and properly implementable. Many of the earliest ideas were changed to make implementation easier. -- **[atomic-cli](https://crates.io/crates/atomic-cli) + [atomic-lib](https://docs.rs/atomic_lib/0.32.1/atomic_lib/)** (2020-07). The CLI functioned as the first platform to explore some of the most core ideas of Atomic Data, such as Properties and fetching. `atomic_lib` is the place where most logic resides. Written in Rust. -- **[AtomicServer](https://github.com/atomicdata-dev/atomic-server/)** (2020-08). The server (using the same `atomic_lib` as the CLI) should be a fast, lightweight server that must be easy to set-up. Functions as a graph database with no dependencies. -- **[Collections](schema/collections.md)** (2020-10). Allows users to perform basic queries, filtering, sorting and pagination. -- **[Commits](commits/intro.md)** (2020-11). Allow keeping track of an event-sourced log of all activities that mutate resources, which in turn allows for versioning and adding new types of indexes later on. -- **[JSON-AD](core/json-ad.md)** (2021-02). Instead of the earlier proposed serialization format `.ad3`, we moved to the more familiar `json-ad`. -- **[Atomic-Data-Browser](https://github.com/atomicdata-dev/atomic-data-browser)** (2021-02). We wanted typescript and react libraries, as well as a nice interactive GUI that works in the browser. It should implement all relevant parts of the specification. -- **[Endpoints](endpoints.md)** (2021-03). Machine readable API endpoints (think Swagger / OpenAPI spec) for things like versioning, path traversal and more. -- **Classes and Properties editable from the browser** (2021-04). The data-browser is now powerful enough to use for managing the core ontological data of the project. -- **[Hierarchies](hierarchy.md) & [Invitations](invitations.md)** (2021-06). Users can set rights, structure Resources and invite new people to collaborate. -- **[Websockets](websockets.md)** (2021-08). Live synchronization between client and server. -- **Use case: Document Editor** (2021-09). Notion-like editor with real-time synchronization. -- **Full-text search** (2021-11). Powered by Tantivy. -- **Authentication for read access** (2021-11). Allows for private data. -- **Desktop support** (2021-12). Run Atomic-Server on the desktop, powered by Tauri. Easier install UX, system tray icon. -- **File management** (2021-12). Upload, download and view Files. -- **Indexed queries** (2022-01). Huge performance increase for queries. Allows for far bigger datasets. -- **Use case: ChatRoom** (2022-04). Group chat application. To make this possible, we had to extend the Commit model with a `push` action, and allow Plugins to create new Commits. -- **[JSON-AD Publishing and Importing](create-json-ad.md)** (2022-08). Creating and consuming Atomic Data becomes a whole lot easier. -- **[@tomic/svelte](https://github.com/atomicdata-dev/atomic-svelte)** (2022-12). Library for integrating Atomic Data with Svelte(Kit). - -## Where we're at - -Most of the specification seems to become pretty stable. -The implementations are working better every day, although 1.0 releases are still quite a bit far away. -At this point, the most important thing is to get developers to try out Atomic Data and provide feedback. -That means not only make it easy to install the tools, but also allow people to make Atomic Data _without_ using any of our own tools. -That's why we're now working on the JSON-AD and Atomizer projects (see below). - -## Roadmap - -- **Video(s) about Atomic Data** (2023 Q1). Explain what Atomic Data is, why we're doing this, and how to get started. -- **[Atomic Tables](https://github.com/atomicdata-dev/atomic-data-browser/issues/25)** (2023 Q2). A powerful table editor with keyboard / copy / paste / sort support that makes it easier to model and edit data. -- **[E-mail registration](https://github.com/atomicdata-dev/atomic-server/issues/276)** (2023 Q1). This makes it easier for users to get started, and de-emphasizes the importance of private key management, as user can register new Private Keys using their e-mail address. -- **Headless CMS tooling** (2023). Use Atomic-Server to host and edit data that is being read by a front-end JAMSTACK type of tool, such as NextJS or SvelteKit. -- **[Atomizer](https://github.com/atomicdata-dev/atomic-server/issues/434)** (2023). Import files and automatically turn these into Atomic Data. -- **Model Marketplace** (2023 Q4). A place where user can easily find, compare and use Classes, Properties and Ontologies. -- **[Atomic-server plugins](https://github.com/atomicdata-dev/atomic-server/issues/73)** (2024). Let developers design new features without having to make PRs in Atomic-Server, and let users install apps without re-compiling (or even restarting) anything. -- **Atomic-browser plugins** (2024). Create new views for Classes. -- **1.0 release** (2024). Mark the specification, the server [(tracking issue)](https://github.com/atomicdata-dev/atomic-server/milestone/5) and the browser as _stable_. It is possible that the Spec will become 1.0 before any implementation is stable. Read the [STATUS.md](https://github.com/atomicdata-dev/atomic-server/blob/master/server/STATUS.md) document for an up-to-date list of features that are already stable. diff --git a/src/runtime.md b/src/runtime.md deleted file mode 100644 index d2da290..0000000 --- a/src/runtime.md +++ /dev/null @@ -1,26 +0,0 @@ -# Atomic Runtime - -_Status: not even ready to be part of the public docs_ - -Atomic Runtime offers a standardized way to bring algorithms to the data. -This enables privacy-friendly analysis, where the analyzed data stays at the source and only the results of some algoritm are sent back. - -This is especially useful in research, where some data owners do not want to share their data with researches. -Sharing confidential / privacy / sensitive data is inherently risky, so it is understandable that data owners might not want to share this. -From the data owner perspective, it is safer to run any analysis locally, and send back the result to the researcher. -This is what the Atomic Runtime allows for. - -## Atomic Runtime Interface - -This is standardized set of query options that allow for fetching data from an Atomic Store. -It uses the WASI (WebAssmemly Systems Interface) (TODO) - -## Creating an Analysis - -- The Researcher writes code that interfaces on ART. -- The Researcher issues an AnalysisRequest on the server of the Data Owner. -- in a sandboxed environment which gives access to the data. - -## Inspiration - -- Freek Dijkstra / SurfSare (implemented a similar python based solution) diff --git a/src/schema/classes.md b/src/schema/classes.md deleted file mode 100644 index 4de4ebc..0000000 --- a/src/schema/classes.md +++ /dev/null @@ -1,101 +0,0 @@ -{{#title Atomic Data Classes}} -# Atomic Schema: Classes - -The following Classes are some of the most fundamental concepts in Atomic Data, as they make data validation possible. - -Click the URLs of the classes to read the most actual data, and discover their properties! - -## Property - -_URL: [`https://atomicdata.dev/classes/Property`](https://atomicdata.dev/classes/Property)_ - -The Property class. -The thing that the Property field should link to. -A Property is an abstract type of Resource that describes the relation between a Subject and a Value. -A Property provides some semantic information about the relationship (in its `description`), it provides a shorthand (the `shortname`) and it links to a Datatype. - -Properties of a Property instance: - -- [`shortname`](https://atomicdata.dev/properties/shortname) - (required, Slug) the shortname for the property, used in ORM-style dot syntax (`thing.property.anotherproperty`). -- [`description`](https://atomicdata.dev/properties/description) - (optional, AtomicURL, TranslationBox) the semantic meaning of the. -- [`datatype`](https://atomicdata.dev/properties/datatype) - (required, AtomicURL, Datatype) a URL to an Atomic Datatype, which defines what the datatype should be of the Value in an Atom where the Property is the -- [`classtype`](https://atomicdata.dev/properties/classtype) - (optional, AtomicURL, Class) if the `datatype` is an Atomic URL, the `classtype` defines which class(es?) is (are?) acceptable. - -```json -{ - "@id": "https://atomicdata.dev/properties/description", - "https://atomicdata.dev/properties/datatype": "https://atomicdata.dev/datatypes/markdown", - "https://atomicdata.dev/properties/description": "A textual description of something. When making a description, make sure that the first few words tell the most important part. Give examples. Since the text supports markdown, you're free to use links and more.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Property" - ], - "https://atomicdata.dev/properties/shortname": "description" -} -``` - -Visit [https://atomicdata.dev/properties](https://atomicdata.dev/properties) for a list of example Properties. - -## Datatype - -_URL: [`https://atomicdata.dev/classes/Datatype`](https://atomicdata.dev/classes/Datatype)_ - -A Datatype specifies how a `Value` value should be interpreted. -Datatypes are concepts such as `boolean`, `string`, `integer`. -Since DataTypes can be linked to, you dan define your own. -However, using non-standard datatypes limits how many applications will know what to do with the data. - -Properties: - -- `description` - (required, AtomicURL, TranslationBox) how the datatype functions. -- `stringSerialization` - (required, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as an UTF-8 string -- `stringExample` - (required, string) an example `stringSerialization` that should be parsed correctly -- `binarySerialization` - (optional, AtomicURL, TranslationBox) how the datatype should be parsed / serialized as a byte array. -- `binaryExample` - (optional, string) an example `binarySerialization` that should be parsed correctly. Should have the same contents as the stringExample. Required if binarySerialization is present on the DataType. - -Visit [https://atomicdata.dev/datatypes](https://atomicdata.dev/datatypes) for a list of example Datatypes. - -## Class - -_URL: [`https://atomicdata.dev/classes/Class`](https://atomicdata.dev/classes/Class)_ - -A Class is an abstract type of Resource, such as `Person`. -It is convention to use an Uppercase in its URI. -Note that in Atomic Data, a Resource can have several Classes - not just a single one. -If you need to set more complex constraints to your Classes (e.g. maximum string length, Properties that depend on each other), check out [SHACL](https://www.w3.org/TR/shacl/). - -Properties: - -- `shortname` - (required, Slug) a short string shorthand. -- `description` - (required, AtomicURL, TranslationBox) human readable explanation of what the Class represents. -- `requires` - (optional, ResourceArray, Property) a list of Properties that are required. If absent, none are required. These SHOULD have unique shortnames. -- `recommends` - (optional, ResourceArray, Property) a list of Properties that are recommended. These SHOULD have unique shortnames. - - - - - - -A resource indicates it is an _instance_ of that class by adding a `https://atomicdata.dev/properties/isA` Atom. - -Example: - -```json -{ - "@id": "https://atomicdata.dev/classes/Class", - "https://atomicdata.dev/properties/description": "A Class describes an abstract concept, such as 'Person' or 'Blogpost'. It describes the data shape of data and explains what the thing represents. It is convention to use Uppercase in its URL. Note that in Atomic Data, a Resource can have several Classes - not just a single one.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Class" - ], - "https://atomicdata.dev/properties/recommends": [ - "https://atomicdata.dev/properties/recommends", - "https://atomicdata.dev/properties/requires" - ], - "https://atomicdata.dev/properties/requires": [ - "https://atomicdata.dev/properties/shortname", - "https://atomicdata.dev/properties/description" - ], - "https://atomicdata.dev/properties/shortname": "class" -} -``` - -Check out a [list of example Classes](https://atomicdata.dev/classes/). diff --git a/src/schema/collections.md b/src/schema/collections.md deleted file mode 100644 index cdf5f3c..0000000 --- a/src/schema/collections.md +++ /dev/null @@ -1,37 +0,0 @@ -{{#title Atomic Data Collections - Filtering, Sorting & Querying}} -# Atomic Collections - -_URL: [https://atomicdata.dev/classes/Collection](https://atomicdata.dev/classes/Collection)_ - -Sooner or later, developers will have to deal with (long) lists of items. -For example, a set of blog posts, activities or users. -These lists often need to be paginated, sorted, and filtered. -For dealing with these problems, we have Atomic Collections. - -An Atomic Collection is a Resource that links to a set of resources. -Note that Collections are designed to be _dynamic resources_, often (partially) generated at runtime. -Collections are [Endpoints](../endpoints.md), which means that part of their properties are calculated server-side. -Collections have various filters (`subject`, `property`, `value`) that can help to build a useful query. - -- [`members`](https://atomicdata.dev/properties/collection/members): How many items (members) are visible per page. -- [`property`](https://atomicdata.dev/properties/collection/property): Filter results by a property URL. -- [`value`](https://atomicdata.dev/properties/collection/value): Filter results by a Value. Combined with `property`, you can create powerful queries. -- [`sort_by`](https://atomicdata.dev/properties/collection/sortBy): A property URL by which to sort. Defaults to the `subject`. -- [`sort_desc`](https://atomicdata.dev/properties/collection/sortDesc): Sort descending, instead of ascending. Defaults to `false`. -- [`current_page`](https://atomicdata.dev/properties/collection/currentPage): The number of the current page. -- [`page_size`](https://atomicdata.dev/properties/collection/pageSize): How many items (members) are visible per page. -- [`total_pages`](https://atomicdata.dev/properties/collection/totalPages): How many pages there are for the current collection. -- [`total_members`](https://atomicdata.dev/properties/collection/totalMembers): How many items (members) are visible per page. - - -## Persisting Properties vs Query Parameters - -Since Atomic Collections are dynamic resources, you can pass query parameters to it. -The keys of the query params match the shortnames of the properties of the Collection. - -For example, let's take the [Properties Collection on atomicdata.dev](https://atomicdata.dev/collections/property). -We could limit the page size to 2 by adding the `page_size=2` query parameter: `https://atomicdata.dev/collections/property?page_size=2`. -Or we could sort the list by the description property: `https://atomicdata.dev/collections/property?sort_by=https%3A%2F%2Fatomicdata.dev%2Fproperties%2Fdescription`. -Note that URLs need to be URL encoded. - -These properties of Collections can either be set by passing query parameters, or they can be _persisted_ by the Collection creator / editor. diff --git a/src/schema/compare.md b/src/schema/compare.md deleted file mode 100644 index 991f347..0000000 --- a/src/schema/compare.md +++ /dev/null @@ -1,49 +0,0 @@ -# Atomic Schema compared to alternatives - -Introducing yet another Schema language might seem like a bad idea - why add another competing standard instead of using one that exists? -In this section, we'll discuss some existing - -## JSON-Schema - -Really well-documented. -Various implementations exist. -Does not support RDF. -All information is scoped to a schema, which means properties are not re-usable. -In Atomic Data, we have both Properties and Classes, both of which have their own responsibilities in the schema. -The Properties dictate the `datatype`, `name` and `description`, and the Classes communicate which properties are `required` or `recommended`. -Like Atomic Schema, it can be described in JSON. - -## SHACL - -SHACL (Shape Constraint Language) is an RDF ontology that provides. -Like Atomic Schema, it can be described in RDF. - -## ShEx - -[ShEx](https://shex.io/) (Shape Expressions) is a standard for describing RDF graph constraints. -It introduces its own serialization format, called [ShExC](https://github.com/shexSpec/grammar/blob/master/ShExDoc.g4) (Shape Expressions Compact Syntax), which looks like this: - -```ShExC -PREFIX school: -PREFIX xsd: -PREFIX ex: - -# Node constraint -school:enrolleeAge xsd:integer MinInclusive 13 MaxInclusive 20 - - -school:Enrollee { - # Triple constraint (including node constraint IRI) - ex:hasGuardian IRI {1,2} -} -``` - -## OWL - -OWL (the Web Ontology Language) is an ontology for ontologies: it can be used to create descriptions of how concepts in the world relate to each other. -OWL can also be used for _reasoning_, which deduces new information from existing information. -This means: adding new triples, based on the existing ones. -For example, if you know that `John` is a `Human`, and `Humans` are `Organisms`, you can deduce that `John` is an `Organism`. - -However, OWL is not used for _constraining_ or _validating_ data. -Reasoners should not be used for checking if some piece is valid data, but only to create new data - it is always assumed that the input data is correct. diff --git a/src/schema/datatypes.md b/src/schema/datatypes.md deleted file mode 100644 index a450928..0000000 --- a/src/schema/datatypes.md +++ /dev/null @@ -1,116 +0,0 @@ -{{#title Atomic Data: Datatypes}} -# Atomic Schema: Datatypes - -The Atomic Datatypes consist of some of the most commonly used [Datatypes](classes.md#Datatype). - -_Note: Please visit for the latest list of official Datatypes._ - -## Slug - -_URL: `https://atomicdata.dev/datatypes/slug`_ - -A string with a limited set of allowed characters, used in IDE / Text editor context. -Only letters, numbers and dashes are allowed. - -Regex: `^[a-z0-9]+(?:-[a-z0-9]+)*$` - -## Atomic URL - -_URL: `https://atomicdata.dev/datatypes/atomicURL`_ - -A URL that should resolve to an [Atomic Resource](../core/concepts.md#Resource). - -## URI - -_URL: `https://atomicdata.dev/datatypes/URI`_ - -A Uniform Resource Identifier, preferably a URL (i.e. an URI that can be fetched). -Could be HTTP, HTTPS, or any other type of schema. - -## String - -_URL: `https://atomicdata.dev/datatypes/string`_ - -UTF-8 String, no max character count. -Newlines use backslash escaped `\n` characters. - -e.g. `String time! \n Second line!` - -## Markdown - -_URL: `https://https://atomicdata.dev/datatypes/markdown`_ - -A markdown string, using the [CommonMark syntax](https://commonmark.org/). -UTF-8 formatted, no max character count, newlines are `\n`. - -e.g. - -```md -# Heading - -Paragraph with [link](https://example.com). -``` - -## Integer - -_URL: `https://atomicdata.dev/datatypes/integer`_ - -Signed Integer, max 64 bit. -Max value: [`9223372036854775807`](https://en.wikipedia.org/wiki/9,223,372,036,854,775,807) - -e.g. `-420` - -## Float - -_URL: `https://atomicdata.dev/datatypes/float`_ - -Number with a comma. -Max value: [`9223372036854775807`](https://en.wikipedia.org/wiki/9,223,372,036,854,775,807) - -e.g. `-420` - -## Boolean - -_URL: `https://atomicdata.dev/datatypes/boolean`_ - -True or false, one or zero. - -**String serialization** - -`true` or `false`. - -**Binary serialization** - -Use a single bit one boolean. - -1 for `true`, or 0 for `false`. - -## Date - -ISO date _without time_. -`YYYY-MM-DD`. - -e.g. `1991-01-20` - -## Timestamp - -_URL: `https://atomicdata.dev/datatypes/timestamp`_ - -Similar to [Unix Timestamp](https://www.unixtimestamp.com/). -Milliseconds since midnight UTC 1970 Jan 01 (aka the [Unix Epoch](https://en.wikipedia.org/wiki/Unix_time)). -Use this for most DateTime fields. -Signed 64 bit integer (instead of 32 bit in Unix systems). - -e.g. `1596798919` (= 07 Aug 2020 11:15:19) - -## ResourceArray - -_URL: `https://atomicdata.dev/datatypes/resourceArray`_ - -Sequential, ordered list of Atomic URIs. -Serialized as a JSON array with strings. -Note that other types of arrays are not included in this spec, but can be perfectly valid. - -([Discussion](https://github.com/atomicdata-dev/atomic-data-docs/issues/127)) - -- e.g. `["https://example.com/1", "https://example.com/1"]` diff --git a/src/schema/faq.md b/src/schema/faq.md deleted file mode 100644 index 4f619f9..0000000 --- a/src/schema/faq.md +++ /dev/null @@ -1,86 +0,0 @@ -{{#title Atomic Schema FAQ}} -# Atomic Schema FAQ - -## How do I create a Property that supports multiple Datatypes? - -A property only has one single Datatype. -However, feel free to create a new kind of Datatype that, in turn, refers to other Datatypes. -Perhaps Generics, or Option like types should be part of the Atomic Base Datatypes. - -## Do you have an `enum` datatype? - -In Atomic Data, `enum` is not a datatype, but it's a constraint that can be added to properties that have. -You can set [`allows-only`](https://atomicdata.dev/properties/allowsOnly) on a Property, and use that to limit which values are allowed. - -## How should a client deal with Shortname collisions? - -Atomic Data guarantees Subject-Property uniqueness, which means that Valid Resources are guaranteed to have only one of each Property. -Properties offer Shortnames, which are short strings. -These strings should be unique inside Classes, but these are not guaranteed to be unique inside all Resources. -Note that Resources can have multiple Classes, and through that, they can have colliding Shortnames. -Resources are also free to include Properties from other Classes, and their Shortnames, too, might collide. - -For example: - -```json -{ - "@id": "https://example.com/people/123", - "https://example.com/name": "John", - "https://another.example.com/someOtherName": "Martin" -} -``` - -Let's assume that `https://example.com/name` and `https://another.example.com/someOtherName` are Properties that have the Shortname: `name`. - -What if a client tries something such as `people123.name`? -To consistently return a single value, we need some type of _precedence_: - -1. The earlier Class mentioned in the [`isA`](https://atomicdata.dev/properties/isA) Property of the resource. Resources can have multiple classes, but they appear in an ordered ResourceArray. Classes, internally should have no key collisions in required and recommended properties, which means that they might have. If these exist internally, sort the properties by how they are ordered in the `isA` array - first item is preferred. -1. When the Properties are not part of any of the mentioned Classes, use Alphabetical sorting of the Property URL. - -When shortname collisions are possible, it's recommended to not use the shortname, but use the URL of the Property: - -``` -people123."https://example.com/name" -``` - -It is likely that using the URL for keys is also the most _performant_, since it probably more closely mimics the internal data model. - -## Atomic Data uses a lot of links. How do you deal with links that don't work? - -Many features in Atomic Data apps depend on the availability of Resources on their subject URL. -If that server is offline, or the URL has changed, the existing links will break. -This is a fundamental problem to HTTP, and not unique to Atomic Data. -Like with websites, hosts should make sure that their server stays available, and that URLs remain static. - -One possible solution to this problem, is using Content Addressing, such as the [IPFS](../interoperability/ipfs.md) protocol enables, which is why we're planning for using that in the near future. - -Another approach, is using [foreign keys (see issue)](https://github.com/ontola/atomic-data-docs/issues/43). - -## How does Atomic Schema relate to RDF / SHACL / SheX / OWL / RDFS? - -Atomic Schema is _the_ schema language for Atomic Data, whereas RDF has a couple of competing ones, which all vary greatly. -In short, OWL is not designed for schema validation, but SHACL and SheX can maybe be compared to Atomic Schema. -An important difference is that SHACL and SheX have to deal with all the complexities of RDF, whereas Atomic Data is more constrained. - -For more information, see [RDF interoperability](../interoperability/rdf.md). - -## What are the risks of using Schema data hosted somewhere else? - -Every time you use an external URL in your data, you kind of create a dependency. -This is fundamental to linked data. -In Atomic Data, not having access to the Property in some JSON-AD resource will lead to now knowing how to interpret the data itself. -You will no longer know what the Datatype was (other than the native JSON datatype, of course), or what the semantic meaning was of the relationship. - -There are multiple ways we can deal with this: - -- **Cache dependencies**: Atomic Server already stores a copy of every class and property that it uses by default. The `/path` endpoint then allows clients to fetch these from servers that have cached it. If the source goes offline, the validations can still be performed by the server. However, it might be a good idea to migrate the data to a hosted ontology, e.g. by cloning the cached ontology. -- **Content-addressing**: using non-HTTP identifiers, such as with [IPFS](../interoperability/ipfs.md). - -([Discussion](https://github.com/ontola/atomic-data-docs/issues/99)) - -## How do I deal with subclasses / inheritance? - -Atomic Data does not have a concept of inheritance. -However, you can use the `isA` property to link to _multiple Classes_ from a single resource. -This effectively diff --git a/src/schema/intro.md b/src/schema/intro.md deleted file mode 100644 index 537bdba..0000000 --- a/src/schema/intro.md +++ /dev/null @@ -1,58 +0,0 @@ -{{#title Atomic Data Schema - modelling Atomic Data}} -# Atomic Schema - -Atomic Schema is the proposed standard for specifying classes, properties and datatypes in Atomic Data. -You can compare it to UML diagrams, or what XSD is for XML. -Atomic Schema deals with validating and constraining the shape of data. -It is designed for checking if all the required properties are present, and whether the values conform to the datatype requirements (e.g. `datetime`, or `URL`). - -This section will define various Classes, Properties and Datatypes (discussed in [Atomic Core: Concepts](../core/concepts.md)). - -## Design Goals - -- **Decentralized**: Classes and Properties can be defined in external systems, and are resolved using web protocols such as HTTP. -- **Typed**: Every Atom of data has a clear datatype. Validated data should be highly predictable. -- **IDE-friendly**: Although Atomic Schema uses many URLs, users / developers should not have to type full URLs. The schema uses shortnames as aliases. -- **Self-documenting**: When seeing a piece of data, simply following links will explain you how the data model is to be understood. This removes the need for (most of) existing API documentation. -- **Extensible**: Anybody can create their own Datatypes, Properties and Classes. -- **Accessible**: Support for languages, easily translatable. Useful for humans and machines. -- **Atomic**: All the design goals of Atomic Data itself also apply here. Atomic Schema is defined using Atomic Data. - -## In short - -In short, Atomic Schema works like this: - -The Property _field_ in an Atom, or the _key_ in a JSON-AD object, links to a **Property _Resource_**. -It is important that the URL to the Property Resource resolves, as others can re-use it and check its datatype. -This Property does three things: - -1. it links to a **Datatype** which indicates which Value is acceptable. -1. it has a **description** which tells you what the property means, what the relationship between the Subject and the Value means. -1. it provides a **Shortname**, which is sometimes used as an alternative to the full URL of the Property. - -**DataTypes** define the shape of the Value, e.g. a Number (`124`) or Boolean (`true`). - -**Classes** are a special kind of Resource that describe an abstract class of things (such as "Person" or "Blog"). -Classes can _recommend_ or _require_ a set of Properties. -They behave as Models, similar to `struts` in C or `interfaces` in Typescript. -A Resource _could_ have one or more classes, which _could_ provide information about which Properties are expected or required. - -**example:** - -```json -{ - "@id": "https://atomicdata.dev/classes/Agent", - "https://atomicdata.dev/properties/description": "An Agent is a user that can create or modify data. It has two keys: a private and a public one. The private key should be kept secret. The public key is used to verify signatures (on [Commits](https://atomicdata.dev/classes/Commit)) set by the of the Agent.", - "https://atomicdata.dev/properties/isA": [ - "https://atomicdata.dev/classes/Class" - ], - "https://atomicdata.dev/properties/recommends": [ - "https://atomicdata.dev/properties/name", - "https://atomicdata.dev/properties/description" - ], - "https://atomicdata.dev/properties/requires": [ - "https://atomicdata.dev/properties/publicKey" - ], - "https://atomicdata.dev/properties/shortname": "agent" -} -``` diff --git a/src/schema/migrations.md b/src/schema/migrations.md deleted file mode 100644 index 73f123f..0000000 --- a/src/schema/migrations.md +++ /dev/null @@ -1,25 +0,0 @@ -# Migrations and API versioning in Atomic Data - -_Status: design / concept stage_ - -Models are rarely static. -As new insights and business requirements influence our internal understanding of some domain, we often make changes to a model. -That's why Atomic Classes have the optional `deprecatedProperties` Property, which helps to communicate if properties are changed in some newer version. - -For example, we might start off with a `Person => employer => Organization` relationship. -Later, we might need some way to describe the Role of that person, and when the employment will end. -To solve this, the `employer` relation might be expanded into a separate Resource, with a set of props (e.g. `role` and `startedAt`). - -Now, in many RESTful APIs, versioning is done by adding an endpoint such as `/api/v2`. -Every versioned endpoint has differences, and their own documentation deprecation. -However, this means that links made to _API versioned_ resources (`v1/somePerson`) should be updated (`v2/somePerson)`. -This is not a good approach for linked data. - -Instead of _replacing_ the relationship, we recommend to simply _add a new Property_, and keeping the old one for some time. -We might add a `Employment` Class, and give it `role`, `employee`, `organization` and `startedAt` properties. -The relationship might look like this: `Person => employment => Employment => organization => Organization`. -We now have _two_ places where we can find what the employer of a person is - the `employer` property, but also `employment`. -Maintaining both might make sense, but is probably not necessary and only confusing. -The API should communicate that the `employment` Property is the one that will be maintained, and the `employer` will be removed. - -The `employer` relationship should be added to `deprecatedProperties` in the `Person` class. diff --git a/src/schema/translations.md b/src/schema/translations.md deleted file mode 100644 index dc1193a..0000000 --- a/src/schema/translations.md +++ /dev/null @@ -1,33 +0,0 @@ -{{#title Atomic Data Translations}} -# Atomic Translations - -_Status: design / concept stage_ - -Dealing with translations can be hard. - -([Discussion](https://github.com/ontola/atomic-data/issues/6)) - -## TranslationBox - -_URL: `https://atomicdata.dev/classes/TranslationBox` (does not resolve yet)_ - -A TranslationBox is a collection of translated strings, used to provide multiple translations. -It has a long list of optional properties, each corresponding to some language. -Each possible language Property uses the following URL template: `https://atomicdata.dev/languages/{langguageTag}`. -Use a [BCP 47](http://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g. `nl` or `en-US`. - -For example: - -```json -{ - "@id": "https://example.com/john", - "https://example.com/properties/lifestory": { - "https://atomicdata.dev/languages/en": "Well, John was born and later he died.", - "https://atomicdata.dev/languages/nl": "Tsja, John werd geboren en stierf later." - }, -} -``` - -Every single value used for Translation strings is an instance of the Translation class. - -A translation string uses the [MDString](https://atomicdata.dev/datatypes/markdown) datatype, which means it allows Markdown syntax. diff --git a/src/tooling.md b/src/tooling.md deleted file mode 100644 index df26799..0000000 --- a/src/tooling.md +++ /dev/null @@ -1,131 +0,0 @@ -{{#title Software and libraries for Atomic Data}} -# Software and libraries for Atomic Data - -Although Atomic Data is a specification, it also has reference implementations: - -Open source (MIT licenced) software for Atomic Data: - -- **Server + Database**: [atomic-server](https://github.com/atomicdata-dev/atomic-server) -- **GUI**: [atomic-data-browser](https://github.com/atomicdata-dev/atomic-data-browser) -- **CLI**: [atomic-cli](https://github.com/atomicdata-dev/atomic-server) - -Libraries (MIT licenced) to build apps with: - -- Typescript / javascript library: [@tomic/lib (npm)](https://www.npmjs.com/package/@tomic/lib) -- React library: [@tomic/react (npm)](https://www.npmjs.com/package/@tomic/react) -- Rust library: [atomic-lib (crates.io)](https://crates.io/crates/atomic-lib) - -## Applications - -### `atomic-server` - -Server for hosting Atomic Data. Uses `atomic-lib`. - -- Responds to requests for created Atomic Resources, makes atomic data available at their URL. -- Embedded database -- Authorization, authentication, versioning, collections, pagination -- Browser-friendly HTML presentation, JSON serialization, RDF serialization. - -One liner: `$ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server` - -[demo](https://atomicdata.dev/) - -[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser). - -### `atomic-data-browser` - -Data browser, powered by `@tomic/lib` and `@tomic/react`. - -- View & edit atomic data, using dynamic forms -- Collections with pagination and sorting -- Client-side full-text search - -[demo](https://atomicdata.dev/) (same as `atomic-server`) - -[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser). - -### `atomic-cli` - -A tool for generating / querying Atomic Data from the command line. Install with `cargo install atomic-cli`. - -``` -atomic 0.20.0 -Joep Meindertsma -Create, share, fetch and model linked atomic data! - -USAGE: - atomic-cli [SUBCOMMAND] - -FLAGS: - -h, --help Prints help information - -V, --version Prints version information - -SUBCOMMANDS: - destroy Permanently removes a Resource. Uses Commits. - edit Edit a single Atom from a Resource using your text editor. Uses Commits. - get Traverses a Path and prints the resulting Resource or Value. - help Prints this message or the help of the given subcommand(s) - list List all bookmarks - new Create a Resource - remove Remove a single Atom from a Resource. Uses Commits. - set Update an Atom's value. Uses Commits. - tpf Finds Atoms using Triple Pattern Fragments. - -Visit https://github.com/atomicdata-dev/atomic-data-browser for more info -``` - -[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser). - - -### Raycast extension: Full-text search from your desktop - -[Install here](https://www.raycast.com/atomicdata-dev/atomic-data-browser). - -## Libraries - -### `@tomic/lib` and `@tomic/react` - -Javascript / typescript libraries, especially useful for creating front-end apps. - -Fork the [atomic-data-react-template](https://codesandbox.io/s/atomic-data-react-template-4y9qu?file=/src/MyResource.tsx) on codesandbox to get started directly! - -### `atomic-lib` (Rust) - -Library that powers `atomic-server` and `atomic-cli`. Features: - -- An in-memory store -- Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples) -- Commit validation and processing -- Constructing Collections -- Path traversal -- Basic validation - -[repository + issue tracker](https://github.com/atomicdata-dev/atomic-data-browser). - -## Want to add to this list? Some ideas for tooling - -This document contains a set of ideas that would help achieve that success. -Open a PR and [edit this file](https://github.com/ontola/atomic-data-docs/edit/master/src/tooling.md) to add your project! - -### Atomic Companion - -A mobile app for granting permissions to your data and signing things. See [github issue](https://github.com/ontola/atomic-data-docs/issues/45). - -- Show a notification when you try to log in somewhere with your agent -- Notifications for mentions and other social items -- Check uptime of your server - -### Atomizer (data importer and conversion kit) - -- Import data from some data source (CSV / SQL / JSON / RDF), fill in the gaps (mapping / IRI creation / datatypes) an create new Atoms -- Perhaps a CLI, library, GUI or a combination of all of these - -### Atomic Preview - -- A simple (JS) widget that can be embedded anywhere, which converts an Atomic Graph into an HTML view. -- Would be useful for documentation, and as a default view for Atomic Data. -- Use `@tomic/react` and `@tomic/lib` to get started - -### Atomic-Dart + Flutter - -Library + front-end app for browsing / manipulating Atomic Data on mobile devices. diff --git a/src/trust.md b/src/trust.md deleted file mode 100644 index 5bbee08..0000000 --- a/src/trust.md +++ /dev/null @@ -1,41 +0,0 @@ -# Atomic Trust - -_status: just an idea_ - -Not all information on the web can be trusted. -Instead of relying on some centralized authority to say which content is to be trusted, we can leverage our existing trust networks to determine what we can trust or not. - -Atomic Trust is a specification to share which actors, domains and resources we trust on the web. -It's a decentralized model defined with Atomic Schema to create explicit trust networks. -It can be used to calculate a score about a resource (such as a webpage). - -## How it works - -When you view some resource (e.g. a news article on some website), your client (e.g. a browser plugin) checks your _trusted peers_ to find whether they (or their peers) have a _rating_ about that _resource_. - -## Concepts - -### ResourceRating - -A ResourceRating describes how an Actor (e.g. a person) rates some Resource (e.g. a specific article). - -Properties: - -- about: The resource that is being rated -- ratedBy: The actor (Person or Organization) rating the resource -- score: Number between -1 and 1. 1 is "Very trustworthy", 0 is "neutral" and -1 is "very untrustworthy". -- comment: A string that describes the _why_. - -### DomainRating - -A DomainRating describes how an Actor (e.g. a person) rates some Resource (e.g. a specific article). - -Same props as ResourceRating. - -### Actor - -The individual that creates the rating. - -Properties - -- ratingList: A Collection of ratings diff --git a/src/usecases/ai.md b/src/usecases/ai.md deleted file mode 100644 index e2535df..0000000 --- a/src/usecases/ai.md +++ /dev/null @@ -1,31 +0,0 @@ -# Atomic Data & Artificial Intelligence - -Recent developments in machine learning (and specifically deep neural networks) have shown how powerful and versatile AI can be. -Both Atomic Data and AI can be used to store and query knowledge, but we think of these technologies as complementary due to their unique characteristics: - -- Artificial Intelligence can make sense of (unstructured) data, so you can feed it any type of data. However, AIs often produce unpredictable and sometimes incorrect results. -- Atomic Data helps to make data interoperable, reliable and predictable. However, it requires very strict inputs. - -There are two ways in which Atomic Data and AI can help each other: - -- AI can help to make creating Atomic Data easier. -- Atomic Data can help train AIs. -- Atomic Data can provide AIs with reliable, machine readable data for answering questions. - -## Make it easier to create Atomic Data using AI - -While writing text, an AI might help make suggestions to disambiguate whatever it is you're writing about. -For example, you may mention `John` and your knowledge graph editor (like `atomic-server`) could suggest `John Wayne` or `John Cena`. -When making your selection, a link will be created which helps to make your knowledge graph more easily browsable. -AI could help make these suggestions through context-aware _entity recognition_. - -## Train AIs with Atomic Data - -During training, you could feed Atomic Data to your AI to help it construct a reliable, consistent model of the knowledge relevant to your organization or domain. -You could use `atomic-server` as the knowledge store, and iterate over your resources and let your AI parse them. - -## Provide AI with query access to answer questions - -Instead of training your AI, you might provide your AI with an interface to perform queries. -Note that at this moment, I'm not aware of any AIs that can actually construct and execute queries, but because of recent advancements (e.g. ChatGPT), we know that there now exist AIs that can create SQL queries based on human text. -In the future, you might let your AI query your `atomic-server` to find reliable and up-to-date answers to your questions. diff --git a/src/usecases/crud.md b/src/usecases/crud.md deleted file mode 100644 index 4189252..0000000 --- a/src/usecases/crud.md +++ /dev/null @@ -1 +0,0 @@ -# Atomic-Server for CRUD applications diff --git a/src/usecases/data-catalog.md b/src/usecases/data-catalog.md deleted file mode 100644 index a6ad231..0000000 --- a/src/usecases/data-catalog.md +++ /dev/null @@ -1,44 +0,0 @@ -{{#title Atomic Server as a Data Catalog}} -# Using Atomic-Server as a Data Catalog - -A data catalog is a system that collects metadata - data about data. -They are inventories of datasets. - -They are often used to: - -- **Increase data-reuse of (open) datasets**. By making descriptions of datasets, you increase their discoverability. -- **Manage data quality**. The more datasets you have, the more you'll want to make sure they are usable. This could mean settings serialization requirements or schema compliance. -- **Manage compliance with privacy laws**. If you have datasets that contain GDPR-relevant data (personal data), you're legally required to maintain a list of where that data is stored, what you need it for and what you're doing with it. - -## Why Atomic Server could be great for Data Catalogs - -[Atomic-Server](https://docs.atomicdata.dev/atomic-server.html) is a powerful Database that can be used as a modern, powerful data catalog. It has a few advantages over others: - -- Free & **open source**. MIT licensed! -- Many built-in features, like **full-text search**, **history**, **live synchronization** and **rights management**. -- Great **performance**. Requests take nanoseconds to milliseconds. -- Very **easy to setup**. One single binary, no weird runtime dependencies. -- Everything is linked data. Not just datasets (which you might), but also everything around them (users, comments, implementations). -- Powerful **CMS capabilities**. With built in support for Tables and Documents, you can easily create webpages with articles or other types of resources using Atomic Server. -- [Atomic Schema](../schema/intro.md) can be used to describe the **shape of your datasets**: the properties you use, which fields are required - things like that. Because Atomic Schema uses URLs, we can easily re-use properties and class definitions. This helps to make your datasets highly interoperable. - -## When Atomic-Server is used for hosting the data, too - -Most datacatalogs only have metadata. However, if you convert your existing CSV / JSON / XML / ... datasets to _Atomic Data_, you can host them on Atomic-Server as well. This has a few advantages: - -- **Data previews** in the browser, users can navigate through the data without leaving the catalog. -- Data itself becomes **browseable**, too, which means you can traverse a graph by clicking on link values. -- **Standardized Querying** means you can easily, from the data catalog, can filter and sort the data. -- **Cross-dataset search**. Search queries can be performed over multiple Atomic Data servers at once, enabling searching over multiple datasets. This is also called _federated search_. - -## Atomic Server compared to CKAN - -- Atomic-Server is MIT licensed - which is more permissive than CKAN's AGPL license. -- Whereas CKAN needs an external database, a python runtime, solrd and a HTTPS server, Atomic-Server has all of these built-in! -- CKAN uses plain RDF, which has some [very important drawbacks](../interoperability/rdf.md). -- But... Atomic-Server still misses a few essentials right now: - -## What we should add to Atomic-Server before it's a decent Data Catalog - -- Add a model for datasets. This is absolutely essential. It could be based on (and link to) DCAT, but needs to be described using Atomic Schema. This step means we can generate forms for Datasets and we can validate their fields. -- Add views for datasets. Atomic-Server already renders decent views for unknown resources, but a specific view should be created for Datasets. [Add a PR](https://github.com/atomicdata-dev/atomic-data-browser) if you have a React view! diff --git a/src/usecases/e-commerce.md b/src/usecases/e-commerce.md deleted file mode 100644 index 98d7df4..0000000 --- a/src/usecases/e-commerce.md +++ /dev/null @@ -1,87 +0,0 @@ -{{#title Atomic Data for e-commerce & marketplaces}} -# Atomic Data for e-commerce & marketplaces - -Buying good and services on the internet is currently responsible for about 15% of all commerce, and is steadily climbing. -The internet makes it easier to find products, compare prices, get information and reviews, and finally order something. -But the current e-commerce situation is far from perfect, as large corporations tend to monopolize, which means that we have less competition which ultimately harms prices and quality for consumers. -Atomic Data can help empower smaller businesses, make searching for specific things way easier and ultimately make things cheaper for everyone. - -## Decentralize platform / sharing economy service marketplaces - -Platforms like Uber, AirBNB and SnapCar are virtual marketplaces that help people share and find services. -These platforms are responsible for: - -1. providing an interface for **managing offers** (e.g. describe your car, add specifications and pricing) -2. **hosting** the data of the offers themselves (make the data available on the internet) -3. providing a **search interface** (which means indexing the data from all the existing offers) -4. facilitating the **transaction** / payments -5. provide **trust** through reviews and warranties (e.g. refunds if the seller fails to deliver) - -The fact that these responsibilities are almost always combined in a single platforms leads to vendor lock-in and an uncompetitive landscape, which ultimately harms consumers. -Currently, if you want to manage your listing / offer on various platforms, you need to manually adjust it on all these various platforms. -Some companies even prohibit offering on multiple platforms (which is a legal problem, not a technical one). -This means that the biggest (most known) platforms have the most listings, so if you're looking for a house / car / rental / meal, you're likely to go for the biggest business - because that's the one that has the biggest assortment. - -Compare this to how the web works: every browser should support every type of webpage, and it does not matter where the webpage is hosted. -I can browse a webpage written on a mac on my windows machine, and I can read a webpage hosted by amazon on an google device. -It does not matter, because the web is _standardized_ and _open_, instead of being _centralized_ and managed by one single company as _proprietary_ data. -This openness of the web means that we get search engines like Google and Bing that _scrape_ the web and add it to their index. -This results in a dynamic where those who want to sell their stuff will need to share their stuff using an open standard (for webpages things like HTML and sometimes a bit of metadata), so crawlers can properly index the webpages. -We could do the same thing for _structured data_ instead of _pages_, and that's what Atomic Data is all about. - -Let's discuss a more practical example of what this could mean. -Consider a restaurant owner who currently uses UberEats as their delivery platform. -Using Atomic Data, they could define their menu on their own website. -The Atomic Schema specification makes it easy to standardize how the data of a menu item looks like (e.g. price, image, title, allergens, vegan...). -Several platforms (potentially modern variants of platforms like JustEat / UberEats) could then crawl this standardized Atomic Data, index it, and make it easily searchable. -The customer would use one (or multiple) of these platforms, that would probably have the _exact same_ offers. -Where these platforms might differ, is in their own service offering, such as delivery speed or price. -This would result in a more competitive and free market, where customers would be able to pick a platform based on their service price and quality, instead of their list of offerings. -It would empower the small business owner to be far more flexible in which service they will do business with. - -## Highly personalized and customizable search - -Searching for products on the internet is mostly limited to text search. -If we want to buy a jacket, we see tonnes of jackets that are not even available in our own size. -Every single website has their own way of searching and filtering. - -Imagine making a search query in _one_ application, and sending that to _multiple suppliers_, after you'll receive a fully personalized and optimized list of products. -Browsing in an application that you like to use, not bound to any one specific store, that doesn't track you, and doesn't show advertisements. -It is a tool that helps you to find what you need, and it is the job of producers to accurately describe their products in a format that your product browser can understand. - -How do we get there? - -Well, for starters, producers and suppliers will need to reach a consensus on _how to describe their articles_. -This is not new; for many products, we already have a common language. -Shoes have a shoe size, televisions have a screen size in diagonal inches, brightness is measured in nits, etc. -Describing this in a machine-readable and predictable format as data is the next logical step. -This is, of course, where Atomic Schema could help. -Atomic-server could be the connected, open source database that suppliers use to describe their products as data. - -Then we'll also need to build a search interface that performs federated queries, and product-dependent filter options. - -## Product lifecycle & supply chain insights - -Imagine buying a product, and being able to see where each part came from. -The car that you buy might contain a list of all the maintenance moments, and every replaced part. -The raw materials used could be traced back to their origins. - -This requires a high degree of coordination from each step in the supply chain. -This is exactly where Atomic Data shines, though, as it provides a highly standardized way of structuring, querying, authenticating an authorizing data. - -Before we get to this point, we'll need to: - -- Describe domain-specific product Classes using Atomic Schema, and their Properties. - -## Product specific updates after purchase - -Imagine buying an external battery pack with a production error. -All units with a serial number between 1561168 and 1561468 have a serious error, where overcharging could lead to spontaneous combustion. -This is something that you'd like to know. -But how would the _manufacturer_ of that resource know where to find you? -Well, if your Atomic Server would have a list of all the things that you've bought, it could _automatically_ subscribe to safety updates from all manufacturers. -When any of these manufacturers would publish a safety warning about a product that you possess, you'll get an alert. - -Before we have this, well need to: - -- Build notifications support (see [issue](https://github.com/atomicdata-dev/atomic-server/issues/77)) diff --git a/src/usecases/education.md b/src/usecases/education.md deleted file mode 100644 index e319de7..0000000 --- a/src/usecases/education.md +++ /dev/null @@ -1,37 +0,0 @@ -# Atomic Data for Education - standardized, modular e-learning - -The Atomic Data specification can help make online educational content more **modular**. This has two direct benefits: - -- **Separate learning goals from how they are achieved**. Some might prefer watching a video, others may want to read. Both can describe the same topic, and share the same test. -- **Improve discoverability**. Create links between topics so students know which knowledge is needed to advance to the next topic. - -## Modular educational content - a model - -We can think of **Knowledge** as being building blocks that we need to do certain things. -And we can think of **Lessons** as _teaching_ certain pieces of knowledge, while at the same time _requiring_ other pieces of knowledge. -For example, an algebra class might require that you already know how to multiply, add, etc. -We can think of **Test** as _verifying_ if a piece of knowledge is properly understood. - -Now there's also a relationship between the **Student** and all of these things. -A student is following a bunch Lessons in which they've made some progress, has done some Tests which resulted in Scores. - -Describing our educational content in this fashion has a bunch of advantages. -For students, this means they can know in advance if they can get started with a course, or if they need to learn something else first. -Conversely, they can also discover new topics that depend on their previous piece of knowledge. -For teachers, this means they can re-use existing lessons for the courses. - -## What makes Atomic-Server a great tool for creating online courseware - -- Powerful built-in document editor -- Drag & drop file support -- Versioning -- Open source, so no vendor lock-in, and full customizability -- Real-time updates, great for collaboration -- Online by default, so no extra hassle with putting courses on the internet - -However, there is still a lot to do! - -- Turn the model described above into an actual Atomic Schema data model -- Build the GUI for the application -- Add plugins / extenders for things like doing tests (without giving the answer to students!) -- Create educational content diff --git a/src/usecases/food-labels.md b/src/usecases/food-labels.md deleted file mode 100644 index a4efc9d..0000000 --- a/src/usecases/food-labels.md +++ /dev/null @@ -1,38 +0,0 @@ -# Atomic Data for food label standardization - -In most countries, food producers are required to provide nutritional information on the packages of products, which helps citizens to make informed decisions about what to eat. -But how about we upgrade these labels to machine-readable, atomic data? -We could describe products using Atomic Data, and put their identifiers (Subject URLs) as QR codes on packages. -Imagine these scenarios: - -## Scan labels to get detailed, reliable, interactive information - -You want to know more about some new cereal you've just bought. -You scan the QR code on the package. -A web app opens that shows detailed, yet highly visual information about its nutritional value. -The screen is no longer limited to what realistically fits on a package. -The elements are interactive, and provide explanations. -Everything is translated to the user's language. -If the food is (soon to be) expired, the app will clearly and visually alert you. -Click on the question mark next to `granulated sugars`, and you get an explanation of what this means to your health. -E-numbers are clickable, too, and help you instantly understand far more about what they represent. -When AR glasses become technologically feasible, you could even help people make better decisions while doing grocery shopping. - -Using _links_ instead of _names_ helps to guide consumers to _trustworthy_ pages that communicate clearly. -The alternative is that they use search engines, and maybe end up reading misinformation. - -## Provide nutritional advice based on shopping behavior - -You order a bunch of products on your favorite groceries delivery app. -When going to the payment screen, you are shown a nutritional overview of your order. -You see that with this diet, you might have a deficit of the Lysene amino acid. -The shopping cart suggest adding egg, dairy or soy to your diet. -This can be done, because the groceries app can easily check detailed information about the food in your shopping cart, and reason about your dietary intake. - -## How to achieve all this - -1. The governing body (e.g. the European Commision) should set up an [Atomic Server](https://github.com/atomicdata-dev/atomic-server/) and host it on some recognizable domain. -1. Create the [Class](https://atomicdata.dev/classes/Class) for a food product, containing the same (or more) information that is shown on food packages. -1. Create the Class for Ingredient. -1. Create instances for various Ingredients. Start with the E-numbers, work your way up to all kinds of used ingredients. Add Translations. -1. Give instructions to Producers on how to describe their Products. Give them to option to host their own Server and control their own data, and give them the option to use some EU server. diff --git a/src/usecases/governmental-open-data.md b/src/usecases/governmental-open-data.md deleted file mode 100644 index 27a6ba0..0000000 --- a/src/usecases/governmental-open-data.md +++ /dev/null @@ -1,4 +0,0 @@ -# Publishing governmental Open Data as Atomic Data - -- More information is more better -- diff --git a/src/usecases/headless-cms.md b/src/usecases/headless-cms.md deleted file mode 100644 index a58984e..0000000 --- a/src/usecases/headless-cms.md +++ /dev/null @@ -1,50 +0,0 @@ -# Using Atomic-Server as an open source headless CMS - -## Why people are switching to Headless CMS - -Traditionally, content management systems were responsible for both managing the content as well as producing the actual HTML views that the user saw. -This approach has some issues regarding performance and flexibility that headless CMS tools solve. - -- **Great performance**. We want pages to load in milliseconds, not seconds. Headless CMS tools + JAMSTACK style architectures are designed to give both performant initial page loads, as well as consecutive / dynamic loads. -- **High flexibility**. Designs change, and front-end developers want to use the tools that they know and love to create these designs effectively. With a headless CMS, you can build the front-end with the tools that you want, and make it look exactly like you want. -- **Easier content management**. Not every CMS is as fun and easy to use, as an admin, as others. Headless CMS tools focus on the admin side of things, so the front-end devs don't have to work on the back-end as well. - -## Atomic Server - -The [Atomic-Server](https://github.com/atomicdata-dev/atomic-server/blob/master/server/README.md) project may be the right choice for you if you're looking for a Headless CMS: - - -- **Free and open source**. MIT licensed, no strings attached. -- **Easy to use API**. Atomic-Server is built using the [Atomic Data specification](../atomic-data-overview.md). It is well-documented, and uses conventions that most web developers are already familiar with. -- **Typescript & React libraries**. Use the existing react hooks to make your own fully editable, live-reloaded web application. -- **Fast**. 1ms responses on my laptop. It's written in Rust, so it squeezes out every cycle of your server. -- **Lightweight**. It's a single 8MB binary, no external dependencies needed. -- **Easy to setup**. Just run the binary and open the address. Even HTTPS support is built-in. -- **Clean, powerful admin GUI**. The Atomic-Data-Browser front-end gives you a very easy interface to manage your content. -- **Share your data models**. Atomic Data is designed to achieve a more decentralized web. You can easily re-use existing data models, or share the ones you built. -- **Files / Attachments**. Upload and preview files. -- **Pagination / sorting / filtering**. Query your data. -- **Versioning**. Built-in history, where each transaction is saved. -- **Websockets**. If you need live updates and highly interactive apps (collaborative documents and chatrooms), we've got your back. -- **Full-text search**. No need for a big elasticsearch server - atomic-server has one built-in. - -## Limitations - -- No support for image resizing, [as of now](https://github.com/atomicdata-dev/atomic-server/issues/257) -- No GraphQL support [(see issue)](https://github.com/atomicdata-dev/atomic-server/issues/251) - -## Setting up the server - -- One-liners: `cargo install atomic-server` or `docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server` -- Check out the [readme!](https://github.com/atomicdata-dev/atomic-server) - -## Using the data in your (React / NextJS) app - -The `@tomic/lib` and `@tomic/react` typescript NPM libraries can be used in any JS project. - -In the next section, we'll discuss how to use Atomic-Server in your React project. - -## Compared to alternative open source headless CMS software - -- **Strapi**: Atomic-Server doesn't need an external database, is easier to setup, has live synchronization support and is way faster. However, Strapi has a plugin system, is more polished, and has GraphQL support. -- ** diff --git a/src/usecases/intro.md b/src/usecases/intro.md deleted file mode 100644 index de75bc9..0000000 --- a/src/usecases/intro.md +++ /dev/null @@ -1,18 +0,0 @@ -{{#title Various Use Cases for Atomic Data}} -# Various Use Cases for Atomic Data - -Most of this book is either abstract or technical, but this section aims to be different. -In this section, we'll present concrete examples of things that can be built with Atomic Data. -Although you could use Atomic Data for pretty much any type of application, it is especially valuable where **data re-use**, **standardization**, and **data ownership** are important. - - -* [As a Headless CMS](headless-cms.md) -* [In a React project](react.md) -* [Personal Data Store](personal-data-store.md) -* [Artificial Intelligence](ai.md) -* [E-commerce & marketplaces](e-commerce.md) -* [Surveys](surveys.md) -* [Verifiable Credentials](verifiable-credentials.md) -* [Data Catalog](data-catalog.md) -* [Education](education.md) -* [Food labels](food-labels.md) diff --git a/src/usecases/job-matching.md b/src/usecases/job-matching.md deleted file mode 100644 index 1394c28..0000000 --- a/src/usecases/job-matching.md +++ /dev/null @@ -1,6 +0,0 @@ -WIP - -# Atomic Data for job matching and vacancies - -- https://sfia-online.org/en/about-sfia/sfia-guiding-principles -- diff --git a/src/usecases/knowledge-management.md b/src/usecases/knowledge-management.md deleted file mode 100644 index 344f1a8..0000000 --- a/src/usecases/knowledge-management.md +++ /dev/null @@ -1,41 +0,0 @@ -# Atomic Data for (semantic) knowledge graph management - -Knowledge **management** is about making valuable knowledge easily findable, so everybody in an organization can be as effective as possible. -Knowledge **graphs** are information structures that help organizations to organize their knowledge using a graph model. -Graphs are especially useful for structuring knowledge, as they allow having links between resources which makes relationships understandable and makes data browsable. - -Atomic Data is a Graph structure, and [Atomic-Server](https://crates.io/crates/atomic-server/) is an open source Graph database / knowledge management system. - -## Knowledge management systems - -How do organizations store and share knowledge? -Some rely completely on their brains and social networks: if you want to know how the copier works, ask Sara. -But most use digital documents - more often than not in the cloud. -If your knowledge is digital and online available, people can retrieve it from anywhere at great speed. -Being able to search and browse through information is essential to making it effortless to retrieve. - -But good knowledge management systems are not just static: they have lives of their own. -Knowledge changes over time. -People add documents, make changes, move things. - -## Why use Atomic-Server as a knowledge management system - -### The entire web as one knowledge graph - -Atomic Data uses URLs to identify resources. -This means that it - -### Type-safe, decentralized data structures - -Contrary to many other types of graph systems, Atomic Data ensures type-safety by having a built-in schema language ([Atomic Schema](../schema/intro.md)). -This means that it is very easy to share and re-use data models, which helps you standardize the classes and properties that you use. - -## Non-goals of Atomic-Server - -- Deep, specific query requirements -- Time-series data / data visualization - -## Alternatives - -- **LinkedDataHub** by Atomgraph (unrelated, don't mind the name similarities): knowledge graph management tool that also supports RDF. Open source. -- ** diff --git a/src/usecases/medical.md b/src/usecases/medical.md deleted file mode 100644 index 03a8d83..0000000 --- a/src/usecases/medical.md +++ /dev/null @@ -1,5 +0,0 @@ -# Atomic Data for personalized health data storage - -- Store personal health data on your atomic server -- Improve interoperability between medical measurement devices (e.g. blood sugar monitors, fitness tracking data, heart rate, weight) by standardizing these concepts using Atomic Schema. -- Use Atomic Runtimes to give researchers the option to query your pod and find answers to research questions, without sacrificing privacy diff --git a/src/usecases/personal-data-store.md b/src/usecases/personal-data-store.md deleted file mode 100644 index 1e8ddb9..0000000 --- a/src/usecases/personal-data-store.md +++ /dev/null @@ -1,18 +0,0 @@ -{{#title Atomic Data for personal data stores}} -# Atomic Data for personal data stores - -A Personal Data Store (or personal data service) is a place where you store all sorts of personal information. -For example a list of contacts, todo items, pictures, or your profile data. -Not that long ago, the default for this was the `my Documents` folder on your hard drive. -But as web applications became better, we started moving our data to the cloud. -More and more of our personal information is stored by large corporations who use the information to build profiles to show us ads. -And as cloud consumers, we often don't have the luxury of moving our personal data to a place to where we want it to be. -Many services don't even provide export functionality, and even if they do, the exports often lack information or are not interoperable with other apps. - -Atomic Data could help to re-introduce data ownership. -Because the specification helps to standardize information, it becomes easier to make data interoperable. -And even more important: Apps don't need their own back-end - they can use the same personal data store: an Atomic Server (such as [this one](https://github.com/atomicdata-dev/atomic-serverob/master/server/README.md)). - -Realizing this goal requires quite a bit of work, though. -This specification needs to mature, and we need reliable implementations. -We also need proper tutorials, libraries and tools that convince developers to use atomic data to power their applications. diff --git a/src/usecases/product-lifecyles.md b/src/usecases/product-lifecyles.md deleted file mode 100644 index 12cc131..0000000 --- a/src/usecases/product-lifecyles.md +++ /dev/null @@ -1,3 +0,0 @@ -- Link real-world objects to Atomic IDs -- Track and prove ownership to prevent buying something that was stolen -- See where parts are coming from, monitor the supply chain diff --git a/src/usecases/react.md b/src/usecases/react.md deleted file mode 100644 index 6635019..0000000 --- a/src/usecases/react.md +++ /dev/null @@ -1,18 +0,0 @@ -# Using Atomic Data in a JS / TS React project - -Atomic Data has been designed with front-end development in mind. -The open source [Atomic-Data-Browser](https://github.com/atomicdata-dev/atomic-data-browser), which is feature-packed with chatrooms, a real-time collaborative rich text editor, tables and more, is powered by two libraries: - -- `@tomic/lib` ([docs](https://atomicdata-dev.github.io/atomic-data-browser/docs/modules/_tomic_lib.html)) is the core library, containing logic for fetching and storing data, keeping things in sync using websockets, and signing [commits](../commits/intro.md). -- `@tomic/react` ([docs](https://atomicdata-dev.github.io/atomic-data-browser/docs/modules/_tomic_react.html)) is the react library, featuring various useful hooks that mimic `useState`, giving you real-time updates through your app. - -Check out the [template on CodeSandbox](https://codesandbox.io/s/atomic-data-react-template-4y9qu?file=/src/MyResource.tsx:0-1223): - - - -Feeling stuck? [Post an issue](https://github.com/atomicdata-dev/atomic-data-browser/issues/new) or [join the discord](https://discord.gg/a72Rv2P). diff --git a/src/usecases/science.md b/src/usecases/science.md deleted file mode 100644 index 9eb9c00..0000000 --- a/src/usecases/science.md +++ /dev/null @@ -1,12 +0,0 @@ -# Scientific publications powered by Atomic Data - -- Share and use concepts as URLs, which means they are always explicitly defined. -- Attribution is improved -- Reason about causal relationships that cross article boundaries, explore correlation graphs to gain new insights - -## Challenges and opportunities - -- Scientific publications are a slow moving field -- Publications tend to favor PDF, which is hard to make machine readable -- Extending a syntax like LaTeX might provide a short path to referring to atomic data in publications -- Getting scientists to host the atomic data is going to be one of the most difficult aspect diff --git a/src/usecases/self-integrating-applications.md b/src/usecases/self-integrating-applications.md deleted file mode 100644 index 78f35ec..0000000 --- a/src/usecases/self-integrating-applications.md +++ /dev/null @@ -1,12 +0,0 @@ -# Self-integrating applications with Atomic Data - -Our digital workspaces are increasingly dependent on integrations. -Receive ticket updates in your group chat app, send an e-mail when a new lead is added, save uploaded files to a specific folder in your cloud storage. -Many SAAS platforms offer these types of integrations as simple click-to-enable features. -However, writing integrations as a developer pretty much always involves manual labor. -Integrations are costly, as developers will need to read API specifications, interpret them correctly, -map the properties, implement the integration and then add tests to make sure it doesn't break. - -Tools like the OpenAPI specification make it easier to render - -We call application _self-integrating_ if there is no labor involved with linking one app to the other. diff --git a/src/usecases/self-integrating-systems.md b/src/usecases/self-integrating-systems.md deleted file mode 100644 index 6d7d7aa..0000000 --- a/src/usecases/self-integrating-systems.md +++ /dev/null @@ -1 +0,0 @@ -See https://www.nitrd.gov/nitrdgroups/images/b/ba/Steven_ray_the_future_of_software.pdf diff --git a/src/usecases/semantic-web.md b/src/usecases/semantic-web.md deleted file mode 100644 index 2c97a2e..0000000 --- a/src/usecases/semantic-web.md +++ /dev/null @@ -1,92 +0,0 @@ -# Atomic Data for the Semantic Web - -The term 'Semantic Web' was popularized in [a paper of the same name](https://www-sop.inria.fr/acacia/cours/essi2006/Scientific%20American_%20Feature%20Article_%20The%20Semantic%20Web_%20May%202001.pdf) published in 2001 by three people, including the inventor of the World Wide Web: Tim Berners-Lee. -In this paper, a vision was shared for how a higher degree of standardization on the internet could lead to a bunch of interesting innovations. -For example, it describes how an appointment for a doctor is scheduled automatically by a "semantic agent", by checking the location of the person, comparing that to doctors in the area, getting reviews and checking the availability in the calendar. -By making the web machine-readable, we could get far more interoperability and therefore new applications that make our lives easier. -All of this would have been made possible by using linked data. - -It has been 20 years since this paper, and it is indeed easier then ever to make an appointment with a professional. -If can yell "hairdresser" at my phone, and I instantly see the nearest one with a high rating with a 'book now' button that checks our calendars. -So... we made it? -Unfortunately, this problem and many similar ones have not been solved by the semantic web: they have been solved by big companies that know everything about us, and have monopolized so much of the data on the internet. -Tech giants like Google and Microsoft have created ecosystems that integrate many types of (free) services, have huge databases containing all kinds of related stuff, and as a result, provide us with nice user experiences. -A high degree of _centralization_, instead of _standardization_, turned out to be a sufficient solution, too. -But of course, this centralized approach comes at a serious cost. -The first problem is we get _vendor lock-in_, which means that it becomes harder to switch from service to service. -We can't take our data from Whatsapp and take it to Telegram, for example, or our Twitter feed to Mastadon. -The second problem is that our usage goals do not align with the tech giants. -We might want to see a list of recent activity from our friends when we open facebook, but facebook's investors might want us to simply look at as much ads as possible. - -But of course, the internet isn't just tech giants - there are a lot of enthousiasts that really want to see the decentralized, semantic web succeed. - -The Semantic Web wasn't just an idea and a paper - there were a lot of standards involved, all of which were properly defined and managed by the W3C, the organization that standardizes so much of our web. -But the adoption of most of these standards is pretty low, unfortunately. - -## Why the semantic web didn't take off - -Before we'll discuss why Semantic Web related standards (most importantly its core data model: RDF) aren't being used too much, you need to know that I have company called Ontola which has been specialized in semantic web technologies. -We love this vision of a semantic web, and have a strong dedication to make this a reality. -We've built many libraries, full stack apps and services on RDF, and I really do think we've built technically unique products. -By going through this process, we discovered how technologically hard it is to actually build semantic web apps. -I'm actually pretty sure that we're one of the very few companies that have built a full SAAS platform (the e-democracy platform [Argu.co](https://argu.co/)) that communicates exclusively with its back-end by using RDF. -You can read more about this journey in [full-stack linked data](https://ontola.io/blog/full-stack-linked-data/), but here I'll summarize why this was such a challenging and costly endeavor. - -### Standards without working implementations - -The Semantic Web community actually built - -### A lack of proper RDF tools - -A lack - -### No business incentive to make data highly accessible - -If you're a software company that builds a product, you probably want people to keep using your product. -Investing in an awesome export feature where your customer can easily switch to a competitor is often a risky move. -This problem is of course not unique to the semantic web, but it is - -### Quirks in the RDF data model - -- No native support for arrays, which leads to a lot of confusion. I've written an [article comparing various approaches](https://ontola.io/blog/ordered-data-in-rdf/) on how to deal with this as an RDF developer. -- Subject-object combinations in RDF are not necessarily unique (contrary to key-value combinations in any Map or JSON object, for example), which makes querying and storing RDF hard. -- Named Graphs add another layer of complexity for identifying where data comes from, and makes querying and storing RDF again even harder. - -### Too much academic focus on reasoning, not enough on data models - -> Instead of the “let’s just build something that works” attitude that made the Web (and the Internet) such a roaring success, they brought the formalizing mindset of mathematicians and the institutional structures of academics and defense contractors. They formed committees to form working groups to write drafts of ontologies that carefully listed (in 100-page Word documents) all possible things in the universe and the various properties they could have, and they spent hours in Talmudic debates over whether a washing machine was a kitchen appliance or a household cleaning device - -- https://en.wikisource.org/wiki/Page:Aaron_Swartz_s_A_Programmable_Web_An_Unfinished_Work.pdf/15 - -### No schema language - -Being able to _check and validate_ the types of data is very useful when you want people to reach consensus on how to model things. -RDF Schema was not really a schema language. - -### Confusing terminology and documentation - -While learning the Semantic Web, a whole bunch of new concepts need to be learned. - Terms like - -### Too much new languages and serialization formats - -The Semantic Web and RDF are both older than JSON, and focused mostly on XML. -The First RDF serialization format (RDF/XML) was hard to read, hard to parse, very confusing and basically tried to combine the worst of graph-based and document-based data models. -After that, many new serialization formats appeared (N3, Turtle, JSON-LD) that made it even more confusing for developers to adopt this technology. -[Read this](https://ontola.io/blog/rdf-serialization-formats/) if you want to know more about RDF serialization formats. - -### Other reading - -- http://inamidst.com/whits/2008/ditching -- https://en.wikisource.org/wiki/Page:Aaron_Swartz_s_A_Programmable_Web_An_Unfinished_Work.pdf/15 -- https://twobithistory.org/2018/05/27/semantic-web.html - -## Why Atomic Data might give the Semantic Web a second chance - -When creating Atomic Data, I tried to learn from what went wrong with the Semantic Web. - -- Focus on developer experience from the start. -- **Minimize new serialization formats / languages**. Use things that people love. That's why Atomic Data uses JSON as its core serialization format, and keeps export support for all RDF formats. -- **Build applications, libraries and tools while writing the spec**. As a process, this means that every time the spec might result in a bad developer experience, I can update the specification. -- Have a schema language built in, include it in reference libraries. This results in all data being fully type safe. -- Have Subject-predicate / key-value uniqueness. diff --git a/src/usecases/social.md b/src/usecases/social.md deleted file mode 100644 index 6eb045a..0000000 --- a/src/usecases/social.md +++ /dev/null @@ -1,5 +0,0 @@ -# A decentralized Social Network powered Atomic Data - -Instead of only storing posts on twitter, facebook, or some other platform with advertisement incentives, people would store and control their own social media posts, and determine who gets access to which. -Users would get full control over the way they view posts, and how they are ranked. -This means no more advertisements, and therefore no dark incentives to maximize engagement. diff --git a/src/usecases/standardization-bodies.md b/src/usecases/standardization-bodies.md deleted file mode 100644 index feb99ea..0000000 --- a/src/usecases/standardization-bodies.md +++ /dev/null @@ -1,5 +0,0 @@ -{{#title Atomic Data for Standardization bodies}} -# Atomic Data for Standardization bodies - -Most industry domains work on standardization. - (health, pharmaseuyical studies diff --git a/src/usecases/surveys.md b/src/usecases/surveys.md deleted file mode 100644 index fb215be..0000000 --- a/src/usecases/surveys.md +++ /dev/null @@ -1,55 +0,0 @@ -{{#title Atomic Data for Surveys}} -# Atomic Data for Surveys - -Surveys and Questionnaires haven't been evolving that much over the past few years. -However, Atomic Data has a couple of unique characteristics that would make it especially suitable for surveys. -It could help make surveys easier to **fill in**, easier to **analyze**, easier to **create**, and more **privacy friendly**. - -- **Re-useable survey responses** which enable **pre-filled form fields** which can save the respondent a lot of time. They also make it possible for users to use their own responses to **gather insights**, for example into their own health. -- **Question standardization** which helps researchers to re-use (validated) questions, which saves time for the researcher -- **Privacy friendly, yet highly personalized invites** as a researcher, send profile descriptions to servers, and let the servers tell if the question is relevant. - -## Re-useable survey responses - -Since many surveys describe personal information, it makes sense, as a respondent, to have a way of storing the information you filled in in a place that you control. -Making this possible enables a few nice use cases. - -1. **Auto-fill forms**. Previously entered response data could be usable while filling in new surveys. This could result in a UX similar to auto-filling forms, but far more powerful and rich than browsers currently support. -2. **Analyze your own personal data**. Standardized survey responses could also be used to gather insights into your own personal information. For example, filling in a survey about how your shortness of breath linked to air pollution has been today could be used in a different app to make a graph that visualizes how your shortness of breath has progressed over the months for personal insight. - -Achieving something like this requires a high degree of standardization in both the surveys and the responses. The survey and its questions should provide information about: - -- The **question**. This is required in all survey questions, of course. -- The **required datatype** of the response, such as 'string', or 'datetime' or some 'enumeration'. -- A (link to a) **semantic definition** of the property being described. This is a bit more obscure: all pieces of linked data use links, instead of keys, to describe the relation between some resource and its property. For example, a normal resource might have a 'birthdate', while in linked data, we'd use ''. This semantic definition makes things easier to share, because it prevents misinterpretation. Links remove ambiguity. -- **A query description**. This is even more obscure, but perhaps the most interesting. A query description means describing how a piece of information can be retrieved. Perhaps a question in a survey will want to know what your payment pointer is. If a piece of software wants to auto-fill this field, it needs to know where it can find your payment pointer. - -## Question Standardization - -We can think of Questions as Resources that have a URL, and can be shared. -Sharing questions like that can make it easier to use the same questions across surveys, which in turn can make it easier to interpret data. -Some fields (e.g. medical) have highly standardized questions, which have been validated by studies. -These Question resources should contain information about: - -- The **question** itself and its translations -- The **datatype** of the response (e.g. `date`, `string`, `enum`), denoted by the [Property](https://atomicdata.dev/classes/Property) of the response. -- The **path of the data**, relative to the user. For example, a user's `birthdate` can be found by going to `/ profile birthdate` - -[Atomic Schema](../schema/intro.md) and [Atomic Paths](../core/paths.md) can be of value here. - -## Privacy friendly invites with client-side filtering - -Currently, a researcher needs to either build their own panel, or use a service that has a lot of respondents. -Sometimes, researchers will need a very specific target audience, like a specific age group, nationality, gender, or owners of specific types of devices. -Targeting these individuals is generally done by having a large database of personal information from many individuals. -But there is another way of doing this: **client-side filtering** -Instead of asking for the users data, and storing it centralized, we could send queries to decentralized personal data stores. -There queries basically contain the targeting information and an invitation. -The query is executed on the personal data store, and if the user characteristics align with the desired participants profile, the user receives an invite. -The user only sees invitations that are highly relevant, without sharing _any_ information with the researcher. - -The Atomic Data specification solves at least part of this problem. -[Paths](../core/paths.md) are used to describe the queries that researchers make. -[AtomicServer](https://github.com/atomicdata-dev/atomic--rust/blob/master/server/README.md) can be used as the personal online data store. - -However, we still need to specify the process of sending a request to an individual (probably by introducing an [inbox](https://github.com/ontola/atomic-data/issues/28)) diff --git a/src/usecases/verifiable-credentials.md b/src/usecases/verifiable-credentials.md deleted file mode 100644 index 79c58e1..0000000 --- a/src/usecases/verifiable-credentials.md +++ /dev/null @@ -1,42 +0,0 @@ -{{#title Atomic Data and Verifiable Credentials / SSI}} -# Atomic Data and Verifiable Credentials / SSI - -## What are Verifiable Credentials / Self-Sovereign Identity - -Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. -For example, you could have a credential that proves your degree, signed by your education. -These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. -For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. -Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it. - -## What makes Atomic Data suitable for this - -Firstly, [Atomic Commit](../commits/intro.md) are already verifiable using signatures that contain all the needed information. -Secondly, [Atomic Schema](../schema/intro.md) can be used for standardizing Credential Schemas. - -## Every Atomic Commit is a Verifiable Credential - -Every time an Agent updates a Resource, an [Atomic Commit](../commits/intro.md) is made. -This Commit is cryptographically signed by an Agent, just like how Verfifiable Credentials are signed. -In essence, this means that _all atomic data created through commits is fully verifiable_. - -How could this verification work? - -- **Find the Commit** that has created / edited the value that you want to verify. This can be made easier with a specialized Endpoint that takes a `resource`, `property` and `signer` and returns the associated Commit(s). -- **Check the signer of the Commit**. Is that an Agent that you trust? -- **Verify the signature** of the Commit using the public key of the Agent. - -Sometimes, credentials need to be revoked. -How could revocation work? - -- **Find the Commit** (see above) -- **Get the signer** (see above) -- **Find the `/isRevoked` Endpoint of that signer**, send a Request there to make sure the linked Commit is still valid and not revoked. - -([Discussion](https://github.com/ontola/atomic-data-docs/issues/22)) - -## Use Atomic Schema for standardizing Credentials - -If you are a Verifier who wants to check someone's _birthdate_, you'll probably expect a certain datatype in return, such as a [date](https://atomicdata.dev/datatypes/date) that is formatted in some specific way. -[Atomic Schema](../schema/intro.md) makes it possible to express which _properties_ are [required](https://atomicdata.dev/properties/requires) in a certain [Class](https://atomicdata.dev/classes/Class), and it also makes it possible to describe which [datatype](https://atomicdata.dev/classes/Datatype) is linked to a specific [Property](https://atomicdata.dev/classes/Property). -Combined, they allow for fine-grained descriptions of models / classes / schemas. diff --git a/src/usecases/vocabulary-management.md b/src/usecases/vocabulary-management.md deleted file mode 100644 index 30125a7..0000000 --- a/src/usecases/vocabulary-management.md +++ /dev/null @@ -1,4 +0,0 @@ -{{#title Atomic Data for Vocabulary & Taxonomy management}} -# Atomic Data for Vocabulary & Taxonomy management - -Describing abstract concepts, data models, and terms in a consistent way helps organisations diff --git a/src/usecases/zettelkasten.md b/src/usecases/zettelkasten.md deleted file mode 100644 index 8d1b18d..0000000 --- a/src/usecases/zettelkasten.md +++ /dev/null @@ -1,2 +0,0 @@ -{{#title Atomic Data for Zettelkasten}} -# Atomic Data for Zettelkasten diff --git a/src/websockets.md b/src/websockets.md deleted file mode 100644 index 6248697..0000000 --- a/src/websockets.md +++ /dev/null @@ -1,34 +0,0 @@ -{{#title Atomic Data Websockets - live synchronization}} -# WebSockets in Atomic Data - -WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion. -They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games. -These have been implemented in `atomic-server` and `atomic-data-browser` (powered by `@tomic/lib`). - -## Initializing a WebSocket connection - -Send an HTTP `GET` request to the `/ws` endpoint of an `atomic-server`. The Server should update that request to a secure WebSocket (`wss`) connection. -Use `x-atomic` [authentication headers (read more here)](./authentication.md) and use `ws` as a subject when signing. -The `WebSocket-Protocol` is `AtomicData`. - -## Client to server messages - -- `SUBSCRIBE ${subject}` tells the Server that you'd like to receive Commits about this Subject. -- `UNSUBSCRIBE ${subject}` tells the Server that you'd like to stop receiving Commits about this Subject. -- `GET ${subject}` fetch an individual resource. -- `AUTHENTICATE ${authenticationResource}` to set a user session for this websocket and allow authorized messages. The `authenticationResource` is a JSON-AD resource containing the signature and more, see [Authentication](../src/authentication.md). - -## Server to client messages - -- `COMMIT ${CommitBody}` an entire [Commit](../src/commits/concepts.md) for a resource that you're subscribed to. -- `RESOURCE ${Resource}` a JSON-AD Resource as a response to a `GET` message. If there is something wrong with this request (e.g. 404), return a `Error` Resource with the requested subject, similar to how the HTTP protocol server does this.` -- `ERROR ${ErrorBody}` an Error resource is sent whenever something goes wrong. The `ErrorBody` is a plaintext, typically English description of what went wrong. - -## Considerations - -- For many messages, there is no response to give if things are processed correctly. If a message is unknown or there is a different problem, return an `ERROR`. - -## Example implementations - -- [Example client implementation in Typescript (@tomic/lib).](https://github.com/atomicdata-dev/atomic-data-browser/blob/main/lib/src/websockets.ts) -- [Example server implementation in Rust using Actix-Web](https://github.com/atomicdata-dev/atomic-server/blob/master/server/src/handlers/web_sockets.rs) diff --git a/src/when-to-use.md b/src/when-to-use.md deleted file mode 100644 index 59e8410..0000000 --- a/src/when-to-use.md +++ /dev/null @@ -1,17 +0,0 @@ -{{#title When (not) to use Atomic Data}} -# When (not) to use Atomic Data - -## When should you use Atomic Data - -- **Flexible schemas**. When dealing with structured wikis or semantic data, various instances of things will have different attributes. Atomic Data allows _any_ kind of property on _any_ resource. -- **Open data**. Atomic Data is a bit harder to create than plain JSON, for example, but it is easier to re-use and understand. It's use of URLs for properties makes data self-documenting. -- **High interoperability requirements**. When multiple groups of people have to use the same schema, Atomic Data provides easy ways to constrain and validate the data and ensure type safety. -- **Connected / decentralized data**. With Atomic Data, you use URLs to point to things on other computers. This makes it possible to connect datasets very explicitly, without creating copies. Very useful for decentralized social networks, for example. -- **Auditability & Versioning**. Using Atomic Commits, we can store all changes to data as transactions that can be replayed. This creates a complete audit log and history. -- **JSON or RDF as Output**. Atomic Data serializes to idiomatic, clean JSON as well as various RDF formats (Turtle / JSON-LD / n-triples / RDF/XML). - -## When not to use Atomic Data - -- **Internal use only**. If you're not sharing structured data, Atomic Data will probably only make things harder for you. -- **Big Data**. If you're dealing with TeraBytes of data, you probably don't want to use Atomic Data. The added cost of schema validation and the lack of distributed / large scale persistence tooling makes it not the right choice. -- **Video / Audio / 3D**. These should have unique, optimized binary representations and have very strict, static schemas. The advantages of atomic / linked data do little to improve this, unless it's just for metadata. diff --git a/theme/index.hbs b/theme/index.hbs deleted file mode 100644 index 8e893c9..0000000 --- a/theme/index.hbs +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - {{ title }} - {{#if is_print }} - - {{/if}} - {{#if base_url}} - - {{/if}} - - - - {{> head}} - - - - - - - - - - - - - - - - {{#if copy_fonts}} - - {{/if}} - - - - - - - - {{#each additional_css}} - - {{/each}} - - {{#if mathjax_support}} - - - {{/if}} - - - - - - - - - - - - - - - - -
- -
- {{> header}} - - - - {{#if search_enabled}} - - {{/if}} - - - - -
-
- {{{ content }}} -
- - -
-
- - - -
- - {{#if livereload}} - - - {{/if}} - - - - - - {{#if playground_line_numbers}} - - {{/if}} - - {{#if playground_copyable}} - - {{/if}} - - {{#if playground_js}} - - - - - - {{/if}} - - {{#if search_js}} - - - - {{/if}} - - - - - - - {{#each additional_js}} - - {{/each}} - - {{#if is_print}} - {{#if mathjax_support}} - - {{else}} - - {{/if}} - {{/if}} - {{!-- Discord widget "Crate" by WidgetBot --}} - - - - diff --git a/tomorrow-night.css b/tomorrow-night.css new file mode 100644 index 0000000..81fe276 --- /dev/null +++ b/tomorrow-night.css @@ -0,0 +1,102 @@ +/* Tomorrow Night Theme */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rule .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.hljs-name, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.hljs-title, +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1d1f21; + color: #c5c8c6; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +.hljs-addition { + color: #718c00; +} + +.hljs-deletion { + color: #c82829; +} diff --git a/tooling.html b/tooling.html new file mode 100644 index 0000000..1e46625 --- /dev/null +++ b/tooling.html @@ -0,0 +1,320 @@ + + + + + + Software and libraries for Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Software and libraries for Atomic Data

+

Although Atomic Data is a specification, it also has reference implementations:

+

Open source (MIT licenced) software for Atomic Data:

+ +

Libraries (MIT licenced) to build apps with:

+ +

Applications

+

atomic-server

+

Server for hosting Atomic Data. Uses atomic-lib.

+
    +
  • Responds to requests for created Atomic Resources, makes atomic data available at their URL.
  • +
  • Embedded database
  • +
  • Authorization, authentication, versioning, collections, pagination
  • +
  • Browser-friendly HTML presentation, JSON serialization, RDF serialization.
  • +
+

One liner: $ docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server

+

demo

+

repository + issue tracker.

+

atomic-data-browser

+

Data browser, powered by @tomic/lib and @tomic/react.

+
    +
  • View & edit atomic data, using dynamic forms
  • +
  • Collections with pagination and sorting
  • +
  • Client-side full-text search
  • +
+

demo (same as atomic-server)

+

repository + issue tracker.

+

atomic-cli

+

A tool for generating / querying Atomic Data from the command line. Install with cargo install atomic-cli.

+
atomic 0.20.0
+Joep Meindertsma <joep@ontola.io>
+Create, share, fetch and model linked atomic data!
+
+USAGE:
+    atomic-cli [SUBCOMMAND]
+
+FLAGS:
+    -h, --help       Prints help information
+    -V, --version    Prints version information
+
+SUBCOMMANDS:
+    destroy    Permanently removes a Resource. Uses Commits.
+    edit       Edit a single Atom from a Resource using your text editor. Uses Commits.
+    get        Traverses a Path and prints the resulting Resource or Value.
+    help       Prints this message or the help of the given subcommand(s)
+    list       List all bookmarks
+    new        Create a Resource
+    remove     Remove a single Atom from a Resource. Uses Commits.
+    set        Update an Atom's value. Uses Commits.
+    tpf        Finds Atoms using Triple Pattern Fragments.
+
+Visit https://github.com/atomicdata-dev/atomic-data-browser for more info
+
+

repository + issue tracker.

+

Raycast extension: Full-text search from your desktop

+

Install here.

+

Libraries

+

@tomic/lib and @tomic/react

+

Javascript / typescript libraries, especially useful for creating front-end apps.

+

Fork the atomic-data-react-template on codesandbox to get started directly!

+

atomic-lib (Rust)

+

Library that powers atomic-server and atomic-cli. Features:

+
    +
  • An in-memory store
  • +
  • Parsing (JSON-AD) / Serialization (JSON-AD, JSON-LD, TTL, N-Triples)
  • +
  • Commit validation and processing
  • +
  • Constructing Collections
  • +
  • Path traversal
  • +
  • Basic validation
  • +
+

repository + issue tracker.

+

Want to add to this list? Some ideas for tooling

+

This document contains a set of ideas that would help achieve that success. +Open a PR and edit this file to add your project!

+

Atomic Companion

+

A mobile app for granting permissions to your data and signing things. See github issue.

+
    +
  • Show a notification when you try to log in somewhere with your agent
  • +
  • Notifications for mentions and other social items
  • +
  • Check uptime of your server
  • +
+

Atomizer (data importer and conversion kit)

+
    +
  • Import data from some data source (CSV / SQL / JSON / RDF), fill in the gaps (mapping / IRI creation / datatypes) an create new Atoms
  • +
  • Perhaps a CLI, library, GUI or a combination of all of these
  • +
+

Atomic Preview

+
    +
  • A simple (JS) widget that can be embedded anywhere, which converts an Atomic Graph into an HTML view.
  • +
  • Would be useful for documentation, and as a default view for Atomic Data.
  • +
  • Use @tomic/react and @tomic/lib to get started
  • +
+

Atomic-Dart + Flutter

+

Library + front-end app for browsing / manipulating Atomic Data on mobile devices.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/ai.html b/usecases/ai.html new file mode 100644 index 0000000..d2040ae --- /dev/null +++ b/usecases/ai.html @@ -0,0 +1,243 @@ + + + + + + Artificial Intelligence - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data & Artificial Intelligence

+

Recent developments in machine learning (and specifically deep neural networks) have shown how powerful and versatile AI can be. +Both Atomic Data and AI can be used to store and query knowledge, but we think of these technologies as complementary due to their unique characteristics:

+
    +
  • Artificial Intelligence can make sense of (unstructured) data, so you can feed it any type of data. However, AIs often produce unpredictable and sometimes incorrect results.
  • +
  • Atomic Data helps to make data interoperable, reliable and predictable. However, it requires very strict inputs.
  • +
+

There are two ways in which Atomic Data and AI can help each other:

+
    +
  • AI can help to make creating Atomic Data easier.
  • +
  • Atomic Data can help train AIs.
  • +
  • Atomic Data can provide AIs with reliable, machine readable data for answering questions.
  • +
+

Make it easier to create Atomic Data using AI

+

While writing text, an AI might help make suggestions to disambiguate whatever it is you're writing about. +For example, you may mention John and your knowledge graph editor (like atomic-server) could suggest John Wayne or John Cena. +When making your selection, a link will be created which helps to make your knowledge graph more easily browsable. +AI could help make these suggestions through context-aware entity recognition.

+

Train AIs with Atomic Data

+

During training, you could feed Atomic Data to your AI to help it construct a reliable, consistent model of the knowledge relevant to your organization or domain. +You could use atomic-server as the knowledge store, and iterate over your resources and let your AI parse them.

+

Provide AI with query access to answer questions

+

Instead of training your AI, you might provide your AI with an interface to perform queries. +Note that at this moment, I'm not aware of any AIs that can actually construct and execute queries, but because of recent advancements (e.g. ChatGPT), we know that there now exist AIs that can create SQL queries based on human text. +In the future, you might let your AI query your atomic-server to find reliable and up-to-date answers to your questions.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/data-catalog.html b/usecases/data-catalog.html new file mode 100644 index 0000000..d162da8 --- /dev/null +++ b/usecases/data-catalog.html @@ -0,0 +1,258 @@ + + + + + + Atomic Server as a Data Catalog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Using Atomic-Server as a Data Catalog

+

A data catalog is a system that collects metadata - data about data. +They are inventories of datasets.

+

They are often used to:

+
    +
  • Increase data-reuse of (open) datasets. By making descriptions of datasets, you increase their discoverability.
  • +
  • Manage data quality. The more datasets you have, the more you'll want to make sure they are usable. This could mean settings serialization requirements or schema compliance.
  • +
  • Manage compliance with privacy laws. If you have datasets that contain GDPR-relevant data (personal data), you're legally required to maintain a list of where that data is stored, what you need it for and what you're doing with it.
  • +
+

Why Atomic Server could be great for Data Catalogs

+

Atomic-Server is a powerful Database that can be used as a modern, powerful data catalog. It has a few advantages over others:

+
    +
  • Free & open source. MIT licensed!
  • +
  • Many built-in features, like full-text search, history, live synchronization and rights management.
  • +
  • Great performance. Requests take nanoseconds to milliseconds.
  • +
  • Very easy to setup. One single binary, no weird runtime dependencies.
  • +
  • Everything is linked data. Not just datasets (which you might), but also everything around them (users, comments, implementations).
  • +
  • Powerful CMS capabilities. With built in support for Tables and Documents, you can easily create webpages with articles or other types of resources using Atomic Server.
  • +
  • Atomic Schema can be used to describe the shape of your datasets: the properties you use, which fields are required - things like that. Because Atomic Schema uses URLs, we can easily re-use properties and class definitions. This helps to make your datasets highly interoperable.
  • +
+

When Atomic-Server is used for hosting the data, too

+

Most datacatalogs only have metadata. However, if you convert your existing CSV / JSON / XML / ... datasets to Atomic Data, you can host them on Atomic-Server as well. This has a few advantages:

+
    +
  • Data previews in the browser, users can navigate through the data without leaving the catalog.
  • +
  • Data itself becomes browseable, too, which means you can traverse a graph by clicking on link values.
  • +
  • Standardized Querying means you can easily, from the data catalog, can filter and sort the data.
  • +
  • Cross-dataset search. Search queries can be performed over multiple Atomic Data servers at once, enabling searching over multiple datasets. This is also called federated search.
  • +
+

Atomic Server compared to CKAN

+
    +
  • Atomic-Server is MIT licensed - which is more permissive than CKAN's AGPL license.
  • +
  • Whereas CKAN needs an external database, a python runtime, solrd and a HTTPS server, Atomic-Server has all of these built-in!
  • +
  • CKAN uses plain RDF, which has some very important drawbacks.
  • +
  • But... Atomic-Server still misses a few essentials right now:
  • +
+

What we should add to Atomic-Server before it's a decent Data Catalog

+
    +
  • Add a model for datasets. This is absolutely essential. It could be based on (and link to) DCAT, but needs to be described using Atomic Schema. This step means we can generate forms for Datasets and we can validate their fields.
  • +
  • Add views for datasets. Atomic-Server already renders decent views for unknown resources, but a specific view should be created for Datasets. Add a PR if you have a React view!
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/e-commerce.html b/usecases/e-commerce.html new file mode 100644 index 0000000..c8493ce --- /dev/null +++ b/usecases/e-commerce.html @@ -0,0 +1,288 @@ + + + + + + Atomic Data for e-commerce & marketplaces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data for e-commerce & marketplaces

+

Buying good and services on the internet is currently responsible for about 15% of all commerce, and is steadily climbing. +The internet makes it easier to find products, compare prices, get information and reviews, and finally order something. +But the current e-commerce situation is far from perfect, as large corporations tend to monopolize, which means that we have less competition which ultimately harms prices and quality for consumers. +Atomic Data can help empower smaller businesses, make searching for specific things way easier and ultimately make things cheaper for everyone.

+

Decentralize platform / sharing economy service marketplaces

+

Platforms like Uber, AirBNB and SnapCar are virtual marketplaces that help people share and find services. +These platforms are responsible for:

+
    +
  1. providing an interface for managing offers (e.g. describe your car, add specifications and pricing)
  2. +
  3. hosting the data of the offers themselves (make the data available on the internet)
  4. +
  5. providing a search interface (which means indexing the data from all the existing offers)
  6. +
  7. facilitating the transaction / payments
  8. +
  9. provide trust through reviews and warranties (e.g. refunds if the seller fails to deliver)
  10. +
+

The fact that these responsibilities are almost always combined in a single platforms leads to vendor lock-in and an uncompetitive landscape, which ultimately harms consumers. +Currently, if you want to manage your listing / offer on various platforms, you need to manually adjust it on all these various platforms. +Some companies even prohibit offering on multiple platforms (which is a legal problem, not a technical one). +This means that the biggest (most known) platforms have the most listings, so if you're looking for a house / car / rental / meal, you're likely to go for the biggest business - because that's the one that has the biggest assortment.

+

Compare this to how the web works: every browser should support every type of webpage, and it does not matter where the webpage is hosted. +I can browse a webpage written on a mac on my windows machine, and I can read a webpage hosted by amazon on an google device. +It does not matter, because the web is standardized and open, instead of being centralized and managed by one single company as proprietary data. +This openness of the web means that we get search engines like Google and Bing that scrape the web and add it to their index. +This results in a dynamic where those who want to sell their stuff will need to share their stuff using an open standard (for webpages things like HTML and sometimes a bit of metadata), so crawlers can properly index the webpages. +We could do the same thing for structured data instead of pages, and that's what Atomic Data is all about.

+

Let's discuss a more practical example of what this could mean. +Consider a restaurant owner who currently uses UberEats as their delivery platform. +Using Atomic Data, they could define their menu on their own website. +The Atomic Schema specification makes it easy to standardize how the data of a menu item looks like (e.g. price, image, title, allergens, vegan...). +Several platforms (potentially modern variants of platforms like JustEat / UberEats) could then crawl this standardized Atomic Data, index it, and make it easily searchable. +The customer would use one (or multiple) of these platforms, that would probably have the exact same offers. +Where these platforms might differ, is in their own service offering, such as delivery speed or price. +This would result in a more competitive and free market, where customers would be able to pick a platform based on their service price and quality, instead of their list of offerings. +It would empower the small business owner to be far more flexible in which service they will do business with.

+ +

Searching for products on the internet is mostly limited to text search. +If we want to buy a jacket, we see tonnes of jackets that are not even available in our own size. +Every single website has their own way of searching and filtering.

+

Imagine making a search query in one application, and sending that to multiple suppliers, after you'll receive a fully personalized and optimized list of products. +Browsing in an application that you like to use, not bound to any one specific store, that doesn't track you, and doesn't show advertisements. +It is a tool that helps you to find what you need, and it is the job of producers to accurately describe their products in a format that your product browser can understand.

+

How do we get there?

+

Well, for starters, producers and suppliers will need to reach a consensus on how to describe their articles. +This is not new; for many products, we already have a common language. +Shoes have a shoe size, televisions have a screen size in diagonal inches, brightness is measured in nits, etc. +Describing this in a machine-readable and predictable format as data is the next logical step. +This is, of course, where Atomic Schema could help. +Atomic-server could be the connected, open source database that suppliers use to describe their products as data.

+

Then we'll also need to build a search interface that performs federated queries, and product-dependent filter options.

+

Product lifecycle & supply chain insights

+

Imagine buying a product, and being able to see where each part came from. +The car that you buy might contain a list of all the maintenance moments, and every replaced part. +The raw materials used could be traced back to their origins.

+

This requires a high degree of coordination from each step in the supply chain. +This is exactly where Atomic Data shines, though, as it provides a highly standardized way of structuring, querying, authenticating an authorizing data.

+

Before we get to this point, we'll need to:

+
    +
  • Describe domain-specific product Classes using Atomic Schema, and their Properties.
  • +
+

Product specific updates after purchase

+

Imagine buying an external battery pack with a production error. +All units with a serial number between 1561168 and 1561468 have a serious error, where overcharging could lead to spontaneous combustion. +This is something that you'd like to know. +But how would the manufacturer of that resource know where to find you? +Well, if your Atomic Server would have a list of all the things that you've bought, it could automatically subscribe to safety updates from all manufacturers. +When any of these manufacturers would publish a safety warning about a product that you possess, you'll get an alert.

+

Before we have this, well need to:

+
    +
  • Build notifications support (see issue)
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/education.html b/usecases/education.html new file mode 100644 index 0000000..980ccbd --- /dev/null +++ b/usecases/education.html @@ -0,0 +1,251 @@ + + + + + + Education - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data for Education - standardized, modular e-learning

+

The Atomic Data specification can help make online educational content more modular. This has two direct benefits:

+
    +
  • Separate learning goals from how they are achieved. Some might prefer watching a video, others may want to read. Both can describe the same topic, and share the same test.
  • +
  • Improve discoverability. Create links between topics so students know which knowledge is needed to advance to the next topic.
  • +
+

Modular educational content - a model

+

We can think of Knowledge as being building blocks that we need to do certain things. +And we can think of Lessons as teaching certain pieces of knowledge, while at the same time requiring other pieces of knowledge. +For example, an algebra class might require that you already know how to multiply, add, etc. +We can think of Test as verifying if a piece of knowledge is properly understood.

+

Now there's also a relationship between the Student and all of these things. +A student is following a bunch Lessons in which they've made some progress, has done some Tests which resulted in Scores.

+

Describing our educational content in this fashion has a bunch of advantages. +For students, this means they can know in advance if they can get started with a course, or if they need to learn something else first. +Conversely, they can also discover new topics that depend on their previous piece of knowledge. +For teachers, this means they can re-use existing lessons for the courses.

+

What makes Atomic-Server a great tool for creating online courseware

+
    +
  • Powerful built-in document editor
  • +
  • Drag & drop file support
  • +
  • Versioning
  • +
  • Open source, so no vendor lock-in, and full customizability
  • +
  • Real-time updates, great for collaboration
  • +
  • Online by default, so no extra hassle with putting courses on the internet
  • +
+

However, there is still a lot to do!

+
    +
  • Turn the model described above into an actual Atomic Schema data model
  • +
  • Build the GUI for the application
  • +
  • Add plugins / extenders for things like doing tests (without giving the answer to students!)
  • +
  • Create educational content
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/food-labels.html b/usecases/food-labels.html new file mode 100644 index 0000000..185e27b --- /dev/null +++ b/usecases/food-labels.html @@ -0,0 +1,250 @@ + + + + + + Food labels - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data for food label standardization

+

In most countries, food producers are required to provide nutritional information on the packages of products, which helps citizens to make informed decisions about what to eat. +But how about we upgrade these labels to machine-readable, atomic data? +We could describe products using Atomic Data, and put their identifiers (Subject URLs) as QR codes on packages. +Imagine these scenarios:

+

Scan labels to get detailed, reliable, interactive information

+

You want to know more about some new cereal you've just bought. +You scan the QR code on the package. +A web app opens that shows detailed, yet highly visual information about its nutritional value. +The screen is no longer limited to what realistically fits on a package. +The elements are interactive, and provide explanations. +Everything is translated to the user's language. +If the food is (soon to be) expired, the app will clearly and visually alert you. +Click on the question mark next to granulated sugars, and you get an explanation of what this means to your health. +E-numbers are clickable, too, and help you instantly understand far more about what they represent. +When AR glasses become technologically feasible, you could even help people make better decisions while doing grocery shopping.

+

Using links instead of names helps to guide consumers to trustworthy pages that communicate clearly. +The alternative is that they use search engines, and maybe end up reading misinformation.

+

Provide nutritional advice based on shopping behavior

+

You order a bunch of products on your favorite groceries delivery app. +When going to the payment screen, you are shown a nutritional overview of your order. +You see that with this diet, you might have a deficit of the Lysene amino acid. +The shopping cart suggest adding egg, dairy or soy to your diet. +This can be done, because the groceries app can easily check detailed information about the food in your shopping cart, and reason about your dietary intake.

+

How to achieve all this

+
    +
  1. The governing body (e.g. the European Commision) should set up an Atomic Server and host it on some recognizable domain.
  2. +
  3. Create the Class for a food product, containing the same (or more) information that is shown on food packages.
  4. +
  5. Create the Class for Ingredient.
  6. +
  7. Create instances for various Ingredients. Start with the E-numbers, work your way up to all kinds of used ingredients. Add Translations.
  8. +
  9. Give instructions to Producers on how to describe their Products. Give them to option to host their own Server and control their own data, and give them the option to use some EU server.
  10. +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/headless-cms.html b/usecases/headless-cms.html new file mode 100644 index 0000000..f8d2300 --- /dev/null +++ b/usecases/headless-cms.html @@ -0,0 +1,263 @@ + + + + + + As a Headless CMS - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Using Atomic-Server as an open source headless CMS

+

Why people are switching to Headless CMS

+

Traditionally, content management systems were responsible for both managing the content as well as producing the actual HTML views that the user saw. +This approach has some issues regarding performance and flexibility that headless CMS tools solve.

+
    +
  • Great performance. We want pages to load in milliseconds, not seconds. Headless CMS tools + JAMSTACK style architectures are designed to give both performant initial page loads, as well as consecutive / dynamic loads.
  • +
  • High flexibility. Designs change, and front-end developers want to use the tools that they know and love to create these designs effectively. With a headless CMS, you can build the front-end with the tools that you want, and make it look exactly like you want.
  • +
  • Easier content management. Not every CMS is as fun and easy to use, as an admin, as others. Headless CMS tools focus on the admin side of things, so the front-end devs don't have to work on the back-end as well.
  • +
+

Atomic Server

+

The Atomic-Server project may be the right choice for you if you're looking for a Headless CMS:

+ +
    +
  • Free and open source. MIT licensed, no strings attached.
  • +
  • Easy to use API. Atomic-Server is built using the Atomic Data specification. It is well-documented, and uses conventions that most web developers are already familiar with.
  • +
  • Typescript & React libraries. Use the existing react hooks to make your own fully editable, live-reloaded web application.
  • +
  • Fast. 1ms responses on my laptop. It's written in Rust, so it squeezes out every cycle of your server.
  • +
  • Lightweight. It's a single 8MB binary, no external dependencies needed.
  • +
  • Easy to setup. Just run the binary and open the address. Even HTTPS support is built-in.
  • +
  • Clean, powerful admin GUI. The Atomic-Data-Browser front-end gives you a very easy interface to manage your content.
  • +
  • Share your data models. Atomic Data is designed to achieve a more decentralized web. You can easily re-use existing data models, or share the ones you built.
  • +
  • Files / Attachments. Upload and preview files.
  • +
  • Pagination / sorting / filtering. Query your data.
  • +
  • Versioning. Built-in history, where each transaction is saved.
  • +
  • Websockets. If you need live updates and highly interactive apps (collaborative documents and chatrooms), we've got your back.
  • +
  • Full-text search. No need for a big elasticsearch server - atomic-server has one built-in.
  • +
+

Limitations

+ +

Setting up the server

+
    +
  • One-liners: cargo install atomic-server or docker run -p 80:80 -v atomic-storage:/atomic-storage joepmeneer/atomic-server
  • +
  • Check out the readme!
  • +
+

Using the data in your (React / NextJS) app

+

The @tomic/lib and @tomic/react typescript NPM libraries can be used in any JS project.

+

In the next section, we'll discuss how to use Atomic-Server in your React project.

+

Compared to alternative open source headless CMS software

+
    +
  • Strapi: Atomic-Server doesn't need an external database, is easier to setup, has live synchronization support and is way faster. However, Strapi has a plugin system, is more polished, and has GraphQL support.
  • +
  • **
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/intro.html b/usecases/intro.html new file mode 100644 index 0000000..8ea8ab6 --- /dev/null +++ b/usecases/intro.html @@ -0,0 +1,235 @@ + + + + + + Various Use Cases for Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Various Use Cases for Atomic Data

+

Most of this book is either abstract or technical, but this section aims to be different. +In this section, we'll present concrete examples of things that can be built with Atomic Data. +Although you could use Atomic Data for pretty much any type of application, it is especially valuable where data re-use, standardization, and data ownership are important.

+ + + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/personal-data-store.html b/usecases/personal-data-store.html new file mode 100644 index 0000000..da26e1f --- /dev/null +++ b/usecases/personal-data-store.html @@ -0,0 +1,232 @@ + + + + + + Atomic Data for personal data stores + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data for personal data stores

+

A Personal Data Store (or personal data service) is a place where you store all sorts of personal information. +For example a list of contacts, todo items, pictures, or your profile data. +Not that long ago, the default for this was the my Documents folder on your hard drive. +But as web applications became better, we started moving our data to the cloud. +More and more of our personal information is stored by large corporations who use the information to build profiles to show us ads. +And as cloud consumers, we often don't have the luxury of moving our personal data to a place to where we want it to be. +Many services don't even provide export functionality, and even if they do, the exports often lack information or are not interoperable with other apps.

+

Atomic Data could help to re-introduce data ownership. +Because the specification helps to standardize information, it becomes easier to make data interoperable. +And even more important: Apps don't need their own back-end - they can use the same personal data store: an Atomic Server (such as this one).

+

Realizing this goal requires quite a bit of work, though. +This specification needs to mature, and we need reliable implementations. +We also need proper tutorials, libraries and tools that convince developers to use atomic data to power their applications.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/react.html b/usecases/react.html new file mode 100644 index 0000000..f1ecdce --- /dev/null +++ b/usecases/react.html @@ -0,0 +1,233 @@ + + + + + + In a React project - Atomic Data Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Using Atomic Data in a JS / TS React project

+

Atomic Data has been designed with front-end development in mind. +The open source Atomic-Data-Browser, which is feature-packed with chatrooms, a real-time collaborative rich text editor, tables and more, is powered by two libraries:

+
    +
  • @tomic/lib (docs) is the core library, containing logic for fetching and storing data, keeping things in sync using websockets, and signing commits.
  • +
  • @tomic/react (docs) is the react library, featuring various useful hooks that mimic useState, giving you real-time updates through your app.
  • +
+

Check out the template on CodeSandbox:

+ +

Feeling stuck? Post an issue or join the discord.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/surveys.html b/usecases/surveys.html new file mode 100644 index 0000000..0c80c4d --- /dev/null +++ b/usecases/surveys.html @@ -0,0 +1,265 @@ + + + + + + Atomic Data for Surveys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data for Surveys

+

Surveys and Questionnaires haven't been evolving that much over the past few years. +However, Atomic Data has a couple of unique characteristics that would make it especially suitable for surveys. +It could help make surveys easier to fill in, easier to analyze, easier to create, and more privacy friendly.

+
    +
  • Re-useable survey responses which enable pre-filled form fields which can save the respondent a lot of time. They also make it possible for users to use their own responses to gather insights, for example into their own health.
  • +
  • Question standardization which helps researchers to re-use (validated) questions, which saves time for the researcher
  • +
  • Privacy friendly, yet highly personalized invites as a researcher, send profile descriptions to servers, and let the servers tell if the question is relevant.
  • +
+

Re-useable survey responses

+

Since many surveys describe personal information, it makes sense, as a respondent, to have a way of storing the information you filled in in a place that you control. +Making this possible enables a few nice use cases.

+
    +
  1. Auto-fill forms. Previously entered response data could be usable while filling in new surveys. This could result in a UX similar to auto-filling forms, but far more powerful and rich than browsers currently support.
  2. +
  3. Analyze your own personal data. Standardized survey responses could also be used to gather insights into your own personal information. For example, filling in a survey about how your shortness of breath linked to air pollution has been today could be used in a different app to make a graph that visualizes how your shortness of breath has progressed over the months for personal insight.
  4. +
+

Achieving something like this requires a high degree of standardization in both the surveys and the responses. The survey and its questions should provide information about:

+
    +
  • The question. This is required in all survey questions, of course.
  • +
  • The required datatype of the response, such as 'string', or 'datetime' or some 'enumeration'.
  • +
  • A (link to a) semantic definition of the property being described. This is a bit more obscure: all pieces of linked data use links, instead of keys, to describe the relation between some resource and its property. For example, a normal resource might have a 'birthdate', while in linked data, we'd use 'https://schema.org/birthDate'. This semantic definition makes things easier to share, because it prevents misinterpretation. Links remove ambiguity.
  • +
  • A query description. This is even more obscure, but perhaps the most interesting. A query description means describing how a piece of information can be retrieved. Perhaps a question in a survey will want to know what your payment pointer is. If a piece of software wants to auto-fill this field, it needs to know where it can find your payment pointer.
  • +
+

Question Standardization

+

We can think of Questions as Resources that have a URL, and can be shared. +Sharing questions like that can make it easier to use the same questions across surveys, which in turn can make it easier to interpret data. +Some fields (e.g. medical) have highly standardized questions, which have been validated by studies. +These Question resources should contain information about:

+
    +
  • The question itself and its translations
  • +
  • The datatype of the response (e.g. date, string, enum), denoted by the Property of the response.
  • +
  • The path of the data, relative to the user. For example, a user's birthdate can be found by going to / profile birthdate
  • +
+

Atomic Schema and Atomic Paths can be of value here.

+

Privacy friendly invites with client-side filtering

+

Currently, a researcher needs to either build their own panel, or use a service that has a lot of respondents. +Sometimes, researchers will need a very specific target audience, like a specific age group, nationality, gender, or owners of specific types of devices. +Targeting these individuals is generally done by having a large database of personal information from many individuals. +But there is another way of doing this: client-side filtering +Instead of asking for the users data, and storing it centralized, we could send queries to decentralized personal data stores. +There queries basically contain the targeting information and an invitation. +The query is executed on the personal data store, and if the user characteristics align with the desired participants profile, the user receives an invite. +The user only sees invitations that are highly relevant, without sharing any information with the researcher.

+

The Atomic Data specification solves at least part of this problem. +Paths are used to describe the queries that researchers make. +AtomicServer can be used as the personal online data store.

+

However, we still need to specify the process of sending a request to an individual (probably by introducing an inbox)

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usecases/verifiable-credentials.html b/usecases/verifiable-credentials.html new file mode 100644 index 0000000..aaafcc5 --- /dev/null +++ b/usecases/verifiable-credentials.html @@ -0,0 +1,250 @@ + + + + + + Atomic Data and Verifiable Credentials / SSI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

Atomic Data and Verifiable Credentials / SSI

+

What are Verifiable Credentials / Self-Sovereign Identity

+

Verifiable Credentials are pieces of information that have cryptographic proof by some reliable third party. +For example, you could have a credential that proves your degree, signed by your education. +These credentials an enable privacy-friendly transactions where a credential owner can prove being part of some group, without needing to actually identify themselves. +For example, you could prove that you're over 18 by showing a credential issued by your government, without actually having to show your ID card with your birthdate. +Verifiable Credentials are still not that widely used, but various projects exists that have had moderate success in implementing it.

+

What makes Atomic Data suitable for this

+

Firstly, Atomic Commit are already verifiable using signatures that contain all the needed information. +Secondly, Atomic Schema can be used for standardizing Credential Schemas.

+

Every Atomic Commit is a Verifiable Credential

+

Every time an Agent updates a Resource, an Atomic Commit is made. +This Commit is cryptographically signed by an Agent, just like how Verfifiable Credentials are signed. +In essence, this means that all atomic data created through commits is fully verifiable.

+

How could this verification work?

+
    +
  • Find the Commit that has created / edited the value that you want to verify. This can be made easier with a specialized Endpoint that takes a resource, property and signer and returns the associated Commit(s).
  • +
  • Check the signer of the Commit. Is that an Agent that you trust?
  • +
  • Verify the signature of the Commit using the public key of the Agent.
  • +
+

Sometimes, credentials need to be revoked. +How could revocation work?

+
    +
  • Find the Commit (see above)
  • +
  • Get the signer (see above)
  • +
  • Find the /isRevoked Endpoint of that signer, send a Request there to make sure the linked Commit is still valid and not revoked.
  • +
+

(Discussion)

+

Use Atomic Schema for standardizing Credentials

+

If you are a Verifier who wants to check someone's birthdate, you'll probably expect a certain datatype in return, such as a date that is formatted in some specific way. +Atomic Schema makes it possible to express which properties are required in a certain Class, and it also makes it possible to describe which datatype is linked to a specific Property. +Combined, they allow for fine-grained descriptions of models / classes / schemas.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/websockets.html b/websockets.html new file mode 100644 index 0000000..7cc94d0 --- /dev/null +++ b/websockets.html @@ -0,0 +1,248 @@ + + + + + + Atomic Data Websockets - live synchronization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

WebSockets in Atomic Data

+

WebSockets are a very fast and efficient way to have a client and server communicate in an asynchronous fashion. +They are used in Atomic Data to allow real-time updates, which makes it possible to create things like collaborative applications and multiplayer games. +These have been implemented in atomic-server and atomic-data-browser (powered by @tomic/lib).

+

Initializing a WebSocket connection

+

Send an HTTP GET request to the /ws endpoint of an atomic-server. The Server should update that request to a secure WebSocket (wss) connection. +Use x-atomic authentication headers (read more here) and use ws as a subject when signing. +The WebSocket-Protocol is AtomicData.

+

Client to server messages

+
    +
  • SUBSCRIBE ${subject} tells the Server that you'd like to receive Commits about this Subject.
  • +
  • UNSUBSCRIBE ${subject} tells the Server that you'd like to stop receiving Commits about this Subject.
  • +
  • GET ${subject} fetch an individual resource.
  • +
  • AUTHENTICATE ${authenticationResource} to set a user session for this websocket and allow authorized messages. The authenticationResource is a JSON-AD resource containing the signature and more, see Authentication.
  • +
+

Server to client messages

+
    +
  • COMMIT ${CommitBody} an entire Commit for a resource that you're subscribed to.
  • +
  • RESOURCE ${Resource} a JSON-AD Resource as a response to a GET message. If there is something wrong with this request (e.g. 404), return a Error Resource with the requested subject, similar to how the HTTP protocol server does this.`
  • +
  • ERROR ${ErrorBody} an Error resource is sent whenever something goes wrong. The ErrorBody is a plaintext, typically English description of what went wrong.
  • +
+

Considerations

+
    +
  • For many messages, there is no response to give if things are processed correctly. If a message is unknown or there is a different problem, return an ERROR.
  • +
+

Example implementations

+ + +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/when-to-use.html b/when-to-use.html new file mode 100644 index 0000000..60398f7 --- /dev/null +++ b/when-to-use.html @@ -0,0 +1,234 @@ + + + + + + When (not) to use Atomic Data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+
+

When (not) to use Atomic Data

+

When should you use Atomic Data

+
    +
  • Flexible schemas. When dealing with structured wikis or semantic data, various instances of things will have different attributes. Atomic Data allows any kind of property on any resource.
  • +
  • Open data. Atomic Data is a bit harder to create than plain JSON, for example, but it is easier to re-use and understand. It's use of URLs for properties makes data self-documenting.
  • +
  • High interoperability requirements. When multiple groups of people have to use the same schema, Atomic Data provides easy ways to constrain and validate the data and ensure type safety.
  • +
  • Connected / decentralized data. With Atomic Data, you use URLs to point to things on other computers. This makes it possible to connect datasets very explicitly, without creating copies. Very useful for decentralized social networks, for example.
  • +
  • Auditability & Versioning. Using Atomic Commits, we can store all changes to data as transactions that can be replayed. This creates a complete audit log and history.
  • +
  • JSON or RDF as Output. Atomic Data serializes to idiomatic, clean JSON as well as various RDF formats (Turtle / JSON-LD / n-triples / RDF/XML).
  • +
+

When not to use Atomic Data

+
    +
  • Internal use only. If you're not sharing structured data, Atomic Data will probably only make things harder for you.
  • +
  • Big Data. If you're dealing with TeraBytes of data, you probably don't want to use Atomic Data. The added cost of schema validation and the lack of distributed / large scale persistence tooling makes it not the right choice.
  • +
  • Video / Audio / 3D. These should have unique, optimized binary representations and have very strict, static schemas. The advantages of atomic / linked data do little to improve this, unless it's just for metadata.
  • +
+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + +