@internetarchive/bookreader 5.0.0-18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/.eslintrc.js +58 -0
  2. package/.gitattributes +2 -0
  3. package/.github/ISSUE_TEMPLATE/bug.md +32 -0
  4. package/.github/ISSUE_TEMPLATE/feature-request.md +30 -0
  5. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +15 -0
  6. package/.github/dependabot.yml +8 -0
  7. package/.github/workflows/node.js.yml +37 -0
  8. package/.github/workflows/npm-publish.yml +47 -0
  9. package/.testcaferc.json +5 -0
  10. package/BookReader/BookReader.css +2983 -0
  11. package/BookReader/BookReader.js +3 -0
  12. package/BookReader/BookReader.js.LICENSE.txt +117 -0
  13. package/BookReader/BookReader.js.map +1 -0
  14. package/BookReader/bookreader-component-bundle.js +1436 -0
  15. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +27 -0
  16. package/BookReader/bookreader-component-bundle.js.map +1 -0
  17. package/BookReader/icons/1up.svg +1 -0
  18. package/BookReader/icons/2up.svg +1 -0
  19. package/BookReader/icons/advance.svg +3 -0
  20. package/BookReader/icons/chevron-right.svg +1 -0
  21. package/BookReader/icons/close-circle-dark.svg +1 -0
  22. package/BookReader/icons/close-circle.svg +1 -0
  23. package/BookReader/icons/fullscreen.svg +1 -0
  24. package/BookReader/icons/fullscreen_exit.svg +1 -0
  25. package/BookReader/icons/hamburger.svg +1 -0
  26. package/BookReader/icons/left-arrow.svg +1 -0
  27. package/BookReader/icons/magnify-minus.svg +1 -0
  28. package/BookReader/icons/magnify-plus.svg +1 -0
  29. package/BookReader/icons/magnify.svg +1 -0
  30. package/BookReader/icons/pause.svg +1 -0
  31. package/BookReader/icons/play.svg +1 -0
  32. package/BookReader/icons/playback-speed.svg +1 -0
  33. package/BookReader/icons/read-aloud.svg +1 -0
  34. package/BookReader/icons/review.svg +3 -0
  35. package/BookReader/icons/thumbnails.svg +1 -0
  36. package/BookReader/icons/volume-full.svg +1 -0
  37. package/BookReader/images/BRicons.png +0 -0
  38. package/BookReader/images/BRicons.svg +5 -0
  39. package/BookReader/images/BRicons_ia.png +0 -0
  40. package/BookReader/images/back_pages.png +0 -0
  41. package/BookReader/images/book_bottom_icon.png +0 -0
  42. package/BookReader/images/book_down_icon.png +0 -0
  43. package/BookReader/images/book_left_icon.png +0 -0
  44. package/BookReader/images/book_leftmost_icon.png +0 -0
  45. package/BookReader/images/book_right_icon.png +0 -0
  46. package/BookReader/images/book_rightmost_icon.png +0 -0
  47. package/BookReader/images/book_top_icon.png +0 -0
  48. package/BookReader/images/book_up_icon.png +0 -0
  49. package/BookReader/images/books_graphic.svg +1 -0
  50. package/BookReader/images/booksplit.png +0 -0
  51. package/BookReader/images/control_pause_icon.png +0 -0
  52. package/BookReader/images/control_play_icon.png +0 -0
  53. package/BookReader/images/embed_icon.png +0 -0
  54. package/BookReader/images/icon-home-ia.png +0 -0
  55. package/BookReader/images/icon_OL-logo-xs.png +0 -0
  56. package/BookReader/images/icon_alert-xs.png +0 -0
  57. package/BookReader/images/icon_book.svg +1 -0
  58. package/BookReader/images/icon_bookmark.svg +1 -0
  59. package/BookReader/images/icon_close-pop.png +0 -0
  60. package/BookReader/images/icon_download.png +0 -0
  61. package/BookReader/images/icon_gear.svg +1 -0
  62. package/BookReader/images/icon_hamburger.svg +1 -0
  63. package/BookReader/images/icon_home.png +0 -0
  64. package/BookReader/images/icon_home.svg +1 -0
  65. package/BookReader/images/icon_home_ia.png +0 -0
  66. package/BookReader/images/icon_indicator.png +0 -0
  67. package/BookReader/images/icon_info.svg +1 -0
  68. package/BookReader/images/icon_one_page.svg +1 -0
  69. package/BookReader/images/icon_pause.svg +1 -0
  70. package/BookReader/images/icon_play.svg +1 -0
  71. package/BookReader/images/icon_playback-rate.svg +1 -0
  72. package/BookReader/images/icon_return.png +0 -0
  73. package/BookReader/images/icon_search_button.svg +1 -0
  74. package/BookReader/images/icon_share.svg +1 -0
  75. package/BookReader/images/icon_skip-ahead.svg +1 -0
  76. package/BookReader/images/icon_skip-back.svg +2 -0
  77. package/BookReader/images/icon_speaker.svg +1 -0
  78. package/BookReader/images/icon_speaker_open.svg +1 -0
  79. package/BookReader/images/icon_thumbnails.svg +1 -0
  80. package/BookReader/images/icon_toc.svg +1 -0
  81. package/BookReader/images/icon_two_pages.svg +1 -0
  82. package/BookReader/images/icon_zoomer.png +0 -0
  83. package/BookReader/images/loading.gif +0 -0
  84. package/BookReader/images/logo_icon.png +0 -0
  85. package/BookReader/images/marker_chap-off.png +0 -0
  86. package/BookReader/images/marker_chap-off.svg +1 -0
  87. package/BookReader/images/marker_chap-off_ia.png +0 -0
  88. package/BookReader/images/marker_chap-on.png +0 -0
  89. package/BookReader/images/marker_chap-on.svg +1 -0
  90. package/BookReader/images/marker_srch-on.svg +1 -0
  91. package/BookReader/images/marker_srchchap-off.png +0 -0
  92. package/BookReader/images/marker_srchchap-on.png +0 -0
  93. package/BookReader/images/nav_control-dn.png +0 -0
  94. package/BookReader/images/nav_control-dn_ia.png +0 -0
  95. package/BookReader/images/nav_control-up.png +0 -0
  96. package/BookReader/images/nav_control-up_ia.png +0 -0
  97. package/BookReader/images/nav_control.png +0 -0
  98. package/BookReader/images/one_page_mode_icon.png +0 -0
  99. package/BookReader/images/paper-badge.png +0 -0
  100. package/BookReader/images/print_icon.png +0 -0
  101. package/BookReader/images/progressbar.gif +0 -0
  102. package/BookReader/images/right_edges.png +0 -0
  103. package/BookReader/images/slider.png +0 -0
  104. package/BookReader/images/slider_ia.png +0 -0
  105. package/BookReader/images/thumbnail_mode_icon.png +0 -0
  106. package/BookReader/images/transparent.png +0 -0
  107. package/BookReader/images/two_page_mode_icon.png +0 -0
  108. package/BookReader/images/zoom_in_icon.png +0 -0
  109. package/BookReader/images/zoom_out_icon.png +0 -0
  110. package/BookReader/jquery-1.10.1.js +2 -0
  111. package/BookReader/jquery-1.10.1.js.LICENSE.txt +24 -0
  112. package/BookReader/plugins/plugin.archive_analytics.js +2 -0
  113. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -0
  114. package/BookReader/plugins/plugin.autoplay.js +2 -0
  115. package/BookReader/plugins/plugin.autoplay.js.map +1 -0
  116. package/BookReader/plugins/plugin.chapters.js +2 -0
  117. package/BookReader/plugins/plugin.chapters.js.map +1 -0
  118. package/BookReader/plugins/plugin.iframe.js +2 -0
  119. package/BookReader/plugins/plugin.iframe.js.map +1 -0
  120. package/BookReader/plugins/plugin.mobile_nav.js +2 -0
  121. package/BookReader/plugins/plugin.mobile_nav.js.map +1 -0
  122. package/BookReader/plugins/plugin.resume.js +2 -0
  123. package/BookReader/plugins/plugin.resume.js.map +1 -0
  124. package/BookReader/plugins/plugin.search.js +2 -0
  125. package/BookReader/plugins/plugin.search.js.map +1 -0
  126. package/BookReader/plugins/plugin.text_selection.js +2 -0
  127. package/BookReader/plugins/plugin.text_selection.js.map +1 -0
  128. package/BookReader/plugins/plugin.tts.js +3 -0
  129. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +27 -0
  130. package/BookReader/plugins/plugin.tts.js.map +1 -0
  131. package/BookReader/plugins/plugin.url.js +2 -0
  132. package/BookReader/plugins/plugin.url.js.map +1 -0
  133. package/BookReader/plugins/plugin.vendor-fullscreen.js +2 -0
  134. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -0
  135. package/BookReaderDemo/BookReaderDemo.css +41 -0
  136. package/BookReaderDemo/BookReaderJSAdvanced.js +115 -0
  137. package/BookReaderDemo/BookReaderJSAutoplay.js +56 -0
  138. package/BookReaderDemo/BookReaderJSSimple.js +55 -0
  139. package/BookReaderDemo/IIIFBookReader.js +207 -0
  140. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +1 -0
  141. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +1 -0
  142. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  143. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  144. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  145. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +1 -0
  146. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +1 -0
  147. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  148. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  149. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  150. package/BookReaderDemo/bookreader-template-bundle.js +7178 -0
  151. package/BookReaderDemo/demo-advanced.html +32 -0
  152. package/BookReaderDemo/demo-autoplay.html +38 -0
  153. package/BookReaderDemo/demo-embed-iframe-src.html +84 -0
  154. package/BookReaderDemo/demo-embed.html +26 -0
  155. package/BookReaderDemo/demo-fullscreen-mobile.html +36 -0
  156. package/BookReaderDemo/demo-fullscreen.html +33 -0
  157. package/BookReaderDemo/demo-iiif.html +34 -0
  158. package/BookReaderDemo/demo-iiif.js +26 -0
  159. package/BookReaderDemo/demo-internetarchive.html +74 -0
  160. package/BookReaderDemo/demo-multiple.html +43 -0
  161. package/BookReaderDemo/demo-preview-pages.html +1092 -0
  162. package/BookReaderDemo/demo-simple.html +34 -0
  163. package/BookReaderDemo/demo-vendor-fullscreen.html +36 -0
  164. package/BookReaderDemo/immersion-1up.html +64 -0
  165. package/BookReaderDemo/immersion-mode.html +35 -0
  166. package/BookReaderDemo/toggle_controls.html +53 -0
  167. package/BookReaderDemo/view_mode.html +39 -0
  168. package/BookReaderDemo/viewmode-cycle.html +41 -0
  169. package/CHANGELOG.md +540 -0
  170. package/CONTRIBUTING.md +7 -0
  171. package/LICENSE +661 -0
  172. package/README.md +205 -0
  173. package/babel.config.js +18 -0
  174. package/codecov.yml +17 -0
  175. package/index.html +31 -0
  176. package/jsconfig.json +14 -0
  177. package/karma.conf.js +23 -0
  178. package/package.json +129 -0
  179. package/screenshot.png +0 -0
  180. package/scripts/postversion.js +10 -0
  181. package/scripts/preversion.js +14 -0
  182. package/scripts/version.js +26 -0
  183. package/src/BookNavigator/BookModel.js +14 -0
  184. package/src/BookNavigator/BookNavigator.js +468 -0
  185. package/src/BookNavigator/assets/book-loader.js +27 -0
  186. package/src/BookNavigator/assets/bookmark-colors.js +15 -0
  187. package/src/BookNavigator/assets/button-base.js +61 -0
  188. package/src/BookNavigator/assets/icon_checkmark.js +6 -0
  189. package/src/BookNavigator/assets/icon_close.js +3 -0
  190. package/src/BookNavigator/assets/icon_sort_asc.js +5 -0
  191. package/src/BookNavigator/assets/icon_sort_desc.js +5 -0
  192. package/src/BookNavigator/assets/icon_sort_neutral.js +5 -0
  193. package/src/BookNavigator/assets/icon_volumes.js +11 -0
  194. package/src/BookNavigator/bookmarks/bookmark-button.js +64 -0
  195. package/src/BookNavigator/bookmarks/bookmark-edit.js +215 -0
  196. package/src/BookNavigator/bookmarks/bookmarks-list.js +285 -0
  197. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +28 -0
  198. package/src/BookNavigator/bookmarks/bookmarks-provider.js +53 -0
  199. package/src/BookNavigator/bookmarks/ia-bookmarks.js +500 -0
  200. package/src/BookNavigator/br-fullscreen-mgr.js +83 -0
  201. package/src/BookNavigator/delete-modal-actions.js +49 -0
  202. package/src/BookNavigator/downloads/downloads-provider.js +76 -0
  203. package/src/BookNavigator/downloads/downloads.js +138 -0
  204. package/src/BookNavigator/search/a-search-result.js +55 -0
  205. package/src/BookNavigator/search/search-provider.js +180 -0
  206. package/src/BookNavigator/search/search-results.js +360 -0
  207. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +93 -0
  208. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +280 -0
  209. package/src/BookNavigator/volumes/volumes-provider.js +83 -0
  210. package/src/BookNavigator/volumes/volumes.js +178 -0
  211. package/src/BookReader/BookModel.js +518 -0
  212. package/src/BookReader/DebugConsole.js +54 -0
  213. package/src/BookReader/ImageCache.js +116 -0
  214. package/src/BookReader/Mode1Up.js +90 -0
  215. package/src/BookReader/Mode1UpLit.js +434 -0
  216. package/src/BookReader/Mode2Up.js +1372 -0
  217. package/src/BookReader/ModeSmoothZoom.js +177 -0
  218. package/src/BookReader/ModeThumb.js +336 -0
  219. package/src/BookReader/Navbar/Navbar.js +339 -0
  220. package/src/BookReader/PageContainer.js +120 -0
  221. package/src/BookReader/ReduceSet.js +26 -0
  222. package/src/BookReader/Toolbar/Toolbar.js +384 -0
  223. package/src/BookReader/events.js +20 -0
  224. package/src/BookReader/options.js +320 -0
  225. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  226. package/src/BookReader/utils/classes.js +36 -0
  227. package/src/BookReader/utils.js +240 -0
  228. package/src/BookReader.js +2546 -0
  229. package/src/BookReaderComponent/BookReaderComponent.js +112 -0
  230. package/src/ItemNavigator/ItemNavigator.js +376 -0
  231. package/src/ItemNavigator/providers/sharing.js +33 -0
  232. package/src/assets/icons/1up.svg +12 -0
  233. package/src/assets/icons/2up.svg +15 -0
  234. package/src/assets/icons/advance.svg +26 -0
  235. package/src/assets/icons/chevron-right.svg +1 -0
  236. package/src/assets/icons/close-circle-dark.svg +1 -0
  237. package/src/assets/icons/close-circle.svg +1 -0
  238. package/src/assets/icons/fullscreen.svg +17 -0
  239. package/src/assets/icons/fullscreen_exit.svg +17 -0
  240. package/src/assets/icons/hamburger.svg +15 -0
  241. package/src/assets/icons/left-arrow.svg +12 -0
  242. package/src/assets/icons/magnify-minus.svg +16 -0
  243. package/src/assets/icons/magnify-plus.svg +17 -0
  244. package/src/assets/icons/magnify.svg +15 -0
  245. package/src/assets/icons/pause.svg +23 -0
  246. package/src/assets/icons/play.svg +22 -0
  247. package/src/assets/icons/playback-speed.svg +34 -0
  248. package/src/assets/icons/read-aloud.svg +22 -0
  249. package/src/assets/icons/review.svg +22 -0
  250. package/src/assets/icons/thumbnails.svg +17 -0
  251. package/src/assets/icons/volume-full.svg +22 -0
  252. package/src/assets/images/BRicons.png +0 -0
  253. package/src/assets/images/BRicons.svg +94 -0
  254. package/src/assets/images/BRicons_ia.png +0 -0
  255. package/src/assets/images/back_pages.png +0 -0
  256. package/src/assets/images/book_bottom_icon.png +0 -0
  257. package/src/assets/images/book_down_icon.png +0 -0
  258. package/src/assets/images/book_left_icon.png +0 -0
  259. package/src/assets/images/book_leftmost_icon.png +0 -0
  260. package/src/assets/images/book_right_icon.png +0 -0
  261. package/src/assets/images/book_rightmost_icon.png +0 -0
  262. package/src/assets/images/book_top_icon.png +0 -0
  263. package/src/assets/images/book_up_icon.png +0 -0
  264. package/src/assets/images/books_graphic.svg +177 -0
  265. package/src/assets/images/booksplit.png +0 -0
  266. package/src/assets/images/control_pause_icon.png +0 -0
  267. package/src/assets/images/control_play_icon.png +0 -0
  268. package/src/assets/images/embed_icon.png +0 -0
  269. package/src/assets/images/icon-home-ia.png +0 -0
  270. package/src/assets/images/icon_OL-logo-xs.png +0 -0
  271. package/src/assets/images/icon_alert-xs.png +0 -0
  272. package/src/assets/images/icon_book.svg +12 -0
  273. package/src/assets/images/icon_bookmark.svg +12 -0
  274. package/src/assets/images/icon_close-pop.png +0 -0
  275. package/src/assets/images/icon_download.png +0 -0
  276. package/src/assets/images/icon_gear.svg +14 -0
  277. package/src/assets/images/icon_hamburger.svg +20 -0
  278. package/src/assets/images/icon_home.png +0 -0
  279. package/src/assets/images/icon_home.svg +21 -0
  280. package/src/assets/images/icon_home_ia.png +0 -0
  281. package/src/assets/images/icon_indicator.png +0 -0
  282. package/src/assets/images/icon_info.svg +11 -0
  283. package/src/assets/images/icon_one_page.svg +8 -0
  284. package/src/assets/images/icon_pause.svg +1 -0
  285. package/src/assets/images/icon_play.svg +1 -0
  286. package/src/assets/images/icon_playback-rate.svg +15 -0
  287. package/src/assets/images/icon_return.png +0 -0
  288. package/src/assets/images/icon_search_button.svg +8 -0
  289. package/src/assets/images/icon_share.svg +9 -0
  290. package/src/assets/images/icon_skip-ahead.svg +6 -0
  291. package/src/assets/images/icon_skip-back.svg +13 -0
  292. package/src/assets/images/icon_speaker.svg +18 -0
  293. package/src/assets/images/icon_speaker_open.svg +10 -0
  294. package/src/assets/images/icon_thumbnails.svg +12 -0
  295. package/src/assets/images/icon_toc.svg +5 -0
  296. package/src/assets/images/icon_two_pages.svg +9 -0
  297. package/src/assets/images/icon_zoomer.png +0 -0
  298. package/src/assets/images/loading.gif +0 -0
  299. package/src/assets/images/logo_icon.png +0 -0
  300. package/src/assets/images/marker_chap-off.png +0 -0
  301. package/src/assets/images/marker_chap-off.svg +11 -0
  302. package/src/assets/images/marker_chap-off_ia.png +0 -0
  303. package/src/assets/images/marker_chap-on.png +0 -0
  304. package/src/assets/images/marker_chap-on.svg +11 -0
  305. package/src/assets/images/marker_srch-on.svg +11 -0
  306. package/src/assets/images/marker_srchchap-off.png +0 -0
  307. package/src/assets/images/marker_srchchap-on.png +0 -0
  308. package/src/assets/images/nav_control-dn.png +0 -0
  309. package/src/assets/images/nav_control-dn_ia.png +0 -0
  310. package/src/assets/images/nav_control-up.png +0 -0
  311. package/src/assets/images/nav_control-up_ia.png +0 -0
  312. package/src/assets/images/nav_control.png +0 -0
  313. package/src/assets/images/one_page_mode_icon.png +0 -0
  314. package/src/assets/images/paper-badge.png +0 -0
  315. package/src/assets/images/print_icon.png +0 -0
  316. package/src/assets/images/progressbar.gif +0 -0
  317. package/src/assets/images/right_edges.png +0 -0
  318. package/src/assets/images/slider.png +0 -0
  319. package/src/assets/images/slider_ia.png +0 -0
  320. package/src/assets/images/thumbnail_mode_icon.png +0 -0
  321. package/src/assets/images/transparent.png +0 -0
  322. package/src/assets/images/two_page_mode_icon.png +0 -0
  323. package/src/assets/images/zoom_in_icon.png +0 -0
  324. package/src/assets/images/zoom_out_icon.png +0 -0
  325. package/src/css/BookReader.scss +89 -0
  326. package/src/css/_BRBookmarks.scss +29 -0
  327. package/src/css/_BRComponent.scss +13 -0
  328. package/src/css/_BRfloat.scss +197 -0
  329. package/src/css/_BRicon.scss +48 -0
  330. package/src/css/_BRmain.scss +251 -0
  331. package/src/css/_BRnav.scss +382 -0
  332. package/src/css/_BRpages.scss +139 -0
  333. package/src/css/_BRsearch.scss +226 -0
  334. package/src/css/_BRtoolbar.scss +84 -0
  335. package/src/css/_BRvendor.scss +5 -0
  336. package/src/css/_MobileNav.scss +194 -0
  337. package/src/css/_TextSelection.scss +32 -0
  338. package/src/css/_colorbox.scss +52 -0
  339. package/src/css/_controls.scss +244 -0
  340. package/src/css/_icons.scss +121 -0
  341. package/src/dragscrollable-br.js +261 -0
  342. package/src/jquery-wrapper.js +4 -0
  343. package/src/plugins/plugin.archive_analytics.js +86 -0
  344. package/src/plugins/plugin.autoplay.js +129 -0
  345. package/src/plugins/plugin.chapters.js +251 -0
  346. package/src/plugins/plugin.iframe.js +48 -0
  347. package/src/plugins/plugin.mobile_nav.js +287 -0
  348. package/src/plugins/plugin.resume.js +68 -0
  349. package/src/plugins/plugin.text_selection.js +291 -0
  350. package/src/plugins/plugin.url.js +198 -0
  351. package/src/plugins/plugin.vendor-fullscreen.js +247 -0
  352. package/src/plugins/search/plugin.search.js +439 -0
  353. package/src/plugins/search/view.js +440 -0
  354. package/src/plugins/tts/AbstractTTSEngine.js +242 -0
  355. package/src/plugins/tts/FestivalTTSEngine.js +169 -0
  356. package/src/plugins/tts/PageChunk.js +107 -0
  357. package/src/plugins/tts/PageChunkIterator.js +163 -0
  358. package/src/plugins/tts/WebTTSEngine.js +352 -0
  359. package/src/plugins/tts/plugin.tts.js +335 -0
  360. package/src/plugins/tts/tooltip_dict.js +15 -0
  361. package/src/plugins/tts/utils.js +91 -0
  362. package/src/util/browserSniffing.js +30 -0
  363. package/src/util/debouncer.js +26 -0
  364. package/src/util/docCookies.js +67 -0
  365. package/src/util/strings.js +34 -0
  366. package/tests/BookReader/BookModel.test.js +312 -0
  367. package/tests/BookReader/BookReaderPublicFunctions.test.js +164 -0
  368. package/tests/BookReader/DebugConsole.test.js +25 -0
  369. package/tests/BookReader/ImageCache.test.js +150 -0
  370. package/tests/BookReader/Mode1UpLit.test.js +87 -0
  371. package/tests/BookReader/Mode2Up.test.js +245 -0
  372. package/tests/BookReader/ModeSmoothZoom.test.js +149 -0
  373. package/tests/BookReader/Navbar/Navbar.test.js +169 -0
  374. package/tests/BookReader/PageContainer.test.js +187 -0
  375. package/tests/BookReader/ReduceSet.test.js +38 -0
  376. package/tests/BookReader/Toolbar/Toolbar.test.js +26 -0
  377. package/tests/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  378. package/tests/BookReader/utils/classes.test.js +88 -0
  379. package/tests/BookReader/utils.test.js +136 -0
  380. package/tests/BookReader.options.test.js +39 -0
  381. package/tests/BookReader.test.js +301 -0
  382. package/tests/e2e/README.md +75 -0
  383. package/tests/e2e/autoplay.test.js +13 -0
  384. package/tests/e2e/base.test.js +35 -0
  385. package/tests/e2e/helpers/base.js +263 -0
  386. package/tests/e2e/helpers/debug.js +13 -0
  387. package/tests/e2e/helpers/desktopSearch.js +72 -0
  388. package/tests/e2e/helpers/mobileSearch.js +85 -0
  389. package/tests/e2e/helpers/mockSearch.js +93 -0
  390. package/tests/e2e/helpers/rightToLeft.js +29 -0
  391. package/tests/e2e/ia-production/ia-prod-base.js +17 -0
  392. package/tests/e2e/models/BookReader.js +11 -0
  393. package/tests/e2e/models/Navigation.js +56 -0
  394. package/tests/e2e/rightToLeft.test.js +20 -0
  395. package/tests/e2e/viewmode.test.js +37 -0
  396. package/tests/karma/BookNavigator/book-navigator.test.js +180 -0
  397. package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +133 -0
  398. package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +222 -0
  399. package/tests/karma/BookNavigator/downloads/downloads-provider.test.js +64 -0
  400. package/tests/karma/BookNavigator/downloads/downloads.test.js +54 -0
  401. package/tests/karma/BookNavigator/search/search-provider.test.js +23 -0
  402. package/tests/karma/BookNavigator/search/search-results.test.js +240 -0
  403. package/tests/karma/BookNavigator/sharing/sharing-provider.test.js +40 -0
  404. package/tests/karma/BookNavigator/visual-adjustments.test.js +201 -0
  405. package/tests/karma/BookNavigator/volumes/volumes-provider.test.js +160 -0
  406. package/tests/karma/BookNavigator/volumes/volumes.test.js +98 -0
  407. package/tests/plugins/plugin.archive_analytics.test.js +23 -0
  408. package/tests/plugins/plugin.autoplay.test.js +52 -0
  409. package/tests/plugins/plugin.chapters.test.js +130 -0
  410. package/tests/plugins/plugin.iframe.test.js +42 -0
  411. package/tests/plugins/plugin.mobile_nav.test.js +66 -0
  412. package/tests/plugins/plugin.resume.test.js +98 -0
  413. package/tests/plugins/plugin.text_selection.test.js +193 -0
  414. package/tests/plugins/plugin.url.test.js +129 -0
  415. package/tests/plugins/plugin.vendor-fullscreen.test.js +65 -0
  416. package/tests/plugins/search/plugin.search.test.js +173 -0
  417. package/tests/plugins/search/plugin.search.view.test.js +106 -0
  418. package/tests/plugins/tts/AbstractTTSEngine.test.js +153 -0
  419. package/tests/plugins/tts/FestivalTTSEngine.test.js +59 -0
  420. package/tests/plugins/tts/PageChunk.test.js +57 -0
  421. package/tests/plugins/tts/PageChunkIterator.test.js +179 -0
  422. package/tests/plugins/tts/WebTTSEngine.test.js +126 -0
  423. package/tests/plugins/tts/utils.test.js +133 -0
  424. package/tests/util/browserSniffing.test.js +56 -0
  425. package/tests/util/docCookies.test.js +15 -0
  426. package/tests/util/strings.test.js +63 -0
  427. package/tests/utils.js +80 -0
  428. package/webpack.config.js +85 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[336],{8837:function(t,o,e){var a;e(5827),e(4916),e(5306),e(2222),e(6992),e(1539),e(8783),e(3948),e(285),e(3609).extend(BookReader.defaultOptions,{enableUrlPlugin:!0,bookId:"",defaults:null,updateWindowTitle:!1,urlMode:"hash",urlHistoryBasePath:"/",urlTrackedParams:["page","search","mode","region","highlight"],urlTrackIndex0:!1}),BookReader.prototype.setup=(a=BookReader.prototype.setup,function(t){a.call(this,t),this.bookId=t.bookId,this.defaults=t.defaults,this.locationPollId=null,this.oldLocationHash=null,this.oldUserHash=null}),BookReader.prototype.init=function(t){return function(){var o=this;this.options.enableUrlPlugin&&(this.bind(BookReader.eventNames.PostInit,(function(){var t=o.options,e=t.updateWindowTitle,a=t.urlMode;e&&(document.title=o.shortTitle(50)),"hash"===a&&o.urlStartLocationPolling()})),this.bind(BookReader.eventNames.fragmentChange,this.urlUpdateFragment.bind(this))),t.call(this)}}(BookReader.prototype.init),BookReader.prototype.shortTitle=function(t){return this.bookTitle.length<t?this.bookTitle:"".concat(this.bookTitle.substr(0,t-3),"...")},BookReader.prototype.urlStartLocationPolling=function(){var t=this;this.oldLocationHash=this.urlReadFragment(),this.locationPollId&&(clearInterval(this.locationPollID),this.locationPollId=null),this.locationPollId=setInterval((function(){var o=t.urlReadFragment();if(o!=t.oldLocationHash&&o!=t.oldUserHash){var e=t.paramsFromFragment(o),a=function(){return t.updateFromParams(e)};t.trigger(BookReader.eventNames.stop),t.animating?(t.autoStop&&t.autoStop(),t.animationFinishedCallback=a):a(),t.oldUserHash=o}}),500)},BookReader.prototype.urlUpdateFragment=function(){var t=this.paramsFromCurrent(),o=this.options,e=o.urlMode,a=o.urlTrackIndex0,r=o.urlTrackedParams;a||void 0===t.index||0!==t.index||(delete t.index,delete t.page);var n=r.reduce((function(o,e){return e in t&&(o[e]=t[e]),o}),{}),i=this.fragmentFromParams(n,e),s=this.urlReadFragment(),l=this.getLocationSearch(),h=this.queryStringFromParams(n,l,e);if(s!==i||l!==h)if("history"===e){if(window.history&&window.history.replaceState){var d=this.options.urlHistoryBasePath.replace(/\/+$/,""),u=""===i?"":"/".concat(i),c="".concat(d).concat(u).concat(h);window.history.replaceState({},null,c),this.oldLocationHash=i+h}}else{var p=this.urlParamsFiltersOnlySearch(this.readQueryString());window.location.replace("#"+i+p),this.oldLocationHash=i+p}},BookReader.prototype.urlParamsFiltersOnlySearch=function(t){var o=new URLSearchParams(t);return o.has("q")?"?".concat(new URLSearchParams({q:o.get("q")})):""},BookReader.prototype.urlReadFragment=function(){var t=this.options,o=t.urlMode,e=t.urlHistoryBasePath;return"history"===o?window.location.pathname.substr(e.length):window.location.hash.substr(1)},BookReader.prototype.urlReadHashFragment=function(){return window.location.hash.substr(1)}}},function(t){t(t.s=8837)}]);
2
+ //# sourceMappingURL=plugin.url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins/plugin.url.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.url.js"],"sourcesContent":["/* global BookReader */\n/**\n * Plugin for URL management in BookReader\n * Note read more about the url \"fragment\" here:\n * https://openlibrary.org/dev/docs/bookurls\n */\n\njQuery.extend(BookReader.defaultOptions, {\n enableUrlPlugin: true,\n bookId: '',\n /** @type {string} Defaults can be a urlFragment string */\n defaults: null,\n updateWindowTitle: false,\n\n /** @type {'history' | 'hash'} */\n urlMode: 'hash',\n\n /**\n * When using 'history' mode, this part of the URL is kept constant\n * @example /details/plato/\n */\n urlHistoryBasePath: '/',\n\n /** Only these params will be reflected onto the URL */\n urlTrackedParams: ['page', 'search', 'mode', 'region', 'highlight'],\n\n /** If true, don't update the URL when `page == n0 (eg \"/page/n0\")` */\n urlTrackIndex0: false,\n});\n\n/** @override */\nBookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.bookId = options.bookId;\n this.defaults = options.defaults;\n\n this.locationPollId = null;\n this.oldLocationHash = null;\n this.oldUserHash = null;\n };\n})(BookReader.prototype.setup);\n\n/** @override */\nBookReader.prototype.init = (function(super_) {\n return function() {\n\n if (this.options.enableUrlPlugin) {\n this.bind(BookReader.eventNames.PostInit, () => {\n const { updateWindowTitle, urlMode } = this.options;\n if (updateWindowTitle) {\n document.title = this.shortTitle(50);\n }\n if (urlMode === 'hash') {\n this.urlStartLocationPolling();\n }\n });\n\n this.bind(BookReader.eventNames.fragmentChange,\n this.urlUpdateFragment.bind(this)\n );\n }\n super_.call(this);\n };\n})(BookReader.prototype.init);\n\n/**\n * Returns a shortened version of the title with the maximum number of characters\n * @param {number} maximumCharacters\n * @return {string}\n */\nBookReader.prototype.shortTitle = function(maximumCharacters) {\n if (this.bookTitle.length < maximumCharacters) {\n return this.bookTitle;\n }\n\n const title = `${this.bookTitle.substr(0, maximumCharacters - 3)}...`;\n return title;\n};\n\n/**\n * Starts polling of window.location to see hash fragment changes\n */\nBookReader.prototype.urlStartLocationPolling = function() {\n this.oldLocationHash = this.urlReadFragment();\n\n if (this.locationPollId) {\n clearInterval(this.locationPollID);\n this.locationPollId = null;\n }\n\n const updateHash = () => {\n const newFragment = this.urlReadFragment();\n const hasFragmentChange = (newFragment != this.oldLocationHash) && (newFragment != this.oldUserHash);\n\n if (!hasFragmentChange) { return; }\n\n const params = this.paramsFromFragment(newFragment);\n\n const updateParams = () => this.updateFromParams(params);\n\n this.trigger(BookReader.eventNames.stop);\n if (this.animating) {\n // Queue change if animating\n if (this.autoStop) this.autoStop();\n this.animationFinishedCallback = updateParams;\n } else {\n // update immediately\n updateParams();\n }\n this.oldUserHash = newFragment;\n };\n\n this.locationPollId = setInterval(updateHash, 500);\n};\n\n/**\n * Update URL from the current parameters.\n * Call this instead of manually using window.location.replace\n */\nBookReader.prototype.urlUpdateFragment = function() {\n const allParams = this.paramsFromCurrent();\n const { urlMode, urlTrackIndex0, urlTrackedParams } = this.options;\n\n if (!urlTrackIndex0\n && (typeof(allParams.index) !== 'undefined')\n && allParams.index === 0) {\n delete allParams.index;\n delete allParams.page;\n }\n\n const params = urlTrackedParams.reduce((validParams, paramName) => {\n if (paramName in allParams) {\n validParams[paramName] = allParams[paramName];\n }\n return validParams;\n }, {});\n\n const newFragment = this.fragmentFromParams(params, urlMode);\n const currFragment = this.urlReadFragment();\n const currQueryString = this.getLocationSearch();\n const newQueryString = this.queryStringFromParams(params, currQueryString, urlMode);\n if (currFragment === newFragment && currQueryString === newQueryString) {\n return;\n }\n\n if (urlMode === 'history') {\n if (window.history && window.history.replaceState) {\n const baseWithoutSlash = this.options.urlHistoryBasePath.replace(/\\/+$/, '');\n const newFragmentWithSlash = newFragment === '' ? '' : `/${newFragment}`;\n\n const newUrlPath = `${baseWithoutSlash}${newFragmentWithSlash}${newQueryString}`;\n window.history.replaceState({}, null, newUrlPath);\n this.oldLocationHash = newFragment + newQueryString;\n\n }\n } else {\n const newQueryStringSearch = this.urlParamsFiltersOnlySearch(this.readQueryString());\n window.location.replace('#' + newFragment + newQueryStringSearch);\n this.oldLocationHash = newFragment + newQueryStringSearch;\n\n }\n};\n\n/**\n * @private\n * Filtering query parameters to select only book search param (?q=foo)\n This needs to be updated/URL system modified if future query params are to be added\n * @param {string} url\n * @return {string}\n * */\nBookReader.prototype.urlParamsFiltersOnlySearch = function(url) {\n const params = new URLSearchParams(url);\n return params.has('q') ? `?${new URLSearchParams({ q: params.get('q') })}` : '';\n};\n\n\n/**\n * Will read either the hash or URL and return the bookreader fragment\n * @return {string}\n */\nBookReader.prototype.urlReadFragment = function() {\n const { urlMode, urlHistoryBasePath } = this.options;\n if (urlMode === 'history') {\n return window.location.pathname.substr(urlHistoryBasePath.length);\n } else {\n return window.location.hash.substr(1);\n }\n};\n\n/**\n * Will read the hash return the bookreader fragment\n * @return {string}\n */\nBookReader.prototype.urlReadHashFragment = function() {\n return window.location.hash.substr(1);\n};\n"],"names":["super_","extend","BookReader","defaultOptions","enableUrlPlugin","bookId","defaults","updateWindowTitle","urlMode","urlHistoryBasePath","urlTrackedParams","urlTrackIndex0","prototype","setup","options","call","this","locationPollId","oldLocationHash","oldUserHash","init","bind","eventNames","PostInit","document","title","shortTitle","urlStartLocationPolling","fragmentChange","urlUpdateFragment","maximumCharacters","bookTitle","length","substr","urlReadFragment","clearInterval","locationPollID","setInterval","newFragment","params","paramsFromFragment","updateParams","updateFromParams","trigger","stop","animating","autoStop","animationFinishedCallback","allParams","paramsFromCurrent","index","page","reduce","validParams","paramName","fragmentFromParams","currFragment","currQueryString","getLocationSearch","newQueryString","queryStringFromParams","window","history","replaceState","baseWithoutSlash","replace","newFragmentWithSlash","newUrlPath","newQueryStringSearch","urlParamsFiltersOnlySearch","readQueryString","location","url","URLSearchParams","has","q","get","pathname","hash","urlReadHashFragment"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[46],{8688:function(e,t,n){"use strict";n(3210),n(9600);var o,r=n(3609),i=n(3609);if(!m()){var u=".bookreader_vendor-fullscreen";r.extend(BookReader.defaultOptions,{enableVendorFullscreenPlugin:!0}),BookReader.prototype.setup=(o=BookReader.prototype.setup,function(e){o.call(this,e),this.isVendorFullscreenActive=!1}),BookReader.prototype.getInitialMode=function(e){return function(t){var n=e.call(this,t);return this.isVendorFullscreenActive&&(n=this.constMode1up),n}}(BookReader.prototype.getInitialMode),BookReader.prototype.init=function(e){return function(){e.call(this),d()&&p(this,(function(e){e.data.resize(),e.data.updateBrClasses();var t=i("#cboxOverlay"),n=i("#colorbox");s()?i(l()).append(t).append(n):i(document.body).append(t).append(n)}))}}(BookReader.prototype.init),BookReader.prototype.enterFullWindow=function(){var e=this;this.refs.$brContainer.css("opacity",0),i(window).width()<=this.onePageMinBreakpoint&&this.switchMode(this.constMode1up),this.isVendorFullscreenActive=!0,this.updateBrClasses(),this.resize(),this.jumpToIndex(this.currentIndex()),this.refs.$brContainer.animate({opacity:1},400,"linear"),i(document).on("keyup.".concat(u),(function(t){27===t.keyCode&&e.exitFullScreen()}))},BookReader.prototype.exitFullWindow=function(){this.refs.$brContainer.css("opacity",0),i(document).off("keyup"+u),this.isFullscreenActive=!1,this.updateBrClasses(),this.resize(),this.refs.$brContainer.animate({opacity:1},400,"linear")},BookReader.prototype.isFullscreen=function(){return s()||this.isVendorFullscreenActive},BookReader.prototype.toggleFullscreen=function(){this.isFullscreen()?d()?c():this.exitFullWindow():d()?a(this.refs.$br[0]):this.enterFullWindow()},BookReader.util.isMobile=m,BookReader.util.getFullscreenElement=l,BookReader.util.bindFullscreenChangeListener=p,BookReader.util.fullscreenAllowed=d,BookReader.util.requestFullscreen=a,BookReader.util.exitFullscreen=c,BookReader.util.isFullscreenActive=s}function l(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}function s(){return null!=l()}function c(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}function a(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()}function d(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullScreenEnabled}function p(e,t){var n="fullscreenchange ",o=i.trim(n+["webkit","moz","ms"].join(n)+n);i(document).bind(o,e,t)}function m(){return void 0!==window.orientation||-1!==navigator.userAgent.indexOf("IEMobile")}},6091:function(e,t,n){var o=n(7293),r=n(1361);e.exports=function(e){return o((function(){return!!r[e]()||"​…᠎"!="​…᠎"[e]()||r[e].name!==e}))}},3210:function(e,t,n){"use strict";var o=n(2109),r=n(3111).trim;o({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return r(this)}})}},function(e){e(e.s=8688)}]);
2
+ //# sourceMappingURL=plugin.vendor-fullscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins/plugin.vendor-fullscreen.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js"],"sourcesContent":["/* global BookReader */\n\n/**\n * Toggles browser's native fullscreen mode if available device is not mobile\n */\nif (!isMobile()) {\n const EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';\n\n jQuery.extend(BookReader.defaultOptions, {\n /** @type {boolean} */\n enableVendorFullscreenPlugin: true\n });\n\n /** @override */\n BookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.isVendorFullscreenActive = false;\n };\n })(BookReader.prototype.setup);\n\n /** @override */\n BookReader.prototype.getInitialMode = (function(super_) {\n return function(params) {\n let nextMode = super_.call(this, params);\n if (this.isVendorFullscreenActive) {\n nextMode = this.constMode1up;\n }\n return nextMode;\n };\n })(BookReader.prototype.getInitialMode);\n\n /** @override */\n BookReader.prototype.init = (function(super_) {\n return function() {\n super_.call(this);\n\n if (!fullscreenAllowed()) {\n return;\n }\n // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.\n bindFullscreenChangeListener(this, (e) => {\n e.data.resize();\n e.data.updateBrClasses();\n const cboxOverlay = $('#cboxOverlay');\n const cbox = $('#colorbox');\n if (isFullscreenActive()) {\n // In full screen mode, the colorbox and overlay need\n // to be children of the fullscreen element to display properly.\n const $fullscreen = $(getFullscreenElement());\n $fullscreen.append(cboxOverlay).append(cbox);\n } else {\n // In non-fullscreen mode, the colorbox and overlay need\n // to be children of the main document body.\n $(document.body).append(cboxOverlay).append(cbox);\n }\n });\n };\n })(BookReader.prototype.init);\n\n /**\n * Start fullscreen mode\n */\n BookReader.prototype.enterFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n const windowWidth = $(window).width();\n if (windowWidth <= this.onePageMinBreakpoint) {\n this.switchMode(this.constMode1up);\n }\n\n this.isVendorFullscreenActive = true;\n this.updateBrClasses();\n\n this.resize();\n this.jumpToIndex(this.currentIndex());\n\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n\n $(document).on(`keyup.${EVENT_NAMESPACE}`, e => {\n if (e.keyCode === 27) this.exitFullScreen();\n });\n };\n\n /**\n * Exit from fullscreen mode\n */\n BookReader.prototype.exitFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n $(document).off('keyup' + EVENT_NAMESPACE);\n\n this.isFullscreenActive = false;\n this.updateBrClasses();\n\n this.resize();\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n };\n\n /**\n * Returns true if fullscreen mode is enabled\n *\n * @returns {boolean}\n */\n BookReader.prototype.isFullscreen = function() {\n return isFullscreenActive() || this.isVendorFullscreenActive;\n };\n\n /**\n * Toggle screen\n */\n BookReader.prototype.toggleFullscreen = function() {\n if (this.isFullscreen()) {\n if (fullscreenAllowed()) {\n exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n } else {\n if (fullscreenAllowed()) {\n requestFullscreen(this.refs.$br[0]);\n } else {\n this.enterFullWindow();\n }\n }\n };\n\n /** @deprecated */\n BookReader.util.isMobile = isMobile;\n\n /** @deprecated */\n BookReader.util.getFullscreenElement = getFullscreenElement;\n\n /** @deprecated */\n BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;\n\n /** @deprecated */\n BookReader.util.fullscreenAllowed = fullscreenAllowed;\n\n /** @deprecated */\n BookReader.util.requestFullscreen = requestFullscreen;\n\n /** @deprecated */\n BookReader.util.exitFullscreen = exitFullscreen;\n\n /** @deprecated */\n BookReader.util.isFullscreenActive = isFullscreenActive;\n}\n\n\n/**\n * Returns the DOM element being used for fullscreen.\n *\n * @returns {HTMLElement}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement\n */\nexport function getFullscreenElement() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement;\n}\n\n/**\n * Returns true if the document is in fullscreen mode.\n *\n * @returns {boolean}\n */\nexport function isFullscreenActive() {\n const fullscreenElement = getFullscreenElement();\n return fullscreenElement !== null && fullscreenElement !== undefined;\n}\n\n/**\n * Exits fullscreen mode.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen\n */\nexport function exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n}\n\n/**\n * Requests fullscreen mode for the given element\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen\n */\nexport function requestFullscreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n}\n\n/**\n * Returns true if fullscreen mode is allowed on this device and document.\n *\n * @returns {boolean}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled\n */\nexport function fullscreenAllowed() {\n return (document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullScreenEnabled);\n}\n\n/**\n * jQuery-style binding to a fullscreenchange event.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event\n */\nexport function bindFullscreenChangeListener(\n data, fullscreenchangeListener\n) {\n const event = 'fullscreenchange ';\n const vendor_prefixes = [\n 'webkit',\n 'moz',\n 'ms'\n ];\n const all_events = $.trim(event + vendor_prefixes.join(event) + event);\n $(document).bind(all_events, data, fullscreenchangeListener);\n}\n\n/**\n * Returns true if current device is mobile\n *\n * @returns {boolean}\n */\nexport function isMobile() {\n return (typeof window.orientation !== 'undefined') || (navigator.userAgent.indexOf('IEMobile') !== -1);\n}\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n"],"names":["super_","isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","options","call","this","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","$","cbox","isFullscreenActive","getFullscreenElement","append","document","body","enterFullWindow","refs","$brContainer","css","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","keyCode","exitFullScreen","exitFullWindow","off","isFullscreen","toggleFullscreen","exitFullscreen","requestFullscreen","$br","util","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","element","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullScreenEnabled","fullscreenchangeListener","event","all_events","trim","join","bind","orientation","navigator","userAgent","indexOf","fails","whitespaces","module","exports","METHOD_NAME","name","$trim","target","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Custom overrides for BookReader Demo.
3
+ */
4
+ html {
5
+ font-size: 10px;
6
+ font-family: sans-serif;
7
+ }
8
+
9
+ body {
10
+ background-color: #939598;
11
+ margin: 0px;
12
+ }
13
+
14
+ /* Hide print and embed functionality */
15
+ .BRtoolbar .embed, .print {
16
+ display: none;
17
+ }
18
+
19
+ .BookReader {
20
+ height: 600px;
21
+ overflow: hidden;
22
+ margin: 0 auto;
23
+ }
24
+
25
+ @media only screen and (max-width: 799px) {
26
+ body.BRbodyMobileNavEnabled {
27
+ margin: 0;
28
+ width: 100%;
29
+ overflow: hidden;
30
+ }
31
+ .BRbodyMobileNavEnabled .BookReader {
32
+ top: 0;
33
+ bottom: 0;
34
+ left: 0;
35
+ right: 0;
36
+ position: absolute;
37
+ height: 100%;
38
+ margin: 0;
39
+ width: 100%;
40
+ }
41
+ }
@@ -0,0 +1,115 @@
1
+ //
2
+ // This file shows the minimum you need to provide to BookReader to display a book
3
+ //
4
+ // Copyright(c)2008-2009 Internet Archive. Software license AGPL version 3.
5
+
6
+ // Create the BookReader object
7
+ var options = {
8
+ // Total number of leafs
9
+ getNumLeafs: function() {
10
+ return 15;
11
+ },
12
+
13
+ // Return the width of a given page. Here we assume all images are 800 pixels wide
14
+ getPageWidth: function(index) {
15
+ return 800;
16
+ },
17
+
18
+ // Return the height of a given page. Here we assume all images are 1200 pixels high
19
+ getPageHeight: function(index) {
20
+ return 1200;
21
+ },
22
+
23
+ // We load the images from archive.org -- you can modify this function to retrieve images
24
+ // using a different URL structure
25
+ getPageURI: function(index, reduce, rotate) {
26
+ // reduce and rotate are ignored in this simple implementation, but we
27
+ // could e.g. look at reduce and load images from a different directory
28
+ // or pass the information to an image server
29
+ var leafStr = '000';
30
+ var imgStr = (index+1).toString();
31
+ var re = new RegExp("0{"+imgStr.length+"}$");
32
+ var url = 'http://archive.org/download/BookReader/img/page'+leafStr.replace(re, imgStr) + '.jpg';
33
+ return url;
34
+ },
35
+
36
+ // Return which side, left or right, that a given page should be displayed on
37
+ getPageSide: function(index) {
38
+ if (0 == (index & 0x1)) {
39
+ return 'R';
40
+ } else {
41
+ return 'L';
42
+ }
43
+ },
44
+
45
+ // This function returns the left and right indices for the user-visible
46
+ // spread that contains the given index. The return values may be
47
+ // null if there is no facing page or the index is invalid.
48
+ getSpreadIndices: function(pindex) {
49
+ var spreadIndices = [null, null];
50
+ if ('rl' == this.pageProgression) {
51
+ // Right to Left
52
+ if (this.getPageSide(pindex) == 'R') {
53
+ spreadIndices[1] = pindex;
54
+ spreadIndices[0] = pindex + 1;
55
+ } else {
56
+ // Given index was LHS
57
+ spreadIndices[0] = pindex;
58
+ spreadIndices[1] = pindex - 1;
59
+ }
60
+ } else {
61
+ // Left to right
62
+ if (this.getPageSide(pindex) == 'L') {
63
+ spreadIndices[0] = pindex;
64
+ spreadIndices[1] = pindex + 1;
65
+ } else {
66
+ // Given index was RHS
67
+ spreadIndices[1] = pindex;
68
+ spreadIndices[0] = pindex - 1;
69
+ }
70
+ }
71
+ return spreadIndices;
72
+ },
73
+
74
+ // For a given "accessible page index" return the page number in the book.
75
+ //
76
+ // For example, index 5 might correspond to "Page 1" if there is front matter such
77
+ // as a title page and table of contents.
78
+ getPageNum: function(index) {
79
+ return index+1;
80
+ },
81
+
82
+ // Book title and the URL used for the book title link
83
+ bookTitle: 'BookReader Advanced Demo',
84
+ bookUrl: '../index.html',
85
+ bookUrlText: 'Back to Demos',
86
+ bookUrlTitle: 'This is the book URL title',
87
+ // thumbnail is optional, but it is used in the info dialog
88
+ thumbnail: '//archive.org/download/BookReader/img/page014.jpg',
89
+ // Metadata is optional, but it is used in the info dialog
90
+ metadata: [
91
+ {label: 'Title', value: 'Open Library BookReader Presentation'},
92
+ {label: 'Author', value: 'Internet Archive'},
93
+ {label: 'Demo Info', value: 'This demo shows how one could use BookReader with their own content.'},
94
+ ],
95
+ // This toggles the mobile drawer (not shown in 'embed' mode)
96
+ enableMobileNav: false,
97
+ mobileNavTitle: 'BookReader demo',
98
+
99
+ // Override the path used to find UI images
100
+ imagesBaseURL: '../BookReader/images/',
101
+
102
+ getEmbedCode: function(frameWidth, frameHeight, viewParams) {
103
+ return "Embed code not supported in bookreader demo.";
104
+ },
105
+
106
+ // Note previously the UI param was used for mobile, but it's going to be responsive
107
+ // embed === iframe
108
+
109
+ ui: 'full', // embed, full (responsive)
110
+
111
+ };
112
+ var br = new BookReader(options);
113
+
114
+ // Let's go!
115
+ br.init();
@@ -0,0 +1,56 @@
1
+ //
2
+ // This file shows the minimum you need to provide to BookReader to display a book
3
+ //
4
+ // Copyright(c)2008-2009 Internet Archive. Software license AGPL version 3.
5
+
6
+ // Create the BookReader object
7
+ function instantiateBookReader(selector, extraOptions) {
8
+ selector = selector || '#BookReader';
9
+ extraOptions = extraOptions || {};
10
+ var options = {
11
+ data: [
12
+ [
13
+ { width: 800, height: 1200,
14
+ uri: '//archive.org/download/BookReader/img/page001.jpg' },
15
+ ],
16
+ [
17
+ { width: 800, height: 1200,
18
+ uri: '//archive.org/download/BookReader/img/page002.jpg' },
19
+ { width: 800, height: 1200,
20
+ uri: '//archive.org/download/BookReader/img/page003.jpg' },
21
+ ],
22
+ [
23
+ { width: 800, height: 1200,
24
+ uri: '//archive.org/download/BookReader/img/page004.jpg' },
25
+ { width: 800, height: 1200,
26
+ uri: '//archive.org/download/BookReader/img/page005.jpg' },
27
+ ]
28
+ ],
29
+
30
+ // Book title and the URL used for the book title link
31
+ bookTitle: 'BookReader Demo',
32
+ bookUrl: '../index.html',
33
+ bookUrlText: 'Back to Demos',
34
+ bookUrlTitle: 'This is the book URL title',
35
+
36
+ // thumbnail is optional, but it is used in the info dialog
37
+ thumbnail: '//archive.org/download/BookReader/img/page014.jpg',
38
+ // Metadata is optional, but it is used in the info dialog
39
+ metadata: [
40
+ {label: 'Title', value: 'Open Library BookReader Presentation'},
41
+ {label: 'Author', value: 'Internet Archive'},
42
+ {label: 'Demo Info', value: 'This demo shows how one could use BookReader with their own content.'},
43
+ ],
44
+
45
+ // Override the path used to find UI images
46
+ imagesBaseURL: '../BookReader/images/',
47
+
48
+ ui: 'full', // embed, full (responsive)
49
+
50
+ el: selector,
51
+ };
52
+ $.extend(options, extraOptions);
53
+ var br = new BookReader(options);
54
+ br.init();
55
+ br.autoToggle(options);
56
+ }
@@ -0,0 +1,55 @@
1
+ //
2
+ // This file shows the minimum you need to provide to BookReader to display a book
3
+ //
4
+ // Copyright(c)2008-2009 Internet Archive. Software license AGPL version 3.
5
+
6
+ // Create the BookReader object
7
+ function instantiateBookReader(selector, extraOptions) {
8
+ selector = selector || '#BookReader';
9
+ extraOptions = extraOptions || {};
10
+ var options = {
11
+ data: [
12
+ [
13
+ { width: 800, height: 1200,
14
+ uri: '//archive.org/download/BookReader/img/page001.jpg' },
15
+ ],
16
+ [
17
+ { width: 800, height: 1200,
18
+ uri: '//archive.org/download/BookReader/img/page002.jpg' },
19
+ { width: 800, height: 1200,
20
+ uri: '//archive.org/download/BookReader/img/page003.jpg' },
21
+ ],
22
+ [
23
+ { width: 800, height: 1200,
24
+ uri: '//archive.org/download/BookReader/img/page004.jpg' },
25
+ { width: 800, height: 1200,
26
+ uri: '//archive.org/download/BookReader/img/page005.jpg' },
27
+ ]
28
+ ],
29
+
30
+ // Book title and the URL used for the book title link
31
+ bookTitle: 'BookReader Demo',
32
+ bookUrl: '../index.html',
33
+ bookUrlText: 'Back to Demos',
34
+ bookUrlTitle: 'This is the book URL title',
35
+
36
+ // thumbnail is optional, but it is used in the info dialog
37
+ thumbnail: '//archive.org/download/BookReader/img/page014.jpg',
38
+ // Metadata is optional, but it is used in the info dialog
39
+ metadata: [
40
+ {label: 'Title', value: 'Open Library BookReader Presentation'},
41
+ {label: 'Author', value: 'Internet Archive'},
42
+ {label: 'Demo Info', value: 'This demo shows how one could use BookReader with their own content.'},
43
+ ],
44
+
45
+ // Override the path used to find UI images
46
+ imagesBaseURL: '../BookReader/images/',
47
+
48
+ ui: 'full', // embed, full (responsive)
49
+
50
+ el: selector,
51
+ };
52
+ $.extend(options, extraOptions);
53
+ var br = new BookReader(options);
54
+ br.init();
55
+ }
@@ -0,0 +1,207 @@
1
+ // Bind to the BookReader object providing facilities to set the necessary
2
+ // BookReader functions from a IIIF endpoint URL.
3
+ // author: @aeschylus
4
+
5
+ // TODO enable passing in manifest and sequence id directly
6
+ // TODO convert this to be a v3 plugin. Use simplified options.data
7
+
8
+ (function(BR){
9
+
10
+ BR.prototype.IIIF = function (config) {
11
+ // config should have the url of a sequence
12
+ // within a passed-in manifest.
13
+ var brInstance = this;
14
+ brInstance.IIIFsequence = {
15
+ title: null,
16
+ imagesList: [],
17
+ numPages: null,
18
+ bookUrl: null
19
+ };
20
+ oldInit = brInstance.init;
21
+ oldMode = brInstance.mode;
22
+ brInstance.init = function() {
23
+ load(config);
24
+ };
25
+ brInstance.mode = 2;
26
+
27
+ function bindBRMethods(){
28
+ brInstance.getPageNum = function(index) {
29
+ return index+1;
30
+ };
31
+
32
+ brInstance.getSpreadIndices = function(pindex) {
33
+ var spreadIndices = [null, null];
34
+ if ('rl' == brInstance.pageProgression) {
35
+ // Right to Left
36
+ if (brInstance.getPageSide(pindex) == 'R') {
37
+ spreadIndices[1] = pindex;
38
+ spreadIndices[0] = pindex + 1;
39
+ } else {
40
+ // Given index was LHS
41
+ spreadIndices[0] = pindex;
42
+ spreadIndices[1] = pindex - 1;
43
+ }
44
+ } else {
45
+ // Left to right
46
+ if (brInstance.getPageSide(pindex) == 'L') {
47
+ spreadIndices[0] = pindex;
48
+ spreadIndices[1] = pindex + 1;
49
+ } else {
50
+ // Given index was RHS
51
+ spreadIndices[1] = pindex;
52
+ spreadIndices[0] = pindex - 1;
53
+ }
54
+ }
55
+
56
+ return spreadIndices;
57
+ };
58
+
59
+ brInstance.getPageSide = function(index) {
60
+ if (0 == (index & 0x1)) {
61
+ return 'R';
62
+ } else {
63
+ return 'L';
64
+ }
65
+ };
66
+
67
+ brInstance.getPageHeight = function(index) {
68
+ // console.log(index);
69
+ var fullWidth = brInstance.IIIFsequence.imagesList[index].width,
70
+ fullHeight = brInstance.IIIFsequence.imagesList[index].height,
71
+ scaleRatio = config.maxWidth/fullWidth;
72
+
73
+ return fullHeight*scaleRatio;
74
+ };
75
+
76
+ brInstance.getPageWidth = function(index) {
77
+ var fullWidth = brInstance.IIIFsequence.imagesList[index].width,
78
+ scaleRatio = config.maxWidth/fullWidth;
79
+
80
+ return fullWidth*scaleRatio;
81
+ };
82
+
83
+ brInstance.getPageURI = function(index) {
84
+ // Finds the image info.json url
85
+ // from the loaded sequence and returns the
86
+ // IIIF-formatted url for the page image
87
+ // based on the provided configuration object
88
+ // (adjusting for width, etc.).
89
+ var infoJsonUrl = brInstance.IIIFsequence.imagesList[index].imageUrl;
90
+ var url = infoJsonUrl + "/full/" + config.maxWidth + ",/0/native.jpg";
91
+ return url;
92
+ };
93
+
94
+ }
95
+
96
+ function load(config) {
97
+
98
+ endpointUrl = config.url,
99
+ sequenceId = config.sequenceId;
100
+
101
+ jQuery.ajax({
102
+ url: endpointUrl.replace(/^\s+|\s+$/g, ''),
103
+ dataType: 'json',
104
+ async: true,
105
+
106
+ success: function(jsonLd) {
107
+ brInstance.jsonLd = jsonLd;
108
+ brInstance.bookTitle = jsonLd.label;
109
+ brInstance.bookUrl = '#';
110
+ brInstance.thumbnail = jsonLd.thumbnail['@id'];
111
+ brInstance.metadata = jsonLd.metadata;
112
+ parseSequence(sequenceId);
113
+ bindBRMethods();
114
+
115
+ // Call the old initialisation after
116
+ // the urls are finished. A better implementation
117
+ // would be to employ promises (Likely by including
118
+ // the Q Promises/A+ implementation. See issue #1 at
119
+ // github.
120
+ oldInit.call(brInstance);
121
+
122
+ if (config.initCallback) {
123
+ config.initCallback.apply();
124
+ }
125
+
126
+ // // The following is an attrocious hack and must not
127
+ // // be allowed to persist. See issue #2 at github.com
128
+ // setTimeout(function() { jQuery(window).trigger('resize'); console.log("resize event fired")}, 2500);
129
+ },
130
+
131
+ error: function() {
132
+ console.log('Failed loading ' + brInstance.uri);
133
+ }
134
+
135
+ });
136
+
137
+ }
138
+
139
+ function parseSequence(sequenceId) {
140
+
141
+ jQuery.each(brInstance.jsonLd.sequences, function(index, sequence) {
142
+ if (sequence['@id'] === sequenceId) {
143
+ brInstance.IIIFsequence.title = "here's a sequence";
144
+ brInstance.IIIFsequence.bookUrl = "http://iiif.io";
145
+ brInstance.IIIFsequence.imagesList = getImagesList(sequence);
146
+ brInstance.numLeafs = brInstance.IIIFsequence.imagesList.length;
147
+ }
148
+ });
149
+
150
+ delete brInstance.jsonLd;
151
+
152
+ }
153
+
154
+ function getImagesList(sequence) {
155
+ var imagesList = [];
156
+
157
+ jQuery.each(sequence.canvases, function(index, canvas) {
158
+ var imageObj;
159
+
160
+ if (canvas['@type'] === 'sc:Canvas') {
161
+ var images = canvas.resources || canvas.images;
162
+
163
+ jQuery.each(images, function(index, image) {
164
+ if (image['@type'] === 'oa:Annotation') {
165
+ imageObj = getImageObject(image);
166
+ imageObj.canvasWidth = canvas.width;
167
+ imageObj.canvasHeight = canvas.height;
168
+
169
+ if (!(/#xywh/).test(image.on)) {
170
+ imagesList.push(imageObj);
171
+ }
172
+ }
173
+ });
174
+
175
+ }
176
+ });
177
+
178
+ return imagesList;
179
+ }
180
+
181
+ function getImageObject (image) {
182
+ var resource = image.resource;
183
+
184
+ if (resource.hasOwnProperty('@type') && resource['@type'] === 'oa:Choice') {
185
+ var imageObj = getImageProperties(resource.default);
186
+ } else {
187
+ imageObj = getImageProperties(resource);
188
+ }
189
+
190
+ return(imageObj);
191
+ }
192
+
193
+ function getImageProperties(image) {
194
+ var imageObj = {
195
+ height: image.height || 0,
196
+ width: image.width || 0,
197
+ imageUrl: image.service['@id'].replace(/\/$/, ''),
198
+ };
199
+
200
+ imageObj.aspectRatio = (imageObj.width / imageObj.height) || 1;
201
+
202
+ return imageObj;
203
+ }
204
+
205
+ };
206
+
207
+ })(BookReader);
@@ -0,0 +1 @@
1
+ <svg height="1334" viewBox="0 0 3711 1334" width="3711" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" x1="27.787267%" x2="72.527553%" y1="45.292684%" y2="54.540714%"><stop offset="0" stop-color="#3d444d"/><stop offset="1" stop-color="#333"/></linearGradient><linearGradient id="b" x1="50%" x2="50%" y1="102.909058%" y2="0%"><stop offset="0" stop-color="#99671a"/><stop offset=".133764501" stop-color="#f9a72b"/><stop offset="1" stop-color="#f9a72b"/></linearGradient><g fill="none" fill-rule="evenodd"><rect fill="url(#a)" height="1334" rx="100" width="3711"/><g fill-rule="nonzero"><g fill="#f9a72b" transform="translate(160 160)"><path d="m255.095123 541.010249c21.70536 0 44.150677-.741429 67.335948-2.224286 23.185272-1.482858 44.150677-5.684287 62.896216-12.604289 10.852681-3.954287 21.705361-9.762145 32.558041-17.423576 10.852681-7.66143 20.718754-16.929289 29.59822-27.803578 8.879465-10.874288 16.032368-23.478576 21.458708-37.812866 5.426341-14.334289 8.139511-30.398578 8.139511-48.192868 0-19.771433-4.069755-37.442152-12.209266-53.012155-8.13951-15.570004-18.99219-29.039293-32.558041-40.407867-13.56585-11.368574-28.981589-20.38929-46.247217-27.062149s-34.777908-10.99786-52.53684-12.975003v-2.965715c33.544649-6.920002 60.799676-20.389291 81.765081-40.407867s31.448108-46.339296 31.448108-78.962161c0-29.65715-8.13951-54.1242987-24.418531-73.4014461-16.27902-19.2771474-36.997774-33.6114365-62.15626-43.0028673-15.785717-5.9314299-32.188064-10.009288-49.20704-12.2335743-17.018976-2.2242862-34.901233-3.33642932-53.646772-3.33642932h-249.36499707v7.41428742c13.31919867 1.4828575 23.67857537 3.5835723 31.07813017 6.3021444 7.3995548 2.718572 14.7991096 8.0321447 22.1986644 15.940718 2.959822 2.965715 5.3030143 7.7850018 7.0295771 14.4578605 1.7265628 6.6728588 3.2064738 14.2107177 4.4397329 22.6135768s2.0965405 17.1764326 2.5898442 26.3207209c.4933036 9.144287.7399555 18.165004.7399555 27.062149 0 14.828575.1233259 27.927149.3699777 39.295723s.3699777 22.490006.3699777 33.364294v114.921455c0 14.828575-.1233259 29.286436-.3699777 43.373582s-.4933036 27.062149-.7399555 38.925009c-.2466518 11.86286-.3699777 21.254291-.3699777 28.174293 0 7.908573-.2466518 15.940718-.7399555 24.096434-.4933036 8.155716-1.356585 15.940718-2.5898442 23.355005-1.2332591 7.414288-2.5898442 13.963575-4.0697551 19.647862-1.479911 5.684287-3.4531256 10.009288-5.9196439 12.975003-6.9062511 7.908573-15.9090428 14.087146-27.008375 18.535719-11.0993322 4.448572-22.815294 7.66143-35.14788536 9.638573v7.414288zm-55.004667-278.484627h-41.455583v-71.280338c0-18.81009.123379-38.610184.370139-59.400283.246759-20.790098.616898-39.8476889 1.110417-57.1727712.493519-8.9100424.863658-16.0875765 1.110417-21.5326023.24676-5.4450259.493519-10.0237977.740279-13.7363153.246759-3.7125176.616898-6.8062823 1.110417-9.2812941.493519-2.4750117.987038-5.1975247 1.480557-8.1675388 4.441669-1.485007 10.857414-2.7225129 19.247235-3.7125176 8.38982-.9900047 17.766679-1.4850071 28.130574-1.4850071 34.54632 0 62.923654 4.9500235 85.132002 14.8500706 18.753717 8.4150399 34.42294 22.2751058 47.007671 41.5801975 12.58473 19.3050917 18.877096 41.3326963 18.877096 66.0828143 0 33.66016-11.474313 61.875294-34.42294 84.645402s-56.631288 35.392668-101.047985 37.86768c-6.909264.495002-16.039362.742503-27.390296.742503zm31.048505 268.111274c-16.769653 0-29.593506-1.856503-38.471557-5.569508-8.878052-3.713005-15.536591-8.292379-19.975616-13.73812-5.918702-7.921078-9.494583-17.946192-10.727646-30.075343s-2.096207-27.600007-2.589432-46.412567c0-8.416146-.123306-18.44126-.369919-30.075344-.19729-9.307266-.315664-19.32743-.355122-30.060491l-.014796-101.008598h71.76425c14.303528 0 26.757461.618835 37.361801 1.856503 10.604339 1.237668 21.331985 3.589239 32.182937 7.05471 13.317077 4.455607 25.524398 10.520182 36.621963 18.193726 11.097564 7.673545 20.715453 16.832291 28.853667 27.47624s14.550141 22.278032 19.235779 34.90225c4.685638 12.624219 7.028457 26.114805 7.028457 40.471759 0 25.248436-5.672088 46.907634-17.016265 64.977594-11.344177 18.069959-27.373993 32.55068-48.089446 43.442162-15.783203 8.416146-32.059631 13.614353-48.829284 15.594623-16.769653 1.980269-32.306244 2.970404-46.609771 2.970404zm590.441157 14.363104c38.074578 0 74.047638-6.673469 107.919178-20.020408 33.871541-13.346939 63.540043-32.378685 89.005504-57.095238 25.46547-24.716554 45.61533-53.882086 60.44958-87.496599 14.83425-33.614512 22.25137-70.195011 22.25137-109.741496 0-35.591837-6.18093-69.700681-18.54281-102.326531s-30.16298-61.420635-53.4033-86.3843539c-23.24033-24.9637188-51.549027-44.8605442-84.926093-59.6904761-33.377065-14.82993201-71.080787-22.244898-113.111166-22.244898-38.569053 0-75.283825 6.30272109-110.144316 18.9081633-34.860491 12.6054421-65.270706 30.648526-91.230646 54.1292517-25.959939 23.4807256-46.604272 52.151927-61.932999 86.013605-15.328726 33.861678-22.993089 72.048753-22.993089 114.561225 0 40.040816 7.293507 76.744898 21.88052 110.112245 14.587014 33.367347 34.489635 62.038549 59.707862 86.013605 25.218227 23.975057 54.639492 42.512472 88.263795 55.612245s69.226506 19.64966 106.80661 19.64966zm4.162348-11.171303c-31.116849 0-58.405831-7.164904-81.866948-21.494713-23.461116-14.329809-42.970886-33.353865-58.529311-57.072169-15.558424-23.718305-27.288982-51.142594-35.191674-82.272868s-11.854038-63.495876-11.854038-97.096807c0-32.118537 3.580907-63.866475 10.742722-95.243815 7.161814-31.37734 18.274975-59.419293 33.339481-84.1258601 15.064506-24.7065668 34.327317-44.8424187 57.788434-60.4075558 23.461116-15.5651371 51.244017-23.3477056 83.348702-23.3477056 31.610767 0 59.02323 7.7825685 82.237387 23.3477056s42.600448 35.8245219 58.158872 60.7781543c15.558425 24.9536326 27.165503 52.7485196 34.821236 83.3846626 7.655731 30.636143 11.483601 61.02522 11.483601 91.167232 0 31.130274-3.82787 62.260548-11.483601 93.390822-7.655733 31.130274-19.139332 59.172228-34.450797 84.12586s-34.450797 45.33655-57.417995 61.148753-50.009222 23.718304-81.126071 23.718304zm596.018264 11.171303c38.07458 0 74.04764-6.673469 107.91918-20.020408s63.54004-32.378685 89.00551-57.095238c25.46546-24.716554 45.61532-53.882086 60.44957-87.496599 14.83425-33.614512 22.25138-70.195011 22.25138-109.741496 0-35.591837-6.18094-69.700681-18.54282-102.326531-12.36187-32.62585-30.16297-61.420635-53.4033-86.3843539-23.24033-24.9637188-51.54902-44.8605442-84.92609-59.6904761-33.37707-14.82993201-71.08079-22.244898-113.11117-22.244898-38.56905 0-75.28382 6.30272109-110.14431 18.9081633-34.86049 12.6054421-65.27071 30.648526-91.23065 54.1292517-25.95994 23.4807256-46.60427 52.151927-61.933 86.013605-15.32872 33.861678-22.99309 72.048753-22.99309 114.561225 0 40.040816 7.29351 76.744898 21.88052 110.112245 14.58702 33.367347 34.48964 62.038549 59.70787 86.013605 25.21822 23.975057 54.63949 42.512472 88.26379 55.612245s69.22651 19.64966 106.80661 19.64966zm1.76801-11.171303c-31.11685 0-58.40583-7.164904-81.86695-21.494713-23.46111-14.329809-42.97088-33.353865-58.52931-57.072169-15.55842-23.718305-27.28898-51.142594-35.19167-82.272868s-11.85404-63.495876-11.85404-97.096807c0-32.118537 3.58091-63.866475 10.74272-95.243815 7.16182-31.37734 18.27498-59.419293 33.33948-84.1258601 15.06451-24.7065668 34.32732-44.8424187 57.78844-60.4075558 23.46111-15.5651371 51.24401-23.3477056 83.3487-23.3477056 31.61077 0 59.02323 7.7825685 82.23739 23.3477056 23.21415 15.5651371 42.60044 35.8245219 58.15887 60.7781543 15.55842 24.9536326 27.1655 52.7485196 34.82123 83.3846626 7.65574 30.636143 11.4836 61.02522 11.4836 91.167232 0 31.130274-3.82786 62.260548-11.4836 93.390822-7.65573 31.130274-19.13933 59.172228-34.45079 84.12586-15.31147 24.953632-34.4508 45.33655-57.418 61.148753s-50.00922 23.718304-81.12607 23.718304zm568.88448 7.181552v-7.414288c-4.95019-.494285-10.76665-1.359286-17.4494-2.595-6.68275-1.235715-13.48926-2.965715-20.41952-5.190001-6.93026-2.224287-13.3655-5.06643-19.30572-8.526431s-10.6429-7.66143-14.10803-12.604289c-4.95018-6.425715-8.16781-15.817146-9.65286-28.174292-1.48506-12.357146-2.47509-25.702863-2.97011-40.037152-.43314-14.272504-.67679-31.004851-.73093-50.197043l-.0116-81.777274c1.48506-3.954287 2.84636-6.79643 4.0839-8.526431 1.23755-1.73 3.8364-2.595 7.79655-2.595 3.46512 0 7.54903 1.73 12.2517 5.190001 4.70268 3.460001 13.48926 12.357146 26.35974 26.691435 30.69115 33.611436 60.26851 66.852158 88.73207 99.722166 28.46357 32.870008 58.53595 67.593588 90.21713 104.170739 2.97011 3.460001 5.69272 6.055001 8.16781 7.785002 2.47509 1.73 4.70267 3.089286 6.68275 4.077858h167.06876v-7.414288c-13.86052-.988571-26.35974-2.718572-37.49766-5.190001s-19.92449-4.942858-26.35974-7.414287c-1.48505-.494286-4.45516-2.471429-8.91033-5.93143l-3.4806-2.710849-7.79654-6.116787c-1.39224-1.096697-2.83089-2.23201-4.31594-3.405939-5.94023-4.695715-12.12796-10.009288-18.5632-15.940718s-12.12795-11.862859-17.07814-17.794289c-20.79078-23.231434-42.44784-47.45144-64.97118-72.660018-22.52334-25.208577-43.68539-48.934297-63.48613-71.177159s-36.87888-41.643581-51.23442-58.202157c-14.35554-16.558575-23.51338-27.309292-27.47353-32.25215 8.41532-8.897145 17.69692-18.412147 27.8448-28.545007 10.14788-10.132859 20.54327-20.636433 31.18616-31.510721 10.6429-10.874289 21.40956-21.748577 32.29996-32.622865 10.89041-10.874289 21.53331-21.007148 31.9287-30.398579 26.731-24.7142914 52.96698-46.4628679 78.70795-65.2457295 25.74096-18.7828616 51.23442-29.4100069 76.48036-31.8814361v-7.41428742h-198.99745v7.41428742c12.87048 1.9771434 24.25591 6.1785729 34.15628 12.6042887s14.85055 16.8057182 14.85055 31.1400073c0 8.4028592-3.34137 17.7942899-10.02412 28.1742924-6.68275 10.3800024-14.23178 20.5128622-22.6471 30.3985782-11.88044 12.851432-25.98847 27.92715-42.32408 45.227154-16.33562 17.300004-32.79498 34.105722-49.3781 50.417155-16.58312 16.311432-32.42372 31.016435-47.52178 44.11501-15.09807 13.098574-27.10227 22.366434-36.0126 27.803578v-114.921456c0-12.851431.12375-24.220005.37126-34.105722s.61878-20.512862 1.11379-31.881436c.49502-20.760005 3.09387-36.8242944 7.79655-48.1928686 4.70267-11.3685741 10.51914-19.8950046 17.4494-25.5792917 6.93026-5.684287 14.85056-9.3914308 23.76089-11.1214312s18.06818-3.0892864 27.47353-4.0778581v-7.41428742h-230.18362v7.41428742c12.87048 1.4828575 24.25591 4.2014296 34.15628 8.1557162 9.90037 3.9542867 18.31568 10.1328596 25.24594 18.5357187 5.44521 6.9200016 8.78658 18.2885757 10.02413 34.1057223 1.23754 15.8171466 1.85632 33.1171504 1.85632 51.9000124v231.325768c0 13.840004-.12376 26.691435-.37127 38.554295s-.37126 21.254291-.37126 28.174293c0 7.908573-.12376 16.187861-.37126 24.837863-.24751 8.650002-.74253 16.805718-1.48506 24.467148-.74253 7.661431-1.85632 14.457861-3.34138 20.389291-1.48505 5.93143-3.46513 10.380002-5.94022 13.345717-5.94022 6.920002-14.60304 12.357146-25.98847 16.311432-11.38543 3.954287-23.26587 6.920002-35.64134 8.897145v7.414288z"/><path d="m183.703704 1013v-5.74202c-15.691358-.76561-27.938272-3.73232-36.740741-8.900144-8.802469-5.167822-14.734568-10.239944-17.796296-15.216366-3.827161-5.742025-5.932099-13.015256-6.314815-21.819695-.382716-8.804438-.765432-19.331484-1.148148-31.581137-.334877-11.053398-.523245-24.304915-.565104-39.754551l-.00897-71.640733c5.358024.382801 9.759259.574202 13.203703.574202 3.827161 0 9.376544.765604 16.648148 2.29681 9.950618 1.914008 19.42284 6.699029 28.416667 14.355063 8.993827 7.656033 17.317901 15.886269 24.972222 24.690707 9.185186 10.718447 17.126544 20.384189 23.824074 28.997226 6.697531 8.613037 12.916667 17.130374 18.657408 25.552011s11.385802 16.938974 16.935185 25.552011c5.549383 8.613038 11.959877 18.27878 19.231482 28.997226 6.123456 8.804439 10.62037 15.407767 13.49074 19.809986 2.870371 4.40222 5.262346 7.751734 7.175926 10.048544s3.635803 4.30652 5.166667 6.02913c1.530864 1.7226 4.018518 4.30652 7.462963 7.75173h117.685185v-5.74202c-17.987654-2.67962-33.679012-8.613042-47.074074-17.800282s-27.17284-23.733704-41.333333-43.63939c-9.185186-13.015257-19.614198-27.944522-31.287037-44.787795-11.67284-16.843273-22.484568-32.538141-32.435186-47.084605-5.74074-8.038834-11.672839-15.312066-17.796296-21.819694-6.123457-6.507629-12.438272-11.48405-18.944444-14.929265v-1.722608c12.629629-4.210818 24.685185-9.378641 36.166666-15.503467 11.481482-6.124827 21.527778-13.493759 30.138889-22.106796 8.611111-8.613038 15.5-18.565881 20.666667-29.85853s7.75-24.020805 7.75-38.184466c0-22.9681-5.166667-42.012483-15.5-57.133149-10.333333-15.120665-23.919753-27.083217-40.759259-35.887656-16.456791-8.804438-34.635803-13.97226-54.537037-15.503467-19.901235-1.531207-42.67284-2.29681-68.314815-2.29681h-40.185185c-16.456791 0-32.9135807.0957-49.3703708.287101-13.7139918.159501-26.2319959.252543-37.5540124.279126l-30.18672836.007975v5.742025c10.33333336 1.531207 19.04012346 3.349515 26.12037036 5.454924s13.4907408 6.220527 19.2314815 12.345354c2.2962963 2.29681 4.1141975 6.029126 5.4537037 11.196949 1.3395062 5.167822 2.2962963 10.909847 2.8703704 17.226074.574074 6.316228.9567901 13.015257 1.1481481 20.097088s.2870371 14.067961.2870371 20.958391v145.273232c0 11.484049-.0956791 22.680998-.2870371 33.590846-.191358 10.909847-.382716 20.958391-.5740741 30.145631-.191358 9.18724-.287037 16.460471-.287037 21.819695 0 6.124826-.191358 12.441054-.5740741 18.948682-.382716 6.507628-.8611111 12.632455-1.4351852 18.37448-.574074 5.742025-1.4351851 10.909847-2.5833333 15.503467-1.1481481 4.59362-2.6790123 8.038835-4.5925926 10.335645-4.9753086 6.124827-11.8641975 10.718447-20.6666666 13.780865-8.8024692 3.06241-17.98765437 5.35922-27.5555556 6.89043v5.74202zm-63.703704-201v-63.079096c0-15.6742.095238-31.921846.285714-48.742938s.476191-31.921845.857143-45.30226c.380953-8.792843.666667-15.578625.857143-20.357344.190476-4.77872.380952-8.506121.571429-11.182204.190476-2.676083.47619-4.874294.857142-6.594633.380953-1.720339.761905-3.727401 1.142858-6.021186 2.666666-.382298 6.47619-.764595 11.428571-1.146893 4.952381-.382297 11.428571-.573446 19.428571-.573446 11.047619 0 21.619048.955744 31.714286 2.867232 10.095238 1.911487 19.714286 4.969868 28.857143 9.175141 18.285714 8.792844 32.190476 20.644068 41.714286 35.553672 9.523809 14.909605 14.285714 31.921846 14.285714 51.036723 0 10.322034-1.333333 20.261771-4 29.819209-2.666667 9.557439-6.761905 18.445857-12.285714 26.665255-5.52381 8.219397-12.666667 15.578625-21.428572 22.077683-8.761904 6.499059-19.238095 11.660076-31.428571 15.483051-12.571429 4.205273-25.619048 6.97693-39.142857 8.314972-13.52381 1.338041-28.095238 2.007062-43.714286 2.007062zm667.299094 201 28.700906-109.294444-6.314199-1.716667c-9.566969 16.403704-18.846929 30.423148-27.83988 42.058333-8.99295 11.635185-18.27291 21.458334-27.839879 29.469445-9.566968 8.011111-19.516616 14.210185-29.848942 18.597222-10.332327 4.387037-21.62135 7.343518-33.86707 8.869441-11.097684 1.52593-21.717019 2.47963-31.858006 2.86111-10.140987.38149-18.46425.57223-24.969788.57223-15.30715 0-29.466264-1.14445-42.477342-3.43334-13.011077-2.288886-21.23867-6.1037-24.682779-11.444441s-5.644512-13.447222-6.601209-24.319445c-.956697-10.872222-1.626384-22.412037-2.009063-34.619444 0-3.814815-.09567-8.487963-.287009-14.019444-.19134-5.531482-.287009-11.349075-.287009-17.452778v-68.666667c0-10.3.382679-18.12037 1.148036-23.461111h26.404834c3.826787 0 7.653575.09537 11.480362.286111 3.826788.190741 8.610272.476852 14.350454.858333 11.480362.762963 21.525679 2.861112 30.135951 6.294445s15.976838 7.82037 22.099698 13.161111c6.888218 6.485185 13.489426 16.212963 19.803625 29.183333 6.3142 12.970371 11.002015 25.55926 14.063445 37.766667h6.888217v-180.25h-6.888217c-2.296073 10.681481-4.879154 20.313889-7.749245 28.897222-2.870091 8.583334-6.696878 16.117593-11.480363 22.602778-4.783484 6.485185-11.002014 12.016667-18.655589 16.594444-7.653575 4.577778-17.220544 8.201852-28.700906 10.872223-4.974824 1.144444-11.193354 2.002777-18.655589 2.575-7.462236.572222-14.924472 1.049074-22.386707 1.430555-7.462236.381482-14.063444.572222-19.803626.572222h-11.480362v-6.294444c0-3.433333-.09567-8.297222-.287009-14.591667-.15945-5.24537-.252462-11.749099-.279037-19.511188l-.007972-41.430478c0-25.177778.287009-47.303704.861027-66.377778s1.243706-31.662963 2.009063-37.766667c3.826788-.762963 10.045318-1.430555 18.65559-2.002778 8.610271-.572222 16.933534-.858333 24.969788-.858333 25.256798 0 46.686808 1.144445 64.29003 3.433333 17.603223 2.288889 29.657603 4.95926 36.163142 8.011112 27.170192 13.351851 56.253777 39.292592 87.250756 77.822222l5.740181-2.861111-39.033233-94.416667h-316.858006v5.722222c10.332326 1.525926 18.751259 3.147222 25.256798 4.863889 6.505538 1.716667 12.628399 5.626852 18.36858 11.730556 2.296072 2.288889 4.113796 6.008333 5.453172 11.158333s2.296072 10.967593 2.870091 17.452778c.574018 6.485185.956697 13.351852 1.148036 20.6s.287009 14.305555.287009 21.172222v144.772222c0 11.444445-.09567 22.602778-.287009 33.475s-.382679 20.886111-.574018 30.041667c-.19134 9.155555-.287009 16.403704-.287009 21.744444 0 6.103704-.19134 12.302778-.574018 18.597223-.382679 6.294444-1.052367 12.302777-2.009064 18.025-.956697 5.722222-2.009063 10.776851-3.1571 15.163888-1.148036 4.387037-2.678751 7.725-4.592145 10.013889-5.357502 6.103704-12.15005 10.872223-20.377643 14.305556-8.227593 3.433331-17.124874 5.912961-26.691843 7.438891v5.72222zm136.0095 1v-5.73569c-4.976563-.76476-10.240235-1.62512-15.791016-2.58107s-10.71875-2.48547-15.503906-4.58855c-4.785156-2.103091-8.708984-4.779749-11.771484-8.029976s-4.59375-7.360808-4.59375-12.331744c0-8.412352 4.019531-22.942779 12.058593-43.591281 5.359375-13.383288 10.71875-26.670981 16.078125-39.863079s10.910157-27.05336 16.652344-41.583787h152.74219c5.74219 14.912806 11.10156 29.252043 16.07812 43.017711s9.37891 26.288601 13.20703 37.568801c3.82813 11.2802 6.79493 20.839691 8.90039 28.678474 2.10547 7.838783 3.15821 13.478883 3.15821 16.9203 0 5.353315-1.81836 9.750681-5.45508 13.192098s-7.84766 6.118073-12.63281 8.029973c-4.78516 1.9119-9.37891 3.25023-13.78125 4.01499-4.40235.76476-7.17774 1.14714-8.32618 1.14714v5.73569h167.67188v-6.88283c-8.80469-.38238-16.46094-2.10309-22.96875-5.16213-6.50781-3.059036-11.96289-6.596048-16.36523-10.611035-4.40235-4.014986-7.94336-7.934377-10.62305-11.758174-2.67969-3.823796-4.40235-6.500454-5.16797-8.029973-4.59375-9.941871-8.70898-18.832198-12.3457-26.670981s-7.56055-17.685059-11.77149-29.538828c-9.1875-24.089918-18.375-48.466621-27.5625-73.130109s-18.66211-50.18733-28.42383-76.571526c-9.76171-26.384196-20.00195-53.819936-30.7207-82.307221-1.78646-4.74788-3.58887-9.540903-5.40723-14.379068l-11.10156-29.570693c-5.64648-15.056199-11.43652-30.518676-17.37012-46.387432h-4.59375c-1.53125 2.676658-3.73242 6.118074-6.60351 10.324251-2.87109 4.206176-6.41211 8.603542-10.62305 13.192098-4.21093 4.588556-9.09179 8.985922-14.64258 13.192098-5.55078 4.206176-11.77148 7.838783-18.662105 10.89782l5.742187 12.618529c-9.187499 21.41326-18.949218 44.451635-29.285156 69.115122-10.335937 24.663488-20.767578 49.135786-31.294922 73.416894-10.527343 24.281108-20.767578 47.893052-30.720703 70.835831s-18.949218 43.400091-26.988281 61.371935c-8.804687 19.501362-16.269531 34.222979-22.394531 44.16485s-10.527344 16.251135-13.207031 18.927793c-1.148438 1.529518-5.263672 4.397366-12.345704 8.603542-7.082031 4.206177-15.599609 6.882837-25.552734 8.029977v6.30926zm145.691406-171h-142c9.124498-22.530744 17.583668-43.438511 25.37751-62.723301s14.922356-36.564725 21.385542-51.839806 11.880857-28.258899 16.253012-38.951456c4.372156-10.692557 7.698795-18.521036 9.97992-23.485437 3.421686 8.401294 7.698796 19.18932 12.831326 32.364078 5.13253 13.174757 10.83534 27.686084 17.10843 43.53398 6.2731 15.847897 12.73628 32.364078 19.38956 49.548544s13.21151 34.368932 19.6747 51.553398zm387.90525 170c17.55186 0 35.67606-1.24411 54.3726-3.73232s36.82074-6.79473 54.3726-12.919552c17.55185-6.124827 34.14981-14.355063 49.79385-24.690708 15.64405-10.335645 29.38028-23.350901 41.20871-39.04577 11.82842-15.694868 21.1767-34.452149 28.04481-56.271844 6.86812-21.819695 10.30218-47.084605 10.30218-75.79473 0-24.882108-3.14789-46.988904-9.44366-66.320388-6.29578-19.331484-14.69014-36.366158-25.1831-51.104022s-22.79834-27.46602-36.91613-38.184466c-14.1178-10.718447-29.1895-19.522885-45.21511-26.413315-12.20999-5.359223-24.61076-9.378641-37.20231-12.058253-12.59155-2.679611-25.1831-4.59362-37.77465-5.742025-12.59154-1.148405-25.18309-1.722607-37.77464-1.722607h-36.62996-9.75016l-18.82975.015289c-30.63786.033977-57.5504.124581-80.73764.271812-23.6841.150387-43.01042.241693-57.97894.273918l-11.27458.013183v5.742025c9.92062 1.148405 18.88733 3.062414 26.90013 5.742025 8.0128 2.679612 14.88092 7.464633 20.60435 14.355063 2.28938 2.679611 4.00641 6.411928 5.15109 11.196949 1.14469 4.78502 2.0032 10.144244 2.57555 16.077669.57234 5.933426.85851 12.345354.85851 19.235784v165.944522c0 11.484049-.09539 22.680998-.28617 33.590846-.19078 10.909847-.38156 20.958391-.57234 30.145631s-.28618 16.460471-.28618 21.819695c0 6.124826-.19078 12.441054-.57234 18.948682s-.9539 12.632455-1.71703 18.37448c-.76312 5.742025-1.62164 10.909847-2.57554 15.503467-.95391 4.59362-2.38476 7.847434-4.29258 9.761443-4.57874 5.359223-11.35147 9.952843-20.31818 13.78086s-18.21959 6.316227-27.75864 7.464637v5.74202zm-12.88564-9c-10.30901 0-21.2862-1.04952-32.93156-3.14855-11.64536-2.099035-21.28619-6.964977-28.9225-14.597827-2.29089-2.289855-4.29542-5.820048-6.01359-10.59058-1.71816-4.770531-2.95906-10.113526-3.72269-16.028985s-1.43181-12.021739-2.00453-18.318841c-.57273-6.297101-.85909-12.117149-.85909-17.460145-.33939-11.194847-.52794-25.254368-.56565-42.178565l.00648-93.972965c.04971-36.788984.2361-69.069391.55917-96.841223.38182-32.821256 1.52726-58.582126 3.43634-77.282609 2.6727-.763285 6.2045-1.335749 10.59537-1.717391 4.39087-.381643 9.16356-.858696 14.31807-1.43116 5.1545-.572463 10.40446-.954106 15.74987-1.144927 5.34542-.190821 10.30901-.286232 14.8908-.286232 13.36353 0 24.62707.477053 33.79064 1.431159 9.16356.954107 17.5635 2.194445 25.1998 3.721015 19.85439 3.434783 38.18152 11.067633 54.98138 22.898551 16.79987 11.830918 31.30885 26.237922 43.52693 43.221014 12.21809 16.983092 21.76347 35.969807 28.63614 56.960145s10.30901 42.55314 10.30901 64.688406c0 49.995169-10.21356 92.071256-30.64067 126.228261s-51.25868 57.150966-92.49472 68.981884c-8.78175 2.671497-18.23168 4.484295-28.34978 5.438405s-19.94984 1.43116-29.49522 1.43116zm643.27948 9 28.70091-109.294444-6.3142-1.716667c-9.56697 16.403704-18.84693 30.423148-27.83988 42.058333s-18.27291 21.458334-27.83988 29.469445-19.51661 14.210185-29.84894 18.597222-21.62135 7.343518-33.86707 8.869441c-11.09768 1.52593-21.71702 2.47963-31.85801 2.86111-10.14098.38149-18.46425.57223-24.96978.57223-15.30715 0-29.46627-1.14445-42.47735-3.43334-13.01107-2.288886-21.23867-6.1037-24.68278-11.444441-3.4441-5.340741-5.64451-13.447222-6.6012-24.319445-.9567-10.872222-1.62639-22.412037-2.00907-34.619444 0-3.814815-.09567-8.487963-.28701-14.019444-.19134-5.531482-.28701-11.349075-.28701-17.452778v-68.666667c0-10.3.38268-18.12037 1.14804-23.461111h26.40483c3.82679 0 7.65358.09537 11.48037.286111 3.82678.190741 8.61027.476852 14.35045.858333 11.48036.762963 21.52568 2.861112 30.13595 6.294445s15.97684 7.82037 22.0997 13.161111c6.88822 6.485185 13.48943 16.212963 19.80363 29.183333 6.31419 12.970371 11.00201 25.55926 14.06344 37.766667h6.88822v-180.25h-6.88822c-2.29607 10.681481-4.87915 20.313889-7.74925 28.897222-2.87009 8.583334-6.69687 16.117593-11.48036 22.602778-4.78348 6.485185-11.00201 12.016667-18.65559 16.594444-7.65357 4.577778-17.22054 8.201852-28.7009 10.872223-4.97483 1.144444-11.19336 2.002777-18.65559 2.575-7.46224.572222-14.92447 1.049074-22.38671 1.430555-7.46223.381482-14.06344.572222-19.80362.572222h-11.48037v-6.294444c0-3.433333-.09567-8.297222-.28701-14.591667-.15945-5.24537-.25246-11.749099-.27903-19.511188l-.00798-41.430478c0-25.177778.28701-47.303704.86103-66.377778s1.24371-31.662963 2.00907-37.766667c3.82678-.762963 10.04531-1.430555 18.65558-2.002778 8.61028-.572222 16.93354-.858333 24.96979-.858333 25.2568 0 46.68681 1.144445 64.29003 3.433333 17.60323 2.288889 29.65761 4.95926 36.16315 8.011112 27.17019 13.351851 56.25377 39.292592 87.25075 77.822222l5.74018-2.861111-39.03323-94.416667h-316.85801v5.722222c10.33233 1.525926 18.75126 3.147222 25.2568 4.863889s12.6284 5.626852 18.36858 11.730556c2.29607 2.288889 4.1138 6.008333 5.45317 11.158333 1.33938 5.15 2.29608 10.967593 2.87009 17.452778.57402 6.485185.9567 13.351852 1.14804 20.6s.28701 14.305555.28701 21.172222v144.772222c0 11.444445-.09567 22.602778-.28701 33.475s-.38268 20.886111-.57402 30.041667c-.19134 9.155555-.28701 16.403704-.28701 21.744444 0 6.103704-.19134 12.302778-.57402 18.597223-.38267 6.294444-1.05236 12.302777-2.00906 18.025-.9567 5.722222-2.00906 10.776851-3.1571 15.163888-1.14803 4.387037-2.67875 7.725-4.59214 10.013889-5.35751 6.103704-12.15005 10.872223-20.37765 14.305556-8.22759 3.433331-17.12487 5.912961-26.69184 7.438891v5.72222zm240.40461 0v-5.74202c-15.69135-.76561-27.93827-3.73232-36.74074-8.900144-8.80247-5.167822-14.73456-10.239944-17.79629-15.216366-3.82716-5.742025-5.9321-13.015256-6.31482-21.819695-.38271-8.804438-.76543-19.331484-1.14815-31.581137-.33487-11.053398-.52324-24.304915-.5651-39.754551l-.00897-71.640733c5.35802.382801 9.75926.574202 13.2037.574202 3.82716 0 9.37655.765604 16.64815 2.29681 9.95062 1.914008 19.42284 6.699029 28.41667 14.355063 8.99383 7.656033 17.3179 15.886269 24.97222 24.690707 9.18519 10.718447 17.12654 20.384189 23.82407 28.997226 6.69754 8.613037 12.91667 17.130374 18.65741 25.552011s11.3858 16.938974 16.93519 25.552011c5.54938 8.613038 11.95987 18.27878 19.23148 28.997226 6.12346 8.804439 10.62037 15.407767 13.49074 19.809986 2.87037 4.40222 5.26234 7.751734 7.17593 10.048544 1.91358 2.29681 3.6358 4.30652 5.16666 6.02913 1.53087 1.7226 4.01852 4.30652 7.46296 7.75173h117.68519v-5.74202c-17.98765-2.67962-33.67901-8.613042-47.07407-17.800282-13.39507-9.18724-27.17284-23.733704-41.33334-43.63939-9.18518-13.015257-19.61419-27.944522-31.28703-44.787795s-22.48457-32.538141-32.43519-47.084605c-5.74074-8.038834-11.67284-15.312066-17.7963-21.819694-6.12345-6.507629-12.43827-11.48405-18.94444-14.929265v-1.722608c12.62963-4.210818 24.68518-9.378641 36.16667-15.503467 11.48148-6.124827 21.52777-13.493759 30.13889-22.106796 8.61111-8.613038 15.5-18.565881 20.66666-29.85853 5.16667-11.292649 7.75-24.020805 7.75-38.184466 0-22.9681-5.16666-42.012483-15.5-57.133149-10.33333-15.120665-23.91975-27.083217-40.75926-35.887656-16.45679-8.804438-34.6358-13.97226-54.53703-15.503467-19.90124-1.531207-42.67284-2.29681-68.31482-2.29681h-40.18518c-16.45679 0-32.91358.0957-49.37037.287101-13.714.159501-26.232.252543-37.55402.279126l-30.18673.007975v5.742025c10.33334 1.531207 19.04013 3.349515 26.12037 5.454924 7.08025 2.105409 13.49075 6.220527 19.23149 12.345354 2.29629 2.29681 4.11419 6.029126 5.4537 11.196949 1.33951 5.167822 2.2963 10.909847 2.87037 17.226074.57407 6.316228.95679 13.015257 1.14815 20.097088s.28704 14.067961.28704 20.958391v145.273232c0 11.484049-.09568 22.680998-.28704 33.590846-.19136 10.909847-.38272 20.958391-.57408 30.145631-.19135 9.18724-.28703 16.460471-.28703 21.819695 0 6.124826-.19136 12.441054-.57408 18.948682-.38271 6.507628-.86111 12.632455-1.43518 18.37448-.57408 5.742025-1.43519 10.909847-2.58334 15.503467-1.14814 4.59362-2.67901 8.038835-4.59259 10.335645-4.97531 6.124827-11.8642 10.718447-20.66666 13.780865-8.80247 3.06241-17.98766 5.35922-27.55556 6.89043v5.74202zm-62.7037-201v-63.079096c0-15.6742.09524-31.921846.28571-48.742938.19048-16.821092.47619-31.921845.85715-45.30226.38095-8.792843.66666-15.578625.85714-20.357344.19048-4.77872.38095-8.506121.57143-11.182204.19047-2.676083.47619-4.874294.85714-6.594633s.76191-3.727401 1.14286-6.021186c2.66667-.382298 6.47619-.764595 11.42857-1.146893 4.95238-.382297 11.42857-.573446 19.42857-.573446 11.04762 0 21.61905.955744 31.71429 2.867232 10.09524 1.911487 19.71428 4.969868 28.85714 9.175141 18.28571 8.792844 32.19048 20.644068 41.71429 35.553672 9.52381 14.909605 14.28571 31.921846 14.28571 51.036723 0 10.322034-1.33333 20.261771-4 29.819209-2.66667 9.557439-6.7619 18.445857-12.28571 26.665255-5.52381 8.219397-12.66667 15.578625-21.42858 22.077683-8.7619 6.499059-19.23809 11.660076-31.42857 15.483051-12.57143 4.205273-25.61904 6.97693-39.14285 8.314972-13.52381 1.338041-28.09524 2.007062-43.71429 2.007062z"/></g><g transform="translate(2550.645509 61.02992)"><path d="m439.536913 1178.97008-387.1824223-1147.0000001 37.3508572 3.8297161c139.3203811 133.406849 243.4582861 318.821612 312.4137141 556.244287 36.946245 127.210816 66.618858 283.702206 89.017839 469.474167-8.412276-130.572439-34.441971-285.820311-81.167018-465.705147-60.937264-234.599858-168.600551-414.632579-261.786645-549.7633734l-2.828747-4.0796497 13.472266 1.774823c95.194454 136.5403631 202.537709 311.3449471 264.371833 549.3975911 45.163486 173.87304 71.173747 327.166262 80.669087 456.622196-3.769438-128.112591-21.951233-279.491896-68.657181-453.92829-62.788614-234.501596-136.924113-409.714184-232.941317-544.7883792l-2.914688-4.0779409 13.729664 1.7740797c98.086581 136.4831734 171.892325 306.4698144 235.605047 544.4227504 62.725543 234.266042 73.95565 427.32942 68.420874 578.83211l-.255585.97106c50.575336-194.341722 111.158003-387.983721 181.748-580.925997s150.080282-378.995324 238.470857-558.159145l16.281143-1.9148581-401.096485 1147.0000001z" fill="url(#b)"/><path d="m531.857491 1171.47008h-73.546l-405.1030003-1152.9170001.0369844.1120947c-5.4246387-17.0477478-22.0202057-21.6074027-47.46106632-14.69112316l-5.78440878 1.61114412 1.595442 4.95145484c19.71366 61.1813512 40.214342 123.4812046 61.3498284 186.5360836l5.2970087 15.779239 5.3229302 15.809436c.8892858 2.637352 1.7796297 5.27591 2.6710206 7.915648l5.3608218 15.852366 5.385422 15.879408c1.7991821 5.297502 3.602376 10.599302 5.4094939 15.905188l5.4330371 15.929706c12.7041423 37.196937 25.5962383 74.583797 38.6460743 112.088432l5.602356 16.080415 5.621142 16.093575c.938393 2.683289 1.877547 5.367073 2.817451 8.051327l5.648331 16.110948 5.665796 16.120951c.945726 2.687589 1.892157 5.375542 2.839283 8.063833l5.691002 16.133591c.949861 2.689538 1.900394 5.379361 2.851589 8.069443l5.71502 16.143391c2.861392 8.07304 5.728541 16.147939 8.601149 24.223985l5.752406 16.153415c.959919 2.692421 1.920422 5.384917 2.881498 8.077462l5.773253 16.155642 5.78649 16.15555 5.799198 16.154195 5.811378 16.151579 5.82303 16.147701c.971446 2.69089 1.943356 5.381565 2.915718 8.072001l5.839516 16.139516c.974128 2.689368 1.948686 5.378443 2.923664 8.067199l5.854812 16.128492c.976611 2.687373 1.95362 5.374374 2.931015 8.060977l5.868919 16.114628c.978897 2.684905 1.958158 5.369359 2.937772 8.053335l5.881838 16.097925c.980984 2.681963 1.962298 5.363397 2.943934 8.044274l5.893566 16.078382 5.900726 16.063775 4.960279 13.476922 5.727096 15.52574 5.728915 15.49381 3.815822 10.300058 5.711852 15.389253 5.689557 15.295716 5.658219 15.179078 3.75027 10.043176 5.585894 14.933341 5.53044 14.755097 5.465945 14.553749 7.171971 19.051864 5.280288 13.994099 5.185649 13.715743 5.081967 13.41429 4.969243 13.08973 6.434678 16.90818 4.671051 12.24258 4.528184 11.84103 2.934952 7.65951 4.269975 11.12041 4.102993 10.65724 3.926967 10.17096 3.741898 9.66159 2.387318 6.14666 4.505103 11.55598 2.112426 5.39563 2.015437 5.13158 1.915768 4.86071 2.680913 6.76818 1.654874 4.15355 1.545828 3.85871 1.434101 3.55703c.229558.56732.454349 1.12178.674317 1.66325l1.261489 3.09166c.200454.4889.395973.96452.586502 1.42672l1.082848 2.6109.960404 2.28184c.449145 1.05751.851368 1.98905 1.205163 2.79078l.231964.52007-.028685.07597c-6.278907 16.8226-1.348012 27.46252 14.470482 27.36741l.430203-.00638 117.269832-.00038c7.772146.1695 13.389878-2.69988 15.518469-8.81364l.107422-.32105c1.521882-4.73788.68542-10.76232-2.198723-18.29493l.302792-.66497c.507249-1.12424 1.106357-2.48397 1.793399-4.06957l1.096024-2.54661 1.224982-2.8782 1.350998-3.20257 1.474071-3.51974 1.594201-3.82969 1.711387-4.13242 1.825631-4.42794 1.936931-4.71626 3.107647-7.59917 2.202307-5.40545 3.491915-8.59916 3.709232-9.16669 2.588648-6.4144 2.677876-6.64859 4.177679-10.39624 4.361886-10.8826 4.536161-11.34463 4.700504-11.78229 4.854914-12.19562 6.696244-16.86169 5.176576-13.06535 7.089075-17.93295 5.44416-13.802526 7.409801-18.827475 5.657666-14.407129 5.732614-14.625665 7.742903-19.79875 5.868866-15.040897 5.910704-15.178273 5.94261-15.2913 7.955945-20.522138 5.978431-15.460344 5.977227-15.49221 5.966092-15.499728 3.093278-8.050087 6.180629-16.109609 6.17229-16.121196c2.055982-5.375532 4.110486-10.752796 6.163426-16.131596l6.154036-16.140804c1.024861-2.690835 2.049309-5.382005 3.073332-8.073483l6.138966-16.152386 6.128261-16.15862c2.040911-5.387114 4.07995-10.775068 6.117031-16.163665l6.105275-16.167518 6.092994-16.170183c1.014446-2.695186 2.028359-5.390434 3.041727-8.085718l6.073587-16.171948c1.011146-2.695332 2.021725-5.390651 3.031727-8.085932l6.052996-16.171037 6.038612-16.168941c1.005207-2.694583 2.009793-5.389029 3.013747-8.083313l6.01605-16.163567c5.006907-13.467693 9.997461-26.930104 14.970294-40.384135l5.958806-16.140617c6.941811-18.825565 13.847816-37.632276 20.714256-56.41163l5.875743-16.089692 5.85584-16.075103c2.922856-8.033705 5.838051-16.061494 8.745289-24.082697l5.80378-16.033424 5.782036-16.014672c2.885495-8.002449 5.762638-15.997419 8.631135-23.984241l5.725376-15.962581c3.809115-10.634214 7.602507-21.25315 11.379476-31.85522l5.653048-15.890258c16.921666-47.631637 33.50366-94.905689 49.68211-141.677587l5.377784-15.571836c6.256439-18.1449814 12.450774-36.2115902 18.579251-54.1913238l5.236763-15.3897264c2.61023-7.6840271 5.208165-15.3516513 7.793509-23.0022034l4.1688-12.3513343-4.6959-1.6187227c-24.957377-8.60304292-42.091201-4.08413714-48.955074 14.2183266z" fill="#f9a72b"/><path d="m993.433483 12.0043714.554008.1567085-3.538421 10.4673322c-10.368933 30.6300161-20.937767 61.529904-31.687571 92.6568019l-5.389895 15.582169c-17.115203 49.402182-34.676177 99.355558-52.607779 149.689998l-5.674844 15.907555-5.698957 15.931699c-.951807 2.657229-1.904596 5.315414-2.858358 7.974531l-5.734143 15.965681c-2.872815 7.988231-5.75418 15.9844-8.643799 23.987837l-5.790156 16.016366-5.81164 16.034556c-4.85184 13.369378-9.725512 26.756465-14.619647 40.15816l-5.882696 16.088846-5.901815 16.10168c-.9852 2.684616-1.971174 5.369718-2.957912 8.05528l-5.929507 16.118696c-.989749 2.687304-1.98024 5.375018-2.971462 8.063118l-5.956015 16.133034-5.97303 16.141105c-.996893 2.69079-1.994474 5.381867-2.992731 8.073206l-5.997566 16.150978c-1.000917 2.692287-2.002489 5.384787-3.004703 8.077473l-6.02092 16.158173c-1.004743 2.693337-2.010109 5.386812-3.016084 8.0804l-6.043089 16.162688-6.057212 16.16421-6.070809 16.164541-6.08388 16.163683-6.096424 16.161632c-1.017087 2.693369-2.034675 5.386602-3.052753 8.079676l-6.114256 16.156326c-5.099966 13.461676-10.21163 26.918117-15.333624 40.366221l-6.151261 16.133526-6.160652 16.124333-6.169516 16.113949-6.177854 16.102374c-1.030308 2.682699-2.060941 5.364865-3.091889 8.046475l-4.131121 10.73643-4.138365 10.737467-4.142266 10.730307-4.142819 10.714949-6.207949 16.025695-4.129567 10.640689-6.172388 15.875877-4.095405 10.515193-4.075885 10.450648-6.069909 15.537019-4.012449 10.253421-7.927862 20.218935-5.847819 14.880002-5.751206 14.605663-5.643302 14.303654-3.696678 9.354322-7.221045 18.23629-5.251839 13.23163-5.098769 12.81895-4.934406 12.3786-6.304019 15.772-4.506984 11.24354-4.304984 10.71096-4.091692 10.15073-3.867109 9.56282-3.631235 8.94725-3.384068 8.30401-2.113155 5.16499-1.994939 4.85861-1.873378 4.54403-1.748472 4.22126-1.620218 3.89028-1.488621 3.55112c-.236951.56313-.468279 1.11179-.693915 1.64581l-1.28495 3.02698c-2.025878 4.74754-3.46858 7.99648-4.258405 9.57603l-1.023517 2.0469.880254 2.11247.181086.4387.34451.85955c.388258.98887.728824 1.92883 1.02332 2.81874l.241179.7505c1.264851 4.06007 1.516093 7.0007.923554 8.7026-.479275 1.37657-1.913257 2.1423-5.522335 2.10927l-.44314-.00639-117.506271.001c-4.480942.0898-6.479847-.83171-7.124818-2.38124-.787353-1.8916-.452764-5.40164 1.312133-10.38783l.290599-.79954c.05043-.13529.101861-.2716.154299-.40893l.326763-.8361.351211-.86033.880254-2.11247-1.023517-2.0469c-.510048-1.02003-1.326406-2.85869-2.426559-5.4585l-1.011963-2.41346c-.180069-.43287-.365799-.88093-.557123-1.34402l-1.214558-2.95759c-.213441-.52255-.432345-1.05979-.656648-1.61156l-1.410062-3.48361c-.245632-.60921-.496529-1.23262-.752628-1.87005l-1.598478-3.99153-1.72015-4.3201-1.83867-4.64061-1.95404-4.95308-2.06626-5.25751-3.302906-8.43946-3.537676-9.07917-3.761811-9.69173-3.975311-10.27713-4.178178-10.83538-2.892904-7.52032-4.492656-11.70547-4.667165-12.19132-4.83104-12.65003-4.984279-13.08157-5.126885-13.48598-5.258857-13.86322-7.198718-19.024202-5.525435-14.637884-5.62196-14.924631-5.707849-15.184225-5.783106-15.41667-5.847726-15.621964-3.929135-10.515287-5.931797-15.903785-5.968062-16.036677-5.993691-16.142418-4.004782-10.806949-6.012775-16.258318-6.010047-16.291656c-.667237-1.811031-1.334227-3.622176-2.000904-5.433268l-2.951567-8.02244c-1.927823-5.24264-3.854584-10.487817-5.780201-15.735335l-5.773337-15.749373c-.961623-2.625999-1.92294-5.252534-2.883939-7.879579l-5.762107-15.768203-5.753999-15.77927c-.958296-2.630734-1.916234-5.261881-2.873803-7.893414l-5.740903-15.793643c-1.912103-5.265963-3.822648-10.533275-5.731551-15.801739l-5.7217-15.808647-5.711353-15.814366c-2.853006-7.908415-5.701946-15.818529-8.546539-23.729673l-5.683306-15.823465c-.946225-2.637407-1.891945-5.274879-2.837151-7.912392l-5.664987-15.825358c-1.886217-5.275149-3.770295-10.55026-5.65215-15.825136l-5.638818-15.823724-5.624986-15.821123-5.610658-15.817336c-2.801664-7.907522-5.597769-15.813178-8.388033-23.716299l-5.57266-15.802665c-2.782354-7.899444-5.558682-15.795907-8.328704-23.688722l-5.531552-15.780565-5.514238-15.769646c-.917569-2.627299-1.834396-5.254092-2.75047-7.880357l-5.487334-15.751038c-2.739069-7.872146-5.471179-15.739083-8.19605-23.600142l-5.440006-15.714083c-.905031-2.617642-1.809237-5.234581-2.712608-7.850793l-5.410116-15.688345c-.899988-2.613203-1.799119-5.22563-2.697384-7.837255l-5.379107-15.659932c-2.684272-7.824959-5.360557-15.642257-8.028578-23.451227l-5.324937-15.606635c-.885625-2.599189-1.770311-5.197404-2.654048-7.794618l-5.2909422-15.571093-5.2676574-15.545911c-3.5038992-10.355283-6.9919433-20.692986-10.4634687-31.011525l-5.1948162-15.463237c-6.9096819-20.597956-13.7519622-41.116085-20.5215334-61.54171l-5.0634625-15.301677c-11.7825484-35.6625162-23.3383612-71.0320328-34.6389925-106.0406081l-.8339544-2.585837.472606-.1062199.5311782-.1168008 1.0475959-.2204466c.5188885-.1058431 1.0304238-.2051206 1.5346546-.2978537l.9987367-.1767466.9793448-.1593325c1.2929037-.2008508 2.5343268-.3553649 3.7251941-.4639448l.8836857-.0728285c.1457059-.0107047.2906255-.0206933.4347605-.0299665l.8554106-.0470612c10.7163206-.4875326 16.9221406 3.1478002 19.4103281 10.5609279l.14362.4359964 405.8186381 1154.9518069c.985053 2.80344 3.632712 4.67947 6.604177 4.67947h77.769362c2.939849 0 5.566447-1.83692 6.5751-4.59832l421.876101-1154.9749929c4.069466-10.8507358 13.347819-14.4447201 29.507364-10.2992503l1.00835.2662957c.169526.0460292.339787.0928819.510785.1405589z" fill="#194880"/></g></g></g></svg>